Repository navigation
Prepares the 1.0.0 release - #10
Merged
Merged
Conversation
The publish job writes a settings.xml naming the Central Portal server
and then printed it. The file holds only two ${env.NAME} references,
never a value, but the publish job is the one that carries the
credentials, and no step there needs to print a file that names them.
The step now writes the file and prints nothing.
Refs: uxjv-578
The publish job decides between publishing and checking the listed jars by reading the version's POM at repo1.maven.org. repo1 can lag the Central Portal by some minutes after the Portal reports a deployment published, so a re-run of publish inside that window finds the version not listed and builds, signs and uploads it again. The header's re-run paragraph now says to wait until repo1 answers 200 for the POM before that re-run. Refs: uxjv-578
The release workflow's header lists the failures the tagged commit itself causes, which no re-run can turn green. A deployment the Central Portal fails on validation because of the commit, such as missing POM metadata or a file the build does not produce, is one of them: dropped in the Portal and re-run, it uploads the same files and fails the same way. The header now names it. Refs: uxjv-578
The project's version in pom.xml moves from 0.1.0-SNAPSHOT to 1.0.0, the version the README's Maven and Gradle lines already name, so the tag v1.0.0 at this commit is the one the release workflow accepts. project.build.outputTimestamp stays 2026-10-21T00:00:00Z, the release date; two clean builds of the main, sources and javadoc jars give byte-identical files, which the publish job relies on when it compares its rebuild with the jars the verify job built. CHANGELOG.md gains the 1.0.0 section in place of the Unreleased note: the coordinate, the module, the Java 17 floor, the scope with every public type and its main members as the built jar declares them, and the corpus tag v2.10.0. The four fragments are promoted into its Added list in file-name order, their bullets unchanged, and deleted. Refs: uxjv-578
The instructions described 1.0.0 as the package the repository was being built into and said the sentences about it described a target, not the tree. The tree now holds that package at version 1.0.0, so the section says so and names how it reaches Maven Central: the release workflow publishes it when the tag v1.0.0 is pushed. Refs: uxjv-578
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.
Refs: uxjv-578
The release prep for
systems.riddler:uxid1.0.0, the package's first release on Maven Central. Nothing here tags, signs or publishes: once this is merged, the tagv1.0.0at the merged commit runs.github/workflows/release.yml, which publishes.Commits
Stops printing the Maven settings file in the release workflow: the publish job's settings step writes the file and no longercats it. The file holds only two${env.NAME}references, but the job that carries the credentials has no reason to print a file that names them.Says to wait for repo1 before re-running the publish job alone: the header's re-run paragraph now says that a deployment the Portal reports published is waited for at repo1.maven.org (the version's POM answering 200) before re-runningpublishalone, because repo1 can lag the Portal and a re-run inside that window finds the version not listed and uploads again.Names a Portal validation failure among the commit-caused failures: the header's list of failures the tagged commit itself causes now includes a deployment the Portal fails on validation because of the commit (the POM's metadata, a file the build does not produce), which fails the same way on every re-run.Prepares the 1.0.0 release:pom.xml's own<version>moves from0.1.0-SNAPSHOTto1.0.0;CHANGELOG.mdreplaces the Unreleased note with a## 1.0.0 - 2026-10-21section; the fragmentschangelog.d/uxjv-5tk.md,uxjv-94x.md,uxjv-iq8.mdanduxjv-nyt.mdare promoted into its### Addedlist in file-name order, their bullets unchanged, and deleted in the same commit.States what version 1.0.0 is in the agent instructions:CLAUDE.mdno longer calls 1.0.0 a target the repository is being built into; it sayspom.xmlstates 1.0.0 and the release workflow publishes it when the tagv1.0.0is pushed.The 1.0.0 section
Its opening paragraph names the coordinate, the module and exported package
systems.riddler.uxid, the Java 17 floor, the absence of runtime dependencies, the scope (time-based and deterministic generation, decoding, the validity checks, the monotonic generator and the generation refusals) and the corpus tagv2.10.0withconformance/SOURCE.json. Every public type and member it names was read fromjavap -publicon the builtuxid-1.0.0.jarand from the type pages in the built javadoc jar, not from the fragments:Uxid,UxidOptionsandUxidOptions.Builder(its methodsprefix,size,randSize,compactTime,letterCase,delimiter,time,rand,byteSource,from),Size,LetterCase,ByteSource,DecodeOptionsandDecodeOptions.Builder(delimiter,clock), the sealedDecodeResultwithDecodeResult.Decoded(prefix(),size(),compact(),deterministic(),time()) andDecodeResult.Invalid(reason()),InvalidReason,Monotonic(both constructors,generate(),generate(UxidOptions)),DrawSource(seed,step),UxidException(code()) andErrorCode. A script matched every backticked API name in the file against thejavapoutput; the only names it did not find there are the JDK typesSecureRandomandIllegalArgumentExceptionand the id markerZ.The release jars
Built with
mvn -B -ntp -DskipTests clean packageon themise.tomlJDK (Temurin 25.0.4) and Maven 3.9.16:uxid-1.0.0.jar(modulesystems.riddler.uxid@1.0.0, exportssystems.riddler.uxid, requires onlyjava.base; manifestJava-Version: 17)uxid-1.0.0-sources.jaruxid-1.0.0-javadoc.jarTwo clean builds gave byte-identical files (SHA-256 compared), and
mvn -DskipTests clean verify, the phases the publish job'sclean deployruns before signing, gave the same three sums.project.build.outputTimestampstays2026-10-21T00:00:00Z, which is already the release date. The POM inside the jar is byte-identical topom.xml, the file the publishing plugin uploads: nameuxid, a description, urlhttps://github.com/riddler/uxid-java, the MIT License, a developer, scm, issue management on GitHub Issues, version1.0.0, and one dependency,junit-jupiterin test scope.Gate and checks
mise run gategreen on the release commit's tree before that commit (192 tests, no skips, the corpus runner and hash check included, JaCoCo check met, the javadoc and sources jars built with the javadoc lint atall); the commit staged the byte-identical tree. The workflow andCLAUDE.mdcommits touch no gated path. The README's Maven and Gradle lines already named 1.0.0 onmain, so it is unchanged. No test is added or changed.