Closed nwlandry closed 8 months ago
Hi @nwlandry welcome to pyOpenSci!
Just checking: is this an intentional submission?
If so, please know we can't proceed with a review until all the fields in the template above are filled out.
At first glance XGI does appear to be in scope; we can close this and start a new issue later if you're not ready to submit just yet.
Hi @NickleDave - yes, it was an intentional submission, but I didn't realize all the missing fields. Sorry about that! I will correct this now. This is already published in JOSS, so I won't fill out the JOSS related items. Thanks so much.
Great, thank you!
Okay, should be all set I believe. Thanks so much!
Hi @nwlandry 👋
I'll go through the submission process with you. Thanks for filling out the survey! Now it's my turn ♟️ I will perform initial checks of the package, and if everything is fine, the review process begins. Please, ping me in cases related to the package or review process.
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-name
.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
file.YAML
header of the issue (located at the top of the issue template).Hi @nwlandry !
I've checked your package, and it is beyond expectations. Every point from the checklist is valid! I've included two comments that may be interesting for you (but both are optional, do as you wish :) ):
I didn't find the JOSS paper citation on your package webpage. Having the Citation header on your main page (additionally to the citation in the repo) would be nice. But it's up to you :) Usually, I cite packages by copying text from README or a documentation page.
This is 100% optional: you may consider using the nbsphinx plugin to render your tutorials into the documentation webpage. But it could be tedious because you must track changes in your tutorials and/or have these in two places, so I understand if you don't want to do it :)
For now:
I will start looking for the reviewers for your package. It should take around 1 week, hopefully not more :) @nwlandry Could you help me a little with this task and provide ~5 categories that your package falls into? Thanks in advance!
Categories that XGI falls into:
Hope this is what you meant!
@nwlandry thank you, this is what I needed!
We have the first reviewer on board! Welcome @JonnyTran ! And we are close to assigning the second reviewer, and the package review will start soon.
Hi, we have our second reviewer! Welcome @Reckony !
@JonnyTran , @Reckony
Please confirm your involvement here, and copy & paste the review template from here: TEMPLATE into your responses. For now, it could be empty, you can go through it point by point and check empty boxes, or you can fill it when you end your review.
The review steps are described here: Review Steps. If you feel that something needs to be clarified, I'll guide you!
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:
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: 2
Hypergraph
's?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:
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:
https://github.com/xgi-org/xgi/issues/453
Hi all, just letting you know I'm still working my review, but have a few job interviews coming up that filled up my calendar. Would it be okay with @nwlandry if I finish my review by Aug 18, or would you prefer I drag it closer?
Hi @JonnyTran! Thanks for reaching out! From our end, there is no rush, so August 18th is fine. Best of luck with the interviews!
Hi @Reckony
Do you need any help or guidance with the review? I'm here to help you. We can even make a call and discuss it :)
Hi folks, sorry for delay in reviewing, I am in work marathon at the moment due to important milestones… Nevertheless I am working on it to deliver as said 👌
Hi, could you please refer to my review questions at the bottom of review checklist? I'm almost done :)
@Reckony Thanks for your input!
About your questions: 1 - Yes, this should be done. Could you open an issue in the package's repository and ask the authors about similar packages? Then, could you paste the issue link in this thread to let everyone know something is happening? 2 - JOSS accepted the package in the past. You can skip those checks!
@nwlandry I am curious if you have seen comments from @JonnyTran - could you elaborate here?
@JonnyTran - do those comments block the package from the acceptance? Or are those propositions for future development of the package?
Thanks everyone for your time on this. I'm one of the maintainers of XGI, I'll start replying and Nicholas can complete my answers later.
@Reckony 's questions:
@JonnyTran's questions:
{edge_id: node_members}
and {node_id: edge_memberships}
dictionaries with H.edges.members(dtype=dict)
and H.nodes.memberships()
. Is that what you were thinking, but in a pandas dataframe?Apart from issue https://github.com/xgi-org/xgi/issues/453 review done.
@nwlandry I am curious if you have seen comments from @JonnyTran - could you elaborate here?
@JonnyTran - do those comments block the package from the acceptance? Or are those propositions for future development of the package?
I meant to comment as suggestions for future development and none are blocking.
But for comment 2, I can add an issue for xgi.to_bipartite_pandas_dataframe(H)
@maximelucas
@JonnyTran's questions:
- That's a good idea, we'll look into that. Right now it's possible to have a
{edge_id: node_members}
and{node_id: edge_memberships}
dictionaries withH.edges.members(dtype=dict)
andH.nodes.memberships()
. Is that what you were thinking, but in a pandas dataframe?
Actually I misunderstood about xgi.to_bipartite_pandas_dataframe(H)
so please nvm about that. I meant to suggest that XGI can have functions similar to nx.to_pandas_edgelist()
to export to dataframes, which is more conducive for working with other plotting libraries.
- I never thought of that. I would've thought that users wouldn't think they could use networkx functions. Are you thinking of a place in particular in the documentation that might be confusing regarding this, or a way to make sure it's clear? In any case it's not designed so close so as to be able to use networkx functions, but a few might incidentally work, we can check this.
I couldn't find any particular documentation suggest compatibility, but in using an API that's similar to NetworkX's, I think some users might try the familiar method nx.neighbors(H, n_id)
instead of H.nodes.neighbors(n_id)
. I think it is more helpful to make it clear that XGI is not meant to be an extension of NetworkX to avoid these trials-and-errors.
I've seen that you pushed a PR with the requested changes in README.md (badges). @nwlandry , @maximelucas could you let us know when the PR is accepted?
Hi @SimonMolinsky! So sorry for my delayed reply on this. I will certainly let you know when the PR is merged. I have looked through all the comments and suggestions and in response, we are doing the following:
Because of scheduling constraints, I anticipate that we will merge the PR addressing the immediate changes sometime next week.
Hi @SimonMolinsky! PR #470 is now merged and I published a new XGI version on PyPI to reflect this. Thanks so much.
@Reckony , @JonnyTran Could you look into the newest changes and update your reviews accordingly? We are close to the package acceptance :)
Final review done, no more issues from my side. Thanks
Everything looks great to me, and I approve the Final approval (post-review)
!
🎉 XGI has been approved by pyOpenSci! Thank you @nwlandry for submitting XGI and many thanks to @Reckony and @JonnyTran for reviewing this package! 😸
@nwlandry there are two tasks for you to perform:
[![pyOpenSci](https://tinyurl.com/y22nb8up)](https://github.com/pyOpenSci/software-review/issues/115)
.Please complete the final steps to wrap up this review. Editor, please do the following:
6/pyOS-approved6 🚀🚀🚀
.6/pyOS-approved
label). Once accepted add the label 9/joss-approved
to the issue. Skip this check if the package is not submitted to JOSS.@SimonMolinsky Thanks! I just completed the survey and added the badge. I will bring up the blog post at our all-team meeting on October 10th.
@nwlandry The one last thing is the badge:
Add the badge for pyOpenSci peer-review to the README.md of XGI. The badge should be [![pyOpenSci](https://tinyurl.com/y22nb8up)](https://github.com/pyOpenSci/software-review/issues/115).
Let me know when it's done.
I'm not sure if you or your friends are the part of pyOpenSci Slack community at this moment, but if not, and you want to, then let me know, and I will send invitations for you :)
Hi @SimonMolinsky, thanks for the reminder! Should be done now. I would love an invitation to the Slack and I will ask the rest of the XGI team as well. Thanks @JonnyTran and @Reckony for your helpful reviews!
@nwlandry I'll close the issue soon (at the end of this week) because XGI is ready to be a part of pyOpenSci. We are honored that you have submitted your work here!
About the blog post: we can communicate here or by email. I will email you about joining the pyOpenSci community.
@Reckony & @JonnyTran Thank you for your support! :raised_hands:
Submitting Author: Name (@nwlandry) All current maintainers: (@nwlandry, @leotrs, @maximelucas, @iaciac, @lordgrilo, @acuschwarze, @thomasrobiglio, @alpatania) Package Name: XGI One-Line Description of Package: XGI is a Python package for higher-order networks. Repository Link: https://github.com/xgi-org/xgi Version submitted: 0.7 Editor: Szymon Moliński (@SimonMolinsky) Reviewer 1: Nhat (Jonny) Tran (@JonnyTran) Reviewer 2: Marta Leszczyńska (@Reckony) Archive: Version accepted: 0.7.4 JOSS DOI: Date accepted (month/day/year): 09/23/2023
Code of Conduct & Commitment to Maintain Package
Description
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:
[x] NumFOCUS XGI is a NumFOCUS Affiliated Project.
[ ] Pangeo
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?
The target audience is network scientists across multiple disciplines, particularly those interested in networks that contain higher-order interactions. The scientific application of this package is provide a common language for network scientists to work on projects related to higher-order interactions by providing common data structures, algorithms, and basic visualization tools as well as standardized datasets.
Are there other Python packages that accomplish the same thing? If so, how does yours differ? There are several existing packages to represent and analyze higher-order networks:
HyperNetX
,Hypergraphx
,Hypergraph Analysis Toolbox (HAT)
, andReticula
in Python,SimpleHypergraphs.jl
andHyperGraphs.jl
in Julia, andhyperG
in R. XGI is a valuable addition to the current suite of library available. First, XGI is implemented in pure Python, ensuring interoperability and easy installation across operating systems. Second, like several of the packages listed, XGI has a well-documented codebase and tutorials designed to make the learning process intuitive. Third, in contrast to existing packages, XGI contains astats
module enabling researchers to easily access established nodal and edge quantities, and even define custom quantities. Fourth, XGI offers data structures for hypergraphs, directed hypergraphs, and simplicial complexes, which allows users to explore a wider range of interaction models than comparable packages. Lastly, XGI integrates higher-order datasets with its interface, providing a standard format in which to store hypergraphs with attributes and a data repository with corresponding functions to load these datasets.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: Do not submit your package separately to JOSS*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.