chore: release-process v2 (#2761)
* refactor: simplify release process - all releases from main, dev releases from anywhere
- Stable and pre-release tags (v0.17.0, v0.17.0-alpha3) must be on main,
create draft releases, publish to PyPI and crates.io
- Dev tags (v0.17.0-dev1) can be from any branch, publish immediately
as GH pre-releases with full artifacts, skip PyPI/crates.io
- Move goreleaser (CLI build) from publish to build step so CLI binaries
are available on draft releases before publishing
- Switch crates.io to OIDC trusted publishing
- Delete version-bump.yaml (just edit Cargo.toml directly)
- Add PEP 440 version conversion and SETUPTOOLS_SCM_PRETEND_VERSION
- Update README with new three-tier release documentation
* feat: add Homebrew cask to replicate/tap and update install docs
Add update-homebrew-tap job to release-publish.yaml that generates a
Homebrew cask for macOS (Intel + ARM) from goreleaser checksums, pushed
to replicate/homebrew-tap via the cog-homebrew-tapbot GitHub App. Runs
only for stable releases, after PyPI and crates.io publishing completes.
Update README, getting-started docs, install script, and llms.txt to
recommend brew install replicate/tap/cog as the primary macOS install.
Also:
- Add explicit is_dev guard to publish-pypi-sdk (defense in depth)
- Fix PEP 440 sed to handle dotted prerelease (e.g. beta.1)
- Replace robinraju/release-downloader with gh release download
- Remove unused attestations:write permission
Co-authored-by: Mark Phelps <mphelps@cloudflare.com>
---------
Co-authored-by: Mark Phelps <mphelps@cloudflare.com>