Add open source licenses page #46

Merged
qwc merged 5 commits from feature/licenses-page into main 2026-02-04 19:48:02 +01:00
Owner

Summary

Closes #44

  • Add cmd/gen-licenses program that parses vendor/modules.txt and collects license texts from all vendored dependencies
  • Generated internal/licenses/licenses_gen.go committed to repo (no runtime filesystem access needed)
  • Add version template function exposing the build version to all templates
  • Add public /licenses page showing app name, version, GPLv3 license, and collapsible license texts for 67 vendored dependencies
  • Update footer to show appName version linking to /licenses instead of hardcoded text
  • Footer now respects branding.app_name config (related to #42)
  • Run go generate ./internal/licenses/... after changing dependencies

Test plan

  • Footer shows version link (e.g., "asiakirjat dev")
  • Click link navigates to /licenses page
  • Licenses page shows app name, version, GPLv3 reference
  • Dependency table lists all vendored modules with collapsible license text
  • Set branding.app_name in config → footer and licenses page reflect custom name
  • Page is accessible without authentication
  • go test ./... passes
  • Binary builds successfully

🤖 Generated with Claude Code

## Summary Closes #44 - Add `cmd/gen-licenses` program that parses `vendor/modules.txt` and collects license texts from all vendored dependencies - Generated `internal/licenses/licenses_gen.go` committed to repo (no runtime filesystem access needed) - Add `version` template function exposing the build version to all templates - Add public `/licenses` page showing app name, version, GPLv3 license, and collapsible license texts for 67 vendored dependencies - Update footer to show `appName version` linking to `/licenses` instead of hardcoded text - Footer now respects `branding.app_name` config (related to #42) - Run `go generate ./internal/licenses/...` after changing dependencies ## Test plan - [ ] Footer shows version link (e.g., "asiakirjat dev") - [ ] Click link navigates to `/licenses` page - [ ] Licenses page shows app name, version, GPLv3 reference - [ ] Dependency table lists all vendored modules with collapsible license text - [ ] Set `branding.app_name` in config → footer and licenses page reflect custom name - [ ] Page is accessible without authentication - [ ] `go test ./...` passes - [ ] Binary builds successfully 🤖 Generated with [Claude Code](https://claude.com/claude-code)
New cmd/gen-licenses program parses vendor/modules.txt and collects
license texts from vendored dependencies. Output is committed as
internal/licenses/licenses_gen.go for use at runtime without
filesystem access. Run `go generate ./internal/licenses/...` to
regenerate after dependency changes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Expose app version to templates via SetVersion(). Add public /licenses
page showing app name, version, GPLv3 license, and a table of all
vendored dependencies with collapsible license texts.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update footer with version link to licenses page
All checks were successful
CI / test (pull_request) Successful in 1m12s
CI / build (pull_request) Successful in 56s
CI / docker (pull_request) Has been skipped
6892d567d7
Replace hardcoded "asiakirjat" footer text with dynamic appName and
version linking to /licenses. Fixes footer to respect branding config.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Show license abbreviation and fix footer layout
Some checks failed
CI / build (pull_request) Blocked by required conditions
CI / docker (pull_request) Blocked by required conditions
CI / test (pull_request) Has been cancelled
ff3719e6bf
- Detect license type (MIT, Apache-2.0, BSD-3-Clause, etc.) in the
  generator and show the abbreviation in the table instead of full text
- Fix footer to have three parts: repo name links to repository,
  version links to /licenses page, static description text

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Hardcode app name in footer
All checks were successful
CI / test (pull_request) Successful in 1m10s
CI / build (pull_request) Successful in 56s
CI / docker (pull_request) Has been skipped
33d343e600
Use literal "asiakirjat" in the footer repo link instead of the
configurable appName, since the footer identifies the software itself.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
qwc merged commit c2a2512c5f into main 2026-02-04 19:48:02 +01:00
qwc deleted branch feature/licenses-page 2026-02-04 19:48:02 +01:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
qwc-open/asiakirjat!46
No description provided.