完成了第一遍 Hackage 的上传, 记录一下中间一些用到的东西html
这篇笔记不是完整的内容, 只是上传一个模块须要的基本操做
我没有细看添加文档跟测试的内容, 以及其余高级内容
这篇笔记有其余问题请评论指出git
https://hackage.haskell.org/accountsgithub
注册好之后, 用户名密码会在命令行当中用到.服务器
代码放在 src/
目录下边ide
项目跟根路径的 <pkg-name>.cabal
Setup.hs
post
Setup.hs
好像也能够是 Setup.lhs
.测试
.cabal
文件的 name
跟文件名须要是一致的
具体的配置我也说不清楚了, 看教程上的说明, 其实很复杂
https://howistart.org/posts/haskell/1
https://downloads.haskell.org/~ghc/7.0.4/docs/html/Cabal/authors.html
https://www.haskell.org/cabal/users-guide/developing-packages.html
http://begriffs.com/posts/2014-10-25-creating-package-hackage.htmlui
另个的好办法固然是去别的项目里抄了, 对于新手来讲...
https://github.com/pubnub/haskell/blob/master/pubnub.cabal
https://github.com/chrisdone/hell/blob/master/hell.cabal
https://github.com/switchface/helm/blob/master/helm.cabal命令行
命令行都是在项目的根路径运行的:code
cabal check
检查配置文件是否正确, 会给出一些提示
除了文档上写的, 到 GitHub 上看看别人的 .cabal
文件怎么写很用有:
https://github.com/stars?language=haskell
具体的小问题用 Google 找一下应该是有的
cabal configure cabal build cabal install
在本地编译模块, 而后还有安装. 编译的文件会在 dist/
目录当中
cabal sdist cabal upload dist/<pgk-and-version-extname>
打包上传到 Hackage 服务器
cabal update
更新本地模块的列表
ghc-pkg unregister --force <pkg-version>
强制删除某个模块
http://stackoverflow.com/a/10587933/883571
已经 deprecated 的模块会显示在这里
https://hackage.haskell.org/packages/deprecated
已经发布的模块是无法删除的,
https://github.com/haskell/hackage-server/issues/112
能够进入这样一个网址去编译模块已经被弃用:
http://hackage.haskell.org/package/<you-pkg-name>/deprecated/edit
注意填写做为替代的模块的名称, 而后还有要输入密码