This release includes a few significant, user-visible changes and fixes:
- Improvements to how services with dependencies are started and stopped (using "lanes"), so that independent services are started in parallel, and dependent services start up serially. Error handling is also improved. Fix in #437 and closes #231 (thanks @troyanov for the report).
- A fix for a tricky bug in
pebble exec
, so it doesn't lose output in interactive mode. Thanks @dmitry-lyfar for the report, and the fix in #466! - Reduce the size of
exec
tasks by not storing the execSetup (which includes all environment variables) in state. This speeds up (and shrinks the data) when serialising state to disk duringstate.Unlock
. Fix is in #478. - Ensure Pebble doesn't hang (with no error message) when the state file directory is read-only or otherwise inaccessible. Thanks for the report @berkayoz in #462. Fix in #481.
- Re-implement warnings using notices. This was always the intention since the notices feature was added (it was designed as a superset of warnings), but we'd never gotten to it. Lots of nice code deletion in #486.
Also, something that doesn't affect the operation of Pebble: we've moved the documentation from a "big long README" to a proper documentation site. Code is in the docs
directory, and the website lives at https://canonical-pebble.readthedocs-hosted.com/. Thanks @IronCore864 for your work on this!
There are also a ton of minor fixes and tweaks, listed below.
Other minor changes:
- fix(snap): set Pebble version before snap builds by @cjdcordeiro in #450
- refactor: pull in the snapd RestartManager refactoring in #446
- fix: avoid need to lock state for restart.Pending() in #451
- fix: make Client.Pull properly handle API errors in #452
- feat(daemon): add Err() to retrieve the tomb death reason by @thp-canonical in #453
- fix: actually turn off child subreaping in reaper.Stop in #454
- feat(daemon): allow overriding layers directory in daemon.Options by @thp-canonical in #456
- feat(overlord): reversed order of manager stop by @Ardelean-Calin in #447
- fix(logger): Make MockLogger threadsafe by @thp-canonical in #441
- fix(overlord): allow ensure when state is available by @flotter in #482
- fix: initialize socketPath to prevent stale cache by @holmanb in #491
- test: improve osutil.mkdir test coverage in #492
- ci: add a monthly (or on demand) TIOBE reporting workflow in #494
- refactor(state): avoid need for state lock in LatestWarningTime in #493
New Contributors
- @AnneCYH made their first contribution in #457
- @Ardelean-Calin made their first contribution in #447
- @holmanb made their first contribution in #491
Full Changelog: v1.15.0...v1.16.0