Skip to content

release: 0.3.0, with the release-pipeline review fixes - #2

Merged
zknpr merged 3 commits into
mainfrom
release/v0.3.0
Oct 9, 2026
Merged

zknpr merged 3 commits into
mainfrom
release/v0.3.0

Conversation

@zknpr

@zknpr zknpr commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

Problem

  1. The first public release needs a version distinct from the 0.2.0 private beta. The packages changed after it: the navigation pin and CSP directives, the hardened-runtime macOS signature, notices inside every package, and a .deb-only Linux release with a glibc 2.39 floor.
  2. Codex found four defects on Release pipeline, packaging and distribution docs #1, which merged before I read its review, and one more on this PR. All five affect what v0.3.0 would ship.

Solution

Bump to 0.3.0 everywhere the version lives (scripts/release/version.mjs --tag v0.3.0 passes).

Review findings, each verified against the code before fixing:

Finding Verdict Fix
Stale notices (#1 release.yml:217, #2 tauri.conf.json:4) CONFIRMED. THIRD_PARTY_NOTICES.txt:1 read "0.2.0 private beta". Lines 21–23 pointed MPL source requests at releases/tag/v0.2.0-beta.1, which doesn't exist in this repo. The header is version-neutral and points at the release page, which carries mpl-dependency-sources.tar.gz.
Prerelease tags drafted as ordinary releases (#1 release.yml:231) CONFIRMED. version.mjs accepts v0.3.0-beta.1, and gh release create had no --prerelease. The manifest records prerelease, and the workflow adds the flag from it.
DMG described as ad-hoc signed (#1 code-signing-policy.md:14) CONFIRMED. codesign -dv reports both the local and the CI DMG as "not signed at all". The docs and the manifest say the disk image is unsigned and the app inside is ad-hoc signed.
No sha256sum on stock macOS/Windows (#1 README.md:48) CONFIRMED for Windows. On macOS 27, /sbin/sha256sum --check --ignore-missing works, but older releases are unverified. shasum for macOS, sha256sum for Linux, and a PowerShell Get-FileHash check for Windows. That check comes from one exported function, and the Windows build job runs the exact string against its own installer: True for the real hash, False for a wrong one.

Notices drift gate (prompted by a review note). THIRD_PARTY_NOTICES.txt and third-party/inventory.json were generated once, and nothing checked them. scripts/release/notices.mjs now fails CI and every release build when any of these drift:

  • the inventory's Cargo components versus the packages a release resolves. It uses cargo metadata with default features, because raw Cargo.lock would wrongly demand the 26 crates that only the test-only qa-webdriver feature pulls in;
  • the inventory's viewer pin versus viewer-dist's pin;
  • inventory components versus notice sections.

ci.yml also moves to the Node-24 action SHAs.

Architecture

No app code changes. The release manifest gains a prerelease field, and assemble.mjs gains a windows-checksum-command subcommand.

Per-file changes

  • Version bump: package.json, package-lock.json, src-tauri/Cargo.toml, src-tauri/Cargo.lock and src-tauri/tauri.conf.json change only their version lines. README.md and docs/release-readiness.md update the current-version prose.
  • THIRD_PARTY_NOTICES.txt: the title, the MPL source location and the AppImage wording in the header. The notice bodies are unchanged.
  • scripts/release/assemble.mjs: the prerelease field, the DMG wording in signing.macos, per-platform checksum commands in the notes, and windowsChecksumCommand().
  • .github/workflows/release.yml: the conditional --prerelease, and the Windows checksum command run both ways.
  • README.md, docs/code-signing-policy.md, docs/release-readiness.md: the checksum commands and DMG signing wording.
  • scripts/release/release.test.mjs: three regression tests, plus the drift-check unit test.
  • scripts/release/notices.mjs (new), .github/workflows/ci.yml, third-party/README.md: the drift gate, its CI step, and the manual regeneration procedure.

Security

The notices fix restores a working MPL §3.2 source pointer in every package. The prerelease fix prevents a beta from becoming Latest.

Test plan

  • Regressions fail before the fix: the notices test, the prerelease/DMG-manifest test and the checksum-commands test all failed on 2d16004.
  • And pass after it: npm test 26/26.
  • cargo test --locked --lib: 136 passed.
  • CI and the three-platform release build on 0fc3e9b. Windows ran the exact published PowerShell command: True for the real hash, False for a wrong one.
  • Drift gate on the real repo: the release resolves 442 packages and the inventory lists exactly those 442. As a control, removing serde_json from the inventory made it fail naming serde_json 1.0.151; restored, it passes.
  • npm test 27/27. CI and all three release builds pass on 70c10ee, with the drift gate passing in each.
  • After merge, a maintainer pushes v0.3.0, and the workflow drafts the release for candidate QA.

Version bump for the first public release. Changes since the 0.2.0 private beta: the navigation pin and CSP base-uri/form-action/frame-ancestors, the hardened-runtime ad-hoc macOS signature, notices bundled in every package, a .deb-only Linux release with a glibc 2.39 floor, and the release workflow.
@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 8f7fbc88-7fb0-4849-8a5e-77e0267a625f
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-09T07:33:31.493273Z 70c10ee New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2d16004c78

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src-tauri/tauri.conf.json
"$schema": "https://schema.tauri.app/config/2",
"productName": "SQLite Explorer",
"version": "0.2.0",
"version": "0.3.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update the bundled notices for 0.3.0

When the v0.3.0 packages are built, bundle.resources and the release workflow still copy the unchanged THIRD_PARTY_NOTICES.txt, whose heading identifies the product as the “0.2.0 private beta” and whose MPL source-availability section points to the old v0.2.0-beta.1 release. This makes every 0.3.0 installer and its separately uploaded notice carry stale release/source information, so the notice should be updated as part of this version bump.

Useful? React with 👍 / 👎.

- THIRD_PARTY_NOTICES.txt still read "0.2.0 private beta" and sent MPL
  source requests to releases/tag/v0.2.0-beta.1. That tag never existed in
  this repository, so every package would ship a broken source pointer. The
  header is now version-neutral and points at the release page, which
  carries mpl-dependency-sources.tar.gz.
- A prerelease tag drafted an ordinary release, which publishing could make
  Latest. The manifest now records prerelease, and the workflow adds
  --prerelease from it.
- The DMG was described as ad-hoc signed. Only the app inside is (Tauri
  skips the disk image for identity "-"; codesign reports the DMG "not
  signed at all"). The docs and the manifest now say so.
- sha256sum does not exist on Windows. The notes now give shasum for macOS,
  sha256sum for Linux and a PowerShell Get-FileHash check for Windows. That
  command comes from one exported function, and the Windows build job runs
  that exact string against its own installer: True for the real hash,
  False for a wrong one.

Regression tests for the notices, prerelease, DMG wording and checksum
commands failed before this change and pass after it.
@zknpr zknpr changed the title release: 0.3.0 release: 0.3.0, with the release-pipeline review fixes Oct 9, 2026
… graph

THIRD_PARTY_NOTICES.txt and third-party/inventory.json were generated once
and nothing regenerated or checked them. A dependency bump would have
shipped incomplete notices in every package without anything failing.

scripts/release/notices.mjs checks that:
- the inventory's Cargo components are exactly the packages a release
  resolves. This uses `cargo metadata` with default features. The raw lock
  would wrongly demand the 26 qa-webdriver-only crates, which no release
  builds;
- the inventory was built for viewer-dist's pin;
- every inventoried component has a section in the notices.

It runs in CI, so a dependency-bump PR goes red, and in every release build.
Today it passes: the release resolves 442 packages and the inventory lists
exactly those 442. With one shipped crate removed from the inventory it
fails and names the crate.

ci.yml also moves to the Node-24 action SHAs release.yml already uses.
@zknpr
zknpr merged commit 90cd393 into main Oct 9, 2026
6 checks passed
@zknpr
zknpr deleted the release/v0.3.0 branch October 9, 2026 07:50
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