Submitting author: @ejhigson (Edward Higson)
Repository: https://github.com/ejhigson/dyPolyChord
Version: v0.0.4
Editor: @arfon
Reviewer: @andrewfowlie, @zhampel
Archive: 10.5281/zenodo.1439193
Status badge code:
HTML: <a href="http://joss.theoj.org/papers/d5e465b4d6cecf0de7083c6d7c72951b"><img src="http://joss.theoj.org/papers/d5e465b4d6cecf0de7083c6d7c72951b/status.svg"></a>
Markdown: [](http://joss.theoj.org/papers/d5e465b4d6cecf0de7083c6d7c72951b)
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.)
@andrewfowlie & @zhampel, 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 @arfon know.
✨ Please try and complete your review in the next two weeks ✨
paper.md file include a list of authors with their affiliations?paper.md file include a list of authors with their affiliations?Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @andrewfowlie, it looks like you're currently assigned as the reviewer for this paper :tada:.
: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
Attempting PDF compilation. Reticulating splines etc...
(minor addition to paper.md giving more details about performance)
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
I have completed the checklist of tasks. The program, documentation and software paper were well-written and I think the program could be very useful for the scientific community.
@zhampel thank you very much for taking the time to review this software - I really appreciate it! Do you know how long it will take you to finish your review?
I am actually going to submit my PhD thesis on Monday and it would be ideal if this is all done by then and I can cite the paper in it, but this is no big deal so no worries at all if that is not convenient!
@ejhigson I will be done by the weekend for sure, no worries.
Amazing - thank you very much!!
@zhampel did you get a chance to look at the submission already? Thank you again for your help with this - it is much appreciated!
@ejhigson Yes, I have been checking things for the last few days. I wanted to make a few notes about Installation and Performance. I will not require these for publication, but I will require you make a few notes in the documentation regarding a few comments I have, and I strongly suggest you address after your thesis ;)
I had no troubles installing and subsequently running with Python 3. Your setup.py script works seamlessly there.
However, I did have issues with Python 2.7. The steps required to get running in Python 2.7 were the following:
virtualenv -p /usr/bin/python2 dyPolyChord_reviewsource dyPolyChord_review/bin/activatepython setup.py installpip install futures pytz python-dateutilnosetests:ERROR: Failure: ImportError (No module named concurrent.futures)
After doing so, then the nosetests worked fine.
I suggest you simply make a note in the docs that in Python 2.7 you need to run step 4 OR you take time to address this in your setup script reqs. But again, given your thesis, I think the docs method is sufficient. Of course, if you haven't had these issues before, then please explicitly provide some cmd line steps that work for you.
Finally, with Python 2.7 on my Mac, I had to run additionally run the following to get the python setup.py install step to work:
pip install pytest-runner nestcheckIn order to get the PyPolyChord functionality to work, I had to run sudo apt-get install libblacs-mpi-dev to get mpif90 installed. There is not streamlined PolyChord installation documentation that I could see in the package, unless I completely missed something. In addition, I see that CCPForge is closing, so there another repo must be made available for its use in the near future. This is of course beyond the scope of this review, but I wanted to make note of it.
I know that you've discussed and addressed this with @andrewfowlie, so I understand that the package is designed to work without PyPolyChord, but I think that could be clearer in the docs in one of two ways:
If you can show a few examples that would be best, but I leave that up to you.
@ejhigson I think you should make a few notes in your documentation addressing my comments. I have however, checked off all the boxes because the dyPolyChord project is well written, does work as advertised, and is well documented. Good luck with your thesis!
For the purposes of this submission, @arfon I have completed my review.
@ejhigson Yes, I have been checking things for the last few days. I wanted to make a few notes about Installation and Performance. I will not require these for publication, but I will require you make a few notes in the documentation regarding a few comments I have, and I strongly suggest you address after your thesis ;)
Thank you so much for being so accommodating!!
However, I did have issues with Python 2.7. The steps required to get running in Python 2.7 were the following:
virtualenv -p /usr/bin/python2 dyPolyChord_reviewsource dyPolyChord_review/bin/activatepython setup.py installpip install futures pytz python-dateutil
If I didn't perform step 4, then I would get the following main error messages (including a bunch of other import garbage) when runningnosetests:
- nose.plugins.cover: ERROR: Coverage not available: unable to import coverage module
EE
======================================================================
ERROR: Failure: ImportError (No module named concurrent.futures)- ImportError: No module named concurrent.futures
- ImportError: Missing required dependencies ['pytz', 'dateutil']
After doing so, then the
nosetestsworked fine.I suggest you simply make a note in the docs that in Python 2.7 you need to run step 4 OR you take time to address this in your setup script reqs. But again, given your thesis, I think the docs method is sufficient. Of course, if you haven't had these issues before, then please explicitly provide some cmd line steps that work for you.
Thank you for pointing this out! I like your testing with a fresh virtualenv - I will use this in future. I managed to replicate this issue and fix it in 05642826781b73868a04f6ba629ce5d7fb271188 by adding
':python_version == "2.7"': ['futures', 'pytz', 'python-dateutil']
to setup.py.
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
PyPolyChord
In order to get the PyPolyChord functionality to work, I had to run
sudo apt-get install libblacs-mpi-devto get mpif90 installed. There is not streamlined PolyChord installation documentation that I could see in the package, unless I completely missed something. In addition, I see that _CCPForge is closing_, so there another repo must be made available for its use in the near future. This is of course beyond the scope of this review, but I wanted to make note of it.I know that you've discussed and addressed this with @andrewfowlie, so I understand that the package is designed to work without PyPolyChord, but I think that could be clearer in the docs in one of two ways:
- Make the fact that the tests can run without PyPolyChord uber clear, and perhaps provide some examples in the Performance section instead of just pointing the user to your dns package (perhaps you have some figures from writing your thesis... ;) )
- Provide a streamlined installation procedure for all parts, so that the Performance can be verified in a straightforward manner.
If you can show a few examples that would be best, but I leave that up to you.
Thank you for pointing this out! Unfortunately I don't have any control over PolyChord and its docs, install method etc. but I know the PolyChord authors are working on improved versions and are aware of the CCPForge closure.
I have updated the dyPolyChord install docs to make it (hopefully) much clearer that the tests run without PolyChord and why they do this. I also do indeed have more tests/plots of dyPolyChord performance which will be released after my PhD :) Unfortunately rigorous performance verification is rather computationally expensive, since the gains are biggest in high dimensional problems and the calculations need to be repeated many times. Nevertheless I intend to make my tests reproducible as much as possible given practical limitations.
@andrewfowlie and @zhampel thank you very much for taking the time to review this submission! Your feedback has been extremely helpful!
@arfon I think the reviews are now complete. I have archived an up to date version on zenodo at 10.5281/zenodo.1439193
@whedon set 10.5281/zenodo.1439193 as archive
OK. 10.5281/zenodo.1439193 is the archive.
@andrewfowlie and @zhampel thank you very much for taking the time to review this submission! Your feedback has been extremely helpful!
Yes, thanks @andrewfowlie and @zhampel for your excellent reviews here ✨
@ejhigson - your paper is now accepted into JOSS and your DOI is https://doi.org/10.21105/joss.00965 :zap: :rocket: :boom:
:tada::tada::tada: Congratulations on your paper acceptance! :tada::tada::tada:
If you would like to include a link to your paper from your README use the following code snippets:
Markdown:
[](https://doi.org/10.21105/joss.00965)
HTML:
<a style="border-width:0" href="https://doi.org/10.21105/joss.00965">
<img src="http://joss.theoj.org/papers/10.21105/joss.00965/status.svg" alt="DOI badge" >
</a>
reStructuredText:
.. image:: http://joss.theoj.org/papers/10.21105/joss.00965/status.svg
:target: https://doi.org/10.21105/joss.00965
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: