openjournals / joss-reviews

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

[REVIEW]: plotastic: Bridging Plotting and Statistics in Python #6304

Closed editorialbot closed 6 months ago

editorialbot commented 8 months ago

Submitting author: !--author-handle-->@markur4<!--end-author-handle-- (Martin Kuric) Repository: https://github.com/markur4/plotastic Branch with paper.md (empty if default branch): Version: 0.1.1 Editor: !--editor-->@rkurchin<!--end-editor-- Reviewers: @gmrandazzo, @SunnyXu Archive: 10.5281/zenodo.10775033

Status

status

Status badge code:

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

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

@gmrandazzo & @SunnyXu, 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 @rkurchin 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 @SunnyXu

πŸ“ Checklist for @gmrandazzo

editorialbot commented 8 months 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 8 months ago
Software report:

github.com/AlDanial/cloc v 1.88  T=0.16 s (715.6 files/s, 173540.8 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Python                          49           1835           2843           4696
SVG                              1              0              0           2671
HTML                            13            294             39           1750
Markdown                         4            235              0            995
JavaScript                      12            131            221            880
CSS                              4            190             35            780
Jupyter Notebook                13              0           8915            522
TeX                              1              5              0             92
reStructuredText                 8             59            106             77
TOML                             1             16             49             71
YAML                             2              4              0             36
DOS Batch                        1              8              1             26
JSON                             1              0              0             10
make                             1              4              7              9
INI                              1              0              0              8
Bourne Shell                     2              9             12              7
-------------------------------------------------------------------------------
SUM:                           114           2790          12228          12630
-------------------------------------------------------------------------------

gitinspector failed to run statistical information for the repository
editorialbot commented 8 months ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.5281/ZENODO.7213391 is OK
- 10.1109/MCSE.2007.55 is OK
- 10.21105/joss.01026 is OK
- 10.21105/joss.03021 is OK
- 10.18637/jss.v059.i10 is OK

MISSING DOIs

- None

INVALID DOIs

- None
editorialbot commented 8 months ago

Wordcount for paper.md is 1662

editorialbot commented 8 months ago

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

rkurchin commented 7 months ago

@gmrandazzo and @SunnyXu, let me know if you have any questions about how to get your reviews started!

SunnyXu commented 7 months ago

Review checklist for @SunnyXu

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

SunnyXu commented 7 months ago

@rkurchin @markur4 plotastic is a solid Python package bridging the gap between seaborn and pingouin to offer a unified environment for plotting and statistical analysis. It is good that there are the testing section and codecov on GitHub. Please see my comments (linked to issues) below to improve. Please let me know if anything is unclear.

  1. Manuscript improvement (https://github.com/markur4/plotastic/issues/1)
  2. PYPI (https://github.com/markur4/plotastic/issues/2)
  3. Data of Example Gallery in the section of Documentations (https://github.com/markur4/plotastic/issues/3)
  4. Some parts of the Documentation are empty (https://github.com/markur4/plotastic/issues/4)
  5. Quick Example (https://github.com/markur4/plotastic/issues/5)
  6. fix the point of β€œCommunity guidelines” in my review checklist (https://github.com/markur4/plotastic/issues/6)
markur4 commented 7 months ago

@SunnyXu Thanks a lot for the great feedback! I appreciate the detail!

@rkurchin I worked through all points. Should I close them once the reviewer is satisfied?

editorialbot commented 7 months ago

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

SunnyXu commented 7 months ago

@markur4 Thanks for the improvement. I like your improvement regarding issue 3 and issue 6 especially. @rkurchin Martin has addressed all the issues except the second one (PYPI) which might get improved later. Please let me know if I need to do anything else. Thanks again for considering me as a reviewer. Hope to help with another review again in the future.

rkurchin commented 7 months ago

@SunnyXu, are you satisfied on the community guidelines point? If so, please check off that last box. If not, please leave any additional comments/feedback necessary.

@gmrandazzo, do you think you'll be able to start your review fairly soon?

SunnyXu commented 7 months ago

@rkurchin Thanks for the reminder. I am satisfied and checked the last box. I do not have additional comments regarding.

editorialbot commented 7 months ago

I'm sorry @gmrandazzo, I'm afraid I can't do that. That's something only editors are allowed to do.

gmrandazzo commented 7 months ago

Review checklist for @gmrandazzo

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

gmrandazzo commented 7 months ago

@markur4 and @rkurchin

Thanks for the chance to review this paper. Here are my comments:

1) The summary is OK; however, there needs to be a reason why it would be good to use plastic instead of seaborn+pingouin. This important statement is written in lines 54, 55, and 56 of the manuscript. Please report them also in the summary. The rest of the manuscripts seem fine to me.

2) Installation is fine. However, this package works only for Python >=3.11, and I need clarification on why older Python, i.e., 3.9, is not OK. If there is any specific reason, please state this in the installation document, specifying also the minimum Python version. Can you please fix that?

from pyproject.toml

[...]
#' Specify version only if concrete incompatibilities exist
requires-python = ">=3.11"

Is there any specific incompatibility? If yes, state this. If not, please fix that.

3) I have opened a shell. I copied and pasted the script you presented in the paper, and the Python shell became unusable. I'm not able to see the final plot. Can you check what is going on?

4) Functional documentation seems poor. Please improve it.

image

Thanks! Best regards

gmrandazzo commented 7 months ago

@markur4 Ah last comment. Please clean the package directory from .vscode and .DS_Store and other garbage files. Add them to the .gitignore

markur4 commented 7 months ago

@gmrandazzo @rkurchin

Thank you very much for the valuable feedback!

1.

That's a good point, I included the rationale in the last sentence of the summary:

Before: [...]This approach streamlines the process, translating seaborn parameters into statistical terms, providing researchers and data scientists with a cohesive and user-friendly solution in python.

After: [...] This approach streamlines the process, translating seaborn parameters into statistical terms, allowing researchers to focus on correct statistical testing and less about specific syntax and implementations.

2.

I haven't tested plotastic on any other version than 3.11. I revised pyproject.toml to reduce confusion:

### Python version
#' Lower versions than 3.11 have not been tested
requires-python = ">=3.11"

Please let me know if testing on older python versions is required to pass the review.

3.

Interesting, I have never executed plotastic in a shell. Here's what I did:

Summary:

4.

The screenshots do not refer to the correct documentation, but preliminary experiments with sphinx. I git removed them completely to prevent confusion.

Please use the documentations and examples found in the README.md as a guide to use plotastic. Let me know if they are clear!

5.

Thanks for pointing out the garbage files! I git removed them from src, if you find any more, let me know!

gmrandazzo commented 7 months ago

@markur4 ok for point 2. State the minimum version in the README in the section "REQUIREMENTS" or something like that. Try to harmonize everything. Remember that someone landing your GitHub page should be able to install the software without somersault.

Then @rkurchin fine to me. Accepted.

markur4 commented 7 months ago

@gmrandazzo @rkurchin

Ok, I'm happy that it's working! Also, I've added a requirements section to the README.md! Thanks a lot!

rkurchin commented 7 months ago

Post-Review Checklist for Editor and Authors

Additional Author Tasks After Review is Complete

Editor Tasks Prior to Acceptance

rkurchin commented 7 months ago

Thanks again reviewers! @markur4, you can see above a few things you'll need to do (and in some cases, send me info in a comment here) to finalize this submission. I'll do a read over the manuscript itself and send any editorial comments shortly!

rkurchin commented 7 months ago

@editorialbot check references

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

OK DOIs

- 10.5281/ZENODO.7213391 is OK
- 10.1109/MCSE.2007.55 is OK
- 10.21105/joss.01026 is OK
- 10.21105/joss.03021 is OK
- 10.18637/jss.v059.i10 is OK

MISSING DOIs

- None

INVALID DOIs

- None
rkurchin commented 7 months ago

@editorialbot generate pdf

editorialbot commented 7 months ago

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

markur4 commented 7 months ago

@rkurchin

Here's what I did:

Let me know if I missed something!

rkurchin commented 7 months ago

@editorialbot set 0.1.1 as version

editorialbot commented 7 months ago

Done! version is now 0.1.1

rkurchin commented 7 months ago

@editorialbot set 10.5281/zenodo.10775033 as archive

editorialbot commented 7 months ago

Done! archive is now 10.5281/zenodo.10775033

rkurchin commented 7 months ago

Apologies that this took a little while!

Editorial comments:

markur4 commented 7 months ago

@rkurchin

No problem, thanks for the feedback!

I made these revisions, let me know if I missed something!

* line 9: I think you can remove the "a" before "syntax" since I usually parse that as a collective noun

I removed the "a"

* line 12-13: I'm not sure if "analyses" is the plural of "analysis" (and hence an additional object of the verb "conducts") or the British English spelling of the third-person singular of the verb "analyzes" – in any case, the parallelization of the sentence is a bit broken. I would suggest rewriting/splitting it. One possibility: "The library systematically groups the data according to the needs of statistical tests and plots. It can perform these analyses and visualize the results and also supports extensive customization options"

I agree, the point that I wanted to convey doesn't come across at all.

Before: The library systematically groups the data according to the needs of statistical tests and plots, conducts visualisation, analyses and supports extensive customization options. In essence, plotastic establishes a protocol for configuring statical analyses through plotting parameters. This approach streamlines the process, translating seaborn parameters into statistical terms, [...].

After: Hence, statistics and plotting are performed on the same set of parameters, so that the strength of seaborn in visualising multidimensional data is extended onto statistical analysis. In essence, plotastic translates seaborn parameters into statistical terms, configures statistical protocols based on intuitive plotting syntax and returns a matplotlib figure with known customization options and more. This approach streamlines data analysis, [...].

* 22-25: not sure what's going on with the line spacing thing here, but perhaps double-check if there's anything goofy about your source file?

I removed unnecessary newlines

* 28: remove extra period before citation

Done

* 31: missing a "with" before `seaborn`

Done

* figure 1: Why is the whole of the plotting block in parentheses?

It's python syntax that allows for methods to be chained in newlines. Without parentheses, the methods need to be in one line and that becomes unreadable very quickly.

* 42: I think the apostrophe after `seaborn` is a ` instead of a '

It's a ', but I rephrased it to prevent confusion:

Before: plotastic was inspired by seaborn's intuitive and consistent usage of the same set of parameters

After: plotastic was inspired by seaborn using the same set of intuitive and consistent parameters

* 67: "per axes" --> "per axis"

Done

* 71-72: add "a" after "initializes"

Done

* 77, 91: plotastic --> `plotastic`

Done

* 78: remove "in"

Done

* 82: there's a word missing in this sentence...statistical what? Perhaps information? Indicators? Parameters?

Done

* References: [pandas requests](https://pandas.pydata.org/about/citing.html) two particular things be cited when acknowledging it, please replace your citation with those two

Done

rkurchin commented 6 months ago

@editorialbot generate pdf

editorialbot commented 6 months ago

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

rkurchin commented 6 months ago

@editorialbot recommend-accept

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

OK DOIs

- 10.5281/ZENODO.7213391 is OK
- 10.1109/MCSE.2007.55 is OK
- 10.25080/Majora-92bf1922-00a is OK
- 10.5281/zenodo.3509134 is OK
- 10.21105/joss.01026 is OK
- 10.21105/joss.03021 is OK
- 10.18637/jss.v059.i10 is OK

MISSING DOIs

- No DOI given, and none found for title: Pandas: A Foundational Python Library for Data Ana...

INVALID DOIs

- None
editorialbot commented 6 months ago

:wave: @openjournals/dsais-eics, this paper is ready to be accepted and published.

Check final proof :point_right::page_facing_up: Download article

If the paper PDF and the deposit XML files look good in https://github.com/openjournals/joss-papers/pull/5105, then you can now move forward with accepting the submission by compiling again with the command @editorialbot accept

arfon commented 6 months ago

@editorialbot accept

editorialbot commented 6 months ago
Doing it live! Attempting automated processing of paper acceptance...
editorialbot commented 6 months ago

Ensure proper citation by uploading a plain text CITATION.cff file to the default branch of your repository.

If using GitHub, a Cite this repository menu will appear in the About section, containing both APA and BibTeX formats. When exported to Zotero using a browser plugin, Zotero will automatically create an entry using the information contained in the .cff file.

You can copy the contents for your CITATION.cff file here:

CITATION.cff

``` cff-version: "1.2.0" authors: - family-names: Kuric given-names: Martin orcid: "https://orcid.org/0009-0009-7292-7714" - family-names: Ebert given-names: Regina orcid: "https://orcid.org/0000-0002-8192-869X" contact: - family-names: Kuric given-names: Martin orcid: "https://orcid.org/0009-0009-7292-7714" doi: 10.5281/zenodo.10775033 message: If you use this software, please cite our article in the Journal of Open Source Software. preferred-citation: authors: - family-names: Kuric given-names: Martin orcid: "https://orcid.org/0009-0009-7292-7714" - family-names: Ebert given-names: Regina orcid: "https://orcid.org/0000-0002-8192-869X" date-published: 2024-03-09 doi: 10.21105/joss.06304 issn: 2475-9066 issue: 95 journal: Journal of Open Source Software publisher: name: Open Journals start: 6304 title: "plotastic: Bridging Plotting and Statistics in Python" type: article url: "https://joss.theoj.org/papers/10.21105/joss.06304" volume: 9 title: "`plotastic`: Bridging Plotting and Statistics in Python" ```

If the repository is not hosted on GitHub, a .cff file can still be uploaded to set your preferred citation. Users will be able to manually copy and paste the citation.

Find more information on .cff files here and here.

editorialbot commented 6 months ago

🐘🐘🐘 πŸ‘‰ Toot for this paper πŸ‘ˆ 🐘🐘🐘

editorialbot commented 6 months ago

🚨🚨🚨 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/5109
  2. Wait five minutes, then verify that the paper DOI resolves https://doi.org/10.21105/joss.06304
  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...

arfon commented 6 months ago

@gmrandazzo, @SunnyXu – many thanks for your reviews here and to @rkurchin for editing this submission! JOSS relies upon the volunteer effort of people like you and we simply wouldn't be able to do this without you ✨

@markur4 – your paper is now accepted and published in JOSS :zap::rocket::boom:

editorialbot commented 6 months ago

: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.06304/status.svg)](https://doi.org/10.21105/joss.06304)

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

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

This is how it will look in your documentation:

DOI

We need your help!

The 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: