Skip to content

Add Cython compilation and update project infrastructure#4

Merged
alganet merged 1 commit into
mainfrom
cython
Nov 19, 2025
Merged

Add Cython compilation and update project infrastructure#4
alganet merged 1 commit into
mainfrom
cython

Conversation

@alganet

@alganet alganet commented Nov 19, 2025

Copy link
Copy Markdown
Owner
  • Introduce Cython compilation for performance optimization
  • Update SPDX headers across codebase for REUSE compliance
  • Simplify type annotations and modernize build system
  • Enhance CI/CD workflows and development tooling
  • Support for Python >=3.10

Description

Brief description of changes.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update

Checklist

  • Tests pass
  • Code formatted
  • Documentation updated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces Cython compilation to apywire for performance optimization while updating project infrastructure to support Python 3.10+ and ensuring REUSE compliance. The changes simplify type annotations by removing generic type parameters and modernize the build system with proper Cython integration.

Key changes:

  • Add Cython compilation support via new setup.py with SPDX header preservation
  • Remove generic type parameters ([T]) from Wired, wire(), and compile() for Cython compatibility
  • Extend Python version support to include 3.10 and 3.11 in addition to existing 3.12 and 3.13
  • Update SPDX headers across all files with consistent formatting for REUSE 3.0 compliance
  • Add test assertion to verify caching behavior in Wired objects
  • Restructure build commands with separate build (Cython compilation) and dist (package distribution) targets

Reviewed Changes

Copilot reviewed 19 out of 20 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
apywire/wiring.py Removed generic type parameters, simplified type aliases, updated cast to Callable for Cython compatibility
tests/test_simple.py Removed generic type annotation from Wired, added caching behavior test assertion
setup.py New file implementing Cython build with SPDX header injection for generated C files
pyproject.toml Added Cython dependencies, Python 3.10/3.11 support, coverage configuration, simplified license field
Makefile Added reuse target, restructured build/dist targets, updated coverage and all commands
.github/workflows/ci.yml Extended CI matrix to test Python 3.10 and 3.11
.github/workflows/release.yml Changed build command from make build to make dist
.gitignore Added Cython artifacts (*.c, *.so, build/)
Multiple markdown files Updated SPDX header format from inline to block comments
.github/copilot-instructions.md Updated build/publish workflow documentation, removed generic type usage example
.github/dependabot.yml Formatting cleanup in SPDX header
REUSE.toml Added trailing newline

Comment thread Makefile
Comment thread pyproject.toml Outdated
Comment thread setup.py Outdated
Comment thread pyproject.toml
Comment thread Makefile
Comment thread setup.py Outdated
Comment thread setup.py
Comment thread setup.py Outdated
Comment thread setup.py Outdated
Comment thread apywire/wiring.py
 - Introduce Cython compilation for performance optimization
 - Update SPDX headers across codebase for REUSE compliance
 - Simplify type annotations and modernize build system
 - Enhance CI/CD workflows and development tooling
 - Support for Python >=3.10
@alganet alganet merged commit ec3ee73 into main Nov 19, 2025
4 checks passed
@alganet alganet deleted the cython branch November 19, 2025 06:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants