YamlSerializerFactory continues to grow as we add parsing features to
YAML files. A new behavior system now provides granular sets of features
to the factory. To extend the functionality of the YAML parser,
implement the `IYamlBehavior` interface. It will automatically be
registered to Autofac and injected into `YamlSerializerFactory`.
This was caused by a logic error that thought that a file was empty just
because it didn't find any configuration data relevant to the current
subcommand. For example, a config file that only has Radarr config in it
when you run `recyclarr sonarr`.
- Better contextual logging for YAML files
- When there's a syntax error in file parsing, skip that file.
- When validation fails for instance config, skip just that instance.
- If a file is empty, print a warning and skip it.
- Print instance name (instead of URL) in more places.
The goal is to eliminate the need for a "global setup" step for HTTP
communication. This can instead be done in the composition root as part
of the factory to request FlurlClient objects.
- Simplify the comment style for YAML intended to be uncommented by the
user. Now they just need to delete the leading hash and YAML will be
at the appropriate indentation.
- Add additional explanation at the top about how to set up
configuration based on the guide.
- Fix link to the configuration reference.
Reason: The docker image avoided using the upstream `dotnet/runtime`
image to save on image size. Total image size without it was under 50MB.
By using the upstream image, image size goes up to about 120MB.
The maintainability cost of avoiding the upstream image isn't worth it.
It's also error prone, which is why this bug happened.
The solution is to just use the upstream runtime image. Total image size
goes up but it's more robust.
Fixes#147.