cabal:如何自动更新.cabal文件中的build-depends字段?

Mar*_*iro 20 haskell cabal

有没有办法自动更新.cabal文件中build-depends字段?例如,如果我们从以下文件开始:.cabal

name:           HUnit
version:        1.1.1
synopsis:       A unit testing framework for Haskell
homepage:       http://hunit.sourceforge.net/
category:       Testing
author:         Dean Herington
license:        BSD3
license-file:   LICENSE
cabal-version:  >= 1.10
build-type:     Simple

library
  build-depends:      base >= 2 && < 4
  exposed-modules:    Test.HUnit.Base, Test.HUnit.Lang,
                      Test.HUnit.Terminal, Test.HUnit.Text, Test.HUnit
  default-extensions: CPP
Run Code Online (Sandbox Code Playgroud)

然后,安装一个包:

cabal install warp
Run Code Online (Sandbox Code Playgroud)

现在,我必须添加warp >=3.0 && <3.1到该build-depends字段,使文件看起来像这样:

name:           HUnit
version:        1.1.1
synopsis:       A unit testing framework for Haskell
homepage:       http://hunit.sourceforge.net/
category:       Testing
author:         Dean Herington
license:        BSD3
license-file:   LICENSE
cabal-version:  >= 1.10
build-type:     Simple

library
  build-depends:      base >= 2 && < 4, warp >=3.0 && <3.1
  exposed-modules:    Test.HUnit.Base, Test.HUnit.Lang,
                      Test.HUnit.Terminal, Test.HUnit.Text, Test.HUnit
  default-extensions: CPP
Run Code Online (Sandbox Code Playgroud)

我的问题是:我们如何自动更新此文件?

scl*_*clv 4

现代有两种工具cabal-install可以帮助管理依赖关系的范围。首先是gen-bounds根据当前安装的版本的规范为软件包建议正确的版本范围。第二个是outdated,它列出了cabal文件中存在较新版本的依赖项hackage。两者都记录在 cabal 手册中:https://www.haskell.org/cabal/users-guide/developing-packages.html#generate-dependency-version-bounds