Relock apiary to sigil 0.18.2
Moves apiary onto the 0.18.2 runtime for the guard/continuation fixes.
Three changes are load-bearing and none of them is the sigil: field on its own:
- Explicit sigil-lib ^0.18 pin. Bumping only
sigil:moves sigil-stdlib to 0.18.2 but leaves sigil-lib, the C runtime carrying the fix, derived transitively from sigil-socket at 0.17.12, whilesigil deps installstill exits 0. The lockfile is the only place that shows it.
- Import rename (sigil env) -> (sigil dotenv) in main.sgl, test-tools and smoke-driver. Sigil 0.18 renamed the stdlib module and REUSED the name (sigil env) for an unrelated package-environment library, so declaring the new sigil-env package is the wrong fix: it would resolve the import against a module with a different API.
- sigil-mcp pinned to ^0.17. sigil-mcp's server.sgl imports the same module, so without a migrated sigil-mcp the binary cannot load at all. The 0.17 line is the one that requires the 0.18 runtime; ^0.16 must NOT be used here, because the 0.16 line is reserved for 0.17 runtimes and resolving it on 0.18 reintroduces the dead binary.
sigil-test/-runner stay on ^0.17: sigil-tls and sigil-crypto, both still on 0.16.x, declare them as dev-deps at ^0.17, so ^0.18 is unsatisfiable.
The failure this guards against is quiet. With an unmigrated sigil-mcp, the release build exits 0 and prints "Bundle created ... 75 modules, 2.1 MB" while producing a binary that dies at startup with "library not found: (sigil env)". The healthy binary is the same size. Only running it distinguishes the two.
Lock resolves sigil-lib and sigil-stdlib to 0.18.2 (sha 7e7c8873) and sigil-mcp to 0.17.0 (sha be7cf755).
Verified behaviourally: apiary 0.17.3 (sigil 0.18.2). Suite is a matched pair with the 0.17.12 baseline: 99 passed / 0 failed on both sides.
package.sgl | 20 ++++++++++++++++++--
sigil.lock | 24 ++++++++++++------------
src/apiary/main.sgl | 2 +-
test/smoke-driver.sgl | 2 +-
test/test-tools.sgl | 2 +-
5 files changed, 33 insertions(+), 17 deletions(-)package.sglmodified
url: "https://codeberg.org/sigil/apiary" license: "BSD-3-Clause" authors: (list "David Wilson <david@daviwil.com>") sigil: "^0.17" sigil: "^0.18" entry: '(apiary main) bundle-name: "apiary" bundle?: #t)) dependencies: (list ;; Explicit sigil-lib pin. WITHOUT this, bumping the `sigil:` field to ;; ^0.18 moves sigil-stdlib to 0.18.2 but leaves sigil-lib -- the C ;; runtime -- pinned at 0.17.12, derived transitively from ;; sigil-socket's `sigil: "^0.17"`. `sigil deps install` exits 0 and ;; reports success in that state, so the guard/continuation fix that ;; lives in sigil-lib would be silently absent from the build. ;; Verified by reading sigil.lock, not the manifest. (from-git url: "codeberg:sigil/sigil" package: "sigil-lib" version: "^0.18") (from-git url: "codeberg:sigil/sigil-json" version: "^0.16") (from-git url: "codeberg:sigil/sigil-log" version: "^0.16") (from-git url: "codeberg:sigil/sigil-socket" version: "^0.17") (from-git url: "codeberg:sigil/sigil-mcp" version: "^0.16") (from-git url: "codeberg:sigil/sigil-mcp" version: "^0.17") ; the 0.17 line REQUIRES the 0.18 runtime; ^0.16 must not be used here (from-git url: "codeberg:sigil/sigil-irc" version: "^0.16")) dev-dependencies: (list ;; sigil-test/-runner stay at ^0.17 deliberately: sigil-tls and ;; sigil-crypto (both still on 0.16.x) declare these as dev-deps at ;; ^0.17, so asking for ^0.18 here is unsatisfiable -- `sigil deps ;; install` hard-errors "Version conflict for sigil-test". The ;; RUNTIME (sigil-stdlib/sigil-lib) still moves to 0.18.2 via the ;; `sigil:` field above, which is what the guard/continuation fix ;; rides on. Revisit once the 0.16-stranded libs are re-tagged. (from-git url: "codeberg:sigil/sigil" package: "sigil-test" version: "^0.17") (from-git url: "codeberg:sigil/sigil" package: "sigil-test-runner" version: "^0.17") (from-git url: "codeberg:sigil/sigil-version" version: "^0.16"))sigil.lockmodified
(lock (package name: "sigil-stdlib" url: "codeberg:sigil/sigil" ref: "^0.17" sha: "bd2a47b44bff2051073044046e000fd7f0e587ca" ref: "^0.18" sha: "7e7c8873d45338a8e892aa3982b6991d9a1fa5a5" package-selector: "sigil-stdlib" version: "0.17.12") version: "0.18.2") (package name: "sigil-lib" url: "codeberg:sigil/sigil" ref: "^0.18" sha: "7e7c8873d45338a8e892aa3982b6991d9a1fa5a5" package-selector: "sigil-lib" version: "0.18.2") (package name: "sigil-json" url: "codeberg:sigil/sigil-json" ref: "^0.16" version: "0.17.0") (package name: "sigil-mcp" url: "codeberg:sigil/sigil-mcp" ref: "^0.16" sha: "1a0175939d7841686cad8793ed5faa1d10602351" version: "0.16.4") ref: "^0.17" sha: "be7cf755df13f76b83695d6f3d8af12682470dbd" version: "0.17.0") (package name: "sigil-irc" url: "codeberg:sigil/sigil-irc" ref: "^0.16" ref: "^0.16.0" sha: "cffebf24367e226aead63ef8e974329b59e10e69" version: "0.16.1") (package name: "sigil-lib" url: "codeberg:sigil/sigil" ref: "^0.17" sha: "bd2a47b44bff2051073044046e000fd7f0e587ca" package-selector: "sigil-lib" version: "0.17.12") (package name: "sigil-hooks" url: "codeberg:sigil/sigil-hooks" ref: "^0.16.0"src/apiary/main.sglmodified
(define-library (apiary main) (import (sigil core) (sigil string) (sigil env) (sigil dotenv) (sigil async) (sigil fs) (sigil process)test/smoke-driver.sglmodified
(sigil async) (sigil time) (sigil log) (sigil env) (sigil dotenv) (sigil mcp server) (sigil mcp channel) (sigil irc connection)test/test-tools.sglmodified
(import (sigil test) (sigil string) (sigil env) (sigil dotenv) (sigil process) (sigil mcp server) (sigil mcp protocol)