|
1 | 1 | # Contributing |
2 | 2 |
|
3 | | -Your contributions are always welcome! |
4 | | - |
5 | | -## Guidelines |
6 | | - |
7 | | -* Add one link per Pull Request. |
8 | | - * Make sure the PR title is in the format of `Add project-name`. |
9 | | - * Write down the reason why the library is awesome. |
10 | | -* Add the link: `* [project-name](http://example.com/) - A short description ends with a period.` |
11 | | - * Keep descriptions concise and **short**. |
12 | | -* Add a section if needed. |
13 | | - * Add the section description. |
14 | | - * Add the section title to Table of Contents. |
15 | | -* Search previous Pull Requests or Issues before making a new one, as yours may be a duplicate. |
16 | | -* Don't mention `Python` in the description as it's implied. |
17 | | -* Check your spelling and grammar. |
18 | | -* Remove any trailing whitespace. |
19 | | - |
20 | | -Just a gentle reminder: **Try not to submit your own project. Instead, wait for someone finds it useful and submits it for you.** |
| 3 | +## Quick Checklist |
| 4 | + |
| 5 | +Before submitting a PR, verify: |
| 6 | + |
| 7 | +- [ ] One link per Pull Request |
| 8 | +- [ ] PR title format: `Add project-name` |
| 9 | +- [ ] Entry format: `* [project-name](url) - A short description ending with a period.` |
| 10 | +- [ ] Description is concise (one sentence) |
| 11 | +- [ ] Placed in the appropriate category/subcategory |
| 12 | +- [ ] No trailing whitespace |
| 13 | +- [ ] Spelling and grammar checked |
| 14 | + |
| 15 | +## Acceptance Criteria |
| 16 | + |
| 17 | +Your submission must meet **ONE** of the following criteria: |
| 18 | + |
| 19 | +### 1. Industry Standard |
| 20 | + |
| 21 | +- The go-to tool that almost everyone uses for a specific use case |
| 22 | +- Examples: Requests, Flask, Pandas, NumPy |
| 23 | +- Limit: 1-3 tools per category |
| 24 | + |
| 25 | +### 2. Rising Star |
| 26 | + |
| 27 | +- Rapid growth: 5,000+ GitHub stars in less than 2 years |
| 28 | +- Significant community buzz and adoption |
| 29 | +- Solving problems in new or better ways |
| 30 | +- Examples: FastAPI, Ruff, uv |
| 31 | + |
| 32 | +### 3. Hidden Gem |
| 33 | + |
| 34 | +- Exceptional quality despite fewer stars (may have <500 stars) |
| 35 | +- Solves niche problems elegantly |
| 36 | +- Strong recommendation from experienced developers |
| 37 | +- Must include compelling justification in PR description |
| 38 | + |
| 39 | +## Quality Requirements |
| 40 | + |
| 41 | +All submissions must satisfy **ALL** of these: |
| 42 | + |
| 43 | +1. **Python-first**: Primarily written in Python (>50% of codebase) |
| 44 | +2. **Active**: Commits within the last 12 months |
| 45 | +3. **Stable**: Production-ready, not alpha/beta/experimental |
| 46 | +4. **Documented**: Clear README with examples and use cases |
| 47 | +5. **Unique**: Adds distinct value, not "yet another X" |
| 48 | + |
| 49 | +## Entry Format Reference |
| 50 | + |
| 51 | +### Standard Entry |
| 52 | + |
| 53 | +```markdown |
| 54 | +- [project-name](https://github.com/owner/repo) - Description ending with period. |
| 55 | +``` |
| 56 | + |
| 57 | +### Standard Library Module |
| 58 | + |
| 59 | +```markdown |
| 60 | +- [module](https://docs.python.org/3/library/module.html) - (Python standard library) Description. |
| 61 | +``` |
| 62 | + |
| 63 | +### Fork of Another Project |
| 64 | + |
| 65 | +```markdown |
| 66 | +- [new-name](https://github.com/owner/new-name) - Description ([original-name](original-url) fork). |
| 67 | +``` |
| 68 | + |
| 69 | +### Entry with Related Awesome List |
| 70 | + |
| 71 | +```markdown |
| 72 | +- [project](https://github.com/owner/project) - Description. |
| 73 | + - [awesome-project](https://github.com/someone/awesome-project) |
| 74 | +``` |
| 75 | + |
| 76 | +### Subcategory Format |
| 77 | + |
| 78 | +```markdown |
| 79 | +- Subcategory Name |
| 80 | + - [project](url) - Description. |
| 81 | +``` |
| 82 | + |
| 83 | +## Adding a New Section |
| 84 | + |
| 85 | +If adding a new category: |
| 86 | + |
| 87 | +1. Add section description in italics: `*Libraries for doing X.*` |
| 88 | +2. Add the section title to the Table of Contents |
| 89 | +3. Keep sections in alphabetical order |
| 90 | + |
| 91 | +## PR Description Template |
| 92 | + |
| 93 | +Please include the following in your PR description: |
| 94 | + |
| 95 | +``` |
| 96 | +## Why This Project Is Awesome |
| 97 | +
|
| 98 | +[Explain which criterion it meets: Industry Standard / Rising Star / Hidden Gem] |
| 99 | +
|
| 100 | +## How It Differs |
| 101 | +
|
| 102 | +[If similar entries exist, explain what makes this one unique] |
| 103 | +``` |
| 104 | + |
| 105 | +## Review Process |
| 106 | + |
| 107 | +PRs are reviewed by automated tools and maintainers: |
| 108 | + |
| 109 | +1. **Format Check**: Entry follows the correct format |
| 110 | +2. **Category Check**: Placed in the appropriate category/subcategory |
| 111 | +3. **Duplicate Check**: Not already listed or previously rejected |
| 112 | +4. **Activity Check**: Project shows recent activity |
| 113 | +5. **Quality Check**: Meets acceptance criteria |
| 114 | + |
| 115 | +Search previous Pull Requests and Issues before submitting, as yours may be a duplicate. |
| 116 | + |
| 117 | +## Automatic Rejection |
| 118 | + |
| 119 | +PRs will be **closed** if: |
| 120 | + |
| 121 | +- Add more than one project per PR |
| 122 | +- Duplicate of existing entry |
| 123 | +- Placed under an inappropriate category |
| 124 | +- Project is archived or abandoned (no commits in 12+ months) |
| 125 | +- No documentation or unclear use case |
| 126 | +- Less than 100 GitHub stars AND not justified as a hidden gem |
0 commit comments