8个版本 (重大更改)
新功能 0.7.0 | 2024年8月22日 |
---|---|
0.6.0 | 2024年7月17日 |
0.5.0 | 2024年6月28日 |
0.4.0 | 2024年6月14日 |
0.0.0 | 2023年10月27日 |
#45 in 生物学
每月110次下载
在sprocket中使用
350KB
8K SLoC
wdl
Rust crate,用于处理工作流描述语言(WDL)文档。
探索文档
请求功能 · 报告错误 · ⭐ 考虑星标仓库!⭐
📚 入门
wdl
系列crate由(a)多个组件crate(任何不是明确标记为wdl
的crate)组成,这些crate独立开发和版本化,以及(b)一个便利crate(wdl
crate),它存在是为了简化同步兼容组件crate的版本。组件crate可以通过特性启用,通常是重新导出的crate,没有wdl-
(或wdl_
)前缀。
此存储库包含可以用于在您的Rust项目中处理WDL的crate——如果您正在寻找基于这些crate构建的命令行工具,您应该查看sprocket
。
便利crate
大多数用户应优先选择选择便利crate的版本并启用所需特性。例如,
cargo add wdl --features grammar
然后
use wdl::grammar;
组件crate
您可以自由地直接包含组件crate。例如,
cargo add wdl_grammar
然后
use wdl_grammar;
然而,请注意,组件包之间的版本是明确不兼容的。换句话说,如果您选择不使用方便的包,很难推导出哪些包版本是兼容的,您需要手动同步这些版本。如果您打算同时使用多个组件包,我们强烈建议使用方便的包。
最低支持的Rust版本
当前最低支持的Rust版本是 1.80.0
。
有一个CI作业用于验证声明的最低支持版本。
如果贡献者提交的PR使用了Rust新版本的特性,贡献者负责更新Cargo.toml
中的最低支持版本。
贡献者可以按照需要将最低支持版本更新到Rust的最新稳定版本。
为了方便发现最低支持版本,请安装cargo-msrv
工具。
cargo install cargo-msrv
然后运行以下命令
cargo msrv --min 1.80.0
如果报告的版本比该包当前的最低支持版本新,则需要更新。
✨ wdl
CLI工具
wdl
CLI工具提供了一组命令,用于辅助wdl
系列包的开发。
wdl
CLI工具可以使用以下命令运行
cargo run --bin wdl --features cli -- $ARGS
其中 $ARGS
是传递给wdl
CLI工具的命令行参数。
wdl
CLI工具目前支持三个子命令
parse
- 解析WDL文档并打印解析诊断和结果的具体语法树(CST)。check
- 解析、验证和分析WDL文档或包含WDL文档的目录。如果文档有效,则退出状态码为0
;否则,打印验证诊断并退出状态码为1
。lint
- 解析、验证并在WDL文档上运行lint规则。如果文件通过所有lint检查,则退出状态码为0
;否则,打印lint诊断并退出状态码为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-至今 圣犹达儿童研究医院。
依赖项
~0–12MB
~132K SLoC