Closed whedon closed 2 years ago
Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @dbkeitel, @cmbiwer it looks like you're currently assigned to review this paper :tada:.
:warning: JOSS reduced service mode :warning:
Due to the challenges of the COVID-19 pandemic, JOSS is currently operating in a "reduced service mode". You can read more about what that means in our blog post.
:star: Important :star:
If you haven't already, you should seriously consider unsubscribing from GitHub notifications for this (https://github.com/openjournals/joss-reviews) repository. As a reviewer, you're probably currently watching this repository which means for GitHub's default behaviour you will receive notifications (emails) for all reviews 😿
To fix this do the following two things:
For a list of things I can do to help you, just type:
@whedon commands
For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:
@whedon generate pdf
PDF failed to compile for issue #3998 with the following error:
Can't find any papers to compile :-(
Software report (experimental):
github.com/AlDanial/cloc v 1.88 T=0.10 s (523.9 files/s, 133840.2 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Python 18 1093 1765 2067
Jupyter Notebook 13 0 6277 917
TeX 1 12 0 217
Markdown 5 33 0 151
YAML 2 10 10 68
CSS 1 10 10 55
reStructuredText 7 67 136 49
DOS Batch 1 8 1 26
JavaScript 1 2 2 18
make 1 4 7 9
TOML 1 0 0 6
-------------------------------------------------------------------------------
SUM: 51 1239 8208 3583
-------------------------------------------------------------------------------
Statistical information for the repository 'a41896e74960d3ed650b95e6' was
gathered on 2021/12/17.
The following historical commit information, by author, was found:
Author Commits Insertions Deletions % of changes
Tom Wagg 328 7459 4166 40.12
katiebreivik 67 9504 7845 59.88
Below are the number of rows from each author that have survived and are still
intact in the current revision:
Author Rows Stability Age % in comments
Katie Breivik 2149 100.0 8.0 11.54
Tom Wagg 2798 37.5 6.2 9.72
@dbkeitel, @cmbiwer – This is the review thread for the paper. All of our communications will happen here from now on.
Please read the "Reviewer instructions & questions" in the first comment above.
Both reviewers have checklists at the top of this thread (in that first comment) with the JOSS requirements. As you go over the submission, please check any items that you feel have been satisfied. There are also links to the JOSS reviewer guidelines.
The JOSS review is different from most other journals. Our goal is to work with the authors to help them meet our criteria instead of merely passing judgment on the submission. As such, the reviewers are encouraged to submit issues and pull requests on the software repository. When doing so, please mention https://github.com/openjournals/joss-reviews/issues/3998
so that a link is created to this thread (and I can keep an eye on what is happening). Please also feel free to comment and ask questions on this thread. In my experience, it is better to post comments/questions/suggestions as you come across them instead of waiting until you've reviewed the entire package.
We aim for the review process to be completed within about 4-6 weeks but given we're entering the holiday season, I suspect things might move slower than this.
@whedon generate pdf from branch joss
Attempting PDF compilation from custom branch joss. Reticulating splines etc...
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
:wave: @cmbiwer, please update us on how your review is going (this is an automated reminder).
:wave: @dbkeitel, please update us on how your review is going (this is an automated reminder).
Getting started on the checklist, a first set of notes for the early items (basically the metadata):
License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
Yes. See https://github.com/TeamLEGWORK/LEGWORK/issues/60 for a quick check on which authors it should list.
Contribution and authorship: Has the submitting author (@TomWagg) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?
According to whedon's analytics posted above, @TomWagg and @katiebreivik have roughly similar contributions to the source code. The third author of the paper, Selma de Mink, does not appear to have contributed directly to the repository. I don't doubt her involvement in the scientific development of course, but just to have a full record, it would be nice to have a short note of confirmation here.
Substantial scholarly effort: Does this submission meet the scope eligibility described in the JOSS guidelines
Very evidently yes, as demonstrated by the companion ApJ paper.
Installation: Does installation proceed as outlined in the documentation?
Installing both into a venv
with pip
and into a conda
env work as expected. It would be nice to also package for conda-forge
directly, but the documentation explains that this is currently not possible due to one external dependency not living in that system yet.
A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
Both README and the main docs have a handful of concise but very clear intro sentences that fulfill this role well. The tutorials then cover the actual science scope in much more detail, which is a nice way to do so without putting a wall of text right at the start.
Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
The instructions are clear and work. See https://github.com/TeamLEGWORK/LEGWORK/issues/61 for listing dependencies more visibly.
Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support
There's no detailed contributor's guide on coding style and details like that, but right in the main README (and hence PyPI page) there are links to the issue tracker and an encouragement to submit pull requests. The readthedocs page also contains a prominent "Submit an issue" link. I think this is sufficient.
On the JOSS manuscript itself: overall I think it's in great shape, so I've checked off the first 4 items already. Just the references need a little extra work.
Main comments:
And a few more quick items:
I may also have additional comments on the manuscript later, after having had a closer look at the implementation and documentation.
Thanks for the comments @dbkeitel! First to address the metadata comments:
I have editted the LICENSE.rst to include all authors who contributed code and added the dependencies explicitly to the README from your comments (see PR #62).
The third author of the paper, Selma de Mink, does not appear to have contributed directly to the repository. I don't doubt her involvement in the scientific development of course, but just to have a full record, it would be nice to have a short note of confirmation here.
As you say, Selma has not contributed any code directly. She has however helped with the development of LEGWORK indirectly. Selma helped me with the derivation of the equations used in LEGWORK when I was first working on implementing them for simulations. Her main contributions have come from suggestions of features included in LEGWORK and about the structure of the package. She also helped significantly with the preparation of the manuscript.
Now the manuscript comments:
- [x] As discussed in pre-review, the JOSS manuscript should be updated to explicitly point the reader to the ApJ companion paper for more details.
I wasn't sure exactly how to phrase this but I wrote "This paper is jointly submitted to ApJ, see Wagg+2021.", please let me know if there is a different way I should write this.
References: I'll wait for @arfon's thoughts on the length of references before touching this
Waveform packages: I'm honestly very unfamiliar with waveform things and so don't know a LISA waveform package off the top of my head. Maybe something like lisacattools could do what you have in mind? I imagine @katiebreivik will know more about this than me and can comment better?
I've addressed most of the checkboxes in the latest commits to the joss
branch, thanks for suggesting these improvements!
The one thing I am having trouble with is the formatting of (e.g. \<list of citations>) type citations. Could @arfon perhaps help me with the syntax? Based on this page, a list of citations should look like this [@author1:2001; @author2:2001]
. But if I then do [e.g. @author1:2001; @author2:2001]
, the e.g. sometimes appears between a random set of authors rather than at the start (this is causing the problem on L68 that @dbkeitel highlighted). What would be the proper way to do this?
Thanks for the changes @TomWagg - I'll get back to the rest of the review sometime soon.
Regarding reference formatting, I think you can just use plain @
syntax without the square brackets and format the list by hand as you wish - e.g. in my only JOSS paper so far, I had a block
Many search methods have been developed and applied on LIGO [@TheLIGOScientific:2014jea] and Virgo [@TheVirgo:2014hva] data. See @Prix:2009oha, @Riles:2017evm, and @Sieniawska:2019hmd for reviews of the field.
which came out formatted like this:
Ah gotcha, thanks @dbkeitel, I hadn't considered that I could just put them in parentheses manually! I've done this, though now there are nested parentheses if that is okay? I could also just remove the "e.g." but that doesn't seem reasonable as these are just examples of papers that address those topics.
I've actually just realised why the "e.g." appears at a weird location. I think JOSS uses pandoc cite-proc which sorts the references by author and then by date. So the "e.g". always goes with whichever citation I put first in the paper.md file...but they then get sorted and so the "e.g." moves with the citation if it doesn't come first alphabetically. I thought this would mean that I can fix the stray "e.g." by just putting them next to the citation that comes first alphabetically but this then affects the sorting! btw @arfon, whilst looking for examples I saw this recent JOSS paper and I think this problem of strangely placed "e.g." also affects it (see the citation list in the summary).
Is there any way to change the sorting that JOSS uses for list of citations? I list of all the citations chronologically in the paper rather than by author name and it would be nice to keep them like that.
Hi All -- just catching up here. We can absolutely do a search to reference other LISA tools, like lisacattools as @TomWagg mentioned or ldasoft, and we can ask some folks who hang out in both space/ground-based communities to check for sure on LALSuite. My hunch is that since the waveforms for binaries in the LISA band are shockingly simple (in many cases just a sin wave for binaries below 1mHz), LALSuite should work if there are not hard-coded frequency limits. Thanks for the careful review and discussion so far @dbkeitel!
@katiebreivik I did a few quick checks with lalsimulation.SimInspiralChooseTDWaveform
. Just naively going to very low starting frequencies at fixed f_min
blows up runtime and memory use, predictably. Reducing time resolution to make up for that works to some degree, but seems to run into some weird indexing issues when reducing it too much. If you're interested in knowing the transition region where it stops making sense, I can ask some of my more knowledgeable colleagues next week; but forgetting about this tangent and just citing some actually LISA-focused tools would be perfectly fine for me as well.
Review update: I'm mostly through with digging as deep into the documentation and code as I think is required and am overall very impressed with the state of the package.
Thanks very much for all of the comments/issues so far @dbkeitel, I really appreciate all of the improvements you're helping to make to the package and its documentation! ☺️ And I'm glad to hear you like the tests and documentation, thanks! 😁
Another comment, mostly thinking towards future maintainability, is that there are a bunch of things hardcoded to particular models from particular papers (e.g. LISA instrumental and confusion noise as well as the set of verification binaries), which may need to change in the future. However it seems to me that the architecture of the package is laid out well enough that this should be possible even in a backwards-compatible way, by e.g. introducing new string arguments for the names of models into those functions.
This is definitely a concern I share! There's no doubt that there will be new models for sensitivity curve/confusion noise etc as we approach the launch of these sorts of space-based detectors so some of the hardcoded stuff will become obsolete. My 'plan' for this is that we will continue to implement new psd instrument
s and confusion noise model
s that can be chosen when computing SNRs etc. I imagine that in future we'll make lisa_psd
or tianqin_psd
aliases for whatever the latest models are (but also allow people to run things like robson19_psd
instead).
So in an ideal world future users who have created a new model for something could create issues (or if we're lucky, pull requests) with the functions that are used and then we can add them in. And in the meantime they can always use a custom instrument in power_spectral_density
(and even custom confusion noise once PR 72 is merged).
Yes, direct aliasing is a little different from the wrapper-function-with-str-argument approach I was thinking of, but it sounds like a good and equivalent future model too! Whenever the default changes, you'll just have to be very explicit in your changelogs.
I'll post my checklist and comments for this review on Friday, if that's alright.
@katiebreivik I did a few quick checks with
lalsimulation.SimInspiralChooseTDWaveform
. Just naively going to very low starting frequencies at fixedf_min
blows up runtime and memory use, predictably. Reducing time resolution to make up for that works to some degree, but seems to run into some weird indexing issues when reducing it too much. If you're interested in knowing the transition region where it stops making sense, I can ask some of my more knowledgeable colleagues next week; but forgetting about this tangent and just citing some actually LISA-focused tools would be perfectly fine for me as well.
Thanks for checking on this @dbkeitel! We did decide decide to go with LISA-focused tools only.
With the recently merged PR on our joss branch, I think we have covered your concerns/questions/suggestions so far including updates to documentation and the paper. Please don't hesitate to point out anything we may have missed though!
Thanks @katiebreivik and @TomWagg ! I'm very busy right now, for about one more week; then I'll give both paper and package documentation another careful look, and expect to then be able to sign off quickly.
Review checklist for @cmbiwer
Conflict of interest
- [x] I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.
Code of Conduct
- [x] I confirm that I read and will adhere to the JOSS code of conduct.
General checks
- [x] Repository: Is the source code for this software available at the repository url?
- [x] License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
- [x] Contribution and authorship: Has the submitting author made major contributions to the software? Does the full list of paper authors seem appropriate and complete?
- [x] Substantial scholarly effort: Does this submission meet the scope eligibility described in the JOSS guidelines
Functionality
- [x] Installation: Does installation proceed as outlined in the documentation?
- [x] Functionality: Have the functional claims of the software been confirmed?
- [x] Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)
Documentation
- [x] A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
- [x] Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
- [x] Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
- [x] Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
- [x] Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
- [x] Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support
Software paper
- [x] Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
- [x] A statement of need: Does the paper have a section titled 'Statement of Need' that clearly states what problems the software is designed to solve and who the target audience is?
- [x] State of the field: Do the authors describe how this software compares to other commonly-used packages?
- [x] Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
- [x] References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?
I've posted an issue here: https://github.com/TeamLEGWORK/LEGWORK/issues/84
Following the instructions on the installation page:
conda create --name legwork numpy scipy astropy numba matplotlib seaborn jupyter ipython
conda activate legwork
pip install schwimmbad legwork
Is not getting me a working package.
Some comments so far:
conda
command. For example, I do not get numba <0.54 in that case which is specified in requirements.txt
. So it ends up uninstalling and reinstalling it when it tells me to do pip install legwork
. Seems inefficient.python -m pip install -r requirements.txt
. That would perhaps be helpful to a user. Though, I guess a developer may be experienced already with these types of things. EDIT: On second thought, it'll build dependencies this way. Ignore this comment.As far as the paper, I think it is well written and describes the purpose. The only comment I have on the paper is the state of the field is summarized as "So far, most studies made use of custom made codes which have not been made publicly available." I wouldn't ask the authors to give examples of closed-source code. But do the authors know of publicly available codes that could be cited? The use of the word "some" implies to me that they could give examples and how it contrasts.
Thanks @cmbiwer for pointing out the install problems based on the numpy version. We've just merged in a PR which fixes this issue, as well as removes the annoying package downgrades which happened because of the upper bounds on numba and numpy.
With regard to the paper and citation of tools. We've updated the draft based on @dbkeitel's suggestions above and I think the updated draft provides the citations you were after. I'll try to recompile the paper here now (though I'm not exactly sure whether this will work!).
@whedon generate pdf from branch joss
Attempting PDF compilation from custom branch joss. Reticulating splines etc...
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Thanks, I took a look and this address my comment about the paper. I've checked off the last remaining checklist item for the paper. And thanks for looking at the installation. I'll go through the remainder of the package this week.
I've gone through the package again after the installation was updated. The package is well documented and the automated tests have good coverage. I marked off nearly every item on the checklist. However, the only functionality I have found not working on the main
branch is still the unit error using plot_sensitivity_curve
and also ax.fill_between
that was reported here: https://github.com/TeamLEGWORK/LEGWORK/issues/75
There was also a minor issue in the documentation pages for the demos, the variable fs
seems to be missing from a number of those pages which I made an issue for here: https://github.com/TeamLEGWORK/LEGWORK/issues/86
If the authors could resolve this plotting issue with plot_sensitivity_curve
and ax.fill_between
, then I would say LEGWORK meets JOSS's requirements for publication, and I would recommend its publication.
⚡ thanks for the update @cmbiwer. @TomWagg - over to you here on next steps here.
Yeah thanks @cmbiwer! Indeed, we're on it @arfon, once we merge PR #87 I think we'll be good to go! 😄
PR 87 is merged into LEGWORK (bringing us up to v.0.2.3)! 😁 I think this means we have now addressed each of @cmbiwer's comments (but please do let me know if not!). If that's the case I think we'll also need the final go-ahead from @dbkeitel before moving forward 🙂
I have check that PR#87 has addressed my last issues. And I have marked off all the items on the checklist now.
In my opinion, LEGWORK meets JOSS's requirements for publication and I recommend it is published in JOSS.
Hi @TomWagg the updated paper looks good, seems you just missed one of my citation requests:
The package itself is also almost ready to sign off from my side, with most of my issues resolved well. A few open points though:
The third point is optional I'd say and up to the authors. Once the one citation is added to the paper and the installation instructions and API docs fixed, I'm happy to sign off the review.
Thanks @dbkeitel! We will get to work on the first two open points. For the third, we decided to add a scope/limitations section to the docs (here). We settled on this because we didn't want to repeat the same explanation in many different sections of the docs. I'd be interested to hear your thoughts on whether this is appropriate. Maybe we should add a link to the tab in the Quickstart to make sure that folks are aware?
Thanks @katiebreivik I had completely overlooked that section! I agree it's a good solution. A link at the very end of the quickstart may indeed be a good idea too,
Hi again everyone, @katiebreivik and I have just merged in PR#92 and #93 and I believe they address all of @dbkeitel's remaining comments.
We've added the LIGO citation to the paper.md file, updated the installation instructions, added a link in the quickstart to the limitations page and made sure all of the functions are showing up in the documentation.
Let us know if there's anything else that we've missed! ☺️
@whedon generate pdf from branch joss
Attempting PDF compilation from custom branch joss. Reticulating splines etc...
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@arfon I'm now happy to sign off on this review. The updated installation instructions work for me again and the paper looks good now.
@TomWagg just one minor bibliography detail, which in most journals the production department would resolve but here I guess falls on you: The GW150914 ref currently looks like this
and should either have the Virgo Collaboration
bit changed to LIGO Scientific Collaboration and Virgo Collaboration
or removed entirely. (The bibstyle currently seems to treat it simply as the last entry in the human authors list, instead of as a separate collaboration element.)
Wonderful, thanks @dbkeitel. I've fixed the citation (looks like the curly braces weren't quite right so it split LIGO and Virgo at the end).
@whedon generate pdf from branch joss
Attempting PDF compilation from custom branch joss. Reticulating splines etc...
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Submitting author: @TomWagg (Thomas Wagg) Repository: https://github.com/TeamLEGWORK/LEGWORK Version: v0.1.3 Editor: @arfon Reviewer: @dbkeitel, @cmbiwer Archive: 10.5281/zenodo.5942553
:warning: JOSS reduced service mode :warning:
Due to the challenges of the COVID-19 pandemic, JOSS is currently operating in a "reduced service mode". You can read more about what that means in our blog post.
Status
Status badge code:
Reviewers and authors:
Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) by leaving comments in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)
Reviewer instructions & questions
@dbkeitel & @cmbiwer, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:
The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @arfon know.
✨ Please start on your review when you are able, and be sure to complete your review in the next six weeks, at the very latest ✨
Review checklist for @dbkeitel
✨ Important: Please do not use the Convert to issue functionality when working through this checklist, instead, please open any new issues associated with your review in the software repository associated with the submission. ✨
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
Review checklist for @cmbiwer
✨ Important: Please do not use the Convert to issue functionality when working through this checklist, instead, please open any new issues associated with your review in the software repository associated with the submission. ✨
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper