(I thought I’d created this topic ages ago, but can’t find it; apologies for either the duplication or the tardiness).
We want to have an (explicit) way of ordering services within a snap. I think just supporting an “after” keyword in services would be enough. This would look like
apps: foo: command: bin/start-foo daemon: simple bar: command: bin/start-bar daemon: simple after: foo baz: command: bin/start-baz daemon: simple after: foo
Also perhaps a way (behind an interface?) of ordering services of a snap to services “outside” (note this is ordering and not dependencies, so for example you can have a snap that depends on a database service, and you ship with a sqlite backend but also support connecting to the system’s postgres if there is one, you could do it with this). Ideally we’d use
after: <some magic> to not complicate the yaml more with this, but atm I don’t know what the magic would be (it would have to be clear and obvious to the reader and writer, and at the same time not lead to things like a snap shipping a
postgres app and having that
after get confused with the postgres service from “outside”. This needs more discussion obviously and would probably come in a second phase, but I thought it worth mentioning here.
NOTE in-snap service ordering is implemented from 2.31 on, and covered in the snap format.