-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
cc4c84a
commit d69ed0c
Showing
1 changed file
with
129 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,129 @@ | ||
<p align="center"> | ||
<h1 align="center"> | ||
wdl | ||
</h1> | ||
|
||
<p align="center"> | ||
<a href="https://github.com/stjude-rust-labs/wdl/actions/workflows/CI.yml" target="_blank"> | ||
<img alt="CI: Status" src="https://github.com/stjude-rust-labs/wdl/actions/workflows/CI.yml/badge.svg" /> | ||
</a> | ||
<a href="https://crates.io/crates/wdl" target="_blank"> | ||
<img alt="crates.io version" src="https://img.shields.io/crates/v/wdl"> | ||
</a> | ||
<img alt="crates.io downloads" src="https://img.shields.io/crates/d/wdl"> | ||
<a href="https://github.com/stjude-rust-labs/wdl/blob/main/LICENSE-APACHE" target="_blank"> | ||
<img alt="License: Apache 2.0" src="https://img.shields.io/badge/license-Apache 2.0-blue.svg" /> | ||
</a> | ||
<a href="https://github.com/stjude-rust-labs/wdl/blob/main/LICENSE-MIT" target="_blank"> | ||
<img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-blue.svg" /> | ||
</a> | ||
</p> | ||
|
||
<p align="center"> | ||
Rust crates for working with Workflow Description Language (WDL) documents. | ||
<br /> | ||
<a href="https://docs.rs/wdl"><strong>Explore the docs »</strong></a> | ||
<br /> | ||
<br /> | ||
<a href="https://github.com/stjude-rust-labs/wdl/issues/new?assignees=&title=Descriptive%20Title&labels=enhancement">Request Feature</a> | ||
· | ||
<a href="https://github.com/stjude-rust-labs/wdl/issues/new?assignees=&title=Descriptive%20Title&labels=bug">Report Bug</a> | ||
· | ||
⭐ Consider starring the repo! ⭐ | ||
<br /> | ||
</p> | ||
</p> | ||
|
||
## 📚 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, | ||
|
||
```bash | ||
cargo add wdl_grammar | ||
``` | ||
|
||
and then | ||
|
||
```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 [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 | ||
``` | ||
|
||
## 🚧️ 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 |