55******************
66Contributing guide
77******************
8-
9-
108You've discovered a bug or something else you want to change
119in Matplotlib — excellent!
1210
@@ -17,16 +15,8 @@ You want to tell us about it — best of all!
1715Below, you can find a number of ways to contribute, and how to connect with the
1816Matplotlib community.
1917
20- .. _start-contributing :
21-
22- Get started
23- ===========
24-
25- There is no pre-defined pathway for new contributors -- we recommend looking at
26- existing issue and pull request discussions, and following the conversations
27- during pull request reviews to get context. Or you can deep-dive into a subset
28- of the code-base to understand what is going on.
29-
18+ Ways to contribute
19+ ==================
3020.. dropdown :: Do I really have something to contribute to Matplotlib?
3121 :open:
3222 :icon: person-fill
@@ -106,7 +96,7 @@ Code is contributed through pull requests, so we recommend that you start at
10696Documentation
10797-------------
10898
109- You as an end-user of Matplotlib can make a valuable contribution because you
99+ You, as an end-user of Matplotlib can make a valuable contribution because you can
110100more clearly see the potential for improvement than a core developer. For example,
111101you can:
112102
@@ -193,39 +183,19 @@ please cite us following the :doc:`/project/citing` guidelines.
193183If you have developed an extension to Matplotlib, please consider adding it to our
194184`third party package <https://github.com/matplotlib/mpl-third-party >`_ list.
195185
186+ .. _new_contributors :
196187
197- .. _get_connected :
198-
199- Get connected
200- =============
201- When in doubt, we recommend going together! Get connected with our community of
202- active contributors, many of whom felt just like you when they started out and
203- are happy to welcome you and support you as you get to know how we work, and
204- where things are.
205-
206- .. _contributor_incubator :
207-
208- Contributor incubator
209- ---------------------
210-
211- The incubator is our non-public communication channel for new contributors. It
212- is a private gitter _ (chat) room moderated by core Matplotlib developers where
213- you can get guidance and support for your first few PRs. It's a place where you
214- can ask questions about anything: how to use git, GitHub, how our PR review
215- process works, technical questions about the code, what makes for good
216- documentation or a blog post, how to get involved in community work, or get a
217- "pre-review" on your PR.
218-
219- To join, please go to our public community _ channel, and ask to be added to
220- ``#incubator ``. One of our core developers will see your message and will add you.
188+ New contributors
189+ ================
221190
222- .. _gitter : https://gitter.im/matplotlib/matplotlib
223- .. _community : https://gitter.im/matplotlib/community
191+ There is no pre-defined pathway for new contributors - we recommend looking at
192+ existing issue and pull request discussions, and following the conversations
193+ during pull request reviews to get context. Or you can deep-dive into a subset
194+ of the code-base to understand what is going on.
224195
196+ .. _new_contributors_meeting :
225197
226- .. _new_contributors :
227-
228- New Contributors Meeting
198+ New contributors meeting
229199------------------------
230200
231201Once a month, we host a meeting to discuss topics that interest new
@@ -241,20 +211,24 @@ questions you might have, and to get to know a few of the people behind the
241211GitHub handles 😉. You can reach out to us on gitter _ for any clarifications or
242212suggestions. We ❤ feedback!
243213
244- .. _ managing_issues_prs :
214+ .. _ contributor_incubator :
245215
246- Work on an issue
247- ================
216+ Contributor incubator
217+ ---------------------
248218
249- In general, the Matplotlib project does not assign issues. Issues are
250- "assigned" or "claimed" by opening a PR; there is no other assignment
251- mechanism. If you have opened such a PR, please comment on the issue thread to
252- avoid duplication of work. Please check if there is an existing PR for the
253- issue you are addressing. If there is, try to work with the author by
254- submitting reviews of their code or commenting on the PR rather than opening
255- a new PR; duplicate PRs are subject to being closed. However, if the existing
256- PR is an outline, unlikely to work, or stalled, and the original author is
257- unresponsive, feel free to open a new PR referencing the old one.
219+ The incubator is our non-public communication channel for new contributors. It
220+ is a private gitter _ (chat) room moderated by core Matplotlib developers where
221+ you can get guidance and support for your first few PRs. It's a place where you
222+ can ask questions about anything: how to use git, GitHub, how our PR review
223+ process works, technical questions about the code, what makes for good
224+ documentation or a blog post, how to get involved in community work, or get a
225+ "pre-review" on your PR.
226+
227+ To join, please go to our public community _ channel, and ask to be added to
228+ ``#incubator ``. One of our core developers will see your message and will add you.
229+
230+ .. _gitter : https://gitter.im/matplotlib/matplotlib
231+ .. _community : https://gitter.im/matplotlib/community
258232
259233.. _good_first_issues :
260234
@@ -279,6 +253,64 @@ though not necessarily all at the same time:
279253- It involves Python features such as decorators and context managers, which
280254 have subtleties due to our implementation decisions.
281255
256+ .. _first_contribution :
257+
258+ First contributions
259+ -------------------
260+
261+ If this is your first open source contribution, or your first time contributing to Matplotlib,
262+ and you need help or guidance finding a good first issue, look no further. This section will
263+ guide you through each step:
264+
265+ 1. Navigate to the `issues page <https://github.com/matplotlib/matplotlib/issues/ >`_.
266+ 2. Filter labels with `"Difficulty: Easy" <https://github.com/matplotlib/matplotlib/labels/Difficulty%3A%20Easy >`_
267+ & `"Good first Issue" <https://github.com/matplotlib/matplotlib/labels/good%20first%20issue >`_ (optional).
268+ 3. Click on an issue you would like to work on, and check to see if the issue has a pull request opened to resolve it.
269+
270+ * A good way to judge if you chose a suitable issue is by asking yourself, "Can I independently submit a PR in 1-2 weeks?"
271+ 4. Check existing pull requests (e.g., :ghpull: `28476 `) and filter by the issue number to make sure the issue is not in progress:
272+
273+ * If the issue has a pull request (is in progress), tag the user working on the issue, and ask to collaborate (optional).
274+ * If a pull request does not exist, create a `draft pull request <https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests#draft-pull-requests >`_ and follow the `pull request guidelines <https://matplotlib.org/devdocs/devel/pr_guide.html >`_.
275+ 5. Please familiarize yourself with the pull request template (see below),
276+ and ensure you understand/are able to complete the template when you open your pull request.
277+ Additional information can be found in the `pull request guidelines <https://matplotlib.org/devdocs/devel/pr_guide.html >`_.
278+
279+ .. dropdown :: `Pull request template <https://github.com/matplotlib/matplotlib/blob/main/.github/PULL_REQUEST_TEMPLATE.md>`_
280+ :open:
281+
282+ .. literalinclude :: ../../.github/PULL_REQUEST_TEMPLATE.md
283+ :language: markdown
284+
285+ .. _get_connected :
286+
287+ Get connected
288+ =============
289+
290+ When in doubt, we recommend going together! Get connected with our community of
291+ active contributors, many of whom felt just like you when they started out and
292+ are happy to welcome you and support you as you get to know how we work, and
293+ where things are. You can reach out on any of our :ref: `communication-channels `.
294+ For development questions we recommend reaching out on our development gitter _
295+ chat room and for community questions reach out at community _.
296+
297+ .. _gitter : https://gitter.im/matplotlib/matplotlib
298+ .. _community : https://gitter.im/matplotlib/community
299+
300+ .. _managing_issues_prs :
301+
302+ Choose an issue
303+ ===============
304+
305+ In general, the Matplotlib project does not assign issues. Issues are
306+ "assigned" or "claimed" by opening a PR; there is no other assignment
307+ mechanism. If you have opened such a PR, please comment on the issue thread to
308+ avoid duplication of work. Please check if there is an existing PR for the
309+ issue you are addressing. If there is, try to work with the author by
310+ submitting reviews of their code or commenting on the PR rather than opening
311+ a new PR; duplicate PRs are subject to being closed. However, if the existing
312+ PR is an outline, unlikely to work, or stalled, and the original author is
313+ unresponsive, feel free to open a new PR referencing the old one.
282314
283315.. _how-to-pull-request :
284316
@@ -288,7 +320,7 @@ Start a pull request
288320The preferred way to contribute to Matplotlib is to fork the `main
289321repository <https://github.com/matplotlib/matplotlib/> `__ on GitHub,
290322then submit a "pull request" (PR). You can do this by cloning a copy of the
291- Maplotlib repository to your own computer, or alternatively using
323+ Matplotlib repository to your own computer, or alternatively using
292324`GitHub Codespaces <https://docs.github.com/codespaces >`_, a cloud-based
293325in-browser development environment that comes with the appropriate setup to
294326contribute to Matplotlib.
@@ -352,14 +384,14 @@ A brief overview of the workflow is as follows.
352384 e.g., ``lib/matplotlib/collections.py ``, do::
353385
354386 git add lib/matplotlib/collections.py
355- git commit
387+ git commit -m 'a commit message'
356388
357389 to record your changes in Git, then push them to your GitHub fork with::
358390
359391 git push -u origin my-feature
360392
361393GitHub Codespaces workflows
362- ^^^^^^^^^^^^^^^^^^^^^^^^^^^
394+ """""""""""""""""""""""""""
363395
364396If you need to open a GUI window with Matplotlib output on Codespaces, our
365397configuration includes a `light-weight Fluxbox-based desktop
@@ -378,14 +410,13 @@ Check the `GitHub instructions
378410for more details on connecting to the desktop.
379411
380412View documentation
381- """"""""""""""""""
413+ ''''''''''''''''''
382414
383415If you also built the documentation pages, you can view them using Codespaces.
384416Use the "Extensions" icon in the activity bar to install the "Live Server"
385417extension. Locate the ``doc/build/html `` folder in the Explorer, right click
386418the file you want to open and select "Open with Live Server."
387419
388-
389420Open a pull request on Matplotlib
390421---------------------------------
391422
0 commit comments