Radarr is an open-source movie collection manager that automates downloading, sorting, and renaming movies for Usenet and BitTorrent users. It integrates with platforms like SABnzbd, NZBGet, Kodi, and Plex. The project is maintained under the GNU GPL v3.0 by a robust community and supported by sponsors like JetBrains and DigitalOcean. Radarr is actively developed with over 12,930 commits and a strong GitHub presence.
Weblate (bot)
Bogdan (mynameisbogdan)
Stevie Robinson (stevietv)
Mark McDowall (markus101)
ServarrAdmin
src/NzbDrone.Core/Localization/Core/da.json
) highlights ongoing efforts to support a diverse user base.azure-pipelines.yml
) demonstrates a sophisticated approach to building and deploying across multiple platforms.src/Radarr.Api.V3/openapi.json
) ensures clear communication of available endpoints, facilitating integration with external tools.Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 20 | 14 | 4 | 0 | 1 |
30 Days | 61 | 53 | 48 | 0 | 1 |
90 Days | 217 | 174 | 280 | 0 | 1 |
1 Year | 329 | 200 | 524 | 0 | 1 |
All Time | 8120 | 7707 | - | - | - |
Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Weblate (bot) | 1 | 0/0/0 | 2 | 11 | 554 | |
Mark McDowall | 1 | 0/0/0 | 5 | 10 | 213 | |
Bogdan | 1 | 0/1/0 | 12 | 26 | 187 | |
Stevie Robinson | 1 | 0/0/0 | 2 | 8 | 92 | |
Servarr | 1 | 3/5/0 | 2 | 1 | 81 | |
None (cheese1) | 0 | 1/0/1 | 0 | 0 | 0 | |
soup (s0up4200) | 0 | 1/1/0 | 0 | 0 | 0 | |
None (sampulsar) | 0 | 0/0/1 | 0 | 0 | 0 | |
None (servarr[bot]) | 0 | 2/2/0 | 0 | 0 | 0 | |
Alperen Kaplan (alperenkaplan) | 0 | 1/0/1 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
Risk | Level (1-5) | Rationale |
---|---|---|
Delivery | 4 | The project faces significant delivery risks due to a backlog of unresolved issues and stalled pull requests. Notably, PR #10258 for upgrading to .NET 8 has been open for 136 days, indicating delays in critical updates. The backlog of 413 open issues, many related to Sonarr conflicts, further exacerbates these risks. The lack of test coverage in new code and incomplete implementations in several PRs (e.g., #10609, #10537) also contribute to potential delivery delays. |
Velocity | 3 | The project's velocity is moderate but faces challenges due to the consistent opening of more issues than are closed. Over the past year, 329 issues were opened with only 200 closed, suggesting a trend that could slow progress. Additionally, several PRs remain in draft status or marked 'Don't Merge' due to unresolved issues, indicating bottlenecks in the review process that could impact velocity. |
Dependency | 4 | Dependency risks are significant, particularly with the stalled upgrade to .NET 8 (PR #10258) and integration challenges with Sonarr commits leading to numerous conflicts (e.g., #10764). The reliance on automated processes for translations and the introduction of new dependencies like RQBit without thorough validation further compound these risks. |
Team | 3 | The team faces potential risks related to resource constraints and prioritization challenges, as indicated by the backlog of unresolved issues and stalled PRs. However, active contributions from key developers suggest a committed team. Communication issues or pending actions from contributors (e.g., 'Waiting for OP' labels) could affect team efficiency. |
Code Quality | 4 | Code quality is at risk due to the lack of test coverage in new code and incomplete implementations across multiple PRs (e.g., #10509, #10609). While some PRs pass quality checks, the absence of comprehensive testing suggests reliance on manual reviews or static analysis tools. The presence of security hotspots in stalled PRs further indicates potential quality concerns. |
Technical Debt | 4 | Technical debt is accumulating due to unresolved issues and incomplete PRs that lack tests or documentation updates. The prolonged draft status of critical updates like .NET 8 upgrade (PR #10258) and missing components in new features (e.g., RQBit support) highlight areas where technical debt could increase if not addressed promptly. |
Test Coverage | 5 | Test coverage is critically lacking across new code implementations. Several PRs introduce features without any tests (e.g., #10730, #10656), posing significant risks for undetected bugs and regressions. This systemic issue with test coverage could undermine software reliability and maintainability. |
Error Handling | 3 | Error handling appears adequate in specific areas like disk operations (as seen in DiskTransferService.cs), but the overall lack of test coverage raises concerns about catching errors across the broader codebase. While logging and rollback mechanisms are present in some components, comprehensive error handling strategies are needed project-wide. |
Recent GitHub issue activity for the Radarr project shows a consistent flow of new issues being created, with a mix of feature requests, bug reports, and pull requests. The issues are actively managed, with many being closed shortly after creation, indicating a responsive maintenance team.
A notable anomaly is the high number of conflicts in pull requests related to Sonarr commits (#10764, #10755, #10754). These conflicts suggest integration challenges between Radarr and Sonarr codebases, potentially due to differences in their respective repositories or recent changes that have not been synchronized.
Several issues highlight recurring themes such as language parsing (#10682), metadata handling (#10613), and download client integration (#10551). These indicate ongoing efforts to improve Radarr's core functionalities and user experience. The presence of multiple feature requests for enhanced filtering and sorting capabilities (#10571, #10469) suggests a demand for more granular control over movie management.
#10764: Pull Sonarr commit 'Convert Calendar to TypeScript'
#10755: Pull Sonarr commit 'Convert EpisodeHistory to TypeScript'
#10754: Pull Sonarr commit 'Convert EpisodeSearch to TypeScript'
#10764: Pull Sonarr commit 'Convert Calendar to TypeScript'
#10755: Pull Sonarr commit 'Convert EpisodeHistory to TypeScript'
#10771: Pull Sonarr commit 'New: Series genres for search results'
#10769: Pull Sonarr commit 'Fixed: Refresh backup list on deletion'
The active management of issues and the quick closure of resolved ones reflect a well-maintained project with a focus on continuous improvement and responsiveness to user feedback.
PR #10258: New: Bump to .NET 8
PR #10609: RQBit support added
PR #10537: New: Lists retroactively apply tags
PR #10517: Added Original Title to Movie Details and to Add Movie Search Result
PR #10772: Translations update from Servarr Weblate
PR #10767 & #10770 (Sonarr Pulls)
The Radarr project is actively maintained with numerous open pull requests addressing significant updates and new features. However, some open PRs face challenges due to their complexity or dependencies on other work. Recently closed PRs show a mix of translation updates, synchronization with Sonarr improvements, and minor fixes—all contributing to the project's ongoing development and stability.
src/NzbDrone.Core/Localization/Core/da.json
frontend/build/webpack.config.js
experiments
for top-level await and optimization
for deterministic module IDs.core-js
versioning in Babel presets suggests attention to compatibility and polyfilling needs.frontend/src/DiscoverMovie/Overview/DiscoverMovieOverview.css
composes
indicates CSS Modules or similar technology, promoting modularity and scope isolation.src/NzbDrone.Core/Notifications/Telegram/Telegram.cs
NotificationBase<TelegramSettings>
, indicating adherence to a notification interface or base class pattern.ITelegramProxy
, IConfigFileProvider
) promotes testability and separation of concerns.src/NzbDrone.Core.Test/Download/Aggregation/Aggregators/AggregateLanguagesFixture.cs
Mock<IIndexerFactory>
) is used effectively to isolate test cases from dependencies.frontend/src/Wanted/CutoffUnmet/CutoffUnmet.js
componentDidUpdate
) manage state updates based on prop changes.src/NzbDrone.Core.Test/Datastore/Converters/TimeSpanConverterFixture.cs
src/Radarr.Api.V3/openapi.json
src/NzbDrone.Common/Processes/ProcessProvider.cs
IProcessProvider
) promoting flexibility through dependency injection or mocking in tests.azure-pipelines.yml
Overall, the codebase demonstrates high quality across various components with attention to best practices in software engineering. Continued focus on testing coverage, error handling improvements, and documentation synchronization will further enhance reliability and maintainability.
Weblate (bot)
Bogdan (mynameisbogdan)
Stevie Robinson (stevietv)
Mark McDowall (markus101)
ServarrAdmin
Robin Dadswell (RobinDadswell)
Soup (s0up4200)
Overall, the Radarr team demonstrates a strong commitment to continuous improvement, user experience enhancement, and internationalization support.