3 unstable releases
0.2.1 | Feb 22, 2023 |
---|---|
0.2.0 | Jan 10, 2023 |
0.1.0 | Jan 5, 2023 |
#59 in Biology
110KB
2K
SLoC
fqtk
A toolkit for working with FASTQ files, written in Rust.
Installing
Installing with 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:
conda install -c bioconda fqtk
Installing with cargo
To install with cargo you must first install rust. Which (On Mac OS and Linux) can be done with the command:
curl https://sh.rustup.rs -sSf | sh
Then, to install fqtk
run:
cargo install fqtk
Building From Source
First, clone the git repo:
git clone https://github.com/fulcrumgenomics/fqtk.git
Secondly, if you do not already have rust development tools installed, install via rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Then build the toolkit in release mode:
cd fqtk
cargo build --release
./target/release/fqtk --help
Developing
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.
Releasing a New Version
Pre-requisites
Install cargo-release
cargo install cargo-release
Prior to Any Release
Create a release that will not try to push to crates.io
and verify the command:
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
Semantic Versioning
This tool follows Semantic Versioning. In brief:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards compatible manner, and
- PATCH version when you make backwards compatible bug fixes.
Major Release
To create a major release:
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.
Minor and Patch Release
To create a minor (patch) release, follow the Major Release instructions substituting major
with minor
(patch
):
cargo release minor --execute
Release Candidate
To move to the next release candidate:
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.
Dependencies
~10–41MB
~694K SLoC