mirror of
https://github.com/github/spec-kit
synced 2026-06-21 13:51:39 +00:00
a57743e3a3
- Add readme = "README.md" to pyproject.toml for PyPI project description - Add manual publish-pypi.yml workflow using trusted publishers (OIDC) - Update release.yml install instructions to prefer PyPI The publish workflow is manually triggered after a release, checks out the specified tag, verifies version consistency, builds with uv, and publishes using trusted publishing (no API tokens required). Prerequisites before first use: - Take ownership of the specify-cli PyPI project (#2908) - Create a 'pypi' environment in repo settings - Configure trusted publisher on PyPI for this repo/workflow Closes #2908 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
77 lines
2.5 KiB
TOML
77 lines
2.5 KiB
TOML
[project]
|
|
name = "specify-cli"
|
|
version = "0.10.2.dev0"
|
|
description = "Specify CLI, part of GitHub Spec Kit. A tool to bootstrap your projects for Spec-Driven Development (SDD)."
|
|
readme = "README.md"
|
|
requires-python = ">=3.11"
|
|
dependencies = [
|
|
"typer>=0.24.0",
|
|
"click>=8.2.1",
|
|
"rich",
|
|
"platformdirs",
|
|
"readchar",
|
|
"pyyaml>=6.0",
|
|
"packaging>=23.0",
|
|
"pathspec>=0.12.0",
|
|
"json5>=0.13.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
specify = "specify_cli:main"
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/specify_cli"]
|
|
|
|
[tool.hatch.build.targets.wheel.force-include]
|
|
# Bundle core assets so `specify init` works without network access (air-gapped / enterprise)
|
|
# Page templates (exclude commands/ — bundled separately below to avoid duplication)
|
|
"templates/checklist-template.md" = "specify_cli/core_pack/templates/checklist-template.md"
|
|
"templates/constitution-template.md" = "specify_cli/core_pack/templates/constitution-template.md"
|
|
"templates/plan-template.md" = "specify_cli/core_pack/templates/plan-template.md"
|
|
"templates/spec-template.md" = "specify_cli/core_pack/templates/spec-template.md"
|
|
"templates/tasks-template.md" = "specify_cli/core_pack/templates/tasks-template.md"
|
|
"templates/vscode-settings.json" = "specify_cli/core_pack/templates/vscode-settings.json"
|
|
# Command templates
|
|
"templates/commands" = "specify_cli/core_pack/commands"
|
|
"scripts/bash" = "specify_cli/core_pack/scripts/bash"
|
|
"scripts/powershell" = "specify_cli/core_pack/scripts/powershell"
|
|
# Bundled extensions (installable via `specify extension add <name>`)
|
|
"extensions/git" = "specify_cli/core_pack/extensions/git"
|
|
"extensions/agent-context" = "specify_cli/core_pack/extensions/agent-context"
|
|
"extensions/bug" = "specify_cli/core_pack/extensions/bug"
|
|
# Bundled workflows (auto-installed during `specify init`)
|
|
"workflows/speckit" = "specify_cli/core_pack/workflows/speckit"
|
|
# Bundled presets (installable via `specify preset add <name>` or `specify init --preset <name>`)
|
|
"presets/lean" = "specify_cli/core_pack/presets/lean"
|
|
|
|
[project.optional-dependencies]
|
|
test = [
|
|
"pytest>=7.0",
|
|
"pytest-cov>=4.0",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
python_files = ["test_*.py"]
|
|
python_classes = ["Test*"]
|
|
python_functions = ["test_*"]
|
|
addopts = [
|
|
"-v",
|
|
"--strict-markers",
|
|
"--tb=short",
|
|
]
|
|
|
|
[tool.coverage.run]
|
|
source = ["src"]
|
|
omit = ["*/tests/*", "*/__pycache__/*"]
|
|
|
|
[tool.coverage.report]
|
|
precision = 2
|
|
show_missing = true
|
|
skip_covered = false
|
|
|