完成了第一遍 Hackage 的上传, 记录一下中间一些用到的东西
这篇笔记不是完整的内容, 只是上传一个模块需要的基本操作
我没有细看添加文档跟测试的内容, 以及其他高级内容
这篇笔记有其他问题请评论指出
到 Hackage 注册
https://hackage.haskell.org/accounts
注册好以后, 用户名密码会在命令行当中用到.
编写代码
代码放在 src/
目录下边
配置文件
项目跟根路径的 <pkg-name>.cabal
Setup.hs
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.html
另个的好办法当然是去别的项目里抄了, 对于新手来说...
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
命令行
命令行都是在项目的根路径运行的:
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
Deprecate 模块
已经 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
注意填写作为替代的模块的名称, 然后还有要输入密码
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。