Swift to participate in GSoC 2022!

Hello everyone,
The Swift project is once more participating in Google Summer of Code!

We collected some project ideas along with potential mentors who volunteered to take care of the potential participants this year on the Swift website: Swift.org - Project Ideas for GSoC 2022.

We prepared project ideas from all across the Swift project, from SwiftSyntax, Swift Package Manager, DocC, libraries incl. Swift on Server focused ones, all the way to Swift itself, and even Swift/C++ improvements - so there is plenty fun ideas to choose from!

While we recommend sticking to and applying to one of these suggested projects (mostly because they have an assigned and available mentor already), you are also free to propose your own ideas if you want to. A project idea should follow a similar structure as the ones on the linked site (i.e. include title, description, expected outcomes, etc). Note that custom project ideas would have to recruit a mentor that would be able to take take care of such project, so it is safer/easier to stick to the proposed ideas.

Changes from last year

This year Summer of Code will accept not only students, but also newcomers to open source. The selection criteria was expanded this year to allow other more people to participate, including self-thought, recent career changers, or those returning to work after a break etc.

This year we have two categories of projects: Medium (175 hours), and Large (~350 hours). All our project ideas listed on indicate what size of project they are, so please take this into account when applying for them. This change was made to be more flexible and accessible to all kinds of applicants during this challenging year.

You can read more about those changes on the Summer of Code blog.

Timeline

Contributor applications will open on Monday, April 4, 2022 at 18:00 UTC with Tuesday, April 19, 2022 18:00 UTC being the deadline to submit your application (which includes your project proposal).

To get started, we recommend reading the materials provided by Summer of Code, including the Contributor / Student Guide, as well as Advice for Applying for GSoC.

We recommend starting threads on the forums in a category appropriate for the project you are interested in and use use the gsoc-2022 tag when creating the post โ€” this way it will be easier for mentors to locate threads about projects.

Feel free to ask any questions and reach out to project mentors via these threads, all with the goal to figure out the details of the projects. You should eventually collaborate with the mentors and write your project proposal, which will then be posted to the summer of code site.

If you have any questions about the process, please feel free to reach out to me directly using forums direct messaging, or email at ktoso <at> apple.com

34 Likes

A few useful hints for those looking to participate...!

You can browse the threads from last years by using the tags:

Most notably some of the students have written up very nice experience reports as they finished up their projects, here are a few:

They contain useful insights and retrospectives about the program from past students. They can be useful to wrap your head around how to approach all of this. The most common hint I believe is to not be too shy to ask for help or clarification -- work with your mentors to deliver the best project possible :slight_smile:

We're looking forward to your threads and proposals!

11 Likes

Hi everyone,
we're now accepting proposals through the summer of code website!

Please don't be shy and do reach out to your potential mentors about reviewing and polishing the proposals. We're here for you to help you polish your proposals to make sure they're solid and we're confident they can become successful.

Notable next deadlines:

  • Contributor applications open: on Monday, April 4, 2022 at 18:00 UTC (the reason for this update)
  • Contributor applications deadline: Tuesday, April 19, 2022 18:00 UTC
    • Please do not miss the deadline and make sure you submit the application through the summer of code website on time!

Next, we will be reviewing proposals and selected participants will be announced on May 20, 2022:

  • May 19: Google grants slots and assigns them to projects
  • May 20 : Accepted GSoC 2022 GSoC Contributor projects are announced on the program site

So be sure to check the program site, but we'll also post an update here once we know who was selected :slight_smile:

Thank you, godspeed and good luck!

5 Likes

Good morning everyone~!

I'm happy to announce this year we'll be running 5 projects during Summer of Code!

The accepted projects are:

  • Improving Debug Output Of The Type Inference Algorithm, by Amritpan Kaur, mentored by @xedin
  • Kafka Client Package for Swift, by Felix Schlegel, mentored by Franz Busch @FranzBusch
  • Bootstrapping SwiftSyntaxBuilder, by Fredrik Wieczerkowski, mentored by @ahoppen
  • Interactive mode for swift CLI tool ArgumentParser, by Kth, mentored by @nnnnnnnn
  • Quick navigation in DocC Render, by Sofรญa Rodrรญguez, mentored by @marinaaisa, @franklin and @beatriz

You can view more details about the projects over here:


From now on the Community Bonding Period begins contributors should work with their mentors to prepare, and familiarize themselves with the project practices, workflows and all necessary tools etc.

Please don't be shy to reach out to your mentors with any questions!

Coding begins June 13th and for most folks will wrap up September 5th, while the Long projects may extend all the way to mid-November.

Welcome to the Swift project everyone and we're happy to have you!

13 Likes

Great news, we're interested in Kafka Client Package for Swift and would be happy to provide feedback / test / possibly contribute after GSoC - what is the best way for people to do that who are not actually in the project - or should we just wait until it finishes up? Are these typically run in an open GitHub repo? If so, it'd be fairly straightforward to provide that...

1 Like

Hi @hassila,
Thanks for sharing your interest. The bonding period is starting now for the students and we are still figuring some organizational stuff out.
@felixschlegel and I will talk in the next weeks how we are going to go forward and what the next steps are.
As soon as we know more we will post it here!

5 Likes

What Franz said, but let me further clarify that all GSoC projects are intended to be about introducing people to the world of open source development, so yes all those projects will be run in public repositories and people can participate and help out if they want :slight_smile:

Please be kind as you do so, participants are likely new to the entire OSS dance and may not be familiar with some patterns or shorthands etc. Thanks in advance!

5 Likes

Btw, as it's an early stage, could I please ask for considering not to depend on Foundation and use Data as a carrier (and add any such support as an add-on supporting package, if you feel it is required) - there are a few of us who do server-side Swift who for various reasons try to keep Foundation dependencies away - it is nice to be able to drop down to lower-level api:s (e.g. buffer pointers) and avoid conversions for high-throughput applications, so great if such API interface could be exposed. Assuming there will be future pitch/discussion threads, so will try to keep track and repeat the feedback for later :-)

2 Likes

@hassila I know that this is an important aspect to maintain Foundation free. We will have some discussion because we need a bag of bytes type in the Kafka lib. However, since we are wrapping librdkafka we don't have to depend on NIO so we don't ByteBuffer.

@felixschlegel Will have to think about this for a bit and open a discussion around it potentially.

3 Likes

Would this (bag of bytes) possibly be considered in the future in either the standard library or swift-collections @lorentey ? :-)