diff --git a/README.md b/README.md new file mode 100644 index 000000000..39f8d187c --- /dev/null +++ b/README.md @@ -0,0 +1,123 @@ +

+

+ wdl +

+ +

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

+ +

+ Rust crates for working with Workflow Description Language (WDL) documents. +
+ Explore the docs » +
+
+ Request Feature + · + Report Bug + · + ⭐ Consider starring the repo! ⭐ +
+

+

+ +## 📚 Getting Started + +The `wdl` family of crates consists of (a) a number of component crates (any +crate that is not explicitly `wdl`) that are developed and versioned +independently, and (b) a convenience crate (the `wdl` crate) that exists to ease +syncing compatible component crates versions. Component crates can be enabled +using features and are generally re-exported crates without the `wdl-` (or +`wdl_`) prefix. + +### Convenience Crate + +Most users should prefer selecting a version of the convenience crate and +enabling features as they wish. For example, + +```bash +cargo add wdl --features grammar +``` + +and then + +```rust +use wdl::grammar; +``` + +### Component Crate(s) + +You are free to include component crates directly. For example, + +```rust +use wdl_grammar; +``` + +Be aware, however, that versions between component crates are explicitly not +compatible. In other words, if you choose not to use the convenience crate, it +is not simple to derive which crate versions are compatible, and you'll need to +manually sync those. We _highly_ recommend using the convenience crate if you +intend to use more than one component crate in conjunction. + +## 🖥️ Development + +To bootstrap a development environment, please use the following commands. + +```bash +# Clone the repository +git clone git@github.com:stjude-rust-labs/wdl.git +cd wdl + +# Build the crate in release mode +cargo build --release + +# List out the examples +cargo run --release --example +``` + +## 🚧️ Tests + +Before submitting any pull requests, please make sure the code passes the +following checks (from the root directory). + +```bash +# Run the project's tests. +cargo test --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](https://github.com/stjude-rust-labs/wdl/issues). + +## 📝 License + +This project is licensed as either [Apache 2.0][license-apache] or +[MIT][license-mit] at your discretion. + +Copyright © 2023-Present [St. Jude Children's Research Hospital](https://github.com/stjude). + +[license-apache]: https://github.com/stjude-rust-labs/wdl/blob/main/LICENSE-APACHE +[license-mit]: https://github.com/stjude-rust-labs/wdl/blob/main/LICENSE-MIT