GSoC proposal requirements

Hi to everyone concerned with GSoC. I was wondering if the team could provide a guideline for writing GSoC proposals particular to the Swift project.

Basically, the issue is that Google's guidelines are quite broad and usually defer to the requirements a particular project would specify, which I don't really remember seeing for Swift. Also, a person applying to GSoC for Swift could look at the existing Evolution proposals, but as of lately, it is required that a ready implementation is provided alongside the proposal, which doesn't align with the structure of GSoC (the implementation is expected to be worked on months after a proposal is submitted). Moreover, the official examples are quite dated and may not represent more modern expectations.

I personally tried to apply last year, and honestly the biggest question I had throughout the process was "what should I even write". The first example of the above especially looks to me not much more complex than an excerpt from the Ideas page, which further contributes to my personal confusion how a proposal is expected to be written and how much elaboration it is expected to contain.

I believe that a more detailed specification would help both the potential mentors and the potential participants. In particular, I would love if the following questions could be answered:

  • Does one need to provide an example implementation? If yes, in what form?
  • How precisely should one propose the project timeline (given that it's quite a theoretical matter)?
  • How much should one respect the customary template of Swift Evolution proposals?
  • What would be the best way to prove one's experience with Swift and/or C++?
  • How detailed/finalized is a proposal expected to be? Is a broad description of an idea enough or should it really be a fully-fledged design?

I believe that a lot of potential students can benefit from answers to those questions. Thanx for your attention :upside_down_face:

4 Likes

Given that GSoC is limited to 6 weeks this year, I think that working on an evolution proposal or a whole language feature is not a realistic goal. (It would be a tall order even with 12 weeks)


I don't think there is any expectation of implementing anything outside the period of GSoC.

That said, writing the proposal will require at some passing familiarity with what parts of the code you are looking to change, so that you can be somewhat concrete instead of being very vague (for example, "speeding up the type-checker by 20%" would be a vague proposal idea if it doesn't have more information on what part is slow, what part of the type-checker will be worked on etc.).

You generally want to divide the task into multiple parts, and have a rough sense of what roadblocks are, and what some good checkpoints are. If something takes more time than expected, we can drop later tasks. If something is finished early, you can go for any stretch goals.

Whoever is going to be your mentor will need to spot-check your proposal to make sure that it is at least somewhat realistic. I don't think you are expected to come up with a realistic timeline all by yourself.

GSoC proposals don't need to follow the Swift evolution proposal template.

One thing you could do is showcase projects you've done in the past involving Swift or C++.

It's intended to be a rough sketch, portraying some understanding of the complexity/scope of the task. So it's more than a broad description of an idea. That said, it's also not a blueprint that you need to follow to the letter.

You should think about it as similar to an evolution pitch. If you make a pitch without any understanding of the complexity of what you're asking/how it might work, you will likely get ignored. At the same time, it doesn't need to necessarily go into the nitty-gritty of each design decision and what exact changes need to be made to the code.

4 Likes

Hi Nikita,
everything Varun wrote up is correct.

GSoC "proposals" are not the same as swift evolution proposals. They're ideas that you should be able to complete within the allocated coding period (6 weeks), with the guidance of a mentor. They definitely do not require any work to be done before the coding period. It's nice if you poked around before to ease the getting started phase, but that's about it.

The existing ideas, listed here: Swift.org - Project Ideas for GSoC 2021 give some idea as to what such projects can be. Those projects are written up by folks working on these features/libraries/compiler, and they have offered to mentor those topics. So it is simplest and less risky to read up on those and apply for one of them once the application period beings. We are generally open to people suggesting their own projects, e.g. if they have some experience on some area and would love to spend those 6 weeks making a bigger impact.

If you were to propose your own topic, you also need to ensure you'd find a mentor for it. So it would have to be an exciting idea, and thought through enough that a mentor steps up and wants to help you achieve is throughout the GSoC.

// More info about schedule here: Gathering ideas for GSoC 2021!

2 Likes

Minor addendum to this: I'm not trying to discourage someone from working on a language feature. The key thing is that it needs to be well-scoped (e.g. it could be an enhancement to an existing feature).

3 Likes
Terms of Service

Privacy Policy

Cookie Policy