-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Policy for removing stale packages (#16975)
- Loading branch information
1 parent
850d646
commit f7dc9ef
Showing
2 changed files
with
438 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |
Oops, something went wrong.