A toolkit for working with FASTQ files, written in Rust.
conda
To install with conda you must first install conda. Then, in your command line (and with the environment you wish to install fqtk into active) run:
console
conda install -c bioconda fqtk
cargo
To install with cargo you must first install rust. Which (On Mac OS and Linux) can be done with the command:
console
curl https://sh.rustup.rs -sSf | sh
Then, to install fqtk
run:
console
cargo install fqtk
First, clone the git repo:
console
git clone https://github.com/fulcrumgenomics/fqtk.git
Secondly, if you do not already have rust development tools installed, install via rustup:
console
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Then build the toolkit in release mode:
console
cd fqtk
cargo build --release
./target/release/fqtk --help
fqtk is developed in Rust and follows the conventions of using rustfmt
and clippy
to ensure both code quality and standardized formatting.
When working on fqtk, before pushing any commits, please first run ./ci/check.sh
and resolve any issues that are reported.
Install cargo-release
console
cargo install cargo-release
Create a release that will not try to push to crates.io
and verify the command:
console
cargo release [major,minor,patch,release,rc...] --no-publish
Note: "dry-run" is the default for cargo release.
See the cargo-release
reference documentation for more information
This tool follows Semantic Versioning. In brief:
To create a major release:
console
cargo release major --execute
This will remove any pre-release extension, create a new tag and push it to github, and push the release to creates.io.
Upon success, move the version to the next candidate release.
Finally, make sure to create a new release on GitHub.
To create a minor (patch) release, follow the Major Release instructions substituting major
with minor
(patch
):
console
cargo release minor --execute
To move to the next release candidate:
console
cargo release rc --no-tag --no-publish --execute
This will create or bump the pre-release version and push the changes to the main branch on github.
This will not tag and publish the release candidate.
If you would like to tag the release candidate on github, remove --no-tag
to create a new tag and push it to github.