Skip to content

Proposal: Publish specify-cli to PyPI for easier distribution and use #204

@mbeacom

Description

@mbeacom

Hello! To make the specify-cli tool more accessible to the wider Python community, I'd like to propose publishing it to the Python Package Index (PyPI) under its existing package name, specify-cli.

Why this is valuable

Publishing to PyPI would provide several key benefits:

  • Simplified Installation: Users could install the tool with a standard, familiar command: pip install specify-cli.
  • Easy Dependency Management: It would be straightforward to include specify-cli in project requirements.txt or pyproject.toml files.
  • Improved Discoverability: The package would be searchable on PyPI, increasing its visibility and potential for adoption.
  • Standardized Versioning: PyPI provides a central, trusted registry for managing releases and versions.

Implementation and Next Steps

To facilitate discussion, I am opening a pull request alongside this issue that adds the necessary GitHub Actions workflow to automate the publishing process. This workflow uses OIDC trusted publishing, which is the modern, secure method that avoids managing API tokens as secrets.

For this to be merged and enabled, the following steps would be needed:

  1. Review the Pull Request: feat: Add PyPi releases #205 -- The accompanying PR contains the full implementation of the workflow for review.
  2. Configure Trusted Publishing: In the new PyPI project's settings, you would need to configure it to trust this GitHub repository (github/spec-kit) for publishing. The official guide for this is here: PyPI's Guide to Trusted Publishing.

Example Trust Config in PyPI

Image

The PR is ready for review and contains the complete technical implementation. I'm happy to make any adjustments needed.

Thanks for your consideration and for maintaining this great tool!

@localden If you have any questions about this or need anything, please let me know.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions