mirror of
https://github.com/vinta/awesome-python.git
synced 2026-03-24 00:39:47 +08:00
Restructures the top-level ToC groups for better logical cohesion: - Split 'Web & API' into 'Web' (frameworks, servers, CMS) and 'HTTP & Scraping' (clients, scraping, URL, email) - Move 'Database & Storage' earlier in the ToC, before 'Data & Science' - Merge 'Web Content Extraction' and 'Web Crawling' into a single 'Web Scraping' section - Rename 'Content & Media' to 'Text & Documents' and 'Media' (split) - Rename 'System & Runtime' to 'Python Language' and 'Python Toolchain' - Rename 'Security & Auth' to 'Security'; move Authentication to Web group - Rename 'Development Tools' to 'Developer Tools', 'DevOps & Infrastructure' to 'DevOps' - Reorder sections within groups to reflect learning progression (e.g., Deep Learning before Machine Learning in AI & ML) - Move Hardware and Microsoft Windows to Miscellaneous group - Add s3cmd to DevOps and youtube-dl to Command-line Tools - Update CONTRIBUTING.md example group names to match new labels Co-Authored-By: Claude <noreply@anthropic.com>
3.5 KiB
3.5 KiB
Contributing
Quality Requirements
All submissions must satisfy ALL of these:
- Python-first: Primarily written in Python (>50% of codebase)
- Active: Commits within the last 12 months
- Stable: Production-ready, not alpha/beta/experimental
- Documented: Clear README with examples and use cases
- Unique: Adds distinct value, not "yet another X"
- 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
Use GitHub repository URLs whenever possible. Projects linked to a GitHub repo are ranked higher on awesome-python.com.
Naming Convention
Use the PyPI package name as the display name so developers can copy it directly to pip install. Check the canonical name at https://pypi.org/pypi/{package}/json. If the project is not on PyPI, use the GitHub repository name instead.
Standard Entry
- [pypi-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
- Add section description in italics:
*Libraries for doing X.* - Add the section under the appropriate thematic group (e.g., AI & ML, Web, Data & Science)
- Add the section title to the Table of Contents under its group
- Keep entries in alphabetical order within each category
Review Process
PRs are reviewed by automated tools and maintainers:
- Format Check: Entry follows the correct format
- Category Check: Placed in the appropriate category/subcategory
- Duplicate Check: Not already listed or previously rejected
- Activity Check: Project shows recent activity
- Quality Check: Meets acceptance criteria
Search previous Pull Requests and Issues before submitting, as yours may be a duplicate.
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