[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Opam package publication (was Re: [Caml-list] [ANN] beta-release of OPAM)



On 22 Jan 2013, at 16:35, Alain Frisch <alain@xxxxxxxxx> wrote:

> On 01/19/2013 11:40 AM, Daniel Bünzli wrote:
>> Yes, I know, that was not the point. I was proposing a lighter process for a 
>> package to be included in opam's default repository.
>> 
>> As Alain mentioned, the current process is rather involved for package 
>> developers --- but I disagree with his idea of an upload web interface.
>> 
>> The idea is that package developers publish repos with their work
> 
> Concretely, I guess that publish a repo means setting up a server somewhere.  
> I don't think that everyone can easily do that or want to invest so much 
> effort only to submit a single package.
> 
> What's the benefit of the git/github submission workflow?  I don't 
> immediately see how this is easier for people responsible of 
> accepting/rejection packages than, say, something based on an upload 
> interface (or even simpler, an email with an attachment).


Let's think through what an e-mail workflow might look like rather than just 
throwing it out as a superior alternative to what we use now.  Let's say it 
goes to an e-mail list, with a few people subscribed to it.  Then, someone 
adding the package would reply to the list saying that they'll handle it, and 
have to deal with it immediately and not get distracted.  Next, we have to 
convert the package into a Git commit with the submitter's name, so that we 
have a reasonable package history.  Finally, we need a queue of packages to 
track which ones haven't been replied to, or else risk forgetting packages.  
And of course, anyone who wants to be involved has to subscribe to a mailing 
list, and the only way to find past submissions is by digging through e-mail 
archives.

Git/Github takes care of all this, to the point where a merge is a single 
button on the website.  Specifically, it:

- track provenance of updates (so we can go contact whoever introduced a 
package reliably, assuming their Github ID doesn't change).

- lets people maintain private branches outside of Github, and easily merge 
against upstream updates.  Citrix are doing this for their internal 
repositories, which they re-base against OPAM upstream, and then regularly 
submit their packages to the mainline once they're tested.  I also do this with 
Mirage.

- a public tracking system with comments to ensure packages don't get lost. I 
don't particularly fancy having my mailbox fill up with mailed tar-balls.

- an easy-to-use API that lets us run continuous build directly off Github.  I 
think of this as "Internet threads". A callback from Github wakes up an Lwt 
thread to do some work on the continuous build server. That's kind of cool :-)

It should be really trivial to build a package uploader using the OPAM 
extension mechanism I described earlier, and the ocaml-github bindings. If 
anyone wants to help add this, get in touch with me and I'll walk you through 
it.  My plate's a bit too full to get to this in the near-term.

-anil


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.