Skip to content

A publish workflow for tack-core, and CI that installs it alone - #367

Merged
berkgeveci merged 1 commit into
Kitware:mainfrom
berkgeveci:release/publish-workflow
Nov 5, 2026
Merged

berkgeveci merged 1 commit into
Kitware:mainfrom
berkgeveci:release/publish-workflow

Conversation

@berkgeveci

Copy link
Copy Markdown
Collaborator

For #306: the part of #366 that can merge now, so that the publish workflow is on main and the TestPyPI dry run can run. Nothing here changes what users are told to install. #366 keeps the docs and the backend messages that say pip install tack-core, for the release.

  • .github/workflows/publish.yml:
    • On a v* tag: checks that the tag matches tack-core's version, builds the wheel and the sdist, runs twine check --strict, installs tack-core alone from each and runs a kernel. Then it uploads to PyPI with trusted publishing, after the pypi environment's approval.
    • Run by hand (Actions → Publish → Run workflow): the same build uploads to TestPyPI.
  • CI's wheel job: builds tack-core's sdist too, runs twine check on it, and installs tack-core alone from the wheel and from the sdist (tools/check_core_install.py).
  • tack.dataset without tack-vis: the error names the command that installs tack-vis from the repository, at this release's tag.
  • RELEASING.md: the one-time setup (trusted publishers, GitHub environments) and a release's steps.

The trusted publishers on PyPI and TestPyPI are set up (owner Kitware, repository tack, workflow publish.yml, environments pypi and testpypi).

After this merges: run Publish by hand on main. It uploads tack-core 0.6.0 to TestPyPI, which tests the whole chain (OIDC, the trusted publisher, the build) before 0.7.

Tested locally: the wheel and the sdist build and pass twine check --strict; tack-core alone from each runs a kernel and gives the tack-vis hint; actionlint passes.

🤖 Generated with Claude Code

The workflow publishes tack-core to PyPI on a release tag, after the
pypi environment's approval, with trusted publishing; run by hand it
uploads to TestPyPI, the dry run. It checks the tag is the version, builds
the wheel and the sdist, twine-checks both and installs tack-core alone
from each. CI's wheel job does the same checks on every pull request
(tools/check_core_install.py). RELEASING.md has the setup and the steps.

tack.dataset without tack-vis names the command that installs it from the
repository at this release's tag.

Split from Kitware#366, whose docs and backend messages (pip install tack-core)
wait for the release.
berkgeveci added a commit to berkgeveci/tack-fork that referenced this pull request Nov 5, 2026
@berkgeveci
berkgeveci merged commit dc4ca7a into Kitware:main Nov 5, 2026
31 checks passed
berkgeveci added a commit to berkgeveci/tack-fork that referenced this pull request Nov 5, 2026
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