Contents

1 Cabal

1.1 About

Cabal is a system for building and packaging Haskell libraries and programs. It defines a common interface for package authors and distributors to easily build their applications in a portable way.

1.2 Coordinators

Johan Tibell (via IRC)

1.3 Tasks

Bug-closing fixit, where people try to reproduce bugs on the GitHub issue tracker and report those that cannot be reproduced as such. This would be very useful as the number of open issues has gotten a bit out-of-control, making the issue tracker less useful.

This is a good opportunity for the less experienced Haskell folks to get acquainted with the Haskell infrastructure and possibly even dig into the Cabal internals.

1.4 Update Wednesday 1 May

I am planning to hack on cabal. Here's some details from Johan:

Hi Dominic,

I'm glad you decided to hack on Cabal! :)

In addition to checking out the source, make sure you can build the code and run the tests. This is the recipe I use:

One problem with the bug tracker today is that there are way too many open bugs that are no longer relevant. One thing you could do is to go through the bugs and try to reproduce them. If you can't reproduce them add a comment on the bug saying so and send me an email with these bugs and I will close them. If you can reproduce them you can try to fix them if you like. Depending on the bug that might be easy or hard. Note that Gregory Collins and I already went through a bunch of them so I suggest you start somewhere in the middle (say, page 6).

If that doesn't tickle your fancy you could just browse the bug list until you come upon something you care about.

Another task would be to try to extend the test suite, especially with small unit tests (place in tests/UnitTests).

Another challenge would be to make sure the test suite works even if we configure with e.g. -w <other GHC version>. Some tests need to call e.g. ghc-pkg and they do that using this file: https://github.com/haskell/cabal/blob/master/Cabal/tests/PackageTests/PackageTester.hs . However, as you can see in this file we use a hack to try to guess the right ghc-pkg to call. The right thing to do would be to read Cabal/dist/setup-config and use the Cabal library to locate the right ghc-pkg (and other commands) to call. This would make the tests less brittle.

Hope this is enough to get you started!

P.S. Feel free to share this with other OdHac attendees. The more people that hack on Cabal the better.

2 Hakyll

2.1 About

Hakyll is a Haskell library for generating static sites, mostly aimed at small-to-medium sites and personal blogs. It is written in a very configurable way and uses an xmonad-like DSL for configuration.

2.2 Coordinators

Jasper Van der Jeugt

2.3 Tasks

Hakyll should be a very accessible project, even for Haskell beginners. I have quite a few ideas for improvements, and I welcome ideas from other people as well!