BreakPoint Drop

By language · Python

Abandoned Python projects looking for a new maintainer

A 2026 field guide to finding, evaluating, and adopting an abandoned Python package. Covers the PEP 541 transfer process, PyPI development_status signals, and the standard handoff vocabulary.

Published July 13, 2026 · ~3 min read

The short version

  • The Python ecosystem has two parallel signals: the GitHub adopt-me topic and the PyPI development_status = 7 (Inactive) classifier.
  • For an official transfer of a package name on PyPI, use the PEP 541 process — never just re-publish under a new name.
  • The standard signal vocabulary is: GitHub adopt-me topic + looking-for-maintainer badge + a pinned "Seeking new maintainer" issue.
  • Bus factor 1 is the default for solo Python projects; a 12-month silence + unanswered issues + bus factor 1 = adoption candidate.

How to find abandoned Python projects

The fastest way is to use the BreakPoint feed filtered to Python. Median time from drop to first PR is 23 days, so the feed is fresh. Three other signals to layer on top:

  • GitHub topic search: https://github.com/topics/adopt-me?l=python — direct, real-time, no API needed.
  • PyPI classifier: any package with development_status = 7 (Inactive) in its setup.py / pyproject.toml is officially inactive. The classifiers are machine-readable, so you can scrape them with pypi.org's JSON API.
  • Libraries.io + deps.dev: for transitive-dependency views (which packages depend on the candidate). A package with 50+ direct dependents is a much bigger commitment than one with 5.

The PEP 541 transfer process

PEP 541 is the only legitimate way to take over a PyPI package name when the original maintainer is unreachable. It requires all three criteria to hold:

  1. The owner is unreachable (no response to issues, email, or PyPI contact form for 60+ days).
  2. The package has had no release in 12+ months.
  3. The owner has had no PyPI activity in 12+ months (no uploads, no comments, no account actions).

If all three hold, file a request at pypa/pypi-support. The PyPI admin team will evaluate. The process takes weeks to months. Don't fork and re-publish under a new name — the original name is the one users depend on, and PyPI will help you get it if you ask.

If you maintain: how to signal "looking for a maintainer"

See the maintainer handoff guide for the full 5-step playbook. The Python-specific bits: add the adopt-me GitHub topic, add the shields.io looking-for-maintainer badge to the README, pin a "Seeking new maintainer" issue, and drop the project on BreakPoint. The development_status = 7 (Inactive) classifier is the ecosystem-level signal but it's a one-way door — once you set it, you can't easily unset. Use it after you've actually stopped maintaining, not as a "looking for help" signal.

Frequently asked questions

How do I find abandoned Python projects?

Three places: the BreakPoint feed filtered to Python, the GitHub adopt-me topic, and PyPI packages with development_status = 7.

What's the PEP 541 process?

The formal PyPI process for transferring a package name to a new maintainer when the original is unreachable. File at pypa/pypi-support. Takes weeks to months.

How do I signal my Python project is looking for a maintainer?

GitHub adopt-me topic + looking-for-maintainer badge + a pinned issue. The PyPI development_status = 7 classifier is a one-way door, use it after you stop.

Related reading

Adopter guide

How to take over an abandoned open source project

The 6-step playbook that applies to every language, including the cross-language contact-and-fork workflow.

Find a Python project

The BreakPoint feed — fresh adoptions, filtered to your stack

Median drop-to-first-PR is 23 days. The right Python project is here.