I’m not aware of any user facing documentation, maybe @degville recalls something, but a quick search through the core docs came up empty.
In short, you have one model, then you create another one, you can either just bump the revision, or use a completely different "model"
or "store"
. Sign it the usual way
snap sign < model.json > my-model.model
and then on the device run
snap remodel <new-model>
Though as I indicated, it’s probably best to reach out to customer support. Operations like cross-store remodel need to use the proper store IDs that aren’t that obvious. I had a hard time setting up the store mappings myself, so I’m guessing you will have too. There are some tests in the snapd tree which you can use to get an idea of how it works:
- https://github.com/snapcore/snapd/tree/master/tests/nested/manual/core20-remodel
- https://github.com/snapcore/snapd/tree/master/tests/nested/manual/remodel-simple
- https://github.com/snapcore/snapd/tree/master/tests/nested/manual/remodel-cross-store
While the assertions are under https://github.com/snapcore/snapd/tree/master/tests/lib/assertions so you can have a look at the json files.