Skip to content

Reuse Blender 5.2.0 dependencies across ARM64 patch builds - #8

Merged
michaelgold merged 1 commit into
mainfrom
fix/reuse-5-2-arm64-deps
Aug 30, 2026
Merged

Reuse Blender 5.2.0 dependencies across ARM64 patch builds#8
michaelgold merged 1 commit into
mainfrom
fix/reuse-5-2-arm64-deps

Conversation

@michaelgold

Copy link
Copy Markdown
Owner

Summary

  • map every Blender 5.2.x Linux ARM64 build to the immutable 5.2.0 dependency release
  • verify shared bundle provenance against the Blender v5.2.0 tag commit
  • keep cache and release identities series-stable while preventing patch builds from poisoning or publishing the base cache/bundle
  • preserve native fallback and exact requested wheel-version validation

Regression evidence

The failed v5.2.1 run requested deps-blender-5.2.1-linux-arm64-v1, received 404, rebuilt dependencies for six hours, and timed out. This change makes it request deps-blender-5.2.0-linux-arm64-v1.

Verification

  • 38 tests pass on CPython 3.13.12
  • no-tools simulation: 24 pass, 14 tool-dependent tests skip
  • Python compilation and workflow YAML parsing pass
  • exact-diff specification and security/correctness reviews: zero findings

Copilot AI lite review requested due to automatic review settings August 30, 2026 11:45

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.

🟢 Approval recommended

The changes align with the stated goal (reuse 5.2.0 deps for 5.2.x ARM64 builds) and include targeted tests, with only a minor documentation formatting issue noted.

Pull request overview

This PR ensures Linux ARM64 builds for Blender 5.2.x reuse the immutable Blender 5.2.0 dependency bundle (release + cache identity), preventing patch releases (e.g., 5.2.1) from triggering expensive native rebuilds while still validating the wheel against the exact requested Blender version.

Changes:

  • Added a semantic-version–validated dependency bundle selector that maps Blender 5.2.x to dependency version 5.2.0.
  • Updated Linux ARM64 build logic and workflow caching/publishing rules to reuse the 5.2.0 bundle across 5.2 patch builds while keeping native fallback behavior.
  • Expanded tests to cover bundle selection rules, rejection of non-semver inputs, and end-to-end patch reuse behavior.
File summaries
File Description
tests/test_arm64_deps_bundle.py Adds unit + integration coverage for 5.2.x → 5.2.0 bundle selection, semver validation, and patch build reuse behavior.
src/buildbpy/main.py Switches ARM64 bundle resolution to the selector and verifies bundle provenance against the correct Blender tag commit.
src/buildbpy/arm64_deps.py Introduces BundleSpec.for_blender_version() to enforce semver input and map 5.2 patch releases to 5.2.0 dependencies.
README.md Documents 5.2.x reuse and immutability behavior for ARM64 dependency bundles.
.github/workflows/build_linux_arm64.yml Uses the selected dependency version for cache/release identity, and prevents patch builds from publishing or saving base caches/bundles.
Review details
  • Files reviewed: 5/5 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread README.md
Comment on lines +79 to +82
exact requested Blender patch version. A successful ARM64 CI build packages and
publishes a dependency tree only when the selected immutable bundle does not
already exist and only after the generated wheel installs and passes `import
bpy`.
@michaelgold
michaelgold merged commit e77580f into main Aug 30, 2026
2 checks passed
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