Problem
Four subprojects opt out of the shared release automation by declaring version_file and dev_prerelease in tools/ci/github-release-subprojects.json:
nvca (src/compute-plane-services/nvca)
nvcf-compute-plane-stack (deploy/stacks/nvcf-compute-plane)
nvcf-self-managed-stack (deploy/stacks/self-managed)
nvcf-observability-stack (deploy/stacks/observability)
For these, a push to main only bumps a -dev.N prerelease read from a VERSION file. A stable version appears only when a commit lands on a release branch cut by github-release branch-cut, which also opens a PR advancing the VERSION file to the next train.
Every other subproject takes its version from semantic-release over Conventional Commits on merge to main. Carrying two release models means contributors have to know which one applies to the subproject they touched, and the docs have to describe both.
Proposal
Retire the version-file model so every registered subproject releases the same way:
- Drop
version_file and dev_prerelease from the four entries.
- Delete the four
VERSION files. Nothing outside the release script reads them.
- Remove the
branch-cut command, its two workflow_dispatch jobs, and the release-**/v* push trigger from release-tags.yml.
- Cut releases from the default branch only. A patch on a
release-* maintenance branch is tagged by hand.
Version continuity is preserved by anchoring each line at the version its VERSION file last held: nvca 3.3.0, compute-plane 0.2.0, self-managed 0.8.0, observability 0.0.0. initial_version alone is not enough, because the floor is only synthesized for a service with no tags and each of these has hundreds of -dev.N tags.
Problem
Four subprojects opt out of the shared release automation by declaring
version_fileanddev_prereleaseintools/ci/github-release-subprojects.json:nvca(src/compute-plane-services/nvca)nvcf-compute-plane-stack(deploy/stacks/nvcf-compute-plane)nvcf-self-managed-stack(deploy/stacks/self-managed)nvcf-observability-stack(deploy/stacks/observability)For these, a push to
mainonly bumps a-dev.Nprerelease read from aVERSIONfile. A stable version appears only when a commit lands on a release branch cut bygithub-release branch-cut, which also opens a PR advancing theVERSIONfile to the next train.Every other subproject takes its version from semantic-release over Conventional Commits on merge to
main. Carrying two release models means contributors have to know which one applies to the subproject they touched, and the docs have to describe both.Proposal
Retire the version-file model so every registered subproject releases the same way:
version_fileanddev_prereleasefrom the four entries.VERSIONfiles. Nothing outside the release script reads them.branch-cutcommand, its twoworkflow_dispatchjobs, and therelease-**/v*push trigger fromrelease-tags.yml.release-*maintenance branch is tagged by hand.Version continuity is preserved by anchoring each line at the version its
VERSIONfile last held: nvca3.3.0, compute-plane0.2.0, self-managed0.8.0, observability0.0.0.initial_versionalone is not enough, because the floor is only synthesized for a service with no tags and each of these has hundreds of-dev.Ntags.