Open KatyBrown opened 9 months ago
Hello there, and welcome to the pyOpenSci community-- we are so happy you are here! Just wanted to let you know we have seen your submission and will get back to you with some initial checks soon. 👾
Hi there! Thank you for submitting your package for pyOpenSci review. Below are the basic checks that your package needs to pass to begin our review. If some of these are missing, we will ask you to work on them before the review process begins.
Please check our Python packaging guide for more information on the elements below.
import package
.README.md
file with clear explanation of what the package does, instructions on how to install it, and a link to development instructions.CONTRIBUTING.md
file that details how to install and contribute to the package.CODE_OF_CONDUCT.md
file.YAML
header of the issue (located at the top of the issue template).Thank you again for submitting plot_phylo
to pyOpenSci! I've gone through your package, and you've got a great start!
Blockers to beginning review process:
plot_phylo
, so you've already done a lot of the heavy lifting! This site should help with the maintenance of the package for you as well-- Sphinx will autogenerate API docs so you won't have to write out Parameters
and such yourself 🙂 Some smaller nits:
__init__.py
and _version.py
files have two different versions. It looks like you only use the _version.py
file though.If you have any questions or need any support with these tasks, pyOpenSci community would love to help out! The best places to get in touch are via discourse or Slack--let me know if you need an invite. And, of course, you can also reply here (but then you will be restricted to just my opinions 😂)!
Following up, @ctb will the editor leading the review for plot_phylo
once the above items have been addressed! Titus also has a few things to finish up before starting this role, so I'll check back here in about 2 weeks to check in if both parties are ready to kick off this review 😄
Hello all! Checking in here. @KatyBrown are you able to give an update on the status of a documentation website? We won't be able to start a review without that put up. If you need any support, please let us know!
Hi @isabelizimm , sorry, I got caught in other projects but I'm working on moving the documentation the readthedocs - it should be ready in another couple of days. Sorry to be slow! Thanks for checking in.
No worries at all--thank you for the update! 🌻 If you can give us a heads up in this issue once those docs are up, then we can get started on the review.
I am alive! Just let me know when to start finding reviewers :)
Hi @isabelizimm, very sorry for the long delay, I've now made the changes you asked for. The current version of the tool is now v0.1.9 - I've edited this in my original post.
Specifically I have:
Please let me know if there's anything else I need to do, otherwise I think I'm now ready to proceed to the next step :)
Thank you!
No worries-- with those all updated, I can hand everything over to @ctb to look for reviewers!
Apologies for delay - started beating the bushes for some reviewers. In the meantime, filed a few minor issues myself ;). The figures are lovely!!
@ctb thanks very much! I think I've addressed the issues you raised.
apologies for my long delay - have one reviewer locked in, reach out to some more today.
:wave: Hi @ammaraziz and @jkanche! Thank you for volunteering to review for pyOpenSci! Sorry it took me so long to post this, I blame ...umm, summer! Yeah, it's summer time! But seriously, thank you so much!!
Before beginning your review, please fill out our pre-review survey. This helps us improve all aspects of our review and better understand our community. No personal data will be shared from this survey - it will only be used in an aggregated format by our Executive Director to improve our processes and programs.
The following resources will help you complete your review:
Reviewers: @ammaraziz and @jkanche Due date: July 22nd, 2024
Apologies for the delay, I plan to finish my review this week.
Apologies for the delay, I plan to finish my review this week.
thanks for checking in! @ammaraziz, need anything from me?
Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide
The package includes all the following forms of documentation:
pyproject.toml
file or elsewhere.Readme file requirements The package meets the readme requirements below:
The README should include, from top to bottom:
NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)
Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider whether:
I cloned the repo and installed it in edit mode:
⋊> ~/P/p/t/plot_phylo on main ◦ pytest --cov=plot_phylo (reviews) 16:09:15
=========================================== test session starts ============================================
platform darwin -- Python 3.11.9, pytest-8.2.2, pluggy-1.5.0
rootdir: /Users/kancherj/Projects/public/trash/plot_phylo
configfile: pyproject.toml
plugins: cov-5.0.0
collected 0 items / 3 errors
/opt/homebrew/lib/python3.11/site-packages/coverage/control.py:888: CoverageWarning: No data was collected. (no-data-collected)
self._warn("No data was collected.", slug="no-data-collected")
================================================== ERRORS ==================================================
______________________________ ERROR collecting tests/test_get_boxes_data.py _______________________________
ImportError while importing test module '/Users/kancherj/Projects/public/trash/plot_phylo/tests/test_get_boxes_data.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/homebrew/Cellar/python@3.11/3.11.9/Frameworks/Python.framework/Versions/3.11/lib/python3.11/importlib/__init__.py:126: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/test_get_boxes_data.py:2: in <module>
import matplotlib.pyplot as plt
E ModuleNotFoundError: No module named 'matplotlib'
________________________________ ERROR collecting tests/test_plot_phylo.py _________________________________
ImportError while importing test module '/Users/kancherj/Projects/public/trash/plot_phylo/tests/test_plot_phylo.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/homebrew/Cellar/python@3.11/3.11.9/Frameworks/Python.framework/Versions/3.11/lib/python3.11/importlib/__init__.py:126: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/test_plot_phylo.py:2: in <module>
import matplotlib.pyplot as plt
E ModuleNotFoundError: No module named 'matplotlib'
______________________________ ERROR collecting tests/test_plot_phylo_data.py ______________________________
ImportError while importing test module '/Users/kancherj/Projects/public/trash/plot_phylo/tests/test_plot_phylo_data.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/homebrew/Cellar/python@3.11/3.11.9/Frameworks/Python.framework/Versions/3.11/lib/python3.11/importlib/__init__.py:126: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/test_plot_phylo_data.py:2: in <module>
import plot_phylo
E ModuleNotFoundError: No module named 'plot_phylo'
---------- coverage: platform darwin, python 3.11.9-final-0 ----------
Name Stmts Miss Cover Missing
--------------------------------------------------------
plot_phylo/plot_phylo.py 144 144 0% 2-586
--------------------------------------------------------
TOTAL 144 144 0%
========================================= short test summary info ==========================================
ERROR tests/test_get_boxes_data.py
ERROR tests/test_plot_phylo.py
ERROR tests/test_plot_phylo_data.py
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 3 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Add a short description and link to docs for the repository metadata. Helps users quickly understand the scope and link to the documentation (right side bar on the repository page):
Publishing seems to be manual right now and don't understand how that is setup? I usually use pyscaffold and it makes it easier for some routine package maintenance tasks.
code quality (linting) is not included in the CI/CD tests.
As I was reviewing the package, I thought a couple of features may be super helpful:
Overall, the package provides an intuitive and easy way to integrate phylogeny visualizations with matplotlib based workflows. Let me know if you have any questions.
Hi @ctb and @KatyBrown, please accept my apologies. I've been stretched thin over the last few months.
I will make time for reviewing this week if that is acceptable?
Hi @ctb and @KatyBrown, please accept my apologies. I've been stretched thin over the last few months.
as have we all! no worries and I really appreciate your willingness to review!
I will make time for reviewing this week if that is acceptable?
please and thank you!
The package includes all the following forms of documentation:
pyproject.toml
file or elsewhere.Readme file requirements The package meets the readme requirements below:
The README should include, from top to bottom:
NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)
Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider whether:
Note: Be sure to check this carefully, as JOSS's submission requirements and scope differ from pyOpenSci's in terms of what types of packages are accepted.
The package contains a paper.md
matching JOSS's requirements with:
Estimated hours spent reviewing:
Great package, works nicely and the provided example is a great start. The power of matplotlib means it's possible to make great plots.
Run unit tests in the root directoy as
pytest --cov=plot_phylo
and ensure that they pass and that coverage is 100%.
But I get an error:
pytest: error: unrecognized arguments: --cov=plot_phylo
Testing works if you run just pytest
in the root dir:
============================== test session starts ===============================
platform darwin -- Python 3.9.19, pytest-8.3.2, pluggy-1.5.0
rootdir: ~Desktop/plot_phylo
configfile: pyproject.toml
collected 138 items
tests/test_plot_phylo.py ................................................. [ 35%]
.......................................................................... [ 89%]
............... [100%]
================================ warnings summary ================================
tests/test_plot_phylo.py:23
/Users/aaziz/Desktop/plot_phylo/tests/test_plot_phylo.py:23: MatplotlibDeprecationWarning: Auto-close()ing of figures upon backend switching is deprecated since 3.8 and will be removed in 3.10. To suppress this warning, explicitly call plt.close('all') first.
matplotlib.use('Agg')
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=================== 138 passed, 1 warning in 62.46s (0:01:02) ====================
# Cite
KatyBrown - plot_phylo https://github.com/KatyBrown/plot_phylo
Good job on the great package.
thanks @ammaraziz and @jkanche!!
@KatyBrown please take a detailed look at the above, and I will do the same!
@jkanche https://pyscaffold.org/en/stable/ looks fascinating!
@jkanche and @ammaraziz, thank you so much for your reviews!!
@KatyBrown, I've extracted the unchecked bits of the reviews below -- please see bottom for my thoughts!
The package includes all the following forms of documentation:
pyproject.toml
file or elsewhere.The README should include, from top to bottom:
In general please consider whether:
I cloned the repo and installed it in edit mode:
(errors elided)
Add a short description and link to docs for the repository metadata. Helps users quickly understand the scope and link to the documentation (right side bar on the repository page):
Publishing seems to be manual right now and don't understand how that is setup? I usually use pyscaffold and it makes it easier for some routine package maintenance tasks.
code quality (linting) is not included in the CI/CD tests.
As I was reviewing the package, I thought a couple of features may be super helpful:
CTB comment: you could put these in the issue tracker, if you didn't want to implement them now :)
Overall, the package provides an intuitive and easy way to integrate phylogeny visualizations with matplotlib based workflows. Let me know if you have any questions.
The README should include, from top to bottom:
[X] Badges for:
[ ] Any additional setup required to use the package (authentication tokens, etc.)
[ ] If applicable, how the package compares to other similar packages and/or how it relates to other packages in the scientific ecosystem.
[ ] Citation information
Great package, works nicely and the provided example is a great start. The power of matplotlib means it's possible to make great plots.
Run unit tests in the root directoy as
pytest --cov=plot_phylo
and ensure that they pass and that coverage is 100%.
But I get an error:
pytest: error: unrecognized arguments: --cov=plot_phylo
Testing works if you run just pytest
in the root dir:
(elided)
# Cite
KatyBrown - plot_phylo https://github.com/KatyBrown/plot_phylo
Good job on the great package.
The three major suggestions from the reviews that stand out are -
The rest all seem like fairly quick add-this/adjust-that changes.
Please let me know if you have thoughts or questions!
Hi @ctb @jkanche @ammaraziz thanks so much for looking at this and sorry for my slow response. I will look at your comments over the next few days.
One quick thing, I do have CI testing which runs my test suite - the workflow is here https://github.com/KatyBrown/plot_phylo/actions/workflows/main.yml. I'm not sure if they are not showing up somehow.
Thanks again and I'll address everything else asap.
Hi everyone, apologies for my extremely slow response to this. I really appreciate all the feedback on my package. I've addressed specific comments below. All changes are present in release 0.1.11
@jkanche
Review Comments
- Cannot run tests following the instructions
Sorry about that, I’ve added new instructions to the manual - which hopefully now work.
- Add a short description and link to docs for the repository metadata. Helps users quickly understand the scope and link to the documentation (right side bar on the repository page):
I have now added these to the main page.
- Publishing seems to be manual right now and don't understand how that is setup? I usually use pyscaffold and it makes it easier for some routine package maintenance tasks.
I’ve now added publishing automatically to pip as a GitHub workflow - I’ll also look into this package as it sounds useful!
- code quality (linting) is not included in the CI/CD tests.
It is now included
As I was reviewing the package, I thought a couple of features may be super helpful:
- Highlight paths/features of interest
- Ability to choose or specify branch widths
CTB comment: you could put these in the issue tracker, if you didn't want to implement them now :)
I’ve added these two as enhancements in the issue tracker - as I have a few other enhancements I’d like to make at the same time and I don't want to delay this even further.
Overall, the package provides an intuitive and easy way to integrate phylogeny visualizations with matplotlib based workflows. Let me know if you have any questions.
Thank you very much!
@ammaraziz
Great package, works nicely and the provided example is a great start. The power of matplotlib means it's possible to make great plots.
Thank you! I appreciate it and I’m glad it works!
- Similar to the previous review, when testing the package I get errors. However, the documentation states:
Run unit tests in the root directoy as
pytest --cov=plot_phylo
and ensure that they pass and that coverage is 100%.But I get an error:
pytest: error: unrecognized arguments: --cov=plot_phylo
Testing works if you run just
pytest
in the root dir:
Apologies for this, I’ve updated the manual - with instructions which hopefully now work.
- Consider adding some basic usage docs to the readme to get people started.
I’ve added a QuickStart guide to the README.md along with an additional link to the full documentation, so it’s easier to find.
- Provide example of how to color internal nodes and branches.
I already have this example here but I’ve tried to make the manual easier to find from the README.
- Consider using github actions for testing and publishing.
I was already using GitHub actions for CI testing here, I’ve added details of this to the README.md and CONTRIBUTING.md files so it is easier to find. I’ve also now added publishing automatically to pip as a GitHub workflow
- Add a section on how to cite your work, even if it's just the github repo, for example:
Thank you - I’ve added this now to the README
Good job on the great package.
Thank you very much!
@ctb
The three major suggestions from the reviews that stand out are -
- a few more usage docs are suggested/would be welcome!
I think it was not very clear where to find my documentation, I’ve added additional links. If there is still not enough detail please let me know.
- test the instructions for running the tests, and/or improve the documentation;
I’ve updated the manual - with instructions which hopefully now work.
- suggest using GitHub CI - lmk if you need some pointers to quickstarts! I have some projects that do basically what you need, I think. Note that putting CI in place will help with the test running & documentation, above, too!
Thank you. I was already using GitHub actions for CI testing here, I’ve added details of this to the README.md and CONTRIBUTING.md files so it is easier to find. I’ve also now added publishing automatically to pip as a GitHub workflow
The rest all seem like fairly quick add-this/adjust-that changes.
Please let me know if you have thoughts or questions!
Thank you!
@ctb I’ve also done the following to address additional things on the checklist:
Thanks very much everyone for the feedback and please let me know if there's any more I can do!
Submitting Author: Katy Brown (@KatyBrown) All current maintainers: Katy Brown (@KatyBrown) Package Name: plot_phylo One-Line Description of Package: A Python package to plot a phylogenetic tree on an existing Matplotlib axis. Repository Link: https://github.com/KatyBrown/plot_phylo Version submitted: 1.9.0 EIC: @isabelizimm Editor: @ctb Reviewer 1: @ammaraziz Reviewer 2: @jkanche Archive: TBD JOSS DOI: TBD Version accepted: TBD Date accepted (month/day/year): TBD
Code of Conduct & Commitment to Maintain Package
Description
plot_phylo
is a Python package which allows the user to plot phylogenetic trees onto an existing matplotlib axis. This means annotations can be added using matplotlib functionality and figures including phylogenies can be included in automated figure generation.Scope
Please indicate which category or categories. Check out our package scope page to learn more about our scope. (If you are unsure of which category you fit, we suggest you make a pre-submission inquiry):
Domain Specific & Community Partnerships
Community Partnerships
If your package is associated with an existing community please check below:
For all submissions, explain how the and why the package falls under the categories you indicated above. In your explanation, please address the following points (briefly, 1-2 sentences for each):
Who is the target audience and what are scientific applications of this package?
Researchers working with phylogenetic tree data, a common data format for evolutionary and functional analysis of biological data.
Are there other Python packages that accomplish the same thing? If so, how does yours differ? plot_phylo depends on the functionality of ETE Toolkit, a widely used visualisation tool. ETE provides excellent tree visualisations but these act as a stand-alone image, which can't be incorporated into another programmatically generated figure except as an uneditable embedded image. plot_phylo trees are subplots of open matplotlib figures, so custom annotations can be added, aspects of the image can be updated and other subplots can show additional data.
If you made a pre-submission enquiry, please paste the link to the corresponding issue, forum post, or other discussion, or
@tag
the editor you contacted:Technical checks
For details about the pyOpenSci packaging requirements, see our packaging guide. Confirm each of the following by checking the box. This package:
Publication Options
JOSS Checks
- [ ] The package has an **obvious research application** according to JOSS's definition in their [submission requirements][JossSubmissionRequirements]. Be aware that completing the pyOpenSci review process **does not** guarantee acceptance to JOSS. Be sure to read their submission requirements (linked above) if you are interested in submitting to JOSS. - [ ] The package is not a "minor utility" as defined by JOSS's [submission requirements][JossSubmissionRequirements]: "Minor ‘utility’ packages, including ‘thin’ API clients, are not acceptable." pyOpenSci welcomes these packages under "Data Retrieval", but JOSS has slightly different criteria. - [ ] The package contains a `paper.md` matching [JOSS's requirements][JossPaperRequirements] with a high-level description in the package root or in `inst/`. - [ ] The package is deposited in a long-term repository with the DOI: *Note: JOSS accepts our review as theirs. You will NOT need to go through another full review. JOSS will only review your paper.md file. Be sure to link to this pyOpenSci issue when a JOSS issue is opened for your package. Also be sure to tell the JOSS editor that this is a pyOpenSci reviewed package once you reach this step.*Are you OK with Reviewers Submitting Issues and/or pull requests to your Repo Directly?
This option will allow reviewers to open smaller issues that can then be linked to PR's rather than submitting a more dense text based review. It will also allow you to demonstrate addressing the issue via PR links.
Confirm each of the following by checking the box.
Please fill out our survey
P.S. Have feedback/comments about our review process? Leave a comment here
Editor and Review Templates
The editor template can be found here.
The review template can be found here.