Skip to content

chore(release): prepare v0.3.0-beta.1 (MAT-137)#176

Merged
mpiton merged 2 commits into
mainfrom
feat/mat-137-release-v0.3.0-beta.1
Jul 19, 2026
Merged

chore(release): prepare v0.3.0-beta.1 (MAT-137)#176
mpiton merged 2 commits into
mainfrom
feat/mat-137-release-v0.3.0-beta.1

Conversation

@mpiton

@mpiton mpiton commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Closes MAT-137 ([Lot 3] Préparer la release v0.3.0-beta.1).

Prepares the release candidate without publishing it: pushing the tag stays a manual decision after review, as the ticket requires.

What's in here

  • Version bump to 0.3.0-beta.1 everywhere: package.json, src-tauri/Cargo.toml, tauri.conf.json (app version + wix 0.3.0.1), both lockfiles.
  • scripts/check-release-versions.sh: one script for the pre-tag check and for CI. It also covers tauri.conf.json and the wix version, which the old inline verify-tag steps never checked (R-02).
  • release.yml: all actions pinned by commit SHA (they weren't, unlike ci.yml); the three inline version checks replaced by the shared script, with the version passed through env so tag names can't inject into the shell; new checksums job that publishes SHA256SUMS and PROVENANCE.txt (tagged commit via git rev-list, workflow run URL) on every release (R-03).
  • CHANGELOG.md: [0.3.0-beta.1] - 2026-07-19 section cut from Unreleased, with highlights, known limitations (no CAPTCHA, MEGA refused until host-side decryption, no remote access) and upgrade notes from v0.2.0-beta (R-04, R-06).
  • README.md: status line, install URLs, features, roadmap row and feedback links moved to v0.3.0-beta.1. Asset filenames are predictions until CI builds them; RELEASING.md has a post-build re-check step.
  • RELEASING.md: the release checklist mapped to R-01 → R-07, ending on the manual tag push.

Validation

  • scripts/check-release-versions.sh 0.3.0-beta.1 → OK (and fails correctly when a version is off)
  • cargo clippy --workspace -- -D warnings → clean
  • cargo test --workspace → 1709 passed, 7 ignored
  • npx vitest run → 729 passed
  • npx oxlint . → clean
  • pre-push hooks (knip, cargo-deny, ts-typecheck, ts-test, rust-test) → green

Not in this PR

No tag is pushed. The tag push is the explicit human decision, taken after merge once the RELEASING.md checklist is walked through. From there release.yml builds and publishes the GitHub Release automatically — that automation is existing behavior, unchanged by this PR.


Summary by cubic

Prepares the v0.3.0-beta.1 release candidate: bumps versions, unifies release checks, and hardens CI with pinned actions, least-privilege checkout, and checksum/provenance publishing. No tag is pushed; publication remains manual per MAT-137.

  • Release Pipeline

    • Bump version to 0.3.0-beta.1 in package.json, src-tauri/Cargo.toml, src-tauri/tauri.conf.json (app + wix), and lockfiles.
    • Add scripts/check-release-versions.sh used locally and in CI to verify package.json, Cargo.toml, tauri.conf.json (app + wix numeric x.y.z.w), and CHANGELOG.md against the tag (version passed via env).
    • Pin all GitHub Actions by commit SHA; release.yml verify-tag now has contents:read and all checkouts don’t persist credentials; release action pinned to the latest major.
    • New checksums job publishes SHA256SUMS and PROVENANCE.txt (tagged commit + workflow run URL) for every release.
  • Changelog & Docs

    • CHANGELOG.md: add 0.3.0-beta.1 with highlights, known limits (no CAPTCHA, MEGA refused, no remote access), and upgrade notes; heading keeps the prerelease suffix.
    • README.md: update status, install URLs, features, roadmap, and feedback links to v0.3.0-beta.1; AppImage command uses the exact filename.
    • RELEASING.md: end-to-end checklist mapped to R-01 → R-07; tag push stays a human decision.

Written for commit d87537e. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • New Features

    • Added release 0.3.0-beta.1 documentation covering premium accounts, expanded hoster behavior (with explicit refusals for certain free hosts), and support for container file types.
    • Updated installation instructions and platform download references to 0.3.0-beta.1.
    • Added upgrade notes, known limitations, and refreshed roadmap/status information.
  • Documentation

    • Introduced a comprehensive “Releasing” checklist with clear acceptance criteria for release readiness.
  • Release Improvements

    • Strengthened release validation and publishing integrity using checksum verification and provenance records.

Bump every version declaration to 0.3.0-beta.1 (package.json, Cargo.toml,
tauri.conf.json app + wix, lockfiles) and add
scripts/check-release-versions.sh so local pre-tag checks and the CI
verify-tag job run the same coherence check, now covering tauri.conf.json
and the wix version which CI never verified before.

release.yml: pin all actions by commit SHA, replace the three inline
version checks with the shared script (version passed via env, not inline
interpolation), and add a checksums job that publishes SHA256SUMS and
PROVENANCE.txt (tagged commit + workflow run URL) on every release.

Cut the CHANGELOG 0.3.0-beta.1 section with honest known limitations (no
CAPTCHA, MEGA refused, no remote access) and upgrade notes, update README
to the new version, and document the whole flow in RELEASING.md. Pushing
the tag stays a manual decision, per the ticket.
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@github-actions github-actions Bot added documentation Improvements or additions to documentation ci dependencies configuration labels Jul 19, 2026
@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The release is bumped to 0.3.0-beta.1, with centralized version validation, pinned GitHub Actions, platform artifact publishing, checksum and provenance uploads, updated release documentation, and refreshed README and changelog content.

Changes

Release 0.3.0-beta.1

Layer / File(s) Summary
Version declarations and release gate
package.json, src-tauri/Cargo.toml, src-tauri/tauri.conf.json, scripts/check-release-versions.sh, .github/workflows/release.yml
Version declarations are synchronized, including the WiX version, and centralized validation checks manifests and the changelog against the expected release version.
Pinned build and publishing workflow
.github/workflows/release.yml
Release jobs use pinned action revisions, build platform artifacts, update the updater manifest, and publish checksums and provenance.
Release checklist and verification
RELEASING.md
The release checklist documents prerequisites, version updates, audits, tagging, CI outputs, post-build checks, and recovery steps.
Release notes and user-facing version references
README.md, CHANGELOG.md
Installation links, feature descriptions, roadmap entries, feedback links, and release notes are updated for 0.3.0-beta.1.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Tag as Release tag
  participant Verify as verify-tag
  participant Gate as check-release-versions.sh
  participant Build as Platform build jobs
  participant Release as GitHub Release
  participant Checksums as checksums job
  Tag->>Verify: Trigger release workflow
  Verify->>Gate: Validate release version
  Gate-->>Verify: Return pass or failure
  Verify->>Build: Start artifact builds
  Build->>Release: Upload release assets
  Release->>Checksums: Expose release assets
  Checksums->>Release: Upload SHA256SUMS and PROVENANCE.txt
Loading

Suggested labels: rust, frontend

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the release-prep change for v0.3.0-beta.1.

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 7

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/release.yml:
- Around line 40-47: Add a job-level permissions declaration for the verify-tag
job granting only contents: read access. Keep the existing release-version
verification step unchanged and ensure no broader repository permissions are
inherited.
- Line 103: Disable persisted checkout credentials on every actions/checkout
step in .github/workflows/release.yml at lines 103, 20, 59, 178, 256, 313, 341,
and 409 by setting persist-credentials to false; leave the existing checkout
revisions and job behavior unchanged.

In `@README.md`:
- Around line 147-148: Update the Discussions entry in README.md to either link
directly to the actual v0.3.0-beta.1 feedback thread or change its label to
simply “Discussions” while retaining the generic discussions URL; do not
describe the landing page as a specific feedback thread.
- Line 24: Update the Portable AppImage command in the README to launch the
exact downloaded filename Vortex_0.3.0-beta.1_amd64.AppImage instead of the
wildcard, while keeping the download and executable permission steps unchanged.

In `@RELEASING.md`:
- Around line 77-80: The documented release flow in RELEASING.md conflicts with
the manual GitHub Release requirement. Update the release-creation description
to state that release creation is a manual post-merge approval step, and ensure
the referenced release.yml flow does not imply or automatically create the
GitHub Release when a tag is pushed.
- Around line 35-36: Update the CHANGELOG.md release-heading guidance in
RELEASING.md to preserve prerelease identifiers, using the full release version
such as 0.3.0-beta.1 rather than reducing it to X.Y.Z. Keep the existing date
and required section guidance unchanged.

In `@scripts/check-release-versions.sh`:
- Around line 27-33: Update the wix_version validation in
scripts/check-release-versions.sh to require exactly four numeric dot-separated
components, while preserving the existing check that the first three components
match core. Reject nonnumeric fourth components and any prerelease or extra
suffixes before platform builds proceed.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 37f29ef7-2b8b-47cd-b566-d31d37d3febc

📥 Commits

Reviewing files that changed from the base of the PR and between 215cdb1 and de38e63.

⛔ Files ignored due to path filters (2)
  • package-lock.json is excluded by !**/package-lock.json
  • src-tauri/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (8)
  • .github/workflows/release.yml
  • CHANGELOG.md
  • README.md
  • RELEASING.md
  • package.json
  • scripts/check-release-versions.sh
  • src-tauri/Cargo.toml
  • src-tauri/tauri.conf.json

Comment thread .github/workflows/release.yml
Comment thread .github/workflows/release.yml
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread RELEASING.md Outdated
Comment thread RELEASING.md
Comment thread scripts/check-release-versions.sh Outdated

@cubic-dev-ai cubic-dev-ai Bot 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.

cubic analysis

All reported issues were addressed across 10 files

Linked issue analysis

Linked issue: MAT-137: [Lot 3] Préparer la release v0.3.0-beta.1

Status Acceptance criteria Notes
⚠️ R-01 — All mandatory checks, audits, tests and the smoke E2E are green on the commit that will be tagged The PR runs the full local suite and pre-push hooks (reports show clippy, cargo test, vitest, oxlint, pre-push hooks green). However the acceptance criterion is specifically about the tagged commit running through the release CI (merge/tag gate) — the tag build has not been pushed/executed yet.
R-02 — Application, manifests and registry versions are coherent and verified by script The PR bumps versions consistently across package.json, Cargo.toml, tauri.conf.json and lockfiles and adds scripts/check-release-versions.sh which is run locally in validation and wired into release.yml.
⚠️ R-03 — CI produces bundles for Linux/Windows/macOS with SHA-256 and provenance tied to the tagged commit The workflow now includes jobs to build platform bundles and a checksums/provenance job that uploads SHA256SUMS and PROVENANCE.txt. Those CI artifacts and published checksums/provenance require the tag build to run to be observed.
⚠️ R-04 — A clean install boots; upgrading preserves config, DB and downloads CHANGELOG and RELEASING.md include upgrade notes and explicit post-build verification steps. The PR does not include evidence of a clean install / upgrade run from a tagged CI artifact — that verification is deferred to post-tag checks in the releasing checklist.
R-05 — Announced plugins build WASM and pass ABI smoke tests against the release host The PR documents plugin verification steps in RELEASING.md and references registry_coherence tests, but it does not include plugin CI results or published plugin SHA256SUMS proving the plugins passed their own CI against this release candidate.
R-06 — Release notes do not claim unimplemented features (e.g., CAPTCHA, MEGA decryption, remote access) CHANGELOG and README explicitly list known limitations (no CAPTCHA, MEGA refused until host-side decryption, no remote access) so release notes avoid claiming unimplemented features.
⚠️ R-07 — No secret, stale local artifact or specs/ files are included in the tag The PR adds explicit pre-tag audit steps in RELEASING.md and the validation run includes audits/pre-push hooks. The final guarantee that a tag contains no secrets or stale artifacts requires the actual tagged commit and CI verification.

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread .github/workflows/release.yml Outdated
Comment thread README.md Outdated
Comment thread RELEASING.md Outdated
Comment thread scripts/check-release-versions.sh Outdated
Comment thread .github/workflows/release.yml
Comment thread .github/workflows/release.yml
Comment thread README.md Outdated
verify-tag gets contents: read, every checkout stops persisting the
workflow token (nothing in the pipeline pushes via git), and the
action-gh-release pins move from v2.6.2 to v3.0.2. The wix version check
now requires strictly numeric x.y.z.w instead of a prefix match, README
launches the AppImage by exact filename and links Discussions without
promising a thread that doesn't exist yet, and RELEASING.md spells out
that the changelog heading keeps the prerelease suffix.
@codspeed-hq

codspeed-hq Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 26 untouched benchmarks


Comparing feat/mat-137-release-v0.3.0-beta.1 (d87537e) with main (215cdb1)

Open in CodSpeed

@mpiton
mpiton merged commit b31b559 into main Jul 19, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant