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.
- Sync:
except_patternsoption forreset_unmatched_scoresto exclude custom formats by regex pattern (#235)
- CLI: Show default/optional status for quality profiles in
list custom-format-groups --details(#725)
- Sync: Unnecessary warning when explicitly selecting default custom formats in CF groups
- Sync: Media naming status always showed as skipped for Radarr instances (#751)
8.4.0 - 2026-03-05
- CLI:
--detailsflag forlist custom-format-groupsto show member CFs and their required/default/optional status - Sync:
select_alloption for custom format groups to include all CFs regardless of default status (#722)
- Sync: Custom formats and quality profiles that already exist in the service are now automatically
replaced by Recyclarr. The
state repair --adoptworkflow is no longer needed. - Docker: The
latesttag is no longer published to Docker Hub or GHCR. Use a major version tag (e.g.8) instead to receive updates within a major version.
- CLI: The
state repaircommand is deprecated and will be removed in a future release. Sync now handles all state reconciliation automatically.
- Sync: Unmatched trash_ids in
custom_format_groups.skipsilently ignored instead of warning - Migrate: Cache-to-state migration failure on cross-filesystem moves (e.g. Docker volume mounts)
8.3.2 - 2026-02-25
- Sync: Default CF groups now apply to all profile variants sharing the same
trash_id(#735) - Sync: CF group
assign_scores_tonow accepts profile names for guide-backed profiles, enabling selective assignment to specific profile variants (#734)
8.3.1 - 2026-02-24
- CLI: State repair crash when multiple quality profiles share the same
trash_id.
8.3.0 - 2026-02-24
- Sync: The same guide-backed quality profile
trash_idcan now be used multiple times with different names, allowing variations of the same profile on a single instance.
- Config: Empty YAML nodes (e.g.
custom_formats:with all entries commented out) are now treated as no-ops instead of validation errors. - CLI:
RECYCLARR_APP_DATAdeprecation message is now displayed cleanly instead of being buried in a stack trace. - Config: YAML errors now show specific, actionable messages instead of generic "Exception at line" text (#728).
- Sync: CF group
assign_scores_towithnameno longer requires the profile to be inquality_profiles(#726). - Sync: Quality profile names are now updated when the config or guide name differs from the service (#729).
8.2.1 - 2026-02-22
- Config: Removed properties like
replace_existing_custom_formatsnow produce a deprecation warning instead of silently preventing sync. - Config: Using the same quality profile
trash_idmultiple times now produces a validation error instead of silently corrupting sync state. - Sync:
assign_scores_towithtrash_idno longer requires the target profile to be in the CF group's include list (#726).
8.2.0 - 2026-02-21
- CLI:
list custom-format-groupsnow shows the contents of each group and supports filtering by name (#720). - CLI:
list quality-profilesnow supports--detailsto show included custom formats and--filterto search by name.
- Notifications: Empty sync results (all zeros, no errors) no longer trigger notifications in normal mode.
- Sync: Overriding custom format scores from guide-backed profiles no longer produces a spurious warning in sync diagnostics.
8.1.0 - 2026-02-20
- Custom Formats: CF group
assign_scores_tonow acceptsnameto target custom (non-guide-backed) quality profiles, in addition to the existingtrash_idfor guide-backed profiles. - Sync:
excludeoption for custom format groups to opt out of specific default custom formats.
- Custom Formats: Adding a CF group where all custom formats are optional no longer silently
produces nothing; a warning is now shown advising to use
select. - Sync: Diagnostic messages (errors, warnings, deprecations) were invisible when using
--log, including thestate repair --adoptsuggestion for quality profile conflicts. - Config: Helpful migration messages for removed config properties (e.g.
replace_existing_custom_formats,quality_profiles) were never shown due to an internal wiring mistake. - Config: YAML parsing errors (unknown properties, bad values) were silently swallowed, causing sync to produce no output instead of reporting the problem.
- Sync:
selectin custom format groups now adds non-default custom formats alongside defaults, instead of replacing them. Useexcludeto remove unwanted defaults.
- CLI: The
migratecommand is deprecated. Migrations now run automatically at startup.
8.0.1 - 2026-02-19
- State Repair: Quality profiles with a config
nameoverride were not matched to service profiles duringstate repair --adopt - Sync:
assign_scores_towithtrash_idinstead ofnamefailed to resolve to the correct quality profile - Sync: Crash when previewing quality profiles or quality sizes with square brackets in names
8.0.0 - 2026-02-19
This release contains BREAKING CHANGES. See the v8.0 Upgrade Guide for required changes you may need to make.
- Media Management: New
media_managementconfiguration section withpropers_and_repackssetting to control how Sonarr/Radarr handles Propers and Repacks (#225). - Quality Profiles: Support for
trash_idto sync TRaSH Guide quality profile definitions. When specified, qualities, custom formats, scores, and language are automatically configured from the guide, significantly reducing YAML complexity. - Custom Formats: Support for
custom_format_groupsto sync TRaSH Guide CF groups. Groups markeddefault: trueare automatically synced when using a guide-backed quality profile. Usecustom_format_groups.skipto opt-out orcustom_format_groups.addto opt-in to non-default groups. - Custom Formats:
assign_scores_tonow acceptstrash_idas an alternative tonamefor referencing guide-backed quality profiles (#251). - Settings: Local resource providers now support relative paths, resolved against the app data directory.
- CLI: New
--log [level]option for explicit log output control. Valid levels:debug,info(default),warn. - CLI: New
state repaircommand to rebuild cache mappings by matching configured resources (custom formats, quality profiles) to service resources by name. - CLI: New
list custom-format-groupscommand to discover available CF group trash_ids. - CLI: New
list score-setscommand to list available score sets for custom formats. - CLI: New
list quality-profilescommand to discover available quality profile trash_ids. - CLI: New
--rawoption for list commands outputs TSV format for scripting. - Sync: Unified diagnostics panel displayed at end of sync, consolidating all errors and warnings.
- Sync: Live progress display showing real-time status of all instances and pipelines during sync.
- Settings: Git resource providers now support both
mainandmasteras default branches. - Config: New
RECYCLARR_CONFIG_DIRenvironment variable for user configuration directory. - Config: New
RECYCLARR_DATA_DIRenvironment variable for ephemeral data (resources, logs), enabling backup separation from user configuration (#699).
- CLI: BREAKING List commands now display formatted tables instead of plain text. Use
--rawfor the previous behavior (now TSV format for scripting). - CLI: BREAKING The global
--rawoption has been removed. It is now specific to list commands. - CLI: BREAKING The
--score-setsoption onlist custom-formatshas been removed. Uselist score-setsinstead. - Sync: Simplified custom format matching logic. Cached IDs are now trusted over name matching, reducing complexity and resolving edge cases like multiple CFs with case-variant names (#672).
- Sync: Preview mode now shows instance name in section headers and a visual separator between instances, making multi-instance output easier to navigate.
- Custom Formats: Preview now displays a table with action, name, and trash ID columns instead of log-style output.
- Quality Sizes: Preview now only displays items that will be changed.
- Config: BREAKING The
replace_existing_custom_formatsoption has been removed. Userecyclarr state repair --adoptto adopt manually-created custom formats. - Config: BREAKING The deprecated
quality_profileselement undercustom_formatshas been removed. - Config: BREAKING Include templates in the
configsdirectory are no longer supported. Move include files to theincludesdirectory. - Settings: BREAKING The deprecated
repositoriessetting has been removed. Useresource_providersinstead. - Migrate: BREAKING macOS users upgrading from versions prior to v6.0 must manually move app
data from
~/.config/recyclarrto~/Library/Application Support/recyclarr. - CLI: BREAKING The
--app-dataoption has been removed. UseRECYCLARR_CONFIG_DIRenvironment variable instead. - Config: BREAKING The
RECYCLARR_APP_DATAenvironment variable has been removed. UseRECYCLARR_CONFIG_DIRinstead.
- CLI:
delete custom-formatscommand failed when config used include templates. - CLI:
config create --templateincorrectly logged "Replacing existing file" when creating new files.
7.5.2 - 2025-11-30
- Installation: Homebrew is now supported on macOS and Linux. See the installation docs for details.
- Sync: Crash when using
--previewflag after rendering quality sizes table. - Sync: Custom formats being updated on every run even when unchanged.
7.5.1 - 2025-11-29
- Quality Profiles: The
min_upgrade_format_scoreproperty now works correctly. The YAML property was renamed frommin_format_upgrade_scoreto match the Sonarr/Radarr API naming convention.
7.5.0 - 2025-11-29
- Quality Definitions: Per-quality size overrides allow setting explicit
min,max, andpreferredvalues for individual qualities, with support forunlimitedkeyword (#253). - YAML: New
!filetag that allows including the contents of an external file as a YAML node value, particularly useful for working with Docker Secrets (#278). - Settings: New
resource_providersconfiguration enables custom data sources for TRaSH Guides and config templates (#238). - Quality Profiles: Support for
min_format_upgrade_scoreto control minimum custom format score required for upgrading already-downloaded releases (contributed by @beschoenen in #503).
- Settings:
repositoriesconfiguration is deprecated in favor ofresource_providers.
- Sync: Custom format
includeCustomFormatWhenRenamingproperty now deserializes correctly from TRaSH Guides JSON files (#213). - Sync: Crash during quality profile and quality size operations.
- Cache: Remove duplicate custom format ID mappings during cache cleanup to prevent downstream transaction processing issues.
- YAML: Improved messaging in logs and console output for YAML errors.
- CLI: Respect the NO_COLOR environment variable when piping command output to files (#462).
7.4.1 - 2025-02-15
- Improved error handling in YAML configuration as well as how those errors are rendered to console output. (#396)
- Cutoff is no longer modified on implicitly referenced quality profiles (those that are specified
in
assign_scores_tobut not underquality_profiles) (#417)
7.4.0 - 2024-11-11
- Notifications: New
verbositysetting for Notifications to control the frequency and content of notifications sent after sync operations (#354).
- Repositories: Show a warning when there's a
git fetchfailure (#355).
7.3.0 - 2024-10-28
- Notifications support through Apprise
- A
DependencyResolutionExceptionis no longer raised in some commands (e.g.list) (#352).
7.2.4 - 2024-09-14
- Custom Formats: Smarter change detection logic for custom formats with language specifications, which addresses the issue of some CFs constantly showing as updated during sync even if they didn't change.
7.2.3 - 2024-09-03
- Performance: Reduced the number of API calls to obtain service version information.
- Custom Format: The error "CF field of type False is not supported" no longer occurs when syncing some language-specific custom formats (#318).
7.2.2 - 2024-08-25
- Quality Definition: Support new quality upper limits for Sonarr (1000) and Radarr (2000). This is a backward compatible change, so older versions of Sonarr and Radarr will continue to use the correct upper limits.
7.2.1 - 2024-08-03
- Quality Definition: Eliminated continuous syncing when no changes are present due to Radarr's adjustment of the upper limit for "Preferred" from 395 to 399.
7.2.0 - 2024-07-28
- The node
quality_profilesundercustom_formatswas renamed toassign_scores_toto disambiguate it from the top-levelquality_profiles. The old name is deprecated until the next major release. See the upgrade guide for details. - Quality Definition: Improved information about sync result in console output.
- Incorrect URLs were fixed in the local starter config template.
- Quality Definition: Preferred quality setting would not sync in certain situations (#301).
7.1.1 - 2024-07-12
- The
--app-dataoption is now common to all commands.
- CLI: Commands no longer crash due to a null app data directory variable (#288).
7.1.0 - 2024-07-10
- Sync: In rare circumstances outside of Recyclarr, quality profiles become invalid due to missing required qualities. When this happens, users are not even able to save the profile using the Sonarr or Radarr UI. Recyclarr now detects this situation and automatically repairs the quality profile by re-adding these missing qualities for users. See this issue.
- CLI: Signal interrupt support for all API calls. Now when you press CTRL+C to gracefully exit/cancel Recyclarr, it will bail out of any ongoing API calls.
- CLI: The
--app-dataoption works again (#284).
7.0.0 - 2024-06-27
This release contains BREAKING CHANGES. See the v7.0 Upgrade Guide for required changes you may need to make.
- YAML: New
includessubdirectory intended to hold only include templates. Relative paths specified in theconfiginclude directive are resolved starting at this new directory. Relative paths to include templates located under theconfigsdirectory is now DEPRECATED. See the "File Structure" page on the wiki for more details. - Support the NO_COLOR environment variable for all Recyclarr commands (#223).
- BREAKING: The app data directory on OSX has changed. It now lives at
~/Library/Application Support/recyclarrinstead of~/.config/recyclarr. Users will need to runrecyclarr migrateto move the directory (or do it manually). - BREAKING: Removed support for Release Profiles and Sonarr version 3. The new minimum required version for Sonarr is v4.0.0.
- CLI: Slightly improved display of version number when using
-voption. - CLI: Greatly improved the layout of and information in the local starter YAML configuration that
Recyclarr generates with the
recyclarr config createcommand.
- YAML: Print more useful diagnostics when there's a connectivity problem to a service (e.g.
incorrect
base_url). - YAML: Regression that prevented basic validation of
base_url&api_key. - CLI: CFs with no Trash ID will no longer be displayed when running the
list custom-formatscommand (#229). - Docker: Support running the container in read-only mode (#231).
- Sync: Sometimes CFs weren't deleted even with
delete_old_custom_formatsenabled (#237).
6.0.2 - 2023-10-20
- CLI: Some custom formats were not properly categorized when running
list custom-formats. - CLI: Continue processing other instances when
ServiceIncompatibilityExceptionis thrown. - Media Naming: In order to avoid confusion, the
v3andv4version indicators for certain naming format keys has been moved to their own column in thelistcommand table.
6.0.1 - 2023-10-02
- Media Naming: Sync file naming configuration even if
renameis not set totrue. - Quality Profiles: Validation check added for quality groups with less than 2 qualities.
- Quality Profiles: Fix "Groups must contain multiple qualities" sync error.
- Quality Profiles: Fix "Must contain all qualities" sync error.
6.0.0 - 2023-09-29
This release contains BREAKING CHANGES. See the v6.0 Upgrade Guide for required changes you may need to make.
- Added Naming Sync (Media Management) for Sonarr v3, Sonarr v4, and Radarr (#179).
- A
list namingcommand to show Sonarr and Radarr naming formats available from the guide.
- BREAKING: Minimum required Sonarr version increased to
3.0.9.1549(Previous minimum version was3.0.4.1098). - BREAKING: Old boolean syntax for
reset_unmatched_scoresis no longer supported.
- Status text rendered during git repo updates is no longer shown when
--rawis used with thelist custom-formatscommand (#215).
5.4.3 - 2023-09-16
- Remove INF log that showed a total count of CFs without scores assigned. This log caused a lot of confusion in support channels. You can still see a list of CFs without scores in the debug logs.
- Relaxed validation rules for
trash_idsandquality_profilesundercustom_formats. Both of these nodes may now be empty. This is mostly to make commenting out parts of configuration templates easier. - The merge operation for
custom_formatsis now "Join" (previously "Add"). If, for the same profile, you "reassign" a different score to a CF, the score now gets updated without having to remove the CF fromcustom_formatssections in included YAML files.
5.4.2 - 2023-09-14
- Print error information about HTTP 401 instead of "Unable to determine".
- Improved wording of remote service error messages.
qualities(insidequality_profiles) is now a "Replace" merge operation instead of "Add". This means only one YAML file manages the full list of qualities. Either an include does it, or you override the full list in your configuration file. There is no longer any combination. See the docs for more details.
5.4.1 - 2023-09-12
- If the guide data for "Include Custom Format when Renaming" is set to "true", it now syncs that correctly instead of always setting to "false" (#213).
5.4.0 - 2023-09-11
- Print date & time log at the end of each completed instance sync (#165).
- Add status indicator when cloning or updating git repos.
- YAML includes are now supported (#175) (docs).
- New
--includeoption added toconfig list templatesto show a list of include templates for each service type (docs).
- Less-verbose console logging for scoreless custom formats.
- Git repository updates are now parallelized.
- Individual updated, created, and deleted CF logs are now debug severity. This makes the console output less verbose when syncing custom formats.
- Service failures (e.g. HTTP 500) no longer cause exceptions (#206).
- Error out when duplicate instance names are used.
- Print score instead of object in duplicate score detection warning
5.3.1 - 2023-08-21
- Crash when doing
recyclarr syncwith noreset_unmatched_scorespresent.
5.3.0 - 2023-08-21
- New
deletecommand added for deleting one, many, or all custom formats from Radarr or Sonarr. - Exclusions are now supported under
reset_unmatched_scores. This is used to prevent score resets to specific custom formats. See the docs for more info. - New
score_setproperty available to each profile defined under the top-levelquality_profileslist. This allows different kinds of pre-defined scores to be chosen from the guide, without having to explicitly override scores in your YAML. - New
--score-setsoption added tolist custom-formatswhich lists all score sets that CFs are a member of, instead of the CFs themselves. - New
--rawoption added tolist custom-formatswhich omits boilerplate output and formatting. Useful for scripting.
- Program now exits when invalid instances are specified.
- Scores are now pulled from the
trash_scoresobject in the guide's CF json files.
reset_unmatched_scoreshas a new syntax. The old syntax has been deprecated.
- If multiple configuration files refer to the same
base_url(i.e. the same instance), this is now an error and the program will exit. To use multiple config templates against a single instance of Radarr or Sonarr, you need to manually merge those config files. See this page.
5.2.1 - 2023-08-07
- Reduce the time it takes to clone the config and trash repositories by performing shallow clones (#201).
- Better error message to console when no configuration files are found.
- Allow quality group names to duplicate quality names (#200).
5.2.0 - 2023-08-06
base_urlandapi_keyare now optional. These can be implicitly set via secrets that follow a naming convention. See the Secrets reference page on the wiki for details.- Quality Profiles can now be created & synced to Radarr, Sonarr v3, and Sonarr v4 (#144).
- Better error messages for manually-specified, non-existent config files.
- More detail in error messages when Radarr/Sonarr API calls respond with HTTP 400 "Bad Data".
- Resolved error during exception message formatting that occurred in some cases (#192).
5.1.1 - 2023-06-29
- Clone config template repo when
config create -tis used. - Fix error when completely commenting out a YAML configuration file (#190).
5.1.0 - 2023-06-26
- Migration step added to delete old
repodirectory. Runrecyclarr migrateto use.
- Update default clone URL for trash guides repo to new URL:
https://github.com/TRaSH-Guides/Guides.git.
5.0.3 - 2023-06-25
- When using
sync, continue processing other instances when there's a failure. - Regression: Perform Sonarr compatibility checks again (#189).
5.0.2 - 2023-06-24
- Commenting/uncommenting CFs in configuration YAML no longer causes duplicate CF warnings when
replace_existing_custom_formatsis omitted or set tofalse(better caching logic).
5.0.1 - 2023-06-23
- Recyclarr will now continue if
git fetchfails for any repos, so long as there is an existing, valid clone to use.
- Address regression causing
reset_unmatched_scores: falseto not be respected. - Do not show deleted custom formats in console output when
delete_old_custom_formatsis set tofalse.
5.0.0 - 2023-06-22
This release contains BREAKING CHANGES. See the v5.0 Upgrade Guide for required changes you may need to make.
- The
*.yamlextension is now accepted for all YAML files (e.g.settings.yaml,recyclarr.yaml) in addition to*.yml(which was already supported). - New
--templateoption added toconfig createwhich facilitates creating new configuration files from the configuration template repository. - New
--forceoption added to theconfig createcommand. This will overwrite existing configuration files, if they exist.
- API Key is now sent via the
X-Api-Keyheader instead of theapikeyquery parameter. This lessens the need to redact information in the console. - BREAKING:
replace_existing_custom_formatsnow defaults tofalse. - BREAKING: Restructured repository settings.
- Configuration templates repository moved to
recyclarr/config-templateson GitHub. Corresponding settings for this repo as well (see the Settings YAML Reference on the wiki for more details).
- BREAKING: Array-style instances are no longer supported.
- BREAKING: Remove deprecated CLI commands:
radarr,sonarr, andcreate-config. - BREAKING: Removed
reset_unmatched_scoressupport under quality profile score section. - BREAKING: Migration steps that dealt with the old
trash.ymlhave been removed.
- False-positive duplicate score warnings no longer occur when doing
sync --previewfor the first time.
4.4.1 - 2023-04-08
- Fixed JSON parsing issue that sometimes occurs when pulling custom formats from Radarr (#178).
- Use correct wiki link in settings.yml template.
4.4.0 - 2023-04-06
- New
replace_existing_custom_formatsproperty that can be set tofalseto disallow updates to existing CFs that Recyclarr never created in the first place. The default istrue. - New
quality_profilessection 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 listwhich lists information about local and template config files.
- Log files are restructured. They are now under
logs/cli. - Log files are split. There is now a
verbose.loganddebug.logfor every run. The time stamps (in the file name) between the two will be identical.
replace_existing_custom_formatsmust be explicitly specified, otherwise you will get a deprecation warning. In a future release, the default will change fromtruetofalse. To prepare for that, users must explicitly state what behavior they want to avoid unwanted behavior in the future. Read more on the upgrade guide.reset_unmatched_scoresis being moved to thequality_profilessection; a deprecation message will be logged until it is moved. Read more on the upgrade guide.
- 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.
- Compressed builds are now enabled on MacOS. This means the executable size will be smaller.
4.3.0 - 2023-01-22
- Environment variables may now be used in YAML configuration (#145).
- Exception when there's not configuration for both Sonarr and Radarr together.
4.2.0 - 2023-01-13
- New
listsubcommand for listing information from the guide. - New
synccommand for syncing all services, specific service types, and/or specific instances. - New
configsubcommand for performing configuration-specific operations.
- The CLI has been completely redesigned to be more consistent and structured (#142).
- Improved preview output for quality sizes, custom formats, and release profiles.
- The
create-configsubcommand is deprecated and replaced byconfig create. - The
sonarrsubcommand is deprecated and replaced bysync sonarr. - The
radarrsubcommand is deprecated and replaced bysync radarr.
4.1.3 - 2023-01-07
- 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.
- More scenarios were causing custom formats to sometimes not be synced (#160).
4.1.2 - 2023-01-06
- 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
- More robust configuration validation logic. You may notice new configuration errors that were not there before.
- 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
- Better visual separation between processed instances in console output. (#146)
- More information about deleted, skipped, updated, and created CFs in console output. (#159)
- Category headers in
--list-custom-formatsoutput is now formatted as a YAML comment that can be copied with the list of Trash IDs.
4.0.2 - 2022-12-26
- Sort CFs alphabetically in
--list-custom-formats
- 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
- Docker: Explicit
initis no longer required in Docker Compose. It is now built into the image. - Reduced size of the
recyclarrexecutable - macOS & linux are now released as
tar.xzarchives instead ofzip.
- 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.
- BREAKING: Sonarr
quality_definitionconfiguration updated to address unexpected changes in Sonarr v4 that caused it to stop working. See upgrade guide for details. - Default for
preferred_ratiochanged from1.0to using the values from the guide.
- BREAKING: Sonarr's
hybridquality definition removed.
- Do not warn about empty configuration YAML files when they aren't really empty.
3.1.0 - 2022-12-10
- 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).
- 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.
- New
configssubdirectory. Place your*.ymlconfig 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_keyandbase_urlin asecrets.ymlfile. 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_pathmay be used to specify the path to agitexecutable. If not used,PATHwill be searched. - Docker: New
RECYCLARR_CREATE_CONFIGenvironment variable which, if set totrue, will automatically create/config/recyclarr.ymlon container start up. Default isfalse.
- BREAKING: Recyclarr now requires
gitto 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.
- BREAKING: Completely removed support for
namesundercustom_formatsinrecyclarr.yml. Note that this had already been deprecated for quite some time. - BREAKING: The deprecated feature that still allowed you to keep your
recyclarr.ymlnext to the executable has been removed.
- 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.ymltemplate generated by thecreate-configsubcommand.
2.6.1 - 2022-10-15
- Sonarr: Incorrect VersionException occurred when using mixed versions of Sonarr (v4 & v3)
2.6.0 - 2022-10-14
- For both Sonarr and Radarr, the custom formats in the output of
--list-custom-formatsare 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!
- Docker:
PUIDandPGIDno longer cause a failure on container start up.
- 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
- Settings: New
log_janitorsetting 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.
- Docker: Fix
/configpermissions when not using bind-mount for the volume. (#111) - Sonarr: Error message is printed when attempting to use release profiles with Sonarr v4. (#100)
- Several vulnerabilities addressed (Thanks to @snoopy82481): CVE-2018-8292, CVE-2019-0980, CVE-2019-0981, CVE-2019-0820, CVE-2019-0657. (#112)
2.4.1 - 2022-08-26
- Radarr: Custom formats were always showing up as changed in the logs (#109)
2.4.0 - 2022-08-25
- New
--list-qualitiesargument forsonarrandradarrsubcommands that may be used to get a list of quality definition types from the guide.
- Quality definition data is now pulled from JSON files.
2.3.1 - 2022-08-20
- Use the new paths for custom format and release profile JSON files in the guide.
2.3.0 - 2022-08-14
- Radarr: New
--list-custom-formatsCLI option for getting a flat list of all CFs in the guide in YAML format, ready to copy & paste. - Docker: New
edgetag for experimental and potentially unstable builds onmaster. Includes both the latest Docker and Recyclarr changes to allow users to try them out before an official release. - Settings: New
branchandsha1Repository settings. (#27)
- JSON Schema added to the config template YAML file.
nameslist undercustom_formatsin config YAML is now deprecated. Usetrash_idsto list your custom formats instead.- Docker: The image is now rootless. The
PUIDandPGIDenvironment variables are no longer used. See the Docker wiki page for more details.
- Docker: Resolved errors related to
/tmp/.netdirectory 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
- 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.
- 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_profilesis empty. (#89) - Settings: Use repo URL after initial clone (#90)
2.2.0 - 2022-06-03
- 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 ofrecyclarras if--app-datawere specified.
- Renamed the "EVO (no WEB-DL)" custom format to "EVO (no WEBDL)" in the config template. (#77)
- Radarr:
delete_old_custom_formatsworks again. (#71) - The
create-configsubcommand now accepts YAML files again (it was taking a directory before, which was wrong).
2.1.2 - 2022-05-29
create-configwould fail with--pathspecified.migrateno longer fails if thecachedirectory does not exist.
2.1.1 - 2022-05-29
- Exception when running
create-configcommand.
2.1.0 - 2022-05-29
- New
--app-dataoption for overriding the location of the application data directory. - New
migratesubcommand which may be used to perform migration steps manually.
- The default location for the default YAML file (
recyclarr.yml) has been changed to the application data directory. This is the same location of thesettings.ymlfile. - Automatic migration has been removed. Instead, the
migratesubcommand should be used.
- The
recyclarr.ymlfile should no longer be located adjacent to therecyclarrexecutable.
- Version information in help output has been fixed.
- If a HOME directory is not available, throw an error to the user (use
--app-datainstead). - Create
$HOME/.config(on Linux) if it does not exist. - Smarter migration logic in the
trash-updatermigration step that does a directory merge instead of a straight move. This is designed to fail less in cases such asrecyclarrdirectory already existing.
2.0.2 - 2022-05-20
- Sonarr: Fix unexpected missing terms when using filters. (#69)
2.0.1 - 2022-05-19
- Sonarr:
strict_negative_scoresworks 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.
- BREAKING: Sonarr Release profiles are now synced based on a "Trash ID" taken from the sonarr
JSON files. This breaks existing
trash.ymland 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.
- 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-profilescommand 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 underrelease_profiles. - Sonarr: New
--list-termscommand 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
- Sonarr: Error when syncing optionals release profile with the
IncludeOptionalsfilter setting set tofalse.
1.8.1 - 2022-03-05
- Unrecognized or unwanted YAML properties in configuration YAML (
trash.yml) now result in an error. This is to help users more easily identify mistakes.
- Sonarr: Optionals release profile is now properly synced
1.8.0 - 2022-02-13
- 64-bit ARM builds for Windows, Linux, and Mac OS.
- 32-bit ARM build for Linux.
1.7.0 - 2022-02-06
- 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).
- Remove
System.Reactive.xmlfrom 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
- Sonarr version check failed when instances were slow to respond or there was high latency.
1.6.5 - 2021-10-24
- 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
- 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 totrash.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
- Directly use the Trash Guides git repository to avoid getting HTTP 403 - rate limit reached error in github.
1.6.1 - 2021-05-31
- 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
- New setting
reset_unmatched_scoresundercustom_formats.quality_profilesin 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).
- 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
- Support
trash_scoreproperty 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
- 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.
- An issue with radarr
--previewthat caused duplicate output when updating a second instance has been fixed.
1.4.2 - 2021-05-15
- Fixed using incorrect URL for Sonarr
1.4.1 - 2021-05-15
- 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.
- 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
- Radarr Custom Format Support.
1.3.3 - 2021-05-06
- 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
- Fix exception that occurred when running the create-config subcommand.
1.3.1 - 2021-05-05
- Executable is now compiled using Ready to Run. This substantially increases the size of the executable but makes the code much faster.
- 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
- New configuration for Sonarr release profiles that allows all optional terms to be synced. Look
for
filterin the Configuration Reference for more details.
1.2.0 - 2021-04-19
- New
create-configsubcommand to create a starter YAML config file
1.1.0 - 2021-04-18
- Optional terms in the release profile guides are no longer synchronized to Sonarr.
- A warning is now logged when we find a number in brackets (such as
[100]) without the wordscorebefore 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.
- Full rewrite of the application in C# .NET Core 5
- More than one configuration (YAML) file can be specified using the
--configoption. - Multiple Sonarr and Radarr instances can be specified in a single YAML config.
- Nearly all command line options removed in favor of YAML equivalents.
- Completely removed old python project & source code