Submitting author: @RaphaelS1 (Raphael E. B. Sonabend)
Repository: https://github.com/xoopR/set6
Version: 0.2.0
Editor: @dpsanders
Reviewers: @dmbates, @wch, @davidjohannesmeyer
Archive: 10.5281/zenodo.3712054
: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 badge code:
HTML: <a href="https://joss.theoj.org/papers/c9b254149ce3cd6ff127c61615924c05"><img src="https://joss.theoj.org/papers/c9b254149ce3cd6ff127c61615924c05/status.svg"></a>
Markdown: [](https://joss.theoj.org/papers/c9b254149ce3cd6ff127c61615924c05)
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.)
@dmbates & @davidjohannesmeyer & @davidjohannesmeyer, 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 @dpsanders 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 ✨
Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @dmbates, @davidjohannesmeyer, @davidjohannesmeyer 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
Reference check summary:
OK DOIs
- 10.5281/zenodo.2647458 is OK
- 10.1093/carcin/bgs084 is OK
- 10.18637/jss.v031.i02 is OK
- 10.18637/jss.v040.i08 is OK
MISSING DOIs
- None
INVALID DOIs
- None
@whedon add @wch as reviewer
OK, @wch is now a reviewer
👋 Hi @davidjohannesmeyer, @dmbates and @wch. Just checking in to see how your reviews are going.
Please feel free to open issues directly in the repo, https://github.com/xoopR/set6. Thanks!
👋 Hi @davidjohannesmeyer, @dmbates and @wch: I'm checking in to check on progress with your reviews for the set6 submission to JOSS.
I have opened https://github.com/xoopR/set6/issues/54 regarding one of the examples - the first one, actually. I also see a couple of typos - e.g. under Key Design Principles, 2. Key Dependencies should read "... to any object-oriented package requiring ...". @dpsanders where should I report a typo?
Could someone remind me how to run the package checks? I cloned the git repository and tried a simple but unsuccessful approach
$ R CMD check set6
* using log directory ‘/home/bates/git/set6.Rcheck’
* using R version 4.0.2 (2020-06-22)
* using platform: x86_64-pc-linux-gnu (64-bit)
* using session charset: UTF-8
* checking for file ‘set6/DESCRIPTION’ ... ERROR
Required fields missing or empty:
‘Author’ ‘Maintainer’
* DONE
Status: 1 ERROR
See
‘/home/bates/git/set6.Rcheck/00check.log’
for details.
Do I need to run roxygen in some way on the directory? (I know it is surprising that I am so inept with R these days but I have been working almost exclusively with Julia for several years now.)
@dmbates You can e.g. make an issue on the repo with a list of typos, or even make Pull Requests. (That's easy to do using the pencil icon on the GitHub interface if they're minimal changes, for example.). Thanks!
You need to build it first, and check the .tar.gz file. Seems to pass.
On 28.09.20 18:57, Douglas Bates wrote:
Could someone remind me how to run the package checks? I cloned the git repository and
tried a simple but unsuccessful approach|$ R CMD check set6 * using log directory ‘/home/bates/git/set6.Rcheck’ * using R version
4.0.2 (2020-06-22) * using platform: x86_64-pc-linux-gnu (64-bit) * using session charset:
UTF-8 * checking for file ‘set6/DESCRIPTION’ ... ERROR Required fields missing or empty:
‘Author’ ‘Maintainer’ * DONE Status: 1 ERROR See ‘/home/bates/git/set6.Rcheck/00check.log’
for details. |Do I need to run roxygen in some way on the directory? (I know it is surprising that I am
so inept with R these days but I have been working almost exclusively with Julia for
several years now.)—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/openjournals/joss-reviews/issues/2598#issuecomment-700158472, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABTWQDBQYZRNGDUKMHHI2FTSIC57XANCNFSM4QJSWBGA.
I have opened xoopR/set6#54 regarding one of the examples - the first one, actually. I also see a couple of typos - e.g. under Key Design Principles, 2. Key Dependencies should read "... to any object-oriented package requiring ...". @dpsanders where should I report a typo?
Replying to the issue here so other reviewers can see. Apologies but there is indeed a typo in the first example, it reads
> a <- Set$new(1, 2, 3) > a$print()
{1, 2, 3}
> a$contains(1, "a")
It should read
> a <- Set$new(1, 2, 3) > a$print()
{1, 2, 3}
> a$contains(c(1, "a"))
I've finished my review. Other than the code error in the example and a few small comments I made in https://github.com/xoopR/set6/issues/55, it looks good. (If there's more needed from me for a review, please let me know -- the JOSS review process is unfamiliar to me.)
Thanks @wch!
I have finished my review also.
👋 @davidjohannesmeyer: Are you still able to review this?
Sorry for being so late. Here go my comments:
Thanks for the detailed look at the package and the comments @davidjohannesmeyer.
Currently, the package can not handle sets of general R objects, because the equals() and contains() methods rely on the character representation of the elements. But as.character() does not "serialize" R objects - e.g., attributes are stripped, references are are treated all the same (try, e.g., sets of R6-classes) - and whenever specific as.character methods are implemented, the approach will fail. Better use identical() on the actual elements, instead of %in% on the character representation.
Originally the objects were directly compared and not the character representations. identical doesn’t work for R6 objects (e.g. identical(Set$new(1), Set$new(1)) returns FALSE), the alternative all.equal has significant overheads due to recursive unpacking of objects and their inherited classes (something I’ve/others previously discussed with @wch regarding a separate package). For now we will change the documentation to say that sets can handle any atomic or set6 object, which is certainly the case, and then work on a fix to handle all cases
The documentation claims that set6 aims to be an "upgrade" to the sets package. Currently, this is not the case - some features are extended (intervals), others are currently not implemented at all (e.g., multisets, fuzzy logic).
Firstly to be clear, {set6} does not currently claim to be an upgrade to {sets} but instead sets this as a high bar toaim torwards, and secondly upgrade here refers more to S4 —> R6. With respect to comparison of implemented features, we can easily add multisets by copying and slightly modifying the tuple class, and fuzzy sets are implemented with fuzzy logic being an open issue in the repo. If there are any more key features you think are missing please feel free to tell me here or in an issue.
The role of wrappers is unclear from the documentation.
Thanks we’ll improve the documentation. Their primary purpose is to fulfil the lazy evaluation of composite sets by overloading the representation and membership methods.
The cardinality is currently implemented as property. As this is not trivial to compute, especially for conditional sets or in case of lazy evaluation, I wonder whether this shouldn't become a method.
We can see good arguments for this as a method or property. However by keeping it as a property it clearly aids in the inspectability of an object, i.e. by calling $properties all necessary and useful results are returned — of course instead of storing Property objects we could instead have $properties call the methods, though possibly at a significant cost to runtime.
Would it make sense to have a global option for the default Universal Set?
We have found that default arguments in functions are ‘easier’ for users than global options and moreover there may be some use-cases where the universe will be changed frequently.
Complex intervals are unclear to me, as complex numbers are unordered. At least, there should be some sort of definition in the help page.
Agreed. Several of the SpecialSets are primarily for the $contains method and other methods will give strange results (e.g. rationals, primes, complex), this should be documented for all of them. To fix this I'll change the inheritance from SpecialSet -> Interval to SpecialSet -> Set and then only implement the methods that make sense, with clear documentation showing which do/don't exist for that special set and why.
The representation of conditional sets seems unusual to me, as the universe is printed after the condition. Isn't that usually written the other way round, e.g.: {x element R | x > 0}?
Agreed this was a strange choice and will be fixed.
Logicals are not mentioned as special set by listSpecialSets()
Thanks, this is a bug to be fixed.
@davidjohannesmeyer Thanks for your review. Are you happy with the changes?
Yes!
Best, David
Am 26.10.2020 um 03:52 schrieb David P. Sanders notifications@github.com:
@davidjohannesmeyer Thanks for your review. Are you happy with the changes?—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
@whedon generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@whedon generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
👋 @RaphaelS1: I think we're ready to proceed to publication!
Could you please archive the software e.g. at Zenodo, making sure that the title and authors are exactly as in the paper, then report the version number and DOI here? Thanks!
@dpsanders Fantastic!
https://zenodo.org/record/4247626#.X6Q5KVP7TOQ
set6 0.2.0
http://doi.org/10.5281/zenodo.4247626
@whedon set 0.2.0 as version
OK. 0.2.0 is the version.
@RaphaelS1 The title in Zenodo is not the same as the paper title. Could you please fix that?
Sorry @dpsanders ! It is now
@RaphaelS1 Sorry to be picky but Franz Kiraly's name is not the same either.
@whedon set 10.5281/zenodo.3712054 as archive
OK. 10.5281/zenodo.3712054 is the archive.
@whedon accept
Attempting dry run of processing paper acceptance...
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.5281/zenodo.2647458 is OK
- 10.1093/carcin/bgs084 is OK
- 10.18637/jss.v031.i02 is OK
- 10.18637/jss.v040.i08 is OK
MISSING DOIs
- None
INVALID DOIs
- None
:wave: @openjournals/joss-eics, this paper is ready to be accepted and published.
Check final proof :point_right: https://github.com/openjournals/joss-papers/pull/1898
If the paper PDF and Crossref deposit XML look good in https://github.com/openjournals/joss-papers/pull/1898, then you can now move forward with accepting the submission by compiling again with the flag deposit=true e.g.
@whedon accept deposit=true
@dpsanders same name now, https://zenodo.org/record/4247626#.X6hmCVP7TOQ
@dpsanders Can you get me up to speed on the unchecked review boxes above? One whole review and several others are unchecked.
Noting that the version, Zenodo archive, and paper all look good.
@kthyng Oops, sorry. Should I ask the reviewers to complete those?
They stated verbally in the review in this issue that they were happy with the current status.
@dpsanders I figured you had discussed it with reviewers but wanted to be sure. Can you check all items that you have heard from reviewers that they are satisfied with? One reviewer is listed twice, which is in turn listed on the paper, so we want all the reviewers to be properly identified.
@whedon remove @davidjohannesmeyer as reviewer
OK, @davidjohannesmeyer is no longer a reviewer
@whedon add @davidjohannesmeyer as reviewer
OK, @davidjohannesmeyer is now a reviewer
@whedon generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@whedon remove @davidjohannesmeyer as reviewer
OK, @davidjohannesmeyer is no longer a reviewer
@whedon generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
👋 @wch, @davidjohannesmeyer and @dmbates: Could you please check the missing check boxes in the [original issue] to confirm that you are happy with the submission? Thanks!
@kthyng I don't seem to be able to remove the duplicate reviewer for some reason.
👋 @wch, @davidjohannesmeyer and @dmbates: Could you please check the missing check boxes in the [original issue] to confirm that you are happy with the submission? Thanks!
Done!
@davidjohannesmeyer Sorry for being pedantic here, but is there is a reason that you didn't check a couple of the boxes?
@whedon add @davidjohannesmeyer as reviewer
OK, @davidjohannesmeyer is now a reviewer
@kthyng I don't seem to be able to remove the duplicate reviewer for some reason.
I think it looks ok now — you successfully removed the reviewer and I just added back in.
@whedon generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@kthyng The third reviewer no longer seems to appear in the generated PDF though.
@davidjohannesmeyer Sorry for being pedantic here, but is there is a reason that you didn't check a couple of the boxes?
I forgot to check the code of conduct - thanks.
David
@dpsanders I can see all three in my version — maybe you have a cached version.
I would like to see all the reviewer boxes checked, either by the reviewers themselves or by @dpsanders if you feel clear from your interactions in the review that they should be checked. Then we can proceed. Again sorry for being pedantic but there is really no point to having check boxes at all if we don't fully use them.
@dpsanders I can see all three in my version — maybe you have a cached version.
I would like to see all the reviewer boxes checked, either by the reviewers themselves or by @dpsanders if you feel clear from your interactions in the review that they should be checked. Then we can proceed. Again sorry for being pedantic but there is really no point to having check boxes at all if we don't fully use them.
Ah OK, performance was unchecked, too.
@davidjohannesmeyer Thanks for wrapping that up.
But also there are unresolved boxes from @dmbates to deal with. Thanks all!
My unresolved boxes should be dealt with now.
@kthyng I think we should be ready now. Thanks everybody for polishing off these details.
Ok great! Since everyone is satisfied with the submission and the other items have already been dealt with, we can finish!
@whedon accept deposit=true
Doing it live! Attempting automated processing of paper acceptance...
🐦🐦🐦 👉 Tweet for this paper 👈 🐦🐦🐦
🚨🚨🚨 THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! 🚨🚨🚨
Here's what you must now do:
Party like you just published a paper! 🎉🌈🦄💃👻🤘
Any issues? Notify your editorial technical team...
Congratulations on your paper, @RaphaelS1!
Many thanks to @dmbates, @wch and @davidjohannesmeyer for their reviews, and to @kthyng for pushing it over the finishing line.
: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.02598)
HTML:
<a style="border-width:0" href="https://doi.org/10.21105/joss.02598">
<img src="https://joss.theoj.org/papers/10.21105/joss.02598/status.svg" alt="DOI badge" >
</a>
reStructuredText:
.. image:: https://joss.theoj.org/papers/10.21105/joss.02598/status.svg
:target: https://doi.org/10.21105/joss.02598
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:
Great thanks everyone involved!