Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions openspec/changes/add-release-pipeline/tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@

- [x] 4.1 Create `.github/workflows/release.yml` with a `bump` job triggered `on: push` to `main`, on a Linux runner with a pinned recent `uv` and `commitizen` installed
- [x] 4.2 In the `bump` job, set `permissions: contents: write` and run `cz bump --yes --changelog`
- [ ] 4.3 In the `bump` job, push the bump commit and the `v<version>` tag back to the repo (verify tag push triggers the publish job's `on: push: tags` trigger; if not, switch the bump job's push to a PAT or grant `actions: write` — record the resolution) — *implemented (guarded push); live verification deferred to 6.3–6.5 after merge*
- [ ] 4.4 Ensure pure `chore:`/`docs:`-only pushes to main produce no tag (commitizen determines no increment) — *implemented (cz bump makes no change → push step is a no-op via porcelain check); live verification deferred to 6.3–6.5*
- [x] 4.3 In the `bump` job, push the bump commit and the `v<version>` tag back to the repo — *implemented; resolved live: design Open Question #1 confirmed real (default GITHUB_TOKEN tag push does NOT trigger a separate workflow run), so publish was restructured to `needs: bump` in the same run instead of a separate tag-trigger job; v0.2.0 bump commit + tag pushed successfully in run 30756728386*
- [x] 4.4 Ensure pure `chore:`/`docs:`-only pushes to main produce no tag (commitizen determines no increment) — *implemented (the bump job's `Check whether a tag was created` step gates the push on a real tag, so no-increment runs push nothing and `publish` is skipped via `needs.bump.outputs.tagged`)*

## 5. Release workflow: publish job

Expand All @@ -32,11 +32,11 @@

## 6. Bootstrap & verification

- [ ] 6.1 Confirm the trusted-publisher registration on pypi.org is in place for `mrn-dk/openspec-ui` + workflow `release.yml` + the chosen environment (manual web step, documented in README)
- [ ] 6.2 Bootstrap the first tag: either push `v0.1.0` manually or confirm the first `release.yml` bump run creates it from `0.1.0`; pick whichever yields a clean first release
- [ ] 6.3 Merge the change to `main` on a `feat/release-pipeline` branch; observe `ci.yml` build-check passes
- [ ] 6.4 Observe `release.yml` bump job runs on the merge and creates/commits the version bump + changelog + `v<version>` tag
- [ ] 6.5 Oberve the `publish` job runs on the tag push and uploads to PyPI; verify the version appears on pypi.org/project/openspec-ui
- [ ] 6.6 Verify `uvx openspec-ui` installs and runs against an unrelated repo containing an `openspec/` root (the documented install line now works)
- [ ] 6.7 Verify the PyPI page shows the corrected Homepage URL and the unofficial disclaimer text
- [x] 6.1 Confirm the trusted-publisher registration on pypi.org is in place for `mrn-dk/openspec-ui` + workflow `release.yml` + the chosen environment (manual web step, documented in README) — *confirmed by user; publish job authenticated via OIDC successfully*
- [x] 6.2 Bootstrap the first tag: either push `v0.1.0` manually or confirm the first `release.yml` bump run creates it from `0.1.0`; pick whichever yields a clean first release — *confirmed: `cz bump` with no prior tag uses the `0.1.0` baseline from pyproject and creates `v0.2.0` directly; no manual seed needed*
- [x] 6.3 Merge the change to `main` on a `feat/release-pipeline` branch; observe `ci.yml` build-check passes — *merged via PR #4; ci.yml build-check passed (run 30756707770)*
- [x] 6.4 Observe `release.yml` bump job runs on the merge and creates/commits the version bump + changelog + `v<version>` tag — *observed: bump job created commit `bump: version 0.1.0 → 0.2.0` + tag `v0.2.0` (run 30756728386)*
- [x] 6.5 Observe the `publish` job runs on the tag push and uploads to PyPI; verify the version appears on pypi.org/project/openspec-ui — *observed: `uv publish` uploaded `openspec_ui-0.2.0-py3-none-any.whl` + `.tar.gz`; pypi.org/pypi/openspec-ui/json reports latest `0.2.0`*
- [x] 6.6 Verify `uvx openspec-ui` installs and runs against an unrelated repo containing an `openspec/` root (the documented install line now works) — *verified: `uvx openspec-ui` in `/home/mrn/dev/repos/latigo` launched the TUI against that repo's openspec root (6 specs rendered)*
- [x] 6.7 Verify the PyPI page shows the corrected Homepage URL and the unofficial disclaimer text — *verified: project_urls Homepage=`https://github.com/mrn-dk/openspec-ui`; summary begins "An unofficial, community-built…"*
- [x] 6.8 Run `openspec validate add-release-pipeline` and resolve any reported issues
Loading