Giter Site home page Giter Site logo

stjude-rust-labs / sprocket Goto Github PK

View Code? Open in Web Editor NEW
9.0 3.0 0.0 25 KB

A package manager for Workflow Description Language files.

License: Apache License 2.0

Rust 100.00%
bioinformatics bioinformatics-pipeline wdl wdl-devtools wdl-workflow workflow workflow-engine

sprocket's Introduction

sprocket

CI: Status crates.io version crates.io downloads 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 by running the following command.

cargo install sprocket

🖥️ Development

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

# Clone the repository
git clone [email protected]: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.

sprocket's People

Contributors

claymcleod avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

sprocket's Issues

lint does not allow task output keys in parameter_meta

Thanks for the nice tool!

Trying it out for automated testing, and noticed that sprocket lint does not allow task outputs as parameter_meta keys.

From the WDL spec v1.0:

Additional requirement: Any key in this section MUST correspond to a task input or output.

warning[v1::W003::Completeness/Medium]: extraneous parameter meta within task: stat_sv_INS_count
    ┌─ workflows/wdl-common/wdl/tasks/bcftools.wdl:365:3
    │
365 │         stat_sv_INS_count: {
    │         ^^^^^^^^^^^^^^^^^ A parameter meta entry with no corresponding input parameter was detected
    │
    = fix: Remove the parameter meta entry

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.