-
Notifications
You must be signed in to change notification settings - Fork 710
Add 'optional-target' field to plan.json #5659
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
Conversation
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "1b520a8ea291898781b8f2da74c7d30d034ecae7", "tag":"linux-7.8.4" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "1b520a8ea291898781b8f2da74c7d30d034ecae7", "tag":"linux-7.6.3" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "1b520a8ea291898781b8f2da74c7d30d034ecae7", "tag":"linux-7.10.3" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "1b520a8ea291898781b8f2da74c7d30d034ecae7", "tag":"linux-8.2.2" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "1b520a8ea291898781b8f2da74c7d30d034ecae7", "tag":"linux-8.4.4" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "1b520a8ea291898781b8f2da74c7d30d034ecae7", "tag":"linux-8.0.2" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "1b520a8ea291898781b8f2da74c7d30d034ecae7", "tag":"linux-8.4.4-fdebug-expensive-assertions" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "1b520a8ea291898781b8f2da74c7d30d034ecae7", "tag":"osx-7.8.4" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "1b520a8ea291898781b8f2da74c7d30d034ecae7", "tag":"osx-7.10.3" }
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When designing the plan.json
scheme we intentionally did not include this information (I remember discussing this with ezyang a couple years ago). However, while I'm not happy about conflating a degree of freedom frontend-UI concern into plan.json
which is supposed to be UI-agnostic; but since we don't have a buildinfo.json
companion metadata file yet, this seems like a tolerable tech debt to incur if it helps get us HIE support sooner rather than later.
@23Skidoo I just realised after talking to the HIE devs, this is really important for the haskell-ide-engine integration of new-build, hence I intend to get this ready for merging today and inclusion in the 2.4 point rls of exe:cabal |
1b520a8
to
adfc927
Compare
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "adfc9279a234a06ec6d7ec93090a5d74c480185a", "tag":"linux-7.10.3" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "adfc9279a234a06ec6d7ec93090a5d74c480185a", "tag":"linux-8.0.2" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "adfc9279a234a06ec6d7ec93090a5d74c480185a", "tag":"linux-7.6.3" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "adfc9279a234a06ec6d7ec93090a5d74c480185a", "tag":"linux-8.2.2" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "adfc9279a234a06ec6d7ec93090a5d74c480185a", "tag":"linux-7.8.4" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "adfc9279a234a06ec6d7ec93090a5d74c480185a", "tag":"linux-8.4.4" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "adfc9279a234a06ec6d7ec93090a5d74c480185a", "tag":"linux-8.6.2" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "adfc9279a234a06ec6d7ec93090a5d74c480185a", "tag":"linux-8.4.4-fdebug-expensive-assertions" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "adfc9279a234a06ec6d7ec93090a5d74c480185a", "tag":"osx-7.8.4" }
@hvr OK, noted. |
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "adfc9279a234a06ec6d7ec93090a5d74c480185a", "tag":"osx-7.10.3" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "adfc9279a234a06ec6d7ec93090a5d74c480185a", "tag":"osx-8.0.2" }
@23Skidoo I've rebased this and renamed the flag; I've been dogfooding this a bit and it looks good to me; IOW, it's ready to merge from my POV |
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "e90007d2a064c8036625a8d9485df2fa4428925c", "tag":"linux-7.10.3" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "e90007d2a064c8036625a8d9485df2fa4428925c", "tag":"linux-8.0.2" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "e90007d2a064c8036625a8d9485df2fa4428925c", "tag":"linux-8.2.2" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "e90007d2a064c8036625a8d9485df2fa4428925c", "tag":"linux-7.8.4" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "e90007d2a064c8036625a8d9485df2fa4428925c", "tag":"linux-7.6.3" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "e90007d2a064c8036625a8d9485df2fa4428925c", "tag":"linux-8.4.4" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "e90007d2a064c8036625a8d9485df2fa4428925c", "tag":"linux-8.6.2" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "e90007d2a064c8036625a8d9485df2fa4428925c", "tag":"linux-8.4.4-fdebug-expensive-assertions" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "e90007d2a064c8036625a8d9485df2fa4428925c", "tag":"osx-7.8.4" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "e90007d2a064c8036625a8d9485df2fa4428925c", "tag":"osx-8.0.2" }
"url":"pull/5659", "account":"haskell", "repo":"cabal", "commit": "e90007d2a064c8036625a8d9485df2fa4428925c", "tag":"osx-7.10.3" }
Having this enables tooling to give better error messages when build output is missing. cabal-install can choose to include optional components in the build plan even though they weren't requested explicitly by the user. Currently tooling would have to assume missing build output after a `v2-build all` call means the component is currently disabled, which is just not very clean.
I prefer the convention that omitted boolean JSON fields default to being `false`. Also, "target" makes it a bit more evident this is about CLI targets.
e90007d
to
b20f3f5
Compare
Merged, thanks! Also cherry-picked to |
Add 'optional-target' field to plan.json (cherry picked from commit bba31e6)
Having this enables tooling to give better error messages when build output is
missing. cabal-install can choose to include optional components in the build
plan even though they weren't requested explicitly by the user. Currently
tooling would have to assume missing build output after a
v2-build all
callmeans the component is currently disabled, which is just not very clean.
Please include the following checklist in your PR: