Mono 5.12 and 5.14 has a bug that means RestSharp can't handle non-200
responses. Fix status api call so tests start and disable the tests
that use non-200 responses on these mono versions
Simplify entity equality code and enfore db/metadata split
Use a nuget package to remove boilerplate code that needs careful
update when adding/removing fields. Add tests to enforce that all
fields are allocated to 'UseMetadataFrom' or 'UseDbFieldsFrom' to make
metadata refresh more foolproof.
Fix NRE when tracks are merged because artist wasn't set.
Fix NRE when tracks are merged and the merge target wasn't yet in the database.
* New: Swap to ImageSharp for image resizing to avoid leaks
Stop resizing album images also
* Fixed: MediaCoverModule falls back to fullsize for png and gif too
* Fixed: Look for all image extensions in DeleteBadMediaCovers.cs
* New: Unmapped files view
Displays all trackfiles that haven't been matched to a track.
Generalised the file details component and adds it to the album
details screen.
* Add sorting by quality
* New: MediaServiceTests & MediaRepoTests
For MP3's, the official separator is " / " and this also works for FLAC. Some applications like Kodi, do not recognize ", " as a separator, but changing it to " / " resolves that...
* Set up CI with Azure Pipelines
[skip ci]
* Remove Travis, Build Multiple Environments
* Change Task Type to Bash
* Checkout submodules
* Remove Appveyor Tests, Add Azure Tests
* Oops Forget Steps
* bad name
* test script fixes
* add tests to build job
* fixup tests
* name test runs
* fpcalc and artifacts
* Try to fix installer
* Publish separately
* Try publish
* Another go at artifacts
* Tidy up
* Add sentry, assembly info patching and bump version
* Only patch one AssemblyInfo; set node version 10
* Try pipeline artifacts again
* Tidy up - pipeline artifact seems to be way forward
* Fix installer publish
* first go at test job seperation
* job names and depends/consitions for tests
* pusblish single file test artifact
* pipeline artifact for test
* blitz the pattern filter
* windows test jobs
* mac tests, checkout on test jobs
* try to download build artifact to test job
* download and extract artifact
* Set LD_LIBRARY_PATH and print some sqlite debug info on mac tests
* fixup! tests
* integration test fixes
* fixup! integration test fixes
* fixup! integration test fixes
* more fixup
* use bash cp
* test fixups
* mkdir before copy
* linux works! add osx integration tests
* im tooo tired
* coverage attempt
* coverage seperate stage
* windows paths for integration test
* switch coverage to windows where opencover actually works
* fix test script
* one last go
* Simplify installer, try to fix name
* Try to parallelize backend and frontend build
* Try adding a matrix
* Try matrix jobs not stages
* Try to fix package step
* Remove opencover install
* Try to fix tests
* coverage fixes
* revert build.sh changes
* triggers so we don't double build
* Publish coverage package so we can debug
* try coverage no build, output artifact
* use the full pipeline workspace from build job
* fix automation tests for new ui
* Assorted fix attempts
* Another go
* MacOS debug
* Tidy up, try to fix mac
* Fix mac fpcalc, add mac integration tests
* Add cross platform automation tests
* Fix packages
* Try to fix Automation tests
* Don't wait on the installer to create standard packages
* Fixes
* delete logentries reference
* run automation tests in headless mode
* try install firefox mac
* Revert "try install firefox mac"
This reverts commit 4684bb19018747cb00407e1d8df64391f44f5183.
* test sonarcloud prepare outputs
* basic analyze and upload
* don't limit fetch depth on analyze
* manual scanner do front and backend?
* full analyize with tests, coverage
* should depend on tests, coverage
* no need for condition on coverage
* Fix up build numbering
* Try to fix sonar
* Separate coverage calculation and publication
* Try to fix coverage upload
On import the album release is adjusted, which triggers an
AlbumEditedEvent which in turn coverts media cover urls to local
urls. The addition of ?lastWrite=xxx broke the calculation of
extenions from the URL. To fix, only set the extension and don't
update the extension if url is changed.