New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Snap Track support in the snap_package resource #8155

Open
mal opened this Issue Jan 23, 2019 · 0 comments

Comments

Projects
None yet
1 participant
@mal
Copy link
Contributor

mal commented Jan 23, 2019

Describe the Enhancement:

Support the concept of snap tracks as defined on snapcraft.io. Likely via the addition of a new track property on the resource. The node snap is used as an example in this request, but this isn't limited in scope to that particular snap.

Describe the Need:

One of the snaps we're using is node, and it's not possible with the current implementation to install any of the stable channels from this list, because the latest track is hardcoded, and as shown below, the only channel on the latest track of this snap is edge.

$ curl -sS --unix-socket /run/snapd.socket 'http://host/v2/find?name=node' \
  | jq '.result[0].channels | keys'
[
  "10/stable",
  "6/stable",
  "8/stable",
  "9/stable",
  "latest/edge"
]

Current Alternative

Using the execute resource to fire the typical CLI commands, using a library to monkey patch the existing resource, or rolling one's own RP, none of which are a great UX.

Can We Help You Implement This?:

The API exposes valid tracks for a snap, so hopefully this would be not too much more than a case of mirroring the current implementation's approach to channels, with potential scope to factor out commonalities. An API example for fetching tracks is provided below:

$ curl -sS --unix-socket /run/snapd.socket 'http://host/v2/find?name=node' \
  | jq '.result[0].tracks'
[
  "latest",
  "10",
  "9",
  "8",
  "6"
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment