💡 Create MRs or GitLab Issues for Abandoned / Deprecated Dependencies #38899
Replies: 2 comments 5 replies
-
Creating PRsI think will be bit hard cause we will have to think about
This means all managers have to be updated which can take too long IssuesWe could add a new option like |
Beta Was this translation helpful? Give feedback.
-
|
We suffer from the same problem. Developers never look at the dependency dashboard, since we set Why not simply have the PR make a dummy change (e.g. create a random file)? I don't think you need to postpone this just because it would be so hard to correctly implement the removal of the abandoned dependency. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Tell us more.
Summary
Renovate already detects and lists abandoned or deprecated dependencies in the dependency dashboard. However, these often remain invisible to most developers since they don’t trigger any notifications, merge requests, or issues.
This proposal suggests adding an option for Renovate to create GitLab Merge Requests and/or GitLab Issues when such dependencies are detected — to give these findings greater visibility and make them actionable.
Problem Statement
Currently:
• Abandoned or deprecated dependencies are only visible in the Renovate Dependency Dashboard.
• Teams often miss these warnings, leading to outdated or unmaintained packages lingering in production.
• There’s no automated or trackable workflow to address these risks.
As a result, potential security, compatibility, or maintenance risks remain hidden until a manual audit is performed.
Proposed Solution
✅ Option 1: Create Merge Requests
When Renovate detects an abandoned or deprecated dependency:
• Open a dedicated MR per package to remove it.
• Include a clear commit message and body:
chore(deps): remove abandoned dependency
MR body:
Renovate has identified as abandoned or deprecated.
🧩 Dependency:
📦 Current Version: x.y.z
📉 Reason: Marked as abandoned/deprecated by package registry
🧰 Action: Dependency removed from manifest
• Apply automerge: false explicitly for safety.
• Add labels like dependency:abandoned or renovate:abandoned.
• Use a separate branch for each, e.g., renovate/abandoned-.
📝 Option 2: Create GitLab Issues
If safe removal isn’t feasible:
• Create a GitLab Issue per package instead.
• Title:
Investigate abandoned dependency
• Include in the description:
• Package name, version, and reason for abandonment.
• Suggested replacements or alternatives (if available).
• Links to relevant registry pages or advisories.
• Assign labels and (optionally) team assignees, e.g. @team/sre.
⚙️ Option 3: Configurable Behavior
Proposed configuration in .renovaterc:
{ "abandonedDependencyAction": "mr", // or "issue", "disabled" "abandonedDependencyAutomerge": false, "labels": ["dependency:abandoned"], "issueAssignees": ["@team/sre"], "branchPrefix": "renovate/abandoned-" }Benefits
• 🔎 Visibility: Makes abandoned/deprecated dependencies visible in GitLab instead of being buried in dashboards.
• 🧠 Actionability: Creates real, trackable work items (MRs or Issues).
• 🧾 Traceability: Maintains a record of dependency removal or replacement decisions.
• 🧯 Safety: Keeps automerge disabled by default for these changes.
Additional Considerations
• One dependency per MR (to ensure safe and reviewable diffs).
• Should only run when explicitly enabled.
• If deprecation notice includes replacement suggestions, include them in the MR or issue body.
• Future extension: similar flow could apply for deprecated → replacement migrations (e.g., express-session → @express/session).
Example Scenario
Renovate detects that left-pad has been marked abandoned.
It opens a Merge Request titled:
chore(deps): remove abandoned dependency left-pad
The MR removes left-pad from package.json, disables automerge, and applies a dependency:abandoned label.
If removal is unsafe, instead an issue is created:
Investigate abandoned dependency left-pad.
Beta Was this translation helpful? Give feedback.
All reactions