openjournals / joss-reviews

Reviews for the Journal of Open Source Software
Creative Commons Zero v1.0 Universal
708 stars 37 forks source link

[REVIEW]: jsPsych: Enabling an Open-Source Collaborative Ecosystem of Behavioral Experiments #5351

Closed editorialbot closed 1 year ago

editorialbot commented 1 year ago

Submitting author: !--author-handle-->@jodeleeuw<!--end-author-handle-- (Joshua de Leeuw) Repository: https://github.com/jspsych/jspsych Branch with paper.md (empty if default branch): joss-paper Version: v7.3.2 Editor: !--editor-->@oliviaguest<!--end-editor-- Reviewers: @pmcharrison, @xinyiguan, @chartgerink Archive: 10.5281/zenodo.7702307

Status

status

Status badge code:

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

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

@pmcharrison & @xinyiguan & @chartgerink, 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:

@editorialbot generate my checklist

The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @oliviaguest 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 @xinyiguan

πŸ“ Checklist for @chartgerink

πŸ“ Checklist for @pmcharrison

editorialbot commented 1 year 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
editorialbot commented 1 year ago
Software report:

github.com/AlDanial/cloc v 1.88  T=5.86 s (119.9 files/s, 50071.1 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
JavaScript                      73           7238          55422         132850
JSON                            68              0              0          32923
TypeScript                     150           4317           2751          25432
Markdown                       218           5864              0          14138
HTML                           180           1130             15           8844
CSS                              3             38             56           1168
SVG                              1              1              1            491
YAML                             5             27             12            296
TeX                              1             30              0            234
Sass                             2             26              0            208
TOML                             1              3              0             14
Bourne Shell                     1              1              0              3
-------------------------------------------------------------------------------
SUM:                           703          18675          58257         216601
-------------------------------------------------------------------------------

gitinspector failed to run statistical information for the repository
editorialbot commented 1 year ago

Wordcount for paper.md is 876

editorialbot commented 1 year ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.3758/s13428-014-0458-y is OK
- 10.31234/osf.io/fv65z is OK
- 10.3758/s13428-011-0168-7 is OK
- 10.31234/osf.io/avj92 is OK
- 10.20982/tqmp.17.3.p299 is OK
- 10.3758/s13428-021-01767-3 is OK
- 10.3758/s13428-022-01803-w is OK
- 10.3758/s13428-020-01445-w is OK
- 10.1101/192377 is OK
- 10.1017/S1930297500008512 is OK
- 10.3758/s13428-018-1155-z is OK
- 10.3758/s13428-019-01283-5 is OK
- 10.3758/s13428-019-01237-x is OK
- 10.3758/s13428-022-01899-0 is OK
- 10.3758/s13428-022-01948-8 is OK
- 10.1177/0098628316677643 is OK
- 10.1162/opmi_a_00002 is OK
- 10.3389/fpsyg.2016.00610 is OK
- 10.1590/1516-4446-2020-1675 is OK
- 10.21105/joss.02088 is OK
- 10.3758/s13428-020-01535-9 is OK
- 10.3758/s13428-016-0824-z is OK

MISSING DOIs

- None

INVALID DOIs

- None
editorialbot commented 1 year ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

oliviaguest commented 1 year ago

πŸ‘‹ @jodeleeuw, this is where the review will actually take place. @pmcharrison, @xinyiguan, @chartgerink please use this issue to leave your comments and feedback for the authors (and please read all the instructions above) β€” however:

Hope this is clear, let me know if not, and thank you for your time! ☺️

xinyiguan commented 1 year ago

Review checklist for @xinyiguan

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

jodeleeuw commented 1 year ago

Tagging my coauthors here for ease of access: @becky-gilbert @bjoluc

chartgerink commented 1 year ago

Review checklist for @chartgerink

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

oliviaguest commented 1 year ago

Tagging my coauthors here for ease of access: @becky-gilbert @bjoluc

@jodeleeuw oh, nice idea. Thank you!

pmcharrison commented 1 year ago

Review checklist for @pmcharrison

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

pmcharrison commented 1 year ago

@jodeleeuw looking good! great that jsPsych version 7 will be credited in this way!

Regarding 'state of the field', I wonder if you can add a touch more here. This is the main comparison with previous work:

jsPsych and these other options vary in ways such as available features, closed vs. open source, primary programming language, and syntax/style choices, but the main distinction is the particular way that jsPsych abstracts the design of an experiment. jsPsych experiments are constructed using plugins β€” self-contained modules that define an event and its parameters.

This is a positive statement about what jsPsych does in terms of plugins, but maybe you can spare a few words to say whether/which other programs have analogous constructs to plugins?

Regarding the references, I just noticed that some of the capitalisation hasn't come through (e.g. r package, pushkin).

jodeleeuw commented 1 year ago

@editorialbot generate pdf

editorialbot commented 1 year ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

jodeleeuw commented 1 year ago

Thank you @pmcharrison! I've fixed the reference formatting issues.

We definitely want to correctly characterize the state of field.

I think one issue is getting clear about what we think the distinction is between plugins and other ways of abstracting experiment design. psychTestR has probably the closest analog to plugins, so it would be helpful to get your take on what is an accurate description of any differences that do exist. Here's my current thinking:

Does that seem reasonable to you? If so, I'll work on a more concise description for the paper. If not, I'm happy to get feedback!

pmcharrison commented 1 year ago

Hi @jodeleeuw, many thanks for this interesting overview! It's very helpful to see it laid out in this way.

From you say, I think I agree that the best thing is to emphasise the 'community library' aspect of this. The software mentioned in the first category does contain analogous constructions to plugins under the hood, but it's not so easy to contribute your own unless you're a core developer. You're right that psychTestR in theory allows such contributions, but in practice the vast majority of psychTestR community contributions correspond to entire tests (e.g. a particular IQ test, a particular questionnaire) rather than new response interfaces. In contrast, the jsPsych community library provides an unparalleled source of interfaces.

Maybe all that's needed is something like 'While many psychology experiment frameworks contain abstractions analogous to plugins, it is typically hard or impossible for users to contribute their own plugins. In contrast, we have worked hard to develop a system for jsPsych that makes it easy for users to develop their own plugins and share them with other psychologists via open-source repositories. Our community library already contains X plugins, ranging from Y to Z, which ....' What do you think?

jodeleeuw commented 1 year ago

@pmcharrison thank you for the very helpful suggestion. We borrowed chunks of it and reworked the statement of need section a bit. Here's the commit so you can see exactly what changed, though I guess it is all one big line in markdown so the actual changes aren't nicely highlighted.

jodeleeuw commented 1 year ago

@editorialbot generate pdf

editorialbot commented 1 year ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

pmcharrison commented 1 year ago

@jodeleeuw I love it, great job!

@oliviaguest I'm happy, checklist complete!

oliviaguest commented 1 year ago

@pmcharrison thank you for the review!

xinyiguan commented 1 year ago

@jodeleeuw Thank you for this very cool development! I think jsPsych is a valuable contribution to the community, and I particularly appreciate the community-driven and self-contained modular design aspects of the software. The latest version, incorporating feedback from @pmcharrison, looks excellent and has already addressed the points I wanted to raise in my previous review draft.

@oliviaguest I have completed my checklist!

oliviaguest commented 1 year ago

@jodeleeuw what's left to do right now in your opinion? I think things could be wrapped up, right? 😊

oliviaguest commented 1 year ago

@editorialbot check references

editorialbot commented 1 year ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.3758/s13428-014-0458-y is OK
- 10.31234/osf.io/fv65z is OK
- 10.3758/s13428-011-0168-7 is OK
- 10.31234/osf.io/avj92 is OK
- 10.20982/tqmp.17.3.p299 is OK
- 10.3758/s13428-021-01767-3 is OK
- 10.3758/s13428-022-01803-w is OK
- 10.3758/s13428-020-01445-w is OK
- 10.1101/192377 is OK
- 10.1017/S1930297500008512 is OK
- 10.3758/s13428-018-1155-z is OK
- 10.3758/s13428-019-01283-5 is OK
- 10.3758/s13428-019-01237-x is OK
- 10.3758/s13428-022-01899-0 is OK
- 10.3758/s13428-022-01948-8 is OK
- 10.1177/0098628316677643 is OK
- 10.1162/opmi_a_00002 is OK
- 10.3389/fpsyg.2016.00610 is OK
- 10.1590/1516-4446-2020-1675 is OK
- 10.21105/joss.02088 is OK
- 10.3758/s13428-020-01535-9 is OK
- 10.3758/s13428-016-0824-z is OK

MISSING DOIs

- None

INVALID DOIs

- None
oliviaguest commented 1 year ago

@editorialbot generate pdf

editorialbot commented 1 year ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

jodeleeuw commented 1 year ago

@oliviaguest I think there are still a few unchecked items on @chartgerink list. Should we wait to resolve those?

chartgerink commented 1 year ago

I'm still going through my review, yes πŸ™ƒ

oliviaguest commented 1 year ago

@chartgerink sorry! indeed! monday-brain!

chartgerink commented 1 year ago

I was able to finish my review, and the points I had are already addressed in the discussion here, which is very pleasing and makes my life incredibly easy! 😊

@oliviaguest I have checked all the boxes and don't really have comments that should hold this paper up. Great to see this updated paper and bet it will be of interest to many who use and newcomers alike!

jodeleeuw commented 1 year ago

Thanks, all! This is ready from my perspective, in case that is relevant to moving forward 😁

oliviaguest commented 1 year ago

@jodeleeuw can you make an archive for the software please? Zenodo is fine or equivalent. And then post the DOI here. Also is the version correct in the OP? :relaxed:

jodeleeuw commented 1 year ago

Yep! It's already archived on Zenodo. Here's the DOI for v7.3.2: https://doi.org/10.5281/zenodo.7702307

And, yes, v7.3.2 is the current release.

Thank you!

oliviaguest commented 1 year ago

@editorialbot set 10.5281/zenodo.7702307 as archive

oliviaguest commented 1 year ago

@editorialbot generate pdf

editorialbot commented 1 year ago

Done! archive is now 10.5281/zenodo.7702307

oliviaguest commented 1 year ago

@jodeleeuw does the final pdf look good to you?

jodeleeuw commented 1 year ago

@editorialbot generate pdf

jodeleeuw commented 1 year ago

Looks like it didn't generate for some reason after your last message, so I'll try again.

editorialbot commented 1 year ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

jodeleeuw commented 1 year ago

Everything looks good to me. Thanks @oliviaguest for editing, and @pmcharrison, @xinyiguan, @chartgerink for the time taken to review!

oliviaguest commented 1 year ago

Post-Review Checklist for Editor and Authors

Additional Author Tasks After Review is Complete

Editor Tasks Prior to Acceptance

oliviaguest commented 1 year ago

@editorialbot check references

editorialbot commented 1 year ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.3758/s13428-014-0458-y is OK
- 10.31234/osf.io/fv65z is OK
- 10.3758/s13428-011-0168-7 is OK
- 10.31234/osf.io/avj92 is OK
- 10.20982/tqmp.17.3.p299 is OK
- 10.3758/s13428-021-01767-3 is OK
- 10.3758/s13428-022-01803-w is OK
- 10.3758/s13428-020-01445-w is OK
- 10.1101/192377 is OK
- 10.1017/S1930297500008512 is OK
- 10.3758/s13428-018-1155-z is OK
- 10.3758/s13428-019-01283-5 is OK
- 10.3758/s13428-019-01237-x is OK
- 10.3758/s13428-022-01899-0 is OK
- 10.3758/s13428-022-01948-8 is OK
- 10.1177/0098628316677643 is OK
- 10.1162/opmi_a_00002 is OK
- 10.3389/fpsyg.2016.00610 is OK
- 10.1590/1516-4446-2020-1675 is OK
- 10.21105/joss.02088 is OK
- 10.3758/s13428-020-01535-9 is OK
- 10.3758/s13428-016-0824-z is OK

MISSING DOIs

- None

INVALID DOIs

- None
oliviaguest commented 1 year ago

@jodeleeuw can you make the title of the zenodo archive the same as the paper? And we're done! πŸ₯³

jodeleeuw commented 1 year ago

All set!

oliviaguest commented 1 year ago

@editorialbot recommend-accept

editorialbot commented 1 year ago
Attempting dry run of processing paper acceptance...
editorialbot commented 1 year ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.3758/s13428-014-0458-y is OK
- 10.31234/osf.io/fv65z is OK
- 10.3758/s13428-011-0168-7 is OK
- 10.31234/osf.io/avj92 is OK
- 10.20982/tqmp.17.3.p299 is OK
- 10.3758/s13428-021-01767-3 is OK
- 10.3758/s13428-022-01803-w is OK
- 10.3758/s13428-020-01445-w is OK
- 10.1101/192377 is OK
- 10.1017/S1930297500008512 is OK
- 10.3758/s13428-018-1155-z is OK
- 10.3758/s13428-019-01283-5 is OK
- 10.3758/s13428-019-01237-x is OK
- 10.3758/s13428-022-01899-0 is OK
- 10.3758/s13428-022-01948-8 is OK
- 10.1177/0098628316677643 is OK
- 10.1162/opmi_a_00002 is OK
- 10.3389/fpsyg.2016.00610 is OK
- 10.1590/1516-4446-2020-1675 is OK
- 10.21105/joss.02088 is OK
- 10.3758/s13428-020-01535-9 is OK
- 10.3758/s13428-016-0824-z is OK

MISSING DOIs

- None

INVALID DOIs

- None