Closed editorialbot closed 5 months ago
Hello humans, I'm @editorialbot, a robot that can help you with some common editorial tasks.
For a list of things I can do to help you, just type:
@editorialbot commands
For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:
@editorialbot generate pdf
Software report:
github.com/AlDanial/cloc v 1.90 T=0.18 s (326.4 files/s, 31723.2 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Julia 33 618 940 1913
CSV 5 0 0 773
Markdown 7 96 0 449
YAML 9 79 91 398
TeX 1 16 0 219
TOML 4 8 0 134
-------------------------------------------------------------------------------
SUM: 59 817 1031 3886
-------------------------------------------------------------------------------
Commit count by author:
333 Iniyan Natarajan
4 CompatHelper Julia
Paper file info:
π Wordcount for paper.md
is 1274
β
The paper includes a Statement of need
section
License info:
β
License found: MIT License
(Valid open source OSI approved license)
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.1137/141000671 is OK
- 10.21105/joss.04457 is OK
- 10.3847/1538-4357/aab6a8 is OK
- 10.1051/aas:1996146 is OK
- 10.3847/2041-8213/ab0ec7 is OK
- 10.3847/2041-8213/ab0c96 is OK
- 10.3390/galaxies11050107 is OK
- 10.1146/annurev.aa.22.090184.000525 is OK
- 10.3847/2041-8213/ac6674 is OK
- 10.1051/0004-6361/201936622 is OK
- 10.1093/mnras/stac531 is OK
- 10.1051/0004-6361/201016082 is OK
- 10.3847/1538-4357/ab328d is OK
- 10.1051/0004-6361/201935181 is OK
MISSING DOIs
- No DOI given, and none found for title: Gaussian processes for machine learning
INVALID DOIs
- None
@kiranshila, @michael-petersen β This is the review thread for the paper. All of our correspondence will happen here from now on. Thanks again for agreeing to participate!
π Please read the "Reviewer instructions & questions" in the first comment above, and generate your checklists by commenting @editorialbot generate my checklist
on this issue ASAP. 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 openjournals/joss-reviews#6573
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 please try to make a start ahead of this as JOSS reviews are by their nature iterative and any early feedback you may be able to provide to the author will be very helpful in meeting this schedule. Please get your review started as soon as possible!
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Great work, Iniyan. Good to see more Julia in radio astronomy!
Fantastic paper. I think the objectives were clear, and the paper covers the correct mix of theory and practice.
Critical - Please include something like CONTRIBUTING
to the repo that describes the community guidelines for contributors, issue reporting, and support seeking.
I have been having a heck of a time trying to get this to install, although this seems par for the course given both the C++ and Python FFI that's happening. I have tried a few different ways, using my setup on Arch Linux, on RHEL 8, in a pure nix shell (nix-shell -p julia-bin cacert --pure
), and on a remote Ubuntu server. I only managed to get it to install in the nix shell and on ubuntu. I've gotten a range of issues from PythonCall failing to do some stuff in Conda, linker errors with stuff from cxxwrap, and even a segfault from PythonCall. To be clear, I don't think this is your packaging problem, but just exposes a lot of fragility in Julia's FFI. It may make sense to expand your CI matrix a bit to other platforms. Usually for Julia this wouldn't matter, but again - fragile FFI means this probably is worth it. As I wrote the first CXXWrap version of Casacore, I know this pain.
This being said, I haven't been able to run any of your examples. Your tutorials refer to some unknown paths and data. Presumably these are the ones in the repo and the docs are set up like this for doc tests, but just going off the docs, I am unable to follow the tutorials. There are also some instances of using .Anime
, which would be correct in the CI context, but not for a tutorial.
For example, I'm trying to follow this tutorial, in which I correct the import, and clone your repo, fix the paths, I still get an error (I can open an issue if you like). In fact, it appears that the aforementioned segfault comes from giving invalid paths to some FFI, which means there might need to be some more error checking in some of these FFI shims. For completeness, here is the error I got when I got closest to it working
The rest of the documentation, though, is fantastic! You cover all the math someone might need to know and have beautiful plots and all the API docs we would want, I just couldn't run any of it. The only actionable thing I can say then is you could tweak the tutorials to be a bit more follow-able. Even if that's "clone the repo and cd into this path to get the example data", or "here's the link to download the example data", etc. Your tests run in CI, so the installation stuff is some combination of my setup and the Julia's packaging, so I can't fault you for that.
Hi Kiran,
Thanks very much for your comments! I have added a Contributing section to the README.
I see this error with the latest PythonCall. PythonCall has had a few releases since v0.9.15, which trip up the arguments being passed to the Python functions by msfromconfig function. Restricting PythonCall to v0.9.15 gets rid of this error.
The version tagged to the REVIEW is 0.3.0 but I have made a 0.4.0 release since then. The PyhtonCall releases happened after I released this version, so I have updated the Project.toml on the main repo restricting PythonCall to v0.9.15. So, the latest version on the main branch should not give this error.
Would it be possible for you (and would it be okay) to test the main branch for the review, or should I make a new release with only this change made to Project.toml?
Also, I will expand the CI to other platforms, but I do not have ready access to them. Any idea on how to easily debug if I run into error on the other platforms? Thanks!
Hi Kiran,
I was wondering if you were able to get rid of the PythonCall error with the latest code in the main branch? I have also added instructions to generate all the tutorials locally in the documentation. Please let me know if this works for you.
Thanks!
@michael-petersen, @kiranshila β I'm checking in here to see how things are going with your reviews. Please take a look here again ASAP. Thanks!!
Hi Kiran,
I was wondering if you were able to get rid of the PythonCall error with the latest code in the main branch? I have also added instructions to generate all the tutorials locally in the documentation. Please let me know if this works for you.
Thanks!
Great! I'll give it a shot again!
@dfm I have mostly completed my review, just was trying to get some examples to run on my local machine.
Hi,
@iniyannatarajan Thanks for the thoughts on MacOS install, it seems like that is still a work in progress, which is fine. Maybe worth noting in the installation documentation?
An Ubuntu installation is very smooth, but I agree with @kiranshila that the tutorial currently refers to some local paths (e.g. the tutorial here) and I haven't been able to run any of the examples locally. @iniyannatarajan I'll open an issue to this effect, since it looks like you might be able to hack this with relativepath = joinpath(pathof(Anime),"../../")
, but I'm not sure that is behaving as intended.
Hi Michael,
Thanks for your comments!
I have added a note regarding MacOS in the installation section of the documentation here. Downgrading casatools
to version 6.5.1.23 in CondaPkg.toml
could be a solution for MacOS as Lindy Blackburn has mentioned here, but I have currently left it at version 6.5.5.21 which has been used for all of the testing so far.
I have updated the instructions for downloading the source code and generating all the docs & tutorials locally in the tutorial section of the documentation. I have also removed the relative path loading from the documentation to avoid confusion (it is still internally used), so that anyone with Anime
installed in their local Julia environment can just type using Anime
and step through the tutorials.
Please note that I have refactored the code since v0.3 or v0.4 and the latest code in the main branch (and the dev docs) reflects the changes mentioned above. Let me know if the above changes work for you.
@iniyannatarajan I'm still having trouble installing on the main branch (on Arch linux). I tried from a cleared Julia and pip cache with the same results. Looks like now I'm getting a numpy version problem? I've attached the log.
It seems the scipy version needs to be bumped (as a transitive dep of casatasks) as numpy 1.24 doesn't have a np.int
type, which scipy refers to.
@kiranshila Thanks! I downgraded numpy to 1.23.5 instead. Would this work?
That did the trick! Classic python versioning, I blame CASA. I'm surprised this didn't come up in tests, I guess things were using an older cached version? Like, you'd think casatools would have noticed.
I was able to run the tutorials manually by cloning the repo and setting relativepath
to the cloned dir! Everything is now working as expected. Great job on the docs updates, everything looks good!
Maybe a last little note (unrelated to the review), this is still a relatively complex software stack with c libraries, julia, python, and all sorts of crazy interlanguage things happening. It might be in your interest to explore some deterministic packaging to create environments for your users with the likes of Nix, Guix, or Spack. I've been exploring this with our telescope project with decent success. Maybe something to check out if you get bored :)
@dfm I've completed my review and recommend this paper for publication
Thanks @kiranshila for your comments!
The logs of previous builds on ubuntu-latest show that numpy 1.24.4 and scipy 1.10.1 were being installed and the tests had run without issues (same on my local Ubuntu machine too), which is puzzling to me.
I will check out the packaging tools you have recommended. The idea is to ultimately eliminate the reliance on external software and python dependencies. Only MS creation from scratch uses python casatools/casatasks directly. To avoid this, Casacore.jl needs to support the simulator tool. If I get time I will see if I can add this to Casacore.jl.
Hi @iniyannatarajan ,
I'm able to run most of the tutorial now on Ubuntu, no problem -- thanks for the updates!
However, I'm still crashing out of the first tutorial ('Creating Data Sets') with an opaque segfault that I'm not sure how to diagnose. @kiranshila , you were able to run this tutorial fine?
I'm guessing it is some sort of Python issue under the hood, but for the purposes of this test, I'm just blindly following the documentation.
The docs for 'Compute coherency matrix' still need the path fixes in the dev version.
I'm very happy with the other changes and the text of the paper is great. Just want to see the tutorial to some sort of conclusion and then am happy to sign off!
Hi @michael-petersen, thanks for catching this!
I have updated the documentation with the path fixes and additional clarification, but I too get the same error as you when I create a temporary environment in Julia REPL, install Anime from GitHub, and call createmsfromuvfits
.
It does not happen if I do something like include("/path/to/Anime.jl/src/Anime.jl")
in this temporary environment (which replaces module Anime with a warning) and then call the same function; or if I do importuvfits = pyimport("casatasks" => "importuvfits")
and then call importuvfits
directly.
I will add an instruction to this effect in the tutorial for creating data sets for now and look into this issue.
Good suggestion, @iniyannatarajan , that works for me! Just add that instruction to the tutorial, and then you are good as far as I am concerned. Good luck with tracking down those annoying little bugs in the long run!
To conclude my review, just a few more compliments on the paper; I really liked the control flow figure, and appreciated the inclusion of a 'Related Software' section, as someone not familiar with the radio astronomy Julia offerings. Great work!
@dfm , I have completed my review and recommend the paper for publication.
Hi @michael-petersen , thanks for your comments!
I have added the instruction to the docs here. I will make a new release with the updates made since version 0.4.0 (plus additional minor updates) in the next week or so.
Getting rid of the python dependencies is indeed a high priority item now without losing the ability to handle CASA data sets. New data schemas are being developed by a few different VLBI/radio astronomy groups, for which I (and a few others) are interested in developing native support in Julia. Ultimately, we would like to move to these as the primary formats for storing data and metadata.
One final note (not related to the review), it may be useful to bundle WSClean and AATM as BinaryBuilder artifacts instead of relying on the user to install this software. This is the βpath of the least resistanceβ for Julia libraries requiring external stuff.
@kiranshila Thanks! I am indeed about to replace AATM with AM for atmospheric modelling and have already built a binary wrapper here for it. This will replace AATM in future releases.
I will try to build a binary wrapper for WSClean
. The idea is to reproduce its functionality natively in Julia (similar to packages such as Comrade.jl
) but that is slightly longer term for now.
@editorialbot generate pdf
@editorialbot check references
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.1137/141000671 is OK
- 10.21105/joss.04457 is OK
- 10.3847/1538-4357/aab6a8 is OK
- 10.1051/aas:1996146 is OK
- 10.3847/2041-8213/ab0ec7 is OK
- 10.3847/2041-8213/ab0c96 is OK
- 10.3390/galaxies11050107 is OK
- 10.1146/annurev.aa.22.090184.000525 is OK
- 10.3847/2041-8213/ac6674 is OK
- 10.1051/0004-6361/201936622 is OK
- 10.1093/mnras/stac531 is OK
- 10.1051/0004-6361/201016082 is OK
- 10.3847/1538-4357/ab328d is OK
- 10.1051/0004-6361/201935181 is OK
MISSING DOIs
- No DOI given, and none found for title: Gaussian processes for machine learning
INVALID DOIs
- None
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@kiranshila, @michael-petersen β Thanks for your thorough and constructive reviews!!
@iniyannatarajan β I've opened a small PR with some minor edits to the manuscript, please take a look and merge or let me know what you think.
Once you've done that:
@dfm Thanks for the PR. I have made some minor updates to the paper draft and created a new release and DOI for the software.
Version: v0.5.0 DOI: 10.5281/zenodo.11238336
@editorialbot set v0.5.0 as version
Done! version is now v0.5.0
@editorialbot set 10.5281/zenodo.11238336 as archive
Done! archive is now 10.5281/zenodo.11238336
@editorialbot generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@editorialbot recommend-accept
Attempting dry run of processing paper acceptance...
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.1137/141000671 is OK
- 10.21105/joss.04457 is OK
- 10.3847/1538-4357/aab6a8 is OK
- 10.1051/aas:1996146 is OK
- 10.3847/2041-8213/ab0ec7 is OK
- 10.3847/2041-8213/ab0c96 is OK
- 10.3390/galaxies11050107 is OK
- 10.1146/annurev.aa.22.090184.000525 is OK
- 10.3847/2041-8213/ac6674 is OK
- 10.1051/0004-6361/201936622 is OK
- 10.1093/mnras/stac531 is OK
- 10.1051/0004-6361/201016082 is OK
- 10.3847/1538-4357/ab328d is OK
- 10.1051/0004-6361/201935181 is OK
MISSING DOIs
- None
INVALID DOIs
- https://doi.org/10.7551/mitpress/3206.001.0001 is INVALID because of 'https://doi.org/' prefix
@iniyannatarajan β Can you fix that last DOI (remove the "https://doi.org/" part)? Then I'll run the final processing!
:warning: Error preparing paper acceptance. The generated XML metadata file is invalid.
Element doi: [facet 'pattern'] The value 'https://doi.org/10.7551/mitpress/3206.001.0001' is not accepted by the pattern '10\.[0-9]{4,9}/.{1,200}'.
@dfm I've fixed it
@editorialbot recommend-accept
Attempting dry run of processing paper acceptance...
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.1137/141000671 is OK
- 10.21105/joss.04457 is OK
- 10.3847/1538-4357/aab6a8 is OK
- 10.1051/aas:1996146 is OK
- 10.3847/2041-8213/ab0ec7 is OK
- 10.3847/2041-8213/ab0c96 is OK
- 10.3390/galaxies11050107 is OK
- 10.1146/annurev.aa.22.090184.000525 is OK
- 10.3847/2041-8213/ac6674 is OK
- 10.1051/0004-6361/201936622 is OK
- 10.1093/mnras/stac531 is OK
- 10.1051/0004-6361/201016082 is OK
- 10.3847/1538-4357/ab328d is OK
- 10.1051/0004-6361/201935181 is OK
- 10.7551/mitpress/3206.001.0001 is OK
MISSING DOIs
- None
INVALID DOIs
- None
:wave: @openjournals/aass-eics, this paper is ready to be accepted and published.
Check final proof :point_right::page_facing_up: Download article
If the paper PDF and the deposit XML files look good in https://github.com/openjournals/joss-papers/pull/5387, then you can now move forward with accepting the submission by compiling again with the command @editorialbot accept
Submitting author: !--author-handle-->@iniyannatarajan<!--end-author-handle-- (Iniyan Natarajan) Repository: https://github.com/iniyannatarajan/Anime.jl Branch with paper.md (empty if default branch): Version: v0.5.0 Editor: !--editor-->@dfm<!--end-editor-- Reviewers: @kiranshila, @michael-petersen Archive: 10.5281/zenodo.11238336
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
@kiranshila & @michael-petersen, your review will be checklist based. Each of you will have a separate checklist that you should update when carrying out your review. First of all you need to run this command in a separate comment to create the checklist:
The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @dfm 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 β¨
Checklists
π Checklist for @michael-petersen
π Checklist for @kiranshila