Skip to content

Move the 93 non-pilot beamline/site descriptors to xmap/descriptors - #791

Merged
xmap merged 2 commits into
mainfrom
drop-non-pilot-descriptors
Sep 9, 2026
Merged

Move the 93 non-pilot beamline/site descriptors to xmap/descriptors#791
xmap merged 2 commits into
mainfrom
drop-non-pilot-descriptors

Conversation

@xmap

@xmap xmap commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Summary

CORA has one real deployment: 2-BM. The other 93 deployments/<slug>/ directories (79 further beamlines, 13 further Sites) were never a deployment in any operational sense — CORA modeling real, named instruments at facilities it has no relationship with, from public source, to stress-test the domain vocabulary. The website gave them the same page-tree depth as the real pilot; the last PR narrowed that but didn't fix it. Settled shape: these are descriptors, not deployments, and cora's website should not show them at all.

  • Moved via git-filter-repo (175 commits preserved) to the private xmap/descriptors, minus 2-bm and aps (2-BM's Facility record), which stay.
  • The narrative write-up each used to carry (notes.md, from the last PR's merge) is deleted, not relocated — it described a public-presentation shape that's itself being retired.
  • docs/deployments/index.md rewritten down to the one real deployment; mkdocs.yml's Deployments nav collapses to just APS + 2-BM (846 → 35 → ~10 lines across the two PRs); validation.nav.omitted_files reverted to warn since there's no legitimate unlisted page left.
  • Dropped 8ID_xpcs_practice / 9ID_xpcs_practice from aps/site.yaml: both were backed by 8-ID's and 9-ID's own (now-departed) descriptors — keeping the claim without the hardware behind it would be exactly the drift these fitness tests exist to catch.
  • Deleted test_pending_method_alignment.py outright (a fleet-wide IOU tracker over files that no longer exist). Rewrote test_beamline_descriptor.py, test_site_descriptor.py, test_practice_derivation.py, test_techniques_not_stale.py to drop every fleet-wide mechanism whose only subject was the departed corpus (orphan-model/loose-family/promotion-threshold signals, the Site-ordinal drift guard, the badge-count floor), keeping everything that exercises 2-BM's real descriptor or a synthetic fixture. Rationale throughout: a drift guard only earns its keep against data cora's own commits can still change.
  • Updated 8 integration/scenarios test docstrings that cited a now-moved deployments/<slug>/beamline.yaml path (prose citations only, no runtime reads — nothing was functionally coupled).

Test plan

  • mkdocs build --strict — clean
  • uv run pytest apps/api/tests/unit — 14159 passed, 1 skipped
  • uv run pytest apps/api/tests/unit/deployments — 113 passed (down from 830, expected: the fleet-wide parametrization is gone with the fleet)
  • Confirmed github.com/xmap/descriptors is private and returns 404 unauthenticated
  • Content-diffed a sample of extracted files against the pre-move originals

🤖 Generated with Claude Code

xmap added 2 commits September 9, 2026 10:00
CORA has one real deployment: 2-BM. The other 93 deployments/<slug>/
directories (79 further beamlines, 13 further Sites) were never a
deployment in any operational sense; they were CORA modeling real,
named instruments at facilities it has no relationship with, from
public source, to stress-test that the domain vocabulary generalizes.
The website presented them with the same page-tree depth as the real
pilot, which is the false-parity problem the last PR's collapse
narrowed but did not fix, and the user's own framing settled it:
these aren't deployments, they're descriptors, and they should not be
in cora's website at all.

Moved via git-filter-repo (175 commits of history preserved, deployments/
promoted to the new repo's root) to the private github.com/xmap/descriptors,
minus 2-bm and aps (2-BM's Facility record), which stay. The narrative
write-up each used to carry (docs/deployments/<slug>/notes.md, from the
last PR's merge) is deleted rather than relocated: it described a
public-presentation shape that is itself being retired, not ported
somewhere else to be retired later.

In cora:
- delete the 93 deployments/<slug>/ directories and their 80 docs
  narrative pages (2-bm's 18 real pages and index.md are untouched)
- rewrite docs/deployments/index.md down to the one real deployment
- collapse mkdocs.yml's Deployments nav to just APS + 2-BM's subtree
  (846 lines -> 35 in the prior PR -> ~10 now), and revert
  validation.nav.omitted_files to warn: with the fleet gone there is
  no longer a legitimate unlisted generated page, so the guard should
  bite again
- drop 8ID_xpcs_practice and 9ID_xpcs_practice from aps/site.yaml:
  both were backed by 8-ID's and 9-ID's own descriptors, which just
  left; keeping the claim without the hardware behind it would be
  exactly the drift these fitness tests exist to catch

Test suite: deleted test_pending_method_alignment.py outright (a
fleet-wide IOU tracker over 93 files that are now gone; nothing 2-BM's
own descriptor cites falls under it). Rewrote test_beamline_descriptor.py,
test_site_descriptor.py, test_practice_derivation.py, and
test_techniques_not_stale.py to drop every fleet-wide mechanism whose
only subject was the departed corpus (orphan-model/loose-family/
promotion-threshold signals, the ~100-line Site-ordinal drift guard,
the badge-count floor, _PENDING_METHODS entries that belonged to the
13 departed Sites) while keeping everything that exercises 2-BM's real
descriptor or a synthetic fixture. The reasoning throughout: a drift
guard only earns its keep against data cora's own commits can still
change; re-running it forever against data cora no longer owns or
edits guards nothing (see project_beamline_seeder_design's identical
finding for why the analogous full-fleet seeder was never built).
Also updated 8 integration/scenarios test files whose docstrings cited
a now-moved deployments/<slug>/beamline.yaml path (prose citations
only, no runtime reads, so nothing was functionally coupled).

Verified: mkdocs build --strict clean, apps/api/tests/unit (14159
tests) green, apps/api/tests/unit/deployments (113 tests, down from
830) green, xmap/descriptors confirmed private and 404 unauthenticated.
test_the_descriptor_scan_reads_files pinned "> 50" as a non-vacuity
guard against a past bug (a wrong parents[N] index made the scan read
zero files and pass trivially). With the 93 non-pilot descriptors moved
to xmap/descriptors, deployments/ now holds exactly 2 files (2-bm/
beamline.yaml, aps/site.yaml), so the floor legitimately fails.

This test is not one of the fleet-wide mechanisms retired in the parent
commit: it is a safety posture guard (CORA never binds a BLEPS
interlock write PV) that must keep scanning whatever cora's own
deployments/ tree actually carries, 2-BM's real descriptor included.
Lowered the floor to >= 2 rather than removing the guard.

Caught by CI (tests/architecture is part of the "fast" lane alongside
tests/unit, which is what I ran locally before pushing; missed because
I scoped my local re-run to tests/unit only). Re-ran
`pytest tests/unit tests/architecture` locally after the fix: 52319
passed, 649 skipped, matching CI's fast lane exactly.
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Coverage report

This PR does not seem to contain any modification to coverable code.

@xmap
xmap merged commit 5e3ad3c into main Sep 9, 2026
19 checks passed
@xmap
xmap deleted the drop-non-pilot-descriptors branch September 9, 2026 15:45
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