Haskellのパッケージをhackageにアップロードすると基本的にhackage側でドキュメント(haddock)を生成してくれますが、なんらかの理由で失敗することもあります。そういう時のために、hackageでは開発者が手元でドキュメントを生成してアップロードできるようになっています。
で、cabal-install-1.24.0.0ではcabal
コマンドでこういったドキュメントのアップロードができるようになっています。
hackage向けドキュメントの生成:
$ cabal haddock --for-hackage
hackageへドキュメントをアップロード:
$ cabal upload --doc
便利ですね。
参考
余談: パッケージ / ドキュメントのアップロード先とプロトコル
cabal
コマンドが自動生成する設定ファイル(~/.cabal/config
)を見ると、以下のような記述があります。
repository hackage.haskell.org
url: http://hackage.haskell.org/
-- secure: False
-- root-keys:
-- key-threshold:
これを見て僕は、「こいつまさか俺のユーザ名とパスワードをHTTPで送るつもりか?」と勘ぐったのですが、ちゃんとHTTPSで送ってくれているようです。
どうやら、"hackage.haskell.org"という名前のレポジトリに関しては、RemoteRepo
型のremoteRepoShouldTryHttps
フィールドをTrue
に上書きする処理が走っていて、実際に通信を行う直前にremoteRepoTryUpgradeToHttps
関数によって接続先URLがHTTPSに書き換わるようです。ややこしいですね。