Commitb30e0169Recorded3 Aug 2026Repositoryapiary

Relock apiary to sigil 0.18.2

Message

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:

  1. 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, while sigil deps install still exits 0. The lockfile is the only place that shows it.
  1. 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.
  1. 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.

Changed
 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(-)
Diff
package.sglmodified
@@ -11,7 +11,7 @@
11
url: "https://codeberg.org/sigil/apiary"
12
license: "BSD-3-Clause"
13
authors: (list "David Wilson <david@daviwil.com>")
−14
sigil: "^0.17"
+14
sigil: "^0.18"
15
16
entry: '(apiary main)
17
bundle-name: "apiary"
@@ -32,13 +32,29 @@
32
bundle?: #t))
33
34
dependencies: (list
+35
;; Explicit sigil-lib pin. WITHOUT this, bumping the `sigil:` field to
+36
;; ^0.18 moves sigil-stdlib to 0.18.2 but leaves sigil-lib -- the C
+37
;; runtime -- pinned at 0.17.12, derived transitively from
+38
;; sigil-socket's `sigil: "^0.17"`. `sigil deps install` exits 0 and
+39
;; reports success in that state, so the guard/continuation fix that
+40
;; lives in sigil-lib would be silently absent from the build.
+41
;; Verified by reading sigil.lock, not the manifest.
+42
(from-git url: "codeberg:sigil/sigil"
+43
package: "sigil-lib" version: "^0.18")
44
(from-git url: "codeberg:sigil/sigil-json" version: "^0.16")
45
(from-git url: "codeberg:sigil/sigil-log" version: "^0.16")
46
(from-git url: "codeberg:sigil/sigil-socket" version: "^0.17")
−38
(from-git url: "codeberg:sigil/sigil-mcp" version: "^0.16")
+47
(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
48
(from-git url: "codeberg:sigil/sigil-irc" version: "^0.16"))
49
50
dev-dependencies: (list
+51
;; sigil-test/-runner stay at ^0.17 deliberately: sigil-tls and
+52
;; sigil-crypto (both still on 0.16.x) declare these as dev-deps at
+53
;; ^0.17, so asking for ^0.18 here is unsatisfiable -- `sigil deps
+54
;; install` hard-errors "Version conflict for sigil-test". The
+55
;; RUNTIME (sigil-stdlib/sigil-lib) still moves to 0.18.2 via the
+56
;; `sigil:` field above, which is what the guard/continuation fix
+57
;; rides on. Revisit once the 0.16-stranded libs are re-tagged.
58
(from-git url: "codeberg:sigil/sigil" package: "sigil-test" version: "^0.17")
59
(from-git url: "codeberg:sigil/sigil" package: "sigil-test-runner" version: "^0.17")
60
(from-git url: "codeberg:sigil/sigil-version" version: "^0.16"))
sigil.lockmodified
@@ -2,10 +2,16 @@
2
(lock
3
(package name: "sigil-stdlib"
4
url: "codeberg:sigil/sigil"
−5
ref: "^0.17"
−6
sha: "bd2a47b44bff2051073044046e000fd7f0e587ca"
+5
ref: "^0.18"
+6
sha: "7e7c8873d45338a8e892aa3982b6991d9a1fa5a5"
7
package-selector: "sigil-stdlib"
−8
version: "0.17.12")
+8
version: "0.18.2")
+9
(package name: "sigil-lib"
+10
url: "codeberg:sigil/sigil"
+11
ref: "^0.18"
+12
sha: "7e7c8873d45338a8e892aa3982b6991d9a1fa5a5"
+13
package-selector: "sigil-lib"
+14
version: "0.18.2")
15
(package name: "sigil-json"
16
url: "codeberg:sigil/sigil-json"
17
ref: "^0.16"
@@ -23,9 +29,9 @@
29
version: "0.17.0")
30
(package name: "sigil-mcp"
31
url: "codeberg:sigil/sigil-mcp"
−26
ref: "^0.16"
−27
sha: "1a0175939d7841686cad8793ed5faa1d10602351"
−28
version: "0.16.4")
+32
ref: "^0.17"
+33
sha: "be7cf755df13f76b83695d6f3d8af12682470dbd"
+34
version: "0.17.0")
35
(package name: "sigil-irc"
36
url: "codeberg:sigil/sigil-irc"
37
ref: "^0.16"
@@ -78,12 +84,6 @@
84
ref: "^0.16.0"
85
sha: "cffebf24367e226aead63ef8e974329b59e10e69"
86
version: "0.16.1")
−81
(package name: "sigil-lib"
−82
url: "codeberg:sigil/sigil"
−83
ref: "^0.17"
−84
sha: "bd2a47b44bff2051073044046e000fd7f0e587ca"
−85
package-selector: "sigil-lib"
−86
version: "0.17.12")
87
(package name: "sigil-hooks"
88
url: "codeberg:sigil/sigil-hooks"
89
ref: "^0.16.0"
src/apiary/main.sglmodified
@@ -9,7 +9,7 @@
9
(define-library (apiary main)
10
(import (sigil core)
11
(sigil string)
−12
(sigil env)
+12
(sigil dotenv)
13
(sigil async)
14
(sigil fs)
15
(sigil process)
test/smoke-driver.sglmodified
@@ -39,7 +39,7 @@
39
(sigil async)
40
(sigil time)
41
(sigil log)
−42
(sigil env)
+42
(sigil dotenv)
43
(sigil mcp server)
44
(sigil mcp channel)
45
(sigil irc connection)
test/test-tools.sglmodified
@@ -1,6 +1,6 @@
1
(import (sigil test)
2
(sigil string)
−3
(sigil env)
+3
(sigil dotenv)
4
(sigil process)
5
(sigil mcp server)
6
(sigil mcp protocol)