4 个版本 (重大变更)
新增 0.5.0 | 2024年8月22日 |
---|---|
0.4.0 | 2024年7月17日 |
0.3.0 | 2024年6月28日 |
0.2.0 | 2024年6月14日 |
0.1.0 |
|
156 在 开发工具
每月下载量 140
用于 4 个包
735KB
19K SLoC
wdl
Rust 包用于处理工作流描述语言(WDL)文档。
探索文档
请求功能 · 报告错误 · ⭐ 考虑 star 仓库!⭐
📚 入门
wdl
系列包包括(a)多个组件包(任何不是明确为 wdl
的包)它们独立开发和版本化,以及(b)一个便利包(wdl
包)它存在是为了简化同步兼容的组件包版本。可以通过特性启用组件包,通常重新导出包,不带有 wdl-
(或 wdl_
)前缀。
此存储库包含可以在自己的 Rust 项目中使用的包,如果您正在寻找基于这些包构建的命令行工具,请查看 sprocket
。
便利包
大多数用户应优先选择选择便利包的版本并启用所需特性。例如,
cargo add wdl --features grammar
然后
use wdl::grammar;
组件包
您可以直接包含组件包。例如,
cargo add wdl_grammar
然后
use wdl_grammar;
然而,请注意,组件包之间的版本是明确不兼容的。换句话说,如果您选择不使用便利包,则难以推断出兼容的包版本,您需要手动同步这些版本。我们 强烈 建议如果您打算使用多个组件包,则使用便利包。
最低支持的 Rust 版本
目前支持的最低Rust版本是 1.80.0
。
存在一个CI作业,用于验证声明的最低支持版本。
如果贡献者提交了一个使用Rust新版本功能的PR,贡献者负责更新 Cargo.toml
中的最低支持版本。
贡献者可以根据需要将最低支持版本更新到Rust的最新稳定版本。
为了便于发现应使用的最低支持版本,请安装 cargo-msrv
工具
cargo install cargo-msrv
然后运行以下命令
cargo msrv --min 1.80.0
如果报告的版本比crate当前最低支持版本新,则需要更新。
✨ wdl
CLI工具
wdl
CLI工具提供了一系列命令,用于辅助开发 wdl
系列crate。
wdl
CLI工具可以通过以下命令运行
cargo run --bin wdl --features cli -- $ARGS
其中 $ARGS
是传递给 wdl
CLI工具的命令行参数。
wdl
CLI工具目前支持以下三个子命令
parse
- 解析WDL文档,并打印解析诊断和结果的具体语法树(CST)。check
- 解析、验证和分析WDL文档或包含WDL文档的目录。如果文档有效,则退出状态码为0
;否则,打印验证诊断并退出状态码为1
。lint
- 解析、验证并运行WDL文档的linting规则。如果文件通过所有lint,则退出状态码为0
;否则,打印linting诊断并退出状态码为1
。analyze
- 解析、验证和分析单个WDL文档或包含WDL文档的目录。如果文档有效,则打印文档作用域的调试表示并退出状态码为0
;否则,打印验证诊断并退出状态码为1
。
每个子命令都支持传递 -
作为文件路径,表示从标准输入读取而不是从磁盘上的文件读取。
🖥️ 开发
为了启动开发环境,请使用以下命令。
# Clone the repository
git clone [email protected]:stjude-rust-labs/wdl.git
cd wdl
# Build the crate in release mode
cargo build --release
# List out the examples
cargo run --release --example
🚧️ 测试
在提交任何pull请求之前,请确保代码通过以下检查(从根目录开始)。
# Run the project's tests.
cargo test --all-features
# Run the tests for the examples.
cargo test --examples --all-features
# Ensure the project doesn't have any linting warnings.
cargo clippy --all-features
# Ensure the project passes `cargo fmt`.
# Currently this requires nightly Rust
cargo +nightly fmt --check
# Ensure the docs build.
cargo doc
🤝 贡献
欢迎贡献、问题和功能请求!请随时查看 问题页面。
📝 许可证
该项目根据您的选择以 Apache 2.0 或 MIT 许可证发布。
版权所有 © 2023-Present St. Jude Children's Research Hospital。
依赖关系
~4–12MB
~126K SLoC