haskell / haskell/cabal

With internal libraries, documentation tar file contains Windows-invalid filename for hoogle description

Open
#10,973 4 comments 0 reactions 0 assignees View on GitHub
cabal-install: cmd/haddock priority: high :fire: re: internal library
Dominant language
Haskell
Stars
1.7k
Forks
750
Avg merge
4d 3h
Merged PRs (30d)
28

Description

I get my hackage documentation upload for the `hackage-cli` package rejected because of a filename with a `:` in the generated documentation tar bundle:
```
$ tar tf dist-newstyle/hackage-cli-0.1.0.3-docs.tar.gz
hackage-cli-0.1.0.3-docs/
hackage-cli-0.1.0.3-docs/Distribution-Server-Util-CabalRevisions.html
...
hackage-cli-0.1.0.3-docs/hackage-cli.txt
...
hackage-cli-0.1.0.3-docs/quick-jump.min.js
hackage-cli-0.1.0.3-docs/cabal-revisions/
hackage-cli-0.1.0.3-docs/cabal-revisions/Distribution-Server-Util-CabalRevisions.html
...
hackage-cli-0.1.0.3-docs/cabal-revisions/hackage-cli:cabal-revisions.txt
...
```
The last file in this list contains a `:`. As a consequence, Hackage rejects this doc bundle:
```
Error uploading documentation dist-newstyle/hackage-cli-0.1.0.3-docs.tar.gz:
http code 400
Error: Invalid documentation tarball

Invalid windows file name in tar archive:
"hackage-cli-0.1.0.3-docs\\cabal-revisions\\hackage-cli:cabal-revisions.txt"
```
This is the first time I see this problem, probably because the hackage server has stricter checks now.

To reproduce:
- checkout https://github.com/hackage-trustees/hackage-cli
- `cabal haddock --haddock-for-hackage --disable-documentation | tail -1 | xargs cabal --http-transport=plain-http upload -d`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.