clean up github PR form template - #1608
Conversation
See #1595 for detailed description of PR form template issues
|
Should we take this opportunity to add something to the "Testing" part of the PR checklist like "If this PR should improve memory usage or runtime efficiency, at least one benchmark demonstrates expected improvements (add a new benchmark if necessary)"? |
|
Interesting and helpful finds. Some I didn't even notice when reading through before this, ha |
|
Thank you for taking a look!
It is the former! I believe you need to be granted some nonzero level of permissions for directly editing the uxarray repository in order to actually assign labels to your PR. But, you can certainly open a PR from a fork, even without any permissions at all. For my first uxarray PR I didn't have permissions and opened it from a fork, and I remember being a bit confused about whether I should check this box, and whether I was supposed to be able to add labels somehow but just couldn't figure it out, when in fact you need some edit permissions for it. Maybe we can workshop the phrasing a bit to come up with something that clarifies this, while also not being too vague? Perhaps something like "Added appropriate labels (if you have uxarray edit permissions)" would be clearer? |
|
Oh that's interesting, I would have been confused too. Since some of the other checks have much more added context now, it may help to also add this context too (while also covering the case where they want to check the box but couldn't add labels):
A bit wordy but may cover all the points of confusion? I avoided the word "edit" because that sounds like a higher level of permission that "using"/"adding", but it seems like the user can either do all or none so it may not matter much either way. |
erogluorhan
left a comment
There was a problem hiding this comment.
Looks great overall, just a few inline comments
| - [ ] Added appropriate labels (if you have label edit permissions) | ||
| - [ ] Filled out Overview and Expected Usage (if applicable) sections | ||
|
|
||
| **Testing** |
There was a problem hiding this comment.
Maybe add something about this section can/should be removed if no work on testing suite was conducted in this PR?
| - [ ] Clear the output of all cells before committing | ||
| - [ ] New notebook files added to `docs/examples.rst` toctree | ||
| - [ ] New notebook files added to new entry in `docs/gallery.yml` with appropriate thumbnail photo in `docs/_static/thumbnails/` | ||
| - [ ] New notebook examples cleared the output of all cells before committing |
There was a problem hiding this comment.
Not only new actually, Any notebooks that the PR's owner played with in their local might need this. Please rephrase accordingly
How about "Added appropriate labels (if your repo permissions allow to do so)" @Sevans711 |
in response to reviewer comments on #1608
|
Thank you for your feedback and suggestions, @dylannelson and @erogluorhan. I have made changes accordingly; see 6580446:
Highlighting some lingering questions:
|
Yeah, that would be helpful especially on my draft PRs. |
erogluorhan
left a comment
There was a problem hiding this comment.
I could even approve it now, but a few quick comments below:
| - [ ] Clear the output of all cells before committing | ||
| - [ ] New notebook files added to `docs/examples.rst` toctree | ||
| - [ ] New notebook files added to new entry in `docs/gallery.yml` with appropriate thumbnail photo in `docs/_static/thumbnails/` | ||
| <!-- If this PR does not update any examples, remove this section (Examples) --> |
There was a problem hiding this comment.
This helps. I don't know if we should be further clear, leaving it up to you regarding something like this: "If this PR does not require any work examples (e.g. new functionality, changes to docs, etc.), remove this section (Examples)"
There was a problem hiding this comment.
I have a preference for the current phrasing, mostly because I am a bit concerned that implying these types of changes require adding examples is too high a bar to require of all contributors. E.g., including "new functionality" as a reason makes it feel a little like we're effectively saying "if you added a new function, make sure you also updated a notebook or added a new notebook to show how it is used!"
It's hard for me to think of general sorts of changes which actually require adding example notebooks.
The other concern might be that functionality changes could affect existing example notebooks. But, I feel like the burden of checking that existing notebooks still look okay should probably fall onto uxarray's testing suite, e.g. raise an error or warning if a notebook fails to run properly?
| - [ ] Adequate tests are created if there is new functionality | ||
| - [ ] Tests cover all possible logical paths in your function | ||
| - [ ] Tests are not too basic (such as simply calling a function and nothing else) | ||
| - [ ] At least one ASV benchmark demonstrates improvements, if expected (add a new benchmark if necessary) |
There was a problem hiding this comment.
This (also related things on Lines 41&42) is okay, but not 100% sure to have them here still:
- Benchmarks do not apply to majority of PRs, so should we bother all contributions with this?
- When they apply, this should somehow be addressed already in practice:
- the PR owner already knows most of the time (via PR label, milestone, etc.) that they need to look into benchmarks
- the reviewer knows to look into benchmarks for such PRs
There was a problem hiding this comment.
Thank you for your feedback, I understand what you're saying and I agree many contributions might not need this. But, for contributions where it is relevant, it may serve as a nice reminder.
I was motivated to look into it a bit further in order to reply, and I think I found a few good recent examples where benchmarks maybe should have been run, but were not:
- Move imports for should-be-optional dependencies #1606 should cause speedup to
import uxarraybecause it makes more imports lazy. I'm pretty sure it did cause a speedup, and if there was a reminder I would have run benchmarks, but there was no reminder and nobody ran benchmarks there. - Optimized connectivity: Simultaneous face_edges and edge_nodes #1560 claims to optimize something / improve performance, and multiple people with permissions to apply the "run-benchmark" label have looked at this PR, but nobody has added that label yet in order to actually check what the benchmarks say. (Not trying to blame anyone here, just trying to say this supports the argument for adding a checklist item as a reminder.)
- EFT-based compensated arithmetic for spherical geometry (GCA intersection, point-in-face, face bounds) #1513 makes performance claims from the very start, and a variety of timing tests were run during the PR discussion, but the full uxarray ASV benchmarking suite was not run, from what I can tell. I suppose this case is less about benchmarks demonstrating improvements, though, and more about benchmarks not demonstrating "too much" slowdown.
Maybe the proposed checklist item should be rephrased to something more neutral like this? "If expecting performance efficiency changes, at least one ASV benchmark shows changes (add new benchmarks if necessary)."
Closes #1595
Overview
Fixes/improves a variety of outdated/confusing aspects of the default PR form, as noted in #1595:
_)"docs/api.rst"docs/examples/; guide:docs/user-guide/; quickstart:docs/getting-started/". Also clarified that adding entries to "gallery.yml" only applies for gallery-type examples.docs/gallery.rst; guide:docs/userguide.rst; quickstart:docs/quickstart.rst)"PR Checklist
General