Plan licensing documentation and policy alignment
This commit is contained in:
150
docs/roadmap/policy.md
Normal file
150
docs/roadmap/policy.md
Normal file
@@ -0,0 +1,150 @@
|
||||
# Licensing Documentation And Policy Alignment
|
||||
|
||||
**Status:** Accepted scope; not yet implemented.
|
||||
|
||||
## Purpose
|
||||
|
||||
Align Promptkit with the upstream standard's licensing-documentation guidance
|
||||
without changing its selected license, runtime behavior, or source-only release
|
||||
model. Make the project grant and dependency attribution easy to find and
|
||||
maintain, with one canonical owner for each topic.
|
||||
|
||||
This roadmap defines the target and changes relative to the current baseline.
|
||||
A separate implementation plan may define staged work later.
|
||||
|
||||
## Baseline
|
||||
|
||||
The reviewed upstream standard is the sibling `../policy` repository at commit
|
||||
`dafa823`, including OSS policy version 1.2, documentation policy version 1.5,
|
||||
and release policy version 1.2. These are adoption references, not a new runtime
|
||||
dependency or a requirement to synchronize automatically with future revisions.
|
||||
|
||||
Promptkit's baseline is commit `1cd0c61`:
|
||||
|
||||
- [COPYRIGHT](../../COPYRIGHT) already identifies the project, copyright holder,
|
||||
LGPL-3.0-or-later grant, warranty disclaimer, and third-party material.
|
||||
- [LICENSE](../../LICENSE) contains the LGPLv3 and incorporated GPLv3 texts.
|
||||
The reviewed standard-text comparison found only a missing final newline in
|
||||
the GPL portion; no substantive license-text replacement is needed.
|
||||
- There is no `docs/policy/oss.md`, attribution document, or dependency license
|
||||
text collection.
|
||||
- The [README](../../README.md#license) still refers to the removed `COPYING`
|
||||
file and describes the earlier license transition as applying from “this
|
||||
revision forward.” The working-tree [v0.11.0 notes](../releases/v0.11.0.md)
|
||||
also have a now-broken relative `COPYING` link.
|
||||
- The [release policy](../policy/release.md) and
|
||||
[release procedure](../release.md) already use local validation and successful
|
||||
tag publication as the release completion point. No CI wait is required.
|
||||
|
||||
## Target End State
|
||||
|
||||
### A Customized OSS Policy
|
||||
|
||||
Add `docs/policy/oss.md`, adapted from the reviewed upstream policy. Retain the
|
||||
actual base version, record the adoption date, and remove template instructions.
|
||||
Identify Promptkit as an LGPL-3.0-or-later Go library whose source and tagged
|
||||
releases are published on Gitea at `gitea.maximumdirect.net/eric/promptkit`.
|
||||
Promptkit does not publish binaries or separate hosted release pages.
|
||||
|
||||
Preserve the author's selected grant and existing third-party terms. Policy
|
||||
adoption is not relicensing. Do not require blanket per-file copyright headers,
|
||||
advance copyright years automatically, or infer ownership of contributions.
|
||||
Any final-newline normalization must leave both license texts unchanged in
|
||||
substance. Do not recreate `COPYING` as a duplicate project-license owner.
|
||||
|
||||
Adopt the upstream House Format and its selected treatment of project-specific
|
||||
notice links. Standard texts are local; project-specific notices link to the
|
||||
exact imported upstream commit. Do not invent additional local-copy requirements
|
||||
or repeatedly reopen that settled house interpretation. Preserve notices already
|
||||
present in incorporated source. Surface concrete obligations or unresolved
|
||||
rights questions not addressed by the format and record their selected treatment;
|
||||
the format itself does not establish license compatibility.
|
||||
|
||||
### Canonical Attribution Materials
|
||||
|
||||
Create `docs/oss/attribution.md` with entries for relevant incorporated or
|
||||
distributed components, including applicable transitive dependencies and copied
|
||||
code/assets. Determine coverage from actual use and selected source versions,
|
||||
not merely direct dependency status or common project ownership. Development
|
||||
tools do not automatically need entries.
|
||||
|
||||
Each entry supplies the upstream project name, faithfully preserved copyright
|
||||
statements, applicable SPDX expression, license/notice links, and a source link
|
||||
at the exact commit corresponding to the imported version. Preserve alternatives
|
||||
and exceptions; do not guess an SPDX identifier or silently choose unresolved
|
||||
licensing terms. Moving branches and version tags are not substitutes for
|
||||
commit-pinned component links.
|
||||
|
||||
Populate `docs/oss/licenses/` with only the required complete, verbatim standard
|
||||
texts, including companion texts where applicable. Reuse shared texts across
|
||||
entries, and make companion texts directly reachable. Inspect the selected
|
||||
dependencies' actual notices before deciding which texts and entries are needed;
|
||||
this roadmap does not preselect their licenses.
|
||||
|
||||
Maintain attribution in the same change that adds, removes, upgrades, copies, or
|
||||
changes distribution of a relevant component. No dependency upgrades are needed
|
||||
solely to adopt this documentation structure.
|
||||
|
||||
### Documentation Ownership And Navigation
|
||||
|
||||
Update the [documentation policy](../policy/documentation.md) to assign ownership
|
||||
to the OSS policy, `COPYRIGHT`, `LICENSE`, attribution entries, and standard
|
||||
dependency texts. Keep Promptkit's library-specific GoDoc, format, and consumer
|
||||
documentation ownership intact. README and release notes provide navigation,
|
||||
not competing licensing or attribution references.
|
||||
|
||||
Update the [contributor guide](../development.md) to route project licensing,
|
||||
dependency/catalog, attribution, and release-document changes to the OSS policy
|
||||
and affected canonical materials. Adopt relevant upstream guidance selectively;
|
||||
do not replace the customized policy set wholesale or create placeholder docs.
|
||||
|
||||
End README with two friendly statements linking to the actual grant in
|
||||
`COPYRIGHT` and the attribution document. Remove the stale transition wording
|
||||
and obsolete `COPYING` reference. Do not expand the README into a legal checklist.
|
||||
|
||||
### Prospective Release Navigation
|
||||
|
||||
Update the release policy and procedure so each new checked-in release note ends
|
||||
with links whose visible text is `COPYRIGHT | LICENSE | ATTRIBUTION`. Use absolute
|
||||
Gitea URLs targeting those files at that release's immutable tag or corresponding
|
||||
immutable source revision. The procedure owns concrete URL construction;
|
||||
component attribution links continue to use imported commits, not release tags.
|
||||
|
||||
Promptkit's existing source-only publication channel remains sufficient. Its
|
||||
annotated tag already derives from the checked-in release note; do not create a
|
||||
hosted download page, separately maintained release body, or downloadable license
|
||||
assets to adopt this convention. If a hosted page is deliberately introduced in
|
||||
the future, preserve the note's footer there as required by the OSS policy.
|
||||
|
||||
Apply footer formatting prospectively. Do not retrofit published notes or move
|
||||
published tags. Repair the current-branch v0.11.0 note's broken `COPYING` link by
|
||||
pointing to that file in the immutable v0.11.0 source tree, where it exists. This
|
||||
navigation correction does not alter the published release or add a new-format
|
||||
footer to its historical note.
|
||||
|
||||
## Scope Boundaries
|
||||
|
||||
No runtime or public API changes, license/grant changes, dependency refresh,
|
||||
new publication channel, or automatic policy synchronization. Preserve existing
|
||||
release completion and compatibility choices, including catalog-data policy.
|
||||
Adopting the licensing guidance does not authorize unrelated changes to release
|
||||
note structure or existing validation gates.
|
||||
|
||||
Attribution preparation and affected-link/text review remain ordinary change
|
||||
work. Do not add mandatory license scanners, an SBOM, recurring legal approvals,
|
||||
publication-time network checks, CI polling, or extra release gates. Future-tag
|
||||
links can be checked against candidate paths before the tag exists remotely.
|
||||
|
||||
The upstream architecture and testing clarifications about adopted constraints,
|
||||
threat scope, and tests that must not invent contracts are a separate follow-up;
|
||||
they are not part of this licensing-focused scope.
|
||||
|
||||
## Completion Criteria
|
||||
|
||||
The customized OSS policy and affected ownership/reading guidance agree; the
|
||||
grant and license texts remain intact; relevant attribution entries and standard
|
||||
texts are present and grounded in selected upstream source; README navigation
|
||||
and the historical broken link are corrected; and future-release footer guidance
|
||||
is usable through Promptkit's existing publication process. Affected local links,
|
||||
standard-text fidelity, and commit-specific upstream destinations receive
|
||||
proportionate validation without introducing permanent new release gates.
|
||||
Reference in New Issue
Block a user