Skip to content

Keep supported module implementations in-tree - #501

Merged
rahultee merged 2 commits into
mainfrom
in-tree-module-implementations
Oct 22, 2026
Merged

rahultee merged 2 commits into
mainfrom
in-tree-module-implementations

Conversation

@ryantm

@ryantm ryantm commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Why

The current checkout should describe every implementation shipped in its bundle. Importing generated modules from older nixmodules flakes hides their definitions and prevents current schema changes from reaching them.

What changed

  • Remove the historical-module loader and its five entries already superseded by upgrade aliases. Keep every existing upgrade mapping.
  • Register Docker and Zig 0.11 from local definitions, using explicit upstream package pins matching their previous toolchains. Restore Docker's original Go builders rather than upgrading its dependencies.
  • Preserve the active-module subsets: Docker and Zig remain available in the full development and deployment maps without appearing in activeModules or activeDeploymentModules.
  • Reject duplicate implementation IDs, alias cycles, missing alias targets, and aliases that shadow implementations. Add negative tests, development/deployment registry checks, and a guard against historical imports in current module definitions.
  • Document version support and retirement, and correct Bun's upgrade instructions. Leave the standalone helper for reconstructing OCI images from old lockfiles unchanged; it is not used by the current bundle registry.

Test plan

  • Passed standalone registry tests and full development/deployment map evaluation.
  • Compared against the base: both maps retain all 105 IDs. The other 103 entries retain identical output paths; only Docker and Zig module JSON derivations change.
  • Inspected the derivation JSON payloads, applying the old loader's metadata overrides for comparison: Docker's development and deployment JSON are identical. Zig gains only current-schema default fields (false flags, empty display versions, and empty default entrypoints). Every referenced runtime store path remains identical for both modules and both modes.
  • Confirmed all pre-existing locked dependency revisions are retained.
  • Passed the complete scripts/ci_check.sh suite: formatting, registry tests, both module-map evaluations, registry build check, historical-import guard, dev-shell smoke test, bundle evaluation, and bundle-oci-check (including the OCI copy helper).
  • Compared both active maps against the base: all 50 entries in each map are identical.
  • Not run: full bundle build or Docker/Zig runtime integration smoke tests.

Rollout

Build a candidate bundle and exercise Docker and Zig before publishing. This changes the Docker/Zig module JSON store paths, but not their runtime store paths or the accepted module IDs. Zig now uses the current schema defaults. No runtime upgrade or additional retirement is intended. Revert this commit and republish the previous bundle to roll back; no data migration is involved.

  • This is fully backward and forward compatible

~ written by ⠕ Replit

Register Docker and Zig locally with their existing upstream toolchain pins, remove shadowed historical entries, and validate implementation and alias registries.

Assisted-by: Replit
@ryantm
ryantm marked this pull request as ready for review October 22, 2026 18:26
@ryantm
ryantm requested a review from a team as a code owner October 22, 2026 18:26
@ryantm
ryantm requested review from vlinkz and removed request for a team October 22, 2026 18:26
@rahultee
rahultee merged commit 1dd8741 into main Oct 22, 2026
8 of 9 checks passed
@rahultee
rahultee deleted the in-tree-module-implementations branch October 22, 2026 20:24
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.

3 participants