Releasing
Releases are tag-driven. Pushing a v*.*.* tag runs GoReleaser, which builds
linux, darwin, and windows for amd64 and arm64, packages tar.gz archives
(zip on Windows) with checksums.txt, and publishes the GitHub release.
.goreleaser.yaml is the single source of truth; CI runs goreleaser check
and a snapshot build on every change, and make release-check runs the same
locally when GoReleaser is installed.
The same tag push then:
- packs
@brokkai/slopcopfrom those release archives, checked againstchecksums.txt, and publishes it to npm with trusted publishing, so the package needs no npm token. See Publishing to npm. - packs a wheel per release target from the binaries GoReleaser just built,
installs the wheel on every platform GitHub can run, and publishes
brokk-slopcopto PyPI with trusted publishing. See Publishing to PyPI.
Stable versions publish on npm’s latest dist-tag and prereleases on next;
PyPI takes the version from the tag.
Cutting a release
Section titled “Cutting a release”git tag v0.1.0git push origin v0.1.0Then watch the Release workflow. A rerun of the npm or PyPI job skips a version or file that already exists, so a half-finished publish can be finished by rerunning.
What a release changes for users
Section titled “What a release changes for users”- The service’s
SlopCop-Latest-Versionheader starts naming the new release, and older CLIs print the upgrade notice. - The next
slopcop loginor check from the new binary updates the installed agent skill and names the files that changed. - This documentation redeploys on the tag so it describes the released CLI; see This documentation.