Skip to content

Commit 5c9a3b3

Browse files
authored
📝 Update help SQLModel docs (#548)
1 parent dc44d2e commit 5c9a3b3

1 file changed

Lines changed: 143 additions & 7 deletions

File tree

docs/help.md

Lines changed: 143 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,26 +58,125 @@ You can:
5858

5959
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.
6060

61-
## Help others with issues in GitHub
61+
## Help others with questions in GitHub
6262

63-
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. 🤓
63+
You can try and help others with their questions in:
64+
65+
* <a href="https://github.com/tiangolo/sqlmodel/discussions/categories/questions?discussions_q=category%3AQuestions+is%3Aunanswered" class="external-link" target="_blank">GitHub Discussions</a>
66+
* <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>
67+
68+
In many cases you might already know the answer for those questions. 🤓
69+
70+
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. 🤗
71+
72+
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.
73+
74+
---
75+
76+
Here's how to help others with questions (in discussions or issues):
77+
78+
### Understand the question
79+
80+
* Check if you can understand what is the **purpose** and use case of the person asking.
81+
82+
* Then check if the question (the vast majority are questions) is **clear**.
83+
84+
* 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**.
85+
86+
* If you can't understand the question, ask for more **details**.
87+
88+
### Reproduce the problem
89+
90+
For most of the cases and most of the questions there's something related to the person's **original code**.
91+
92+
In many cases they will only copy a fragment of the code, but that's not enough to **reproduce the problem**.
93+
94+
* 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.
95+
96+
* 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.
97+
98+
### Suggest solutions
99+
100+
* After being able to understand the question, you can give them a possible **answer**.
101+
102+
* 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.
103+
104+
### Ask to close
105+
106+
If they reply, there's a high chance you would have solved their problem, congrats, **you're a hero**! 🦸
107+
108+
* Now, if that solved their problem, you can ask them to:
109+
110+
* In GitHub Discussions: mark the comment as the **answer**.
111+
* In GitHub Issues: **close** the issue**.
64112

65113
## Watch the GitHub repository
66114

67115
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>. 👀
68116

69-
If you select "Watching" instead of "Releases only" you will receive notifications when someone creates a new issue.
117+
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.
70118

71-
Then you can try and help them solve those issues.
119+
Then you can try and help them solve those questions.
72120

73-
## Create issues
121+
## Ask Questions
74122

75-
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:
123+
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:
76124

77125
* Ask a **question** or ask about a **problem**.
78126
* Suggest a new **feature**.
79127

80-
**Note**: if you create an issue, then I'm going to ask you to also help others. 😉
128+
**Note**: if you do it, then I'm going to ask you to also help others. 😉
129+
130+
## Review Pull Requests
131+
132+
You can help me review pull requests from others.
133+
134+
Again, please try your best to be kind. 🤗
135+
136+
---
137+
138+
Here's what to have in mind and how to review a pull request:
139+
140+
### Understand the problem
141+
142+
* 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.
143+
144+
* 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.
145+
146+
### Don't worry about style
147+
148+
* Don't worry too much about things like commit message styles, I will squash and merge customizing the commit manually.
149+
150+
* Also don't worry about style rules, there are already automatized tools checking that.
151+
152+
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.
153+
154+
### Check the code
155+
156+
* Check and read the code, see if it makes sense, **run it locally** and see if it actually solves the problem.
157+
158+
* Then **comment** saying that you did that, that's how I will know you really checked it.
159+
160+
!!! info
161+
Unfortunately, I can't simply trust PRs that just have several approvals.
162+
163+
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. 😅
164+
165+
So, it's really important that you actually read and run the code, and let me know in the comments that you did. 🤓
166+
167+
* 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.
168+
169+
### Tests
170+
171+
* Help me check that the PR has **tests**.
172+
173+
* Check that the tests **fail** before the PR. 🚨
174+
175+
* Then check that the tests **pass** after the PR. ✅
176+
177+
* 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.
178+
179+
* Then also comment what you tried, that way I'll know that you checked it. 🤓
81180

82181
## Create a Pull Request
83182

@@ -86,7 +185,44 @@ You can [contribute](contributing.md){.internal-link target=_blank} to the sourc
86185
* To fix a typo you found on the documentation.
87186
* To propose new documentation sections.
88187
* To fix an existing issue/bug.
188+
* Make sure to add tests.
89189
* To add a new feature.
190+
* Make sure to add tests.
191+
* Make sure to add documentation if it's relevant.
192+
193+
## Help Maintain SQLModel
194+
195+
Help me maintain **SQLModel**! 🤓
196+
197+
There's a lot of work to do, and for most of it, **YOU** can do it.
198+
199+
The main tasks that you can do right now are:
200+
201+
* [Help others with questions in GitHub](#help-others-with-questions-in-github){.internal-link target=_blank} (see the section above).
202+
* [Review Pull Requests](#review-pull-requests){.internal-link target=_blank} (see the section above).
203+
204+
Those two tasks are what **consume time the most**. That's the main work of maintaining SQLModel.
205+
206+
If you can help me with that, **you are helping me maintain SQLModel** and making sure it keeps **advancing faster and better**. 🚀
207+
208+
## Join the chat
209+
210+
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.
211+
212+
!!! tip
213+
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.
214+
215+
Use the chat only for other general conversations.
216+
217+
### Don't use the chat for questions
218+
219+
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.
220+
221+
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. 😅
222+
223+
Conversations in the chat are also not as easily searchable as in GitHub, so questions and answers might get lost in the conversation.
224+
225+
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. 😄
90226

91227
## Sponsor the author
92228

0 commit comments

Comments
 (0)