Ticket #1553 (closed proposed-project: fixed)

Opened 4 years ago

Last modified 12 months ago

cabal-install package dependency resolution

Reported by: duncan Owned by:
Priority: good Keywords:
Cc: Topic: Cabal
Difficulty: 1 person Summer Mentor: not-accepted

Description (last modified by insane) (diff)

`cabal-install` is the new command line interface to the Cabal/Hackage system. It does all that runghc Setup.hs does and more. Its major feature is the ability to download an install packages from hackage, including all dependencies.

For example the user says cabal install xmonad and it goes away and looks at what packages are available on hackage and which ones are already installed and works out what packages need to be installed in what order to satisfy the users request.

It turns out that deciding what packages to install is not as easy as it looks. Package dependencies can get quite complicated. Furthermore, users have preferences which we would like to respect. For example the user might want to upgrade all packages that can be upgraded, or they might prefer to install the minimum number of new packages and re-ruse as many existing installed packages as possible. So we need an algorithm that is sufficiently flexible to handle these. Users also expect good error messages in the cases that their request cannot be satisfied.

The current algorithm in cabal-install is very simplistic. It works in simple cases, but it can often generate impossible solutions and it is not flexible to respect user preferences.

There are a number of open bugs about the current system:

The first two are summary bugs (that cover a number of other previous tickets), the last is a specific one.

So this project is to design a new package dependency resolution algorithm and to implement it in cabal-install so that the whole community can benefit from hassle free package management.

Interested Mentors

  • Duncan Coutts

Interested Students

  • Maciej Wos <maciej.wos@…>
  • Piotr Kaleta <piotrek.kaleta@…>

Change History

Changed 4 years ago by maciej.wos

  • description modified (diff)

Changed 3 years ago by insane

  • description modified (diff)

Changed 12 months ago by guest

  • status changed from new to closed
  • resolution set to fixed

The three linked Cabal bugs have all been closed; accordingly, I'm closing this ticket.

Note: See TracTickets for help on using tickets.