Broken documentation on Hackage.

Mateusz Kowalczyk fuuzetsu at fuuzetsu.co.uk
Sun Jan 5 23:18:33 UTC 2014


On 05/01/14 18:15, Peter Selinger wrote:
> I agree. Two of my packages are in your list: easyrender and newsynth
> (both have "Nothing" for a reason in your list).

If a package has Nothing for a reason, that means that no build log is
available. From what I've read yesterday, it's a problem with their
report system and I think it happens when cabal can't find
dependency candidates for your package. I link to a comment on GitHub
in my opening post which explains this.

> The problem for me is that, although you seem to have access to build
> logs, I don't. I have not found the way to access the hackage build
> logs for my packages or their documentation. Could you let me know
> where I can find them?

I do not have any special access to Hackage, I didn't even log in. See
my opening post for how to access the build log or see my reply to
Sven for an example. I really think there should be a button on the
site for this. If the build logs existed for newsynth, you could do
the following: check general build status[1] then check the first
report[2] then check the build log for the first report[3]. If the
build status is empty, you won't have any reports.

Check out [4][5][6] for an example on a package which failed to build
and has logs.

Effectively, the Nothing in my ‘report’ indicates no build status.

> For both packages, the documentation builds just fine on my local
> machine. It also builds fine in a virtual machine, under Windows and
> Ubuntu. Since I don't have access to Hackage's build logs, I cannot
> really figure out why the documentation is not building there. This is
> what has prevented me from fixing it.

I suspect Hackage fails to resolve your dependencies, at least that
what seems to be causing no logs. See [7] for a comment and [8] for an
existing GitHub issue (although one without any activity).

> I even created "candidates" for the packages, before uploading the
> packages to the main index. Again, the documentation did not build,
> and again, I could not find any logs to tell me what went wrong. So
> the whole "candidate" mechanism has so far been useless to me.
>
> You mentioned that there is a way to upload the documentation
> manually. I'd love to do that. But how? I don't see any buttons or
> links on the package maintainer's pages that would allow me to do
> that.

I post a link in my opening post to a comment about this. See [9].
I just tried to do it for one of my packages (yi-monokai-0.1.1.1) and
here are the steps I took:

1. cd ~/programming/yi-monokai
2. cabal configure && cabal build && cabal haddock --hyperlink-source
3. cd dist/doc
4. mv yi-monokai yi-monokai-0.1.1.1-docs
5. tar -c -v -z -Hustar -f yi-monokai-0.1.1.1-docs.tar.gz
yi-monokai-0.1.1.1-docs
6. curl -X PUT -H 'Content-Type: application/x-tar' -H
'Content-Encoding: gzip' --data-binary
'@yi-monokai-0.1.1.1-docs.tar.gz'
'http://USERNAME:PASSWORD@hackage.haskell.org/package/yi-monokai-0.1.1.1/docs'

With these steps, my little package now has documentation. There's
some info on format at [10]. I might write a small blog post outlining
these steps later as it was not easy to figure out.

> Any help appreciated, -- Peter

[1]: http://hackage.haskell.org/package/newsynth-0.1.0.0/reports/
[2]: http://hackage.haskell.org/package/newsynth-0.1.0.0/reports/1
[3]: http://hackage.haskell.org/package/newsynth-0.1.0.0/reports/1/log
[4]: http://hackage.haskell.org/package/yi-monokai-0.1.1.1/reports/
[5]: http://hackage.haskell.org/package/yi-monokai-0.1.1.1/reports/1
[6]:
http://hackage.haskell.org/package/yi-monokai-0.1.1.1/reports/1/log
[7]:
https://github.com/haskell/hackage-server/issues/145#issuecomment-30129142
[8]: https://github.com/haskell/hackage-server/issues/142
[9]:
https://github.com/haskell/hackage-server/issues/145#issuecomment-29468613
[10]: https://github.com/haskell/hackage-server/issues/56
--
Mateusz K.


More information about the cabal-devel mailing list