Repository navigation
Distribute COMPAS for Blender as a Blender extension - #1541
Open
gonzalocasas wants to merge 4 commits into
Open
gonzalocasas wants to merge 4 commits into
gonzalocasas wants to merge 4 commits into
Conversation
Blender 4.2+ distributes add-ons as self-contained extensions. Replace the symlink-based `compas_blender.install` with an extension that bundles the compas wheel and its dependencies (except numpy, which ships with Blender). - Add extensions/blender with the add-on, source manifest and build script. One package is built per Blender Python version (3.11 for Blender 4.2-5.0, 3.13 for 5.1+), split per platform. - Add `invoke build-blender-extension` and keep the manifest version in sync through bump-my-version. - Remove compas_blender.install, compas_blender.print_python_path and the Blender path/version/bootstrapper helpers. - Fix compas_blender.redraw failing in background mode. - Rewrite the Blender installation docs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add a reusable `blender_extension` workflow that downloads Blender, builds the extension packages and uploads them as a workflow artifact. It runs on pull requests touching the Blender integration and is called by the release workflow, which attaches the packages to the GitHub release. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1541 +/- ##
==========================================
- Coverage 62.40% 62.38% -0.02%
==========================================
Files 208 208
Lines 22487 22487
==========================================
- Hits 14032 14029 -3
- Misses 8455 8458 +3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Build one package per job and upload it unzipped (upload-artifact v7, `archive: false`), so every package can be downloaded individually from the workflow run. Add a `check` job that downloads them the same way the release workflow does, with `skip-decompress` so the packages are not extracted. Add a `--platform` option to build.py. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces the symlink-based
compas_blender.installwith a proper Blender extension (Blender 4.2+), built in CI and attached to GitHub releases.Changes
extensions/blender/: add-on, manifest andbuild.py. Bundles thecompaswheel and its dependencies (exceptnumpy, which ships with Blender). One zip per platform and Blender range: 4.2–5.0 (Python 3.11) and 5.1+ (Python 3.13).compas_blender.install,compas_blender.print_python_pathand their helpers and pluggables.invoke build-blender-extensionbuilds locally;bump-my-versionkeeps the manifest version in sync.blender_extensionworkflow builds each package in its own job and uploads it as an individual, unzipped artifact. On release, the packages are attached to the GitHub release; a failed build doesn't block PyPI.compas_blender.redraw()failing in background mode.ubuntu-24.04, the last image with Python 3.9.License
Declared as
SPDX:MITand distributed by us. The Blender Extensions Platform requires GPL-3.0-or-later; publishing there later would only change the license of the wrapper add-on.Testing
compas, draws a scene, and scipy/networkx/jsonschema work.🤖 Generated with Claude Code