extended "porcelaine" `cabal list`
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
See https://github.com/hvr/xcabal/blob/master/src/Main.hs#L266-L349 for a proof of concept implementation.
For my matrix-builder tool, I need to be able to query the list of available versions (and their associated latest x-revision), as well as whether the version is currently soft-blacklisted (via `preferred-versions`). Moreover, I need a more exact filtering on the package name than `cabal list` currently provides (`cabal list base` does substring matching, rather than exact match).
Here's an example invocation:
```
$ xcabal xlist 'cpphs ==1.13.*'
cpphs 1.13 2 True
cpphs 1.13.1 1 False
cpphs 1.13.2 1 False
cpphs 1.13.3 1 False
```
Which means that a package version `cpphs-1.13` exists which is at revision "2", and is currently also soft-blacklisted.
Is this feature suitable for integrating into `cabal-install`?
Contributor guide
Research direction
Start by reading the proof of concept in xcabal/src/Main.hs, lines 266-349, and compare it with cabal list's current package-name filtering and version output. The requested result is an xlist-style query that reports available versions, latest x-revisions, soft-blacklist status, and exact package-name matches; first determine the appropriate cabal-install entry points and integration design.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100