Skip to content

feat(release): retain chunk bytes of a release - #136

Merged
armagankaratosun merged 14 commits into
mainfrom
135-request-firecube-release-retain-and-restore-the-chunk-bytes-of-a-release
Nov 5, 2026
Merged

armagankaratosun merged 14 commits into
mainfrom
135-request-firecube-release-retain-and-restore-the-chunk-bytes-of-a-release

Conversation

@armagankaratosun

Copy link
Copy Markdown
Member

What changed

release create --archive writes a full ZIP, then incremental backups that hold only what changed since the previous release. --retain-versions records S3 VersionIds instead. release verify checks both, and archive restore applies the backup chain. Archive code now lives in core/archive/.

Why

Closes #135.

Affected behavior

  • User / CLI: new --archive, --archive-full, --retain-versions and release verify --sample. archive create without --overwrite now needs hard links.
  • Plugin authors: ReleaseRecord gains an optional retention field.
  • Operators / production: N/A
  • Stored formats or control-plane state: new inventory manifests, a retention key on the release record, a marker inside each ZIP.

Type of change

  • Bug fix (non-breaking)
  • New feature (non-breaking)
  • Breaking change (CLI flags, plugin contract, config, or stored format)
  • Documentation
  • CI / build / chore

Checks run

  • uv run ruff check .
  • uv run ruff format --check .
  • uv run pyright
  • uv run --with bandit bandit -c pyproject.toml -r src scripts -lll
  • uv run pytest --strict-deps -m "not slow and not s3 and not docs_static and not snapshot and not race" -q
  • Docs build (if docs changed): uv run mkdocs build --strict

Follow-up work

Contributor certification

  • Commits are signed off (git commit -s) with my real name and a reachable email.
  • No credentials, generated products, caches, or virtualenvs are included in this PR.
  • If AI assistance materially shaped this change, I disclosed it here and added an Assisted-by trailer.

Refs #135

Signed-off-by: armagankaratosun <armagankaratosun@gmail.com>
Refs #135

Signed-off-by: armagankaratosun <armagankaratosun@gmail.com>
Refs #135

Signed-off-by: armagankaratosun <armagankaratosun@gmail.com>
Refs #135

Signed-off-by: armagankaratosun <armagankaratosun@gmail.com>
Refs #135

Signed-off-by: armagankaratosun <armagankaratosun@gmail.com>
Refs #135

Signed-off-by: armagankaratosun <armagankaratosun@gmail.com>
Refs #135

Signed-off-by: armagankaratosun <armagankaratosun@gmail.com>
Refs #135

Signed-off-by: armagankaratosun <armagankaratosun@gmail.com>
Refs #135

Signed-off-by: armagankaratosun <armagankaratosun@gmail.com>
Refs #135

Signed-off-by: armagankaratosun <armagankaratosun@gmail.com>
Refs #135

Signed-off-by: armagankaratosun <armagankaratosun@gmail.com>
Refs #135

Signed-off-by: armagankaratosun <armagankaratosun@gmail.com>
Refs #135

Signed-off-by: armagankaratosun <armagankaratosun@gmail.com>
Refs #135

Signed-off-by: armagankaratosun <armagankaratosun@gmail.com>
@armagankaratosun armagankaratosun linked an issue Nov 5, 2026 that may be closed by this pull request
2 tasks done
@armagankaratosun
armagankaratosun merged commit f01b745 into main Nov 5, 2026
6 checks passed
@armagankaratosun
armagankaratosun deleted the 135-request-firecube-release-retain-and-restore-the-chunk-bytes-of-a-release branch November 5, 2026 11:10
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.

[REQUEST] firecube release: retain and restore the chunk bytes of a release

1 participant