Skip to content

Release on a version bump, and rewrite the React Native README - #4

Merged
Xget7 merged 3 commits into
mainfrom
release-automation
Sep 18, 2026
Merged

Xget7 merged 3 commits into
mainfrom
release-automation

Conversation

@Xget7

@Xget7 Xget7 commented Sep 18, 2026

Copy link
Copy Markdown
Owner

Releasing was a person running rsync and pushing a tag. This makes a merge to main the release.

The flow

  • mirror.yml regenerates both public repositories with the export script on every merge to main and pushes them. Needs a MIRROR_TOKEN secret, see below.
  • release.yml publishes to Maven Central when the coordinate in build.gradle.kts changed 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.
  • The React Native mirror's publish.yml asks npm whether package.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 latest dist-tag

Prereleases go to next so a stable release can own latest. With no stable release at all, latest sat on 0.1.0-alpha.1 and plain npm install @splatkit/react-native handed out a build no README describes. While every published version is a prerelease, the workflow now points latest at the newest one, and stops touching it once something stable owns it.

Before merging

Create a MIRROR_TOKEN secret: a fine-grained token with Contents and Workflows write access to Xget7/splatkit-ios and Xget7/react-native-splatkit. The built-in GITHUB_TOKEN cannot 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 while engines requires 22.13.

Still manual

Building the iOS XCFramework needs a Mac, so that stays a person's job; docs/RELEASING.md writes down the sequence.

🤖 Generated with Claude Code

Xget7 and others added 3 commits September 18, 2026 01:40
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>
@Xget7
Xget7 merged commit 8b18cec into main Sep 18, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant