Release

RoboCI is currently a public alpha. Release work should keep claims conservative and verify every command that appears in the README or docs.

Publishing

RoboCI publishes with GitHub Actions trusted publishing; maintainers do not store PyPI API tokens in the repository. Configure this repository as a trusted publisher for the roboci project on both TestPyPI and PyPI, using environments named testpypi and pypi.

  1. Run the local checks below and merge the release commit to main.
  2. Run the Publish Python package workflow manually for TestPyPI.
  3. Install the uploaded version from TestPyPI and run roboci demo in a clean environment.
  4. Create and push an annotated tag matching pyproject.toml, for example v0.0.1.
  5. The tag builds the distributions again and publishes them to the protected pypi environment.

The production job rejects tags that do not exactly match package metadata. The pypi GitHub environment should require reviewer approval.

Local Release Checklist

Run from the repository root:

python -m venv /tmp/roboci-release-test
source /tmp/roboci-release-test/bin/activate
python -m pip install --upgrade pip
pip install -e ".[dev,docs]"
python -c "import roboci; print(roboci.__version__)"
python -m roboci --help
roboci --help
pytest
rm -rf build dist *.egg-info
python -m build
python -m twine check --strict dist/*

Dashboard checks:

cd frontend
npm ci
npm run lint
npm test
npm run build

Docs checks:

pip install -e ".[docs]"
mkdocs build --strict

Release Hygiene

  • Keep runs/, baselines/, site/, build/, dist/, virtual environments, caches, and dashboard build output out of commits.
  • Update CHANGELOG.md, CITATION.cff, README version references, roboci.__version__, and package metadata together when the release version changes.
  • Keep packaged demo and benchmark assets under roboci/assets/ aligned with the source copies under examples/ and benchmarks/.
  • Do not publish a stable-release claim until clean install, CLI, tests, docs build, frontend build, and example workflows pass.
  • Do not add a DOI unless one has actually been assigned.

CI Expectations

The GitHub Actions workflows are expected to run without private services or secrets. They install the package, lint and test Python code, lint/test/build the dashboard, run smoke demos, build docs, and upload generated run artifacts for review.