Skip to content

More integration - #347

Merged
davidabram merged 11 commits into
npm-nixos-integration-testfrom
more-integration
Nov 4, 2026
Merged

davidabram merged 11 commits into
npm-nixos-integration-testfrom
more-integration

Conversation

@davidabram

Copy link
Copy Markdown
Member

No description provided.

davidabram and others added 4 commits November 4, 2026 01:20
Specify shared fixture coverage for hermetic npm VM scenarios and exact-artifact release canary gates. Capture workflow topology, secret scoping, validation criteria, and ordered implementation tasks for postinstall recovery, reinstall safety, setup, minimal runtime, and release publication checks.

Plan: npm-vm-scenarios-and-release-canary
Tasks: T01-T10

Co-authored-by: SCE <sce@crocoder.dev>
Extract hermetic package/release fixture preparation, serving, installation, and
layout assertions into reusable npm/test/release-fixture.sh, while keeping
pack-smoke.sh's CLI and output contract unchanged. Include the harness in the
Nix source set and document the prepared/served fixture workflow for future VM
scenarios and release canary consumers.

Plan: npm-vm-scenarios-and-release-canary, T01

Co-authored-by: SCE <sce@crocoder.dev>
Exercise skipped postinstall installs and repeated npm rebuild recovery against the real release fixture, asserting the missing-binary failure and restored executable/version after each rebuild. Document the scenario and record its verification evidence.

Plan: npm-vm-scenarios-and-release-canary (T02)

Co-authored-by: SCE <sce@crocoder.dev>
Ensure failed npm reinstalls cannot replace a working native binary or leave
installer artifacts behind. Add an isolated NixOS VM scenario that exercises
invalid manifest signatures and archive checksum mismatches, verifies the
binary after each failure, and restores the fixture for a successful rebuild.
Share scenario setup helpers with the existing recovery test.

Plan: npm-vm-scenarios-and-release-canary T03

Co-authored-by: SCE <sce@crocoder.dev>
davidabram and others added 7 commits November 4, 2026 01:23
Exercise the installed npm launcher through `sce setup --bootstrap-context` in a fresh Git repository with a restricted PATH and isolated XDG state. Verify the baseline context tree, rerun preservation from a nested directory, and reject source-path leakage while documenting the scenario contract.

Plan: npm-vm-scenarios-and-release-canary (T04)

Co-authored-by: SCE <sce@crocoder.dev>
Verify the installed launcher and static runtime with only Node or an empty PATH, while asserting that required external tools and ELF interpreters are absent. Disable the NixOS stub loader so the VM proves the runtime has no dynamic loader dependency.

Plan: npm-vm-scenarios-and-release-canary (T05)

Co-authored-by: SCE <sce@crocoder.dev>
Complete T06 by documenting the real-install NixOS VM scenarios, their isolation and
runtime constraints, and the distinction between fixture coverage and exact release
artifacts. Update the npm distribution contract and context map with the recovery,
failed-reinstall, bootstrap, and minimal-runtime cases, and record the verification
results for the plan task.

Plan: npm-vm-scenarios-and-release-canary.md
Task: T06

Co-authored-by: SCE <sce@crocoder.dev>
Verify unmodified npm release tarballs against the production public key and signed manifest across local, GitHub Release, and registry installation modes. Reuse the fixture harness for isolated installs and assert tarball identity, launcher layout, integrity, and reported version, while separating TLS setup for existing fixture users.

Plan: npm-vm-scenarios-and-release-canary (T07)

Co-authored-by: SCE <sce@crocoder.dev>
Split release assembly from the secret-free release canary and final GitHub
Release creation, carry the canary-verified npm tarball SHA-256 into the final
job, and scope write permissions to tag and release jobs. Document the workflow
contract and mark T08 complete with its verification evidence.

Plan: npm-vm-scenarios-and-release-canary.md (T08)

Co-authored-by: SCE <sce@crocoder.dev>
npm publication must consume the exact GitHub Release asset and prove both pre- and post-publication install paths before release automation succeeds. Make publish-npm reusable from release-sce, split resolution/canary/publish/registry-canary jobs, verify SHA-256 and registry integrity, and scope NPM_TOKEN to the publish step while making reruns idempotent. Document the resulting release topology and mark T09 complete.

Plan: npm-vm-scenarios-and-release-canary (T09)

Co-authored-by: SCE <sce@crocoder.dev>
Complete the npm release plan documentation by recording the shared VM and release-canary validation, the B1/B2/registry gate chain, manual reruns, secret scoping, and idempotent npm publication behavior. Synchronize the context map and glossary with the implemented release workflow topology and mark the documented plan task complete.

Plan: npm-vm-scenarios-and-release-canary (T10)

Co-authored-by: SCE <sce@crocoder.dev>
@davidabram
davidabram merged commit b1e88d2 into main Nov 4, 2026
11 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