implement developer experience to simulate auto-connection of interfaces on install
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
snapd |
Triaged
|
Wishlist
|
Samuele Pedroni |
Bug Description
It is hard to develop complex strict-mode snaps that require interfaces, especially those whose behavior meaningfully differs from devmode such as something like microk8s.
What would be ideal is to have a mechanism where a developer who is working on their snap can install it in such a way that they can test the auto-connection of interfaces the same way that it happens in the store, it's not a great experience to have to upload snaps to edge or a branch every time to see what happens with connect-* hooks, etc. which will run at different points in time depending on if you are installing with --dangerous and connecting interfaces after the snap is installed, or if you are installing via the store with auto-connections in the snap-declaration. In the former, the connect hooks will end up running after the configure and install hooks, while in the latter case, the connect hooks will end up running after the configure and install hooks.
I can see two ideas of how to do this:
1. We can add some sort of option to snap install to indicate interfaces which should be auto-connected, named appropriately like in
snap install --dangerous microk8s.snap --developer-
2. We could make it some sort of system option that you need to turn on out of band from snap install that "appropriately identifies" that the user doing this is a developer developing on their own snap
One thing to be careful of here is that we don't want to enable proliferation of people now instructing their users to install dangerously and have interfaces auto-connect as that kind of defeats the store and the strong security and trust that comes from the centralized information about what interfaces can be auto-connected there.
Changed in snapd: | |
assignee: | nobody → Samuele Pedroni (pedronis) |
Changed in snapd: | |
importance: | Undecided → Wishlist |
status: | New → Triaged |