(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.