Skip to content

Commit 186cf24

Browse files
committed
Added snippets to the auto-pr-commenter.
1 parent aa366c5 commit 186cf24

File tree

1 file changed

+361
-0
lines changed

1 file changed

+361
-0
lines changed

.github/pr-commenter.yml

Lines changed: 361 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,361 @@
1+
comment:
2+
on-update: edit
3+
header: |
4+
Hi & Welcome! 👋🏽 👋
5+
6+
<br>
7+
8+
**Thank you** for contributing to `exercism/python` 💛&nbsp;💙 -- we really appreciate it! 🌟 🌈
9+
10+
footer: |
11+
12+
<h2>🛠️ &nbsp;&nbsp; Maintainers &nbsp;&nbsp;</h2>
13+
<h3> Please take note 📒 of the following sections/review items 👀 ✨ </h3>
14+
<br>
15+
<br>
16+
<details>
17+
<summary> 🌈 &nbsp;Acknowledgements and Reputation</summary>
18+
<br>
19+
<table>
20+
<td>
21+
22+
- ❓ Does this PR need to receive a label with a [`reputation modifier`](https://github.com/exercism/docs/blob/main/using/product/reputation.md#creating-a-pull-request)?
23+
- `medium` is awarded by default.
24+
- ❓ Does this contributor need to be added to the **exercise** [`authors` or `contributors`](https://github.com/exercism/docs/blob/main/building/tracks/practice-exercises.md#file-metaconfigjson)?
25+
- ❓ Does this contributor need to be added to the **concept** [`authors` or `contributors`](https://github.com/exercism/docs/blob/main/building/tracks/concepts.md#file-metaconfigjson)?
26+
- ❓ Is there an associated issue or issues that should be linked to this PR?
27+
28+
</td>
29+
</table>
30+
</details>
31+
<details>
32+
<summary>💫 &nbsp;General Code Quality</summary>
33+
<ul>
34+
<table>
35+
<td>
36+
<h4>Verify:</h4>
37+
38+
- [ ] &nbsp;The branch was updated & rebased with any (recent) upstream changes.
39+
- [ ] &nbsp;All prose was checked for spelling and grammar.
40+
- [ ] &nbsp;Files are formatted via [yapf](https://github.com/google/yapf) ([_yapf config_](https://github.com/exercism/python/blob/main/.style.yapf)) & conform to our [coding standards](https://github.com/exercism/python/blob/main/CONTRIBUTING.md#coding-standards)
41+
- [ ] &nbsp;Files pass [flake8](http://flake8.pycqa.org/) with [_flake8 config_](https://github.com/exercism/python/blob/main/.flake8) & [pylint](https://pylint.pycqa.org/en/v2.11.1/user_guide/index.html) with [_pylint config_](https://github.com/exercism/python/blob/main/pylintrc).
42+
- [ ] &nbsp;Changed `example.py`/`exemplar.py` files still pass their associated **test files**.
43+
- [ ] &nbsp;Changed _**test files**_ still work with associated `example.py`/`exemplar.py` files.
44+
- Check that tests **fail** properly, as well as succeed.
45+
(_**e.g.**, make some tests fail on purpose to "test the tests" & failure messages_).
46+
- [ ] &nbsp;All files have proper EOL.
47+
- [ ] &nbsp;If a `JinJa2` template was modified/created, was the test file [regenerated](https://github.com/exercism/python/blob/main/CONTRIBUTING.md#auto-generated-test-files-and-test-templates)?
48+
- Does the regenerated test file successfully test the exercises `example.py` file?
49+
- [ ] &nbsp;The branch passes all CI checks & [`configlet-lint`](https://github.com/exercism/configlet#configlet-lint).
50+
51+
<br>
52+
</td>
53+
</table>
54+
</ul>
55+
<br>
56+
</details>
57+
<details>
58+
<summary>🌿 &nbsp;Changes to Concept Exercises</summary>
59+
<br>
60+
61+
- ❓ Are all required files still up-to-date & configured correctly for this change?_
62+
- ❓ Does `<exercise>/.meta/design.md` need to be updated with new implementation/design decisions
63+
- ❓ Do these changes require follow-on/supporting changes to related **concept** documents?
64+
65+
<ul>
66+
<details>
67+
<summary><em><b> ✨ &nbsp;Where applicable, check the following&nbsp;✨ </b></em></summary>
68+
<br>
69+
<ul>
70+
<table>
71+
<td>
72+
73+
(_as a reminder: [Concept Exercise Anatomy](https://github.com/exercism/docs/blob/main/building/tracks/concept-exercises.md)_)
74+
- [ ] Exercise `introduction.md`
75+
- [ ] Do all code examples compile, run, and return the shown output?
76+
- [ ] Are all the code examples formatted per the Python docs?
77+
- [ ] Exercise `instructions.md`
78+
- [ ] Exercise `hints.md`
79+
- [ ] Check that exercise `design.md` was fulfilled or edited appropriately
80+
- [ ] Exercise `exemplar.py`
81+
- [ ] Only uses syntax previously introduced or explained.
82+
- [ ] Is correct and appropriate for the exercise and story.
83+
- [ ] Exercise `<exercise_name>.py` (stub)
84+
- [ ] Includes appropriate docstrings and function names.
85+
- [ ] Includes `pass` for each function
86+
- [ ] Includes an EOL at the end
87+
- [ ] Exercise `<exercise_name>_test.py`
88+
- [ ] Tests cover all (reasonable) inputs and scenarios
89+
- [ ] At least one test for each task in the exercise
90+
- [ ] If using subtests or fixtures they're [formatted correctly](https://github.com/exercism/python/blob/main/CONTRIBUTING.md#Test-File_style) for the runner
91+
- [ ] Classnames are `<ExerciseName>Test`
92+
- [ ] Test functions are `test_<test_name>`
93+
- [ ] Exercise `config.json` --> **valid UUID4**
94+
- [ ] Corresponding concept `introduction.md`
95+
- [ ] Corresponding concept `about.md`
96+
- [ ] Concept `config.json`
97+
- [ ] All Markdown Files : Prettier linting (_for all markdown docs_)
98+
- [ ] All Code files: PyLint linting (**_except for test files_**)
99+
- [ ] All files with text: Spell check & grammar review.
100+
101+
</td>
102+
</table>
103+
</ul>
104+
</details>
105+
</ul>
106+
</details>
107+
108+
<details>
109+
<summary>🚀&nbsp; Changes to Practice Exercises</summary>
110+
<br>
111+
<ul>
112+
<table>
113+
<td>
114+
115+
_Is the exercise is in line with [Practice Exercise Anatomy](https://github.com/exercism/docs/blob/main/building/tracks/practice-exercises.md)?_
116+
- [ ] `.docs/instructions.md`(**required**)
117+
- Was this file updated and regenerated properly?
118+
- [ ] `.docs/introduction.md`(_optional_)
119+
- [ ] `.docs/introduction.append.md`(_optional_)
120+
- [ ] `.docs/instructions.append.md` (_optional_)
121+
- Are any additional instructions needed/provided?
122+
&nbsp;(_e.g. error handling or information on classes_)
123+
- [ ] `.docs/hints.md`(_optional_)
124+
- Was this file regenerated properly?
125+
- [ ] `.meta/config.json` (**required**)
126+
- [ ] `.meta/example.py` (**required**)
127+
- Does this pass all the current tests as written/generated?
128+
- [ ] `.meta/design.md` (_optional_)
129+
- [ ] `.meta/template.j2` (_template for generating tests from canonical data_)
130+
- Was a test file properly regenerated from this template?
131+
- [ ] `.meta/tests.toml`
132+
- Are there additional test cases to include or exclude?
133+
- Are there any Python-specific test cases needed for this exercise?
134+
- [ ] `<exercise-slug>_test.py`
135+
- Does this file need to be regenerated?
136+
- Does this file correctly test the `example.py` file?
137+
- Does this file correctly report test failures and messages?
138+
- [ ] `<exercise-slug>.py` (**required**)
139+
- Does this stub have enough information to get
140+
&nbsp;the student started coding a valid solution?
141+
142+
</td>
143+
</table>
144+
</ul>
145+
</details>
146+
<details>
147+
<summary>🐣 &nbsp;Brand-New Concept Exercises</summary>
148+
<br>
149+
<ul>
150+
<table>
151+
<td>
152+
153+
_Is the exercise is in line with [Concept Exercise Anatomy](https://github.com/exercism/docs/blob/main/building/tracks/concept-exercises.md)?_
154+
- [ ] Exercise `introduction.md`
155+
- [ ] Do all code examples compile, run, and return the shown output?
156+
- [ ] Are all the code examples formatted per the Python docs?
157+
- [ ] Exercise `instructions.md`
158+
- [ ] Exercise `hints.md`
159+
- [ ] Check that exercise `design.md` was fulfilled or edited appropriately
160+
- [ ] Exercise `exemplar.py`
161+
- [ ] Only uses syntax previously introduced or explained.
162+
- [ ] Is correct and appropriate for the exercise and story.
163+
- [ ] Exercise `<exercise_name>.py` (stub)
164+
- [ ] Includes appropriate docstrings and function names.
165+
- [ ] Includes `pass` for each function
166+
- [ ] Includes an EOL at the end
167+
- [ ] Exercise `<exercise_name>_test.py`
168+
- [ ] Tests cover all (reasonable) inputs and scenarios
169+
- [ ] At least one test for each task in the exercise
170+
- [ ] If using subtests or fixtures they're formatted correctly for the runner
171+
- [ ] Classnames are `<ExerciseName>Test`
172+
- [ ] Test functions are `test_<test_name>`
173+
- [ ] Exercise `config.json` --> valid UUID4
174+
- [ ] Corresponding concept `introduction.md`
175+
- [ ] Corresponding concept `about.md`
176+
- [ ] Concept `config.json`
177+
- [ ] All Markdown Files : Prettier linting (_for all markdown docs_)
178+
- [ ] All Code files: Flake8 & PyLint linting
179+
- [ ] All Code Examples: proper formatting and fencing. Verify they run in the REPL
180+
- [ ] All files with text: Spell check & grammar review.
181+
182+
<br>
183+
</td>
184+
</table>
185+
</ul>
186+
</details>
187+
<br>
188+
<h3>Our &nbsp; 💖 &nbsp; for all your review efforts! 🌟 🦄</h3>
189+
190+
snippets:
191+
- id: any-file-changed
192+
files:
193+
- any: ["**", "**/**"]
194+
body: |
195+
<br>
196+
197+
This is an automated [🤖&nbsp;🤖 &nbsp;] comment for the **`maintainers`** of this repository, notifying them of your contribution. 🎉
198+
&nbsp; Someone will review/reply to your changes shortly. (_usually within **72 hours**._)
199+
You can safely ignore the **`maintainers`** section below.
200+
201+
<br>
202+
<details open>
203+
<summary>⚠️ &nbsp;<b>Please be aware</b>&nbsp;⚠️ </summary>
204+
205+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_This repo does not generally accept Pull Requests unless they follow our [contributing guidelines](https://github.com/exercism/python/blob/main/CONTRIBUTING.md) and are:_
206+
207+
&nbsp;&nbsp;&nbsp;&nbsp; 1️⃣ &nbsp;&nbsp;&nbsp; Small, contained fixes for typos/grammar/punctuation/code syntax on [one] exercise,
208+
&nbsp;&nbsp;&nbsp;&nbsp; 2️⃣ &nbsp;&nbsp;&nbsp;&nbsp;Medium changes that have been agreed/discussed via a filed issue,
209+
&nbsp;&nbsp;&nbsp;&nbsp; 3️⃣ &nbsp;&nbsp;&nbsp;&nbsp;Contributions from our [help wanted][help-wanted] issue list,
210+
&nbsp;&nbsp;&nbsp;&nbsp; 4️⃣ &nbsp;&nbsp;&nbsp;&nbsp;Larger (_previously agreed-upon_) contributions from recent & regular (_within the last 6 months_) contributors.
211+
212+
&nbsp;&nbsp;&nbsp;&nbsp;Pull Requests not in these categories **will be closed**. 😞
213+
214+
</details>
215+
<br>
216+
217+
218+
- id: change-concept-exercise
219+
files:
220+
- "concepts/**/*"
221+
- "concepts/**/**/*"
222+
- "exercises/concept/**/*"
223+
- "exercises/concept/**/**/*"
224+
body: |
225+
---
226+
227+
#### **`💙 It looks like you are changing/adding files in a Concept Exercise! 💙 `**
228+
229+
<br>
230+
<details>
231+
<summary>‼️&nbsp;&nbsp;<b><em>Did You...</em></b></summary>
232+
<br>
233+
<table>
234+
<td>
235+
<br>
236+
237+
- [ ] &nbsp;Update & rebase your branch with any (recent) upstream changes.
238+
- [ ] &nbsp;Spell and grammar check all prose changes.
239+
- [ ] &nbsp;Run [Prettier](https://prettier.io/) on all markdown and JSON files.
240+
- (_Optionally_) run [yapf](https://github.com/google/yapf) ([_yapf config_](https://github.com/exercism/python/blob/main/.style.yapf)) to help format your code.
241+
- [ ] &nbsp;Run [flake8](http://flake8.pycqa.org/) with [_flake8 config_](https://github.com/exercism/python/blob/main/.flake8) to check general code style standards.
242+
- [ ] &nbsp; Run [pylint](https://pylint.pycqa.org/en/v2.11.1/user_guide/index.html) with [_pylint config_](https://github.com/exercism/python/blob/main/pylintrc) to check extended code style standards.
243+
- [ ] &nbsp;Use pytest or the [python-track-test-runner](https://github.com/exercism/python-test-runner) to test any changed `example.py`/`exemplar.py`files
244+
&nbsp;against their associated test files.
245+
- [ ] &nbsp;Similarly, use [pytest](https://docs.pytest.org/en/6.2.x/contents.html) or the [python-track-test-runner](https://github.com/exercism/python-test-runner) to test any changed _**test**_ files.
246+
- Check that tests **fail** properly, as well as succeed.
247+
&nbsp;(_**e.g.**, make some tests fail on purpose to "test the tests" & failure messages_).
248+
- [ ] &nbsp;Double-check all files for proper EOL.
249+
- [ ] &nbsp;[Regenerate](https://github.com/exercism/python/blob/main/CONTRIBUTING.md#generating-practice-exercise-documents) exercise documents when you modified or created a `hints.md` file for a practice exercise.
250+
- [ ] &nbsp;[Regenerate the test file](https://github.com/exercism/python/blob/main/CONTRIBUTING.md#auto-generated-test-files-and-test-templates) if you modified or created a `JinJa2` template file for a practice exercise.
251+
- Run the generated test file result against its `example.py`.
252+
- [ ] &nbsp;Run [`configlet-lint`](https://github.com/exercism/configlet#configlet-lint) if the track [config.json](https://github.com/exercism/docs/blob/main/building/tracks/config-json.md), or any other exercise `config.json` has been modified.
253+
254+
<br>
255+
</td>
256+
</table>
257+
<br>
258+
</details>
259+
260+
<details>
261+
<summary>✅️&nbsp;&nbsp;<b><em>Have You Checked:</em></b></summary>
262+
<br>
263+
<table>
264+
<td>
265+
266+
.
267+
_**Are there any additional changes you need to make?**_
268+
Please make sure all associated files are present and consistent with your changes!
269+
270+
[Concept Exercise Anatomy](https://github.com/exercism/docs/blob/main/building/tracks/concept-exercises.md)
271+
272+
- [ ] `.docs/hints.md`
273+
- [ ] `.docs/instructions.md`
274+
- [ ] `.docs/introduction.md`
275+
- [ ] `.meta/config.json`
276+
- [ ] `.meta/design.md`
277+
- [ ] `.meta/exemplar.py` (_exemplar solution_)
278+
- [ ] `<exercise-slug>_test.py` (_test file_)
279+
- [ ] `<exercise-slug>.py` (_stub file_)
280+
- [ ] `concepts/../introduction.md`
281+
- [ ] `concepts/../about.md`
282+
- [ ] `concepts/../links.json`
283+
- [ ] `concepts/../.meta/config.json`
284+
285+
</td>
286+
</table>
287+
<br>
288+
</details>
289+
290+
- id: change-practice-exercise
291+
files:
292+
- "exercises/practice/**/*"
293+
- "exercises/practice/**/**/*"
294+
body: |
295+
---
296+
297+
#### **`💙 It looks like you are changing/adding files in a Practice Exercise! 💙 `**
298+
299+
**`Please note:`** generally, changes to existing [practice exercises](https://github.com/exercism/docs/blob/main/building/tracks/practice-exercises.md) or the addition
300+
of new ones are proposed & discussed in [problem-specifications](https://github.com/exercism/problem-specifications) first, so that all tracks can potentially benefit.
301+
Once a change is approved there by three maintainers, it becomes available for various language tracks to then implement.
302+
303+
<br>
304+
<details>
305+
<summary>‼️&nbsp;&nbsp;<b><em>Did You...</em></b></summary>
306+
<br>
307+
<table>
308+
<td><br>
309+
310+
- [ ] &nbsp;Update & rebase your branch with any (recent) upstream changes.
311+
- [ ] &nbsp;Spell and grammar check all prose changes.
312+
- [ ] &nbsp;Run [Prettier](https://prettier.io/) on all markdown and JSON files.
313+
- (_Optionally_) run [yapf](https://github.com/google/yapf) ([_yapf config_](https://github.com/exercism/python/blob/main/.style.yapf)) to help format your code.
314+
- [ ] &nbsp;Run [flake8](http://flake8.pycqa.org/) with [_flake8 config_](https://github.com/exercism/python/blob/main/.flake8) to check general code style standards.
315+
- [ ] &nbsp; Run [pylint](https://pylint.pycqa.org/en/v2.11.1/user_guide/index.html) with [_pylint config_](https://github.com/exercism/python/blob/main/pylintrc) to check extended code style standards.
316+
- [ ] &nbsp;Use pytest or the [python-track-test-runner](https://github.com/exercism/python-test-runner) to test any changed `example.py`/`exemplar.py`files
317+
&nbsp;against their associated test files.
318+
- [ ] &nbsp;Similarly, use [pytest](https://docs.pytest.org/en/6.2.x/contents.html) or the [python-track-test-runner](https://github.com/exercism/python-test-runner) to test any changed _**test**_ files.
319+
- Check that tests **fail** properly, as well as succeed.
320+
&nbsp;(_**e.g.**, make some tests fail on purpose to "test the tests" & failure messages_).
321+
- [ ] &nbsp;Double-check all files for proper EOL.
322+
- [ ] &nbsp;[Regenerate](https://github.com/exercism/python/blob/main/CONTRIBUTING.md#generating-practice-exercise-documents) exercise documents when you modified or created a `hints.md` file for a practice exercise.
323+
- [ ] &nbsp;[Regenerate the test file](https://github.com/exercism/python/blob/main/CONTRIBUTING.md#auto-generated-test-files-and-test-templates) if you modified or created a `JinJa2` template file for a practice exercise.
324+
- Run the generated test file result against its `example.py`.
325+
- [ ] &nbsp;Run [`configlet-lint`](https://github.com/exercism/configlet#configlet-lint) if the track [config.json](https://github.com/exercism/docs/blob/main/building/tracks/config-json.md), or any other exercise `config.json` has been modified.
326+
327+
<br>
328+
</td>
329+
</table>
330+
<br>
331+
</details>
332+
333+
<details>
334+
<summary>✅️&nbsp;&nbsp;<b><em>Have You Checked...</em></b></summary>
335+
<br>
336+
<table>
337+
<td>
338+
339+
.
340+
_**Are there any additional changes you need to make?**_
341+
Please make sure all associated files are present and consistent with your changes!
342+
343+
[Practice Exercise Anatomy](https://github.com/exercism/docs/blob/main/building/tracks/practice-exercises.md)
344+
345+
- [ ] `.docs/instructions.md`(**required**)
346+
- [ ] `.docs/introduction.md`(_optional_)
347+
- [ ] `.docs/introduction.append.md`(_optional_)
348+
- [ ] `.docs/instructions.append.md` (_optional_)
349+
- [ ] `.docs/hints.md`(_optional_)
350+
- [ ] `.meta/config.json` (**required**)
351+
- [ ] `.meta/example.py` (**required**)
352+
- [ ] `.meta/design.md` (_optional_)
353+
- [ ] `.meta/template.j2` (_template for generating tests from canonical data_)
354+
- [ ] `.meta/tests.toml` (_do you need to include or exclude any cases?_)
355+
- [ ] `<exercise-slug>_test.py` (_**do you need to regenerate this?**_)
356+
- [ ] `<exercise-slug>.py` (**required**)
357+
358+
</td>
359+
</table>
360+
</details>
361+
<br>

0 commit comments

Comments
 (0)