#wdl #workflow #bioinformatics #language #document #description #lint

wdl-lint

工作流描述语言(WDL)文档的代码检查规则

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 2023年12月10日

156开发工具

Download history 174/week @ 2024-06-10 27/week @ 2024-06-17 186/week @ 2024-06-24 49/week @ 2024-07-01 8/week @ 2024-07-08 138/week @ 2024-07-15 15/week @ 2024-07-22 55/week @ 2024-07-29 68/week @ 2024-08-12

每月下载量 140
用于 4 个包

MIT/Apache

735KB
19K SLoC

wdl

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

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.0MIT 许可证发布。

版权所有 © 2023-Present St. Jude Children's Research Hospital

依赖关系

~4–12MB
~126K SLoC