awesome-python/CONTRIBUTING.md
Vinta Chen a5146453f9
docs: remove manual alphabetical sorting requirement
Alphabetical ordering will be handled by automation (sort.py in CI),
removing this manual burden from contributors. Updated PR template
with structured checklist aligned to acceptance criteria.

🤖 Generated with Claude Code (https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 12:07:11 +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.
  • 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.