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
76 lines
1.6 KiB
Markdown
76 lines
1.6 KiB
Markdown
# Music Hoard
|
|
|
|
## Developing
|
|
|
|
### Pre-requisites
|
|
|
|
#### musicbrainz-api
|
|
|
|
This feature requires the `openssl` system library.
|
|
|
|
On Fedora:
|
|
``` sh
|
|
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
|
|
|
|
``` sh
|
|
rustup component add llvm-tools-preview
|
|
cargo install grcov
|
|
```
|
|
|
|
### Generating Code Coverage
|
|
|
|
```sh
|
|
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
|
|
|
|
``` sh
|
|
rustup toolchain install nightly
|
|
```
|
|
|
|
### Running benchmarks
|
|
|
|
``` sh
|
|
env BEETSDIR=./ rustup run nightly cargo bench --all-features --all-targets
|
|
```
|