feat: the test suite no longer ships, and dist upgrade deletes what a release stops shipping (#113)
dist export leaves out tools/chemenu/tests/, tools/pytest.ini and tools/.coveragerc by exact path - the suite tests the origin repository, and 257 of its tests failed in a fresh export. dist upgrade now deletes a no-longer-shipped file that is unchanged since install, with any directory that leaves empty, and blocks one changed since install like any local change (--take-release deletes it, --keep-local keeps it). --prune is accepted and ignored. Files changed: - CHANGES.md - EVALS.md - VERSION - instructions/mcp-read-server.md - instructions/upgrade-instance.md - tools/CONTRACT.md - tools/README.md - tools/chemenu/commands/dist_cmd.py - tools/chemenu/tests/test_dist_cmd.py - tools/chemenu/tests/test_dist_upgrade.py - tools/requirements-mcp.txt Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
This commit is contained in:
1 parent
dd565d249f
commit
0d3499ab04
11 files changed
+479
-87
No files matched your search
+9
-3
@@ -52,7 +52,7 @@ but names a path that has gone raises `ToolPathError`, which the CLI turns
|
||||
into an `ERROR` line pointing at the preflight rather than a traceback.
|
||||
|
||||
The package runs natively on Windows as well, which CI never does. So the rules that keep
|
||||
it portable are held by reading the source, in `tests/test_portability.py`: a path that
|
||||
it portable are held by reading the source, in the origin repository's `tests/test_portability.py`: a path that
|
||||
becomes a string goes through `.as_posix()`, a text file is opened with `encoding=` and
|
||||
written with `newline="\n"`, a `subprocess` call with `text=True` names `encoding="utf-8"`,
|
||||
and only `filelock.py` imports `fcntl` or `msvcrt`. An `rg` path comes back with `\` on
|
||||
@@ -109,7 +109,7 @@ tools/
|
||||
search/ pluggable search backends, plus service.py - the search core
|
||||
tasks/ the task-tracker provider layer: protocol.py (TaskReader/TaskWriter), config.py (.wikitool-tasks.json), one module per adapter - no instruction ever learns which provider it is
|
||||
commands/ one module per command or command group: the terminal adapters
|
||||
tests/ pytest suite
|
||||
tests/ pytest suite - origin repository only, `dist export` leaves it out
|
||||
```
|
||||
|
||||
**A script beside the package.** `bugreport.py` is not part of `chemenu` and imports nothing
|
||||
@@ -121,7 +121,7 @@ identities it can read from the machine (stage 1), and `--bundle`/`--candidates`
|
||||
model found in the result (stage 2), both word by word so that length, separators and depth
|
||||
survive. The mapping, the review list and the candidate file stay beside the bundle directory.
|
||||
`dist export` ships it with the rest of `tools/`;
|
||||
its tests (`tests/test_bugreport.py`) run it on a bare interpreter (`-I -S`) to keep that promise.
|
||||
its tests (`tests/test_bugreport.py`, in the origin repository) run it on a bare interpreter (`-I -S`) to keep that promise.
|
||||
|
||||
It is started through `tools/bugreport` (`bugreport.ps1` under PowerShell), which assumes no more
|
||||
than the collector does: no preflight, no `.wikitool-tools.json`, no venv. It looks for the
|
||||
@@ -243,8 +243,13 @@ the tool writes edges into a collection whose rules the author never read.
|
||||
directions so an ignore rule can neither swallow tracked content nor stop
|
||||
ignoring generated copies.
|
||||
|
||||
<!-- dist:strip-start -->
|
||||
## Tests
|
||||
|
||||
The suite exists in the origin repository only: `dist export` leaves out `chemenu/tests/`,
|
||||
`pytest.ini` and `.coveragerc`, because the suite tests that repository's own type-specs and
|
||||
conventions, not an instance's.
|
||||
|
||||
```bash
|
||||
cd tools && .venv/bin/python -m pytest -q
|
||||
```
|
||||
@@ -275,3 +280,4 @@ section name from `sections`, not on a literal.
|
||||
|
||||
Assert on prose in a type-spec or a contract only when the prose is the subject of the test.
|
||||
Otherwise it is a tripwire that fires on an edit nobody connected to the test.
|
||||
<!-- dist:strip-end -->
|
||||
Reference in new issue
Block a user