Skip to main content

stack-rot

A dependency health scanner that finds dead, deprecated, and abandoned packages in your project — and tells you what to migrate to.

📦 stack-rot v0.1 — scanning ./package.json

🪦 ABANDONED (1 package):
  ❌ moment 2.24.0
     → In maintenance mode since 2020. Maintainers officially recommend alternatives.
     → Migrate to: dayjs, date-fns, luxon
     → Evidence: https://momentjs.com/docs/#/-project-status/

⚠️  DEPRECATED (2 packages):
  ❌ brute-knex 4.0.1
     → Package no longer supported.
  ❌ path-match 1.2.4
     → Archived and no longer maintained.

✅ HEALTHY (207 packages)

────────────────────────────────────────
📊 Project health: 9.9/10
   207/210 dependencies are healthy (2 unknown packages excluded).

The example above is a real scan of TryGhost/Ghost.

What it does

stack-rot reads your package.json and reports which dependencies are:

  • Abandoned — community has moved away, even if the registry doesn't say so (e.g. moment)
  • Deprecated — officially marked deprecated on npm or by maintainers (e.g. request, node-sass)
  • Healthy — actively maintained

For each problematic dependency, it tells you:

  • Why it's flagged
  • A link to public evidence (maintainer announcement, deprecation notice, archived repo)
  • Recommended alternatives

Why this exists

Existing tools handle adjacent problems:

Tool Primary focus
npm outdated Newer versions available
npm audit Security vulnerabilities
Dependabot Automated version bumps
Snyk Security vulnerabilities + license issues
Socket.dev Supply-chain risk
stack-rot Community migration intelligence (open-source, free, CLI)

None of those answer the question developers actually ask when they inherit an old codebase: which of these packages should I stop using?

stack-rot answers that. It combines a hand-curated database of known-abandoned packages with the npm registry's deprecation flag to surface problems no other tool catches.

Install

pip install stack-rot

Requires Python 3.10 or newer.

Usage

Scan the package.json in the current directory:

stack-rot

Scan a specific file:

stack-rot path/to/package.json

Scan without hitting the npm registry (uses only the curated database):

stack-rot --no-network

Exit codes:

  • 0 — no abandoned or deprecated dependencies found
  • 1 — problems found (useful for CI)
  • 2 — error reading the manifest

What's in v0.1

  • JavaScript / npm support (reads package.json, queries https://registry.npmjs.org)
  • 8 hand-verified entries in the curated database, each with an evidence URL
  • Live npm deprecation detection for every other package on the registry

Roadmap

  • v0.2 — Python (requirements.txt, pyproject.toml)
  • v0.3 — Automated abandonment signals (last-publish dates, repo activity)
  • v0.4 — Go (go.mod)
  • v0.5 — Rust (Cargo.toml)
  • v0.6 — Community sentiment data from public sources
  • v0.7 — JSON/HTML reports, CI mode, GitHub Action
  • v0.8 — Safe codemods for trivial migrations
  • v0.9 — Web dashboard and README badges
  • v1.0 — Stability and sustainability

Contributing

The curated database (src/stack_rot/rot-db.json) grows by community contribution. Every new entry requires:

  • A status of dead, deprecated, or stale
  • A reason explaining the verdict
  • A list of at least one alternative package
  • A public evidence URL (maintainer announcement, deprecation notice, archived repo, or registry flag)
  • verified_by and verified_date fields

PRs missing any of these will be rejected automatically. See CONTRIBUTING.md for full rules.

License

MIT. See LICENSE.

Metadata

Release files for stack-rot 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stack-rot 0.1.0
File Size Uploaded Provenance
stack_rot-0.1.0.tar.gz 9.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for stack-rot 0.1.0
File Interpreter ABI Platform
stack_rot-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 22.1 kB

Release files / stack_rot-0.1.0.tar.gz

Download URL stack_rot-0.1.0.tar.gz
Size 9.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f4db43ba91d70f5395bce365416c68de3072906cd47117cbb2f821bc9a1b13e3
BLAKE2b-256 checksum
How to use checksums
09e9aecccde453ebe29c34a2152d057bc3dc4f3ba29928d6cff65cd189f68d27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / stack_rot-0.1.0-py3-none-any.whl

Download URL stack_rot-0.1.0-py3-none-any.whl
Size 12.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
86c52da9f71e8390297e251e49336e6a863f79c99dd7060ea9f5a7d1eaa84cfe
BLAKE2b-256 checksum
How to use checksums
5bfc3a3166d4f70080bbe9701312aa57d2fa924799aea34b8a841d303b6cbe2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for stack-rot 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page