docs: record standalone validation and publication policy
This commit is contained in:
parent
2a0fe1714b
commit
0bcd4a2fc9
4 changed files with 88 additions and 17 deletions
|
|
@ -7,6 +7,7 @@
|
|||
- [Consumers](CONSUMERS.md): Rust, Python/CLI, data distribution and Argand transition.
|
||||
- [Trust](TRUST.md): enforced checks and publisher/consumer responsibilities.
|
||||
- [Releasing](RELEASING.md): CI, source signing and archive verification.
|
||||
- [Validation](VALIDATION.md): independent builds and native acceptance evidence.
|
||||
- [Contributing](../CONTRIBUTING.md), [governance](../GOVERNANCE.md),
|
||||
[security](../SECURITY.md): proposals, decisions and incidents.
|
||||
- [Extraction design](superpowers/specs/2026-09-12-standalone-design.md) and
|
||||
|
|
|
|||
55
docs/VALIDATION.md
Normal file
55
docs/VALIDATION.md
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
# Initial standalone validation, 2026-09-12
|
||||
|
||||
Implementation commit: `2a0fe1714b8ffb2e80203722bcb7987c630f432d`, signed by Nic Weyand.
|
||||
The subsequent completion documentation changes no runtime or packaging code.
|
||||
|
||||
The baseline is Argand commit `47911062b00d87f215ba61c41965faf8a7f4b7f7`.
|
||||
All extracted Rust, migration and provider-license bytes match UPSTREAM.json.
|
||||
The extracted operator README changes only its working-directory instruction.
|
||||
New files provide independent build metadata, examples, policy and release tooling.
|
||||
The lockfile shrank from 642 packages to 246 with no new dependency versions.
|
||||
|
||||
## Acceptance
|
||||
|
||||
Linux x86_64, Rust/Cargo 1.98.1, Python 3.14, two Cargo build jobs. Passed:
|
||||
|
||||
- Rust formatting, all-target compilation and Clippy with warnings denied.
|
||||
- All 23 Rust tests, zero failures or ignored tests; strict API documentation.
|
||||
- Eight Python source-release tests, Python syntax checks, shell syntax and
|
||||
ShellCheck for the check script and every workflow shell step.
|
||||
- Native all-five-source fixture import, idempotency, alias lookup, explicit
|
||||
identity joining, signed approval/activation, revocation and rollback refusal.
|
||||
- Identical native CLI, Rust library example and Python example lookup envelopes,
|
||||
including provenance, attribution and multiple regional properties. Every
|
||||
consumer refused an incorrect generation pin.
|
||||
- Two source archives and receipts from the implementation commit were byte-for-byte
|
||||
identical. Receipt pin: `811af8fe2fd1e747b7745a44dba24e2397c01b43381e11846753e284caf6a275`.
|
||||
- Full acceptance rerun from the verified archive outside the Git checkout, then
|
||||
from `/tmp` to exclude the developer's ancestor Cargo configuration. Neither
|
||||
extracted copy had a `.git` directory or accessed Argand's source tree.
|
||||
|
||||
The primary check took 28.24 seconds with 566,388 KiB peak process RSS after the
|
||||
initial compiler check. A separate optimized build took 84.15 seconds with
|
||||
602,340 KiB peak RSS. The archive check under `/tmp` took 101.64 seconds with
|
||||
569,228 KiB peak RSS, including recompilation. These are local single-run toolchain
|
||||
measurements, not serving-latency or full-provider capacity claims. Build output,
|
||||
fixtures, disposable keys and detailed logs were retained outside the repository.
|
||||
|
||||
The final initial inventory was reviewed for credentials, private paths, datasets,
|
||||
unrelated files and provenance loss. Source archives exclude private-key and dataset
|
||||
extensions, symlinks, submodules, traversal paths and uncommitted changes. Tests
|
||||
exercise receipt/archive tampering, duplicate JSON keys, unsafe members and
|
||||
no-clobber output. All documentation links resolve locally.
|
||||
|
||||
## Operational state
|
||||
|
||||
The code is independently buildable. The public Forgejo repository requires
|
||||
signed commits and restricts direct pushes and merges to the maintainer; review
|
||||
rules apply to administrators. CI workflow commands were validated locally.
|
||||
Actions is disabled pending a dedicated isolated runner, so there is no hosted CI
|
||||
run or automatically produced remote artifact claim.
|
||||
|
||||
No provider dataset was newly acquired, no production approval was fabricated,
|
||||
and no dataset timer, public Navigate route or registry generation was promoted.
|
||||
Argand's live source/build window remained with its beta agent. Its embedded
|
||||
registry dependency has not been replaced; docs/CONSUMERS.md describes cutover.
|
||||
|
|
@ -14,24 +14,28 @@ around their existing APIs. Use an isolated build directory.
|
|||
- [x] Verify signed Argand commit 47911062b00d87f215ba61c41965faf8a7f4b7f7.
|
||||
- [x] Export only `engine/crates/argand-site-registry` and `engine/crates/argand-atomic`.
|
||||
- [x] Write `UPSTREAM.json` with original path/blob/hash evidence and a two-crate `Cargo.toml`.
|
||||
- [ ] Prune the inherited lock with `cargo metadata --offline --format-version 1`; retain exact dependency versions.
|
||||
- [x] Prune the inherited lock with `cargo metadata --offline --format-version 1`; retain exact dependency versions.
|
||||
|
||||
### Task 2: Make standalone use and trust policy concrete
|
||||
- [ ] Add root README, LICENSE, source-license entrypoint, CONTRIBUTING, SECURITY and governance docs.
|
||||
- [ ] Add Rust `examples/lookup.rs` and Python `examples/lookup.py` consumers of existing query contracts.
|
||||
- [ ] Run both consumers on the native fixture and compare full lookup outputs, including attribution.
|
||||
- [x] Add root README, LICENSE, source-license entrypoint, CONTRIBUTING, SECURITY and governance docs.
|
||||
- [x] Add Rust `examples/lookup.rs` and Python `examples/lookup.py` consumers of existing query contracts.
|
||||
- [x] Run both consumers on the native fixture and compare full lookup outputs, including attribution.
|
||||
|
||||
### Task 3: Package and verify source releases
|
||||
- [ ] Add deterministic source archive and verification commands in `scripts/source_release.py`.
|
||||
- [ ] Test determinism, dirty-tree refusal, no-clobber, tampering and unsafe archive members in `tests/test_source_release.py`.
|
||||
- [ ] Add `scripts/check.sh` and `.forgejo/workflows/ci.yml` using an isolated runner without release secrets.
|
||||
- [ ] Document explicit release signing, downstream pins and incident response in `docs/RELEASING.md` and `docs/TRUST.md`.
|
||||
- [x] Add deterministic source archive and verification commands in `scripts/source_release.py`.
|
||||
- [x] Test determinism, dirty-tree refusal, no-clobber, tampering and unsafe archive members in `tests/test_source_release.py`.
|
||||
- [x] Add `scripts/check.sh` and `.forgejo/workflows/ci.yml` using an isolated runner without release secrets.
|
||||
- [x] Document explicit release signing, downstream pins and incident response in `docs/RELEASING.md` and `docs/TRUST.md`.
|
||||
|
||||
### Task 4: Validate and land the bounded task
|
||||
- [ ] Run `cargo fmt --all -- --check`, `cargo check --workspace --all-targets --locked --offline`,
|
||||
- [x] Run `cargo fmt --all -- --check`, `cargo check --workspace --all-targets --locked --offline`,
|
||||
`cargo clippy --workspace --all-targets --locked --offline -- -D warnings`,
|
||||
`cargo test --workspace --locked --offline` and strict `cargo doc`.
|
||||
- [ ] Build the native executable and retain the all-five-source CLI fixture outside the repo.
|
||||
- [ ] Rebuild/run tests from the release archive outside the original workspace.
|
||||
- [ ] Review every initial tracked file and dependency change, sign the local commit and release receipt.
|
||||
- [ ] Record exact validation, publication and Argand cutover state; release any coordination window.
|
||||
- [x] Build the native executable and retain the all-five-source CLI fixture outside the repo.
|
||||
- [x] Rebuild/run tests from the release archive outside the original workspace.
|
||||
- [x] Review every initial tracked file and dependency change, sign the local commit and release receipt.
|
||||
- [x] Record exact validation, publication and Argand cutover state; release any coordination window.
|
||||
|
||||
Acceptance and operational limits are recorded in `docs/VALIDATION.md`.
|
||||
The public repository is created with Actions disabled until an isolated runner
|
||||
is provisioned. Argand remains on its embedded dependency; no shared window was taken.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue