Release on a version bump, and rewrite the React Native README - #4
Merged
Merged
Conversation
Publishing ran from a tag someone pushed, and the two public repositories were regenerated and pushed by hand, so a merge to main shipped nothing and the mirrors drifted until someone remembered them. A version is now the trigger. mirror.yml regenerates both public repositories on every merge to main; release.yml publishes to Maven Central when the coordinate changed against the previous commit, which the diff answers without waiting on the Central mirror; and the React Native publish workflow asks npm whether package.json's version exists and publishes it when it does not. While every published version is a prerelease the npm workflow also points latest at the newest one. Prereleases belong on next so a stable release can own latest, but with no stable release at all, latest sat on the first alpha ever published and plain npm install handed out a build no README describes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The quick start hand-rolled a capabilities object with limits an adapter can reject, taught bare string presets that the typed constants replaced, and told people to install a dist-tag that resolves to the first alpha ever published. It also carried a TODO comment into the rendered page and documented none of the constants alpha 2 added. Every sample in the new one compiles against the package's own types. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (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.
Releasing was a person running rsync and pushing a tag. This makes a merge to main the release.
The flow
mirror.ymlregenerates both public repositories with the export script on every merge to main and pushes them. Needs aMIRROR_TOKENsecret, see below.release.ymlpublishes to Maven Central when the coordinate inbuild.gradle.ktschanged against the previous commit, then tags and releases. The diff decides, not the registry, because Central's mirror lags by ten minutes or more and would race a re-run.publish.ymlasks npm whetherpackage.json's version exists, and publishes with provenance when it does not.Merging without a version change is a no-op in all three.
The
latestdist-tagPrereleases go to
nextso a stable release can ownlatest. With no stable release at all,latestsat on0.1.0-alpha.1and plainnpm install @splatkit/react-nativehanded out a build no README describes. While every published version is a prerelease, the workflow now pointslatestat the newest one, and stops touching it once something stable owns it.Before merging
Create a
MIRROR_TOKENsecret: a fine-grained token with Contents and Workflows write access toXget7/splatkit-iosandXget7/react-native-splatkit. The built-inGITHUB_TOKENcannot reach another repository, so the mirror job fails without it.README
The React Native README is rewritten against the shipped API. It was teaching a hand-rolled capabilities object with limits an adapter rejects, bare string presets that the typed constants replaced, an install command that resolves to the first alpha, and it carried a
TODO(maintainer)comment into the rendered page. Every code sample in the new one was compiled against the package's own types.Also fixes, from a docs audit: the iOS mirror's landing README still said
0.1.0-alpha.3, and the example app claimed Node 22.11 whileenginesrequires 22.13.Still manual
Building the iOS XCFramework needs a Mac, so that stays a person's job;
docs/RELEASING.mdwrites down the sequence.🤖 Generated with Claude Code