Wojciech Kozlowski
473825b396
Some reorganisation Remove unnecessary trait Basic example working Handle errors Handle dates Expand scope of MusicBrainz reference Type the musicbrainz refs Explicit constructors for str Handle MBIDs for albums Add search to the API Handle primary and secondary types Simplify AlbumDate Passing unit tests Tests pass Prevent compiler/clippy warnings Finish unit tests Clippy Remove old deserialize version
1.6 KiB
1.6 KiB
Music Hoard
Developing
Pre-requisites
musicbrainz-api
This feature requires the openssl
system library.
On Fedora:
sudo dnf install openssl-devel
Usage notes
Text selection
To select and copy text use the terminal-specific modifier key (on Linux this is usually the Shift key).
Code Coverage
Pre-requisites
rustup component add llvm-tools-preview
cargo install grcov
Generating Code Coverage
env CARGO_TARGET_DIR=codecov \
rm -rf ./codecov/debug/{coverage,profraw}
env CARGO_TARGET_DIR=codecov \
cargo clean -p musichoard
env RUSTFLAGS="-C instrument-coverage" \
LLVM_PROFILE_FILE="codecov/debug/profraw/musichoard-%p-%m.profraw" \
CARGO_TARGET_DIR=codecov \
BEETSDIR=./ \
cargo test --all-features --all-targets
grcov codecov/debug/profraw \
--binary-path ./codecov/debug/ \
--output-types html \
--source-dir . \
--ignore-not-existing \
--ignore "build.rs" \
--ignore "tests/*" \
--ignore "src/main.rs" \
--ignore "src/bin/musichoard-edit.rs" \
--excl-start "GRCOV_EXCL_START|mod tests \{" \
--excl-stop "GRCOV_EXCL_STOP" \
--output-path ./codecov/debug/coverage/
xdg-open codecov/debug/coverage/index.html
Note that some changes may not be visible until codecov/debug/coverage
is removed and the grcov
command is rerun.
For most cases cargo clean
can be replaced with rm -rf ./codecov/debug/{coverage,profraw}
.
Benchmarks
Pre-requisites
rustup toolchain install nightly
Running benchmarks
env BEETSDIR=./ rustup run nightly cargo bench --all-features --all-targets