New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[REVIEW]: Altair: Interactive Statistical Visualizations for Python #1057

Closed
whedon opened this Issue Nov 1, 2018 · 56 comments

Comments

Projects
None yet
7 participants
@whedon
Copy link
Collaborator

whedon commented Nov 1, 2018

Submitting author: @domoritz (ROBYN DOMINIK MORITZ)
Repository: https://github.com/altair-viz/altair
Version: v2.3.0
Editor: @jedbrown
Reviewer: @dnszafir, @terrytangyuan, @kellieotto
Archive: 10.5281/zenodo.2030098

Status

status

Status badge code:

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

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

Reviewer instructions & questions

@dnszafir & @terrytangyuan & @kellieotto, 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.theoj.org/about#reviewer_guidelines. Any questions/concerns please let @jedbrown know.

Please try and complete your review in the next two weeks

Review checklist for @dnszafir

Conflict of interest

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the repository url?
  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Version: Does the release version given match the GitHub release (v2)?
  • Authorship: Has the submitting author (@domoritz) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • 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

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the function of the software can be verified?
  • 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

  • Authors: Does the paper.md file include a list of authors with their affiliations?
  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • References: Do all archival references that should have a DOI list one (e.g., papers, datasets, software)?

Review checklist for @terrytangyuan

Conflict of interest

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the repository url?
  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Version: Does the release version given match the GitHub release (v2)?
  • Authorship: Has the submitting author (@domoritz) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • 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

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the function of the software can be verified?
  • 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

  • Authors: Does the paper.md file include a list of authors with their affiliations?
  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • References: Do all archival references that should have a DOI list one (e.g., papers, datasets, software)?

Review checklist for @kellieotto

Conflict of interest

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the repository url?
  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Version: Does the release version given match the GitHub release (v2)?
  • Authorship: Has the submitting author (@domoritz) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • 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

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the function of the software can be verified?
  • 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

  • Authors: Does the paper.md file include a list of authors with their affiliations?
  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • References: Do all archival references that should have a DOI list one (e.g., papers, datasets, software)?
@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Nov 1, 2018

Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @jedbrown, it looks like you're currently assigned as the reviewer for this paper 🎉.

⭐️ Important ⭐️

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

This comment has been minimized.

Copy link
Collaborator

whedon commented Nov 1, 2018

Attempting PDF compilation. Reticulating splines etc...
@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Nov 1, 2018

@jedbrown

This comment has been minimized.

Copy link
Member

jedbrown commented Nov 1, 2018

@dnszafir @terrytangyuan @kellieotto 👋 Welcome! The comments from whedon above outline the review process. I'll be watching this thread if you have any questions. Thanks!

@terrytangyuan

This comment has been minimized.

Copy link
Collaborator

terrytangyuan commented Nov 12, 2018

Great software and nice summarization of the background in the paper. A couple of questions and suggestions:

  • You provided a section here in README.md that mentions how to give feedback and contribute. Could you put it in a CONTRIBUTING.md file?
  • Just want to double check with the other authors: has @domoritz (the submitting author) made significant contributions to this software? It doesn't look like so from the commit history here since most of the commits are only related to this particular paper. However, @domoritz might have contributed significantly offline during the collaboration with the UW Interactive Data Lab (I noticed that he's part of the lab). Maybe @jakevdp and @ellisonbg can chime in and confirm?
  • Does any of the references have DOI? If so, would you please add them?
@domoritz

This comment has been minimized.

Copy link

domoritz commented Nov 12, 2018

Thank you for the review @terrytangyuan!

I'm the co-author of Vega-Lite, created the schema that Altair is generated from, and maintain the Vega-Lite integration in Jupyter Notebooks and Jupyterlab. I created the submission because I did the last push of the paper in altair-viz/altair#394.

I'll send PRs for the other two improvements.

@terrytangyuan

This comment has been minimized.

Copy link
Collaborator

terrytangyuan commented Nov 12, 2018

@domoritz Sounds good. Thanks for the clarification and link to the PR. Please ping me when it’s updated and ready for review.

@domoritz

This comment has been minimized.

Copy link

domoritz commented Nov 12, 2018

@domoritz

This comment has been minimized.

Copy link

domoritz commented Nov 12, 2018

@whedon generate pdf

@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Nov 12, 2018

Attempting PDF compilation. Reticulating splines etc...
@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Nov 12, 2018

@terrytangyuan

This comment has been minimized.

Copy link
Collaborator

terrytangyuan commented Nov 12, 2018

Thanks @domoritz for the quick fixes! @jedbrown I believe this paper is in good shape now.

@jedbrown

This comment has been minimized.

Copy link
Member

jedbrown commented Nov 13, 2018

Thanks, @terrytangyuan!

@kellieotto and @dnszafir, let us know if you need anything for your reviews.

@kellieotto

This comment has been minimized.

Copy link
Collaborator

kellieotto commented Nov 13, 2018

Looks good @domoritz! @jedbrown I finished my review and recommend this project for acceptance. @terrytangyuan already addressed the concerns I had.

@dnszafir

This comment has been minimized.

Copy link
Collaborator

dnszafir commented Nov 14, 2018

Agreed on acceptance, @jedbrown. Overall, Altair looks like a fantastic and well-documented resource. I ran into a minor challenge with the installation that may be worth addressing given the broad target audience.

I followed the installation instructions as detailed in the repo (which were clear, simple, and well-articulated). Once installed, I ran into a few issues that turned out to be a stale version of Anaconda (specifically: conda-forge/pandas-feedstock#51). It may be worth noting on the Troubleshooting guide to check for a sufficiently up-to-date version of Anaconda.

After resolving this issue, the plot did not render, but the Troubleshooting guide was partially helpful in resolving the issue. Given the broad target audience, it is worth mentioning that iPython may need to be explicitly updated under "JupyterLab: Textual Chart Representation" as the documented 'Change Kernel' solution did not work in this case. Keep in mind my configuration was probably more out-of-date than the target user as I am not a regular notebook user, but a brief clarification may help others encountering these issues.

As a future thought given the target audience: a growing number of people (both formal students and self-taught) are learning programming and data science through Python. Given the target goals of the package, it might be useful to call out examples that are especially helpful for learning and/or illustrating foundational data science concepts.

@domoritz

This comment has been minimized.

Copy link

domoritz commented Nov 14, 2018

Thank you for the feedback @dnszafir!

@jakevdp will appreciate the feedback on the getting started guide. The troubleshooting guide could suggest updating the Python installation as a possible step to resolve issues.

Altair is definitely designed with (novice) data scientists in mind. @jakevdp gave a tutorial at PyCon and all the materials are at https://github.com/altair-viz/altair-tutorial. There is also a case study that mirrors the Vega-Lite tutorial on exploring weather data at https://altair-viz.github.io/case_studies/exploring-weather.html. Is that something you had in mind?

@jedbrown

This comment has been minimized.

Copy link
Member

jedbrown commented Nov 14, 2018

Thanks, @kellieotto and @dnszafir!

@domoritz I have a couple minor (mostly bib) edits here: altair-viz/altair#1195
Also, is it intended that the notebooks/*.ipynb work? They look unclean (was last executed out of order) and I see some errors. For example,

import altair.vegalite.v2 as vl
vl.vegalite(...)

fails because vl.vegalite does not exist. Can you look at these?

@domoritz

This comment has been minimized.

Copy link

domoritz commented Nov 14, 2018

Good catch. I'm fixing the notebooks in altair-viz/altair#1196. The property is called VegaLite.

@domoritz

This comment has been minimized.

Copy link

domoritz commented Nov 14, 2018

The notebooks aren't crucial and shouldn't affect the submission.

@domoritz

This comment has been minimized.

Copy link

domoritz commented Nov 14, 2018

@whedon generate pdf

@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Nov 14, 2018

Attempting PDF compilation. Reticulating splines etc...
@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Nov 14, 2018

@jedbrown

This comment has been minimized.

Copy link
Member

jedbrown commented Nov 15, 2018

@whedon generate pdf

@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Nov 15, 2018

Attempting PDF compilation. Reticulating splines etc...
@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Nov 15, 2018

@jedbrown

This comment has been minimized.

Copy link
Member

jedbrown commented Nov 15, 2018

Looks good to me now. @domoritz Go ahead and create an archive on Zenodo or similar.

@domoritz

This comment has been minimized.

Copy link

domoritz commented Nov 16, 2018

@jakevdp Could you tag a new version?

@jedbrown

This comment has been minimized.

Copy link
Member

jedbrown commented Nov 23, 2018

@jakevdp Can you comment on this? Other papers I have edited archive a tagged version that contains the post-review repo/paper.

@domoritz

This comment has been minimized.

Copy link

domoritz commented Dec 7, 2018

2.3 is out.

@domoritz

This comment has been minimized.

Copy link

domoritz commented Dec 7, 2018

@jedbrown Here is the archived version of 2.3: https://zenodo.org/record/2030098.

@jedbrown

This comment has been minimized.

Copy link
Member

jedbrown commented Dec 7, 2018

@whedon generate pdf

@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Dec 7, 2018

Attempting PDF compilation. Reticulating splines etc...
@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Dec 7, 2018

@jedbrown

This comment has been minimized.

Copy link
Member

jedbrown commented Dec 7, 2018

Thanks! In double-checking, I noticed one more messed up citation (comma should be a semicolon). @arfon Is it possible to possible to include this trivial patch in the paper of record without requiring a new tag/archive?

diff --git i/paper/paper.md w/paper/paper.md
index 96dc1b4..bc99c65 100644
--- i/paper/paper.md
+++ w/paper/paper.md
@@ -70,7 +70,7 @@ JSON data, which is then rendered in a user-interface such as the Jupyter Notebo
 specification [@2016-reactive-vega-architecture], which is then parsed and executed using a reactive runtime that
 internally makes use of D3.js [@2011-d3]. 
 
-The declarative nature of the Vega-Lite visualization grammar [@2005-grammar, @2017-vega-lite], and its encoding in a
+The declarative nature of the Vega-Lite visualization grammar [@2005-grammar; @2017-vega-lite], and its encoding in a
 formal JSON schema, provide Altair with a number of benefits. First, much of the Altair Python code and tests are
 generated from the Vega-Lite JSON schema, ensuring strict conformance with the Vega-Lite specification. Second, the JSON
 data produced by Altair and consumed by Vega-Lite provides a natural serialization and file format for statistical
@arfon

This comment has been minimized.

Copy link
Member

arfon commented Dec 7, 2018

Thanks! In double-checking, I noticed one more messed up citation (comma should be a semicolon). @arfon Is it possible to possible to include this trivial patch in the paper of record without requiring a new tag/archive?

Yes, feel free to just update master with the fix.

@jedbrown

This comment has been minimized.

Copy link
Member

jedbrown commented Dec 7, 2018

Thanks. @domoritz Can you apply that trivial fix in the repository?

domoritz added a commit to domoritz/altair that referenced this issue Dec 7, 2018

@domoritz

This comment has been minimized.

Copy link

domoritz commented Dec 7, 2018

@whedon generate pdf

@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Dec 7, 2018

Attempting PDF compilation. Reticulating splines etc...
@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Dec 7, 2018

@dnszafir

This comment has been minimized.

Copy link
Collaborator

dnszafir commented Dec 7, 2018

Thank you for the feedback @dnszafir!

@jakevdp will appreciate the feedback on the getting started guide. The troubleshooting guide could suggest updating the Python installation as a possible step to resolve issues.

Altair is definitely designed with (novice) data scientists in mind. @jakevdp gave a tutorial at PyCon and all the materials are at https://github.com/altair-viz/altair-tutorial. There is also a case study that mirrors the Vega-Lite tutorial on exploring weather data at https://altair-viz.github.io/case_studies/exploring-weather.html. Is that something you had in mind?

Sorry for dropping the ball on this! Yes, this kind of thing seems quite relevant. I could imagine that coupling this kind of breakdown with a description of the statistical and analytical goals unveiled with each chart being super useful. Again, just a thought for future work given the target audience.

@jedbrown

This comment has been minimized.

Copy link
Member

jedbrown commented Dec 7, 2018

@whedon set 10.5281/zenodo.2030098 as archive

@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Dec 7, 2018

OK. 10.5281/zenodo.2030098 is the archive.

@jedbrown jedbrown added the accepted label Dec 7, 2018

@jedbrown

This comment has been minimized.

Copy link
Member

jedbrown commented Dec 7, 2018

🎉 Many thanks to @terrytangyuan, @kellieotto, and @dnszafir for your reviews. Over to you, @arfon.

@arfon

This comment has been minimized.

Copy link
Member

arfon commented Dec 8, 2018

@whedon accept

@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Dec 8, 2018

Attempting dry run of processing paper acceptance...
@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Dec 8, 2018

Check final proof 👉 openjournals/joss-papers#109

If the paper PDF and Crossref deposit XML look good in openjournals/joss-papers#109, 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

This comment has been minimized.

Copy link
Member

arfon commented Dec 8, 2018

@whedon accept deposit=true

@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Dec 8, 2018

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

This comment has been minimized.

Copy link
Collaborator

whedon commented Dec 8, 2018

🚨🚨🚨 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 👉 openjournals/joss-papers#110
  2. Wait a couple of minutes to verify that the paper DOI resolves https://doi.org/10.21105/joss.01057
  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

This comment has been minimized.

Copy link
Member

arfon commented Dec 8, 2018

@dnszafir, @terrytangyuan, @kellieotto - many thanks for your reviews here and to @jedbrown for editing this submission

@domoritz @jakevdp - your paper is now accepted into JOSS ⚡️🚀💥

@arfon arfon closed this Dec 8, 2018

@whedon

This comment has been minimized.

Copy link
Collaborator

whedon commented Dec 8, 2018

🎉🎉🎉 Congratulations on your paper acceptance! 🎉🎉🎉

If you would like to include a link to your paper from your README use the following code snippets:

Markdown:
[![DOI](http://joss.theoj.org/papers/10.21105/joss.01057/status.svg)](https://doi.org/10.21105/joss.01057)

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

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

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:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment