v0.17.0
Require Sigil 0.19 and drop the absorbed standalone packages
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-nreplmoves to^0.17.1, the first release that consumessigil-replfrom the monorepo instead of the archived standalone repository.sigil-httpmoves to^0.18.4, the first release that stopped declaringsigil-socket.- The test dependencies move to
^0.19for the same reason. - The lock drops from 18 entries to 12.
sigil-ansi,sigil-hooks,sigil-docs,sigil-socket,sigil-version,sigil-argsandsigil-gitleave it entirely, and every absorbed module now has exactly one provider. sigil-tlsmoves to 0.16.6, which bounds the TLS handshake as a whole rather than per read, makestls-writeyield instead of block, and fixes a descriptor leak. HTTPS behaviour changes with it.sigil-sqliteenters 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.
The commit this tag names.