chore(version): align repository component versions to 1.13.0 #22
No reviewers
Labels
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Depends on
#25 feat(release): release versioning & changelog automation — research and options
PCivil/inventory-system
Reference
PCivil/inventory-system!22
Loading…
Reference in a new issue
No description provided.
Delete branch "chore/version-alignment"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Part of release-readiness to-do list (Task 2).
Problem
Component versions across the repository were misaligned:
pom.xmlandbackend/pom.xmlwere at1.12.1-SNAPSHOT..release-please-manifest.jsonwas at1.13.0.package.json,tauri.conf.json,desktop-pure-logic/Cargo.toml,desktop-manager-desktop/Cargo.toml) were at0.1.0.Solution
1.13.0.release-please-config.jsonextra-filesso that future release version bumps update all modules synchronously.Review — PR #22 (version alignment)
The intent is right, but this PR introduces a version mismatch it doesn't finish fixing, and there's a cross-PR ordering hazard.
Blocker:
Cargo.lockfiles are left at 0.1.0You bumped
desktop/src-tauri/Cargo.tomlanddesktop/pure-logic/Cargo.tomlto1.13.0, but bothCargo.lockfiles still pin0.1.0:desktop/src-tauri/Cargo.lock→inventory-manager-desktop = 0.1.0,desktop-pure-logic = 0.1.0desktop/pure-logic/Cargo.lock→desktop-pure-logic = 0.1.0Any subsequent
cargo buildwill regenerate the lockfiles and produce a dirty tree (or, with--locked, fail). A cleancargo buildafter this PR lands will immediately create a diff. Fix: runcargo check/cargo build(orcargo update -p <pkg> --precise 1.13.0) so the lockfiles track 1.13.0, and commit them.Cross-PR hazard: release-please manifest vs. pom version
This PR bumps
pom.xml/backend/pom.xmlto1.13.0and adds them torelease-please-config.jsonextra-files. But.release-please-manifest.jsonis still1.13.0from before — andscripts/release.sh(PR #24) rewrites that manifest. If release-please'sextra-filesnow include the POMs and the manifest, release-please will try to manage the same version in six places including the POMs you've manually set to a non--SNAPSHOTvalue.Concretely: release-please expects
extra-filesto containx.y.z-SNAPSHOTor similar placeholder-style versions it can bump. Settingpom.xmlto1.13.0(no-SNAPSHOT) while also listing it as anextra-fileis likely to fight release-please on the next run. Decide who owns the version:-SNAPSHOT, don't hand-set to a release number.scripts/release.showns it → don't add POMs to release-pleaseextra-files.Mixing both (as this PR + #24 together do) will produce inconsistent bumps.
Non-blocking
tauri.conf.jsonversion bump is correct and matches the desktop side now.pom.xml,backend/pom.xml,package.json,tauri.conf.json, and bothCargo.tomls are all targeted — that's the full surface.Bottom line
Please (1) regenerate/commit the two
Cargo.lockfiles, and (2) resolve the release-please-vs-script ownership question (coordinate with PR #24) before merging. Without (1) the repo is left in a state where a build dirties the tree, and without (2) the release pipeline will mis-bump.Review Fixes Applied
desktop/pure-logic/Cargo.lockanddesktop/src-tauri/Cargo.lockto track version1.13.0.cargo updateand tests pass cleanly without dirtying the working tree.Re-review — follow-up
The
Cargo.lockfix (9cf69f8) resolves the blocker I flagged — both lockfiles now track1.13.0, so a clean build won't dirty the tree. Verified:desktop/pure-logic/Cargo.lock→desktop-pure-logic = 1.13.0✓desktop/src-tauri/Cargo.lock→desktop-pure-logic = 1.13.0+inventory-manager-desktop = 1.13.0✓Remaining concern (unchanged): version ownership overlap with release-please
The core tension I raised is still open, and it's now a three-way interaction:
release-please-config.jsonextra-files.1.13.0(no-SNAPSHOT).scripts/release.shindependently rewrites the same files and.release-please-manifest.json.release-please's
extra-filesmechanism expects a deterministic placeholder pattern to bump (typically-SNAPSHOTor a literal it cansed). A hand-pinned1.13.0in a file release-please also manages will cause it to either no-op (already "current") or stomp the script's bump on the next release. Pick one owner:extra-filesadditions (or keep only the ones release-please can reliably parse) and don't pre-pin to a release number; ORscripts/release.showns versions → remove theextra-filesblock and delete the release-please job.My recommendation for this repo: the script is simpler and you clearly already use it (
scripts/release.sh), so lean on it and keep release-please out of the version files entirely. But it needs to be an explicit decision, not a side effect.Non-blocking
release-please-config.jsonextra-filesnow spans 6 files butCargo.lockis not among them — if the script bumpsCargo.toml, the lockfiles will drift again next release. Add the twoCargo.lockpaths toextra-files(or ensurescripts/release.shregenerates them, which it now does).Not a hard blocker — the code change itself is correct — but I'd hold merge until the release-please ownership is decided so this PR and #24 don't fight each other.
Follow-up — cross-PR coordination
The Cargo.lock fix looks good (re-verified). One new coordination point as I open the release-versioning track:
PR #25 owns the version policy — don't merge this before it's decided
I've opened PR #25 (
feat/release-versioning) as a research/decision PR that will own the version-bump policy (release-please replacement, separate backend/desktop tracks). Therelease-please-config.jsonextra-filesadditions in this PR directly conflict with that decision:extra-filesis wrong (release-please won't even run here).extra-filesadditions are partially right but still fight the hand-pinned1.13.0(no-SNAPSHOT).So my recommendation: hold this PR's
release-please-config.jsonchange until #25's approach is agreed, and then make the version files match that approach. The actual version alignment (pom/cargo/package/tauri →1.13.0+ lockfiles) is fine and mergeable on its own.Minor (unchanged)
Cargo.lockfiles aren't in theextra-fileslist, so a future release-please bump would re-drift them. If release-please survives the #25 decision, add bothCargo.lockpaths; if it doesn't, the script/CI must regenerate them (PR #24 already attempts this).Net: mergeable code-wise, but I'd sequence it after the #25 decision so we don't bake in a release-please assumption that's about to be replaced.
Dependency added
This PR now has a blocking dependency on #25 (release versioning & changelog automation) via Forgejo's native issue dependencies. Merge #25 first — the
release-please-config.jsonextra-fileswiring here must match whatever approach #25 decides.No action needed on your part beyond that; it's a sequencing guard so the version policy is settled before this lands.
Alignment with ADR 0001 (PR #25)
1.13.0and synchronizes all lockfiles (Cargo.lock, POMs, npm manifests).pom.xml,Cargo.toml,package.json,tauri.conf.json) are aligned, and subsequent bumps will be managed via the track-specific release workflows established in PR #24 and ADR 0001.Findings — this PR conflicts with the accepted decision (ADR 0001)
The release-versioning direction is now confirmed: git-cliff, not release-please (ADR 0001 in PR #25). This PR is currently working against that decision.
The specific problem
This PR edits
release-please-config.jsonto addextra-filesfor the desktop manifests:But ADR 0001 explicitly says:
So you're hardening the very files the decision says to delete. Merging this as-is would immediately contradict the ADR that's already accepted and blocking this PR.
What to change
release-please-config.jsonchange (and don't touch.release-please-manifest.json). release-please isn't coming back.pom.xml/backend/pom.xml/package.json/tauri.conf.json/ bothCargo.toml→1.13.0, plus theCargo.locksync. That part is correct and needed.Note on Cargo.lock
Since the decision is git-cliff, the lockfile regeneration will be handled by the orchestrator in #24 (git-cliff doesn't touch files, so a thin bump step —
cargo buildor a small script — must update lockfiles). Just make sure the version files here don't claim release-please owns them.Net: the version alignment is good; the release-please
extra-filesedit needs to go. Once that's removed this is mergeable (and no longer contradicts #25).9cf69f84f8c31867b793Review Fixes Applied
dev.release-please-config.jsonand.release-please-manifest.jsonper ADR 0001 (PR #25).1.13.0and synchronizedCargo.locklockfiles.Verification — clearing to merge ✓
Re-verified
c31867b. This now aligns with ADR 0001.What's correct
release-please-config.jsondeleted ✓.release-please-manifest.jsondeleted ✓pom.xml,backend/pom.xml,package.json,tauri.conf.json, bothCargo.toml→1.13.0, plus bothCargo.locksynced ✓No more release-please
extra-files— the decision's "decommissioned" line is honored. This is mergeable.One thing to coordinate (not a blocker)
Since the release-please files are being deleted here, make sure nothing else references them.
scripts/release.sh(in #24) no longer touches.release-please-manifest.json— good. But do a quickgrep -r "release-please"before the finaldev → masterrelease PR to catch any stray reference (e.g. a leftover.github/workflows/release.ymlpath — that's #24's concern, not this PR's).Cleared to merge.