Skip to content

Merge nanobind API by perara - #1

Merged
Zybulon merged 18 commits into
Zybulon:mainfrom
perara:main
Jul 26, 2026
Merged

Merge nanobind API by perara#1
Zybulon merged 18 commits into
Zybulon:mainfrom
perara:main

Conversation

@Zybulon

@Zybulon Zybulon commented Jul 26, 2026

Copy link
Copy Markdown
Owner

No description provided.

perara added 18 commits March 23, 2025 11:52
… updated CMake configuration for nanobind integration, and created build script for wheel generation. Updated .gitignore to exclude build directories.
…t.toml to skip musllinux builds, improved cleanup commands, and specified architectures. Added setup_buildx.sh for Docker buildx setup. Updated setup.cfg with new version and authors. Refined GitHub Actions workflow for multi-architecture builds and publishing to PyPI.
…roved conditional logic for architecture builds and publishing steps, ensuring clarity and correctness in the workflow execution.
…ic for architecture builds in the wheel building process, streamlining the workflow for improved clarity and efficiency.
…ate jobs for x86_64 and ARM64 architectures, improved conditional logic for architecture selection, and updated actions versions for better compatibility. Streamlined environment variable setup and artifact uploads.
… ARM64 architecture to enable NEON and crypto extensions, improving performance on compatible systems.
…eters and logic for improved visual feedback during firing. Adjusted firing flag duration to match pulse duration, enhancing the overall user experience. Removed legacy pulse drawing code for clarity.
…inux image to manylinux_2_28 for better compatibility, specified both x86_64 and aarch64 architectures, and increased CMake build parallel level to 4 for enhanced performance during builds.
…g for broader compatibility

- Introduced LICENSE file with MIT License terms.
- Added MANIFEST.in to include necessary files in the package distribution.
- Updated pyproject.toml to support Python versions 3.8 to 3.12 and adjusted architecture specifications.
- Enhanced setup.cfg with additional metadata and clarified supported Python versions.
- Created test_wheel_build.sh for testing wheel build configuration.
- Refined GitHub Actions workflow for building wheels across multiple platforms.
… specifying the Python executable through setup.py, improving cross-compilation capabilities. Adjusted Python find strategy to ensure correct version detection.
…ermine target architecture (arm64 or x86_64) based on environment variables and system checks, improving build compatibility. Updated .gitignore to exclude .history directory.
…ut naming: Removed the override of OUTPUT_NAME for the BLEND2DPY_TARGET_NAME, ensuring correct naming conventions are maintained.
…i-platform wheel builds

- Documented four key issues and their fixes related to Python version detection, MSBuild parallel build flags, macOS architecture targeting, and module import failures.
- Updated CMakeLists.txt to ensure correct Python executable usage and module naming conventions.
- Enhanced setup.py for platform-specific build configurations and architecture detection.
- Verified successful builds across multiple platforms, preparing for production PyPI publishing.
…rove build logging

- Set the output name of the BLEND2DPY_TARGET_NAME to "_capi" for consistent module imports.
- Adjusted Windows-specific properties to ensure the correct .pyd suffix is used.
- Added debug messages to log the building process and output details for better visibility during builds.
The removal of OUTPUT_NAME broke module imports. The original
OUTPUT_NAME '_capi' is required for proper module installation.

- Reverted to: OUTPUT_NAME '_capi'
- Added debug messages to track build output
- Linux/Windows should work again
- macOS still under investigation
macOS wheels build successfully but fail at import with:
  ModuleNotFoundError: No module named 'blend2d._capi'

Changes:
- Disabled macOS in GitHub Actions workflow
- Added *-macosx* to skip patterns in pyproject.toml
- Created MACOS_DISABLED.md documentation

What works now:
✅ Linux (x86_64, aarch64) - 10 wheels
✅ Windows (AMD64) - 5 wheels
❌ macOS - Disabled (can install from source)

Total: 15 wheels for PyPI release
- Changed installation command in README.md to reflect new package name.
- Updated setup.cfg to rename the package from blend2d to blend2d-python.
- Modified GitHub Actions workflow for Trusted Publishing to use the new package name.
@Zybulon
Zybulon marked this pull request as ready for review July 26, 2026 12:39
@Zybulon
Zybulon merged commit 77d6b55 into Zybulon:main Jul 26, 2026
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