Skip to content

Commit 788ba1c

Browse files
committed
refactor(root): move root artefacts to their canonical locations
Applies the estate root-shape rollout: files that are not root-level by necessity move to where their tooling and the estate canon expect them, and every reference to them is updated in the same change. * .github/hooks/validate-a2ml.sh (from .githooks/validate-a2ml.sh) -> .github/hooks/validate-a2ml.sh * .github/hooks/validate-k9.sh (from .githooks/validate-k9.sh) -> .github/hooks/validate-k9.sh * .github/workflows/dogfood-gate.yml * .gitignore * .machine_readable/root-allow.txt * Containerfile * Justfile * scripts/validate-template.sh * src/interface/abi.ipkg (from abi.ipkg) -> src/interface/abi.ipkg Verified with `git apply --check` against current main before committing; no behaviour change intended, the Justfile entry points keep working.
1 parent 53af392 commit 788ba1c

9 files changed

Lines changed: 11 additions & 12 deletions

File tree

‎.github/workflows/dogfood-gate.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
4343
- name: Validate A2ML manifests
4444
if: steps.detect.outputs.count > 0
45-
run: bash .githooks/validate-a2ml.sh
45+
run: bash .github/hooks/validate-a2ml.sh
4646
- name: Write summary
4747
run: |
4848
A2ML_COUNT="${{ steps.detect.outputs.count }}"
@@ -87,7 +87,7 @@ jobs:
8787
8888
- name: Validate K9 contracts
8989
if: steps.detect.outputs.k9_count > 0
90-
run: bash .githooks/validate-k9.sh
90+
run: bash .github/hooks/validate-k9.sh
9191
- name: Write summary
9292
run: |
9393
K9_COUNT="${{ steps.detect.outputs.k9_count }}"

‎.gitignore‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,6 @@ dist/
120120
!/build/
121121
!/build/**
122122

123-
# ...but never track Idris2 typecheck output. `idris2 --typecheck abi.ipkg`
123+
# ...but never track Idris2 typecheck output. `idris2 --typecheck src/interface/abi.ipkg`
124124
# writes compiled .ttc/.ttm under build/ttc/; these are generated artifacts.
125125
/build/ttc/

‎.machine_readable/root-allow.txt‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ CHANGELOG.adoc # Current changelog after the AsciiDoc migration.
3131
# ─── Build entry points (must live at root for their tooling) ────────────────
3232
Justfile # delegates phases to build/just/*.just
3333
coordination.k9 # repo-local session binding (template-mandated)
34-
abi.ipkg # Idris2 package for the ABI seam; sourcedir=src/interface (estate canon: root-level *-abi.ipkg). Single case-consistent src/interface/Abi/ dir. Typecheck: `idris2 --typecheck abi.ipkg`.
3534

3635
# ─── Conventional dotfiles (tool-required at root) ───────────────────────────
3736
.editorconfig
@@ -99,5 +98,5 @@ mise.toml # toolchain pin read by mise. Estate canon is .tool-v
9998
# these are this project's real top-level shape. Moving them would
10099
# break every path that references them, to satisfy a map that was
101100
# never written for it. Read from the estate-rules gate's own output.
102-
.githooks/ # Top-level component directory of this project.
101+
.github/hooks/ # Top-level component directory of this project.
103102
REQUIRES_INITIALISATION.md # Project documentation.

‎Containerfile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
# ABI proofs should install Idris2 via upstream pack
2828
# (https://github.com/stefan-hoeck/idris2-pack) or the Idris2 project's own
2929
# instructions on a host with a Scheme implementation already available,
30-
# then typecheck with `idris2 --typecheck abi.ipkg` / `pack typecheck
30+
# then typecheck with `idris2 --typecheck src/interface/abi.ipkg` / `pack typecheck
3131
# abi.ipkg`.
3232
#
3333
# The Zig FFI side (src/interface/ffi/) is likewise out of scope here: it

‎Justfile‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ clean-all: clean
109109

110110
# Run all tests: Idris2 ABI typecheck + Zig unit/integration tests
111111
test *args:
112-
idris2 --typecheck abi.ipkg
112+
idris2 --typecheck src/interface/abi.ipkg
113113
cd src/interface/ffi && zig build test {{args}}
114114

115115
# Run tests with verbose output
@@ -186,7 +186,7 @@ fmt-check:
186186
# Lint: there is no separate Idris2/Zig linter, so this re-runs the
187187
# compilers in check-only mode, which is where both surface real warnings.
188188
lint:
189-
idris2 --typecheck abi.ipkg
189+
idris2 --typecheck src/interface/abi.ipkg
190190
cd src/interface/ffi && zig build
191191

192192
# ═══════════════════════════════════════════════════════════════════════════════

‎scripts/validate-template.sh‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,8 +307,8 @@ fi
307307
# path / import breakage that a bare per-file `idris2 --check` masks as a
308308
# tolerated "module name does not match file name" warning.
309309
if command -v idris2 &> /dev/null; then
310-
if [ -f "$REPO_ROOT/abi.ipkg" ]; then
311-
if (cd "$REPO_ROOT" && idris2 --typecheck abi.ipkg) > /dev/null 2>&1; then
310+
if [ -f "$REPO_ROOT/src/interface/abi.ipkg" ]; then
311+
if (cd "$REPO_ROOT" && idris2 --typecheck src/interface/abi.ipkg) > /dev/null 2>&1; then
312312
log_pass "Idris2 ABI typechecks (abi.ipkg)"
313313
else
314314
log_error "Idris2 ABI does NOT typecheck (abi.ipkg)"

abi.ipkg renamed to src/interface/abi.ipkg

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
-- A bare `idris2 --check src/interface/Abi/Foo.idr` still warns ("module name
1515
-- does not match file name") because Idris derives the expected module from the
1616
-- full path; that is expected. Use the package for a real typecheck:
17-
-- idris2 --typecheck abi.ipkg (or --build)
17+
-- idris2 --typecheck src/interface/abi.ipkg (or --build)
1818
--
1919
-- The RSR validators accept either Abi/ (canonical, case-consistent) or a
2020
-- lowercase abi/ for downstream repos that ship lowercase — but never both.
@@ -27,7 +27,7 @@ authors = "Jonathan D.A. Jewell"
2727

2828
brief = "Formally-typed ABI/FFI seam (Idris2 type + layout proofs) for an RSR-templated repository"
2929

30-
sourcedir = "src/interface"
30+
sourcedir = "."
3131

3232
depends = base
3333

0 commit comments

Comments
 (0)