Joss-reviews: [REVIEW]: Hypothesis: A new approach to property-based testing

Created on 14 Nov 2019  ยท  67Comments  ยท  Source: openjournals/joss-reviews

Submitting author: @DRMacIver (David MacIver)
Repository: https://github.com/HypothesisWorks/hypothesis/
Version: 4.45.0
Editor: @danielskatz
Reviewer: @luizirber, @djmitche
Archive: 10.5281/zenodo.3548997

Status

status

Status badge code:

HTML: <a href="https://joss.theoj.org/papers/e429a3d476392c43bf6b35fe1ceffda1"><img src="https://joss.theoj.org/papers/e429a3d476392c43bf6b35fe1ceffda1/status.svg"></a>
Markdown: [![status](https://joss.theoj.org/papers/e429a3d476392c43bf6b35fe1ceffda1/status.svg)](https://joss.theoj.org/papers/e429a3d476392c43bf6b35fe1ceffda1)

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

@luizirber & @djmitche, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:

  1. Make sure you're logged in to your GitHub account
  2. Be sure to accept the invite at this URL: https://github.com/openjournals/joss-reviews/invitations

The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @danielskatz know.

โœจ Please try and complete your review in the next two weeks โœจ

Review checklist for @luizirber

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

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 (@DRMacIver) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

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: Do the authors clearly state 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?

Review checklist for @djmitche

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

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 (@DRMacIver) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

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: Do the authors clearly state 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?
accepted published recommend-accept review

Most helpful comment

๐Ÿ‘‹ @arfon - Also, is there any issue with the author list?

It's unconventional, but I think it's probably OK.

๐Ÿ‘‹ @arfon - Can you take a look at the license discussion here and the files in the repo and confirm that this is ok, or if not, suggest what changes need to be made?

I also think this is OK.

All 67 comments

Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @luizirber, @djmitche it looks like you're currently assigned to review 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:

  1. Set yourself as 'Not watching' https://github.com/openjournals/joss-reviews:

watching

  1. You may also like to change your default settings for this watching repositories in your GitHub profile here: https://github.com/settings/notifications

notifications

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
Attempting PDF compilation. Reticulating splines etc...

๐Ÿ‘‹ @luizirber and @djmitche - as I think you know, we'll carry out the review here - please carefully read the comments above, and get started when you can - check off items in your checklist, and open issues in the source repo, referring to this issue, when you see things that need to be changed by the authors.

And again, thanks very much for your quick and positive response to the review request.

If you have any issues or concerns, please let me know here

@danielskatz I think I see an error in the paper itself ("exception" instead of "extension"), but I'm not sure where to find the source for that paper. Pointers?

see paper.md and paper.bib in the source repo (root level)

Thanks! Aside from that (minor) issue I don't see any problems here.

Thanks @djmitche!

Only one nitpick: There is nothing wrong with the LICENSE.txt file per se, but if you put the content of the MPL 2.0 license linked it will show up as MPL 2.0 in the repository landing page (instead of View license, like it is now).

All my checkboxes are checked.

And I must say this was the easiest review I ever did, but it was somewhat expected because I tend to look for hypothesis dev practices as reference for my projects. The paper is also well written and does a great intro to property testing for scientific projects. Kudos @DRMacIver and @Zac-HD!

Thanks @luizirber :tada:

For the licence, I think this is mostly an effect of Github not having fantastic support for monorepos... hypothesis-python/LICENSE.txt is the file that gets packaged up, and it's the standard MPL2.0 text. We also use the setuptools license classifier, and have a copyright+license header in every .py file :smile:

@danielskatz - I think we're done, all boxes checked and we've merged the suggested wording change ๐Ÿ˜

Thanks all - I'll continue the process, first checking the license issue, then proof-reading and addressing the final steps

๐Ÿ‘‹ @arfon - Can you take a look at the license discussion here and the files in the repo and confirm that this is ok, or if not, suggest what changes need to be made?

@whedon generate pdf

Attempting PDF compilation. Reticulating splines etc...

๐Ÿ‘‹ @arfon - Also, is there any issue with the author list?

๐Ÿ‘‹ @arfon - Also, is there any issue with the author list?

It's unconventional, but I think it's probably OK.

๐Ÿ‘‹ @arfon - Can you take a look at the license discussion here and the files in the repo and confirm that this is ok, or if not, suggest what changes need to be made?

I also think this is OK.

@DRMacIver & @Zac-HD - regarding the wording in the paper:

  • "lifts a major difficulty" is an odd phrase to me - could we uses resolves or addresses instead of lifts?

Also, please see https://github.com/HypothesisWorks/hypothesis/pull/2212

@whedon check references

Attempting to check references...

```Reference check summary:

OK DOIs

  • 10.1145/351240.351266 is OK
  • 10.1145/1159789.1159792 is OK
  • 10.1109/32.988498 is OK
  • 10.1145/2254064.2254104 is OK
  • 10.1051/0004-6361/201322068 is OK
  • 10.3847/1538-3881/aabc4f is OK
  • 10.1109/MCSE.2011.37 is OK
  • 10.1145/3092703.3092711 is OK
  • 10.1145/3092703 is OK

MISSING DOIs

  • None

INVALID DOIs

  • None
    ```

@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...

@whedon accept

No archive DOI set. Exiting...

๐Ÿ‘‹ @DRMacIver & @Zac-HD - at this point, can you archive the software somewhere (e.g., Zenodo) and let me know the DOI. Please be sure the metadata (title and authors) associated with the archive match the JOSS paper.

Also, if the version number has changed, please let me know the updated version associated with the archived software.

We've been archiving at https://doi.org/10.5281/zenodo.1412597 for a while now! That's via the github integration though, so it automatically picks up all contributors (same two main authors though).

The version number has been bumped, to 4.45.1 ๐Ÿ˜

Also, if the version number has changed, please let me know the updated version associated with the archived software.

Ah this is something I meant to mention. Hypothesis versioning is very "If you don't like this version number, wait half an hour and there will be a new one" because of our automated release system. We've got a strong backwards compatibility policy and not much in this paper depends on the specific version, but I wonder if there's some way we could indicate that the paper is true of a version range? e.g. >= 4.45.0, < 5.0.0. It doesn't matter much and we can pick whichever version is out at point of paper release though.

We need the DOI of a single version of the code, and the corresponding version number.

I suggest we use http://doi.org/10.5281/zenodo.3548997 and version 4.45.0

Ok?

That's as good as anything else ๐Ÿ˜

@whedon set 4.45.0 as version

OK. 4.45.0 is the version.

@whedon set 10.5281/zenodo.3548997 as archive

OK. 10.5281/zenodo.3548997 is the archive.

@whedon accept

Attempting dry run of processing paper acceptance...

```Reference check summary:

OK DOIs

  • 10.1145/351240.351266 is OK
  • 10.1145/1159789.1159792 is OK
  • 10.1109/32.988498 is OK
  • 10.1145/2254064.2254104 is OK
  • 10.1051/0004-6361/201322068 is OK
  • 10.3847/1538-3881/aabc4f is OK
  • 10.1109/MCSE.2011.37 is OK
  • 10.1145/3092703.3092711 is OK
  • 10.1145/3092703 is OK

MISSING DOIs

  • None

INVALID DOIs

  • None
    ```

Check final proof :point_right: https://github.com/openjournals/joss-papers/pull/1118

If the paper PDF and Crossref deposit XML look good in https://github.com/openjournals/joss-papers/pull/1118, then you can now move forward with accepting the submission by compiling again with the flag deposit=true e.g.
@whedon accept deposit=true

๐Ÿ‘‹ @arfon - in the generated xml file, I see
<unstructured_citation>In Praise of Property-Bsed Testing, ://increment.com/testing/in-praise-of-property-based-testing/, 2019, MacIver, David R.</unstructured_citation> I realize there's an a missing in the title, but the URL starting with :// also seems odd - is this what is supposed to be in the XML? (the URL in the pdf is fine)

@danielskatz - this looks like a bug. Let's use Whedon to deposit metadata with Crossref here and I'll file a bug to investigate later.

ok, will proceed once the missing a PR is merged

@whedon generate pdf

Attempting PDF compilation. Reticulating splines etc...

@whedon accept

Attempting dry run of processing paper acceptance...

```Reference check summary:

OK DOIs

  • 10.1145/351240.351266 is OK
  • 10.1145/1159789.1159792 is OK
  • 10.1109/32.988498 is OK
  • 10.1145/2254064.2254104 is OK
  • 10.1051/0004-6361/201322068 is OK
  • 10.3847/1538-3881/aabc4f is OK
  • 10.1109/MCSE.2011.37 is OK
  • 10.1145/3092703.3092711 is OK
  • 10.1145/3092703 is OK

MISSING DOIs

  • None

INVALID DOIs

  • None
    ```

Check final proof :point_right: https://github.com/openjournals/joss-papers/pull/1119

If the paper PDF and Crossref deposit XML look good in https://github.com/openjournals/joss-papers/pull/1119, then you can now move forward with accepting the submission by compiling again with the flag deposit=true e.g.
@whedon accept deposit=true

@whedon accept deposit=true

Doing it live! Attempting automated processing of paper acceptance...

๐Ÿ‘‹ @luizirber & @djmitche - thanks for doing your reviews quite quickly, and sorry for all the extra later traffic on this thread

๐Ÿฆ๐Ÿฆ๐Ÿฆ ๐Ÿ‘‰ Tweet for this paper ๐Ÿ‘ˆ ๐Ÿฆ๐Ÿฆ๐Ÿฆ

๐Ÿšจ๐Ÿšจ๐Ÿšจ THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! ๐Ÿšจ๐Ÿšจ๐Ÿšจ

Here's what you must now do:

  1. Check final PDF and Crossref metadata that was deposited :point_right: https://github.com/openjournals/joss-papers/pull/1120
  2. Wait a couple of minutes to verify that the paper DOI resolves https://doi.org/10.21105/joss.01891
  3. If everything looks good, then close this review issue.
  4. Party like you just published a paper! ๐ŸŽ‰๐ŸŒˆ๐Ÿฆ„๐Ÿ’ƒ๐Ÿ‘ป๐Ÿค˜

    Any issues? notify your editorial technical team...

๐Ÿ‘‹ @DRMacIver & @Zac-HD - thanks for being quite responsive, and congratulations on your publication!

(We'll close this issue shortly)

๐Ÿ‘‹ @arfon - can you please check/fix the crossref xml data related to the url of the citation we discussed above?

๐Ÿ‘‹ @arfon - I'm going to close this now, but feel free to reopen it if you need to re the crossref issue

: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:
[![DOI](https://joss.theoj.org/papers/10.21105/joss.01891/status.svg)](https://doi.org/10.21105/joss.01891)

HTML:
<a style="border-width:0" href="https://doi.org/10.21105/joss.01891">
  <img src="https://joss.theoj.org/papers/10.21105/joss.01891/status.svg" alt="DOI badge" >
</a>

reStructuredText:
.. image:: https://joss.theoj.org/papers/10.21105/joss.01891/status.svg
   :target: https://doi.org/10.21105/joss.01891

This is how it will look in your documentation:

DOI

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:

This is but a tiny sliver of the email I get from GitHub every day :)

Thanks to all for your hard work on JOSS :)

Was this page helpful?
0 / 5 - 0 ratings