Conversation
|
If the intent is for these to be machine-readable, would it make sense to dump them out in JSON or similar by default? |
What's wrong with reading |
Personally, I think it is a bit troublesome to find Additionally, what is the simplest/efficient way to generate However, I can see how appealing it would be to not have to introduce a new command... |
So it the replacement od |
Not only from
Basically yes, but intended to be a bit more general.
Yep, ideally a quick way to query for project metadata, in this case project compiler and targets. |
|
@Mergifyio update |
|
Command
|
|
Some slight bikeshedding since we closed the old status pr in favor of this. I'd prefer the name be something like "status" (now available!) or "build-info" or the like, since I imagine end users and not just ides might want this. Also I'd encourage taking a look at this |
|
I did not have time yet to revisit this PR. |
|
@fendor ping, would be great to see this in 3.8 if possible |
|
I think to get this over the finish line, we need the following resolved:
|
|
Thanks for the update
I would say that it should generate the info if it is needed instead throw an error or show staled info.
I would say that human readable, as tools could access the undelying info (build-info and plan.json). that said it could have some flag to make it seudo machine readable.
Sounds good |
|
I agree with @gbaz that |
I think it depends on the kind of information we are able to query. E.g. the query "what is the build-info of this component?" should in my opinion error out if there is no information available. However, the question "what targets are available in this project?" is allowed to generate |
|
aha, do you mind expand what would be the difference? it is a performance question? |
6504c2f to
bcda142
Compare
e5a68bc to
2ee5327
Compare
Lightweight command that can query for very basic information in a cabal project. In particular, information about the compiler for the project and the location of the so-called `build-info` field. Other flags are bound to follow.
This is more flexible than giving the user the build-info file directly, since this information is redundant as it is located in plan.json. There we can even express some more conditions. If the target is not a local dependency, the user can check that. If the user needs the build-info, then they can look it up in plan.json.
2ee5327 to
0995649
Compare
0995649 to
c780f34
Compare
❌ Base branch update has failedDetailsrefusing to allow a GitHub App to create or update workflow |
|
Closing as discussed in https://hackmd.io/mQjghm2zRgWgcyD4XKhBqA A new PR will follow soonish, depending on the holidays. |
Lightweight command that can query for very basic information
in a cabal project.
In particular, information about the compiler for the project and the
unit-id a given target belongs to.
Other flags are bound to follow.
A document that lays out the plan in more detail: https://gist.github.com/fendor/796b373aba26e12dbdecf7e40af78b32
This is the second part to #7489. It allows IDEs and hie-bios to quickly query for certain project meta information, in this case compiler information and what unit a target string belongs to.
Example:
Target strings that resolve to the same component are listed both times.
Main advantage:
Disadvantage:
Alternatives:
cabal build --dry-runto generateplan.jsonand then parse that one.plan.jsongiven a target string?cabal build --dry-run --targetsor something like that, but it feels like terrible UX.Missing:
Old PR description, here for completeness
Lightweight command that can query for very basic information
in a cabal project.
In particular, you can list all targets in your project or print
information about the compiler. Other flags are bound to follow.
This is the second part to #7489. It allows IDEs and hie-bios to quickly query for certain project meta information, in this case compiler information and available targets.
Example:
> cabal ide --project-compiler Resolving dependencies... Compiler: ghc Version: 8.10.2 Path: /home/hugin/.ghcup/bin/ghc-8.10.2> cabal ide --targets lib:Cabal lib:cabal-testsuite exe:setup exe:cabal-tests lib:cabal-install exe:cabal test:long-tests test:integration-tests2 test:memory-usage-tests test:unit-tests lib:cabal-install-solver test:unit-tests lib:solver-benchmarks exe:hackage-benchmark test:unit-tests lib:Cabal-QuickCheck lib:Cabal-tree-diff lib:Cabal-described test:no-thunks-test test:rpmvercmp test:hackage-tests test:custom-setup-tests test:check-tests test:parser-tests test:unit-tests test:cabal-benchmarks lib:cabal-doctestMain advantage:
Disadvantage:
Alternatives:
cabal build --dry-runto generateplan.jsonand then parse that one.plan.json?cabal build --dry-run --targetsor something like that, but it feels like terrible UX.Missing:
[ ] Documentation[ ] Test-cases