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に書き換わるようです。ややこしいですね。