-
Notifications
You must be signed in to change notification settings - Fork 697
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change in behaviour in HEAD w.r.t copying and installation of executables in packages with Custom setups #9777
Comments
Indeed, as Sam noted we are no longer building executables if they are not a target/argument to build or install. The description of e8c9d19 may also shed some light on this. For example, if we have
and
An invocation with If the invocation were I'm not sure how to better handle the fact that some Custom setups may depend on an executable being built as well regardless of the target, but we should fix this as it breaks at least Agda's workflow. |
In any case a refactoring shouldn't also change behaviour. So perhaps we can restore the old behaviour and then make a more informed/slow decision about what should happen. |
As pointed out by @sheaf, this behavioral change might have been accidentially released with cabal-install-3.12.1.0. |
@mpickering @alt-romes Do you have something to fix this? 3.14 is approaching on the horizon. |
As mentioned by e8c9d19, Cabal 3.12 introduced a breaking change where an unnecessary (not requested) component of a package with a "Custom" build-type is no longer built. This caused breakage for Agda, and was undocumented. The behaviour, despite breaking, is the desired one -- a package shouldn't assume the executable will be built if only the library was requested. This commit documents the breaking change to make sure it is more visible. In the meantime, we've also patched Agda to no longer expect the executable to be built when only the library is installed. Closes haskell#9777 and haskell#10235
As mentioned by e8c9d19, Cabal 3.12 introduced a breaking change where an unnecessary (not requested) component of a package with a "Custom" build-type is no longer built. This caused breakage for Agda, and was undocumented. The behaviour, despite breaking, is the desired one -- a package shouldn't assume the executable will be built if only the library was requested. This commit documents the breaking change to make sure it is more visible. In the meantime, we've also patched Agda to no longer expect the executable to be built when only the library is installed. Closes haskell#9777 and haskell#10235
As mentioned by e8c9d19, Cabal 3.12 introduced a breaking change where an unnecessary (not requested) component of a package with a "Custom" build-type is no longer built. This caused breakage for Agda, and was undocumented. The behaviour, despite breaking, is the desired one -- a package shouldn't assume the executable will be built if only the library was requested. This commit documents the breaking change to make sure it is more visible. In the meantime, we've also patched Agda to no longer expect the executable to be built when only the library is installed. Closes haskell#9777 and haskell#10235
@Kleidukos I've patched agda in agda/agda#7471 and documented the breaking change in the changelog in #10311. Ultimately, we want to keep the new behaviour, and Agda's workflow can be easily fixed in light of this new, more correct, behaviour. #10311 is ready to merge now. |
As mentioned by e8c9d19, Cabal 3.12 introduced a breaking change where an unnecessary (not requested) component of a package with a "Custom" build-type is no longer built. This caused breakage for Agda, and was undocumented. The behaviour, despite breaking, is the desired one -- a package shouldn't assume the executable will be built if only the library was requested. This commit documents the breaking change to make sure it is more visible. In the meantime, we've also patched Agda to no longer expect the executable to be built when only the library is installed. Closes haskell#9777 and haskell#10235
As mentioned by e8c9d19, Cabal 3.12 introduced a breaking change where an unnecessary (not requested) component of a package with a "Custom" build-type is no longer built. This caused breakage for Agda, and was undocumented. The behaviour, despite breaking, is the desired one -- a package shouldn't assume the executable will be built if only the library was requested. This commit documents the breaking change to make sure it is more visible. In the meantime, we've also patched Agda to no longer expect the executable to be built when only the library is installed. Closes haskell#9777 and haskell#10235
Commit f70fc98 appears to have changed the behaviour of the installation of executables in packages with Custom setups.
It seems that, when building a package
pkg
that depends on the library component of thedep
package which also contains an executable, we no longer build and install the executable. On the face of it this seems sensible – after all, if we depend on the library, why should we also build the executable? – but it can break workflows, for instance ifdep
has a custom Setup script which runs the executable (such is the case forAgda
).A reproducer is to depend on a local tarball package with Custom build type and whose copy hook runs the executable.
The text was updated successfully, but these errors were encountered: