@@ -21,10 +21,9 @@ Ways to contribute
2121 :open:
2222 :icon: person-fill
2323
24- 100% yes! There are so many ways to contribute to our community. Take a look
25- at the following sections to learn more.
26-
27- There are a few typical new contributor profiles:
24+ Here are a few typical new contributor profiles. If you
25+ don't fit into one of them, come talk to us on `Discourse
26+ <https://discourse.matplotlib.org/> `_ about how you might contribute.
2827
2928 * **You are a Matplotlib user, and you see a bug, a potential improvement, or
3029 something that annoys you, and you can fix it. **
@@ -60,12 +59,14 @@ Ways to contribute
6059 chance it is a unique context in any given conversation) and make it easier to
6160 understand where other people are coming from.
6261
63- Understanding the entire codebase is a long-term project, and nobody expects
64- you to do this right away. If you are determined to get started with
65- Matplotlib and want to learn, going through the basic functionality,
66- choosing something to focus on (3d, testing, documentation, animations, etc.)
67- and gaining context on this area by reading the issues and pull requests
68- touching these subjects is a reasonable approach.
62+ Understanding the entire codebase is a long-term project, and nobody
63+ expects you to do this right away. Start by building your experience in
64+ using Matplotlib: make complicated visualizations, use niche features,
65+ dive deep into one part of the library. This will help you build the
66+ context to then look at the existing issues and pull requests. You can
67+ then reach out to us at the :ref: `new contributor <new_contributors >`
68+ meeting or Discourse channel (incubator) to discuss what you would like
69+ to work on.
6970
7071.. _contribute_code :
7172
@@ -196,6 +197,10 @@ We expect authentic engagement in our community.
196197- If you use generative AI tools as an aid in developing code or documentation
197198 changes, ensure that you fully understand the proposed changes and can
198199 explain why they are the correct approach.
200+ - If you use AI for translation or grammar correction, please keep the wording as close
201+ as possible to the original wording. It is much easier to come to a mutual
202+ understanding when we are working off a direct translation of your words/thoughts
203+ rather than a text an LLM may have embellished with possibly spurious information.
199204
200205Make sure you have added value based on your personal competency to your
201206contributions. Just taking some input, feeding it to an AI and posting the
@@ -260,23 +265,14 @@ To join, please go to our public `community gitter`_ channel, and ask to be adde
260265Good first issues
261266-----------------
262267
263- While any contributions are welcome, we have marked some issues as
264- particularly suited for new contributors by the label `good first issue
265- <https://github.com/matplotlib/matplotlib/labels/good%20first%20issue> `_. These
266- are well documented issues, that do not require a deep understanding of the
267- internals of Matplotlib. The issues may additionally be tagged with a
268- difficulty. ``Difficulty: Easy `` is suited for people with little Python
269- experience. ``Difficulty: Medium `` and ``Difficulty: Hard `` require more
270- programming experience. This could be for a variety of reasons, among them,
271- though not necessarily all at the same time:
272-
273- - The issue is in areas of the code base which have more interdependencies,
274- or legacy code.
275- - It has less clearly defined tasks, which require some independent
276- exploration, making suggestions, or follow-up discussions to clarify a good
277- path to resolve the issue.
278- - It involves Python features such as decorators and context managers, which
279- have subtleties due to our implementation decisions.
268+ We have marked some issues as `good first issue
269+ <https://github.com/matplotlib/matplotlib/labels/good%20first%20issue> `_ because we
270+ think they are a good entry point into the process of contributing to Matplotlib. These
271+ issues are well documented, do not require a deep understanding of the internals of
272+ Matplotlib, and do not need urgent resolution. Good first issues are intended to onboard
273+ newcomers with a genuine interest in improving Matplotlib, in the hopes that they will
274+ continue to participate in our development community; therefore, pull requests that are
275+ :ref: `AI generated <generative_ai >` will be closed.
280276
281277.. _first_contribution :
282278
@@ -292,7 +288,12 @@ guide you through each step:
292288 & `"Good first Issue" <https://github.com/matplotlib/matplotlib/labels/good%20first%20issue >`_ (optional).
2932893. 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.
294290
295- * 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?"
291+ * A good way to judge if you chose a suitable issue is by asking yourself, "Can I
292+ independently submit a PR in a reasonable time frame?" This should (at most)
293+ be a few days for an easy issue. If it takes longer, let us know why.
294+ * If you are new to open source, we strongly recommend that you do not choose a
295+ complicated issue for your first contribution - please ask in the incubator
296+ channel if you need help gauging the complexity of the work.
2962974. Check existing pull requests (e.g., :ghpull: `28476 `) and filter by the issue number to make sure the issue is not in progress:
297298
298299 * If the issue has a pull request (is in progress), tag the user working on the issue, and ask to collaborate (optional).
@@ -334,6 +335,22 @@ a new PR; duplicate PRs are subject to being closed. However, if the existing
334335PR is an outline, unlikely to work, or stalled, and the original author is
335336unresponsive, feel free to open a new PR referencing the old one.
336337
338+ Difficulty
339+ ----------
340+ Issues may additionally be tagged with a difficulty. ``Difficulty: Easy `` is suitable
341+ for people with beginner scientific Python experience, i.e. fluency with Python syntax
342+ and some experience using libraries like Numpy, Pandas, or Xarray. ``Difficulty: Medium ``
343+ and ``Difficulty: Hard `` require more programming experience. This could be for a variety
344+ of reasons, for example:
345+
346+ - requires understanding intermediate to advanced Python features, such as decorators,
347+ context managers, or meta-programming
348+ - is in areas of the code base which have more interdependencies or is legacy code.
349+ - involves complex or significant changes to algorithms or architecture.
350+
351+ Generally, the difficulty level is correlated with how much conceptual (and contextual)
352+ understanding of Matplotlib is required to resolve it.
353+
337354.. _how-to-pull-request :
338355
339356Start a pull request
0 commit comments