Hi all,
The purpose of this post is to discuss writing up a few guidelines around development discussions during audio/video calls and in-person meetings. I’m hoping we can discuss the key points here, and then open a PR with changes to the SciPy Core Developer Guide and/or the SciPy Project Governance document.
The immediate trigger for opening this discussion now was the fairly contentious discussions around the dev process used for the stats.distributions overhaul (xref gh-15928 and gh-21050). However, there have been more instances of this coming up, from “how should this work” and “why didn’t I know about this” questions to (sometimes) disagreements. We have people meeting at in-person events, we have active grants, we have maintainers who work in the same company or institute, we have bi-weekly community and newcomers meetings, we have folks self-organizing and collaborating around particular topics, we regularly have internships focused on contributing to SciPy, and more. And our written docs and policies say next to nothing about any of this. So I think it’s time to try and rectify that a bit. That isn’t going to lead to major changes in how we work, but hopefully it’ll capture a common understanding and help with some knowledge transfer around things that currently have to be learned by osmosis.
Here is a set of points/guidelines that came to mind for me:
- Decisions get made in public, in this forum (previously the mailing list) and on GitHub - according to our current governance policy and many years of established practice. This didn’t/doesn’t change - any discussion elsewhere has to lead to written proposals and requires time for open discussion and (ideally full) consensus before finalizing a proposed change.
- Higher-bandwidth discussions between SciPy maintainers & contributors - in person or in audio/video calls - are:
- A normal part of contributing to the project,
- Desirable for some - we’re working with other people and building connections is part of the fun,
- Less desirable for some other people, for a variety of reasons from time constraints to personal preferences or perhaps even a disability; contributing asynchronously only is perfectly fine and normal,
- Potentially a more effective way of collaborating (but not necessarily for everyone or all topics),
- Not required for participating in the decision making process for any topic,
- It’s up to folks doing the higher-bandwidth discussions to switch to async mode early/often enough to ensure everyone gets a chance to participate to the extent they want,
- Some suggested guidelines for ways of working:
- For meetings that happen regularly, ideally they will have:
- public announcements,
- an entry in the SciPy community calendar at Scientific Python - Community Calendars 📅,
- meeting minutes and other relevant artifacts (e.g., slides for a presentation given on behalf of the projects) added to GitHub - scipy/archive: Archive for public materials such as meeting minutes, logos, and presentations, and
- relevant discussion on a particular issue or PR summarized in a comment on GitHub.
- This ideal setup in the point above isn’t always achievable for various reasons (meeting format, time constraints of participants, etc.).
- That happens and isn’t a problem - working in private is not wrong and can be quite productive - as long as the folks involved realize that if it isn’t posted publicly yet, it can’t be decided on.
- The longer you wait before making something public, the higher the risk someone will disagree with some choices you made along the way and ask for significant changes, so consider this carefully when working on something in private.
- If you do start out working in private on some topic/design, remember to “switch gears” to public mode - explicitly think about when you do this (typically when opening either a PR or an issue with a design proposal).
- For meetings that happen regularly, ideally they will have:
I hope this is helpful. Feedback, other thoughts and ideas are very welcome as always. I’ll give this at least a week before thinking about opening a PR.
Cheers,
Ralf