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?
There was a problem hiding this comment.
I made a slight update, from "If this PR does not update any examples,…" to "If this PR does not affect any example notebooks,…". This way it is a bit broader, but still without implying too high of a bar for contributors not working on examples directly!
| - [ ] 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)."
There was a problem hiding this comment.
I turned this phrasing over for a while because PR 1513 didn't actually expect performance changes; comments instead claimed roughly-the-same performance for the most part. I also added a comment reminding how to run benchmarks, and clarifying that contributors without any uxarray edit permissions don't need to worry about checking this box initially.
Here's where it ended up:
- [ ] If this PR could affect performance, ran ASV benchmarks and confirmed they show expected behavior (add a new benchmark if necessary)
<!-- Adding the run-benchmark label (if your uxarray repo permissions allow it) will run ASV benchmarks.
If you need benchmarks to be run but don't have permissions, leave this item unchecked for now. -->
I changed the comment at the top of the section as well to clarify it's not just efficiency improvements, but also any likelihood of affecting performance, would be enough to prevent removing this section.
and minor update to comment in Examples section
|
@erogluorhan Thank you again for reviewing! Pinging to let you know I made some minor changes (see replies to inline comments above, as well as small notes below). If you still approve there is no need to follow up here, just wanted to keep you in the loop. Extra changes not included as replies above:
|
dylannelson
left a comment
There was a problem hiding this comment.
Read through it all again and think it's overall much more clear, covers additional meaningful reminders, and sounds like it could be understood by most users.
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