]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
📝 Update Help FastAPI: Help Maintain FastAPI (#5632)
authorSebastián Ramírez <tiangolo@gmail.com>
Sun, 13 Nov 2022 19:34:09 +0000 (20:34 +0100)
committerGitHub <noreply@github.com>
Sun, 13 Nov 2022 19:34:09 +0000 (20:34 +0100)
docs/en/docs/help-fastapi.md

index 8d8d708ed902e94cb8e376f879ed5dc43af45221..047462c41316dc82de27fadabf6d59762db6cbb6 100644 (file)
@@ -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. 🤗
+
+---
+
+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'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