-
-
Notifications
You must be signed in to change notification settings - Fork 43
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
Affiliated Package: Consolidate with pyOpenSci? #334
Comments
Nice - great to see more people setting up infrastructure for code review and publication! How would you envision consolidating with the pyOpenSci process? While much of our review criteria are similar, Astropy Affiliated packages also have to play nice with Astropy so we have an extra "requirement". How would that work if we consolidated? |
Not sure, probably cannot just "jump over". If people think this is worthwhile pursuing, we likely have to form a subcommittee of some sort, lead by the current Affiliated Package Editors (@dhomeier and @WilliamJamieson at the time of writing), to open a conversation with pyOpenSci people in similar roles. |
This comment was marked as resolved.
This comment was marked as resolved.
Update: I updated the original post above with notes from Astropy Coordination Meeting 2023. Please let me know if I missed anything. Thanks! |
Good morning all! 👋 I am developing the pyOpenSci community and structure! i am going to chat with @pllim a bit more about this but i wanted to introduce myself here and mention a bit about some of the processes that might support some of your goals! A few notes
Packaging best practicesWe have been interfacing with the community both scientific and broader community including PyPA to develop a packaging guide. we plan to keep this current and we use these recommendations to help move authors towards more modern standards. But we of course never push too hard on that front recognizing that author's have limited time. We just want to help / encourage authors move towards better approaches when possible. I hope that helps. i'm happy to answer any questions as well and look forward to chatting more with you @pllim later this week! |
High level summary from meeting up with @lwasser on 2023-05-11 (thank you, Leah!) as follows. General notes
A major differenceAstropy: Reviewers are anonymous by default (though they can choose not to be). Reviews go through the intermediate person that is one of our two Editors. pyOpenSci: Reviewers are all public as the whole review process is public. They are unable to make reviewers anonymous as that would conflict with their philosophy. Question for Astropy: Is this a deal breaker? Future workIf we decide to proceed...
astropy-devIf you want to discuss on |
I personally find it weird that the astropy review process is private anyway, so +1 to open. |
FWIW, I don't think the anonymous thing is a deal-breaker. I think there's some tradeoffs associated with seniority and retaliation and the like, but sometimes it cuts both ways. Expanding a bit more on that: the advantage of anonymity is that it allows someone who's more junior or in a position where they might in some way be retaliated at (even in subtle ways like "the next time that person sees me at a conference they don't invite me to dinner"). But it also allows people to do the other thing of using the shield of anonymity for bad behavior. IMHO in Astropy I think it's better than not because we have a specific set of reviewers from inside the community with at least some understanding that we want to better the project, whereas any random affiliated package author might or might not have that feeling. So I think it might be advantageous to keep, but I think if it's the price we have to pay to collaborate with pyOpenSci I think it might be worth it if they can lower our infrastructure and support costs. That said: I will highlight something @adrn mentioned at the coordination meeting: that it's not clear to me our problem is infrastructure, as opposed to finding people to actually do the reviews. pyOpenSci might not be able to really help with that. But if they are thinking of re-review and have some energy to do that too than it seems like a good win! Either way I completely agree we should keep lines of communication open, so thanks for doing that @pllim ! |
I guess that raises a question for @lwasser 👋 : can you imagine having anonymity being an option or something in the future for pyOpenSci? I'm not sure it's worth it for the extra cost even given what I said above, but maybe you have an opinion already here? |
@eteq , even if it does not help with increasing the pool of reviewers (which I would disagree if collaboration means we also have access to JOSS reviewers though I am not sure on that), it would help exposure for the Affiliated packages (to be advertised to wider scientific Python community rather than just being listed on our own website) but that is my personal opinion. |
I think when the current editors said "finding reviewers is a problem", they did not mean "we ask a lot of reviewers and they all turn us down and then we don't know whom to ask any longer", instead they mean "we as editors don't know enough about subfield X to know which person to ask as an appropriate reviewer in the first place". That means it's not primarily about increasing the pool of reviewers (though that won't hurt of course), it's more about having a larger team of editors that cover a broader range of expertise themselves and thus will have more knowledge of different sub-fields of astronomy then one or two people can possible have. A collaboration with pyOpenSci (and indirectly JOSS) is neither good nor bad for that problem in itself, we could solve that by either increasing the number of our own affiliated package editors e.g. from 2 to 4, or by collaborating with pyOpenSci and contributing a few people to an existing team of editors. |
Like @eteq I realize that there is a reason for having anonymity (at least as an option), but I have a preference for open reviews where possible and in practice
|
hi everyone! 👋 and hi @eteq !! nice to connect again here. i think we met many moons ago at scipy when we did an early bof there.
Right now it's very difficult to imagine anonymous reviews. Perhaps we can chat a bit more about this so i can better understand. Our review model is not adversarial, it's objective and supportive. It is about supporting maintainers and providing constructive feedback on package usability, structure, technical elements, etc. I mentioned to @pllim that if a package is rejected it's rare but often in the initial editor in chief checks. There are a few circumstances for rejection including out of scope and/or unusual / complex / non standard infrastructure that we know will be difficult to support/ maintain if that maintainer steps down. in our reviews, sometimes reviewers open pull requests. this most recent review might be a good one to see how our review is a conversation with a goal of improving package infrastructure and usability, etc. An adversarial reviewer or author would violate our code of conduct and our values around peer review. Maintainers work hard enough already to develop and maintain their tools. we want to help them and slowly improve / enhance the ecosystem in the process. A "good" reviewer has a goal of helping to improve the package and point out issues. We'd be happy to also add additional language to our COC that authors agree to prior to a review surrounding adversarial review environments and repercussions for retaliation (being removed from the ecosystem?). As of now they do have to agree to our COC. Junior level reviewersWe embrace reviews of all career stages and will even support them if they are new to review through our mentorship program. id NEVER want to see someone become fearful of their career trajectory being impacted because of a review. Questions for the group here
Sometimes we have a very technical reviewers and one that is most focused on usability. that can vary.
Second reviews of packages
What we do care about is long(er) term maintenance of tools. As such we do plan to develop processes to flag packages that become unmaintained over time. We do want to support finding new maintainers if we can. Reviewer pool@pllim i'm wondering if we can discuss this more in person in seattle? We do not "access" JOSS reviewers per say. Normally to find reviewers we reach out to the community to find people who have domain knowledge and packaging knowledge. It could be that someone who reviews for JOSS might also review for us! I need to know a bit more about the challenges you've all experienced finding reviewers. Things that we offer in terms of peer review
I hope that is helpful. please let me know if you have other questions! and @pllim i'm super excited to talk IRL !! |
Long post with details in subsections below. Bottom line is that I personally think we (Astropy) should join our affiliated pacakge review process with PyOpenSci. In practice, I'm OK with open (non-annonymous) reviews - we do that for PRs, so why not do it for affiliated packages? If we go this route, we would simply set a cut-of date and say "after date X, submit through PyOpenSci and follow their process. The main open question is what to do about packages that are already affiliated to astropy. It does not seem fair to force all of them to go through the full review process again, in particularly those that have been recently reviewed. On the other hand, I feel it's hard to set a cut-off and say "packages accepted within the last two years are OK, all other start from scratch". Is retaliation a problem in practice?I think that "retaliation" is more of an abstract concern that's translated from what people are used to on the science side and should not distract us from what we try to accomplish here. It's not something that's ever come up and we do have community guidelines and codes of conduct that forbid retaliation. If they could be enforced (say, I don't hire a Post-Doc at my institute because I did no like their review three years before) is a different matter. We, in Astropy, also try to be helpful, and I know of cases where reviewers have opened PRs (without revealing that they were the reviewer) or have explicitly pointed to templates or examples for e.g. specific fixes of documentation. Number of reviewers in our current processIn our current process, we combine two reviews: The "reviewer", who is normally chosen to be a subject matter export (e.g. someone who works on galaxy evolution for a packages that models galaxies) and the "editor" who usually looks more one the technical side (CI, docs, license files). The intention was to ensure that accepted packages not only follow best practices for packaging etc., but also represent the accepted state of the art in the field, e.g. don't rely on star formation theories that have been disproven decades ago. Professional astronomers typically get a certain number of "I can prove Einstein is wrong / only God created the universe / the elites control our thinking / ..., but the scientific establishment ignores me" emails/messages/submissions per year, and we anted to make sure none of those sneaks into an accepted package; we also wanted to at least carefully screen things that are true science, but so experimental,so new, and so specific to one particular paper, that there is little potential for reuse and high potential that the theory it's based on turns out to be wrong very soon. Again, in practice, I don't think we've had any submission of those types, but at least in my mind, that's why we ask for a review from a subject matter expert. re-reviewWe've always intended, but never done re-reviews. What we mean by that is that packages are checked again after a few years and might be removed from the affiliated list at that time, if they fall behind the times, e.g. a package might have been accepted as Python 2.6 as out and maybe wasn't updated since, or if if they become unmaintained. It's OK to be stable, but if there are no commits for the last few years at all, and it's broken with current Python versions, we would not want to recommend it as an affiliated pacakge any longer. This sounds very similar to "we do plan to develop processes to flag packages that become unmaintained over time", so maybe we can develop that process together. Some background on "expectation for peer review in the astronomical community" for context of the previous posts:Most science journals in our field have reviewers anonymous by default; some now push for a double-blind standard where the authors are also anonymous to the reviewer and only known to the editor. Similarly, NASA proposals (and many other organizations in astronomy) have always used anonymous reviewers and NASA policy is now requiring all missions to move to a double-blind process, where the name of the proposer is revealed to the reviewers only after the proposal has been ranked. Obviously, that's not going to work fora review for code that's on github with signed commits, but I think that some of (at least my) reluctance comes from the fact that we've been trained for the last few years that double-blind is the new standard and it better for inclusivity in proposals and paper reviewing (and there is data to back that up). On the other hand, making all reviews public is moving in exactly the opposite direction. |
hey there @hamogu ! phew there is a lot there to digest! let me give this a go :) but what might be nice is for us all to have a chat at some point and then we can take notes and share here?? i also think there are enough details here that a google doc would be helpful to sort through so that decisions are recorded in one place. i have started one and will share it once i've added a bit more to it (it's empty now :) ) How would the transition work for already reviewed and accepted astropy affiliated packages?
i think this would be difficult for us to just accept package by default. it would also be unfair to those who spent time with us going through review. a colleage of ours @cmarmo actually discussed this a bit yesterday. BUT here is what i propose as an alternative:
Based on the above we see how many packages would need to be reviewed, how maintainers feel about that and go from there. If you had intended to do a second review at some point anyway and you have packages that were reviewed many years ago a new review might be good regardless. Another idea: what if we have a list of affiliated packages somewhere that are not pyos reviewed (yet). maybe that list lives on the astropy website and we slowly review packages and they move over to our listing. my vision for our website would be we'd add a "astropy" filter to our package page. . Transparency in reviews
i hear you. I think a LOT of scientific journals follow this policy / approach. in fact every review i'd ever been through has been blind and i only interface with the editor. But maybe you can consider what your goals are. I think that the open source community invests a lot of (often unpaid) time in tools that other people use. Open source work is also very much undervalued particularly in academia. So often someone who is passionate about open work is forced to both publish traditional papers AND continue their work for the good of the community without any recognition. This core issue in academia is precisely what journals like JOSS were designed to address. Support for maintainers rather than too much additional work to fit into that specific academic publication model. pyOpenSci takes this concept a step further. We want to not only provide a useful supportive review that improves the quality and potential sustainability of a package, but also we want people to know about the tool AND we want to support the maintainer as questions come up about packaging, best practices etc. we want to create and support community. as such i think there is great value in an open review where the goal is to improve the package and support the maintainer while also evaluating the package's utility. And hopefully through that support it will help authors over time as they maintain the tool. And ideally over time if they need to move on we can help find a new maintainer team to keep the tool going. i have a lot of thoughts here but i'd love us to move away from that traditional academic model in the open source space. It does not feel like a healthy fit for open source maintainers. I do understand it on some levels for academic papers. But do we really need it for code given we are all working openly? That is just my opinion :) but one i feel strongly about. Tracking maintenanceit would be wonderful to work together a bit on this item. The other day i was introduced to a very cool tool created by the scikit-build dev, Henry. I spoke with him about how we could potentially modify this to automate both our early editor in chief checks and our ongoing maintenance checks. We also hope to create some dashboards for our packages using work scientific python is doing to track activity. We could implement all of this with a bot that we are planning to install via a collab with arfon from JOSS and his work on whedon combined with perhaps a cron job that runs a report / updates a dashboard for us. Finally id like to maintain a list of maintainer emails (we have a survey that maintainers fill out as a part of the review). this will allow us to send out periodic emails maybe once a year to check in on maintenance status and any needs people have. In short this is something i've been thinking about for a while . i feel confident it is something that we can track over time and then either sunset packages as we need to / find new maintainers etc. My next funding pitch will likely include some of this infrastructure work. the whedon bot work is planned for this current funding cycle. anyway i have a lot of ideas here and we just need to think about use cases and implement this. summaryi'd really like to see some changes in the academic model. review should be constructive. and reviewers shouldn't be fearful of providing feedback to someone that is constructive. I also believe those participating in reviews should come from diverse backgrounds. so we want a mix of early vs late career, varying gender identities, backgrounds etc. Feedback shouldn't be opinion driven or personal. it should be useful and helpful. And it should be a mix of usability (documentation), domain specific feedback, technical packaging feedback. (this is why we have editor in chief checks, an editor and 2 reviewers for each review). id really like to see us support the open source maintainers that are already doing more for the community. i suspect based on everything that i've read here that we could work together productively producing a win-win situation.
Things we offer:
|
Definitely, I would be happy to chat more next week. I also love the plan for automation and resource sharing. A follow-up meeting is a great idea and I think this time it should include at the very least @astropy/coordinators (or subset of them) and our current Editors (@dhomeier and @WilliamJamieson). Whether when we can find a good time though is another matter... 😬 |
sounds great. also please if y'all have other questions / concerns i'm happy to do my best to answer them. we just want to support the scientific community however we can as a centralized community resource. |
Just stopping by from a Python in Heliophysics Community (PyHC) meeting, and @lwasser just gave a fantastic talk on pyOpenSci. I just wanted to mention that there's a lot of interest among PyHC members about joining pyOpenSci, in particular because of how closely related the heliopythoniverse is with the astropythoniverse. Also of interest to @jibarnum and @sapols. Thanks! |
Since this is in active discussion by multiple groups, I pinned this issue for higher visibility. FYI. |
I spoke with @lwasser at length today at Scientific Python Developers Summit 2023. There were a lot discussed. Here are two concrete follow-up action item:
|
Hi Colleagues 👋 Please don't hesitate to reach out with any questions. Looking forward to chatting more about this potential partnership. |
As a quick informational item triggered by some out-of-band discussion between @lwasser and others in this thread, I wanted to leave this link here: https://github.com/astropy/astropy-project/blob/main/affiliated/affiliated_package_review_guidelines.md has the astropy affiliated package guidelines for comparison with pyopensci standards. |
thank you @eteq !! i am going to work on a draft pr that attempts to identify the astropy specific standards that would overlap on top of the pyOpenSci standards. Once I have a pr open, I will leave a link here to ensure everyone sees it. i'll likely work on this in the next 2 weeks. I will also work on a landing package mockup for astropy for our website. It was wonderful to talk to astropy folks today and to get to know the community a bit better. I look forward to moving forward together collaboratively. More soon! |
This comment was marked as resolved.
This comment was marked as resolved.
Meeting notes from 2023-06-15Attendees: @pllim, @lwasser, @WilliamJamieson, @eteq, @hamogu, @dhomeier ✔️ Yes, we should move forward with this collaboration! Q: Who owns this process? Q: Will this new process take away Astropy's community building capability? Q: How are the discussion between pyOpenSci and other groups going? Q: Can we talk about this more during Scipy 2023 conference? Q: Can pyOpenSci help with expanding the reviewer pool or do we have to also reach out to JOSS? Action Items
Blocked for now
|
hi everyone! i am finally focused on the TODO's that were mentioned above. To begin, please find a pr here that creates a draft partner page akin to what we created with pangeo here. . I wanted to be transparent in my process of developing the text. Thus, in that pr you'll see a link to the google document where i took all of the affiliated package requirements that i could find, and tried to merge it with our existing requirements. things like documentation will be addressed in our inintial editor in chief checks for instance. I welcome any and all feedback the next step is to work a bit more on the astropy landing page for @eteq and others to review! NOTE - this is going to require a discussion around what metrics make the most sense for ALL packages to track package health over time. As such we might have a few iterations on the design of this page. the initial will be based on what i already have developed for the website. then we will get funding (i'm already talking with funders!) to build out some more infrastructure around this specific dashboard leveraging as much as we can from work being done at @ Scientific Python which already has some funding for their devstats work 😄 reach out or respond here with any general questions. Please leave comments on the requirements in the open PR so we can iterate there. |
One more point - HERE is a start at a discussion around the landing page and what metrics we might want to show. To discuss metrics collected that will impact all of our packages which is a longer term discussion around how to track mainetnance that we will seek funding to implement - please go here. . we can actually implement the partner landing page for packages however now or whenever we are ready and then keep the discussion going around metrics which will take more time to develop. @eteq i hope this gives you what you need to start thinking about the astropy website implement as well! we can modify the feed to include whatever we want. i haven't actually created it yet but can once we've made some decisions around what we want to include |
Update from me on 2023-07-28:
I really hope @eteq can chime in soon in the website mock-up. Otherwise, we might just move on without that valuable input. |
i just left feedback on the APE! pls let me know if you need anything else. |
pyOpenSci started https://github.com/pyOpenSci/software-submission and they have partnership with JOSS. 👀
JOSS requires a paper, but it can be very short (e.g., two paragraphs). Passing pyOpenSci is similar enough to JOSS that the only additional requirement would be the paper.
Updates from Astropy Coordination Meeting 2023
The text was updated successfully, but these errors were encountered: