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
📝 Update Help FastAPI: Help Maintain FastAPI #5632
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -47,7 +47,7 @@ You can: | |||||
* <a href="https://github.com/tiangolo" class="external-link" target="_blank">Follow me on **GitHub**</a>. | ||||||
* See other Open Source projects I have created that could help you. | ||||||
* Follow me to see when I create a new Open Source project. | ||||||
* <a href="https://twitter.com/tiangolo" class="external-link" target="_blank">Follow me on **Twitter**</a>. | ||||||
* <a href="https://twitter.com/tiangolo" class="external-link" target="_blank">Follow me on **Twitter**</a> or <a href="https://fosstodon.org/@tiangolo" class="external-link" target="_blank">Mastodon</a>. | ||||||
* Tell me how you use FastAPI (I love to hear that). | ||||||
* Hear when I make announcements or release new tools. | ||||||
* You can also <a href="https://twitter.com/fastapi" class="external-link" target="_blank">follow @fastapi on Twitter</a> (a separate account). | ||||||
|
@@ -67,13 +67,54 @@ I love to hear about how **FastAPI** is being used, what you have liked in it, i | |||||
|
||||||
* <a href="https://www.slant.co/options/34241/~fastapi-review" class="external-link" target="_blank">Vote for **FastAPI** in Slant</a>. | ||||||
* <a href="https://alternativeto.net/software/fastapi/" class="external-link" target="_blank">Vote for **FastAPI** in AlternativeTo</a>. | ||||||
* <a href="https://stackshare.io/pypi-fastapi" class="external-link" target="_blank">Say you use **FastAPI** on StackShare</a>. | ||||||
|
||||||
## Help others with issues in GitHub | ||||||
|
||||||
You can see <a href="https://github.com/tiangolo/fastapi/issues" class="external-link" target="_blank">existing issues</a> and try and help others, most of the times they are questions that you might already know the answer for. 🤓 | ||||||
You can see <a href="https://github.com/tiangolo/fastapi/issues" class="external-link" target="_blank">existing issues</a> and try and help others, most of the times those issues are questions that you might already know the answer for. 🤓 | ||||||
|
||||||
If you are helping a lot of people with issues, you might become an official [FastAPI Expert](fastapi-people.md#experts){.internal-link target=_blank}. 🎉 | ||||||
|
||||||
Just remember, the most important point is: try to be kind. People come with their frustrations and in many cases don't ask in the best way, but try as best as you can to be kind. 🤗 | ||||||
|
||||||
The idea is for the **FastAPI** community to be kind and welcoming. At the same time, don't accept bullying or disrespectful behavior towards others. We have to take care of each other. | ||||||
|
||||||
--- | ||||||
|
||||||
Here's how to help others with issues: | ||||||
|
||||||
### Understand the question | ||||||
|
||||||
* Check if you can understand what is the **purpose** and use case of the person asking. | ||||||
|
||||||
* Then check if the question (the vast majority are questions) is **clear**. | ||||||
|
||||||
* In many cases the question asked is about an imaginary solution from the user, but there might be a **better** one. If you can understand the problem and use case better, you might be able to suggest a better **alternative solution**. | ||||||
|
||||||
* If you can't understand the question, ask for more **details**. | ||||||
|
||||||
### Reproduce the problem | ||||||
|
||||||
For most of the cases and most of the questions there's something related to the person's **original code**. | ||||||
|
||||||
In many cases they will only copy a fragment of the code, but that's not enough to **reproduce the problem**. | ||||||
|
||||||
* You can ask them to provide a <a href="https://stackoverflow.com/help/minimal-reproducible-example" class="external-link" target="_blank">minimal, reproducible, example</a>, that you can **copy-paste** and run locally to see the same error or behavior they are seeing, or to understand their use case better. | ||||||
|
||||||
* If you are feeling too generous, you can try to **create an example** like that yourself, just based on the description of the problem. Just have in mind that this might take a lot of time and it might be better to ask them to clarify the problem first. | ||||||
|
||||||
### Suggest solutions | ||||||
|
||||||
* After being able to understand the question, you can give them a possible **answer**. | ||||||
|
||||||
* In many cases, it's better to understand their **underlying problem or use case**, because there might be a better way to solve it than what they are trying to do. | ||||||
|
||||||
### Ask to close | ||||||
|
||||||
If they reply, there's a high chance you will have solved their problem, congrats, **you're a hero**! 🦸 | ||||||
|
||||||
* Now you can ask them, if that solved their problem, to **close the issue**. | ||||||
|
||||||
## Watch the GitHub repository | ||||||
|
||||||
You can "watch" FastAPI in GitHub (clicking the "watch" button at the top right): <a href="https://github.com/tiangolo/fastapi" class="external-link" target="_blank">https://github.com/tiangolo/fastapi</a>. 👀 | ||||||
|
@@ -91,6 +132,57 @@ You can <a href="https://github.com/tiangolo/fastapi/issues/new/choose" class="e | |||||
|
||||||
**Note**: if you create an issue, then I'm going to ask you to also help others. 😉 | ||||||
|
||||||
## Review Pull Requests | ||||||
|
||||||
You can help me review pull requests from others. | ||||||
|
||||||
Again, please try as best to be kind. 🤗 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Felt it sounds better 😄 |
||||||
|
||||||
--- | ||||||
|
||||||
Here's what to have in mind and how to review a pull request: | ||||||
|
||||||
### Understand the problem | ||||||
|
||||||
* First, make sure you **understand the problem** that the pull request is trying to solve. It might have a longer discussion in an issue. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
* There's also a good chance that the pull request is not actually needed because the problem can be solved in a **different way**. Then you can suggest or ask about that. | ||||||
|
||||||
### Don't worry about style | ||||||
|
||||||
* Don't worry too much about things like commit message styles, I will squash and merge customizing the commit manually. | ||||||
|
||||||
* Also don't worry about style rules, there are already automatized tools checking that. | ||||||
|
||||||
And if there's any other style or consistency need, I'll ask directly for that, or I'll add commits on top with the needed changes. | ||||||
|
||||||
### Check the code | ||||||
|
||||||
* Check and read the code, see if it makes sense, **run it locally** and see if it actually solves the problem. | ||||||
|
||||||
* Then **comment** saying that you did that, that's how I will know you really checked it. | ||||||
|
||||||
!!! info | ||||||
Unfortunately, I can't simply trust PRs that just have several approvals. | ||||||
|
||||||
Several times it has happened that there are PRs with 3, 5 or more approvals, probably because the description is appealing, but when I check the PRs, they are actually broken, have a bug, or don't solve the problem they claim to solve. 😅 | ||||||
|
||||||
So, it's really important that you actually read and run the code, and let me know in the comments that you did. 🤓 | ||||||
|
||||||
* If the PR can be simplified in a way, you can ask for that, but there's no need to be too picky, there might be a lot of subjective points of view (and I will have my own as well 🙈), so it's better if you can focus on the fundamental things. | ||||||
|
||||||
### Tests | ||||||
|
||||||
* Help me check that the PR has **tests**. | ||||||
|
||||||
* Check that the tests **fail** before the PR. 🚨 | ||||||
|
||||||
* Then check that the tests **pass** after the PR. ✅ | ||||||
|
||||||
* Many PRs don't have tests, you can **remind** them to add tests, or you can even **suggest** some tests yourself. That's one of the things that consume most time and you can help a lot with that. | ||||||
|
||||||
* Then also comment what you tried, that way I'll know that you checked it. 🤓 | ||||||
|
||||||
## Create a Pull Request | ||||||
|
||||||
You can [contribute](contributing.md){.internal-link target=_blank} to the source code with Pull Requests, for example: | ||||||
|
@@ -102,7 +194,25 @@ You can [contribute](contributing.md){.internal-link target=_blank} to the sourc | |||||
* You can also help to review the translations created by others. | ||||||
* To propose new documentation sections. | ||||||
* To fix an existing issue/bug. | ||||||
* Make sure to add tests. | ||||||
* To add a new feature. | ||||||
* Make sure to add tests. | ||||||
* Make sure to add documentation if it's relevant. | ||||||
|
||||||
## Help Maintain FastAPI | ||||||
|
||||||
Help me maintain **FastAPI**! 🤓 | ||||||
|
||||||
There's a lot of work to do, and for most of it, **YOU** can do it. | ||||||
|
||||||
The main tasks that you can do right now are: | ||||||
|
||||||
* [Help others with issues in GitHub](#help-others-with-issues-in-github){.internal-link target=_blank} (see the section above). | ||||||
* [Review Pull Requests](#review-pull-requests){.internal-link target=_blank} (see the section above). | ||||||
|
||||||
Those two tasks are what **consume time the most**. That's the main work of maintaining FastAPI. | ||||||
|
||||||
If you can help me with that, **you are helping me maintain FastAPI** and making sure it keeps **advancing faster and better**. 🚀 | ||||||
|
||||||
## Join the chat | ||||||
|
||||||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.