Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dune 依赖自动更新工具

通用的 OCaml 项目依赖扫描和更新工具。自动扫描项目中所有 dune 文件的库依赖,更新 dune-projectdepends 字段。

工作原理

  1. 递归扫描项目中所有 dune 文件(排除 _build 和子项目)
  2. 提取本地库的短名字(name)和公开名(public_name
  3. 提取所有 (libraries ...) 中的依赖,过滤掉本地库
  4. 将库名映射为 opam 包名(例如 ppx_yojson_conv_libppx_yojson_conv
  5. 解析 dune-project 为 S-expression AST
  6. 更新 (package ...) 中的 (depends ...) 字段
  7. 格式化并写回 dune-project
  8. 使用 dune format-dune-file 格式化文件
  9. 不执行 dune build,由用户手动执行

特性

  • 通用工具:支持任意 OCaml 项目,通过命令行参数指定路径
  • 自动备份:原 dune-project 文件自动备份(.bak 后缀)
  • 智能映射:库名自动映射(下划线转连字符,特殊包名处理)
  • 保留配置:只更新 depends 字段,保留其他配置不变
  • 去重排序:自动去重和排序依赖列表
  • S-expression 格式化:智能格式化输出,保持代码可读性

About

Dune 依赖自动更新工具

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages