chore(release): prep for v1.0.0 — pom bump, manifest version, README pin, CHANGELOG#71
Merged
chore(release): prep for v1.0.0 — pom bump, manifest version, README pin, CHANGELOG#71
Conversation
…pin, CHANGELOG
Three things, all paving the way for the v1.0.0 tag:
1. pom.xml version 0.4.0-SNAPSHOT → 1.0.0-SNAPSHOT. From v1.0 onward,
wire formats and CLI flags are part of the contract; breaking
either takes a major bump.
2. maven-shade-plugin's ManifestResourceTransformer now emits
Implementation-Title + Implementation-Version. The
App.versionString() helper reads
Class.getPackage().getImplementationVersion() from the bundled
manifest and was falling back to the hard-coded
"0.1.0-SNAPSHOT" for the entire project's life because the
shade transformer didn't write the entry. Tagged releases shipped
correctly only because release.yml rewrites pom-version-per-tag
before this stage; local jars and the new UI version chips
therefore reported "0.1.0-SNAPSHOT" regardless of pom. Fixed
in-place — every build (local or CI) now reflects the actual
pom version.
3. README + CHANGELOG: docker-pin example bumped from "0.3.2" to
"1.0.0"; the `:latest` tag table reworded to clarify
it tracks stable 1.x+ (matches release.yml's `!startsWith(version,
'0.')` gate added in PR-D). CHANGELOG gets the v1.0.0 entry
summarising the audit-driven journey from 0.x and explicitly
calling out the stability commitments (wire formats, CLI flags,
security model).
Local mvn package now reports `netcopy 1.0.0-SNAPSHOT` from the bundled
manifest. ArchitectureTest 8/8.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Final prep before tagging v1.0.0. Three things, all paving the way:
1. pom.xml version
0.4.0-SNAPSHOT→1.0.0-SNAPSHOTFrom v1.0 onward, wire formats and CLI flags are part of the contract; breaking either requires a major bump. Already enforced by:
schemaVersion=1on every persisted file (<state-dir>/jobs/*.json,<file>.netcopy/meta.json) — readers refuse anything higher../mvnw versions:set -DnewVersion=$VERSION) means tagged releases publish with the correct version regardless.2. Fix the manifest-version pre-existing bug
App.versionString()readsClass.getPackage().getImplementationVersion()from the bundled jar manifest. The maven-shade-plugin'sManifestResourceTransformerdidn't actually write that entry, so on every local build the helper fell back to the hard-coded0.1.0-SNAPSHOT. Tagged releases shipped correctly only because the workflow rewrites pom-version-per-tag before the package step.Result: local
java -jar netcopy.jar --versionalways lied. Now:<manifestEntries>block bakesImplementation-Title=NetCopy+Implementation-Version=${project.version}into the jar, so every build (local or CI) reflects the truth — including the new UI version chip from #70.3. README + CHANGELOG
0.3.2→1.0.0;:latesttable reworded to clarify it tracks stable 1.x+ (matches the!startsWith(version, '0.')gate in release.yml).Test plan
mvn package:target/netcopy.jar --versionnow printsnetcopy 1.0.0-SNAPSHOT(was0.1.0-SNAPSHOTfor every build prior to this PR).Follow-up
After this lands →
git tag -a v1.0.0→ release.yml will:ghcr.io/virusalex/netcopy:1.0.0AND:latest(the!startsWith(version, '0.')gate flips on for the first time).make_latest=true(also gated the same way).prerelease=falsefor the first time.🤖 Generated with Claude Code