Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve the list guidelines and pull request guidelines (pull request template) #2984

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
254 changes: 254 additions & 0 deletions awesome-list-guidelines.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,254 @@
<!-- omit from toc -->
# Awesome List Guidelines

> [!NOTE]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are 4 notes and 1 tip in this section. Please consider adding moving some of the content to generic text for ease of reading.

> Read the [Awesome Manifesto](awesome.md) before you create a new list.

> [!NOTE]
> You can use the awesome badge on any awesome list, which can be not only a public list but also a private one. But if you want the list to be included in the [Awesome][repo] list, it must meet the requirements in this file.

> [!NOTE]
> Do not create blockchain-related lists.
>
> Do not create duplicates of any existing lists in the [Awesome][repo] list.
>
> Search the subject of a new list in the [Awesome][repo] list before creating it. If a list about this subject already exists, contribute to it instead of making your own.
>
> You can make a comment on [Issue #2242][incubating lists], which is dedicated for incubating lists to expose themselves to the community, in case you keep working on a duplicate list or making redunant efforts.

<!--! What do you mean by "Non-generated Markdown file in a GitHub repo."? Maybe I didn't get your point here. -->
> [!NOTE]
> Do not use generated Markdown files in the list repository.

<!--! Is it the function of Yeoman generator? I didn't understand the readme of Yeoman generator. -->
> [!TIP]
> You can use [Yeoman generator](https://github.com/dar5hak/generator-awesome-list) to create a new awesome list automatically.

---

<!-- omit from toc -->
## Contents

- [Repository settings](#repository-settings)
- [Repository name](#repository-name)
- [Default branch](#default-branch)
- [Topics](#topics)
- [List profile](#list-profile)
- [List title](#list-title)
- [Awesome badge](#awesome-badge)
- [Short description](#short-description)
- [Logo and header image](#logo-and-header-image)
- [Table of contents](#table-of-contents)
- [List body](#list-body)
- [Content range](#content-range)
- [List items](#list-items)
- [Footnotes](#footnotes)
- [Licence](#licence)
- [Contributing](#contributing)
- [Submit the list to Awesome](#submit-the-list-to-awesome)

---

## Repository settings

### Repository name

Use lowercase slug format for the repository name of the list:

```
awesome-name-of-list
```

Examples:

- ✅ `awesome-swift`
- ✅ `awesome-web-typography`
- ❌ `awesome-Swift`
- ❌ `AwesomeWebTypography`

### Default branch

Set the default branch name of the repository to [`main`, not `master`](https://www.zdnet.com/article/github-to-replace-master-with-alternative-term-to-avoid-slavery-references/).

### Topics

Add `awesome-list` and `awesome` as [GitHub topics](https://help.github.com/articles/about-topics) to the repository. If possible, add more relevant topics.

## List profile

### List title

Use [title case] for the list title (heading1 in readme):

```markdown
# Awesome Name of List
```

Examples:

- ✅ `# Awesome Swift`
- ✅ `# Awesome Web Typography`
- ❌ `# awesome-swift`
- ❌ `# AwesomeSwift`

### Awesome badge

Add the [awesome badge] to the right of the list title. If the list has a header image aligned to center, optionally align the [awesome badge] to center.

Link the [awesome badge] back to the [Awesome][repo] list.

> [!NOTE]
> Do not add a CI badge (e.g. GitHub Actions) in the list title. You can still use a CI for linting, but the badge has no value in the readme.
>
> Do not add links like `Inspired by awesome-foo` or `Inspired by the Awesome project` at the top of the readme. The [awesome badge] is enough.

### Short description

Write a short description for the list, following the list title.

Make sure that the list focuses on one certain scope only. If the list has related awesome lists, link to them.

[Exmaples][Awesome Quantified Self]:

- ✅ `Mobile operating system for Apple phones and tablets.`
- ✅ `Prototyping interactive UI designs.`
- ❌ `Resources and tools for iOS development.`
- ❌ `Awesome Framer packages and tools.`

### Logo and header image

Whenever possible, add a logo or a header image for the list. The image must meet the following requirements:

- If the image is set to full width, align it to center. Otherwise, place it at the top-right of the readme (see the [example][Awesome Electron]).
- Link the image to the website of the list or other relevant website.
- Use a high-DPI image as the logo or header image. Set it to a maximum of half the width of the original image.
- Do not repeat the text of the list title in the image. If the two have the same texts, use the image as the list title (the image follows the symbol `#` and a space in Markdown, or is wraped by the tags of `<h1>` in HTML).

## Table of contents

Insert a table of contents in the list. The table of contents must meet the following requirements:

- Use `Contents` as the heading (heading2) of the table of contents , not `Table of Contents`.
- The table of contents must be the first section of the list.
- The table of contents must be a maximum of two-level list (see the [example][Syntax of Nested Lists]).
- Exclude `Contributing` and `Footnotes` from the table of contents.

## List body

### Content range

Add actual awesome stuff to the list only. Read the [Awesome manifesto](awesome.md) to know what is awesome.

Do not add the following stuff to the list:

- Unmaintained repositoris
- Archived repositoris
- Deprecated documents
- Missing documents

> [!TIP]
> If you really need to add such stuff to the list, put them in a separate Markdown file.

### List items

> [!NOTE]
> Make sure that the list is grammatically correct, typo-free and has no Markdown formatting errors.

Write a description for each item in the list to tell the readers why it is on the list and how they will benefit from it, unless the item name expresses these points clearly by itself.

Format all the items in the list consistently:

- Separate each item and its desctiption by a dash.
- Start each description with an uppercase character and end it with a period.
- Use correct and consistent names. For example, use `Node.js`, not `NodeJS` or `node.js`.
- Do not use [hard-wrapping](https://stackoverflow.com/questions/319925/difference-between-hard-wrap-and-soft-wrap) in items.

Example:

```markdown
- [AVA](…) - JavaScript test runner.
```
<!--! The separator in the example is a hyphen, not a dash. So what should it be?-->

### Footnotes

Put all subordinate information into the `Footnotes` at the bottom of the readme, such as:

- Copyright notice
- Hyperlinks to sources
- Pointers to expansive content.
<!--! What do "Hyperlinks to sources" and "Pointers to expansive content" mean? -->

## Licence

> [!NOTE]
> We strongly recommend the [CC0 license], but any [Creative Commons license] will work.
>
> Code licenses like MIT, BSD, Apache, GPL, etc, are not acceptable. Neither are WTFPL and [Unlicense].

> [!NOTE]
> Do not add the license name, text, or a `Licence` section to the readme. GitHub already shows the license name and link to the license file at the top of the repository.

> [!TIP]
> You can quickly add the [CC0 license] to your repository by going to this URL (replace `<user>` and `<repo>` with your username and repository name accordingly):
>
> ```
> https://github.com/<user>/<repo>/community/license/new?branch=main&template=cc0-1.0
> ```

Adopt an appropriate license for the list.

Create a file named `license.md` or `LICENSE.md` in the repository root with the license text.

To verify that you've read all the guidelines, please comment on your pull request with just the word `unicorn`. 😇

## Contributing

Create a file named `contributing.md` or `CONTRIBUTING.md` in the repository root.

You can optionally create a `Contributing` section at the top or bottom of readme, linking to the contributing file.

## Submit the list to [Awesome][repo]

> [!NOTE]
> You can submit the list to the [Awesome][repo] list at least **30 days** after the birthday of the list. Give it a chance to mature.
>
> The birthday of the list is the day when it received the first real commit or when it was open-sourced.

1. Make sure that the list is compliant with the [awesome list guidelines](#awesome-list-guidelines).
2. Run the [awesome-lint] on the list.
- If the [awesome-lint] reports issues, fix them.
- If there are false-positives or things that can not be fixed, report it by [submitting an issue].
3. Comply the [pull request guidelines](pull-request-guidelines.md) to submit a pull request for the list to be added in [Awesome][repo] list.

---

Thanks for being awesome! 😎

---

<!-- link definition -->

[repo]: https://github.com/sindresorhus/awesome

[awesome badge]: https://github.com/sindresorhus/awesome/blob/main/awesome.md#awesome-badge

[incubating lists]: https://github.com/sindresorhus/awesome/issues/2242

[title case]: https://capitalizemytitle.com/

[Awesome Quantified Self]: https://github.com/willempienaar/awesome-quantified-self

[Awesome Electron]: https://github.com/sindresorhus/awesome-electron

[Syntax of Nested Lists]: https://commonmark.org/help/tutorial/10-nestedLists.html

[CC0 license]: https://creativecommons.org/publicdomain/zero/1.0/

[Creative Commons license]: https://creativecommons.org/choose/

[Unlicense]: https://unlicense.org

[awesome-lint]: https://github.com/sindresorhus/awesome-lint

[submitting an issue]: https://github.com/sindresorhus/awesome-lint/issues/new
9 changes: 0 additions & 9 deletions create-list.md

This file was deleted.

130 changes: 130 additions & 0 deletions pull-request-guidelines.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
<!-- omit from toc -->
# Pull Request Guidelines

Congratulations on creating an Awesome list! 🎉

> [!NOTE]
> Make sure that your list is compliant with the [awesome list guidelines](awesome-list-guidelines.md), before you send a pull request to the [Awesome](repo) list.

> [!NOTE]
> Make sure that you have put your best effort to your list. Otherwise, your pull request will be immediately closed.

---

<!-- omit from toc -->
## Contents

- [Add your list to Awesome](#add-your-list-to-awesome)
- [Create a pull request](#create-a-pull-request)
- [Pull request title](#pull-request-title)
- [Pull request description template](#pull-request-description-template)
- [Homework](#homework)
- [Submit your pull request](#submit-your-pull-request)

---

## Add your list to [Awesome][repo]

> [!TIP]
> If you don't know how to edit contents on Github, refer to [Contribution Guidelines](contributing.md#adding-something-to-an-awesome-list).

Follow these steps to add your list to the [Awesome][repo] list:

1. Add a new item to the bottom of the category that your list belongs to.
2. Type your list title in title case.
3. Link your list title to its repository by a URL ending with `#readme`.
4. Write a short description for your list.

- Descripe the content in your list objectively in the short description, instead of the list itself.
- Do not use a tagline or marketing blurb as the short description.
- Do not contain the list title in the short description.
- The first character of the short description must be uppercase.
- The short description must end with a period.

5. Separate the list title and the short description with a dash.


Exmaples:

- ✅ `- [iOS](…) - Mobile operating system for Apple phones and tablets.`
- ✅ `- [Framer](…) - Prototyping interactive UI designs.`
- ❌ `- [iOS](…) - Resources and tools for iOS development.`
- ❌ `- [Framer](…)`
- ❌ `- [Framer](…) - prototyping interactive UI designs`

Source code example:

```markdown
- [Software Architecture](https://github.com/simskij/awesome-software-architecture#readme) - The discipline of designing and building software.
```

## Create a pull request

> [!NOTE]
> Do not submit a pull request in draft status. If you want to get feedback from people, make a comment on [Issue #2242][incubating lists]. Refer to the [awesome list guidelines](list-guidelines.md) for more details.

### Pull request title

> [!NOTE]
> Do not include the word `Awesome` in the pull request title.

Type a [pull request] title in following format:

```
Add Name of List
```

Examples:

- ✅ `Add Swift`
- ✅ `Add Software Architecture`
- ❌ `Update readme.md`
- ❌ `Add Awesome Swift`
- ❌ `Add swift`
- ❌ `add Swift`
- ❌ `Adding Swift`
- ❌ `Added Swift`

### Pull request description template

[Insert the URL of your list here]

[Explain what your list is about and why it should be included here]

[Insert the pull requests you reviewed in [Homework](#homework) here]

> [!IMPORTANT]
> By submitting this pull request, I confirm I've read and complied with the awesome list guidelines and the pull request guidelines for awesome lists. 🖖

## Homework

In order to help the [Awesome][repo] list self-sustaining, please complete the homework before you submit the pull request:

Review at least two other [pull request]s before you open a pull request to add your list in the [Awesome][repo] list. You can make comments at the following aspects:

- Prioritize unreviewed pull requests.
- Make comments on reviewed pull requests.

> [!NOTE]
> You must point out mistakes or improvement suggestions in your comments.
>
> A comment like "looks good" or "approved" does not count.
>
> A comment on lint violation is allowed, but it does not count as a review.

> [!TIP]
> Look at previous pull request reviews for inspiration.

## Submit your pull request

1. Check your list and your pull request again to make sure they are compliant with the guidelines.
2. Submit your pull request.

<!-- link definition -->

[repo]: https://github.com/sindresorhus/awesome

[incubating lists]: https://github.com/sindresorhus/awesome/issues/2242

[pull request]: https://github.com/sindresorhus/awesome/pulls?q=is%3Apr+is%3Aopen

Loading