alunduil / alunduil/collection-json.hs
Published 1.3.1.3 cannot install on any supported GHC
- Linguagem predominante
- Haskell
- Estrelas
- 3
- Forks
- 1
- Merge médio
- 5h 53min
- PRs com merge (30d)
- 63
Descrição
## Summary
The version of this package on Hackage cannot be installed on any GHC
the project currently supports. `cabal install --lib collection-json`
fails to resolve. The README that ships inside that tarball tells the
reader to run exactly that command.
## Reproduction
On GHC 9.14.1, outside this checkout:
```console
$ cabal install --lib collection-json --dry-run
Resolving dependencies...
Error: [Cabal-7107]
Could not resolve dependencies:
[__0] trying: collection-json-1.3.1.3 (user goal)
[__1] next goal: base (dependency of collection-json)
[__1] rejecting: base-4.22.0.0/installed-66f8
(conflict: collection-json => base>=4.6 && <4.13)
```
## Cause
The published `.cabal` still carries the pre-modernisation bounds:
```
tested-with: GHC >= 7.6 && < 8.2.1 || > 8.2.1 && < 9.0
build-depends: aeson >= 0.8 && < 1.5
, base >= 4.6 && < 4.13
```
`base < 4.13` excludes GHC 8.10 and everything after it. #113 widened
these to `base >= 4.18 && < 4.23` and `aeson >= 2.2 && < 2.4` in the
repo, but that work has not been released, so HEAD and the published
artifact are different packages sharing the version number 1.3.1.3.
## Consequences
- Anyone following the README's install instruction on a current GHC
gets a resolver error rather than a package.
- Hackage's own "Tested with" row advertises GHC 7.6–9.0, so a visitor
evaluating the package sees a library that looks abandoned around
GHC 8.
- Once #155 merges, the GitHub README's GHC badge claims 9.6–9.14 while
the installable artifact supports none of them. The badge is correct
for building from source and wrong for `cabal install`, and nothing
in the README can reconcile that.
## Resolution
Cut the 1.3.2.0 release. The bounds are already correct at HEAD, so
this needs no code change — it needs the tag. A Hackage metadata
revision on 1.3.1.3 would be the faster half-measure, but it would
advertise support for GHC versions the released source was never built
against, so the release is the honest fix.
## Acceptance criteria
- [ ] `cabal install --lib collection-json` resolves on a supported GHC.
- [ ] Hackage's "Tested with" row matches `tested-with` at the released
tag.
## Additional context
Found while auditing README.md for #155, against ddbeck's checklist item
"Verify that all installation steps actually work as written". Out of
scope there: no edit to README.md can make the published package
installable.
Guia de contribuição
Direção de pesquisa
Start with the package's .cabal file at HEAD and compare its bounds and tested-with values with the published 1.3.1.3 artifact. Review the release and Hackage publishing process, then run cabal install --lib collection-json --dry-run on a supported GHC. Done means a 1.3.2.0 tag is published and both acceptance checks pass.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- haskell
- Domínio
- build-system, release
- Tipo de issue
- Bug
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Pouca atividade
- Clareza
- Claramente especificada
- Facilidade para iniciantes
- 45/100