[arch-haskell] keeping in sync

Magnus Therning magnus at therning.org
Tue Dec 4 12:21:09 CET 2012

On Fri, Nov 30, 2012 at 02:41:51PM +0100, Fabio Riga wrote:
> 2012/11/30 Magnus Therning <magnus at therning.org>
>> On Thu, Nov 29, 2012 at 9:50 PM, Ramana Kumar <ramana at member.fsf.org> 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).


Magnus Therning                      OpenPGP: 0xAB4DFBA4
email: magnus at therning.org   jabber: magnus at 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

More information about the arch-haskell mailing list