awesome-python/CONTRIBUTING.md
Vinta Chen a652ecb633
docs: restructure CONTRIBUTING.md with detailed acceptance criteria
Expand contributing guidelines with:
- Quick checklist for submissions
- Three-tier acceptance criteria (Industry Standard, Rising Star, Hidden Gem)
- Quality requirements and automatic rejection rules
- Entry format reference with examples
- PR description template

This provides clear, actionable guidance for contributors and reduces ambiguity in the review process.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 11:12:03 +08:00

3.4 KiB

Contributing

Your contributions are always welcome!

Quick Checklist

Before submitting a PR, verify:

  • One link per Pull Request
  • PR title format: Add project-name
  • Entry format: * [project-name](url) - A short description ending with a period.
  • Alphabetical order maintained (run python sort.py)
  • No mention of "Python" in description (it's implied)
  • Description is concise (one sentence)
  • No trailing whitespace
  • Spelling and grammar checked

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 (may have <500 stars)
  • Solves niche problems elegantly
  • Strong recommendation from experienced developers
  • Must include compelling justification in PR description

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"

Automatic Rejection

PRs will be closed without review if:

  • Project is archived or abandoned (no commits in 12+ months)
  • Duplicate of existing entry without clear advantages
  • No documentation or unclear use case
  • Alpha/beta/experimental status
  • Self-promotion (wait for someone else to find it useful and submit)
  • Less than 500 GitHub stars AND not justified as a hidden gem

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

If adding a new category:

  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

PR Description Template

Please include the following in your PR description:

## Why This Project Is Awesome

[Explain which criterion it meets: Industry Standard / Rising Star / Hidden Gem]

## How It Differs

[If similar entries exist, explain what makes this one unique]

Review Process

PRs are reviewed by automated tools and maintainers:

  1. Format Check: Entry follows the correct format
  2. Duplicate Check: Not already listed or previously rejected
  3. Activity Check: Project shows recent activity
  4. Quality Check: Meets acceptance criteria

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