GSoC 2021 Organization Application - sympy/sympy GitHub Wiki

This is based on the Google Summer of Code 2020 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 Application

Why does your org want to participate in Google Summer of Code? [No more than 1000 characters]

SymPy has participated in GSoC since 2007, both through umbrella orgs and as an independent mentoring org. We have had 85 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 summer? New contributors, new features completed, more code written, better being able to guide new developers into open source world, etc. [No more than 500 characters]

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 many potential mentors have agreed to mentor this year? [Popup]

1-5

6-10

11-15

16-20

20+

How will you keep mentors engaged with their students? [No more than 1000 characters]

We currently have 6 mentors signed up (https://github.com/sympy/sympy/wiki/gsoc-ideas#potential-mentors). 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 on 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? [No more than 1000 characters]

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? [No more than 1000 characters]

We will require that all student-mentor interactions happen on a public channel, such as the mailing list, GitHub, or our public Gitter chatroom. 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 (reduced from weekly in previous years due to the new 175 hour rule). 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.

How will you keep students involved with your community after GSoC? [No more than 1000 characters]

We have a policy that every passing student is given push access at the end of the summer, if they do not already have it. Because of SymPy’s code review rules, this doesn’t mean that they are able to push their own code, but rather that they are able to push other people’s code, after review. This empowers them and encourages them to stick around. We also encourage students to review pull requests, and generally interact with the community during the summer. This policy has been successful in keeping more students active after the summer.

Even so, we understand that the students are only being paid for the summer, and typically go back to school after the program is over, so we understand if some students don’t stay involved after the summer is over. We will not make it a requirement for students to stay involved, but we will indicate to students that we would prefer if they did.

Has your org been accepted as a mentoring org in Google Summer of Code before? [Yes or No]

Yes

Which years did your org participate in GSoC? [Checkboxes]

2020

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010

2009

2008

2007

How many students did your org accept for 2020? [Number] 6

How many of your org's 2020 students have been active in your community in the past 60 days? [Number] 3

[NB: Smit Lunagariya, Naman Gera, Faisal Riyaz]

For each year your organization has participated, provide the counts of successful and total students. (e.g. 2016: 3/4) [500 characters]

2007: PSF, PSU, and Space Telescope Institute umbrellas. 5/5.

2008: PSF umbrella. 1/1.

2009: PSF and PSU umbrellas. 4/5.

2010: PSF and PSU umbrellas. 5/5.

2011: 9/9.

2012: 6/6.

2013: 7/7.

2014: 10/10.

2015: PSF and SciRuby unbrellas. 7/7.

2016: 8/8.

2017: 8/9.

2018: 7/7.

2019: 9/9

2020: 6/6

(The reason for the low fail rate is that we have a patch requirement and we only select students that we think are very good, returning slots to the pool if appropriate.)

Refer an organization (optional Is there an organization new to GSoC that you would like to refer to the program for 2021? Feel free to add a few words about why they'd be a good fit. [No more than 500 characters]

Fortran-lang (https://github.com/fortran-lang) is a young open source community, whose goal is to develop modern infrastructure and a friendly, inclusive online platform for the Fortran community, which now includes over 100 active people. Fortran-lang mentors are established academics, book authors, and open source developers. Ondřej Čertík, one of the administrators and co-founders of Fortran-lang, has been an admin and a mentor before in Google Summer of Code for many years for SymPy.

If your org has applied for GSoC before but not been accepted, select the years: [Checkboxes]

2015

2010

2009

2008

2007

If you are a new organization to GSoC, is there a Google employee or previously participating organization who will vouch for you? If so, please enter their name, contact email, and relationship to your organization. (optional) [No more than 500 characters]

What year was your project started? [Number only]

2005

Where does your source code live? Please provide URLs that point to repositories, GitHub organizations, or a web page that describes how to get your source code.

http://github.com/sympy/sympy

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, which needs to be filled out along with the application

Public Profile

Name

SymPy

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

https://www.sympy.org/

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

Symbolic mathematics in Python

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.

Background color hex

#EEE

(This is the same as the background on the website)

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

BSD 3-clause "New" or "Revised" License (BSD-3-Clause)

Organization Category. Select which category fits your organization best. Some organizations may fit into multiple categories, you must choose one. Used to help students filter the organization list. [Popdown menu]

Science and Medicine

Technology Tags. Enter keywords for the primary specific technologies your organization uses. Examples: Python, Javascript, MySQL, Hadoop, OpenGL, Arduino [Up to 5. Separated by commas]

Python

Topic Tags. Enter keywords for general topics that describe your organization. Examples: Vision, Robotics, Cloud, Graphics, Web, Real time [Up to 5. Separated by commas]

Mathematics, Symbolic mathematics, Physics

Ideas list. Enter the URL of your Ideas List page. This will be linked from your organization page.

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

Descriptions

These descriptions will be displayed on the organization list page (Short Description) and on your organization's page (Long Description). More details.

Short Description [180 characters]

SymPy is a Python library for symbolic mathematics. It is a full-featured computer algebra system (CAS). SymPy is written entirely in Python.

Long Description The Long Description may include limited Markdown. [2000 characters]

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.

Students who are interested in applying should start with the [application instructions](https://github.com/sympy/sympy/wiki/GSoC-Student-Instructions). Make special note of the patch requirement. Applications that are submitted without a pull request will be ignored.

See our [ideas list](https://github.com/sympy/sympy/wiki/GSoC-Ideas). Please discuss your idea with us on our mailing list.

All applications should follow our [application template](https://github.com/sympy/sympy/wiki/GSoC-Application-Template).

Proposals

Application Instructions. Guidance for students on how to apply to your organization. Should include any prerequisites or requirements. You may wish to include a template or tips for their proposals. May include limited Markdown. [1500 characters]

Make sure you have read the [application instructions](https://github.com/sympy/sympy/wiki/GSoC-Student-Instructions). Make special note of the patch requirement. Applications that are submitted without a pull request will be ignored.

All applications should follow our [application template](https://github.com/sympy/sympy/wiki/GSoC-Application-Template).

Tags. Enter tags that students can select (one) from and apply to their own proposals to help organize them. Examples: New Feature, Optimization. You can also use these to designate "sub-organizations" if you are an umbrella organization. [Up to 10. Comma separated]

SymPy, SymEngine

Contact Methods.

You must complete at least one of the following three contact options.

Chat. Link to a web page that describes how to get on your IRC channel or other realtime communication system. [Must be a valid URL]

https://gitter.im/sympy/sympy

Mailing list. Link to a page describing how to join your organization's mailing list. [Must be a valid URL]

https://groups.google.com/forum/#!forum/sympy

General Email. A general purpose contact email for your organization. [Must be a valid email]

Links

Twitter URL (optional) [Must be a valid URL]

https://twitter.com/sympy

Blog URL (optional) [Must be a valid URL]

https://planet.sympy.org/

Links (This is not part of the application)