GSoC 2022 Organization Application - sympy/sympy GitHub Wiki

This is based on the Google Summer of Code 2021 application for SymPy to be an organization.

NOTE: Do not use any markup in this document. We have to copy-paste the text to the application. All URLs should be formatted as code so the wiki doesn't format them.

If you want to add a comment or a TODO, use an html comment (<!-- like this -->) so that it doesn't accidentally end up in the final application.

Each answer can be no more than 1000 characters long.

Organization Questionnaire

Why does your org want to participate in Google Summer of Code?

SymPy has participated in GSoC since 2007, both through umbrella orgs and as an independent mentoring org. We have had 91 successful projects in this time. Many of these projects have been of fundamental importance to the project. GSoC gives students an opportunity to be paid to work on SymPy, something that most core committers do not have. Furthermore, in many instances, the projects would never have been implemented without GSoC, because the existing community lacked the technical or mathematical expertise or the time commitment required.

Second, GSoC gives SymPy an opportunity to grow its community. While we realize that many students will move on to other things after the summer is over, each year, some students decide to stick around and continue contributing to the project. Today, roughly half of the active contributors to SymPy with push access (i.e., core contributors) originated from GSoC. Without GSoC, it is unlikely that most of them would have ever contributed to SymPy.

What would your org consider to be a successful GSoC program?

First, we would like to see students take on projects that are important to SymPy and to implement them successfully, so that SymPy itself is improved. Secondly, we want to introduce new members into the community. We don't see GSoC as a work for hire contract program. Rather, we want to use GSoC as an opportunity to grow our community. We want to see students interacting with the community outside of their project, and to continue to contribute after the program is over.

How will you keep mentors engaged with their students?

Mentors must have push access to the repository and be familiar with both the code and the math. Most of the mentors have either mentored or were students in the past. We require students and mentors to interact and communicate publicly, so the whole community can be involved. We require mentors and students to meet at least once a week, either on video chat or a chat channel like Gitter and discuss the progress on the project. Each project will have one or more backup or co-mentors, and no one will be allowed to be a primary mentor on more than one project, or a backup or co-mentor on more than two projects. This may require taking fewer slots than we would like, but we have found that it is better to do this than to stretch our mentoring capacity too thin.

If there is still some problem, both of the admins, Aaron Meurer and Oscar Benjamin, are ready to step up and help mentor or co-mentor any project if needed.

How will you help your students stay on schedule to complete their projects?

Our primary goal here will be to notice when a student is falling behind as soon as possible, so that we can fix the problem. If we wait until one of the evaluations and nothing has been done, then we will have no choice but to fail the student. So we want to catch it right away, so we can work with the student. The public weekly meetings and blog posts will allow the student’s mentors and the org admins to notice if a student is falling behind right away. In many cases, the timeline in the student’s proposal may be found to be unrealistic and need to be modified, for instance, due to unforeseen technical challenges.

Ultimately, if their mentor is not able to help the student, then the SymPy admins (Aaron Meurer and Oscar Benjamin) will step in. We usually give a student a reasonable, mutually agreed, set of goals to achieve in a week or two, and if the student starts making sufficient progress (with our help) then we will pass the student. Otherwise we fail the student.

How will you get your students involved in your community during GSoC?

We encourage all student-mentor interactions to happen on a public channel, such as the mailing list, GitHub, or our public Gitter chatroom. For meetings that are done via video calls, we require they post minutes of the call somewhere public. In the past, we have found that students who communicate with their mentors privately are more likely to fail GSoC and are more likely to stop participating in the community after the summer ends. By participating publicly, other members of the community get a chance to take part in student discussions. In many cases, other students will answer questions. This also teaches them the habits of open communication, which are vital for open source participation.

Students will be required to blog at least once every other week on their progress. These blogs are aggregated on https://planet.sympy.org. This enables the wider community to get involved with the students. We also encourage students to review other pull requests, which is a great way to get involved in our community.

Anything else we should know? (Optional)

No response

Is your organization part of any government? [Yes or no]

No

GSoC Reference Contact (Optional) If you are an organization that has not been accepted into GSoC before, is there a Google employee or a veteran GSoC organization who will vouch for you? If so, please enter their name, contact email, relationship to your organization, and their role (Google employee, org admin of XX org, etc.)

No response

Organization Application

Ideas list Provide the URL for your organization's curated Ideas List for 2022. This is very important: Prospective GSoC Contributors will view this link to understand the kinds of projects available in your organization. A clean and simple presentation is best. Avoid links to unfiltered bugtrackers or other specialized tools.

https://github.com/sympy/sympy/wiki/GSoC-Ideas

Mentors How many Mentors does your Organization have available to participate in this program? This is the number of people listed at https://github.com/sympy/sympy/wiki/GSoC-Ideas#potential-mentors [Number only]

18

Program Retention Survey The last program your organization participated in was:

2021

We're looking for more details on how many of your students/GSoC contributors from the above program are still active in your community today.

Number of accepted students/GSoC contributors [Number only]

6

Number of participants who are still active today [Number only]

3

Is your organization part of any government? This will not affect your selection into the program. However, as stated in the Program Rules, we can not issue org stipends to orgs that are part of any government. This includes public universities, government research institutions, etc.. [Yes or No]

No

Anything else we should know (optional)? [No more than 500 characters]

Profile information

Information for the GSoC profile. Note that with the new GSoC site as of 2022, this only needs to be filled out once.

Public Profile

Name

SymPy

Website URL. http://www.yourproject.org/

https://www.sympy.org/

Upload logo [24-bit PNG, minimum height 256 pixels.]

Use make logo in the doc directory of the sympy repo and upload doc/_build/logo/sympy-notext-500px.png.

Tagline. A very short description of your organization. [80 characters]

Symbolic mathematics in Python

Primary open source license. The open source license that your organization uses. [Popdown menu]

3-clause BSD License (BSD-3-Clause)

What year was your project started? [Popup]

2005

Link to your source code location

http://github.com/sympy/sympy

Organization Categories Select which categories fit your organization best. You may select up to 2 categories. This helps GSoC contributors filter the large list of organizations by their interests. [Checkboxes]

  • Data (databases, analytics, visualization, AI/ML, etc)
  • Development tools (version control systems, CICD tools, text editors, issue managers, q/a tools, etc)
  • End user applications
  • Infrastructure and cloud (hardware, software defined infrastructure, cloud native tooling, orchestration and automation, etc)
  • Media (graphics, video, audio, VR, streaming, gaming, content management, etc)
  • Operating systems
  • Programming languages (libraries, package managers, testing tools, etc)
  • Science and medicine (healthcare, biotech, life sciences, academic research, etc)
  • Security (tools and frameworks)
  • Social and communications (Blog, chat, forums, wikis, etc)
  • Web (tools and frameworks)
  • Other

Organization Technologies Enter up to 5 keywords for the primary specific technologies your organization uses. Examples: Python, Javascript, MySQL, Hadoop, OpenGL, Arduino [At least 2. Up to 5. Separated by commas]

python, numpy, jupyter

Organization Topics Enter keywords for general topics that describe your organization. Examples: Robotics, Cloud, Graphics, Web, etc. Select up to 5. [At least 2. Up to 5. Separated by commas]

mathematics, symbolic mathematics, physics

Organization Description Describe what it is your organization does. This information will also be included in the archive once the program has ended.

SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python.

Contributor Guidance Provide your potential contributors with a page containing tips on how to write a successful proposal for your organization. Let them know what you want included, how you want it structured, and how to best get in touch. Examples. [Link for contributor guidance [Wiki, blog, etc.]

https://github.com/sympy/sympy/wiki/GSoC-Student-Instructions

Communication Methods How do you want potential contributors to interact with your organization? Select methods that your community uses daily as you will receive many inquiries if your org is selected. [Popup with "Chat", "Email", and "Mailing list/Forum" + URL. May include multiple]

Mailing list/Forum: https://groups.google.com/forum/#!forum/sympy

Links (This is not part of the application)