Closed jgieseler closed 3 months ago
:partying_face: Thanks for the submission @jgieseler I shall try and find you a reviewer next week.
I would suggest @wtbarnes, as he was a reviewer for our corresponding publication.
@wtbarnes you up for reviewing this?
Hi @jgieseler sorry for neglecting this for so long! I've not forgotten about this submission and am aiming to complete this review before Christmas. Sorry again this has been open for so long and thanks for your patience.
No worries @wtbarnes! There is no hurry from my side.
First off, let me apologize profusely to @jgieseler for how prolonged this process has been. We definitely do not intend for these reviews to be open for this long and we greatly appreciate your patience. This is entirely my fault. See below for my full review.
I reviewed version v0.3.3 of the package, the latest released version
Though this package is relatively small in scope, I'm classifying it as general because knowing the relative locations of observatories has broad applications across solar physics and heliophysics.
This package makes extensive use of
astropy.coordinates
and the appropriate solar coordinate frames provided by sunpy.coordinates
. However, this package does not make use of astropy.units
anywhere. This would be particularly helpful when it comes to specifying the solar wind speed. It may also be useful internally when ensuring that quantities are being plotted in compatible units. I see that jgieseler/solarmach#26 has already been created to track this. Additionally, I see that while sunpy.time.parse_time
is used in the sc_distance
function, it is not used elsewhere. I recommend using parse_time
to check the time format as soon as the SolarMach
class is instantiated. I've created jgieseler/solarmach#49 to track this.
The hosted documentation provides both reference documentation as well as narrative documentation about how to use the documentation. I see that the
SolarMach.plot_3d
and SolarMach.pfss_3d
methods are not included in the API reference. I see that jgieseler/solarmach#45 has already been created to track this.
This is not a requirement for affiliated package status, but I would also suggest separating out the "Usage" section into a "Tutorial" and "How-to Guide" sections. With a small amount of reorganizing, steps 1 through 4 could be a self-contained tutorial and the items under "Advanced" could be made into how-to guides.
There are unit tests for most functions and methods. I am marking this as "good" rather than "excellent" primarily due to the test coverage being at 65% according to the CodeCov badge. As the primary purpose of
solarmach
is producing figures, I would also highly suggest making using of figure tests. Currently, the results of the plotting tests are only validated by checking for the existence of the plot, e.g. https://github.com/jgieseler/solarmach/blob/9a6ab68e047a43b529c94ff4f73ec10697836654/solarmach/tests/test.py#L81. This provides no guarantee as to the correctness of this plot. I've created jgieseler/solarmach#50 to track this.
There is no obvious duplication of any functionality currently available in the ecosystem.
My only feedback here would be to provide some documentation on how to contribute to
solarmach
.
I labeled this "subject to change" because the version number is <1
Per our review criteria, solarmach
is now accepted as a SunPy affiliated package 🎉 . Congratulations and apologies this was so drawn out. I think the issues referenced in this review would still be helpful to address and would help integrate solarmach
into the ecosystem even more.
Thanks a lot @wtbarnes for your review and especially the feedback, very much appreciated! I fully agree with all points mentioned, and already implemented the figure unit tests as this was something I was already unsatisfied with.
What about updates to the different categories if the project has evolved after some time? Should I at one point create a new pull request indicating what has been improved, or will this just be part of the yearly review process mentioned at https://sunpy.org/affiliated#existing-packages-review-process? Both would be fine with me.
Thanks very much for submitting solarmach
and apologies again this was held up for so long.
What about updates to the different categories if the project has evolved after some time?
That's a great question. In theory, yes this would be part of the yearly re-review process for all of the affiliated packages. In practice, we've never actually carried out a re-review of an affiliated package. This whole process also may change as we integrate our affiliated package review process into PyOpenSci.
Package Details
Description of Package
The Solar MAgnetic Connection HAUS tool (
solarmach
) is a Python package that derives (usingsunpy
) and visualizes the spatial configuration and solar magnetic connection of different observers in the heliosphere at different times.(Note:
solarmach
is the PyPI/conda-forge Python package that provides all functionalities to end users and to thestreamlit
web-app at https://solar-mach.github.io. Thestreamlit
app itself is also open-source (cf. https://github.com/jgieseler/Solar-MACH), but not provided as a Python package.)Package Review
Editor Submission Checklist
Instructions to Reviewer
Please copy the following and select the ranking for each criteria, the full review criteria can be found here: