You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+15Lines changed: 15 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,21 @@ All notable changes to this project will be documented in this file.
8
8
**Important:** Changes need to be documented below this block as this is the header section. Each section should be separated by a horizontal rule. Newer changelog entries need to be added on top of prior ones to keep the history chronological with most recent changes first.
9
9
10
10
11
+
---
12
+
13
+
## [0.38.1] - 2026-02-27
14
+
15
+
### Added
16
+
17
+
- Publish workflow now updates `specfact-cli-modules/registry/index.json` using a generated registry entry fragment and opens an automated PR against `nold-ai/specfact-cli-modules` when the index changes.
18
+
- Added `scripts/update-registry-index.py` to perform deterministic index upsert operations and emit a change flag for CI decision logic.
19
+
- Added unit tests for registry index upsert behavior in `tests/unit/scripts/test_update_registry_index.py`.
20
+
21
+
### Changed
22
+
23
+
-`.github/workflows/publish-modules.yml` now includes registry-repo checkout, index update, and PR creation flow using `SPECFACT_MODULES_REPO_TOKEN`.
24
+
- Marketplace-02 OpenSpec evidence/tasks were updated to mark tasks `6.2.4` and `6.2.5` complete with recorded TDD and local end-to-end validation.
-**Manual test**: `python scripts/publish-module.py /tmp/sample-module -o /tmp/pub-out` produced tarball and checksum; `--index-fragment /tmp/pub-out/entry.yaml` wrote index fragment.
55
-
-**Workflow**: `.github/workflows/publish-modules.yml` — trigger on tags `*-v*` and workflow_dispatch; resolves module path from tag (e.g. `backlog-v0.1.0` → `src/specfact_cli/modules/backlog` or `modules/backlog`); runs publish script; uploads `dist/*.tar.gz` and `dist/*.sha256` as artifacts. 6.2.4 (index update/PR) and 6.2.5 (test in repo) left for follow-up.
60
+
-**Script**: `scripts/update-registry-index.py` — upserts entry fragment into `registry/index.json`, keeps module IDs deterministic via sorted order, and emits change flag for workflow branching.
61
+
-**Timestamp**: `2026-02-27T07:42:08Z`
62
+
-**Command**: `hatch run pytest tests/unit/scripts/test_update_registry_index.py -q`
63
+
-**Result**: 2 passed.
64
+
-**Workflow (implemented)**: `.github/workflows/publish-modules.yml` now writes `dist/registry-entry.yaml`, checks out `nold-ai/specfact-cli-modules`, updates `registry/index.json`, and creates a registry PR via `gh pr create` when index changed.
-*Deferred: 6.2.4 and 6.2.5 to be done later (registry index update/PR and workflow test in repo).*
142
+
-[x] 6.2.4 Add index.json update and PR creation
143
+
-[x] 6.2.5 Test workflow with test repository
144
+
-Validation note: local end-to-end simulation verified publish -> index update -> registry branch commit flow using a temporary `specfact-cli-modules` test repository; PR creation path is wired via `gh pr create` in workflow and requires `SPECFACT_MODULES_REPO_TOKEN`in CI.
145
145
146
146
## 7. Quality gates
147
147
@@ -223,23 +223,40 @@ Do not implement production code until tests exist and have been run (expecting
223
223
-[x] 10.1.3 Include Co-Authored-By: Claude Sonnet 4.5
Copy file name to clipboardExpand all lines: pyproject.toml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
5
5
[project]
6
6
name = "specfact-cli"
7
-
version = "0.38.0"
7
+
version = "0.38.1"
8
8
description = "The swiss knife CLI for agile DevOps teams. Keep backlog, specs, tests, and code in sync with validation and contract enforcement for new projects and long-lived codebases."
0 commit comments