You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
recyclarr/CHANGELOG.md

26 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Added

  • New replace_existing_custom_formats property that can be set to false to disallow updates to existing CFs that Recyclarr never created in the first place. The default is true.
  • New quality_profiles section supported for specifying information about quality profiles. For now, this section doesn't do much, but paves the way for quality profile syncing.
  • New CLI command: config list which lists information about current or available configuration files.
  • New --templates argument added to config list which will list available configuration YAML templates that can be used in the Trash repo.

Changed

  • Log files are restructured. They are now under logs/cli.
  • Log files are split. There is now a verbose.log and debug.log for every run. The time stamps (in the file name) between the two will be identical.

Deprecated

  • replace_existing_custom_formats must be explicitly specified, otherwise you will get a deprecation warning. In a future release, the default will change from true to false. To prepare for that, users must explicitly state what behavior they want to avoid unwanted behavior in the future.
  • reset_unmatched_scores is being moved to the quality_profiles section; a deprecation message will be logged until it is moved.

Fixed

  • Deleted custom formats are now included in the log message showing the count of CFs synced.
  • An error will now be presented if an invalid option is specified on the CLI.

4.3.0 - 2023-01-22

Added

  • Environment variables may now be used in YAML configuration (#145).

Fixed

  • Exception when there's not configuration for both Sonarr and Radarr together.

4.2.0 - 2023-01-13

Added

  • New list subcommand for listing information from the guide.
  • New sync command for syncing all services, specific service types, and/or specific instances.
  • New config subcommand for performing configuration-specific operations.

Changed

  • The CLI has been completely redesigned to be more consistent and structured (#142).
  • Improved preview output for quality sizes, custom formats, and release profiles.

Deprecated

  • The create-config subcommand is deprecated and replaced by config create.
  • The sonarr subcommand is deprecated and replaced by sync sonarr.
  • The radarr subcommand is deprecated and replaced by sync radarr.

4.1.3 - 2023-01-07

Changed

  • Do not print skipped custom formats to console (they are too verbose). If you still want to see what was skipped, check the log file for additional debug logs.

Fixed

  • More scenarios were causing custom formats to sometimes not be synced (#160).

4.1.2 - 2023-01-06

Fixed

  • Remove unredacted request URI from log files on exception.
  • Scores/Custom Formats would not sync under certain conditions (#160).

4.1.1 - 2023-01-06

Changed

  • More robust configuration validation logic. You may notice new configuration errors that were not there before.

Fixed

  • Custom Formats: Updates that conflict with existing CFs in Sonarr/Radarr are now skipped and a warning is printed.
  • When changing instance URLs, use new cache data to avoid mismatched custom formats on next sync.

4.1.0 - 2022-12-30

Added

  • Better visual separation between processed instances in console output. (#146)
  • More information about deleted, skipped, updated, and created CFs in console output. (#159)

Changed

  • Category headers in --list-custom-formats output is now formatted as a YAML comment that can be copied with the list of Trash IDs.

4.0.2 - 2022-12-26

Changed

  • Sort CFs alphabetically in --list-custom-formats

Fixed

  • Releases now retain executable permissions on Linux and macOS.
  • Sonarr: Do not modify or delete release profiles when using --preview

4.0.1 - 2022-12-21

Changed

  • Docker: Explicit init is no longer required in Docker Compose. It is now built into the image.
  • Reduced size of the recyclarr executable
  • macOS & linux are now released as tar.xz archives instead of zip.

Fixed

  • Fix CoreCLR / "killed" crash on Apple macOS platforms (#39). This was accomplished by properly signing and notarizing Recyclarr and disabling compression.

4.0.0 - 2022-12-11

This release contains BREAKING CHANGES. See the v4.0 Upgrade Guide for required changes you need to make.

Changed

  • BREAKING: Sonarr quality_definition configuration updated to address unexpected changes in Sonarr v4 that caused it to stop working. See upgrade guide for details.
  • Default for preferred_ratio changed from 1.0 to using the values from the guide.

Removed

  • BREAKING: Sonarr's hybrid quality definition removed.

Fixed

  • Do not warn about empty configuration YAML files when they aren't really empty.

3.1.0 - 2022-12-10

Changed

  • Improved logging: theme changes, better exception handling, more detail written to log files.
  • Print instance name instead of URL in more places.
  • Configuration parsing is more forgiving about errors:
    • If there's a YAML syntax error, skip the file but continue.
    • If there's a validation error, skip only that instance (not the whole file).

Fixed

  • Empty configuration files are skipped if they are empty (warning is printed).

3.0.0 - 2022-12-03

This release contains BREAKING CHANGES. See the v3.0 Upgrade Guide for required changes you need to make.

Added

  • New configs subdirectory. Place your *.yml config files here and all of them will be automatically loaded, as if you provided multiple paths to --config. The primary purpose of this feature is to support multiple configuration files in Docker. See the docs
  • Secrets support. You can now store sensitive information from your configuration YAML such as api_key and base_url in a secrets.yml file. See the secrets docs for more info. Huge thanks to @voltron4lyfe for this one. (#105, #139)
  • Named instances are now supported in configuration YAML.
  • New optional setting repository.git_path may be used to specify the path to a git executable. If not used, PATH will be searched.
  • Docker: New RECYCLARR_CREATE_CONFIG environment variable which, if set to true, will automatically create /config/recyclarr.yml on container start up. Default is false.

Changed

  • BREAKING: Recyclarr now requires git to be installed on host systems when using manual installation. If using Docker, there is no breaking change since git will be bundled with the image.
  • Deprecated array-style instances in configuration YAML. Read more about this in the v3.0 Upgrade Guide.

Removed

  • BREAKING: Completely removed support for names under custom_formats in recyclarr.yml. Note that this had already been deprecated for quite some time.
  • BREAKING: The deprecated feature that still allowed you to keep your recyclarr.yml next to the executable has been removed.

Fixed

  • Sonarr: Run validation on Custom Formats configuration, if specified, to check for errors.
  • Added more instructions, fixed broken links, and simplified the way you uncomment optional parts of the YAML in the starter recyclarr.yml template generated by the create-config subcommand.

2.6.1 - 2022-10-15

Fixed

  • Sonarr: Incorrect VersionException occurred when using mixed versions of Sonarr (v4 & v3)

2.6.0 - 2022-10-14

Added

  • For both Sonarr and Radarr, the custom formats in the output of --list-custom-formats are now grouped by their category, as determined by the tables at the top of the "Collection of custom formats" pages in the guide for each service.
  • Recyclarr's Docker image is now available on Docker Hub! Link

Changed

  • Docker: PUID and PGID no longer cause a failure on container start up.

Fixed

  • Use compact JSON for HTTP request/response body in debug log files. This makes logs much easier to scroll through.
  • Sonarr: Run version enforcement logic when using CFs instead of RPs.
  • A warning is now displayed when the same custom format is assigned multiple times to the same quality profile.

2.5.0 - 2022-09-11

Added

  • Settings: New log_janitor setting that allows you to specify how many log files are kept when cleaning up (deleting) old log files. See the Settings Reference wiki page for more details. (#91)
  • Sonarr: Custom Formats can now be synced to Version 4.

Fixed

  • Docker: Fix /config permissions when not using bind-mount for the volume. (#111)
  • Sonarr: Error message is printed when attempting to use release profiles with Sonarr v4. (#100)

Security

2.4.1 - 2022-08-26

Fixed

  • Radarr: Custom formats were always showing up as changed in the logs (#109)

2.4.0 - 2022-08-25

Added

  • New --list-qualities argument for sonarr and radarr subcommands that may be used to get a list of quality definition types from the guide.

Changed

  • Quality definition data is now pulled from JSON files.

2.3.1 - 2022-08-20

Changed

  • Use the new paths for custom format and release profile JSON files in the guide.

2.3.0 - 2022-08-14

Added

  • Radarr: New --list-custom-formats CLI option for getting a flat list of all CFs in the guide in YAML format, ready to copy & paste.
  • Docker: New edge tag for experimental and potentially unstable builds on master. Includes both the latest Docker and Recyclarr changes to allow users to try them out before an official release.
  • Settings: New branch and sha1 Repository settings. (#27)

Changed

  • JSON Schema added to the config template YAML file.
  • names list under custom_formats in config YAML is now deprecated. Use trash_ids to list your custom formats instead.
  • Docker: The image is now rootless. The PUID and PGID environment variables are no longer used. See the Docker wiki page for more details.

Fixed

  • Docker: Resolved errors related to /tmp/.net directory not existing.
  • An exception that says "Cannot write to a closed TextWriter" would sometimes occur at the end of running a command.
  • Sonarr: Validate the TRaSH Guide data better to avoid uploading bad/empty data to Sonarr.

2.2.1 - 2022-06-18

Changed

  • Radarr: Reword the warning about missing scores for CFs to make it more clear that having no score does not prevent CFs from being synced.

Fixed

  • Do not exit when a YAML config has no sonarr or radarr section.
  • Sonarr: Invalid release profile JSON files no longer cause the program to exit. Instead, it just skips them and prints a warning to the user. (#87)
  • Radarr: Do not crash when quality_profiles is empty. (#89)
  • Settings: Use repo URL after initial clone (#90)

2.2.0 - 2022-06-03

Added

  • Docker support! Image name is ghcr.io/recyclarr/recyclarr. See the Docker wiki page for more information.
  • Global app data path support via environment variable named RECYCLARR_APP_DATA. The path specified here will be used as the app data path for every invocation of recyclarr as if --app-data were specified.

Fixed

  • Renamed the "EVO (no WEB-DL)" custom format to "EVO (no WEBDL)" in the config template. (#77)
  • Radarr: delete_old_custom_formats works again. (#71)
  • The create-config subcommand now accepts YAML files again (it was taking a directory before, which was wrong).

2.1.2 - 2022-05-29

Fixed

  • create-config would fail with --path specified.
  • migrate no longer fails if the cache directory does not exist.

2.1.1 - 2022-05-29

Fixed

  • Exception when running create-config command.

2.1.0 - 2022-05-29

Added

  • New --app-data option for overriding the location of the application data directory.
  • New migrate subcommand which may be used to perform migration steps manually.

Changed

  • The default location for the default YAML file (recyclarr.yml) has been changed to the application data directory. This is the same location of the settings.yml file.
  • Automatic migration has been removed. Instead, the migrate subcommand should be used.

Deprecated

  • The recyclarr.yml file should no longer be located adjacent to the recyclarr executable.

Fixed

  • Version information in help output has been fixed.
  • If a HOME directory is not available, throw an error to the user (use --app-data instead).
  • Create $HOME/.config (on Linux) if it does not exist.
  • Smarter migration logic in the trash-updater migration step that does a directory merge instead of a straight move. This is designed to fail less in cases such as recyclarr directory already existing.

2.0.2 - 2022-05-20

Fixed

  • Sonarr: Fix unexpected missing terms when using filters. (#69)

2.0.1 - 2022-05-19

Fixed

  • Sonarr: strict_negative_scores works again (broke in v2.0 release)

2.0.0 - 2022-05-13

This release contains BREAKING CHANGES. See the Upgrade Guide for required changes you need to make.

Changed

  • BREAKING: Sonarr Release profiles are now synced based on a "Trash ID" taken from the sonarr JSON files. This breaks existing trash.yml and manual changes are required.
  • Do not follow HTTP redirects and instead issue a warning to the user that they are potentially using the wrong URL.
  • Radarr: Sanitize URLs in HTTP exception messages (#17).
  • Sonarr: Release profiles starting with [Trash] but are not specified in the config are deleted.

Added

  • Linux MUSL builds for arm, arm64, and x64. Main target for this was supporting Alpine Linux in Docker.
  • Sonarr: Ability to include or exclude specific optional Required, Ignored, or Preferred terms in release profiles.
  • Sonarr: New --list-release-profiles command line option which can be used to quickly and conveniently get a list of release profiles (and their Trash IDs) so you know what to add in your YAML config under release_profiles.
  • Sonarr: New --list-terms command line option which can be used get a list of terms for a release profile. These lists of terms can be used to include or exclude specific optionals, for example.
  • Migration System that is responsible for performing one-time upgrade tasks as needed.

1.8.2 - 2022-03-06

Fixed

  • Sonarr: Error when syncing optionals release profile with the IncludeOptionals filter setting set to false.

1.8.1 - 2022-03-05

Changed

  • Unrecognized or unwanted YAML properties in configuration YAML (trash.yml) now result in an error. This is to help users more easily identify mistakes.

Fixed

  • Sonarr: Optionals release profile is now properly synced

1.8.0 - 2022-02-13

Added

  • 64-bit ARM builds for Windows, Linux, and Mac OS.
  • 32-bit ARM build for Linux.

1.7.0 - 2022-02-06

Added

  • New settings file to control non-service specific behavior of Trash Updater. See the documentation for more information.
  • Trash git repository URL can be overridden in settings.
  • Schema added for settings.yml.
  • Add setting to bypass HTTPS certificate validation (useful for self-signed certificates used with Sonarr and Radarr instances) (#20).
  • A progress bar that is visible when pulling down Custom Formats (Radarr Only).

Fixed

  • Remove System.Reactive.xml from the published ZIP files.
  • Fix exception that may occur at startup.
  • Sometimes the "Requesting and parsing guide markdown" step would appear stuck and fail after several minutes. Many changes have been made to try to alleviate this.

1.6.6 - 2021-10-30

Fixed

  • Sonarr version check failed when instances were slow to respond or there was high latency.

1.6.5 - 2021-10-24

Fixed

  • Fix "free-quota limit" exception that occurred in new JSON schema generation logic that was added for API backward compatibility with Sonarr.

1.6.4 - 2021-10-23

FIXED

  • libgit2sharp PDB is no longer required with trash.exe on Windows (#15)
  • Unexpected character error due to breaking change in Sonarr API (#16)

1.6.3 - 2021-07-31

  • Fix "assembly not found" error on startup related to LibGit2Sharp (Windows only). Note that this introduces an additional file in the released ZIP files named git2-6777db8.pdb. This file must be next to trash.exe. In the future, I plan to have this extra file removed so it's just a single executable again, but it will take some time.

1.6.2 - 2021-07-23

Fixed

  • Directly use the Trash Guides git repository to avoid getting HTTP 403 - rate limit reached error in github.

1.6.1 - 2021-05-31

Changed

  • Sonarr: Use new URL for release profile guide.
  • Sonarr: Use new URL for quality definition guide.
  • Radarr: Use new URL for quality definition guide.

1.6.0 - 2021-05-31

Added

  • New setting reset_unmatched_scores under custom_formats.quality_profiles in YAML config which allows Trash Updater to set scores to 0 if they were not in the list of custom format names or listed but had no score applied (e.g. no score in guide).

Changed

  • Support the new custom format structure in the guide: JSON files are parsed directly now. Trash Updater no longer parses the markdown file.

1.5.1 - 2021-05-26

Changed

  • Support trash_score property in Custom Format JSON from the guide. This property is optional and takes precedence over a score mentioned in the guide markdown.

1.5.0 - 2021-05-16

Added

  • Custom formats can now be specified by Trash ID. This is useful for situations where two or more custom formats in the guide have the same name (e.g. 'DoVi').
  • Debug-level logs are now written to file in addition to the Info-level logs in console output.

Fixed

  • An issue with radarr --preview that caused duplicate output when updating a second instance has been fixed.

1.4.2 - 2021-05-15

Fixed

  • Fixed using incorrect URL for Sonarr

1.4.1 - 2021-05-15

Fixed

  • Invalid cache data files no longer cause the program to exit. An error is printed and the application continues as if there was no cache at all.
  • Fix a bug that resulted in certain custom formats not having their scores set in quality profiles.
  • Fixed an issue where multiple instance configuration was not working.

Changed

  • The log message listing custom formats without scores in the guide now prints information one per line (improved readability)
  • Duplicate custom formats in the guide now issue a warning and get skipped.
  • Do not invoke the Radarr API to update a quality profile if there are no updated scores inside it.

1.4.0 - 2021-05-14

Added

  • Radarr Custom Format Support.

1.3.3 - 2021-05-06

Fixed

  • Sonarr Quality Definition Max, when set to its maximum value of 400, is now properly set to "Unlimited". This is equivalent to the user maxing out the visual slider in the Sonarr UI. Without this, some larger sized releases were unintentionally rejected.

1.3.2 - 2021-05-05

Fixed

  • Fix exception that occurred when running the create-config subcommand.

1.3.1 - 2021-05-05

Changed

  • Executable is now compiled using Ready to Run. This substantially increases the size of the executable but makes the code much faster.

Fixed

  • Radarr Quality Definition Max and Preferred, when set to their maximum values, are now properly set to "Unlimited". Without this, larger sized releases were unintentionally rejected.

1.3.0 - 2021-04-23

Added

  • New configuration for Sonarr release profiles that allows all optional terms to be synced. Look for filter in the Configuration Reference for more details.

1.2.0 - 2021-04-19

Added

  • New create-config subcommand to create a starter YAML config file

1.1.0 - 2021-04-18

Added

  • Optional terms in the release profile guides are no longer synchronized to Sonarr.

Changed

  • A warning is now logged when we find a number in brackets (such as [100]) without the word score before it. This represents a potential score and bug in the guide itself.
  • Release profile guide parser now skips certain lines to avoid false positives:
    • Skip lines with leading whitespace (i.e. indented lines).
    • Skip admonition lines (lines starting with !!! or ???).

1.0.0 - 2021-04-14

See the Python Migration Guide for details on how to update your YAML configuration.

Added

  • Full rewrite of the application in C# .NET Core 5
  • More than one configuration (YAML) file can be specified using the --config option.
  • Multiple Sonarr and Radarr instances can be specified in a single YAML config.

Removed

  • Nearly all command line options removed in favor of YAML equivalents.
  • Completely removed old python project & source code