haskell / haskell/cabal

extended "porcelaine" `cabal list`

Open
#2,534 0 comments 0 reactions 0 assignees View on GitHub
cabal-install: other type: enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.