Ticket #718 (new defect)

Opened 3 years ago

Last modified 3 years ago

Behaviour of postCopy and postInstall hook is confusing

Reported by: guest Owned by:
Priority: normal Milestone:
Component: Cabal library Version: 1.8.0.2
Severity: normal Keywords:
Cc: jan.vornberger@… Difficulty: unknown
GHC Version: Platform:

Description

While working on the Bluetile cabal package (  http://hackage.haskell.org/package/bluetile ) I used Cabal's hook system to install executables to the libexec directory.

It took me a while to figure out that the postCopy hook is _the only hook_ to run when you invoke 'cabal copy' and the postInstall hook is _the only hook_ to run when you invoke 'cabal install'.

This is both confusing and unfortunate. Since the Cabal documentation elsewhere states that 'cabal install' is just "register + copy" one would assume that upon 'cabal install' the postCopy hook runs as well.

Now I had to write two hooks, both for postCopy and for postInstall, to make it work for users that run 'cabal install' as well as cases where 'cabal copy' is used (for example by distributions, while preparing their packages).

This can probably not be fixed without breaking a bunch of Cabal packages, so maybe some kind of warning or big note in the documentation would help in the meantime.

Best regards! Jan

Change History

Changed 3 years ago by duncan

Yes it's pretty crazy and confusing. I'm not sure we can change it easily however as I think it would break old packages (that's why we'd not done it already).

Though perhaps someone could look at how a smooth transition might work.

Alternatively we have to wait for a full redesign of the hooks interface.

Note: See TracTickets for help on using tickets.