]> git.ipfire.org Git - thirdparty/fastapi/sqlmodel.git/commitdiff
๐Ÿ“ Update help SQLModel docs (#548)
authorSebastiรกn Ramรญrez <tiangolo@gmail.com>
Fri, 3 Feb 2023 17:52:25 +0000 (18:52 +0100)
committerGitHub <noreply@github.com>
Fri, 3 Feb 2023 17:52:25 +0000 (18:52 +0100)
docs/help.md

index 6cde4c6142d42919641523f29f17f2199a11cca5..d0d2308de294e19da2380c1fe978bc18c7356951 100644 (file)
@@ -58,26 +58,125 @@ You can:
 
 I love to hear about how **SQLModel** is being used, what you have liked in it, in which project/company are you using it, etc.
 
-## Help others with issues in GitHub
+## Help others with questions in GitHub
 
-You can see <a href="https://github.com/tiangolo/sqlmodel/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 try and help others with their questions in:
+
+* <a href="https://github.com/tiangolo/sqlmodel/discussions/categories/questions?discussions_q=category%3AQuestions+is%3Aunanswered" class="external-link" target="_blank">GitHub Discussions</a>
+* <a href="https://github.com/tiangolo/sqlmodel/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Aquestion+-label%3Aanswered+" class="external-link" target="_blank">GitHub Issues</a>
+
+In many cases you might already know the answer for those questions. ๐Ÿค“
+
+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 **SQLModel** 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 questions (in discussions or 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 would have solved their problem, congrats, **you're a hero**! ๐Ÿฆธ
+
+* Now, if that solved their problem, you can ask them to:
+
+    * In GitHub Discussions: mark the comment as the **answer**.
+    * In GitHub Issues: **close** the issue**.
 
 ## Watch the GitHub repository
 
 You can "watch" SQLModel in GitHub (clicking the "watch" button at the top right): <a href="https://github.com/tiangolo/sqlmodel" class="external-link" target="_blank">https://github.com/tiangolo/sqlmodel</a>. ๐Ÿ‘€
 
-If you select "Watching" instead of "Releases only" you will receive notifications when someone creates a new issue.
+If you select "Watching" instead of "Releases only" you will receive notifications when someone creates a new issue or question. You can also specify that you only want to be notified about new issues, or discussions, or PRs, etc.
 
-Then you can try and help them solve those issues.
+Then you can try and help them solve those questions.
 
-## Create issues
+## Ask Questions
 
-You can <a href="https://github.com/tiangolo/sqlmodel/issues/new/choose" class="external-link" target="_blank">create a new issue</a> in the GitHub repository, for example to:
+You can <a href="https://github.com/tiangolo/sqlmodel/discussions/new?category=questions" class="external-link" target="_blank">create a new question</a> in the GitHub repository, for example to:
 
 * Ask a **question** or ask about a **problem**.
 * Suggest a new **feature**.
 
-**Note**: if you create an issue, then I'm going to ask you to also help others. ๐Ÿ˜‰
+**Note**: if you do it, 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 your 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 a GitHub Discussion or 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
 
@@ -86,7 +185,44 @@ You can [contribute](contributing.md){.internal-link target=_blank} to the sourc
 * To fix a typo you found on the documentation.
 * 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 SQLModel
+
+Help me maintain **SQLModel**! ๐Ÿค“
+
+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 questions in GitHub](#help-others-with-questions-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 SQLModel.
+
+If you can help me with that, **you are helping me maintain SQLModel** and making sure it keeps **advancing faster and better**. ๐Ÿš€
+
+## Join the chat
+
+Join the ๐Ÿ‘ฅ <a href="https://discord.gg/VQjSZaeJmf" class="external-link" target="_blank">FastAPI and Friends Discord chat server</a> ๐Ÿ‘ฅ and hang out with others in the community. There's a `#sqlmodel` channel.
+
+!!! tip
+    For questions, ask them in <a href="https://github.com/tiangolo/sqlmodel/discussions/new?category=questions" class="external-link" target="_blank">GitHub Discussions</a>, there's a much better chance you will receive help there.
+
+    Use the chat only for other general conversations.
+
+### Don't use the chat for questions
+
+Have in mind that as chats allow more "free conversation", it's easy to ask questions that are too general and more difficult to answer, so, you might not receive answers.
+
+In GitHub, the template will guide you to write the right question so that you can more easily get a good answer, or even solve the problem yourself even before asking. And in GitHub I can make sure I always answer everything, even if it takes some time. I can't personally do that with the chat. ๐Ÿ˜…
+
+Conversations in the chat are also not as easily searchable as in GitHub, so questions and answers might get lost in the conversation.
+
+On the other side, there are thousands of users in the chat, so there's a high chance you'll find someone to talk to there, almost all the time. ๐Ÿ˜„
 
 ## Sponsor the author