Safeguard
Supply Chain•

Dependency retired by its maintainers: fork it, adopt it or replace it?

When maintainers retire an open source project you use, you have three paths: fork, adopt an active fork or successor, or replace. A decision guide.

Safeguard Security Team
4 min read

When maintainers retire a dependency, you have three paths: adopt an active fork or successor that someone else maintains, fork it and maintain it yourself, or replace it with a different library. Pick by how deeply the code is embedded, who is already maintaining a fork, and how much maintenance work your team can carry.

Why the choice is yours

Retirement means the original team stops releasing fixes. The Apache Attic, for one, states it is not intended to make bugfixes or releases. Open Source Guides add that maintainers who step away can hand control to someone else, and that if someone is actively maintaining a fork, they should consider linking to it from the original project. So a successor may exist. Do not assume it does.

The three paths

PathWhen it fitsWhat you take on
Adopt an active fork or successorA fork has recent releases, several maintainers and a clear licenseVetting the new maintainers, tracking their governance
Fork and maintain it yourselfCode is small, stable and deeply embedded, and no good successor existsSecurity fixes, builds, releases, license duties
ReplaceA maintained alternative offers the same job, and migration cost is acceptableMigration work and retesting

Questions that decide it

  1. How much code depends on it? A utility used in two places is easy to replace. A framework core is not.
  2. Is there a maintained fork? Check dates, authors and whether the fork is linked from the original. Verify that it is the real continuation, not an impostor: see verify authenticity.
  3. Is the license clear? Forking brings duties. See the fork license checklist.
  4. Can your team patch it? An internal fork needs people who can read and fix the code. See internal fork rules.
  5. Is the risk high? A retired parser that handles untrusted input matters more than a retired formatter.

Steps

  1. Inventory every use, direct and indirect.
  2. Rate each use by exposure to untrusted input.
  3. Pick a path per use, not one for the whole company.
  4. Set an owner and a date for the decision.
  5. Define exit criteria. See when to retire your fork.

What not to do

  • Do not leave the dependency in place with no owner.
  • Do not switch to a fork because it has more stars. Check who runs it.
  • Do not copy code out of a project without reading its license.

Retirement is a normal event in open source, not a failure to punish. What matters is that you notice and act in a defined time. For the broader picture, see archived GitHub dependency guidance.

Try it yourself

Click through it at your own pace, or open it full screen. Find a component and see how many places depend on it, which tells you how hard a replacement would be.

Safeguard can help with the inventory part. Its SBOM and dependency scanning lists what your projects actually pull in, so you can see which components you depend on and decide where to look closer. You can try a free scan at gold.safeguard.sh/scan.

Quick check

Should I always replace a retired dependency?

No. A small, stable, well understood library can be forked internally. Weigh embedding, exposure and team capacity.

How do I know a fork is the real continuation?

Check whether the original project links to it, who maintains it, and its release history. Do not rely on popularity alone.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.