Skip to content

Publish stable and nightly package channels - #9

Merged
JordanNanos merged 2 commits into
masterfrom
codex/public-publish-channels
Aug 28, 2026
Merged

Publish stable and nightly package channels#9
JordanNanos merged 2 commits into
masterfrom
codex/public-publish-channels

Conversation

@JordanNanos

@JordanNanos JordanNanos commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Purpose

Publish stable and nightly ClusterMAX packages from one trusted GitHub Actions workflow.

The current workflow can publish development builds only. A stable 0.2.1 package is required for default pip installation.

What changed

  • The publication workflow accepts stable and nightly channels.
  • The stable channel uses the version in the source package.
  • The nightly channel uses the 0.3.0.devYYYYMMDDNN format.
  • The README explains the stable and nightly installation behavior.
  • The version test proves that the nightly version is newer than stable 0.2.1.

Effect

  • Users: Default installation selects 0.2.1. Installation with --pre selects the newest 0.3.0 development build.
  • Operators: A workflow dispatch can select stable or nightly publication.
  • Developers: The scheduled workflow continues to select the nightly channel.
  • Data and compatibility: Published package data does not change. Python 3.10 or later remains required.

Technical terms

  • PyPI: The Python Package Index that hosts installable Python packages.
  • pip: The Python package installer.
  • --pre: A pip option that permits prerelease versions.
  • development build: A prerelease package created from code before the stable 0.3.0 release.
  • GitHub Actions: The GitHub automation service that builds and publishes the package.

Validation

  • uv run --isolated --with pytest --with packaging python -m pytest -q tests/test_nightly_version.py: Pass. Six tests passed.
  • uv run --isolated --with pytest --with pyyaml --with prompt-toolkit python -m pytest -q: Pass. 1,306 tests and 835 subtests passed.
  • Local wheel resolver test: Pass. Default selected 0.2.1 and --pre selected 0.3.0.dev2026082801.
  • git diff --check: Pass.

Merge plan

  • Merge order: None. This PR can merge independently.
  • Dependency: The PyPI trusted publisher must permit .github/workflows/python-nightly.yml in SemiAnalysisAI/ClusterMAX with the pypi environment. This dependency is complete.
  • Release step: Dispatch the stable channel from master. Approve publication. Then dispatch and approve the nightly channel.

Design decisions for approval

  • Approval required: Yes.
  • Decision: Use 0.3.0 development versions for nightly packages after stable 0.2.1.
  • Options: Use 0.2.2 development versions or 0.3.0 development versions.
  • Recommendation: Use 0.3.0 development versions because this is the next planned stable release.
  • Approver: JordanNanos approved the 0.3.0 development version before this PR.

Risk and recovery

  • Risk: An incorrect channel can publish an unwanted permanent version to PyPI.
  • Safeguard: The stable channel uses the source version. The protected environment requires publication approval.
  • Rollback: Revert the workflow change. Yank an incorrect PyPI release if publication occurs.

Excluded work

  • This PR does not publish a package before merge.
  • This PR does not change the source package version from 0.2.1.

Note

Medium Risk
Wrong channel or version logic can publish an unintended immutable PyPI release; safeguards are channel-specific versioning and the protected pypi environment.

Overview
Renames the GitHub Actions workflow to python-publish and adds a workflow_dispatch channel (stable or nightly, default nightly). Scheduled runs still publish nightlies; operators can manually publish stable from master.

Version selection no longer hardcodes 0.2.1 for every build. Stable uses cmax.__version__ from the repo (still 0.2.1 in this PR). Nightly builds use 0.3.0.devYYYYMMDDNN via NIGHTLY_VERSION: 0.3.0 and the existing nightly script. Concurrency groups are per channel; build checks assert the source tree version while the wheel/CLI report the publication version.

README documents the new nightly prefix and that --pre picks a prerelease newer than stable 0.2.1. Tests fix the script path, expect 0.3.0 in nightly fixtures, and add a check that the nightly string sorts above 0.2.1.

Reviewed by Cursor Bugbot for commit fd345d3. Bugbot is set up for automated code reviews on this repo. Configure here.

@JordanNanos
JordanNanos merged commit d69d7d7 into master Aug 28, 2026
5 checks passed
@JordanNanos
JordanNanos deleted the codex/public-publish-channels branch August 28, 2026 02:31
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