The problem is that the easy to fix issues that are actually easy to
fix typically get fixed quite quickly. So the easy to fix label is a
label that naturally over time accumulates issues that are *not* easy
to fix...
What makes the issue easy to fix is basically if it is very clear what
the change should be. That might be because:
- The issue is fixed and all that is needed is to add a test. The
issue already shows the exact code that can go in the test.
- Someone has shown the exact code that can be used and there is no
reason not to use the code as is.
Many issues are in the first category (already fixed) but are not
listed as easy to fix. This is because it is nonzero work to go
through existing issues and check if they are actually fixed. One
thing that can be done and is very much worthwhile is to go through
existing issues and check if they are fixed.
In general my advice would be to pick a particular part of the
codebase and read through the issues and pull requests that have the
appropriate label. The full set of open issues is too large and too
broad in terms of topics to be worth anyone going through
individually. Instead though if you are interested in say the ntheory
module then you can look at only issues and pull requests for that by
following the label on github:
https://github.com/sympy/sympy/labels/ntheory
Then there are only 50 issues and pull requests to go through. That is
small enough that someone could reasonably go through all of them.
Also many older pull requests have an interaction that is sort of like:
- Someone opens a pull request.
- Someone else comments on the pull request asking for changes.
- The changes don't get made and the pull request sits in limbo.
It is worth looking at both open and closed pull requests to see
examples of this. Often only small changes would be needed to turn the
pull request into something that could be merged and it would be
useful for someone to open a new pull request that is only slightly
different from the previous one.
One point to be very clear about when basing a new pull request on an
old one is:
- Be very explicit that the new pull request is based on another one
and show an explicit link to the other one and explain clearly what
the similarities and differences are.
- If the differences are only slight or the new PR just adds
additional changes then it is better to preserve the git commits from
the previous pull request so that the authorship is recognised.
There have been many examples in the past where someone has not said
that their pull request is based on another one and then been accused
of plagiarism. I think often this is just a misunderstanding but that
is why it is important to be clear if the changes are derived from an
existing PR.
In general I do think that we should get better at managing easy to
fix issues. Ideally there would be a sort of pool of useful but long
running tasks that new contributors looking for an easy way to make a
useful contribution could do. The problem is they need to be things
that are easy to do, easy to review and not in any way controversial.
In many other Python projects I think adding type annotations comes
into this category but in SymPy it is too controversial and still too
uncertain how they should be used.
--
Oscar
> To view this discussion visit
https://groups.google.com/d/msgid/sympy/4098d752-29f5-4af5-baba-44be527d443fn%40googlegroups.com.