#workflow #description #language #manager #report #lint #bioinformatics

bin+lib sprocket

A package manager for the Workflow Description Language files

1 unstable release

new 0.1.0 Mar 20, 2024
0.0.0 Jul 19, 2019

#66 in Biology

Download history 136/week @ 2024-03-17

136 downloads per month

MIT/Apache

25KB
357 lines

sprocket

CI: Status License: Apache 2.0 License: MIT

A package manager for Workflow Description Language files.

Request Feature · Report Bug · ⭐ Consider starring the repo! ⭐

🎨 Features

  • sprocket lint. Lint Workflow Description Language files.

Guiding Principles

  • Modern, reliable foundation for everyday bioinformatics analysis—written in Rust. sprocket aims to package together a fairly comprehensive set of tools and for developing bioinformatics tasks and workflows using the Workflow Description Language. It is built with modern, multi-core systems in mind and written in Rust.
  • WDL specification focused. We aim to implement the various versions of the OpenWDL specification to the letter. In other words, sprocket aims to be workflow engine independent. In the future, we plan to make sprocket extendable for workflow engine teams.

📚 Getting Started

Installation

Before you can install sprocket, you'll need to install Rust. We recommend using rustup to accomplish this.

Once Rust is installed, you can install the latest version of sprocket (as released on the main branch) by running the following command.

cargo install --locked --git https://github.com/stjude-rust-labs/sprocket.git

🖥️ Development

To bootstrap a development environment, please use the following commands.

# Clone the repository
git clone git@github.com:stjude-rust-labs/sprocket.git
cd sprocket

# Build the crate in release mode
cargo build --release

# Run the `sprocket` command line tool
cargo run --release

🚧️ Tests

Before submitting any pull requests, please make sure the code passes the following checks (from the root directory).

# 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`.
cargo fmt --check

# Ensure the docs build.
cargo doc

🤝 Contributing

Contributions, issues and feature requests are welcome! Feel free to check issues page.

📝 License

This project is licensed as either Apache 2.0 or MIT at your discretion.

Copyright © 2023-Present St. Jude Children's Research Hospital.

Dependencies

~13MB
~226K SLoC