Conversation
9d62650 to
8114cca
Compare
2f9814b to
8991ec8
Compare
c7d10f2 to
d1422e9
Compare
Linux wheels (x64, arm64) built on ubuntu-latest with --zig. macOS arm64 wheel built on macos-14 natively (needs Apple frameworks). Drops macOS x64 target and ubuntu-arm runner.
setuptools_scm auto-bumps pre-release versions when HEAD has commits past the tag. Use SETUPTOOLS_SCM_PRETEND_VERSION to force exact version. Convert semver pre-release tags (alpha1, beta1, rc1) to PEP 440 (a1, b1, rc1).
…only SDK - Move goreleaser to release-build (creates draft with CLI binaries) - Append Python wheels to draft via gh release upload - Remove goreleaser from release-publish (only PyPI + crates.io now) - Build wheel only, no sdist (pure Python, sdist not needed) - Force SDK version from tag via SETUPTOOLS_SCM_PRETEND_VERSION
…config release-publish.yaml: coglet to PyPI + crates.io (on release published) pypi-package.yaml: SDK to PyPI (on release-publish completion) Split needed because PyPI Trusted Publisher is bound to workflow filename. TODO: merge back once trusted publisher config is updated.
pypi-package.yaml is now a reusable workflow called from release-publish with the tag as an input. This avoids fragile workflow_run head_branch inference and matches the PyPI Trusted Publisher workflow filename config.
Due to pypi already having an alpha1 release we'll just jump to alpha2
goreleaser sets Version to semver (e.g. 0.17.0-alpha1) but pip needs PEP 440 (0.17.0a1). Without this, alpha/beta/rc CLI builds would fail on 'cog build' because pip can't parse the version specifier.
Use rust-lang/crates-io-auth-action to exchange OIDC token for a short-lived publish token. No more long-lived CARGO_REGISTRY_TOKEN secret.
Instead of workflow_call (which inherits caller's OIDC identity), pypi-package.yaml now triggers independently on release:published. Polls PyPI for coglet availability before publishing SDK. This ensures the OIDC cert matches the trusted publisher config.
…stable - Remove ContainsCoglet() skip that prevented cog SDK from installing when coglet was in requirements.txt (breaks openapi_schema generation) - Remove old cog-runtime shim logic: R8_COG_VERSION=coglet env var, pip uninstall cog prefixes, version_check.go dead code - Refactor GetCogWheelConfig/GetCogletWheelConfig into ResolveCogWheel/ ResolveCogletWheel that accept explicit parameters instead of reading globals, making tests deterministic and parallel-safe - Fix Dockerfile generation tests to use explicit COG_WHEEL=pypi
build:sdk and ci:build:sdk now read the version from crates/Cargo.toml, convert semver to PEP 440, and set SETUPTOOLS_SCM_PRETEND_VERSION. This ensures CLI, SDK, and coglet versions always align regardless of branch (main, prerelease/*, or local dev). Also adds -dev support to SemverToPEP440 conversion.
- Merge pypi-package.yaml back into release-publish.yaml (trusted publisher now configured for this filename) - SDK publish uses needs: dependency instead of PyPI polling - Add draft release check: fail if draft for same tag already exists - Update workflows README: release/prerelease docs, version source of truth, trusted publishing, corrected diagrams
uv build --wheel was changed to uv build (wheel + sdist) for build:sdk and ci:build:sdk. Release pipeline updated to upload sdist to GitHub releases and publish to PyPI alongside wheels.
- goreleaser now reads COG_VERSION from Cargo.toml (set by mise build:cog) instead of git describe for ldflags and snapshot version - CI integration tests set COG_WHEEL=dist to use the locally-built wheel rather than PyPI (where the version may not be published yet) - IT harness propagates SSL_CERT_FILE, REQUESTS_CA_BUNDLE, COG_CA_CERT for corporate proxy/MITM environments (e.g. Cloudflare WARP) - Include Cargo.lock update from 0.17.0-alpha3 version bump
getRepoRoot now verifies cwd is inside the resolved repo tree before returning. Prevents auto-detection from finding dist/ wheels when running from an unrelated directory (e.g. test tmpdir). REPO_ROOT env var still works but only when cwd is within the tree.
- Remove 'dist' as a magic keyword in ParseWheelValue; it's now just a relative path resolved to abspath like any other path - Add resolveWheelPath: handles both files and directories, globs for wheels in directories with platform filtering (GOARCH -> wheel tag) - Add platform parameter to ResolveCogletWheel so Dockerfile generator selects the correct arch-specific coglet wheel (x86_64 vs aarch64) - Auto-detect (findWheelInCwdDist) only checks ./dist in cwd, no longer chases REPO_ROOT — predictable behavior, no cross-directory surprises - Remove getRepoRoot, findWheelInDist, findWheelInDistSilent (dead code) - CI: use absolute paths for wheel env vars ($GITHUB_WORKSPACE/dist) - Fix pre-existing bug: GOARCH was set to runtime.GOOS instead of runtime.GOARCH in StandardGenerator
- CI build-cog job now reads version from Cargo.toml and passes COG_VERSION to goreleaser, matching what mise run build:cog does. Without this, goreleaser falls back to git describe which returns the last tag on main (0.16.11) instead of the prerelease version. - Update wheel_resolution test to use $REPO_ROOT/dist (absolute path) instead of the removed 'dist' magic keyword. - Update wheel_coglet_missing test for new error message format.
coglet moved from optional-dependencies to dependencies in pyproject.toml. The verification grep was looking for 'optional-dependencies' which no longer exists, causing exit code 1.
f6b501e to
8752f13
Compare
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.
This branch maintains the changes needed for releasing 0.17.0. As we're performing a prerelease this will be merged into main once we are happy with the state.