Skip to content

Commit

Permalink
Policy for removing stale packages (#16975)
Browse files Browse the repository at this point in the history
  • Loading branch information
logan-markewich authored Nov 20, 2024
1 parent 850d646 commit f7dc9ef
Show file tree
Hide file tree
Showing 2 changed files with 438 additions and 0 deletions.
65 changes: 65 additions & 0 deletions STALE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Stale Package Policy

## Overview

To maintain high quality across all LlamaIndex integrations, we periodically review packages for staleness. Packages marked as "stale" are moved to a `stale_packages` branch but remain published on PyPI. This policy ensures that our main branch contains only well-maintained, tested integrations while preserving access to historical integrations.

## Staleness Criteria

Packages are evaluated using an automated health check that considers:

1. **Test Coverage (50% of score)**

- Full credit (1.0): 5+ test functions
- Partial credit (0.5): 2-4 test functions
- No credit (0.0): 0-1 test functions

2. **Download Activity (40% of score)**

- Measured relative to llama-index-core
- Considers monthly download counts
- Weighted towards recent activity

3. **Commit Activity (10% of score)**
- Measured relative to llama-index-core
- Considers commit frequency and consistency
- Weighted towards recent commits

The resulting score is then used to determine the health of the package.

## Moving to Stale Status

A package may be moved to the `stale_packages` branch if:

1. It has a low health score (typically below 0.005)
2. AND lacks adequate test coverage
3. OR has known breaking issues that haven't been addressed

The final decision to mark a package as stale involves human review and is not purely automated.

## Effects of Stale Status

When a package is marked as stale:

1. The package code is moved to the `stale_packages` branch
2. Documentation is removed from the main documentation site
3. The package remains published on PyPI

## Reactivating a Stale Package

Any contributor can reactivate a stale package by:

1. Creating a PR to move any package from the `stale_packages` branch to `main`
2. Ensuring the package has adequate test coverage (minimum 2 tests)
3. Verifying that all tests pass
4. Updating documentation as needed

## Questions or Concerns

If you maintain a package that has been marked as stale, or have questions about this policy:

1. Open a GitHub issue for discussion
2. Reach out to the maintainers on Discord
3. Submit a PR to reactivate your package with improvements

We aim to be transparent and collaborative in maintaining package quality while preserving access to all integrations.
Loading

0 comments on commit f7dc9ef

Please sign in to comment.