Changes between Version 3 and Version 4 of SoC2007Hackage


Ignore:
Timestamp:
Jul 9, 2007 1:27:32 PM (7 years ago)
Author:
sboehme
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SoC2007Hackage

    v3 v4  
    1010The plan is for a daemon to build HackageDB packages and add the resulting build logs and Haddock documentation to the package pages. 
    1111Since building Cabal packages may execute arbitrary code, it must be done in a protected environment (e.g. chroot). 
     12Currently, there are two tools for this purpose, a bash script to set up an appropriate chroot environment and a Haskell application to perform the generation of Haddock documentation. 
    1213 
    13 === Done === 
     14The general idea is as follows. In the secure environment, an unprivileged user downloads a package (the work unit), inspects it dependencies from the package's Cabal file and downloads necessary dependency packages, if not already available on the system. After the dependencies have been built and their documentation was generated, the work unit is processed in the same way. During that, a build log is generated which is uploaded to the corresponding package's HackageDB website along with the package's Haddock documentation. 
    1415 
    15  * setup_chroot script: sets up a chroot environment based on debootstrap and the testing version of Debian 
    16  * autodoc tool: downloads packages and their dependencies, builds them in a choot environment, creates the Haddock documentation and build logs 
    1716 
    18 === TODO === 
     17== Other extensions of the HackageDB website == 
    1918 
    20  * identify C libraries needed to build packages (e.g. SDL, X11, OpenGL, ...) and add them to the chroot environment 
    21  * improve autodoc output, especially more readable build logs 
    22  * Hoogle output 
    23  * run test suites of packages 
    24  * allow for different compilers and compiler versions 
     19See [http://hackage.haskell.org/trac/hackage/wiki/HackageToDo HackageDB ToDo list], especially ''Package properties'' and ''Queries''. 
     20 
     21 
     22== Progress == 
     23 
     24'''2007-07-06''' 
     25 
     26  The setup_chroot script, based on [http://packages.debian.org/stable/admin/debootstrap debootstrap], allows to create a basic environment to build Cabal packages. It consists of GHC 6.6, Cabal 1.1.7 (taken from the darcs repository) and Haddock 0.8, along with Alex and Happy and other necessary tools. It lacks several libraries needed to build all packages currently available at HackageDB. 
     27 
     28  The autodoc tool already fulfills the above the requirements (ignoring the packages whose dependencies cannot be met, i.e. SDL and alike). In a test run, 102 package documentations could be built. For now, the tool uses the approach of cabal_install, that is, it builds all dependency packages before processing the actual package. This can be sped up by storing already built packages in the global package repository. Additionally, the autodoc tool currently relies explicitly on a chroot environment, although this is not strictly needed.  
     29 
     30  * '''Todo list''' 
     31    * identify C libraries needed to build packages (e.g. SDL, X11, OpenGL, ...) and add them to what the setup_chroot script is already requiring 
     32    * rewrite the autodoc tool to use a bottom-up approach for building packages, that is, successfully built packages are stored in the system and not rebuilt again afterwards 
     33    * remove the dependency on a chroot environment from the autodoc tool, thus improve platform-independency 
     34    * improve autodoc output, especially more readable build logs 
     35 
     36 
     37  * ''' Possible extensions ''' 
     38    * Hoogle output 
     39    * run test suites of packages 
     40    * allow for different compilers and compiler versions