Add per-script and plugin versioning with changelog rules
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Repository instructions
|
||||
|
||||
## Versioning and changelog
|
||||
|
||||
- Follow the component boundaries and version policy in
|
||||
[README.md](README.md#versioning). [versions.json](versions.json) is the
|
||||
authoritative source for current TWS component versions.
|
||||
- Each `.gsc` file has its own version in `versions.json`, keyed by its exact
|
||||
filename. Every completed edit to a game script must bump that script's
|
||||
version and add a matching entry to [CHANGELOG.md](CHANGELOG.md) in the same
|
||||
change. This includes refactors and comment-only edits to script source.
|
||||
Bump only scripts whose source changes; an unchanged script does not inherit
|
||||
a bump from its game, a shared helper, or its T5/T6 counterpart. Document
|
||||
required dependency versions when a shared helper or native API change affects
|
||||
compatibility.
|
||||
- Give each new script its own `1.0.0` entry. For a rename, carry forward and
|
||||
bump its version under the new filename, recording both filenames in the
|
||||
changelog. For removal, record the next version as the final removal entry in
|
||||
the changelog and remove the filename from the active manifest.
|
||||
- Every completed change to a plugin's source, pinned dependencies, or build
|
||||
behavior must bump that plugin's version and add a matching changelog entry.
|
||||
Changes to shared build/dependency tooling that affect both plugins require
|
||||
both versions to increase.
|
||||
- Bump each affected script or plugin once per logical change, not once per
|
||||
editing operation. Use the highest applicable bump: patch for fixes or
|
||||
internal changes, minor for compatible features, major for breaking changes.
|
||||
Reset lower version fields when increasing the minor or major version.
|
||||
- Documentation-only and test-only changes do not require a component version
|
||||
bump. A documentation or test edit accompanying a script/plugin change does
|
||||
not exempt that component from a bump. Ignored build outputs and dependency
|
||||
checkouts do not count as source changes.
|
||||
- Add entries newest first under the actual change date (`YYYY-MM-DD`), with a
|
||||
heading or table row identifying each affected script or plugin and its new
|
||||
version. Record what changed,
|
||||
affected source files, compatibility requirements, and deployment steps,
|
||||
including whether a map restart or full server-process restart is required.
|
||||
State explicitly when there is no new dependency requirement or deployment
|
||||
action. Preserve previous entries; extend the current entry while completing
|
||||
the same logical change.
|
||||
- Consider the matching T5/T6 implementation for every game-specific change.
|
||||
Adapt companion changes to that engine and bump each component actually
|
||||
changed. If the companion needs no change, briefly explain why in the
|
||||
changelog entry. Version numbers do not need to match across components.
|
||||
- Keep TWS component versions separate from upstream revision pins and the
|
||||
native loader's existing `plugin_version()` value. A TWS version bump alone
|
||||
must not rewrite either. Never invent historical releases or describe an
|
||||
unperformed build, test, or deployment as completed.
|
||||
|
||||
## Verification
|
||||
|
||||
- Before finishing, confirm that every affected component has a version bump
|
||||
and a changelog entry with the same version (or its initial/removal entry).
|
||||
Ensure every existing game script has exactly one filename entry in
|
||||
`versions.json`, with no stale entries for removed scripts. Check JSON validity,
|
||||
local documentation links, and `git diff --check` after metadata changes.
|
||||
- Run the checks relevant to the change using the root and component READMEs.
|
||||
Report checks performed and any remaining Windows/Plutonium validation.
|
||||
Documentation or version-metadata changes alone do not require game builds.
|
||||
Reference in New Issue
Block a user