On Wed, 2009-09-09 at 14:00 -0700, Brock Pytlik wrote:
> Greetings all,
> 
> Last week Shawn and I were talking about why publisher continued to be a 
> confusing issue for our users. We came to the conclusion that one reason 
> that users were having problems was that we were conflating concepts in 
> the items we give a user to manipulate.
> 
> We ended up with the following proposal/attempt to clearly explain our 
> model. (Note, please don't consider
> 
> There are three distinct entities, publishers, streams, and 
> repositories. Publishers are the entities who put together 
> distributions, sign packages, etc... Specifically, they distribute one 
> or more streams (or trains or whatever term we settle on. dev and 
> release are two examples of streams for the opensolaris.org publisher.). 
> Repositories are simply collections of packages, possibly from multiple 
> publishers and multiple streams from those publishers.
> 
> Right now, what we're really giving users the ability to maipulate is 
> repos. Sure, the command is called "set-publisher" but we assign a 
> specific url which corresponds to a specific respository. I don't think 
> it's surprising that this confuses users. Further, to change from 
> release to dev (for example) we tell them to use set-publisher to change 
> the url of the publisher.
> 
> What we suggest instead is that our UI reflect our model, rather than 
> conflating our abstractions. We suggest that a publisher (optionally) 
> have a default stream, and that each stream (optionally) have at least 
> one default or known repository which holds (at least) all packages in 
> that stream of that publisher. So, a user starting with an empty image 
> would do "pkg set-publisher opensolaris.org http://pkg.opensolaris.org"; 
> (for example) and the image would be set up to use the release stream of 
> pkg.opensolaris.org and would know about one repository (say 
> http://pkg.opensolaris.org/repo).
> 
> After a while, the user decides that they want access to the packages in 
> contrib. I assert (for the purposes of this example) that contrib would 
> be published by opensolaris.org (ie, they would sign the manifests), so 
> the user would do "pkg add-stream opensolaris.org contrib". That would 
> allow them to install packages from contrib (since either the default 
> repo for contrib would now be known to them or the contrib stream 
> packages in pkg.opensolaris.org/repo would now be available depending on 
> how we decided to organize our repos). Part of what "pkg add-stream" 
> would do is ensure that the contrib stream is not known to be 
> incompatible with the streams currently active on the system.
> 
> Let's say that Sun (as opposed to opensolaris.org) publishes the 
> packages currently in Extras. The user would add Sun as a publisher, 
> then add the Extra stream.
> 
> If the user tried to add the release stream from opensolaris.org while 
> the dev stream was active, pkg would error and inform the user that 
> those two streams were incompatible according to the publisher. The 
> publisher could define those incompatibilities both for streams it 
> produces and the streams of other publishers. This is how the support 
> stream would be handled since it (at least right now) seems to be 
> published by Sun, rather than opensolaris.org. While within publisher 
> incompatibilities might be common, between publisher ones should be rare.
> 
> Streams are comprised of packages, and other streams. For example, once 
> we've broken up our consolidations to some extent so that entire no 
> longer exists, we imagine opensolaris.org delivering a dev stream which 
> corresponds to what dev is today. The dev stream though will consist of 
> multiple streams, dev-on, dev-sfw, dev-gnome. Similarly, the release 
> stream will consist of multiple streams, rel-on, rel-sfw, rel-gnome, 
> etc... The dev-on stream would have an exclude dependency on the rel-on 
> stream (and the other way around). This allows users to chose to run the 
> dev-on kernel, but the release gnome bits, within the contraints imposed 
> by specific package dependencies.
> 
> The on-disk package of the future would include the information that 
> would otherwise be retrieved from the publisher upon installation.
> 
> That seems to cover most things. We're suggesting that streams live in 
> the package namespace, like publishers do.
> 
> We also have some ideas of what the GUI interaction should look like, 
> but we'll save that for another proposal if we decide that what we've 
> laid out seems like a reasonable way to go.
> 
> Thanks,
> Shawn and Brock
> _______________________________________________
> pkg-discuss mailing list
> [email protected]
> http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Great!
-- 
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to