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.

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.

−

== HasFix ==

+

=== Update Wednesday 1 May ===

−

=== About ===

+

−

[http://www.youtube.com/watch?v=Ae-6uIMQPmU HasFix] is an API upgrade tool for Haskell.

+

−

=== Coordinators ===

+

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

−

Roman Cheplyaka

+

−

=== Tasks ===

+

Hi Dominic,

−

* Create a good user interface. This includes creating a convenient program where a user describes the API changes, and a human-editable format (perhaps YAML-based?) to represent these changes on disk.

+

−

* Implement some simple types of API changes

+

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:

You only need to run the cabal install --only-dependencies part once. You may already have the dependencies installed on your machine.

+

+

Depending on what you're feeling like, there's lots of different things you can do. Start by going to the bug tracker at https://github.com/haskell/cabal/issues

+

+

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.

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.

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.

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.