awesome-python/CONTRIBUTING.md
Vinta Chen 5e8a25e57e
Reorganize CONTRIBUTING.md for better clarity
Move "Automatic Rejection" section to top of document as first-line
filter for reviewers. Consolidate duplicate rejection criteria from
"Common Mistakes" and bottom "Automatic Rejection" sections into
single comprehensive list. Reorder remaining sections in logical
flow: rejections, quality requirements, acceptance criteria, format
reference, review process.

🤖 Generated with Claude Code (https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-11 23:04:41 +08:00

3.0 KiB

Contributing

Automatic Rejection

PRs will be closed if:

  • Adding multiple projects in one PR
  • Duplicate of existing entry or recently-closed PR
  • Empty or placeholder PR descriptions
  • Placed under an inappropriate category
  • Project is archived or abandoned (no commits in 12+ months)
  • No documentation or unclear use case
  • Less than 100 GitHub stars without Hidden Gem justification
  • Repository less than 3 months old

Quality Requirements

All submissions must satisfy ALL of these:

  1. Python-first: Primarily written in Python (>50% of codebase)
  2. Active: Commits within the last 12 months
  3. Stable: Production-ready, not alpha/beta/experimental
  4. Documented: Clear README with examples and use cases
  5. Unique: Adds distinct value, not "yet another X"
  6. Established: Repository at least 1 month old

Acceptance Criteria

Your submission must meet ONE of the following criteria:

1. Industry Standard

  • The go-to tool that almost everyone uses for a specific use case
  • Examples: Requests, Flask, Pandas, NumPy
  • Limit: 1-3 tools per category

2. Rising Star

  • Rapid growth: 5,000+ GitHub stars in less than 2 years
  • Significant community buzz and adoption
  • Solving problems in new or better ways
  • Examples: FastAPI, Ruff, uv

3. Hidden Gem

  • Exceptional quality despite fewer stars (100-500 stars preferred; < 100 requires strong justification)
  • Solves niche problems elegantly
  • Strong recommendation from experienced developers
  • Must demonstrate real-world usage (not a project published last week)
  • Repository must be at least 6 months old with consistent activity
  • Must include compelling justification in PR description

Entry Format Reference

Standard Entry

- [project-name](https://github.com/owner/repo) - Description ending with period.

Standard Library Module

- [module](https://docs.python.org/3/library/module.html) - (Python standard library) Description.

Fork of Another Project

- [new-name](https://github.com/owner/new-name) - Description ([original-name](original-url) fork).

Entry with Related Awesome List

- [project](https://github.com/owner/project) - Description.
  - [awesome-project](https://github.com/someone/awesome-project)

Subcategory Format

- Subcategory Name
  - [project](url) - Description.

Adding a New Section

  1. Add section description in italics: *Libraries for doing X.*
  2. Add the section title to the Table of Contents
  3. Keep sections in alphabetical order

Review Process

PRs are reviewed by automated tools and maintainers:

  1. Format Check: Entry follows the correct format
  2. Category Check: Placed in the appropriate category/subcategory
  3. Duplicate Check: Not already listed or previously rejected
  4. Activity Check: Project shows recent activity
  5. Quality Check: Meets acceptance criteria

Search previous Pull Requests and Issues before submitting, as yours may be a duplicate.