docs verify: DEVELOPMENT.md in STAGE_READMES; self-labelling release notes; prose corrections to 4.6.0 (#47 Block 3)
Files changed: - .gitea/workflows/release.yml - CHANGES.md - VERSION - instructions/dev/stack-close/SKILL.md - tools/CONTRACT.md - tools/chemenu/commands/docs_verify.py - tools/chemenu/commands/git_publish.py - tools/chemenu/tests/test_docs_verify.py
This commit is contained in:
1 parent
91bd430ac8
commit
72b2b4424f
8 files changed
+137
-12
No files matched your search
@@ -136,7 +136,17 @@ ROOT_README = config.ROOT / "README.md"
|
||||
# tools/README.md is exactly the file it drifted in. INSTALL.md is here for the
|
||||
# same reason: it is human-facing prose about installing an instance, and the
|
||||
# command reference lives exactly once, in tools/CONTRACT.md.
|
||||
STAGE_READMES = ("tools/README.md", "INSTALL.md")
|
||||
#
|
||||
# DEVELOPMENT.md joined them after it drifted the same way (Gitea #47): it grew
|
||||
# a table describing what each verify command checks, which had to be removed by
|
||||
# hand because nothing compared it to anything. It is not shipped - dist_cmd
|
||||
# .ROOT_FILES excludes it - and that is not an argument against listing it here:
|
||||
# `check_readmes_have_no_command_table` skips a file that does not exist, so in
|
||||
# a distributed instance this entry is simply inert, while in the dev checkout
|
||||
# (the only place the file exists, and the only place it can drift) it is
|
||||
# checked. The name is now narrower than the tuple - these are the human-facing
|
||||
# prose docs that must not re-list commands, stage README or not.
|
||||
STAGE_READMES = ("tools/README.md", "INSTALL.md", "DEVELOPMENT.md")
|
||||
|
||||
# Docs that must not re-introduce the pre-migration bare-enum `type:` form.
|
||||
# The per-collection contracts are appended at call time, since which ones exist
|
||||
|
||||
@@ -441,13 +441,18 @@ STACK_MACHINERY_NOTE = (
|
||||
|
||||
|
||||
def touches_stack_machinery(changed_files: list[str]) -> bool:
|
||||
"""Whether `changed_files` includes a path under `version-parts.md`'s
|
||||
scope for the stack version - `tools/`, `types/`, `instructions/`,
|
||||
`AGENTS.md`, or any `<stage>/CONTRACT.md`. A publish in this class is,
|
||||
by construction of the `stack-dev`/`stack-close` split, always followed
|
||||
by the unchecked closing phase - `STACK_MACHINERY_NOTE` times a reminder
|
||||
to land exactly there, for any session, not only one that read the
|
||||
skill that names it."""
|
||||
"""Whether `changed_files` includes a path under the stack version's own
|
||||
scope - `tools/`, `types/`, `instructions/`, `AGENTS.md`, or a path ending
|
||||
in `CONTRACT.md` at any depth. A publish in this class is, by construction
|
||||
of the `stack-dev`/`stack-close` split, always followed by the unchecked
|
||||
closing phase - `STACK_MACHINERY_NOTE` times a reminder to land exactly
|
||||
there, for any session, not only one that read the skill that names it.
|
||||
|
||||
Deliberately a shade broader than CI's version gate, which matches
|
||||
`<one-segment>/CONTRACT.md` only: this decides whether to print a sentence,
|
||||
so over-matching costs a reminder nobody needed, while under-matching costs
|
||||
the reminder in the one case it was built for. The two are not the same
|
||||
predicate and should not be described as one."""
|
||||
for path in changed_files:
|
||||
if path in STACK_MACHINERY_NAMES:
|
||||
return True
|
||||
|
||||
Reference in new issue
Block a user