- Centralize sanitization into a custom Serilog enricher
- More log sites pass the exception object in
- Console output now consistently only prints the mssage, but not the
stack trace.
- File output always outputs the stack trace.
Additionally, there are fixes to several SonarLint issues.
Configure SonarCloud to use the latest git tag as the version identifier
instead of the current commit. This ensures that SonarCloud considers
all code changes since the last tagged release, aligning with our setup
to track new code issues from the most recent release.
To simplify logic in the system, a child lifetime scope is created for
each distinct configuration instance that is processed by Recyclarr. The
main driver for this is to avoid objects being reused between instances
and thus needing setup & teardown logic to deal with state.
- json5 allows comments and trailing commas
- allows all PRs to be open instead of a couple
- updates must be published upstream for 5 days before the PR is opened
(if supported by the renovate manager)
The `-dev.` docker tags create a lot of noise and cloud out the actual
non-prerelease versions in the tag listings on Docker Hub and GHCR.
Additionally, there's no built-in retention policies in these registries
and manual attempts to clean up old dev images are difficult.
Users that are interested in immutable tags can pin the `edge` tag to a
digest.
Multiple path fragments are now supported in the built-in
`SubDirectory()` extension method, so there's no longer a need for the
custom `SubDir()` version.
It was previously located in Common, which I'm trying to gradually get
rid of. Supported services are ultimately determined by what is in the
guide, so that seems like the best place for it.
For easier integration into docker buildx, Recyclarr is now built inside
of the Dockerfile as a dedicated build stage. This simplified the CI
workflows and local testing a bit.
The changes for this new process were driven by Microsoft's recommended
approach to building .NET applications inside Docker, which is
documented here:
https://github.com/dotnet/dotnet-docker/blob/main/samples/README.md
The removal of Sonarr v3 support (commit d45563cf) introduced a bug
resulting in media naming no longer working due to the `:4` key suffix
not being checked anymore.
Additionally, there were some tests under `src/tests/` that needed to be
moved to `tests/`. One of these tests in particular helped identify this
bug. Those tests have been moved to the appropriate location.