Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[JOSS Review] Bits and Pieces - Version 2.2 #31

Merged
merged 39 commits into from
Apr 11, 2024
Merged

[JOSS Review] Bits and Pieces - Version 2.2 #31

merged 39 commits into from
Apr 11, 2024

Conversation

schuhmaj
Copy link
Collaborator

@schuhmaj schuhmaj commented Mar 13, 2024

Changelog

Documentation

Have a look at the new deployed docs as temporary site
(This simplifies the review process. I'll remove that once the PR is merged.)

Implementation

TODOs when merged:

  • Update Link to Documentation in Conda Recipe
  • Delete temporary fork with the updated docs

Improvements based on openjournals/joss-reviews#6384

@schuhmaj schuhmaj self-assigned this Mar 13, 2024
@schuhmaj schuhmaj mentioned this pull request Mar 25, 2024
@schuhmaj schuhmaj changed the title Draft: [JOSS Review] Bits and Pieces [JOSS Review] Bits and Pieces - Version 2.2 Mar 28, 2024
@schuhmaj schuhmaj requested a review from gomezzz March 28, 2024 18:08
@schuhmaj
Copy link
Collaborator Author

@santisoler @mikegrudic

Thank you very much for the JOSS review and the detailed feedback on implementation, documentation, and paper 👍
This pull request should tackle the found issues; I look forward to your reply.

If there are still issues or something still needs to be sufficiently improved, please feel free to point them out.


@JoachimSchwabe

Also, many thanks to you for pointing out and detailing the sign issue of the accelerations 👍
This PR should fix this. Please Feel free to comment to point out issues if something is not yet good enough.


@gomezzz

You "must" review (approve) this PR so that it can be merged 🙃 Any comments are welcome.

Copy link
Contributor

@santisoler santisoler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for pushing all these changes @schuhmaj! I think this satisfies my requirements related to the JOSS review process.

I left one minor suggestion below, feel free to commit or edit it.

One thing I still noticed is I couldn't manage to install the Python package from sources with pip install . if Ninja is not installed. Even after the changes you made to setup.py in this branch. I don't think this is major issue for the JOSS review (I can actually install it with ninja-build installed in my system). But I wanted to raise the issue so you can keep investigating why this is happening. I can post some details in #22 if you desire.

Thanks again for these fixes. I enjoyed reviewing this submission.

docs/quickstart/overview.rst Outdated Show resolved Hide resolved
Co-authored-by: Santiago Soler <[email protected]>
Copy link
Collaborator

@gomezzz gomezzz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @schuhmaj !

Thanks for taking care of this 🙏 However, it is extremely difficult for me with all these changes and issues mixed in one PR to discern which change is supposed to do what and to resolve which issue.

From a quick glance, I suspect, the majority of the changes are doc changes and data changes?

If you want me to have a meaningful look I would ask you to maybe at least split it in

  • code changes
  • doc changes
  • For data I would also suggest to use LFS or similar. Just looking at the txts almost crashes my browser :D

Otherwise I can only have a very cursory glance at the code as I have no idea how to connect intent of the change with the change 🙏

Sorry for being complicated :D

@schuhmaj
Copy link
Collaborator Author

schuhmaj commented Apr 10, 2024

@gomezzz Sorry for the confusion; I totally agree that it got crowded. In theory, it should be sufficient to review the three "actual code changes" and review the new docs (which are temporarily published under the given link to avoid the need to go through the all the *.rst files compared to the current docs).

(The incorporated change of santisoler is not included in the temporary build of the docs)

Code Changes

Actual Code Changes

  • src/polyhedralGravity/calculation/GravityEvaluable.cpp:69 Multiply the acceleration with -1.0 to obey the geodetic convention
  • test/calculation/GravityModelCubeTest.cpp Add a test case for the cube with density 42.0 in addition to the existing test case using density 1.0 using the parametrized construct from GoogleTest
  • setup.py Remove the hard dependency from ninja as the build system and make it only the preferred solution if it is installed

Pseudo Code Changes

  • Remove in every header file *.h docstring @param example - this is an example the - in between the parameter name and explanation to improve the automated documentation by doxygen/ sphinx
  • The cube reference solution *.txt
    • Rename the old file to test/resources/analytic_cube_solution.txt to test/resources/analytic_cube_solution_density1.txt and multiply the accelerations by -1.0 to be coherent with the changes above
    • Add test/resources/analytic_cube_solution_density42.txt

Documentation ./docs/*.rst, README.md and CONTRIBUTING.md

This is the largest fraction of the PR. It is probably easier to review this temporary build.

To summarize the changes:

  • State the convention (geodetic convention)
  • Restructure and Optimize the Layout
  • Add Statement of Need (only docs)

Paper

Copy link
Collaborator

@gomezzz gomezzz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for elaborating! Okay, that actually makes it pretty tangible. My only remaining concern now is re the comment I left of introducing a non-breaking change that still fundamentally changes results. We can address it here or maybe it is better to merge this and have a separate issue + PR for it?

@@ -66,7 +66,7 @@ namespace polyhedralGravity {

//10. Step: Final expressions after application of the prefix (and a division by 2 for the potential)
potential = (potential * prefix) / 2.0;
acceleration = acceleration * prefix;
acceleration = acceleration * (-1.0 * prefix);
Copy link
Collaborator

@gomezzz gomezzz Apr 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing I am mildly worried about is that once you push this if somebody built some code based on the old version and updates / reinstalls their env they will get wrong results without knowing about the change. It would be desirable to make their code break in that case. Maybe we could rename some function or something along the way to make this a breaking change that shows a message that the sign has changed if the they try to call the old version of this function in this release?

Copy link
Collaborator Author

@schuhmaj schuhmaj Apr 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, I agree; however, I am unsure about how.
A warning or rename/ depcreation seems un-intuitive.

The best I could imagine would be something like a verbose option being True by default. The option could provide information about recent changes but also enable logging.
evaluate(..., verbose=False).
So, basically, a new feature.

On the other hand, simply having more options also seems a bit counterintuitive and contradicts the "slim, easy-to-use interface idea."

Not sure. Anyway, I will merge this so that we can get the JOSS paper rolling.

The verbose option might be something that fits nicely with #34, which will adapt the signature.
For now, I hope that a user who notices a different behavior's first idea is to check the Changelog—and there, I will definitely put the change in bold letters (Also, the package description now states which convention we follow).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gomezzz Or, alternatively, we increase the major version?

So, not 2.2, but rather 3.0. This is usually also an indicator of "breaking changes" and is much more recognizable.

@schuhmaj
Copy link
Collaborator Author

Thanks a lot for the review santisoler and gomezzz 🙂

Let's get this merged!

@schuhmaj schuhmaj merged commit 7700182 into main Apr 11, 2024
3 checks passed
@schuhmaj schuhmaj deleted the joss-review branch April 11, 2024 21:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment