#workflow #validation #language #linting #bioinformatics #parser #description

bin+lib wdl

用于工作流描述语言(WDL)文档的词法分析、解析、验证和代码检查

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 生物学

Download history 4/week @ 2024-04-29 7/week @ 2024-05-20 190/week @ 2024-05-27 73/week @ 2024-06-03 201/week @ 2024-06-10 26/week @ 2024-06-17 184/week @ 2024-06-24 30/week @ 2024-07-01 8/week @ 2024-07-08 128/week @ 2024-07-15 18/week @ 2024-07-22 17/week @ 2024-07-29 72/week @ 2024-08-12

每月110次下载
sprocket中使用

MIT/Apache

350KB
8K SLoC

wdl

CI: Status crates.io version crates.io downloads License: Apache 2.0 License: MIT

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.0MIT

版权所有 © 2023-至今 圣犹达儿童研究医院

依赖项

~0–12MB
~132K SLoC