* o/snapstate: avoid setting up single reboot when update includes base, kernel and gadget Otherwise there is a circular dependency between base, kernel and gadget, where the kernel waits for gadget (to handle gadget assets update), gadget waits for the base, and the base waits for some of the kernel tasks. Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * o/snapstate: procure circular dependency and verify abort untangles the state Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * overlord/state: add helper for aborting unready lanes A helper for aborting all lanes that aren't ready in a given change. An unready lane is one that carries tasks which have not reached a final status yet. Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * overlord/state: drop unused lanes field Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * overlord: wait for up to 3 days before automatically aborting a change Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * overlord/state: use AbortUnreadyLanes when pruning Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * overlord: managers test to verify self healing via abort-unready-lanes in prune Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com> * overlord: leave a comment about the scenario being tested, test tweaks Signed-off-by: Maciej Borzecki <maciej.zenon.borzecki@canonical.com>
Welcome to snapd
This is the code repository for snapd, the background service that manages and maintains installed snaps.
Snaps are app packages for desktop, cloud and IoT that update automatically, are easy to install, secure, cross-platform and dependency-free. They're being used on millions of Linux systems every day.
Alongside its various service and management functions, snapd:
- provides the snap command that's used to install and remove snaps and interact with the wider snap ecosystem
- implements the confinement policies that isolate snaps from the base system and from each other
- governs the interfaces that allow snaps to access specific system resources outside of their confinement
For general details, including installation and Getting started guides, head over to our Snap documentation. If you're looking for something to install, such as Spotify or Visual Studio Code, take a look at the Snap Store. And if you want to build your own snaps, start with our Creating a snap documentation.
Get involved
This is an open source project and we warmly welcome community contributions, suggestions, and constructive feedback. If you're interested in contributing, please take a look at our Code of Conduct first.
- to report an issue, please file a bug report on our Launchpad issue tracker
- for suggestions and constructive feedback, create a post on the Snapcraft forum
- to build snapd manually, or to get started with snapd development, see HACKING.md
Get in touch
We're friendly! We have a community forum at https://forum.snapcraft.io where we discuss feature plans, development news, issues, updates and troubleshooting. You can chat in realtime with the snapd team and our wider community on the #snappy IRC channel on libera chat.
For news and updates, follow us on Twitter and on Facebook.
Project status
| Service | Status |
|---|---|
| Github Actions | |
| GoReport | |
| Codecov |