Go to file
2024-08-29 16:02:58 +02:00
.gitea Update beets to 2.0.0 in CI (#182) 2024-08-24 15:43:48 +02:00
examples/musicbrainz_api For the database serde implementation use Mbid rather than MbRef (#199) 2024-08-29 13:37:47 +02:00
src Formatting 2024-08-29 16:02:58 +02:00
tests Use the Deserialize trait for JSON just like for MusicBrainz (#197) 2024-08-28 23:02:14 +02:00
.gitignore Add integration tests to CI (#82) 2024-01-06 16:14:07 +01:00
build.rs Update rust toolchain to 1.80 (#180) 2024-08-24 15:10:54 +02:00
Cargo.lock Add a MusicBrainz API (#163) 2024-03-16 16:57:50 +01:00
Cargo.toml Decide carefully where external::musicbrainz belongs (#196) 2024-08-28 18:21:13 +02:00
README.md Update rust toolchain to 1.79 (#176) 2024-06-16 16:38:35 +02:00

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 "examples/*" \
      --ignore "tests/*" \
      --ignore "src/main.rs" \
      --ignore "src/bin/musichoard-edit.rs" \
      --excl-line "^#\[derive" \
      --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