Pursuant to #3573 I went back and looked at the convenience libraries changeset to find out where I broke BC. Some of these are avoidable and I'm going to BC them.
Here are the ones I am not going to fix unless people tell me to:
- Fixing autogeneration to be per-component meant I plumbed
ComponentLocalBuildInfo through a number of places: initialBuildSteps, writeAutogenFiles, generate, generateMacros / generateComponentIdMacro, autogenModulesDir, getLibSourceFiles, getExeSourceFiles, installIncludeFiles, PPSuffixHandler, preprocessComponent, ppGreenCard, etc. I am NOT going to rename these and bring back BC versions of them
- HookedBuildInfo changed types. The change is for the better and I am unrepentant.
- OriginalModule got renamed to Module. The new name is much better, and not many people were using OriginalModule anyway.
- componentPackageRenaming was a "new" feature, it got renamed again to componentIncludes and I am unrepentant.
Some functions whose types changed but virtually no one on Hackage uses them: maybeHasName, mkComponentsLocalBuildInfo
Pursuant to #3573 I went back and looked at the convenience libraries changeset to find out where I broke BC. Some of these are avoidable and I'm going to BC them.
ComponentNamehadCLibNameturn toCLibName String. This made the code nice and symmetric but plenty of client code needs the old version. So I'm going to unwind this back intoCSubLibName StringandCLibName. This also means a cluster of functions showBuildTarget, disambiguateBuildTargets, renderBuildTarget and componentStringName go back to their old type (since they need PackageId now)library :: Maybe LibraryinPackageDescription(nominating it to be the public library), and add a new fieldsubLibraries :: [Library]Here are the ones I am not going to fix unless people tell me to:
ComponentLocalBuildInfothrough a number of places: initialBuildSteps, writeAutogenFiles, generate, generateMacros / generateComponentIdMacro, autogenModulesDir, getLibSourceFiles, getExeSourceFiles, installIncludeFiles, PPSuffixHandler, preprocessComponent, ppGreenCard, etc. I am NOT going to rename these and bring back BC versions of themSome functions whose types changed but virtually no one on Hackage uses them: maybeHasName, mkComponentsLocalBuildInfo