Publishing

Publishing is designed to happen through GitHub Releases and PyPI trusted publishing, not from a developer laptop.

Release checklist

  1. Confirm repository URLs in pyproject.toml, README.md, and badge links.

  2. Confirm the PyPI project exists and trusted publishing is configured for repository pr1m8/tavily-fastmcp, workflow file release.yml, and environment pypi.

  3. If trusted publishing is not available yet, create a PyPI API token and save it as the GitHub repository secret PYPI_API_TOKEN. For the first upload of a brand-new PyPI project, this may need to be an account-scoped token. Rotate it to a project-scoped token after the project exists. The release workflow uses this token first when present, then falls back to trusted publishing.

  4. Run the local publish gate:

    make publish-check
    
  5. Update the package version in pyproject.toml and src/tavily_fastmcp/server.py.

  6. Commit the release changes and create a tag such as v0.3.1.

  7. Push the branch and tag.

  8. Publish a GitHub Release for the tag. The Release workflow builds and uploads distributions to PyPI.

Manual build

To inspect local distributions without uploading them:

make build
ls dist/

Use pdm publish only for an explicit manual recovery path.