Alias, Auto-Connection and Track request and approval process
Definitions
- reviewers are https://launchpad.net/~myapps-reviewers
- snappy architects are Mark, Gustavo, etc
- votes are in favor (+1), against (-1), abstain (+0)
- voting period is one week
- voting period extension is 3 days
Process
- a requester creates a forum post with the ‘store’ category and makes case for change. To disambiguate snaps, the requester should either give the store URL for the snap or give the name and publisher of the snap. Voting period starts at time of request
- a requester (reviewer or architect) may not vote on his/her own snap
- reviewers and/or architects vote using the voting procedure (see below). Each vote should include a short rationale for the cast vote
- if after voting period there are not enough votes based on voting procedure, a voting period extension should be requested by a reviewer/architect. The extension starts the day of the request for extension
- at the end of the voting period, a reviewer/architects tallies the results from the voting period (and extension), summarizes in the forum post and performs any necessary actions
Voting procedure
- the voting procedure is the same for granting and revoking auto-connections, auto-aliases and track requests
- if reviewers and up to at most one architect voted: simple majority with at least 2 votes in favor at end of voting period/extension: perform requested action
- if two or more votes in favor/against from architects: reviewers votes are not tallied. If have only in favor votes from architects at end of voting period/extension: perform requested action, otherwise architects discuss until no against votes and at least one vote in favor from architects. If clear direction from architects (eg, no abstain votes), an architect may request the vote be tallied early.
UPDATE 2017-07-24: at request of the store team, this process will also apply to track requests
Problem description from original posting
As a store reviewer, I have the ability to grant auto aliases and auto-connections, but the process for approving those is undefined. The story was quite nebulous for a while with reviewers just trying to make the best decision in the moment. Today developers are being asked to make their requests via the forum (great!), but it isn’t clear (to me) when I may grant the request.
I can say a few criteria I consider before expressing my opinion in the forum (but I’m not asking to define all the criteria now; we probably need to work with the process for a while to see what falls out of the discussions before codifying the criteria):
For auto-connections:
- for the public store, I look for the ‘officialness’ of the publisher of the snap because granting an auto-connection means that the public store is vouching for the publisher’s intent (maintenance, security updates, etc) and snap implementation (it does what it advertises, works well, etc) to the degree that we remove the user’s initial choice on connection at install time (the user may of course disconnect the interface after installation, but the snap may have already taken advantage of the connection, which is an important consideration (and why we don’t auto-connect everything in the first place!))
- for the public store, I look for the ‘reasonableness’ of the request. Eg, a ‘top-like’ program will necessarily need the ‘system-observe’ interface but not ‘network-manager’
Similarly for auto-aliases:
- for the public store, I look for the ‘officialness’ of the publisher of the snap since putting the aliased commands into the user’s PATH implies a certain level of trust in that command (and the publisher)
- for the public store, I look for the ‘reasonableness’ of the request. Eg, do these commands make sense for the snap (eg, auto-aliasing a ‘mysql’ command in a LAMP stack snap is probably not great considering there is an official ‘mysql’ snap that provides this command)? do these commands exists elsewhere? Are they overly broad (eg, ‘editor’)?
To that end, I’ve expressed my opinion in a few forum requests and have waited on people’s opinions in others. Thus far, I’ve only acted on a few where there was a discussion with clear outcome. What I’d like to see from this post is:
- who is allowed to vote on the request?
- how many votes are needed to grant the request?
- should the vote be unanimous? if not, what majority percentage wins?
- is there ‘veto’ power? if so, who has veto power?
- what is the process for revoking a granted auto-alias or auto-connection?
- anything else?