Plan licensing policy and attribution updates
This commit is contained in:
211
docs/roadmap/policy.md
Normal file
211
docs/roadmap/policy.md
Normal file
@@ -0,0 +1,211 @@
|
||||
# Licensing Policy And Attribution Alignment
|
||||
|
||||
## Purpose
|
||||
|
||||
Align Notarius with the upstream licensing-documentation standards while
|
||||
preserving its deliberate policy adaptations, existing project grant, and
|
||||
source-only release process. This is a documentation and policy work set, not
|
||||
a relicensing, runtime, or release-automation project.
|
||||
|
||||
This feature roadmap defines the target end state and required changes. It does
|
||||
not implement the policy or authorize release publication.
|
||||
|
||||
## Reviewed Baseline
|
||||
|
||||
Reviewed on 2026-09-26 against upstream `policy` commit
|
||||
`dafa823981004d4d58a5eb1b59a84ffebbd979da`, available in `../policy`.
|
||||
Notarius's existing policies record upstream baseline
|
||||
`45591a79004c6811950f14dca554f6ff69b7f58e`.
|
||||
|
||||
| Policy | Current Notarius baseline | Target upstream baseline | Required change |
|
||||
| --- | --- | --- | --- |
|
||||
| `docs/policy/oss.md` | Absent | 1.2 | Adopt the licensing and attribution policy with Notarius-specific adaptation. |
|
||||
| `docs/policy/documentation.md` | 1.3 | 1.5 | Merge licensing ownership and discoverability rules. |
|
||||
| `docs/policy/release.md` | 1.1 | 1.2 | Add prospective release-footer guidance without new publication gates. |
|
||||
| Agents, architecture, testing | 1.1 | 1.1 | Retain; these upstream templates have not changed since the recorded baseline. |
|
||||
|
||||
`COPYRIGHT` already identifies Notarius, its copyright statement, and the
|
||||
`GPL-3.0-or-later` grant, including the warranty disclaimer and third-party
|
||||
material statement. `LICENSE` contains the matching GPLv3 text. Comparison with
|
||||
upstream's reference text found only a missing final newline; no substantive
|
||||
license-text change is required.
|
||||
|
||||
Current gaps are the absent `docs/oss/` attribution materials, missing README
|
||||
licensing navigation, missing contributor routing to an OSS policy, and missing
|
||||
release-footer instructions. `docs/integrations/pkg-promptkit.md` currently
|
||||
contains a dependency-license paragraph but is not a canonical attribution
|
||||
inventory.
|
||||
|
||||
## Target End State
|
||||
|
||||
### Policy Alignment Without Policy Replacement
|
||||
|
||||
Adopt the upstream OSS House Format and maintenance rules in
|
||||
`docs/policy/oss.md`. Remove template-adoption instructions and adapt or replace
|
||||
template-only example/reference links so the adopted document has no broken
|
||||
links or dependencies on an adjacent checkout. There is no need to import the
|
||||
template's example project directories.
|
||||
|
||||
Identify Notarius as an application with its already selected
|
||||
`GPL-3.0-or-later` grant. Preserve the upstream distinction between licensing
|
||||
defaults and explicit author choices: adopting the policy does not change
|
||||
existing grants, infer different licenses for internal packages, automatically
|
||||
advance copyright years, or assume ownership of third-party contributions.
|
||||
|
||||
Merge the new documentation ownership rows and licensing boundary guidance into
|
||||
Notarius's adapted documentation policy. Merge the release-footer provision
|
||||
into its adapted release policy. Do not replace either document wholesale.
|
||||
Preserve subprocess-consumer ownership, prospective/current documentation
|
||||
boundaries, immutable accepted ADRs, and the distinction between descriptive
|
||||
implementation details and adopted policy.
|
||||
|
||||
Changed or newly adopted policies must record their actual upstream template
|
||||
version, the upstream commit above, and the actual adoption date. Unchanged
|
||||
policies need no version or date churn merely because the upstream repository
|
||||
has advanced.
|
||||
|
||||
### Canonical Licensing Documentation
|
||||
|
||||
| Path | Target responsibility |
|
||||
| --- | --- |
|
||||
| `COPYRIGHT` | Existing project identity, copyright statement, SPDX expression, grant, disclaimer, and third-party scope statement. |
|
||||
| `LICENSE` | Existing complete project license text. |
|
||||
| `docs/policy/oss.md` | Licensing conventions, attribution format, maintenance, discoverability, and treatment of concrete exceptions. |
|
||||
| `docs/oss/attribution.md` | Canonical component-specific attribution entries. |
|
||||
| `docs/oss/licenses/` | Applicable complete, verbatim standard dependency license texts, including required companion texts. |
|
||||
| `README.md` | Friendly navigation to the project grant and attribution. |
|
||||
| `docs/development.md` | Task-specific routing for licensing, dependency, attribution, and release-document changes. |
|
||||
| `docs/release.md` | Concrete release-footer URLs and preparation instructions for Notarius's existing publication channel. |
|
||||
|
||||
Retain the substance of `COPYRIGHT` and `LICENSE`. Adding a missing final newline
|
||||
is optional formatting cleanup, not relicensing or a prerequisite to adoption.
|
||||
|
||||
### Attribution Based On Actual Incorporated Components
|
||||
|
||||
Inventory relevant direct and transitive dependencies and copied code/assets.
|
||||
Use `go.mod`, the resolved dependency/build graph, pinned module contents, and
|
||||
repository evidence to identify scope; do not treat either direct dependencies
|
||||
alone or every `go.sum` entry as the complete attribution inventory. Development
|
||||
tools do not automatically require entries merely because maintainers use them.
|
||||
|
||||
The current module declarations identify these starting points:
|
||||
|
||||
- ConfigKit v0.4.0 and PromptKit v0.11.0;
|
||||
- `github.com/santhosh-tekuri/jsonschema/v6` v6.0.2;
|
||||
- `golang.org/x/text` v0.40.0;
|
||||
- `gopkg.in/yaml.v3` v3.0.1 and `go.yaml.in/yaml/v4` v4.0.0-rc.6;
|
||||
- PromptKit's OpenRouter and Rakestrawhome backend catalogs at their pinned
|
||||
v2.20260922.1 and v2.20260922.0 revisions, respectively.
|
||||
|
||||
This list is an inspection starting point, not a pre-approved license inventory.
|
||||
Verify each relevant component's terms, notices, and exact source revision at
|
||||
the imported version; do not infer them from a newer sibling checkout or common
|
||||
project ownership. Inspect copied material separately from Go module imports.
|
||||
|
||||
Each attribution entry follows the five-field House Format:
|
||||
|
||||
1. Project name.
|
||||
2. Upstream copyright statement or statements, preserving their wording.
|
||||
3. Applicable SPDX identifier or expression, preserving alternatives/exceptions.
|
||||
4. License and notice links.
|
||||
5. Corresponding source repository link.
|
||||
|
||||
Copy only applicable standard license texts from the upstream reference
|
||||
collection, or an authoritative source if the collection lacks a needed text.
|
||||
Preserve them verbatim and keep explanations outside the texts. Shared standard
|
||||
texts may serve multiple entries. Include directly reachable companion texts;
|
||||
for example, an LGPLv3 entry must link to both LGPLv3 and GPLv3 texts.
|
||||
|
||||
Component source and project-specific notice links must identify the exact
|
||||
imported commit, not a branch or version tag. Determine those commits from
|
||||
authoritative module/VCS metadata; do not guess them. Classify upstream files
|
||||
by their contents: `LICENSE` or `COPYING` can contain project-specific statements
|
||||
as well as standard wording.
|
||||
|
||||
Follow upstream's adopted interpretation that direct links to project-specific
|
||||
notices satisfy its notice-reproduction convention. Do not add local copies or
|
||||
repeated approval requirements solely because license language refers to
|
||||
reproduction or inclusion. Preserve notices already present in incorporated
|
||||
source. Concrete obligations or unresolved rights questions outside this
|
||||
convention receive their own documented treatment; the formatting policy is not
|
||||
a blanket license-compatibility determination.
|
||||
|
||||
### Discoverability And Maintenance
|
||||
|
||||
End README with these links, consistent with the existing project grant:
|
||||
|
||||
```markdown
|
||||
Notarius is licensed under the [GPL v3.0 or later](COPYRIGHT).
|
||||
|
||||
[Open Source attribution notices](docs/oss/attribution.md) are available.
|
||||
```
|
||||
|
||||
Add a contributor reading-guide entry that routes licensing, dependency,
|
||||
attribution, and release-document changes to `docs/policy/oss.md` and the relevant
|
||||
canonical materials. Update component entries in the same change that adds,
|
||||
removes, upgrades, copies, or changes distribution of a relevant component.
|
||||
|
||||
The PromptKit integration guide should link to its canonical attribution entry
|
||||
instead of maintaining a competing notice inventory. Keep integration behavior
|
||||
and pinned API documentation in that guide; the exact-commit rule for attribution
|
||||
links does not require rewriting unrelated API-reference links.
|
||||
|
||||
### Prospective Release Navigation
|
||||
|
||||
New release notes end with links whose visible text is
|
||||
`COPYRIGHT | LICENSE | ATTRIBUTION`, using absolute URLs to the corresponding
|
||||
Notarius files at the immutable release tag or source revision. Unlike upstream
|
||||
component attribution links, these release-navigation links may use the release
|
||||
tag.
|
||||
|
||||
`docs/release.md` supplies a copyable footer using Notarius's Gitea repository
|
||||
and the selected release version. Check intended paths against the candidate
|
||||
source during preparation; an unpublished tag need not resolve remotely yet.
|
||||
|
||||
Notarius continues publishing source through lightweight Git tags and checked-in
|
||||
release notes. It has no hosted release objects or separate download pages, so
|
||||
the upstream hosted-page provision is currently inapplicable. Do not create
|
||||
another publication channel to satisfy it. Preserve branch-before-tag order,
|
||||
the existing validation command, and successful tag push as release completion.
|
||||
|
||||
Apply the formatting convention prospectively. Do not rewrite historical notes,
|
||||
published tags, or accepted ADRs merely to retrofit navigation. Handle any actual
|
||||
omission discovered during inventory deliberately under the applicable policy,
|
||||
not by changing published history.
|
||||
|
||||
## Scope Boundaries
|
||||
|
||||
- No application-code or dependency-version changes are needed for this work.
|
||||
- No substantive rewrite of the existing project grant is proposed.
|
||||
- No new ADR is needed merely to adopt these explicit policy choices.
|
||||
- No mandatory license scanner, SBOM, blanket per-file header sweep, recurring
|
||||
legal sign-off, or full dependency security audit is introduced.
|
||||
- No publication-time network check, CI polling, extra approval gate, binary
|
||||
packaging, or release-script redesign is introduced.
|
||||
- Do not copy unused standard license texts or create placeholder documentation.
|
||||
- Do not weaken or strengthen unrelated Notarius invariants and operator choices.
|
||||
|
||||
## Acceptance And Verification
|
||||
|
||||
- The adopted OSS policy, documentation policy 1.5, and release policy 1.2 agree
|
||||
on canonical ownership and preserve Notarius's deliberate adaptations.
|
||||
- Policy metadata identifies the reviewed upstream baseline and actual adoption
|
||||
date; unchanged policies retain their existing metadata.
|
||||
- Project licensing statements remain consistent with `GPL-3.0-or-later`.
|
||||
- Attribution covers the relevant incorporated components identified by the
|
||||
inventory, including applicable transitive dependencies and copied material.
|
||||
Entries preserve upstream statements and use verified exact-commit links.
|
||||
- Applicable local standard texts are complete and faithful, with companion
|
||||
texts directly reachable from their entries. No unrelated license bundle is
|
||||
imported.
|
||||
- README, contributor guidance, integration references, and the release runbook
|
||||
link to canonical materials without duplicating the attribution inventory.
|
||||
- New-release footer instructions work with the existing source-only workflow;
|
||||
historical releases and publication mechanics are unchanged.
|
||||
- Review edited relative links, source/notice destinations, SPDX expressions,
|
||||
and standard-text comparisons, and run `git diff --check`. This documentation
|
||||
change does not itself warrant production model runs or new runtime tests.
|
||||
|
||||
There are no blocking design decisions at the reviewed baseline. Any concrete
|
||||
unresolved upstream notice or rights issue found during inventory should be
|
||||
recorded with its evidence rather than resolved by an invented blanket rule.
|
||||
Reference in New Issue
Block a user