State of Affairs: Summarizing 83 days worth of experience

Hi guys, it's been 83 days since I've begun to actively contribute to the ArchHaskell project. During that period, I've maintained our habs tree. I've seen to it that AUR is in sync with that tree. I've made an effort to compile a repository of binary packages, and I've also addressed all kinds of user feedback and bug reports. Based on that experience, I'd like to take a step back and summarize my overall impression of where this projects stands today. First of all, I believe that our joint efforts have been very worthwhile and successful. habs is in better shape today than it was before. To the best of my knowledge, none of the PKGBUILDs that we publish is outright broken, which is a *major* improvement. Secondly, ArchLinux now complies to the Haskell Platform, which also feels like an important achievement. Furthermore, a fairly large number of small annoyances have been addressed, i.e. we have consistent support for shared linking, our generated PKGBUILD files have been improved in terms of both style and substance, and we've taken on the habit of utilizing $pkgrel to trigger necessary re-builds, which is something our users had to figure out on their own in the past. Given all that, I think we can be a little proud. At the same time, I feel a little pessimistic about the future of our endeavor. When I said "habs" in the previous paragraph, I really meant a subset of habs worth 118 packages that I actively maintain, namely those packages that I personally care about. I didn't even try to keep packages up-to-date that I don't personally care about. Hackage, however, features a whopping total of 2670 packages, which means that I've been actively maintaining less than 5% of Hackage! Now, based on my experience from maintaining 5% of Hackage, I've arrived at the conclusion that our tools and our procedures are quite inadequate to get the job done. Maintaining 118 packages in an orderly fashion has been really difficult. I wouldn't dream of even trying to maintain 2500+ packages that way. The most significant problems I've encountered are: 1) A lack of coordination. We have made a couple of attempts to define policies, procedures, and responsibilities for this project, but ultimately we never really got anywhere. The net result is that everyone of us is working on whatever interests him, but the others mostly don't even know about it. Consequently, we are inefficient. For instance, we develop patches for the ArchLinux library, and when they're ready, we throw them away, because we realize way too late that we don't like what they do. Similarly, we perform updates in [extra], and then we revert them again, because we notice way too late that they break someone else's efforts. It feels like most of the things we've accomplished were being accomplished though individual machismo, rather than through a coordinated team effort. 2) Lack of communication. In my experience, it's incredible hard to get any sort of response from those of us who maintain [extra] and [community]. The packages in those repositories are the foundation on which everything else has to be built. Yet, the packages in those repositories tend to be modified without any consultation or advance warning. In some cases, changes in [extra] broke compilation of other habs packages -- such as cabal2arch --, but for the longest time it was impossible to get anyone to care about that. On the other hand, I've repeatedly asked for packages in [extra] to be updated, because I needed newer versions to build other packages in habs, but those updates just don't happen. Maybe there are good technical reasons why those updates don't happen, but that's beside the point. The point is that I don't know anything about it, and I don't know how to find out either. 3) Inadequate tools. The cabal2arch utility is a great, but in its current shape it cannot re-generate the habs in a fashion that I'd call "automatic". For some packages, such as OpenGL or GLUT, the cabal2arch output is outright broken and doesn't compile. For other packages, such as cabal2arch itself, the generated PKGBUILD compiles but is incorrect anyway, because run-time dependencies are declared as being build-time dependencies. There are several other packages that cannot be generated with cabal2arch, such as haskell-platform, and that need manual editing before they can be published. So far, we have been addressing these problems in a way that feels "ad hoc", to put it mildly. Being a professional software engineer, that makes me quite uncomfortable, because I have the impression that we don't fully understand what it is that we're trying to do. Furthermore, we seem to have no functioning tools that help us automate the updating process. My experience so far is that even the tiniest trivial update has a significant potential to break the build of dozens of other packages. Basically, there seem to be trivial updates in Haskell land. Whenever such breakage occurs, there is no easy way to figure out how to remedy the version conflicts. Doing that manually is quite an effort when 118 packages ought to compile, but remedying those conflicts manually for 2500+ packages is not going to be possible. In my humble opinion, we have to figure out how to improve our team work if we want to succeed at providing a comprehensive set of Haskell packages for ArchLinux. Take care, Peter

On Fri, Jan 7, 2011 at 12:47 PM, Peter Simons
2) Lack of communication. In my experience, it's incredible hard to get I've repeatedly asked for packages in [extra] to be updated, because I needed newer versions to build other packages in habs, but those updates just don't happen. Maybe there are good technical reasons why those updates don't happen, but that's beside the point. The point is that I don't know anything about it, and I don't know how to find out either.
I thought [extra] was specifically meant to track the official Haskell Platform and secondarily provide XMonad's deps. At least (about the HP), that's what's stated on the Arch haskell.org wiki as well as in the Haskell packaging guidelines in the Arch wiki proper. Yet some packages like mtl and parsec have been repeatedly version bumped to be out of compliance from personal experience and looking at the git history. I hope I'm not beating a dead horse since the problems have been fixed and are quickly addressed, but most Haskell packages in [extra] really shouldn't be getting updated in the sense of a version bump (from what I understand) until a new version of the HP comes out or there's an official policy change.

Hi Tasha,
Most Haskell packages in [extra] really shouldn't be getting updated in the sense of a version bump (from what I understand) until a new version of the HP comes out or there's an official policy change.
this is true for HP packages, of course. However, [extra] and [community] contain plenty of other code that is not specified by Haskell Platform. Examples would be haskell-text or haskell-hashed-storage. I see no reason why those packages shouldn't be updated in principle. As far as I am concerned, I'd be fine with updating packages that *are* specified by HP, too, if there is a strong technical incentive. Anyway, this issue is beside the point I was trying to make. I am concerned about the lack of communication regarding the maintenance of [extra] and [community]. Whatever is going on in these repositories, the members of this list are not involved in the process even though we are directly affected by changes that occur in these places. This is not an ideal situation, and it already *did* cause a significant amount of trouble in the past. Take care, Peter

On Sat, Jan 8, 2011 at 4:03 AM, Peter Simons
Anyway, this issue is beside the point I was trying to make. I am concerned about the lack of communication regarding the maintenance of [extra] and [community]. Whatever is going on in these repositories, the members of this list are not involved in the process even though we are directly affected by changes that occur in these places. This is not an ideal situation, and it already *did* cause a significant amount of trouble in the past.
Well, who on this list is even an Arch dev with access to [extra]? That would be Vesa and Rémy, who is now the primary maintainer I believe. Rémy is very active on the list, so I don't think it's quite accurate to characterize the problem as one of disconnectedness. Rather, one and a half people are responsible for maintaining a set of packages with sometimes cascading rebuilds required without, according to you, a more complete automatic way to check for consistency with the rest of the packages that we want to build against Haskell [extra]. As an aside: in the past few months, I have not really seen any issue take more than a couple of weeks to resolve with the average response time seeming more like a few days. So I am one person who thinks this aspect has noticeably improved (though obviously still not where you would like it to be). To summarize my main point, I would actually characterize this problem as a lack of people with access to [extra] who care about the Haskell packages or have the free time/resources to get a turnaround on issues consistently to a few days at most. With better tools, having only two devs would clearly be less of a blocker, but that's another part of your post. As far as the TUs who have been helping with [community], Xyne is always helpful and communicative on this list and the forums. While I'm not sure if Sergej has posted to the list, his ~1400 packages are very close to up-to-date and he's very responsive about updating when flagged out of date or making sure his haskell packages track HP (alex) or are updated. Please don't take this as me trying to dismiss your concerns. I am just trying to offer a counterpoint on this particular aspect as it seems an end user's perspective could be helpful too.

Hi Tasha,
I would actually characterize this problem as a lack of people with access to [extra] who care about the Haskell packages or have the free time/resources to get a turnaround on issues consistently to a few days at most.
yes, you are right. I completely agree. It would be quite unreasonable to expect Remy and Vesa to be able to deal with that workload, especially considering the fact that we are all volunteers who have other, more important obligations in life than building Haskell packages for ArchLinux.
Please don't take this as me trying to dismiss your concerns.
Yes, of course not. In the same spirit, I'd like to emphasize that I didn't intend to come across as meaning to criticize anyone. It's true that I am little disappointed about the way this project has turned out for me, but that is not because of other people, it's because I had unreasonable expectations. All things considered, I feel that our efforts haven't been perfect, but still very successful. Your comments seem to confirm that, so ... thanks! :-) Take care, Peter

On 07/01/11 18:47, Peter Simons wrote:
Hi guys, [...] In my humble opinion, we have to figure out how to improve our team work if we want to succeed at providing a comprehensive set of Haskell packages for ArchLinux.
This sort of feedback is invaluable in my opinion. Our previous discussions on what we wanted to do, and how we could achieve it didn't really benefit from a lot of experience with the tools and maintaining a larger set of packages. Now Peter has built up a large amount of experience! Peter, do you think that our earlier discussion was on target, i.e. did we correctly identify the real pain points, and does our suggestions on improving our tools still make sense? /M -- Magnus Therning OpenPGP: 0xAB4DFBA4 email: magnus@therning.org jabber: magnus@therning.org twitter: magthe http://therning.org/magnus

Hi Magnus,
do you think that our earlier discussion was on target, i.e. did we correctly identify the real pain points [...]?
I'm not quite sure what the problems were that we identified in earlier discussions, but I believe that the points I just explained in my previous posting are fairly accurate: our efforts aren't coordinated enough, we don't communicate enough, and our tools require way too much manual effort to get the job done.
[Does] our suggestions on improving our tools still make sense?
Well, I am not sure what concrete suggestions have been made. I am aware of several patches that Remy has come up with, and those patches are quite valuable because they address concrete deficiencies in cabal2arch. Still, cabal2arch is not even close to generating a working habs tree from Hackage without requiring massive human intervention. We have yet to come up with algorithms and strategies to improve that. I realize that my comments in this thread are only semi-helpful, because all I do is point out problems. What I should be doing is pointing out *solutions*. Unfortunately, I don't know the solutions either. Now, there are lots of smart people on this list. I was hoping that we can figure out the solutions together. Take care, Peter

On 08/01/11 10:28, Peter Simons wrote:
Hi Magnus,
do you think that our earlier discussion was on target, i.e. did we correctly identify the real pain points [...]?
I'm not quite sure what the problems were that we identified in earlier discussions, but I believe that the points I just explained in my previous posting are fairly accurate: our efforts aren't coordinated enough, we don't communicate enough, and our tools require way too much manual effort to get the job done.
The points you bring are the main points as I remember them, but my memory has been known to be failing in the past ;-)
[Does] our suggestions on improving our tools still make sense?
Well, I am not sure what concrete suggestions have been made. I am aware of several patches that Remy has come up with, and those patches are quite valuable because they address concrete deficiencies in cabal2arch. Still, cabal2arch is not even close to generating a working habs tree from Hackage without requiring massive human intervention. We have yet to come up with algorithms and strategies to improve that.
Those are still patches to cabal2arch, as I recall there were discussions of other complementary tools. Especially there was discussion of a tool that would allow us to get rid of our habs repo completely and instead just maintain a single file listing all packages and theirs versions. As I see it this tool could either be built on top of cabal2arch, or (thanks to the archlinux library) be written from scratch without too much difference in effort required.
I realize that my comments in this thread are only semi-helpful, because all I do is point out problems. What I should be doing is pointing out *solutions*. Unfortunately, I don't know the solutions either. Now, there are lots of smart people on this list. I was hoping that we can figure out the solutions together.
Well, we have to start somewhere. From my point of view you are basically just raising a bug. As long as you help with clarifying the issue so we can find a solution then I have no problem with your "semi-helpfulness" ;-) I think that discussing this from the point of view of what process we'd *like* to have, then see just how far away from it we are, will help us clarify what we need to do. As I've said before, the experience you have with the current tools will be helpful in this discussion. I'll see if I can dig out our old discussion to refresh my memory and see how far we got that time. If anyone beats me to searching the archives, please post the links. /M -- Magnus Therning OpenPGP: 0xAB4DFBA4 email: magnus@therning.org jabber: magnus@therning.org twitter: magthe http://therning.org/magnus

Hi Magnus, I have the impression that you are avoiding the substance of my original article in this thread. I posted that very long and very detailed message, because I believe that it's vital to understand the problems we have to solve before we try to solve them. I would love to hear your opinion about the issues I raised in a little more detail than "this sort of feedback is invaluable." If you feel that my feedback is invaluable, then please respond it instead of re-starting this thread from scratch, ignoring everything I already wrote. Take care, Peter

On 09/01/11 16:36, Peter Simons wrote:
Hi Magnus,
I have the impression that you are avoiding the substance of my original article in this thread. I posted that very long and very detailed message, because I believe that it's vital to understand the problems we have to solve before we try to solve them. I would love to hear your opinion about the issues I raised in a little more detail than "this sort of feedback is invaluable." If you feel that my feedback is invaluable, then please respond it instead of re-starting this thread from scratch, ignoring everything I already wrote.
I was probably too vague, because I was waiting for you to provide more information. In your initial email you say things are broken, but in my opinion you don't provide enough information for me to understand WHY you say that. I've replied to your initial email with some comments that you hopefully find more concrete. /M -- Magnus Therning OpenPGP: 0xAB4DFBA4 email: magnus@therning.org jabber: magnus@therning.org twitter: magthe http://therning.org/magnus

Hi Magnus,
I was probably too vague, because I was waiting for you to provide more information.
well, if you have any concrete questions, then please ask me! I cannot possibly know that you are waiting for more information unless you tell me about it.
In your initial email you say things are broken, but in my opinion you don't provide enough information for me to understand WHY you say that.
I am sorry, but it strikes me as fairly unreasonable to summarize my original posting as me saying "thinks are broken". I was providing slightly more information than that. Surely you are exaggerating a bit? After all, you yourself said that my feedback was "invaluable". Now you seem to be saying that my posting wasn't worth much. How is it possible that you have changed your opinion so dramatically?
1) A lack of coordination. We have made a couple of attempts to define policies, procedures, and responsibilities for this project, but ultimately we never really got anywhere. The net result is that everyone of us is working on whatever interests him, but the others mostly don't even know about it. Consequently, we are inefficient.
This is true to a large extent. What do you feel is left to define?
Most importantly, we should agree on a common goal that we are trying to achieve. Personally, my goal has been to provide up-to-date ArchLinux build instructions for the Haskell packages published on Hackage. To achieve that goal, I maintained our habs tree. Based on that habs tree, I felt that it's feasible to maintain both AUR and a binary package repository, which was my secondary goal. I have kind-of achieved both of these goals, but only when "Hackage" is defined as "5% of Hackage". So if those goals ought to be achieved completely, then we need a strategy how to deal with the remaining 95% of Hackage. This realization compelled me to start this thread. I notice that you didn't commit much to habs, so clearly you had different goals. I wonder what those were? What exactly is it that you are trying to achieve?
We develop patches for the ArchLinux library, and when they're ready, we throw them away, because we realize way too late that we don't like what they do.
I don't think this is that uncommon in FOSS when people work on their own without telling people what they are doing.
Yes, of course you are right. But the point of my remark wasn't that this kind of thing would be uncommon. Rather, I complained about the fact that it is highly inefficient. We are 3(!) people trying to maintain a set of almost 2000 packages. How are we supposed to accomplish that when we waste our time writing patches that are ultimately thrown away? We are volunteers doing this project in our spare time, so it's obviously perfectly alright that each of us does whatever he feels like. I'm not trying to tell anyone what they are supposed to do or don't do. However, unless we coordinate our efforts to some extend, we cannot possibly achieve the goal of providing Hackage to ArchLinux users. Based on the assumption that this is our common goal, it seems obvious to me that we need to coordinate our efforts more than we did in the past.
Similarly, we perform updates in [extra], and then we revert them again, because we notice way too late that they break someone else's efforts.
I can only agree on this point, and I'm not sure what can be done to fix it, if anything.
My suggestion would be that we try to establish a practice where haskell-* updates in [extra] are communicated on this mailing list *before* they go on-line, or even before they are being performed at all. Basically, the maintainers of [extra] -- Remy and Vesa -- would post a message to this list, saying: "I'm about to update haskell-xyz to version a.b.c". Is anyone aware of any reasons why this might be a problem? Please let me know!"
2) Lack of communication. [...]
This is again about [extra], I can only say I wish it were better, but I can't personally do much about it.
In my humble opinion, communication between the maintainers of habs and [extra] needs to be improved. Obviously, we cannot force anyone to do what we'd like them to do, but surely we can contact the ArchLinux guys, explain the situation, and try to work out a solution together with them? I made a concrete suggestion above. Surely, these are reasonable people who understand the problem and are willing to help us out, especially since it's in the best interest of all ArchLinux users. Maybe Xyne and/or Remy can do something for us in that area?
3) Inadequate tools. The cabal2arch utility is a great, but in its current shape it cannot re-generate the habs in a fashion that I'd call "automatic".
Have you raised bugs for the individual issues here, so that we have them documented in a central place?
Yes, of course I did. Didn't you receive notifications from Github?
Please provide info of HOW things are broken, i.e. current behaviour and correct behaviour.
If you have specific questions about the bugs that I filed, could you please attach those to the appropriate issue in Github? Besides, it sounds like you weren't aware of the issues that I filed, so it's probably a good idea to look at them first, to figure out what exactly you feel is missing.
Furthermore, we seem to have no functioning tools that help us automate the updating process. My experience so far is that even the tiniest trivial update has a significant potential to break the build of dozens of other packages. Basically, there seem to be trivial updates in Haskell land.
What process are you using? Both when adding completely new packages and when puling in a new version of a package. What tools are you currently using? What actions are manual, and what actions are only partially covered by tools?
Well, as I said, we don't have any functioning tools or procedures that assist in process of updating a package. So I'm not using *any* tools, and *all* actions are manual. It feels like you expect me to provide extensive formal documentation of what I've been doing in the last 3 months. I am sorry, but I don't have the time to submit a report about everything. Instead, I recommend that you just try to do a few updates yourself. Then you'll find out what the problems are. Frankly, I'm surprised that you don't know this already. How exactly did you perform updates in the last 3 months? Take care, Peter

On Sun, Jan 9, 2011 at 23:02, Peter Simons
In your initial email you say things are broken, but in my opinion you don't provide enough information for me to understand WHY you say that.
I am sorry, but it strikes me as fairly unreasonable to summarize my original posting as me saying "thinks are broken". I was providing slightly more information than that. Surely you are exaggerating a bit?
Of course I exaggerate, and not only a bit, a whole lot.
After all, you yourself said that my feedback was "invaluable". Now you seem to be saying that my posting wasn't worth much. How is it possible that you have changed your opinion so dramatically?
To be very blunt, I said your EXPERIENCE is invaluable. In your initial email you didn't recount that experience in a way that clearly pointed out what wasn't working. That means your initial email wasn't invaluable, because there was nothing in it that I could act on.
>> 1) A lack of coordination. We have made a couple of attempts to define >> policies, procedures, and responsibilities for this project, but >> ultimately we never really got anywhere. The net result is that >> everyone of us is working on whatever interests him, but the others >> mostly don't even know about it. Consequently, we are inefficient. > > This is true to a large extent. What do you feel is left to define?
Most importantly, we should agree on a common goal that we are trying to achieve. Personally, my goal has been to provide up-to-date ArchLinux build instructions for the Haskell packages published on Hackage. To achieve that goal, I maintained our habs tree. Based on that habs tree, I felt that it's feasible to maintain both AUR and a binary package repository, which was my secondary goal. I have kind-of achieved both of these goals, but only when "Hackage" is defined as "5% of Hackage". So if those goals ought to be achieved completely, then we need a strategy how to deal with the remaining 95% of Hackage. This realization compelled me to start this thread.
I notice that you didn't commit much to habs, so clearly you had different goals. I wonder what those were? What exactly is it that you are trying to achieve?
My goals were largely the same, my available time wasn't. I had also hoped to contribute more to the improvement of our tools.
>> We develop patches for the ArchLinux library, and when they're >> ready, we throw them away, because we realize way too late that we >> don't like what they do. > > I don't think this is that uncommon in FOSS when people work on their own > without telling people what they are doing.
Yes, of course you are right. But the point of my remark wasn't that this kind of thing would be uncommon. Rather, I complained about the fact that it is highly inefficient. We are 3(!) people trying to maintain a set of almost 2000 packages. How are we supposed to accomplish that when we waste our time writing patches that are ultimately thrown away?
I agree fully with you on this. However, I don't share your level of concern, I just don't feel that there has been many patches that in the end have been thrown away.
We are volunteers doing this project in our spare time, so it's obviously perfectly alright that each of us does whatever he feels like. I'm not trying to tell anyone what they are supposed to do or don't do. However, unless we coordinate our efforts to some extend, we cannot possibly achieve the goal of providing Hackage to ArchLinux users. Based on the assumption that this is our common goal, it seems obvious to me that we need to coordinate our efforts more than we did in the past.
[...]
>> 3) Inadequate tools. The cabal2arch utility is a great, but in its >> current shape it cannot re-generate the habs in a fashion that I'd >> call "automatic". > > Have you raised bugs for the individual issues here, so that we have them > documented in a central place?
Yes, of course I did. Didn't you receive notifications from Github?
Where are those bugs? I did some bugs raised by you on the cabal2arch project, but they were all package specific, i.e. "cabal2arch doesn't generate correct output for Foo". These issues say that there are bugs in cabal2arch, they don't say that cabal2arch is inadequate for maintaining 2000 packages in AUR.
>> Furthermore, we seem to have no functioning tools that help us >> automate the updating process. My experience so far is that even the >> tiniest trivial update has a significant potential to break the >> build of dozens of other packages. Basically, there seem to be >> trivial updates in Haskell land. > > What process are you using? Both when adding completely new packages and > when puling in a new version of a package. What tools are you currently > using? What actions are manual, and what actions are only partially > covered by tools?
Well, as I said, we don't have any functioning tools or procedures that assist in process of updating a package. So I'm not using *any* tools, and *all* actions are manual. It feels like you expect me to provide extensive formal documentation of what I've been doing in the last 3 months. I am sorry, but I don't have the time to submit a report about everything.
Oh, no, I don't expect that at all. I wouldn't read it if you wrote it anyway ;-) Here's my "process" for updating packages on AUR: 1. Pull down any changes to my local copy of the HABS tree. 2. Open a clean chroot and bind-mount HABS and some personal tools into it. 3. Get the URL for the package that needs updating. 4. Run `cabal2arch <URL>` in the HABS top-level. 5. Switch to the chroot and build the updated package and it's dependencies (I have a simple shell script that does this) 6. If the build fails, then revert the changes to the package in HABS. 7. Go back to 2 and update another package. 8. When no more packages need updating, build the source packages for all modified packages. 9. Use aurploader to upload the source packages to AUR. The problem with this is that step 5 can take a VERY long time, and sometimes I end up doing unnecessary work because there's no easy way of ordering the packages I'm updating such that the number of builds are minimised. Does this process match what you do? Maybe you have more effective ways of performing some of these steps that I could benefit from?
Instead, I recommend that you just try to do a few updates yourself. Then you'll find out what the problems are. Frankly, I'm surprised that you don't know this already. How exactly did you perform updates in the last 3 months?
As you see I do know how *I* do it, what I don't know is how *YOU* do it. Would you please tell me? To conclude, I'm perfectly all right with your comments and questions above, however from your tone I'm getting the feeling that are irritated with me. This hasn't been my intention at all. What I want is for you to share what you've learnt so that I can learn from it too, and ideally this would also lead to improvements in the tools and processes we use to work with HABS. /M -- Magnus Therning OpenPGP: 0xAB4DFBA4 email: magnus@therning.org jabber: magnus@therning.org twitter: magthe http://therning.org/magnus

Hi Magnus,
To be very blunt, I said your EXPERIENCE is invaluable. In your initial email you didn't recount that experience in a way that clearly pointed out what wasn't working. That means your initial email wasn't invaluable, because there was nothing in it that I could act on.
yes, you are right. In an ideal world, I would have written my original message differently. I was frustrated, because I had spent quite a lot of time working on this project, and it felt like the quality of the results that I was able to achieve didn't compare favorably to the amount of effort that was necessary to achieve them. So I was disappointed, and that emotion clearly showed in my message. Obviously, my message would have been more helpful if it had been written from a purely objective point of view. However, since I *am* emotionally involved in this project, it is hard for me to be 100% objective. Still, the fact that I'm not 100% objective does not imply that my perception would be entirely wrong or inaccurate. In your response, you ignored the contents of my message, because you felt that it didn't contain any specific information that you could act on. You didn't say that, though. Instead, you said the opposite: you said that my feedback would be invaluable (even though you clearly didn't believe that it was, or you would have responded to it). To me, that looked as if you would dismiss my point of view. Personally, I believe that everyone on this list has nothing but the best intentions, but we are imperfect human beings who are prone to miscommunications. Apparently, we've had a miscommunication. Now that we have cleared that up, I think the way to go is to forget about it, and to move forward. Is that all right with you? Take care, Peter

On Mon, Jan 10, 2011 at 12:05, Peter Simons
Hi Magnus,
> To be very blunt, I said your EXPERIENCE is invaluable. In your > initial email you didn't recount that experience in a way that > clearly pointed out what wasn't working. That means your initial > email wasn't invaluable, because there was nothing in it that I could > act on.
yes, you are right. In an ideal world, I would have written my original message differently. I was frustrated, because I had spent quite a lot of time working on this project, and it felt like the quality of the results that I was able to achieve didn't compare favorably to the amount of effort that was necessary to achieve them. So I was disappointed, and that emotion clearly showed in my message. Obviously, my message would have been more helpful if it had been written from a purely objective point of view. However, since I *am* emotionally involved in this project, it is hard for me to be 100% objective. Still, the fact that I'm not 100% objective does not imply that my perception would be entirely wrong or inaccurate.
In your response, you ignored the contents of my message, because you felt that it didn't contain any specific information that you could act on. You didn't say that, though. Instead, you said the opposite: you said that my feedback would be invaluable (even though you clearly didn't believe that it was, or you would have responded to it). To me, that looked as if you would dismiss my point of view.
Personally, I believe that everyone on this list has nothing but the best intentions, but we are imperfect human beings who are prone to miscommunications. Apparently, we've had a miscommunication. Now that we have cleared that up, I think the way to go is to forget about it, and to move forward. Is that all right with you?
Absolutely! /M -- Magnus Therning OpenPGP: 0xAB4DFBA4 email: magnus@therning.org jabber: magnus@therning.org twitter: magthe http://therning.org/magnus

Hi Magnus,
To conclude, I'm perfectly all right with your comments and questions above, however from your tone I'm getting the feeling that are irritated with me.
personally, I would prefer to describe my impressions as concern. The reasons for my concern are simple. For the longest time, Don Steward has been the driving force behind the ArchHaskell project, and he has done an incredible job at bringing Haskell to ArchLinux. Over the course of the last year, however, it had become increasingly obvious that he alone cannot succeed at maintaining a set of 2,000 packages all on his own. It's just too much work for a single person, no matter how smart or enthusiastic he or she is. Last October, Don stepped down and handed the project over to a small group of people, namely you, Remy, and myself. Now, Remy has stated right from the start that he doesn't see himself maintaining HABS. Instead, he expressed an interest in continuing the development of the ArchLinux library and the cabal2arch utility, and that is exactly what he has done since. Considering that Remy is also our main go-to guy when it comes to [extra], I believe it's fair to say that he has been a major contributor of the project, even though he didn't contribute to HABS itself. Anyway, that leaves HABS firmly in the hands of two people: you and me. Unfortunately, it turned out that you didn't manage to contribute anything to the HABS repository in the entire period between October 22nd and yesterday. No updates, no bugfixes, no commits at all. Please don't get me wrong. I don't want to come across as criticizing you for the fact that you didn't have time to contribute! Still, the reality is that after Don's retirement, I am pretty much the only person who has committed time and resources to the maintenance of HABS. So this leaves us in a situation where the Haskell packages published on AUR are maintained by a single person again, only this time it's not Don, it's me. Duh! I didn't want that to happen, and I don't believe that I can keep 2,000 packages up-to-date any more than Don could. In the last two days, you've suddenly become extremely active again, and I can guess what the reasons for that unexpected burst of motivation were, but I wonder whether it is going to last? Are you sure that you can keep that level of activism up for the next 3 months? Are you certain that you have the time to commit to that?
Here's my "process" for updating packages on AUR:
1. Pull down any changes to my local copy of the HABS tree. 2. Open a clean chroot and bind-mount HABS and some personal tools into it. 3. Get the URL for the package that needs updating. 4. Run `cabal2arch <URL>` in the HABS top-level. 5. Switch to the chroot and build the updated package and it's dependencies (I have a simple shell script that does this) 6. If the build fails, then revert the changes to the package in HABS. 7. Go back to 2 and update another package. 8. When no more packages need updating, build the source packages for all modified packages. 9. Use aurploader to upload the source packages to AUR.
The problem with this is that step 5 can take a VERY long time, and sometimes I end up doing unnecessary work because there's no easy way of ordering the packages I'm updating such that the number of builds are minimised.
In http://github.com/peti/arch-haskell, I have automated that entire procedure so that boils down to running "make world". There is also a target "make updates" that will identify and print out all available updates from Hackage. Then I use "make publish" to upload the newly generated binary repository to the kiwilight.com server. The target "make src" will generate a whole bunch of taurballs that can be published on AUR using the aurupload utility. The set of packages that is being built is determined by this file: http://github.com/peti/arch-haskell/blob/master/PKGLIST I hope this helps! Take care, Peter

On 11/01/11 11:27, Peter Simons wrote:
Here's my "process" for updating packages on AUR:
1. Pull down any changes to my local copy of the HABS tree. 2. Open a clean chroot and bind-mount HABS and some personal tools into it. 3. Get the URL for the package that needs updating. 4. Run `cabal2arch <URL>` in the HABS top-level. 5. Switch to the chroot and build the updated package and it's dependencies (I have a simple shell script that does this) 6. If the build fails, then revert the changes to the package in HABS. 7. Go back to 2 and update another package. 8. When no more packages need updating, build the source packages for all modified packages. 9. Use aurploader to upload the source packages to AUR.
The problem with this is that step 5 can take a VERY long time, and sometimes I end up doing unnecessary work because there's no easy way of ordering the packages I'm updating such that the number of builds are minimised.
In http://github.com/peti/arch-haskell, I have automated that entire procedure so that boils down to running "make world". There is also a target "make updates" that will identify and print out all available updates from Hackage. Then I use "make publish" to upload the newly generated binary repository to the kiwilight.com server. The target "make src" will generate a whole bunch of taurballs that can be published on AUR using the aurupload utility. The set of packages that is being built is determined by this file:
http://github.com/peti/arch-haskell/blob/master/PKGLIST
I hope this helps!
Thanks, there are absolutely some stuff in there that I will find useful. /M -- Magnus Therning OpenPGP: 0xAB4DFBA4 email: magnus@therning.org jabber: magnus@therning.org twitter: magthe http://therning.org/magnus

On Tue, 11 Jan 2011 12:27:54 +0100, Peter Simons

On Wed, Jan 12, 2011 at 00:28, Nicolas Pouillard
On Tue, 11 Jan 2011 12:27:54 +0100, Peter Simons
wrote: Hi Peter and others,
While I didn't post much on this list I try to carefully follow the evolution since I heavily needs to have a working/"well packaged" environment for Haskell in ArchLinux. I'm in the situation where in order to easily maintain multiple machines I have a personal binary repository for non-official packages that I use from others sources like AUR. Recently I switched from AUR to HABS for my needs in Haskell packages [1], with great success. I don't (yet) use much of the ArchHaskell tools (except cabal2arch) and rely on some simple shell scripts I already have for my non-haskell packages.
So while I cannot guarantee any time to spend on HABS, I would glad to contribute from time to time. I have a fork on github.
Great. Let us know if you are happy to file pull requests or would prefer commit access. /M -- Magnus Therning OpenPGP: 0xAB4DFBA4 email: magnus@therning.org jabber: magnus@therning.org twitter: magthe http://therning.org/magnus

On Wed, 12 Jan 2011 10:02:09 +0000, Magnus Therning
On Wed, Jan 12, 2011 at 00:28, Nicolas Pouillard
wrote: On Tue, 11 Jan 2011 12:27:54 +0100, Peter Simons
wrote: Hi Peter and others,
While I didn't post much on this list I try to carefully follow the evolution since I heavily needs to have a working/"well packaged" environment for Haskell in ArchLinux. I'm in the situation where in order to easily maintain multiple machines I have a personal binary repository for non-official packages that I use from others sources like AUR. Recently I switched from AUR to HABS for my needs in Haskell packages [1], with great success. I don't (yet) use much of the ArchHaskell tools (except cabal2arch) and rely on some simple shell scripts I already have for my non-haskell packages.
So while I cannot guarantee any time to spend on HABS, I would glad to contribute from time to time. I have a fork on github.
Great. Let us know if you are happy to file pull requests or would prefer commit access.
Having commit access would be better, then I will either directly push to master the changes I'm confident with. And push to another branch the other changes. In particular I like to have a branch which can goes at the "speed" I want. Cheers, -- Nicolas Pouillard http://nicolaspouillard.fr

On 07/01/11 18:47, Peter Simons wrote:
Hi guys,
[...]
Now, based on my experience from maintaining 5% of Hackage, I've arrived at the conclusion that our tools and our procedures are quite inadequate to get the job done. Maintaining 118 packages in an orderly fashion has been really difficult. I wouldn't dream of even trying to maintain 2500+ packages that way. The most significant problems I've encountered are:
1) A lack of coordination. We have made a couple of attempts to define policies, procedures, and responsibilities for this project, but ultimately we never really got anywhere. The net result is that everyone of us is working on whatever interests him, but the others mostly don't even know about it. Consequently, we are inefficient.
This is true to a large extent. What do you feel is left to define? But bear in mind that this is an effort by volunteers, especially "responsibilities" are always tricky in such projects.
For instance, we develop patches for the ArchLinux library, and when they're ready, we throw them away, because we realize way too late that we don't like what they do.
I don't think this is that common in FOSS when people work on their own without telling people what they are doing.
Similarly, we perform updates in [extra], and then we revert them again, because we notice way too late that they break someone else's efforts.
I can only agree on this point, and I'm not sure what can be done to fix it, if anything
It feels like most of the things we've accomplished were being accomplished though individual machismo, rather than through a coordinated team effort.
2) Lack of communication. In my experience, it's incredible hard to get
[...] This is again about [extra], I can only say I wish it were better, but I can't personally do much about it.
3) Inadequate tools. The cabal2arch utility is a great, but in its current shape it cannot re-generate the habs in a fashion that I'd call "automatic". For some packages, such as OpenGL or GLUT, the cabal2arch output is outright broken and doesn't compile. For other packages, such as cabal2arch itself, the generated PKGBUILD compiles but is incorrect anyway, because run-time dependencies are declared as being build-time dependencies. There are several other packages that cannot be generated with cabal2arch, such as haskell-platform, and that need manual editing before they can be published. So far, we have been addressing these problems in a way that feels "ad hoc", to put it mildly. Being a professional software engineer, that makes me quite uncomfortable, because I have the impression that we don't fully understand what it is that we're trying to do.
This is why I say that your experience is invaluable. Have you raised bugs for the individual issues here, so that we have them documented in a central place? Please provide info of HOW things are broken, i.e. current behaviour and correct behaviour.
Furthermore, we seem to have no functioning tools that help us automate the updating process. My experience so far is that even the tiniest trivial update has a significant potential to break the build of dozens of other packages. Basically, there seem to be trivial updates in Haskell land. Whenever such breakage occurs, there is no easy way to figure out how to remedy the version conflicts. Doing that manually is quite an effort when 118 packages ought to compile, but remedying those conflicts manually for 2500+ packages is not going to be possible.
What process are you using? Both when adding completely new packages and when puling in a new version of a package. What tools are you currently using? What actions are manual, and what actions are only partially covered by tools? /M -- Magnus Therning OpenPGP: 0xAB4DFBA4 email: magnus@therning.org jabber: magnus@therning.org twitter: magthe http://therning.org/magnus

On 09/01/11 17:34, Magnus Therning wrote: [...]
For instance, we develop patches for the ArchLinux library, and when they're ready, we throw them away, because we realize way too late that we don't like what they do.
I don't think this is that common in FOSS when people work on their own without telling people what they are doing.
What I meant to write was that I don't think this is UNcommon in FOSS when people work on their own without telling others what they are doing. I'd also like to add that I personally try to avoid this issue by raising bugs/issues for just about anything I'm doing. This is just the way *I* like to work; I find it natural. I'm not religious about it though. /M -- Magnus Therning OpenPGP: 0xAB4DFBA4 email: magnus@therning.org jabber: magnus@therning.org twitter: magthe http://therning.org/magnus
participants (4)
-
Magnus Therning
-
Nicolas Pouillard
-
Peter Simons
-
Tasha Buckley