-
-
Notifications
You must be signed in to change notification settings - Fork 39
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
[REVIEW]: dlmmc: Dynamical linear model regression for atmospheric time-series analysis #1157
Comments
Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @Chilipp, it looks like you're currently assigned as the reviewer for this paper 🎉. ⭐ Important ⭐ 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:
|
|
@Chilipp, @taqtiqa-mark - thanks for agreeing to review. (Note that @Chilipp will not be able to start for a week.) If you have any questions, please ask. Otherwise, I'll expect that you will work through the checklists above and raise issues as you find items you cannot check off. |
👋 @Chilipp, @taqtiqa-mark - I hope you can start reviewing this soon - at least, the code of conduct and conflict of interest boxes for each of you... |
Yes, @danielskatz, I will start tomorrow. My apologies for the delay |
👋 @taqtiqa-mark - are you able to get started too? |
Hello @justinalsing! I am so far done with my first look into your software and I would like to have your feedback on some of the following points: General checks
Functionality
Documentation
Software paper
|
👋 @justinalsing - note that we're waiting for your inputs here |
Hi @CHILLIP, @danielskatz, @taqtiqa-mark Thanks for all the feedback and sorry for the delay. Let me try to address your points: Version thanks for pointing this out! I’ve just made a release, v1.0 Installation I saw you had problems installing with pip. The dependency that typically causes problems (as in your case) is pyston, since it needs to play nicely with the C++ compilers on your machine. For some it has worked with pip, for others it seems to work with conda but not pip. I’ve added a note to the README that says you can use “conda install (recommended) or pip” and another note, “Note: conda seems to be more stable for getting pystan to work than pip - if you installed with pip and compiling the stan models throws errors, try again with with conda.” Do you have any other suggestions for making the install instructions more solid? I’ve also added a point in the README that prior knowledge of python/jupyter is needed to be able to fully follow the tutorial, as suggested. Agree this was a good idea. Statement of need yes, I intend that the HMC-Kalman filtering framework can be used to expand the suite of models beyond those initially provided. Essentially the space of DLM models are characterized by a few model matrices; more-or-less all that needs modifying in the stan model code to implement a new one is to replace the model matrices and add any additional hyper-parameters. I’ve now provided a CONTRIBUTING file as you suggested giving details of how to contribute extended models to the suite. It does assume familiarity with stan, which I think is needed to contribute meaningfully. I’d be happy to give further details here if you feel they are needed and am very open to suggestions on how to improve this. Automated tests In my mind the tutorial also serves this purpose: if the models compile and the tutorial runs through without error, you’re in good shape. I’ve added a note to the README that the tutorial also serves this purpose. However, if you feel additional tests are required I am open to suggestions.. Community guidelines see above re added CONTRIBUTING file. References I’ve updated the references in the model_descriptions.pdf as suggested (thanks for pointing those out) I hope this addresses your points and look forward to hearing your further thoughts Thanks again! |
My apologies for the delay. It took a while to find my first notes. which follow: I've had a quick look at the model PDF and some of the repository and can say, while its fresh in my mind: The use-case appears to be reasonably well motivated - implementing a known/published model, and a non-trivial software stack (e.g. parallel libraries). My working assumption is the question of originality is out-of-scope - it suffices that the library implements a model already published. Consequently, while non-linear AR/(G)ARCH models are wide spread, I haven't investigated the question of whether this improves on them. However I would suggest that data sets used thought to have those properties from the R-project, would be used in the test suite. Given the JOSS is software focused I'm placing all emphasis on the software engineering aspects, and almost non on the contribution to domain knowledge. That non-trivial software stack nature suggests weight be given to the following observations:
I'll update this with links to the issues opened against the upstream project, as I open them. @danielskatz, for me blocking issues are:
|
Thanks @taqtiqa-mark - these details are very helpful. In JOSS, we don't really have results like
We just say what's needed to be done, and then let the author decide to do this or not. In other words, we keep going until the submission is acceptable or we decide that it cannot be made so. |
Hi @taqtiqa-mark , Thanks for your feedback. I think it would help it I reiterate/clarify the scope of this code. The code is a suite of statistical models, written in stan, than can then be ran on user’s data using the pystan interface (provided by the stan team). Along with the models, I provide a tutorial covering how to run the stan models using pystan — this is really to ease the way for users who are not familiar with pystan. For users who want to run many DLMs quickly but are not used to setting up MPI runs with python, I also provide a template for how to run models in parallel this way. The tutorial and MPI-run template are really examples of how to use the code to help users get up and running quickly, rather than central to the package. That is why, for example, I do not attempt to give openmpi install instructions that will work robustly for everyone — as you point out that is a difficult thing to do in practice. Since the package is a suite of models implemented in a probabilistic-programming language, the model code “in of itself” does not have any “functionality” to be documented, ie., the model codes in There is a question of whether a suite of stan models constitutes a valid open source project. I believe it does for the following reasons: I hope this focuses the discussion on what I should do to make this code ready for public consumption. @taqtiqa-mark and @CHILLIP, you both raised automated tests and more robust install instructions. If you have some concrete ideas/specifications for what you think is needed here I’d greatly appreciate it. The other related point you raised @taqtiqa-mark is validation. Validation of Bayesian codes is non-trivial, requiring either comparison to a known analytical posterior (hard in this case), comparing to another code, or running on a large ensemble of mock data vectors and looking at the statistical properties of the results (expensive). If you really feel this is a requirement I’d love to hear what you think would be most worthwhile here. |
I've amended my comment o remove that observation. @justinalsing makes the following observation:
My assumption is that this question has been resolved in the affirmative by the (sub-)editor(s) - otherwise this would not have progressed to the review stage. If incorrect, are there JOSS guidelines to on what is a "valid open source project" (for the purposes of JOSS) to guide reviewers to address this issue in a way that results in consistent outcomes? I'll address @justinalsing response separately - by editing my comments above to add links to issue in his repository - to prevent this thread from becoming spaghetti. |
Yes, this is correct. |
Also, @taqtiqa-mark - I think that rather than editing comments to address responses, it's better to just write a new comment, and, as you've said, to open issues in the source repository with links to them here. And so, to get an up-to-date status, can you (and also @Chilipp) please add new comments below that tell us what your current concerns are (linking to issues as needed)? |
thanks @justinalsing for your detailed responses to my comments and the ones from @taqtiqa-mark ! I especially appreciate your work on the contribution guidelines. There are still some open points and I would like to outsource them to other issues in your repository:
If you work on these issues, please directly comment in the issues in your repository as this is also recommended in the review process guidelines above
|
Re: automated tests - The JOSS requirement is just "Are there automated tests or manual steps described so that the function of the software can be verified?" While automated tests are generally better for the software, manual steps are sufficient for JOSS acceptance. Specifically, adding good automated tests can be a longer-term activity than JOSS acceptance. |
Thanks @danielskatz for your clarification on this topic. @justinalsing states above (#1157 (comment))
Would this be sufficient for an acceptance in JOSS? Because the feeling of @taqtiqa-mark and me is that there should be some more tests implemented (see justinalsing/dlmmc#5) |
Hi @Chilipp , @danielskatz , @taqtiqa-mark , Thanks for your detailed comments and for solidifying the action-points into concrete issues, I'll get to these ASAP. Thanks for re-raising exactly what is sufficient for JOSS acceptance re tests. Given Daniel's comment about manual vs automated tests, I was going to suggest that the path of least resistance for me would be to beef up the tutorial to (a) have sections to run all of the implemented models rather than just the "vanilla" one, and (b) run each model on mock data generated from the same model so that the examples serve as explicit validation tests in addition to testing whether the code runs. If that sounds sufficient I'll go ahead and put those in there - otherwise it'll take a good while longer for me to implement an automated test suite. Thanks! |
I believe this would be reasonable. |
Great - I'll wait for confirmation from the reviewers @Chilipp and @taqtiqa-mark that they would be satisfied with this and then go ahead and implement |
OK so I've now done the following: created an isolated python environment using virtualenv, then followed my install instructions: pip install numpy scipy matplotlib netCDF4 pystan and then tested that the jupyter notebook dlm_tutorial.ipynb runs through without errors by doing jupyter-nbconvert --to notebook --execute --ExecutePreprocessor.timeout=100000 dlm_tutorial.ipynb This all worked fine - I attach a text file with the terminal session for all of the above (from creating the virtual environment through to running the test). One point of contention though: I used pip to install dependencies (which works fine for me and other colleagues who use pystan extensively). However, @Chilipp did not get a working pystan set up when he did pip install, but he did with conda, so suggested that I change the install instructions to conda (which I duly did). But I don't use conda personally or have it set up So, is this satisfactory for you, and any ideas for resolving the pip/conda issue? I'll note that any issues are isolated to the dependency pystan (which is well documented at https://pystan.readthedocs.io/en/latest/). I feel like providing the existing install instructions, and pointing users to the pystan docs in the README in case they have issues with that particular package, is appropriate for this? Thanks, |
Hi @taqtiqa-mark and @justinalsing, Just to make sure I understand where things are, it looks like Mark has created three issues
that are blocking his acceptance of the installation part of the submission, which is the last part that needs to be resolved. And this is now in Justin's court to respond to them. Is this correct? I also see justinalsing/dlmmc#5 is still open, but apparently this is not blocking anything for Mark. |
I've responded to the remaining three issues. As far as I can see the install instructions seem to be working fine, having already been changed from |
Hi @taqtiqa-mark - I've done some more work on the install instructions and responded to your outstanding issues. I hope we are getting close now! |
@danielskatz: LGTM |
👋 @justinalsing - can you make a new archive of the software in zenodo, figshare, etc.? And paste the DOI here? Also, if the version has changed, please let me know the new version number. |
Thanks very much @taqtiqa-mark and @Chilipp for your work on this review! |
Yes, thanks @taqtiqa-mark @Chilipp @danielskatz for your work and patience! @danielskatz I've archived with Zenodo as advised - here's the DOI and the new version number is v1.1 |
@whedon set archive 10.5281/zenodo.2660704 |
@whedon set 10.5281/zenodo.2660704 as archive |
OK. 10.5281/zenodo.2660704 is the archive. |
@whedon set 1.1 as version |
OK. 1.1 is the version. |
@whedon accept |
|
|
Check final proof 👉 openjournals/joss-papers#657 If the paper PDF and Crossref deposit XML look good in openjournals/joss-papers#657, then you can now move forward with accepting the submission by compiling again with the flag
|
... in progress ... will continue shortly |
@whedon accept deposit=true |
|
🚨🚨🚨 THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! 🚨🚨🚨 Here's what you must now do:
Any issues? notify your editorial technical team... |
🎉🎉🎉 Congratulations on your paper acceptance! 🎉🎉🎉 If you would like to include a link to your paper from your README use the following code snippets:
This is how it will look in your documentation: We need your help! Journal of Open Source Software is a community-run journal and relies upon volunteer effort. If you'd like to support us please consider doing either one (or both) of the the following:
|
Submitting author: @justinalsing (Justin Alsing)
Repository: https://github.com/justinalsing/dlmmc
Version: 1.1
Editor: @danielskatz
Reviewer: @Chilipp, @taqtiqa-mark
Archive: 10.5281/zenodo.2660704
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) 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
@Chilipp & @taqtiqa-mark, 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.theoj.org/about#reviewer_guidelines. Any questions/concerns please let @danielskatz know.
✨ Please try and complete your review in the next two weeks ✨
Review checklist for @Chilipp
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
paper.md
file include a list of authors with their affiliations?Review checklist for @taqtiqa-mark
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
paper.md
file include a list of authors with their affiliations?The text was updated successfully, but these errors were encountered: