Skip to main content

The documentation here is for an unreleased version of Recyclarr.

Visit the documentation site for the Current Version instead.

Version 8.0 (Unreleased)

info

This version has not been released yet.

To prevent information redundancy across upgrade guide pages, deprecation notices within Recyclarr are systematically linked to the upgrade guide for the forthcoming unreleased major version. This strategy serves as a living document that details all anticipated breaking changes, providing users with adequate time to make necessary modifications prior to the implementation of these changes.

Features have been removed or behavior changed. Most of the items here would have been deprecated in the past. Deprecations are always mentioned in release notes for feature releases.

Dedicated Includes Directory

The root directory for relative local include paths has changed. Previously, relative paths provided to the config include directive were rooted in ${appdatadir}/configs. Putting includes in the configs directory is no longer supported. Going forward, all includes should reside in ${appdatadir}/includes.

Migrating to the new directory is simple. Simply cut & paste any subdirectories containing include template YAML files to the new includes subdirectory. Assume you have the current structure:

.
├── configs/
│ ├── config1.yml
│ ├── config2.yml
│ └── local/
│ ├── my-include1.yml
│ └── my-include2.yml
└── includes/

An empty top-level includes will be created for you by Recyclarr. In the example above, we need to move the local directory to this top-level includes directory. The final structure should look like this:

.
├── configs/
│ ├── config1.yml
│ └── config2.yml
└── includes/
└── local/
├── my-include1.yml
└── my-include2.yml

By doing this, the relative paths in your templates section does not need to change:

include:
- config: local/my-include1.yml
- config: local/my-include2.yml

Recommended File Structure Changes (Optional)

If you followed the recommended file structure for your includes, then chances are you already have a configs/include directory. To avoid having the path look weird, such as includes/include/my-include1.yml, it is recommended that you remove the intermediate include directory or rename it. For example, you could change this:

include:
- config: include/my-include1.yml
- config: include/my-include2.yml

To:

include:
- config: my-include1.yml
- config: my-include2.yml

And have your filesystem change from:

.
├── configs/
│ ├── config1.yml
│ └── config2.yml
└── includes/
└── include/
├── my-include1.yml
└── my-include2.yml

To this:

.
├── configs/
│ ├── config1.yml
│ └── config2.yml
└── includes/
├── my-include1.yml
└── my-include2.yml

YAML: Custom Formats quality_profiles Renamed

Prior to this major release, two quality_profiles nodes existed in YAML:

  • The top-level version, which defined quality profiles to sync
  • The one under custom_formats, which instructed Recyclarr which profile the CF scores should be synced to.

The fact that quality_profiles existed in two places with distinct meanings created a lot of confusion, especially in support channels. Starting with this major release, quality_profiles under custom_formats must be changed to assign_scores_to.

Before v8.0, if you had YAML like this:

radarr:
movies:
base_url: http://localhost:7878
api_key: 123abc

quality_profiles:
- name: SD

custom_formats:
- trash_ids:
- ed38b889b31be83fda192888e2286d83 # BR-DISK
- 90cedc1fea7ea5d11298bebd3d1d3223 # EVO (no WEBDL)
quality_profiles:
- name: HD-1080p
- name: HD-720p
score: -1000
- trash_ids:
- 496f355514737f7d83bf7aa4d24f8169 # TrueHD ATMOS
- 2f22d89048b01681dde8afe203bf2e95 # DTS X
quality_profiles:
- name: SD

You are required to change it to this:

radarr:
movies:
base_url: http://localhost:7878
api_key: 123abc

quality_profiles:
- name: SD

custom_formats:
- trash_ids:
- ed38b889b31be83fda192888e2286d83 # BR-DISK
- 90cedc1fea7ea5d11298bebd3d1d3223 # EVO (no WEBDL)
assign_scores_to: # <<< RENAMED
- name: HD-1080p
- name: HD-720p
score: -1000
- trash_ids:
- 496f355514737f7d83bf7aa4d24f8169 # TrueHD ATMOS
- 2f22d89048b01681dde8afe203bf2e95 # DTS X
assign_scores_to: # <<< RENAMED
- name: SD

Refer to the RENAMED comments in the above example for exact lines that changed.

Settings: Repository Configuration Replaced

The legacy repositories configuration format has been completely removed and replaced with the new resource_providers system. This change provides support for multiple repositories per content type, local directory support, and enables future extensibility.

Old Format (Removed)

repositories:
trash_guides:
clone_url: https://github.com/TRaSH-Guides/Guides.git
branch: master
sha1: c611e9df00bf9261bddfc749219295fe189ae552
config_templates:
clone_url: https://github.com/recyclarr/config-templates.git
branch: master

New Format

resource_providers:
- name: trash-guides
type: trash-guides
clone_url: https://github.com/TRaSH-Guides/Guides.git
reference: c611e9df00bf9261bddfc749219295fe189ae552
replace_default: true

- name: config-templates
type: config-templates
clone_url: https://github.com/recyclarr/config-templates.git
reference: master
replace_default: true

Key Changes

OldNew
Nested structure (trash_guides:, config_templates:)Flat list with explicit type property
branch and sha1 propertiesUnified reference property
Implicit replacement of official sourcesExplicit replace_default: true required
Single repository per typeMultiple repositories per type supported
Git repositories onlyLocal directories also supported via path

Migration Notes

  • No repositories config? No changes needed - official sources are included automatically
  • Had custom repositories? Add type property and use replace_default: true if you want to replace official sources, or omit it to use your repository as a supplement
  • Using forks? Consider using supplemental providers instead of replacing official sources - this lets you get official updates while adding your customizations

See the Resource Providers documentation for complete configuration details.