Commit 2f7e5fb7 authored by Sergei Trofimovich's avatar Sergei Trofimovich
Browse files

doc: split TODO to some pieces. moved README.rst to toplevel dir


Signed-off-by: default avatarSergei Trofimovich <slyfox@gentoo.org>
parent 0ec4fc31
Gentoo Haskell project intro
****************************
Oh, hi!
So you've got a couple of moments to kill and you're looking for something
to do? You've come to the right place.
There are sereval ways to find tasks, one is looking in our `TODO list <projects/doc/TODO.rst>`_.
Another is to have a look at the bug reports piled up at
`the Gentoo Bugzilla <http://tinyurl.com/2l3p48>`_.
Anything from actually solving the problem to just verify the report or
provide more information is helpful.
To start contribute you need a working copy of the haskell overlay, a copy
that you can modify and send patches/pull requests from. You could use layman to get a
copy, but in this case I'd not recommend it. Assuming you have git emerged,
run this to get your own copy of the repo:
git clone https://github.com/gentoo-haskell/gentoo-haskell.git
You need to be able to create patches and send patches/pull requests on github.
If you are new to git try to read `some basics <http://progit.org/book/>`_
and drop on freenode://#gentoo-haskell to get help.
Introduction to Haskell Ebuilds
===============================
We have two kinds of ebuilds, completely manually written, and those mostly
generated from hackage using our custom tool hackport.
Ebuilds for complex applications and libraries that take a little more care,
like ghc, are written by hand.
The absolutely mostpart though, are projects listed on the
`hackage site <http://hackage.haskell.org/packages/archive/pkg-list.html>`_.
For all those packages we can generate ebuilds that often only require very
little manual tweeking. The dependencies, descriptions etc, written in the
``.cabal`` files is used to correctly generate the ebuilds. The progress of
hackage and development decisions are important for gentoo haskell, which is
why we keep a close cooperation with them.
To get the hackport tool, either install ``app-portage/hackport-9999``
available from the haskell overlay, or get your copy of the repo using
git clone https://github.com/gentoo-haskell/hackport.git
See `HOWTO contribute <projects/doc/HOWTO-contribute.rst>`_ on technical aspects of
how to work with overlay.
Gentoo Haskell TODO
*******************
Oh, hi!
So you've got a couple of moments to kill and you're looking for something
to do? You've come to the right place.
There are sereval ways to find tasks, one is looking in this TODO.
Another is to have a look at the bug reports piled up at the Gentoo
Bugzilla; see http://tinyurl.com/2l3p48
Anything from actually solving the problem to just verify the report or
provide more information is helpful.
To start contribute you need a working copy of the haskell overlay, a copy
that you can modify and send patches from. You could use layman to get a
copy, but in this case I'd not recommend it. Assuming you have darcs
emerged, run this to get your own copy of the repo:
darcs get --partial http://code.haskell.org/gentoo/gentoo-haskell/
You need to be able to create patches and possibly send them directly from
darcs, consult the darcs manual at http://darcs.net
Introduction to Haskell Ebuilds
===============================
We have two kinds of ebuilds, completely manually written, and those mostly
generated from hackage using our custom tool hackport.
Ebuilds for complex applications and libraries that take a little more care,
like ghc, are written by hand.
The absolutely mostpart though, are projects listed on the hackage site;
http://hackage.haskell.org/packages/archive/pkg-list.html
For all those packages we can generate ebuilds that often only require very
little manual tweeking. The dependencies, descriptions etc, written in the
.cabal files is used to correctly generate the ebuilds. The progress of
hackage and development decisions are important for gentoo haskell, which is
why we keep a close cooperation with them.
To get the hackport tool, either install app-portage/hackport-darcs
available from the haskell overlay, or get your copy of the repo using
darcs get --partial http://code.haskell.org/gentoo/hackport/
Next, lets see where your help is needed :)
== Easy ==
== High priority ==
== New ebuilds ==
* get regex-{base,compat,posix} ~arch on all platforms
* ebuild for wxhaskell and wxc
* ebuild for takusen
http://darcs.haskell.org/takusen
* build binaries for ghc 6.6.1 for remaining platforms: ppc64
* hugs-2006.5
* haskelldb: though the current release is very old, perhaps prod them
for a new release. The dev version supports HDBC I believe.
* helium-1.6 (may not work on 64-bit arches)
An ebuild is in the overlay but it needs some more love.
Only tested on x86.
'hint' works with simple library and with type classes.
The other executables only works with the simple library, type classes
fail with:
Using overloaded Prelude while overloading is not enabled
Hint: Compile with --overloading, or use the simple Prelude
* darcsweb-0.16
* add yhc when it's ready
== Ebuild maintainance ==
* remove old versions of cabal. Do we need anything other than 1.1.6.2 and 1.2?
* extralibs in ghc-6.8.2. test if the work with ghc 6.6.1 too, and add them
to portage. as package.masked for those who only work with ghc 6.8.2.
ALUT 2.1.0.0
GLUT 2.1.1.1
HUnit 1.2.0.0
ObjectIO 1.0.1.1
OpenAL 1.3.1.1
OpenGL 2.2.1.1
QuickCheck 1.1.0.0
cgi 3001.1.5.1
fgl 5.4.1.1
haskell-src 1.0.1.1
html 1.0.1.1
mtl 1.1.0.0
network 2.1.0.0
parallel 1.0.0.0
parsec 2.1.0.0
regex-base 0.72.0.1
regex-compat 0.71.0.1
regex-posix 0.72.0.2
stm 2.1.1.0
time 1.1.2.0
xhtml 3000.0.2.1
* ask ppc arch team to get these marked ~ppc:
glut-2.1.1
openal-1.3.1
opengl-2.2.1
* ask ppc64 arch team to get these marked ~ppc64:
filepath-1.0
regex-base-0.72
regex-compat-0.71
regex-posix-0.71
* ask hppa arch team to get these marked ~hppa:
fgl-5.4.1
haskell-src-1.0.1
html-1.0.1
hunit-1.1.1
mtl-1.0.1
network-2.0.1
quickcheck-1.0.1
time-1.1.1
xhtml-3000.0.2
* get ebuilds marked ~amd64: helium
* in the ghc ebuilds: does the ghcprof subst work?
== Harder ==
== Long term & continuing projects ==
* get ghc bugs fixed upstream, send patches
* help fix & improve cabal. improve cabal-install
http://hackage.haskell.org/trac/hackage/report/9
http://darcs.haskell.org/cabal
http://darcs.haskell.org/cabal-install
* improve HackPort tool
http://code.haskell.org/gentoo/hackport
== Speculative ==
* Since there is no ghc-bin ebuild, do we really need /opt/ghc anymore?
Can we just install to /usr instead?
==> Looks like it's working fine with the 6.8 releases... port these
changes back to older releases? Though this may require
re-stabilisation of the ebuilds in the official tree.
--> No need to port it to older ebuilds. Let's just install to /usr from
now on.
* SLOT libs
* SLOT ghc (probly not possible with current portage)
* eclectic/haskell-config (related to SLOTting ghc & libs)
To be written. Sorry, I need some more days for it.
Perpetual TODO
==============
- [easy to hard] Add packages requested by people to the overlay.
`HackPort <https://github.com/gentoo-haskell/hackport>`_ is a nice tool to do it fast.
- Improve `HackPort <https://github.com/gentoo-haskell/hackport>`_ tool.
- [easy] Some packages are patched on top of upstream. Ideally they shoud not :].
Your goal is to push nice patches upstream. Haskell world is very eager
in getting feedback, so it's a source of pleasure to work with upstream!
Some code snippets on scanning the tree for such patched packages:
- ``git grep PATCHES``
- ``git grep epatch``
- ``git grep git grep -E '\<sed\>'``
- [moderate] Some packages have their testuites, but ebuilds don't utilize it or
have tests blocked. Blocked tests are easy to find with ``git grep RESTRICT``.
Here is some notes to say:
- upstream tests are sometimes unportable hacks, so your aim is to rework ill
written testsuites by using ``Cabal`` recently introduced testing interface
and/or using libraries helping in testing (``HUnit``, ``QuickCheck``,
``test-framework-*``). See tests in ``darcs`` as an advanced example.
- [moderate] Get ghc bugs fixed upstream, send patches
- [easy-to-moderate] Help fix & improve cabal. Improve cabal-install.
* http://hackage.haskell.org/trac/hackage/report/9
* http://darcs.haskell.org/cabal
* http://darcs.haskell.org/cabal-install
- [easy] Write a program to check for build errors of package in overlay.
- [easy] run ``repoman full`` on the overlay and provide fixes for found
QA notices.
Speculative TODO
================
- SLOT libs
- SLOT ghc (probly not possible with current portage)
- eclectic/haskell-config (related to SLOTting ghc & libs)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment