筆記, 如何生成一個 Haskell 模塊, Hackage

完成了第一遍 Hackage 的上傳, 記錄一下中間一些用到的東西html

這篇筆記不是完整的內容, 只是上傳一個模塊須要的基本操做
我沒有細看添加文檔跟測試的內容, 以及其餘高級內容
這篇筆記有其餘問題請評論指出git

到 Hackage 註冊

https://hackage.haskell.org/accountsgithub

註冊好之後, 用戶名密碼會在命令行當中用到.服務器

編寫代碼

代碼放在 src/ 目錄下邊ide

配置文件

項目跟根路徑的 <pkg-name>.cabal Setup.hspost

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

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

注意填寫做爲替代的模塊的名稱, 而後還有要輸入密碼

相關文章
相關標籤/搜索