Released25 Aug 2026Commitec64600cLine0.17.xLateston its line

v0.17.0

Require Sigil 0.19 and drop the absorbed standalone packages

Notes

sigil-web now builds against Sigil 0.19. This is the release that clears the absorbed-standalone duplication for everything downstream of sigil-web, and it is a breaking release because it moves your runtime, not just a version range.

Sigil 0.19.0 absorbed the ansi, socket, hooks, version, fp and match modules into sigil-stdlib. Absorption does not remove the old standalone package from a consumer's lock, so a project that crossed the 0.19 boundary while still reaching one of those standalones ended up with two providers of the same module at different versions. Both compile to the same path and the one built last silently wins. sigil-web reached three of them, and the chain through sigil-nrepl also reached the archived standalone sigil-repl.

Changes

  • Requires Sigil 0.19 or newer.
  • sigil-nrepl moves to ^0.17.1, the first release that consumes sigil-repl from the monorepo instead of the archived standalone repository.
  • sigil-http moves to ^0.18.4, the first release that stopped declaring sigil-socket.
  • The test dependencies move to ^0.19 for the same reason.
  • The lock drops from 18 entries to 12. sigil-ansi, sigil-hooks, sigil-docs, sigil-socket, sigil-version, sigil-args and sigil-git leave it entirely, and every absorbed module now has exactly one provider.
  • sigil-tls moves to 0.16.6, which bounds the TLS handshake as a whole rather than per read, makes tls-write yield instead of block, and fixes a descriptor leak. HTTPS behaviour changes with it.
  • sigil-sqlite enters the lock transitively. It vendors a SQLite amalgamation that is compiled as part of a build.

Upgrade notes

Raise sigil to ^0.19 in your own package.sgl in the same commit that raises sigil-web, then relock. Doing one without the other is the operation that creates the duplication this release removes.

Nothing will tell you if you skip it. A dependency's sigil: floor is not enforced during resolution, only the root package's, so a project left on the 0.17 or 0.18 runtime resolves an old stdlib alongside 0.19 line packages and builds green with no error and no warning.

This is a minor release rather than a patch for exactly that reason. A patch would have been picked up automatically by anyone pinned ^0.16, silently.

Commit

ec64600c

The commit this tag names.

Releases