
On Fri, Nov 30, 2012 at 02:41:51PM +0100, Fabio Riga wrote:
2012/11/30 Magnus Therning
On Thu, Nov 29, 2012 at 9:50 PM, Ramana Kumar
wrote: [haskell] and [haskell-web] are out of sync at the moment.
I would say that github repository of [haskell] is out of sync with [haskell], so [haskell-web] can't be updated.
Yeah, that's my bad. I sometimes start updates and builds in the morning and then check in on them during the day. If they succeed I push the new packages to the repo, but I only have write access to the github repos from my home computer. I always plan to push the changes as soon as I get home, but you know what they say about the best laid schemes of mice and men; I sometimes forget and it might go days before I remember.
Yes, that's exactly what `cblrepo` does through its package database. Of course it only does this with the packages in a single database, there is no support for multiple databases. There is not even any support for merging databases.
We don't need to merge databases. `cblrepo` is a very cool tool, but a single human can reasonably manage 150 packages, more or less. If we want a bigger, almost complete haskell repository (do we?) we need to work in team.
I suppose the right way to do this would be to only offer one endpoint repo, which combines the results of all the small repos people are maintaining.
Please elaborate a little more on the details of how that would work. I'm more than open to making changes to `cblrepo` in this direction if necessary.
This are my suggestions:
1. Magnus keep a [haskell-base] repository. This MUST be an Arch repo in sync with a github repo. 2. Both repositories (Arch and git) should be available for maintainers of other repository. 3. Maintainer of [haskell-web] (me) MUST update it's repo to keep in sync with base in a reasonable time. 4. After this time a “global maintainer” (Magnus, Ramana, me, whoever) can grab all packages from both repositories and put them in a new one: [haskell] 5. Only [haskell] is intended for end users.
A “reasonable time” could be 3 days. I saw that Magnus updates the repo on Wednesday and on Saturday/Sunday: so before the next update [haskell-web] should be in sync.
I developed [haskell-web] in a way that it will not duplicate packages from [haskell]: I use them as DistroPkg. Updating is easy with `cbladmin` [^1], there's no need to modify `cblrepo`, maybe you could merge (and develop) some ideas from there. But this is not the main point. The main point is to be in sync, or else I'm just wasting my time, as [haskell-web] will never be really useful.
The big piece that's missing above is how to handle failures to upgrade a package caused by a dependant not allowing the upgrade. Do we hold off the base-test repo then? I currently upgrade everything I can in one transaction, what if one of the packages requires holding back due to a dependant. Would that require a partial roll-back in the base-test repo? It's questions like these that I don't have a good answer to. And yes, both situations have occurred in the past. They both cause a bit of work (though not so much if they are caught already at 'clbrepo updates' time). /M -- Magnus Therning OpenPGP: 0xAB4DFBA4 email: magnus@therning.org jabber: magnus@therning.org twitter: magthe http://therning.org/magnus I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. -- Alan Kay