Maintaining lambdabot

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
30 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Maintaining lambdabot

Jan Stolarek
Hi all,

as some of you may have noticed Lambdabot doesn't build on GHC 7.6.1 due to OldException being
removed (and a few other changes). I updated the code so that it builds on latest GHC release.
The updated code is available here:

https://github.com/killy9999/lambdabot/tree/upstream

It builds on Linux, but I am not 100% certain that it will build on Windows. If it doesn't I will
be grateful for reporting this (and any other) issues on the bug tracker:

https://github.com/killy9999/lambdabot/issues

The changes required to make the code run weren't as small as I initially thought they will be. In
some places this resulted in a bit ugly code, but aside from that I think that everything should
work correctly.

Now I would like to do a bit of maintanance on the project, since the code is a bit of a mess and
it could use some cleanup. My plans are:

- clean up the package namespace by placing existing modules in Lambdabot module
- integrate lambdabot-utils into lambdabot (already done)
- reformat the code so that it's easier to read

ans if time allows:

- cleanup some messy code
- update the package dependencies so that lambdabot relies on maintained libraries (e.g. I thought
about replacing readline with haskeline).

This changes would be quite invasive and code wouldn't be compatible with the lambdabot repo on
haskell.org. So before I start making any of them I would like to hear from the community if such
changes in the source code of lambdabot would be  considered helpful and acceptable.

Janek

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

Cale Gibbard
On 17 February 2013 18:03, Jan Stolarek <[hidden email]> wrote:
> ...
> This changes would be quite invasive and code wouldn't be compatible with the lambdabot repo on
> haskell.org. So before I start making any of them I would like to hear from the community if such
> changes in the source code of lambdabot would be  considered helpful and acceptable.
>
> Janek

I say go for it! I'll be quite happy to start running your new code in
#haskell as soon as we get GHC 7.6 installed on Jason's Linode
account. :)

 - Cale

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

Dan Burton
In reply to this post by Jan Stolarek

Sounds great. Lambdabot is an important icon to the Haskell community; it will be nice to brush off the bitrot and make lambdabot easier for the average Haskeller to install without having to rely on Cale keeping it running on irc (grateful, though we are).

-- Dan Burton

On Feb 17, 2013 3:04 PM, "Jan Stolarek" <[hidden email]> wrote:
Hi all,

as some of you may have noticed Lambdabot doesn't build on GHC 7.6.1 due to OldException being
removed (and a few other changes). I updated the code so that it builds on latest GHC release.
The updated code is available here:

https://github.com/killy9999/lambdabot/tree/upstream

It builds on Linux, but I am not 100% certain that it will build on Windows. If it doesn't I will
be grateful for reporting this (and any other) issues on the bug tracker:

https://github.com/killy9999/lambdabot/issues

The changes required to make the code run weren't as small as I initially thought they will be. In
some places this resulted in a bit ugly code, but aside from that I think that everything should
work correctly.

Now I would like to do a bit of maintanance on the project, since the code is a bit of a mess and
it could use some cleanup. My plans are:

- clean up the package namespace by placing existing modules in Lambdabot module
- integrate lambdabot-utils into lambdabot (already done)
- reformat the code so that it's easier to read

ans if time allows:

- cleanup some messy code
- update the package dependencies so that lambdabot relies on maintained libraries (e.g. I thought
about replacing readline with haskeline).

This changes would be quite invasive and code wouldn't be compatible with the lambdabot repo on
haskell.org. So before I start making any of them I would like to hear from the community if such
changes in the source code of lambdabot would be  considered helpful and acceptable.

Janek

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

Jason Dagit-3
In reply to this post by Cale Gibbard


On Sun, Feb 17, 2013 at 8:53 PM, Cale Gibbard <[hidden email]> wrote:
On 17 February 2013 18:03, Jan Stolarek <[hidden email]> wrote:
> ...
> This changes would be quite invasive and code wouldn't be compatible with the lambdabot repo on
> haskell.org. So before I start making any of them I would like to hear from the community if such
> changes in the source code of lambdabot would be  considered helpful and acceptable.
>
> Janek

I say go for it! I'll be quite happy to start running your new code in
#haskell as soon as we get GHC 7.6 installed on Jason's Linode
account. :)

My name is Jason and I endorse this message :)

Jason

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

Jan Stolarek
In reply to this post by Cale Gibbard
I'm happy to hear your approval.

I've spent some time yesterday cleaning up the code and writing down all things that do not work.
The list I made is avaliable on github:

https://github.com/killy9999/lambdabot/issues

There are 17 open issues at the moment and I know I will not have enough time to resolve all of
them on my own. There are a few blockers, so the current code is definitely not yet suitable for
any kind of release.

With all that said I would appreciate help of the community :-) There's a lot to do and the tasks
vary in difficulty: from updating documentation and fixing unused imports to fixing exceptions.
If anyone is willing to help please contact me via email or comments on github.

Janek

P.S. The development is done in the 'upstream' branch

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

James Cook
For what it's worth, I also have a fork of lambdabot[1] I've been using for quite a while now, which may provide a cleaner starting point.  In particular, it updates the plugin and command API to be (IMO) quite a bit cleaner and easier to use and understand.  It could probably use some attention to security in the eval module (I've relaxed it quite a bit because I only run it on a private IRC server), but it also includes a lot of fixes and updates to other modules.

[1] https://github.com/mokus0/lambdabot


On Feb 19, 2013, at 2:00 AM, Jan Stolarek <[hidden email]> wrote:

> I'm happy to hear your approval.
>
> I've spent some time yesterday cleaning up the code and writing down all things that do not work.
> The list I made is avaliable on github:
>
> https://github.com/killy9999/lambdabot/issues
>
> There are 17 open issues at the moment and I know I will not have enough time to resolve all of
> them on my own. There are a few blockers, so the current code is definitely not yet suitable for
> any kind of release.
>
> With all that said I would appreciate help of the community :-) There's a lot to do and the tasks
> vary in difficulty: from updating documentation and fixing unused imports to fixing exceptions.
> If anyone is willing to help please contact me via email or comments on github.
>
> Janek
>
> P.S. The development is done in the 'upstream' branch
>
> _______________________________________________
> Haskell-Cafe mailing list
> [hidden email]
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

Jan Stolarek
Wow, this indeed looks like a nice starting point, though I can't build lambdabot from your repo -
seems that dice package is not on Hackage. Is this the package that you rely on:

https://github.com/serialhex/dice ?

Anyway, how would you feel about changes that I would like to make:
- move all modules into Lambdabot. namespace
- remove unlambda, brainfuck and show from the repo. They are on hackage, no need to keep them
here - these packages aren't even used in the build process.
- cleanup scripts
- add package versions to cabal file

This is mostly code refactoring.

Janek

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

James Cook
Sorry, I uploaded it this morning since I knew it wasn't there (it's the "dice" repo from my github account, mokus0).  Have you run "cabal update" in the last 4 or 5 hours?

On Feb 19, 2013, at 2:36 PM, Jan Stolarek <[hidden email]> wrote:

> Wow, this indeed looks like a nice starting point, though I can't build lambdabot from your repo -
> seems that dice package is not on Hackage. Is this the package that you rely on:
>
> https://github.com/serialhex/dice ?
>
> Anyway, how would you feel about changes that I would like to make:
> - move all modules into Lambdabot. namespace
> - remove unlambda, brainfuck and show from the repo. They are on hackage, no need to keep them
> here - these packages aren't even used in the build process.
> - cleanup scripts
> - add package versions to cabal file
>
> This is mostly code refactoring.
>
> Janek
>


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

Gwern Branwen
In reply to this post by Jan Stolarek
On Tue, Feb 19, 2013 at 5:36 PM, Jan Stolarek <[hidden email]> wrote:
> - remove unlambda, brainfuck and show from the repo. They are on hackage, no need to keep them
> here - these packages aren't even used in the build process.

Where will they go?

--
gwern
http://www.gwern.net

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

James Cook
In reply to this post by Jan Stolarek
On Feb 19, 2013, at 2:36 PM, Jan Stolarek <[hidden email]> wrote:

> Anyway, how would you feel about changes that I would like to make:
> - move all modules into Lambdabot. namespace
> - remove unlambda, brainfuck and show from the repo. They are on hackage, no need to keep them
> here - these packages aren't even used in the build process.
> - cleanup scripts
> - add package versions to cabal file

I have no objections to any of these, though I would recommend as Gwern hinted that if related packages are to be removed that they should also be given new homes - I believe that the lambdabot source is currently the main home of these packages.

I tend to prefer not to give package version upper bounds, but that's more of a preference than an objection ;)
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

Jason Dagit-3


On Tue, Feb 19, 2013 at 3:01 PM, James Cook <[hidden email]> wrote:
On Feb 19, 2013, at 2:36 PM, Jan Stolarek <[hidden email]> wrote:

> Anyway, how would you feel about changes that I would like to make:
> - move all modules into Lambdabot. namespace
> - remove unlambda, brainfuck and show from the repo. They are on hackage, no need to keep them
> here - these packages aren't even used in the build process.
> - cleanup scripts
> - add package versions to cabal file

I have no objections to any of these, though I would recommend as Gwern hinted that if related packages are to be removed that they should also be given new homes - I believe that the lambdabot source is currently the main home of these packages.

Random thought, feel free to ignore it: Would it make sense to split lambdabot up into core and contrib like is done with xmonad? Contrib could contain the sillier things like bf, unlambda, show, etc and would have a lower bar for contributors. Core would be the standard things and the essential things.

It seems that people don't really contribute new plugins these days but it would be great if they did. For example, having a plugin for liquid types would be super spiffy. Also, any plugin that helps people to reason about other code (like vacuum).

Jason

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

Jan Stolarek
In reply to this post by Gwern Branwen
Dnia wtorek, 19 lutego 2013, Gwern Branwen napisał:
> On Tue, Feb 19, 2013 at 5:36 PM, Jan Stolarek <[hidden email]> wrote:
> > - remove unlambda, brainfuck and show from the repo. They are on hackage,
> > no need to keep them here - these packages aren't even used in the build
> > process.
>
> Where will they go?
These packages are already on hackage:

http://hackage.haskell.org/package/brainfuck
http://hackage.haskell.org/package/show
http://hackage.haskell.org/package/unlambda

No need to keep them in the lambdabot repo.

Janek


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

Jan Stolarek
In reply to this post by James Cook
> I have no objections to any of these,
Great. Then I will start making mentioned changes and sending pull requests when I find some free
time.

> though I would recommend as Gwern
> hinted that if related packages are to be removed that they should also be
> given new homes - I believe that the lambdabot source is currently the main
> home of these packages.
OK, now I see. In that case we should create separate repositories for these packages.

> I tend to prefer not to give package version upper bounds
Seconded. I only want to specify lower bounds. I have already determined them so that code builds
on GHC 7.4.2.

> Random thought, feel free to ignore it: Would it make sense to split lambdabot up into core and
contrib like is done with xmonad?
I don't have opinion on this one.

Janek


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

Twan van Laarhoven
In reply to this post by Jan Stolarek
On 20/02/13 08:13, Jan Stolarek wrote:

> Dnia wtorek, 19 lutego 2013, Gwern Branwen napisał:
>> On Tue, Feb 19, 2013 at 5:36 PM, Jan Stolarek <[hidden email]> wrote:
>>> - remove unlambda, brainfuck and show from the repo. They are on hackage,
>>> no need to keep them here - these packages aren't even used in the build
>>> process.
>>
>> Where will they go?
> These packages are already on hackage:
>
> http://hackage.haskell.org/package/brainfuck
> http://hackage.haskell.org/package/show
> http://hackage.haskell.org/package/unlambda
>
> No need to keep them in the lambdabot repo.

They are in the lambdabot *repository*, but in separate hackage packages. Are
you suggesting that the source code of these packages is moved out to their own
darcs repositories?



Twan


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

James Cook
In reply to this post by Jason Dagit-3
On Feb 19, 2013, at 9:54 PM, Jason Dagit <[hidden email]> wrote:

> Random thought, feel free to ignore it: Would it make sense to split lambdabot up into core and contrib like is done with xmonad? Contrib could contain the sillier things like bf, unlambda, show, etc and would have a lower bar for contributors. Core would be the standard things and the essential things.

Sounds like a good idea to me.  I could probably do that this weekend if nobody else does sooner.  Any opinion about whether it's better to put them in the same or separate actual repos?  I've tried both with different collections of related packages and have no strong opinion, myself.

> It seems that people don't really contribute new plugins these days but it would be great if they did. For example, having a plugin for liquid types would be super spiffy. Also, any plugin that helps people to reason about other code (like vacuum).

I suspect there are two big reasons for that.  The biggest reason is probably that lambdabot has been getting long in the tooth, and the barrier to entry is sorting through a somewhat bit- rotted API with little to no documentation.  That's why a lot of the work I did to clean it up for myself was API-related.

The other is that there seemed to be, for a long time, no interest in maintaining it.  Several years ago I did some work on fixing up some plugins, for example, but couldn't get a response from whoever was the current maintainer (I think it might have been dons, who was probably overextended at the time).

Hopefully the API can be further simplified and documented; if it can be reduced to a few well-documented "core" modules and a few auxiliary utility/helper ones, that would probably make the educational barrier to entry quite a bit lower, and I'm happy to maintain the repo or willing to let others do so, so hopefully we can reduce the social barrier too.  I don't currently have a lot of time to devote to hacking on it, but I try to be a responsive maintainer of all my projects.

-- James
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

Jan Stolarek
> Any opinion about whether it's better to put them
> in the same or separate actual repos?  
The general rule in git is that a repo should contain a single project. There are some projects
that violate this rule - e.g. cabal stores both Cabal and cabal-install in the same repository -
but with such a setup it is harder to manage commits in case some of them need to be reverted.
I'd say that if we split lambdabot in such a way then core should be one repository and contrib
should be another one (separate). Contrib repository should contain only one package (instead of
bunch of smaller ones).

> couldn't get a response from whoever was the current maintainer
Speaking of which, I think you could become the current maintainer since both Cale and Don agreed
that the project should be maintained and you seem to have done a lot to improve it. Not saying
that you should do all the development, but you could manage releases and uploads to Hackage.

I don't have too much time to spend on this, but I will try to regularly spend 2-3 hours a week on
lambdabot.

Janek



_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

Jan Stolarek
In reply to this post by Twan van Laarhoven
> Are you suggesting that the source code of these packages is moved out to
> their own darcs repositories?
Exactly. This allows to use and develop these packages independently of lambdabot and I consider
that a Good Thing. I'm also much in favor of using git, because github allows easy collaboration
between community members.

Janek

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

Jan Stolarek
In reply to this post by James Cook
I've catalogued a list of issues on github:

https://github.com/mokus0/lambdabot/issues

Let me know if you have objections against any of them. If no then I will try to fix them
gradually. Right now a major problem for me are exceptions in Data.Binary, but I don't think I
will be able to fix them.

Janek

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

Gwern Branwen
In reply to this post by Jan Stolarek
On Wed, Feb 20, 2013 at 12:59 PM, Jan Stolarek <[hidden email]> wrote:
> Exactly. This allows to use and develop these packages independently of lambdabot and I consider
> that a Good Thing. I'm also much in favor of using git, because github allows easy collaboration
> between community members.

It may be a good thing, but speaking as the de facto maintainer of
lambdabot for the past few years, it's a very small good thing and the
goodness may be outweighed by the costs of switching: hardly anyone
ever sends in patches for lambdabot proper, and even fewer for those
add-on runtime dependencies.

I am reminded of a recent incident on the XMonad mailing list: an
enthusiastic young member proposed changing the entire infrastructure
to Github because Github is the new hotness and it would surely
promote easy collaboration between community members and so on and so
forth. He put in a bunch of work in making copies and converting repos
etc, and... nothing happened. His effort was wasted. Turns out the
reason for people not submitting patches had more to do with things
besides not being hosted on Github.

--
gwern
http://www.gwern.net

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Maintaining lambdabot

Jan Stolarek
> goodness may be outweighed by the costs of switching:
Could you specify what are those "cost of switching"?

> Turns out the
> reason for people not submitting patches had more to do with things
> besides not being hosted on Github.
Of course. I don't clain this is the reason for people not submitting patches. All I say is that I
consider git+github to be a much easier platform for collaboration than darcs. I think many
people would agree.

Gwern, and what do you think about James' fork of lambdabot? It seems that there was a lot of work
put into it and that this is indeed a good starting point to continue development.

Janek


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
12