Skip to content

Release/1.3.0 - #63

Open
trifonovmixail wants to merge 229 commits into
1.3.xfrom
release/1.3.0
Open

Release/1.3.0#63
trifonovmixail wants to merge 229 commits into
1.3.xfrom
release/1.3.0

Conversation

@trifonovmixail

Copy link
Copy Markdown
Contributor

No description provided.

- pin the empty-string year of the destructive prune_topics: a domain test
  (current year supplies the candidates, other years untouched) and a CLI
  test (-y '' prune --dry-run takes the current year, not the full tree)
- pin the documented no-validation pass-through of the group -y value at
  CLI level: an off-grammar year yields an empty result, exit 0
- test_cli.py: the history group help-surface assertion now covers all
  five subcommands, matching the corrected CODEMANIFEST wording
Three independent CI failure root causes, fixed:

- Reject a lone trailing dot ('plan.') as an empty extension in
  resolve_topic_file: PurePath.suffix returns '.' for it on Python 3.14,
  bypassing the non-empty-suffix contract (goga/history/paths.py,
  goga/history/CODEMANIFEST requirement updated to match)
- Add portable is_kw_only_dataclass helper to tests/conftest.py and use
  it across test modules: _DataclassParams.kw_only exists only from
  Python 3.12, causing AttributeError in 15 tests on 3.10/3.11
- Apply ruff format to goga/ and tests/ (formatting-only changes across
  the remaining files, plus .usages/*.md python blocks per ruff 0.16)
- Add reflect stage (incidents.md) to the bugfix workflow
- fix five broken anchors in lint/configuration pages; add an Env layering
  section to the home configuration page (mkdocs build --strict is clean)
- add traceability entries for the cli/history, cli/topics, cli/hooks pages
- point edit_uri at the 1.3.x maintenance branch
The convention requires the docstring first line to end with a period.
Thirteen public summaries were wrapped mid-sentence so the first physical
line carried no period: seven fit on a single line and were collapsed,
six were split into a summary sentence plus a continuation sentence.
The convention requires one blank line between logical blocks inside
function and method bodies: initialization before conditionals and
loops, data preparation before processing, processing before the
return. Inserted 217 blank lines at 217 verified boundaries across 46
in-scope files; tightly coupled guard pairs (a value computed and
immediately tested) were reviewed and kept as-is.
- connect memory-emission practice via goga/pipeline Imports and annotations
- drop legacy/current-state change declarations from annotations and usages
- state the extend strict-validation rule in parse_workflow requirements
- translate memory and memory-emission practices to English
- make refs-and-switching examples self-contained (no goga.history import)
goga topics create now leaves the caller on their branch by default: the fresh branch is planted at one quarantined commit carrying todo.md on top of the resolved base, while the working copy, the index, and HEAD stay untouched. The todo is required on this path — the work exists only through its committed todo.md.

The previous behavior — checking out the fresh branch with its topic directory and an uncommitted todo — moves behind the new --switch/-s flag, where the todo is optional. --switch together with --publish is a clean error; the publication path and the publication ask are unchanged. The quarantine plant lives in publishing (_plant_topic_branch) and is shared with publish_topic.

CODEMANIFESTs, usages, docs, and README are updated to the new semantics; tests cover both paths, the guards, and real-git branch behavior.

BREAKING CHANGE: goga topics create no longer checks out the created branch and no longer creates the topic directory in the working copy by default; pass --switch/-s for the previous behavior, and the todo is now required without --switch or --publish.
goga topics board now closes every record — the last included — with a
row divider: the header separator's own dash run, printed after the
record's wrapped status lines, which stay undivided. Rows no longer
visually merge into one block.

render.py echoes _separator(caps) after each record's lines; the
CODEMANIFEST gains the algorithm step and the row-divider requirement;
the topics-command usage and docs/cli/topics.md document the divider and
show it in the sample output. New TestRenderTopicBoardRowDividers cases
cover the closing divider, the undivided continuation lines, and the
--info grid; the existing tests learn the new line counts and indices,
and the integration _board_rows parser skips divider lines.

BREAKING CHANGE: the stdout of goga topics board changes — every record,
the last included, is now followed by a separator row identical to the
header separator; scripts parsing the board table must skip those rows.
Move every command page into its functional domain under docs/features/
(fourteen domains, five pages each: overview, CLI, configuration, hooks,
API), absorb the Pipelines and Tools sections into the pipelines and tools
domains, turn the CLI section into a command-to-domain cross-road, and
move `goga config` next to the configuration it reads.

Simplify project configuration to the global fields plus the codemanifest
section and a domain-section map; document each domain-owned section
(build, pipeline, tools, usages, lint, topics) in its domain page.

Add per-domain facade API references from the CODEMANIFEST contracts, a
status-scale hook page for history, a registration contract page for the
hooks platform, and a lint error catalog. Re-trace every page in
.goga/tools/mkdocs/traceability.yml and rewrite all links (mkdocs build
--strict passes clean).
Contracts-review fixes (approved via file dialog):

- config/project: rephrase the review-patience loading constraint into
  positive form instead of referencing the removed build.review_patience
  key
- build-usage, project-configuration: drop the sentences pointing at the
  unparsed build.review_patience config key
- history/git: drop the annotation sentence referencing the goga/history
  facade (cross-cell reference in annotations)
- route hook and status-registration warnings through logging instead
  of stderr prints (hooks dispatch/registry/tools, history statuses)
- sync CODEMANIFEST and .usages wording with the logging change and
  drop the invalid Returns/Raises sections from TopicsConfig docstring
- fix README topics create examples and docs/features pages (option
  order, CELLS optionality, branch-name return type, agent list)
- move cross-entity tests into tests/integration/, rename
  test_topics_command.py to test_topics.py, extend negative-path
  coverage, and apply ruff formatting across sources and tests
- add the update-docs extend stage to the review workflow
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant