[Hackage] #199: when installing a new version of GHC, there should be a way to upgrade my packages

#199: when installing a new version of GHC, there should be a way to upgrade my packages ---------------------------------+------------------------------------------ Reporter: guest | Owner: Type: defect | Status: new Priority: normal | Milestone: Component: cabal-install tool | Version: 1.2.3.0 Severity: normal | Keywords: Difficulty: normal | Ghcversion: 6.8.2 Platform: Linux | ---------------------------------+------------------------------------------ If I have version 6.6 of GHC installed, with packages foo, bar, and bang, and I install ghc 6.8, I'd like a way to automatically install foo, bar, and bang. This could be part of GHC's installation script possibly, or maybe a feature of cabal install. cabal can check the installed packages for the previous version of GHC and "cabal install" them. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/199 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#199: when installing a new version of GHC, there should be a way to upgrade my packages ---------------------------------+------------------------------------------ Reporter: guest | Owner: Type: defect | Status: new Priority: normal | Milestone: Component: cabal-install tool | Version: 1.2.3.0 Severity: normal | Resolution: Keywords: | Difficulty: normal Ghcversion: 6.8.2 | Platform: Linux ---------------------------------+------------------------------------------ Comment (by duncan): We have a tool for gentoo that does exactly that. It goes through the old ghc package.conf (well actually, a separate set of files that each gentoo ebuild installs) and rebuilds all the available packages for the new ghc. We'd have to do it in a rather sloppy way since we do not know that each registered package was actually installed by cabal-install or is available from hackage. Also, many packages would fail to build with new ghc so we'd want to not stop when the first package fails but produce a report at the end saying which old packages were unavailable or failed to rebuild. Such a sloppy mode, producing a report would also be very useful for general hackage QA. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/199#comment:1 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#199: when installing a new version of GHC, there should be a way to upgrade my packages ---------------------------------+------------------------------------------ Reporter: guest | Owner: Type: enhancement | Status: new Priority: normal | Milestone: Component: cabal-install tool | Version: 1.2.3.0 Severity: normal | Resolution: Keywords: | Difficulty: normal Ghcversion: 6.8.2 | Platform: Linux ---------------------------------+------------------------------------------ Changes (by duncan): * type: defect => enhancement -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/199#comment:2 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#199: when installing a new version of GHC, there should be a way to upgrade my packages ---------------------------------+------------------------------------------ Reporter: guest | Owner: Type: enhancement | Status: new Priority: normal | Milestone: Cabal-1.6 Component: cabal-install tool | Version: 1.2.3.0 Severity: normal | Resolution: Keywords: | Difficulty: easy (<4 hours) Ghcversion: 6.8.2 | Platform: Linux ---------------------------------+------------------------------------------ Changes (by duncan): * difficulty: normal => easy (<4 hours) * milestone: => Cabal-1.6 Comment: We should record a "world" file of stuff the user explicitly requested. This is then the target for upgrades and re-installs when the user changes compiler. See also #198 -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/199#comment:3 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#199: when installing a new version of GHC, there should be a way to upgrade my packages ---------------------------------+------------------------------------------ Reporter: guest | Owner: Type: enhancement | Status: new Priority: normal | Milestone: Cabal-1.8 Component: cabal-install tool | Version: 1.2.3.0 Severity: normal | Resolution: Keywords: | Difficulty: easy (<4 hours) Ghcversion: 6.8.2 | Platform: Linux ---------------------------------+------------------------------------------ Changes (by duncan): * milestone: Cabal-1.6 => Cabal-1.8 -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/199#comment:4 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#199: when installing a new version of GHC, there should be a way to upgrade my packages ---------------------------------+------------------------------------------ Reporter: guest | Owner: Type: enhancement | Status: new Priority: normal | Milestone: Cabal-1.8 Component: cabal-install tool | Version: 1.2.3.0 Severity: normal | Resolution: Keywords: | Difficulty: easy (<4 hours) Ghcversion: 6.8.2 | Platform: Linux ---------------------------------+------------------------------------------ Comment (by thaldyron): Replying to [comment:3 duncan]:
We should record a "world" file of stuff the user explicitly requested. This is then the target for upgrades and re-installs when the user changes compiler.
I suppose this ticket hasn't been resolved yet. I would be interested in writing a patch for it, but would need to know whether my approach described in http://www.haskell.org/pipermail/cabal-devel/2009-February/004800.html is the right way to go. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/199#comment:5 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#199: when installing a new version of GHC, there should be a way to upgrade my packages ---------------------------------+------------------------------------------ Reporter: guest | Owner: Type: enhancement | Status: new Priority: normal | Milestone: Cabal-1.8 Component: cabal-install tool | Version: 1.2.3.0 Severity: normal | Resolution: Keywords: | Difficulty: easy (<4 hours) Ghcversion: 6.8.2 | Platform: Linux ---------------------------------+------------------------------------------ Comment (by Saizan): How does this interact with keeping multiple compilers/versions side by side? maybe we should have a world file for each one and be able to install the packages in world-compiler1 using compiler2 -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/199#comment:6 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

How does this interact with keeping multiple compilers/versions side by side? maybe we should have a world file for each one and be able to install
#199: when installing a new version of GHC, there should be a way to upgrade my packages ---------------------------------+------------------------------------------ Reporter: guest | Owner: Type: enhancement | Status: new Priority: normal | Milestone: Cabal-1.8 Component: cabal-install tool | Version: 1.2.3.0 Severity: normal | Resolution: Keywords: | Difficulty: easy (<4 hours) Ghcversion: 6.8.2 | Platform: Linux ---------------------------------+------------------------------------------ Comment (by duncan): Replying to [comment:6 Saizan]: the packages in world-compiler1 using compiler2 There being just one world file is a feature, not a bug :-). It means that moving between compilers is easy. It's not likely that you want some things in one but not another. What is more likely is that there are some things that simply cannot be installed with an older version. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/199#comment:7 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

Replying to [comment:6 Saizan]:
How does this interact with keeping multiple compilers/versions side by side? maybe we should have a world file for each one and be able to install
#199: when installing a new version of GHC, there should be a way to upgrade my packages ---------------------------------+------------------------------------------ Reporter: guest | Owner: Type: enhancement | Status: new Priority: normal | Milestone: Cabal-1.8 Component: cabal-install tool | Version: 1.2.3.0 Severity: normal | Resolution: Keywords: | Difficulty: easy (<4 hours) Ghcversion: 6.8.2 | Platform: Linux ---------------------------------+------------------------------------------ Comment (by thaldyron): Replying to [comment:7 duncan]: the packages in world-compiler1 using compiler2
There being just one world file is a feature, not a bug :-). It means
that moving between compilers is easy. It's not likely that you want some things in one but not another. What is more likely is that there are some things that simply cannot be installed with an older version. I agree with that; if different world-files are really necessary, you can always (albeit manually) select them with the --world-file flag. Btw: Maybe adding a "--oneshot" install-flag makes sense for installing without updating world. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/199#comment:8 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#199: when installing a new version of GHC, there should be a way to upgrade my packages ---------------------------------+------------------------------------------ Reporter: guest | Owner: Type: enhancement | Status: new Priority: normal | Milestone: cabal-install-0.8 Component: cabal-install tool | Version: 1.2.3.0 Severity: normal | Resolution: Keywords: | Difficulty: easy (<4 hours) Ghcversion: 6.8.2 | Platform: Linux ---------------------------------+------------------------------------------ Changes (by duncan): * milestone: Cabal-1.8 => cabal-install-0.8 Comment: Updating milestone. See also the latest patches posted to the list. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/199#comment:9 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#199: when installing a new version of GHC, there should be a way to upgrade my packages ---------------------------------+------------------------------------------ Reporter: guest | Owner: Type: enhancement | Status: new Priority: normal | Milestone: cabal-install-0.8 Component: cabal-install tool | Version: 1.2.3.0 Severity: normal | Resolution: Keywords: | Difficulty: easy (<4 hours) Ghcversion: 6.8.2 | Platform: Linux ---------------------------------+------------------------------------------ Comment (by thaldyron): The new patch (see attachment) adds world-file support for the 0.7 HEAD branch. Whenever you install a package, an entry is added to the world-file, storing the specified package-name, package-version, and user flags. For example, the entry generated by {{{ # cabal install stm-io-hooks --flags="-debug" }}} looks like this: {{{ stm-io-hooks -any --flags="-debug" }}} The requires dependencies of a packge, however, are not recorded in the world file, only the packages explicitly requested by the user. To rebuild all previously installed packages (e.g. on updating GHC), use {{{ # cabal install world }}} The previous version of this patch supported the "cabal upgrade world" command, which is now disabled until "cabal upgrade" is fixed. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/199#comment:10 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects
participants (1)
-
Hackage