CORSA is a community of practice dedicated to software sustainability for scientific and research software projects. Our mission is to provide a neutral and independent platform where projects can collaborate effectively, fostering excellence and innovation within the scientific and research software communities.
14 May 2024
Daniel S. Katz, Leah Silen, Elaine M. Raybourn, Greg Watson, Addi Thakur Malviya, and the CORSA Team
This document, written as part of the work of the Center for Open-Source Research Software Stewardship and Advancement (CORSA), describes the information that a particular software project needs to collect/have in order to apply to and then join NumFOCUS. Much of the content in this document comes from NumFOCUS documents, including the website and the project application form, as well as the fiscal sponsorship agreement that was used for Parsl: Parallel Scripting in Python to join NumFOCUS.
NumFOCUS is a 501(c)(3) public charity providing services and support to sustain project communities within the open source scientific ecosystem. Through its mission to provide foundational support, to empower, and to sustain the open source scientific computing ecosystem, NumFOCUS provides an independent, professional, and stable home for research software communities. NumFOCUS’s proven operational systems are adept at seeking, managing, and allocating funding from diverse sources, all while prioritizing project autonomy.
The NumFOCUS website’s projects page states, under Community, that “Project leaders benefit from participation in the NumFOCUS network, which includes leaders from a variety of scientifically oriented open source computing communities. NumFOCUS leverages our broad, international network to help build connections that support our projects. In addition to making strategic introductions, NumFOCUS creates opportunities for project leaders to connect with one another as a group, both in person and through digital forums.” And under Promotion, it states that “NumFOCUS projects benefit from elevated visibility as a result of their association with the organization. We work to highlight all of our projects through various communications and marketing activities. We also find opportunities to showcase our projects with potential and current corporate sponsors.”
Some additional benefits from joining a foundation are discussed in Section 5 of Watson, et al., 2023.
NumFOCUS has two options for projects that want to join it:
All projects are required to
Fiscally sponsored projects additionally are required to have
In the rest of this document, we discuss both fiscally sponsored projects that we assume meet the basic requirements above, as well as affiliated projects.
In addition, there are two types of fiscal sponsorship, each of which might be appropriate for some software projects.
We generally assume that projects will want to join under the comprehensive model, but some projects may already have their own legal structure or want to set one up, and then join under the grantor-grantee model.
To apply for NumFOCUS fiscal or affiliate sponsorship (see https://numfocus.org/projects-overview), the following questions must be answered. Questions that start with * are required to be answered. Since NumFOCUS’s decision process is not transparent, we cannot say that all questions need positive answers, but that the balance of the answers is part of the decision process, and that these are generally good practices for most software projects (as indicated in italics after each question). NumFOCUS currently requires that this information be entered into a form; it will likely be easier for a project to collect (and discuss) it elsewhere, then when it is complete, enter it into the form.
Note that questions below in bold will be asked for both projects seeking fiscal or affiliate sponsorship, while questions that are not in bold will only be asked for project seeking fiscal sponsorship.
*Does the project have a contributor Code of Conduct?
All projects should have a Code of Conduct (CoC). One option for a project that doesn’t yet have one is to use the NumFOCUS CoC, see question 22. Another popular starting point is from Contributor Covenant.
*Project name
All projects should have a name. Note that the project can later change its name if needed.
*URL of project’s main repo
The open source project should have a main repo that is public and has a URL
Project’s website (if applicable)
The project should have a website, perhaps generated from a repo
*A summary description of the project in a few sentences
All projects should already have this in their README
*Does the project have a logo?
All projects should have a logo, but this question is answered no, the next question will not be asked.
The project’s social media handles/URLs
Projects should typically have some social media presence as a project, distinct from any one of the developers
*Why does the project want to join NumFOCUS
A project (i.e., the lead developers) should have at least one reason it wants to join
*Is the project applying for Fiscal Sponsorship or Affiliation?
As stated above, we assume fiscal sponsorship. If affiliation is selected, the questions below that are not in bold will not be asked.
*Is the project applying for the Comprehensive or the Grantor-Grantee fiscal sponsorship model?
This question, which only appears if you answered Fiscal Sponsorship for the previous question, allows three answers: the two choices and “unknown”. As discussed above, the comprehensive model is likely the right choice for most projects. If this isn’t clear, an “unsure” answer is an option.
The publicly visible location of the project’s governance document
All projects should have a governance document (see guidance and examples in https://github.com/corsa-center/oss-documents/). This might need to be aligned with a higher-level organization, such as a Software Stewardship Organization (SSO) in the case of the Consortium for the Advancement of Scientific Software (CASS).
The publicly visible location of the project’s roadmap
All projects should have a roadmap document (see guidance and examples in https://github.com/corsa-center/oss-documents/).
The publicly visible location of the project’s “how to get started as a contributor” documentation
All projects should have contributor documentation (see guidance and examples in https://github.com/corsa-center/oss-documents/).
*The names and email addresses of five people willing to act as signatories for the project
These are the people who will decide/vote on project decisions. Ideally, these people should demonstrate some diversity, at least in terms of their affiliations, which should include at least three organizations, as this will later be required in the Fiscal Sponsorship Agreement if the application is successful.
Note that if a project cannot meet this diversity criterion, it perhaps should continue as an affiliate member, rather than a fiscally-sponsored member.
*The name of the project’s leadership body (It cannot contain the word “board” other than that it can be whatever the project chooses)
This can just be something like “Project” Leadership. This will also later be required in the Fiscal Sponsorship Agreement if the application is successful.
A short description of the project geared toward funders/grantors/non-expert audience (See example at the top of https://numfocus.org/project/pandas)
All projects should already have some text that can be mined for this from their README or website_
A short project description for developers/users (See example under “Technical Details” tab at the bottom of https://numfocus.org/project/pandas)
All projects should already have some text that can be mined for this from their README or website_
A few sentences describing the known applications of the project (See example under “Applications” tab at the bottom of https://numfocus.org/project/pandas)
All projects should already have some text that can be mined for this from their README or website
Any upcoming or annual events held by the project, if applicable
Many projects will have some type of regular user and/or developer meeting, perhaps virtual
Link to the project’s blog or newsletter, if applicable
Many projects will have either a blog or newsletter
*How does the project relate to or integrate with the existing ecosystem of NumFOCUS tools?
Most projects will likely have some connection to existing NumFOCUS fiscally sponsored projects and/or affiliated projects, such as dependencies
*How does the project further the NumFOCUS mission (see https://numfocus.org/community/mission)
Because NumFOCUS is a 501(c)(3) public charity in the United States, all spending must be consistent with its mission, which is “to promote open practices in research, data, and scientific computing by serving as a fiscal sponsor for open source projects and organizing community-driven educational programs.” All projects should be able to tie to some part of this mission.
*How many active contributors does the project currently have?
The project should be able to obtain this from its repository
Any comments the project would like to make on the number of active contributors
If the number is now small, perhaps a discussion of how this is sustainable, or how the project plans to increase it
*Please list the project’s maintainers (i.e., anyone with write access to the repository). Please include: 1) their username on the repository hosting service (e.g., Github, Gitlab, or Bitbucket); 2) their affiliations (e.g., UC Berkeley or Argonne National Labs); and 3) the date of their last commit to the codebase.
The project should be able to obtain this from its repository, and perhaps from the maintainers themselves
*Does the project have any significant contributors who are not maintainers? Please list up to 5, providing the same information as requested in the previous question
This might include key people who are do not contribute to the repository, (perhaps such as a grant PI) and developers who are not maintainers (e.g., someone who contributes by pull requests (PRs) but who does not have the ability to merge PRs)
*What is the project doing to attract and/or mentor new contributors and maintainers?
All sustainable projects should have an answer to this, as some contributors and maintainers will drop off over time and will need to be replaced
*Where does the project host conversations about project development and governance (e.g. mailing lists, forums, etc.), and how many participants do you have?
All projects should have some public (not secret) means of having these discussions.
*What license(s) does the project currently use?
All projects should, in theory, already have an OSI-approved license, but note that some national labs, e.g., LBNL, seem to default to a license that they consider open but that is not OSI-approved because it includes additional language. (See guidance and examples in https://github.com/corsa-center/oss-documents/.)
*Projects must adopt the NumFOCUS Code of Conduct or one similar in spirit. How does the project plan to meet this requirement?
Many Codes of Conduct (CoCs) may already meet this requirement, or the project might want to simply use the NumFOCUS CoC. (See guidance and examples in https://github.com/corsa-center/oss-documents/.)
Where is the project’s Code of Conduct
The CoC should be in a public place
Questions or comments
This is a final place to add any additional information or message to NumFOCUS
NumFOCUS currently reviews applications quarterly (see https://numfocus.org/projects-overview#dates for specific dates), so decisions should be made within 3-6 months, and the review process might lead to questions for the submitting person, or a simple yes or no decision. If there are no questions from NumFOCUS, the applying project won’t hear anything until there is a decision.
Affiliated projects
If a project that has applied to be an affiliated project and is accepted, there is a simple onboarding process that includes a call with NumFOCUS explaining the Small Development Grants Program, and then NumFOCUS gets the project’s logo files and description for its website (from the application), and adds contact details to NumFOCUS project lists, groups, and mailing lists.
Fiscally-sponsored projects
If a project’s application to be a fiscally-sponsored project is successful, the next/final step will be to sign a fiscal sponsorship agreement (FSA). This agreement is between NumFOCUS and the five project signatories on behalf of the project (initially assumed to be the same as the people listed in question 12d of the application.
This agreement basically makes NumFOCUS the legal owner of the project, but gives the project’s leadership committee (as named in question 12e of the application, and initially comprising the project signatories) the right to act on NumFOCUS’s behalf for the project. NumFOCUS will maintain the project’s finances in a restricted fund that is solely for the project, and where the project’s leadership committee can use these funds, e.g., for (sub)awards or contracts to developers.
The agreement will include a number of clauses, most of which will be unsurprising and unobjectionable to most projects. However, one issue that might arise is if the signatories have the right to transfer ownership of the project assets (domain name, code, documents, logo, IP) to NumFOCUS. The institutions that employed the developers might need to agree to this transfer.
Other elements of the FSA that are worth noting:
Finally, NumFOCUS gets the project’s logo files and description for its website (from the application), and adds contact details to NumFOCUS project lists, groups, and mailing lists.
Once there is a signed agreement, the project and NumFOCUS may wish to work together on publicizing the new relationship.
Once the project is part of NumFOCUS, it will benefit from being part of the NumFOCUS community by having the ability to use NumFOCUS’s slack to discuss issues with other NumFOCUS projects, the opportunity for at least one person to attend a NumFOCUS annual meeting again to discuss common issues, apply for small development grants (microgrants that help projects fund important work that they might not otherwise be able to do like improving usability, growing project communities, and speeding up the time to major releases), participating in NumFOCUS’s Diversity & Inclusion in Scientific Computing (DISC) program, and seeking corporate sponsorship and individual donations.
Projects that have questions about foundations are welcome to contact CORSA by emailing PI Greg Watson. And those with questions that are specific to NumFOCUS should use the contact link on its website.