Skip to content

feat: publish foreman-orchestrator to PyPI#19

Merged
ehsantg merged 4 commits into
mainfrom
feat/pypi-publish
Jun 21, 2026
Merged

feat: publish foreman-orchestrator to PyPI#19
ehsantg merged 4 commits into
mainfrom
feat/pypi-publish

Conversation

@ehsantg

@ehsantg ehsantg commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

Closes #13

Summary

  • CI workflow (.github/workflows/ci.yml) — runs pytest on Python 3.11/3.12/3.13 on every push/PR; uploads coverage to Codecov
  • Publish workflow (.github/workflows/publish.yml) — builds sdist + wheel with hatchling, validates with twine check, publishes via PyPI Trusted Publishing (OIDC) — no stored API token; stable v* tags go to PyPI + create a GitHub Release, pre-release tags go to TestPyPI only; publish is gated on the test suite passing
  • Dependabot (.github/dependabot.yml) — weekly grouped updates for pip and github-actions
  • pyproject.toml — author corrected, Python 3.12/3.13 classifiers added, project URLs added, pytest-cov added to dev extras
  • README — static badges replaced with live CI, Codecov coverage, PyPI version/downloads/python-versions badges
  • CONTRIBUTING.md (new) — SemVer bump policy documented (MAJOR/MINOR/PATCH), release process, pyproject.toml as single source of truth
  • CHANGELOG.md — reformatted to Keep a Changelog with ## [X.Y.Z] - YYYY-MM-DD headers, [Unreleased] section, and comparison links at the bottom for all 21 versions

Acceptance checklist

  • Versioning rule (SemVer) documented with a single source of truth (pyproject.toml)
  • Publish workflow uses Trusted Publishing (no API token secrets), gated on green tests, with a TestPyPI dry-run path
  • dependabot.yml covers pip + github-actions
  • A version bump / tag automatically publishes the release and creates a GitHub Release
  • README shows live CI status, coverage, and PyPI badges
  • CHANGELOG in Keep a Changelog format
  • pip install foreman-orchestrator works — one manual step after merge: register a Trusted Publisher on pypi.org/manage/account/publishing pointing to VisionForge-OU/foreman / workflow publish.yml, then push the v0.6.0 tag

Test plan

  • Merge PR; verify CI workflow runs green on main
  • Register PyPI Trusted Publisher (see above)
  • Push git tag v0.6.0-rc1 && git push origin v0.6.0-rc1 — confirm TestPyPI publish succeeds
  • Push git tag v0.6.0 && git push origin v0.6.0 — confirm PyPI publish + GitHub Release created
  • pip install foreman-orchestrator && foreman --version

@ehsantg ehsantg merged commit 4db0f02 into main Jun 21, 2026
3 checks passed
@ehsantg ehsantg deleted the feat/pypi-publish branch June 21, 2026 12:21
@ehsantg ehsantg mentioned this pull request Jun 21, 2026
6 tasks
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.

Publish foreman on PyPi Registry

1 participant