Skip to content

CI off dev mirrors: quire from internal-pypi, semantic-core from GitHub Packages (PLAT-974) - #101

Merged
kreneskyp merged 3 commits into
mainfrom
plat-974-ci-off-dev-mirrors
Sep 22, 2026
Merged

kreneskyp merged 3 commits into
mainfrom
plat-974-ci-off-dev-mirrors

Conversation

@kreneskyp

Copy link
Copy Markdown
Contributor

Linear: PLAT-974

What changed

  • pyproject.toml: quire pinned to ^0.47.1 from the internal-pypi source
    as a dev dependency; deleted the local-pypi (pypi.ix) poetry source and
    the dev-quire poe task.
  • Makefile: deleted the dev-quire target and its help line
    (semantic-install already existed and needed no change).
  • .github/workflows/ci.yml: the ci: job now calls
    semantic-module-ci.yml instead of lib-ci.yml, and passes
    REGISTRY_TOKEN so @agent-ix/semantic-core resolves from GitHub
    Packages. The publish input and its if: guard already existed.
  • tests/conftest.py: the missing-dependency message now names
    poetry install instead of make dev-quire/agent-ix/quire-rs#392.
  • package-lock.json already resolved @agent-ix/semantic-core from
    npm.pkg.github.com; no regeneration needed.
  • Deleted tests/test_additive_compatibility.py (NFR-001-AC-5, TC-131): it
    validated agent-ix/spec-objects-business and
    agent-ix/filament-core-data from ~/dev through the quire CLI. The
    owner ruled that prerelease software carries no backward-compat test.
    NFR-001-AC-1..4 are unaffected and still compare against the checked-in
    tests/fixtures/baseline-0.1.0/ baseline.
  • spec/: NFR-001-additive-compatibility.md retires AC-5 and its
    now-dev-dependency Verification wording; tests.md drops the TC-131 rows;
    spec.md drops the resolved agent-ix/quire-rs#392 line from Out of
    Scope; spec/log.md gets a dated bullet.

A fix beyond the brief

tests/test_skeletons_and_roles.py::test_no_fixture_reaches_the_payload_or_mints_an_id
shells out to the quire CLI (quire coverage) with no
shutil.which("quire") is None skip guard, unlike its five sibling
CLI-driven test files. semantic-module-ci.yml never installs a quire CLI
binary (only the Python package via poetry install and the npm toolchain
via make semantic-install), so this test fails with
FileNotFoundError: 'quire' in real CI — confirmed against main's own most
recent CI run (also failing, for the pre-internal-pypi reason this PR
fixes). Added the same guard the other five files use.

Local gate numbers

Run with the quire CLI removed from PATH (matching the CI environment,
which has no CLI, only the Python package):

  • pytest: 255 passed, 41 skipped, 1 xfailed, 0 failed
  • make schemas-check: clean (64 files, no drift)
  • black --check .: clean
  • ruff check .: clean

The 41 skips are the six quire-CLI-driven test files (five pre-existing,
one newly guarded here) skipping for lack of the CLI — expected in CI, which
never installs it.

🤖 Generated with Claude Code

…ub Packages (PLAT-974)

- pyproject.toml: quire ^0.47.1 pinned to the internal-pypi source as a dev
  dependency; deleted the local-pypi (pypi.ix) poetry source and the
  dev-quire poe task.
- Makefile: deleted the dev-quire target and its help line (semantic-install
  already existed).
- .github/workflows/ci.yml: the ci job now calls semantic-module-ci.yml
  instead of lib-ci.yml, and passes REGISTRY_TOKEN for @agent-ix packages
  from GitHub Packages.
- tests/conftest.py: missing-dependency message points at `poetry install`
  instead of `make dev-quire`/quire-rs#392.
- Deleted tests/test_additive_compatibility.py (NFR-001-AC-5, TC-131): it
  validated agent-ix/spec-objects-business and agent-ix/filament-core-data
  from ~/dev through the quire CLI. The owner ruled that prerelease software
  carries no backward-compat test. NFR-001-AC-1..4 are unaffected and still
  compare against tests/fixtures/baseline-0.1.0/.
- tests/test_skeletons_and_roles.py: added the shutil.which("quire") skip
  guard its five sibling CLI-driven tests already carry. Real CI never
  installs a quire CLI binary (only the Python package and the npm
  toolchain), and this was the one test in that family without the guard,
  confirmed failing the same way on main's own most recent CI run.
- spec/: retired NFR-001-AC-5, dropped its TC-131 rows from tests.md,
  removed the resolved quire-rs#392 line from spec.md Out of Scope, and
  logged the change in spec/log.md.

Local gates (poetry install; make semantic-install; quire CLI absent from
PATH, matching CI): pytest 255 passed, 41 skipped, 1 xfailed, 0 failed;
make schemas-check clean; black --check clean; ruff check clean.

Linear: PLAT-974

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@kreneskyp
kreneskyp requested a review from a team as a code owner September 22, 2026 20:19
Agent IX and others added 2 commits September 22, 2026 13:35
… bump xfail version

- tests/test_skeletons_and_roles.py: split the TC-119 test in two. The
  wheel-packaging check (make build, no tests/fixtures/ entry in the wheel)
  needs no engine and now always runs; the quire coverage check keeps its
  CLI skip guard. Added a mutation-check test proving the packaging
  assertion can fail on a namelist carrying a tests/fixtures/... entry.
- spec/spec.md: NFR-001's summary no longer claims a two-consumer
  measurement (AC-5 is retired) — states what AC-1..4 actually measure
  against the checked-in 0.1.0 baseline.
- spec/non-functional/NFR-001-additive-compatibility.md: the AC-5 retirement
  note is now one plain line; the history lives in spec/log.md.
- tests/test_semantic_manifest.py: the TC-135 xfail reason now says quire
  0.47.1 (still xfails under it, confirmed by the gate run below).
- spec/log.md: corrected the PLAT-974 bullet — only QUIRE_MISSING changed in
  conftest.py, not both messages — and added the TC-119 split.

Gates (quire CLI absent from PATH, matching CI): pytest 257 passed, 41
skipped, 1 xfailed, 0 failed; make schemas-check clean; black --check
clean; ruff check clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
pyproject.toml carried a committed leftover from before this PR:
version = "0.24.0+20260920.225303.cc6561d.6c4d8ec2" and
[tool.poetry-dynamic-versioning] enable = false. Every publish would have
shipped that frozen version instead of one derived from the tag. Restored
version = "0.1.0"  # Placeholder, dynamically replaced and enable = true,
matching every other repo's main (e.g. spec-objects-business).

`poetry check --lock` confirms poetry.lock needs no update; `poetry version`
now reports a tag/commit-derived version (0.25.0.post3.dev0+<sha>), not the
frozen 0.24.0. Verified `git diff pyproject.toml` still shows only this
two-line fix after the full pytest run (which invokes `make build` twice
inside test_no_fixture_reaches_the_wheel and test_the_wheel_fixture_check-
adjacent helpers) — nothing rewrote the file.

Gates (quire CLI absent from PATH, matching CI): pytest 257 passed, 41
skipped, 1 xfailed, 0 failed; make schemas-check clean; black --check
clean; ruff check clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@kreneskyp
kreneskyp merged commit 6b7dd40 into main Sep 22, 2026
8 checks passed
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