Skip to content

SpaceWorks 0.8.2 — permanent release history - #18

Merged
Shaan-Shoukath merged 3 commits into
mainfrom
dev
Sep 3, 2026
Merged

SpaceWorks 0.8.2 — permanent release history#18
Shaan-Shoukath merged 3 commits into
mainfrom
dev

Conversation

@Shaan-Shoukath

Copy link
Copy Markdown
Collaborator

Releases 0.8.2, whose one substantive change is that GitHub Release history is now permanent.

The fix

release.yml kept only the current and immediately previous release, deleting every older release and its Git tag on every run. That is why the Releases page never showed any history.

Neither is deleted any more, and docs/INVARIANTS.md records the decision so it does not get "restored" later.

Container versions are still pruned — deliberately kept as a separate concern:

  • images consume real registry storage while a release row does not;
  • the digest-based retention rules there exist because of a real manifest unknown outage, and are unchanged.

The loop still computes previous_version, because ghcr-retention.py needs it to keep the previous version's images for the installer's rollback-to-previous-release path. So deleting releases would eventually have stranded that rollback, not merely lost history. Verified by simulation that previous_version resolves the same value as before while older releases survive.

The step is renamed to "Prune superseded container versions (release history is kept forever)" to keep the two concerns apart.

Version

0.8.1.1 was requested but is unusable, in three independent places:

  1. test_version_consistency.py:50re.fullmatch(r"\d+\.\d+\.\d+", ...) fails.
  2. release.yml:38exit 1 on a non MAJOR.MINOR.PATCH VERSION, before building anything, so no release would publish.
  3. series="${base%.*}" would derive 0.8.1, colliding with a real base-version string in the container tag scheme.

0.8.2 ships the same change with no pipeline surgery. VERSION and SPECTACULAR_SETTINGS are bumped together as the guard requires, and both frontend artifacts are regenerated — only the version string changed in each, so there is no route drift.

Also included

6bba83d1, a no-content merge absorbing the PR #17 merge commit so dev and main share history. Verified to change zero file content.

Verification

Check Result
Version guard 2 passed
netlify.toml / workflow YAML parse clean
Modified shell block bash -n clean; previous_version resolution simulated
Frontend 240 tests, tsc clean

Note that CI here runs only pip-audit; the suite evidence is from local runs (Docker round-trips 1517/0, host 5960 passed with 17 environment-only failures that pass in Docker).

🤖 Generated with Claude Code

Shaan-Shoukath and others added 3 commits September 3, 2026 19:20
The release workflow retained only the current and immediately previous
release, deleting every older release AND its Git tag on each run. That is why
the Releases page never showed history. A release row and a tag cost nothing,
while the history is the only record of what a given deployment was told to
install, so both are now permanent.

Container versions stay pruned -- images consume real registry storage and the
digest-based retention rules are unchanged. The step is renamed to keep the two
concerns apart.

`previous_version` is still computed from the first listed tag that is not the
current one, because `ghcr-retention.py` needs it to keep the previous version's
images for the installer's rollback path. Verified the loop resolves the same
value it did before, with older releases untouched.

Co-Authored-By: Shaan-Shoukath <shaanshoukath4522@gmail.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Bumps VERSION and SPECTACULAR_SETTINGS together as
tests/test_version_consistency.py requires, and regenerates both frontend
artifacts; only the version string changed in each, so there is no route drift.

0.8.1.1 was requested but is not usable: the semver guard in
test_version_consistency.py rejects it, release.yml exits 1 on a non
MAJOR.MINOR.PATCH VERSION before building anything, and `series="${base%.*}"`
would derive "0.8.1" and collide with a real base-version string in the
container tag scheme. 0.8.2 is the patch bump that ships the same change.

Co-Authored-By: Shaan-Shoukath <shaanshoukath4522@gmail.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Shaan-Shoukath
Shaan-Shoukath merged commit 3a81599 into main Sep 3, 2026
1 check 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.

1 participant