Skip to content

Commit 1bf12cf

Browse files
tbitcsoz-agent
andcommitted
release: v0.2.1 — PID tracking, upgrade --full, CI-gated releases
- Process abort: specsmith exec/ps/abort with cross-platform PID tracking - upgrade --full: sync exec shims, CI, agent files to existing projects - Language templates: Rust, Go, JS/TS (#41) - RTD templates (#38), release workflow (#44), PyPI integration (#36) - Template refactor (#45): organized into language subdirectories - CI-gated releases: test suite must pass before PyPI/RTD publish - Hardened release workflow: full lint+format+mypy+pytest gate Co-Authored-By: Oz <oz-agent@warp.dev>
1 parent 29cef5b commit 1bf12cf

5 files changed

Lines changed: 38 additions & 5 deletions

File tree

.github/workflows/dev-release.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,22 @@ permissions:
99
contents: read
1010

1111
jobs:
12+
test:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v6
16+
- uses: actions/setup-python@v6
17+
with:
18+
python-version: "3.12"
19+
cache: pip
20+
- run: pip install -e ".[dev]"
21+
- run: ruff check src/ tests/
22+
- run: ruff format --check src/ tests/
23+
- run: mypy src/specsmith --ignore-missing-imports
24+
- run: pytest tests/ -x -q
25+
1226
dev-build:
27+
needs: test
1328
runs-on: ubuntu-latest
1429
steps:
1530
- uses: actions/checkout@v6

.github/workflows/release.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ jobs:
1818
python-version: "3.12"
1919
cache: pip
2020
- run: pip install -e ".[dev]"
21-
- run: ruff check src/
21+
- run: ruff check src/ tests/
22+
- run: ruff format --check src/ tests/
2223
- run: mypy src/specsmith --ignore-missing-imports
2324
- run: pytest tests/ -x -q
2425

@@ -54,7 +55,8 @@ jobs:
5455
run: |
5556
gh release create "${{ github.ref_name }}" dist/* \
5657
--title "${{ github.ref_name }}" \
57-
--generate-notes
58+
--generate-notes \
59+
--latest || echo "Release already exists — skipping"
5860
5961
pypi-publish:
6062
needs: build

CHANGELOG.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.2.1] - 2026-04-02
11+
12+
### Added
13+
- **Process execution with PID tracking**: `specsmith exec`, `specsmith ps`, `specsmith abort` — cross-platform (Windows taskkill / POSIX SIGTERM+SIGKILL) process tracking and abort. PID files in `.specsmith/pids/`.
14+
- **`specsmith upgrade --full`**: full sync of infrastructure files — regenerates exec shims, CI configs, agent integrations. Creates missing community/config files. Safe: never overwrites user docs.
15+
- **Language-specific scaffold templates** (#41): Rust (Cargo.toml, main.rs), Go (go.mod, main.go), JS/TS (package.json for web-frontend, fullstack-js).
16+
- **ReadTheDocs templates** (#38): `.readthedocs.yaml` and `mkdocs.yml` for Python/doc projects.
17+
- **Release workflow templates** (#44): `.github/workflows/release.yml` with test gate, language-aware build, GitHub Release, PyPI OIDC publish.
18+
- **PyPI integration** (#36): OIDC-based trusted publishing via release workflow template.
19+
20+
### Changed
21+
- **Template directory restructured** (#45): `pyproject.toml.j2` moved to `python/`. Templates organized into `python/`, `rust/`, `go/`, `js/`, `community/`, `governance/`, `docs/`, `scripts/`, `workflows/`.
22+
- **CI-gated releases**: both dev-release and stable release workflows now run full test suite (ruff check+format, mypy, pytest) before PyPI publish.
23+
- Exec shims (`exec.cmd`, `exec.sh`) now write PID files for `specsmith ps`/`specsmith abort`.
24+
1025
## [0.2.0] - 2026-04-02
1126

1227
### Added
@@ -171,7 +186,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
171186
- **G9**: Session start file list now marks services.md as conditional ("if it exists").
172187
- **G10**: Open TODOs format specified as `- [ ]` / `- [x]` checkbox syntax.
173188

174-
[Unreleased]: https://github.com/BitConcepts/specsmith/compare/v0.2.0...HEAD
189+
[Unreleased]: https://github.com/BitConcepts/specsmith/compare/v0.2.1...HEAD
190+
[0.2.1]: https://github.com/BitConcepts/specsmith/compare/v0.2.0...v0.2.1
175191
[0.2.0]: https://github.com/BitConcepts/specsmith/compare/v0.1.3...v0.2.0
176192
[0.1.3]: https://github.com/BitConcepts/specsmith/compare/v0.1.2...v0.1.3
177193
[0.1.2]: https://github.com/BitConcepts/specsmith/compare/v0.1.1...v0.1.2

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "specsmith"
7-
version = "0.2.0"
7+
version = "0.2.1"
88
description = "Forge governed project scaffolds from the Agentic AI Development Workflow Specification."
99
readme = "README.md"
1010
license = {text = "MIT"}

src/specsmith/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@
88
try:
99
__version__: str = _pkg_version("specsmith")
1010
except PackageNotFoundError: # running from source without install
11-
__version__ = "0.2.0"
11+
__version__ = "0.2.1"

0 commit comments

Comments
 (0)