Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fe7dbf714f |
No files matched your search
@@ -22,7 +22,7 @@ jobs:
|
||||
name: Go checks
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v6
|
||||
@@ -79,7 +79,7 @@ jobs:
|
||||
runs-on: macos-15
|
||||
if: github.event_name == 'push'
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v6
|
||||
@@ -102,7 +102,7 @@ jobs:
|
||||
runs-on: windows-latest
|
||||
if: github.event_name == 'push'
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v6
|
||||
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
# GoReleaser needs full history and all tags to compute the changelog
|
||||
# and resolve the previous tag.
|
||||
|
||||
+22
-19
@@ -3,27 +3,30 @@
|
||||
**Last Updated:** 2026-06-09
|
||||
|
||||
## Current Status
|
||||
**v0.4.0 is RELEASED and verified.** Nothing in progress. Clean stopping point.
|
||||
Resume on `develop` (default branch). Working tree clean.
|
||||
Releasing **v0.4.0**. All six feature/bugfix branches were integrated into `develop`
|
||||
(six `--no-ff` merges, conflicts resolved, combined gate green: gofmt/vet/lint, race
|
||||
tests, 100% coverage). CHANGELOG finalized as `[0.4.0] - 2026-06-09`. Promoting
|
||||
`develop` → `main` and tagging `v0.4.0` to trigger the GoReleaser `Release` workflow.
|
||||
|
||||
## What Was Done (this session)
|
||||
- Shipped six issues into v0.4.0: #35 (audit reporting overhaul + self-config exclusion + policy-aware group risk), #29 (init full TUI wizard), #31 (resolve: stop guessing SPDX ids), #34 (remove no-op --quiet/--verbose), #33 (refuse symlinked LICENSE), #30 (confine header detection).
|
||||
- Bug fixes #30/#31/#33/#34 were built by parallel worktree-isolated agents (TDD + full gate + PR each).
|
||||
- Integrated all six PRs into `develop` (six --no-ff merges, conflicts resolved), combined gate green (100% coverage), promoted `develop` -> `main`, tagged **v0.4.0**.
|
||||
- Release workflow succeeded: GitHub Release v0.4.0 (6 assets: checksums + darwin/linux arm64+amd64 + windows amd64), Homebrew cask bumped on `KofTwentyTwo/homebrew-tap`.
|
||||
- Authored `RELEASES.md` (full release runbook); added pointer from `RELEASING.md`.
|
||||
## What shipped in v0.4.0 (issues closed)
|
||||
- #35 audit reporting overhaul (`--summary`, `--group-by`, `--sort`, `--depth`, `--only`, per-group risk + breakdowns, attributable violations, findings parity) + self-config exclusion + policy-aware group risk.
|
||||
- #29 init full TUI wizard + live previews + persisted `include`.
|
||||
- #31 resolve: stop guessing SPDX ids for ambiguous aliases.
|
||||
- #34 remove no-op `--quiet`/`--verbose` flags.
|
||||
- #33 refuse to clobber a symlinked LICENSE.
|
||||
- #30 confine header detection to contiguous comment lines.
|
||||
|
||||
## Branch State
|
||||
- `develop` and `main` both at v0.4.0 content; `main` tagged `v0.4.0`. `develop` is one doc commit (this handoff) ahead of `main` after it lands.
|
||||
- Six merged local `feature/GH-*` branches remain and can be pruned (`git branch -d ...`); their remotes can be deleted too.
|
||||
## Release process
|
||||
Documented end-to-end in `RELEASES.md` (full runbook) and `RELEASING.md` (short ref).
|
||||
Tag `vX.Y.Z` on `main` triggers `goreleaser release --clean`: GitHub Release + Homebrew
|
||||
cask (`KofTwentyTwo/homebrew-tap`). Verify with `gh release view` and
|
||||
`brew install --cask KofTwentyTwo/tap/license-tool && license-tool version`.
|
||||
|
||||
## Pending / Next Session
|
||||
- [ ] Prune merged feature branches (local + remote) if desired.
|
||||
- [ ] Verify install on a clean machine: `brew update && brew install --cask KofTwentyTwo/tap/license-tool && license-tool version` (should print v0.4.0).
|
||||
- [ ] Deferred LOW follow-ups (own issues if pursued): block-comment de-stacking in detect (#30 scope); `isWriteRefusal` typed-sentinel refactor + remove dead `model.ResolveOptions.Verbose` (#34 scope).
|
||||
- [ ] No open issues/PRs outstanding from this work.
|
||||
## Open Threads / follow-ups
|
||||
- [ ] Deferred LOW items: #41/#30 block-comment de-stacking; #39/#34 `isWriteRefusal` typed-sentinel refactor and the still-dead `model.ResolveOptions.Verbose` field.
|
||||
- [ ] #32 (include `**`) was fixed on GH-29.
|
||||
|
||||
## Key Reference
|
||||
- Repo: GitHub `KofTwentyTwo/license-tool`. Default branch `develop`; production `main`; tag `vX.Y.Z` on `main` publishes via GoReleaser. Commits reference issues, no AI attribution.
|
||||
- Release runbook: `RELEASES.md`. Gate: `gofmt -l .`; `go vet ./...`; `golangci-lint run`; `go test ./... -race -coverpkg=./internal/...,./cmd/... -covermode=atomic -coverprofile=cover.out`; `go run github.com/vladopajic/go-test-coverage/v2@v2.18.8 --config=.testcoverage.yml`.
|
||||
- Gotcha: never pipe `go build`/`go test` to `tail` in a `&&` chain — it masks the exit code (bit me during merge integration). The Go filetype uses BLOCK comments (`/* */`), not `//`.
|
||||
- Default branch `develop`; production `main`; tags `vX.Y.Z` on `main` publish via GoReleaser.
|
||||
- Gate: `gofmt -l .`; `go vet ./...`; `golangci-lint run`; `go test ./... -race -coverpkg=./internal/...,./cmd/... -covermode=atomic -coverprofile=cover.out`; `go run github.com/vladopajic/go-test-coverage/v2@v2.18.8 --config=.testcoverage.yml`. (Do not pipe `go build`/`go test` to `tail` — it masks the exit code.)
|
||||
- Repo: GitHub `KofTwentyTwo/license-tool`; commits reference issues, no AI attribution.
|
||||
+19
-13
@@ -1,15 +1,21 @@
|
||||
# TODO
|
||||
# TODO: GH-29 Init TUI Wizard
|
||||
|
||||
## Shipped in v0.4.0 (2026-06-09)
|
||||
- [x] #35 audit reporting overhaul + self-config exclusion + policy-aware group risk
|
||||
- [x] #29 init full TUI wizard + live previews + persisted `include`
|
||||
- [x] #31 resolve: stop guessing SPDX ids for ambiguous aliases
|
||||
- [x] #34 remove no-op `--quiet`/`--verbose` flags
|
||||
- [x] #33 refuse to clobber a symlinked LICENSE
|
||||
- [x] #30 confine header detection to contiguous comment lines
|
||||
## Definition
|
||||
- [x] Define full feature specification and MVP boundaries.
|
||||
- [x] Update issue #29 with implementation plan once finalized.
|
||||
|
||||
## Follow-ups (not yet ticketed)
|
||||
- [ ] Prune merged `feature/GH-*` branches (local + remote).
|
||||
- [ ] Detect: de-stack multi-block `/* */` headers (deferred from #30; would need care to avoid over-detection).
|
||||
- [ ] cmd/applier: replace `isWriteRefusal` substring matching with a typed sentinel error (deferred from #34 to avoid colliding with #33).
|
||||
- [ ] model: remove the dead `ResolveOptions.Verbose` field (deferred from #34).
|
||||
## Implementation
|
||||
- [x] Persist `include` patterns in `.license-tool.yaml`.
|
||||
- [x] Add init wizard sample-language catalog and C fallback.
|
||||
- [x] Add live preview rendering for example source files.
|
||||
- [x] Replace interactive `init` form with full-screen TUI.
|
||||
- [x] Preserve deterministic non-TTY `init` behavior.
|
||||
- [x] Update README/DEVELOPERS documentation.
|
||||
|
||||
## Verification
|
||||
- [x] `gofmt -l .`
|
||||
- [x] `go vet ./...`
|
||||
- [x] `golangci-lint run`
|
||||
- [x] `go test ./... -race -coverpkg=./internal/...,./cmd/... -covermode=atomic -coverprofile=cover.out`
|
||||
- [x] `go run github.com/vladopajic/go-test-coverage/v2@v2.18.8 --config=.testcoverage.yml`
|
||||
- [x] `go build ./...`
|
||||
Reference in new issue
Block a user