Skip to content

Derive native component versions from root VERSION - #410

Merged
zeth merged 5 commits into
mainfrom
feat/root-version-native-components
Nov 8, 2026
Merged

zeth merged 5 commits into
mainfrom
feat/root-version-native-components

Conversation

@zeth

@zeth zeth commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

Description

Prepare 0.2.6 as the next product release version, synchronizing the remaining Python package metadata. No release tag is created or product package published.

Core and the GTK desktop now derive their versions from the repository-root VERSION, matching the daemon's existing checkout behavior. Remove their committed version copies, track root-only changes during CMake/Meson reconfiguration, and prepare generated local version metadata for standalone source packages. Core Launchpad archives inject the committed root version deterministically; unsigned PR checks build local unpublished archives so they do not collide with an already-published upstream tarball, while real uploads retain the strict reuse check; normal Launchpad preparation supplies native source-package copies.

Make reuse version-aware at the same time: finished SDK cache keys and development SDK/package shelves include the product version (core-<tree>-<version>), and staging rejects a same-source desktop built from a different root version. Update root-version path selection, artifact metadata and the macOS/Windows staging version reads. Existing release SDK tags and installed-core boundaries remain intact; the new development shelf/cache namespace has an initial cold miss.

This is the native-component slice of #130. Python metadata copies remain synchronized by the version tool, and Android version derivation is still outstanding; keep #130 open. Also clarify the runbook's wording to mean the next release using the revised procedure, not Holder's first release.

Validation: 14 release/version/export tests, 27 core tooling tests, 25 staging tests and 10 Ubuntu-package helper tests pass (76 total). Regression coverage exercises root-only CMake/Meson reconfiguration, stale/missing root inputs, standalone metadata, committed-version archive generation, versioned SDK/package reuse and desktop selection. The desktop Meson configure/build at 0.2.6, a full exported core source configure, changed workflow/action YAML, shell syntax, core/contract boundary checks and git diff --check pass. Native Windows/macOS and full Ubuntu package builds still require CI validation. No production release operations were performed.

Windows CI exposed an existing AI-runner view-test race: mutation counters advanced before the asynchronous refresh restored the controls. Reproduced it locally with the existing delayed-refresh fake, then made the tests wait for refreshed controls. All 24 AI configuration view cases pass locally with that delay; Windows CI verifies the platform result. Application behavior is unchanged.

Refs #130 and #122.

Contribution Checklist

Licensing

  • I confirm that I have the right to submit this contribution under the project's GPL licence.
  • I agree that this contribution may be distributed under the project's GPL licence.
  • I have read and agree to the terms in CLA.md.

Code Quality

  • I tested these changes locally.
  • I added or updated tests where appropriate.
  • I ran the project's formatting/linting tools where applicable.
  • I kept the change focused and avoided unrelated refactoring.

Security & Dependencies

  • I have not added unnecessary dependencies.
  • Any new dependencies are appropriately licensed and justified. (None added.)

Documentation

  • I updated relevant documentation where needed.

@zeth
zeth merged commit 735d3af into main Nov 8, 2026
110 checks passed
@zeth
zeth deleted the feat/root-version-native-components branch November 8, 2026 21:54
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.

1 participant