musichoard/README.md
Wojciech Kozlowski 473825b396
Some checks failed
Cargo CI / Build and Test (pull_request) Failing after 1m37s
Cargo CI / Lint (pull_request) Failing after 16s
First draft of musicbrainz interface
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
2024-03-16 16:49:26 +01:00

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