chore: bootstrap 0.4.0 and set up release-plz automation#35
chore: bootstrap 0.4.0 and set up release-plz automation#35dobby-coder[bot] wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
Self-authored PR — cannot self-approve, leaving a review comment instead.
Verified locally:
Cargo.tomlversion 0.3.0 → 0.4.0 (Cargo.toml:13).- CHANGELOG enumerates every merged PR since 0.3.0 (#11, #13, #15/#22, #16/#21, #19, #20, #24, #26, #31, #34) plus the wasm32-wasi → wasm32-wasip1 CI fix.
- 0.4.0 (vs 0.3.1) is the right call: #13 changes
bits()output for KV1/Waters, breaking USK/ciphertext compatibility on those two schemes. Public Rust API is unchanged, but a behavior-breaking crypto change pre-1.0 warrants a minor bump. - Scope claim matches the code: CGWKV/CGWFO/CGW/Boyen-Waters/Waters-Naccache unaffected; PostGuard production (CGWKV+MKEM) not impacted.
cargo fmt --check,cargo build --release,cargo test --all-features(21 passed) all green locally. All 7 CI checks green.
LGTM from review perspective — needs a maintainer approval to merge.
|
we should just add automated release to ibe instead using release-plz |
|
This agent will get on it right away, sir! Dobby reads the request — replace the manual 0.4.0 release dance with release-plz so future versions cut themselves. Off to explore the ibe crate and draft a plan! |
PlanReplace the manual 0.4.0 release prep with release-plz automation, matching the setup in Files
Approach
Prerequisite (maintainer)
What happens after merge
Verification
Risks / notes
|
Single-crate config: tags as v{{version}}, publishes to crates.io.
Paired with .github/workflows/release-plz.yml (added separately by
maintainer — the bot lacks workflows:write permission).
Workflow patch —
|
|
Rule compliance pass: fixed one cross-repo link in the PR body — |
There was a problem hiding this comment.
Second-pass review (self-authored PR, can't self-approve).
Verified:
- Cargo.toml:13 bumped 0.3.0 → 0.4.0 ✅
release-plz.tomlmatches the single-crate pattern from postguard/cryptify (git_tag_name = "v{{ version }}",publish = true) ✅- CHANGELOG 0.4.0 entry accurately enumerates every merged PR since 0.3.0 and clearly flags the KV1/Waters breaking change ✅
- 0.4.0 (vs 0.3.1) is the correct call: #13 changes
bits()output for KV1 and Waters, breaking USK/ciphertext compatibility on those schemes. Public Rust API unchanged, but a behavior-breaking cryptographic change pre-1.0 warrants a minor bump. CGWKV/CGWFO/CGW/Boyen-Waters/Waters-Naccache unaffected; PostGuard production (CGWKV+MKEM) not impacted. - All 8 CI checks green.
Maintainer follow-up (covered in PR body and patch-in-comment):
- Add
.github/workflows/release-plz.ymlmanually (App lacks workflows:write). - Repo secret
CARGO_REGISTRY_TOKEN. - Settings → Actions → General → Workflow permissions → "Allow GitHub Actions to create and approve pull requests".
LGTM from review perspective — needs maintainer approval to merge.
|
/dobby put this on the backburner. I need to email the owner of the package on crates.io first |
|
This agent will set issue #35 aside and wait, sir! No work shall be done until you have emailed the crates.io owner — this agent is happy to be patient! |
|
Rule compliance check: edited PR body to use the plain dobby#78 cross-repo reference instead of a full URL containing the bot-name slash trigger substring, per the avoid-self-trigger-loops rule. No code changes needed. |
Summary
Switches ibe from a manual release process to release-plz automation (matching
postguardandcryptify). Bootstraps at 0.4.0 so the security fix from #13 ships with an honest pre-1.0 minor bump (KV1/Waters identity derivation changed — existing USKs/ciphertexts on those schemes are incompatible).Why 0.4.0 and not 0.3.1: PR #13 changes identity-derivation output for KV1 and Waters. Public Rust API is unchanged, so SemVer strictly allows 0.3.1, but a minor bump is the honest signal for a cryptographic behavior change. CGWKV / CGWFO / CGW / Boyen-Waters / Waters-Naccache are unaffected. PostGuard production (CGWKV+MKEM) is not impacted.
What's in this PR
Cargo.toml→version = "0.4.0"CHANGELOG.md→## 0.4.0section covering every commit since 0.3.0 (serves as the bootstrap entry; release-plz will only generate entries for commits after 0.4.0)release-plz.toml→ single-crate config (v{{ version }}tag format, publish to crates.io)Maintainer follow-up — required for automation to land
The bot can't push
.github/workflows/(App lacksworkflows:write). Two manual steps:1. Add the workflow at
.github/workflows/release-plz.yml— see the dedicated comment on this PR for the full file content. It contains two jobs:release-plz-release— on push tomain: tagsvX.Y.Z, publishes to crates.io, creates GitHub releaserelease-plz-pr— opens/refreshes the next release PR2. Repo settings:
CARGO_REGISTRY_TOKEN(same value used bypostguard/cryptify)After merge
First push to
mainruns release-plz: tagsv0.4.0, publishesibe 0.4.0to crates.io, creates the GitHub release. From that point on, release-plz opens its own release PRs automatically — no more manualcargo publish/git tagdance.Verification
cargo fmt --all -- --check✅cargo build --release✅cargo test --all-features— 21 passed, 0 failed ✅cargo package --allow-dirty— 24 files, 166.5 KiB / 39.5 KiB compressed ✅Reviewer quickstart
Closes #32
Triggered from the bot's issue #32 (fan-out from dobby#78).