Restrospective: GSoC 2023 with GNOME

Hi folks, this is a topic to discuss the experience with this year’s Google Summer of Code internships.

Interns, mentors, and community members are welcome to write up their opinions about what worked well, what didn’t work well, what could be improved for next year, etc…

Do you have any thoughts you want to share?

2 Likes

My experience as a Google Summer of Code intern at GNOME was nothing short of fantastic. I’m grateful to my mentors and everyone else who was involved.

The drawing board

I worked on integrating the functionality of network displays into GNOME Shell, and was intially overwhelmed by the complexity of the project. There were lots of moving parts (DBus, systemd, gnome-settings-daemon, etc) and, while the goal of the project was clearly stated, the means to get there weren’t.

However, figuring that out ended up being one of the best parts of the internship. I had the pleasure with an interdisciplinary team to plan how that “integration” would look like, both in terms of architecture (thanks @felipeborges, @jadahl, and @kyteinsky) and design (thanks @allanday and @cwunder).

Mentors, mentors, mentors

As you can see by the number of people I tagged, I had lots of mentors! This was very enriching for me, as I got to learn from people of many different areas within the GNOME Project. For example, I (unexpectedly) learned a lot about UI/UX design!

I also feel like this relieved the burden on each mentor, as none of them had to bear the responsibility of mentorship on their own.

The tech stack

It took me a while to be productive in the GNOME Network Displays codebase, because it was written in C using the GObject library. This library is one of the weirdest (fascinatingly so!) things I have ever come across. It was hard to find resources online, so mentors were essential here. They did an amazing job at getting back to me very promptly and I was never “blocked” by an unanswered question by more than a day.

Learning GObject (as well as other GNOME technologies) was a huge leap for me. That being said, I think future interns would hugely benefit from workshops or tutorials during the community bonding period.

GUADEC

Attending GUADEC was the most memorable experience of the internship, without a doubt. I could never imagine they would sponsor the trip of a measly intern, but oh they did! This made me feel deeply valued by the GNOME Project as a whole and solidified the feeling of belongingness that had been gradually strengthening within me since day one.

Take your time

I can’t stress enough how not stressed I felt during my internship.

During most of the Google Summer of Code program, I had to take classes and work on a research project at my university. As I had to juggle all these things at the same time, my working pace was obviously much slower than someone who’s committed exclusively to GSoC. Fortunately, my mentors were incredibly respectful of that and I never felt pressured or burnt out during the internship.

What’s next?

After these months of mentorship I feel ever more empowered and motivated to contribute meaningfully to the GNOME Project, so you’ll surely hear more from me ;)

Thanks for everything!

3 Likes

Here are the reports for Make GNOME Platforms demos for Workbench

Some rough notes on internships in general (sorry if it’s out of scope)

GSoC

Project length variable is unclear. One of the student selected “medium” instead of “large” because they thought it would increase their chance of getting accepted. On the side of mentors, it took us too long to realize the project length wasn’t the same as for the other students.

Not all regions were represented in GSoC applicants. My impression is that some university networks are better informing/preparing students about it than others.

Overall, it was very smooth. Thank you, @felipeborges !

GNOME

The split between GSoC / Outreachy seems unnecessary. Can we merge everything under the same umbrella on the GNOME side?

The whole show seems to be run by @felipeborges (thank you!). I can tell it’s a lot of work and Felipe has been asking for support. I think we should create a team/committee responsible for internships.

2 of our interns were already GNOME enthusiasts, one of them had never used Linux before.

I think there is room for improving the project ideas list. Curation, project length, requirements, etc and maybe even combine with Welcome to GNOME – Overview - I’d be happy to help.

Very few applications were good. It makes it easier to choose interns but I feel like we’re missing on a lot of potential. I think we should have some kit that we can send organizations on preparing students for internships at GNOME.

Outreachy

Outreachy bi-weekly emails are very useful and great guideline.

Outreachy review form is well-made, better than GSoC

We received too many not-so-great applications from Outreachy. Including rude applicants and AI generated PRs.

Students

Mentors / developers are busy people who are probably doing this on their free time. Don’t be shy, go ahead, ask questions, make mistakes, learn, repeat, move forward. Seek help from the community too.

Mentors

Consider co-mentoring. It was such a relief to have a backup when needed.

Don’t send endless wall of chat text to your students on how to do something, document it in your repo/wiki instead and send it to them.

If you have multiple mentors/interns, consider creating a private room with your student(s), at least at the beginning, so they have a safe space to ask questions.

A good contributing / getting started guide is absolutely necessary. Here is ours: https://github.com/sonnyp/Workbench/blob/main/CONTRIBUTING.md - consider the troubleshooting section too.

If you don’t have a “one command works for all” setup for your project, fix that before taking interns.

2 Likes

Thanks for writing this up, Felipe.

As someone who is not actively engaged with GSoC or it workings, I have the following feedback:

  1. Is there a wiki where we can see what the interns worked on ( gitlab #issues, #merge-requests ) ?

  2. Do we have a more "formal" process for GSoC contributors to submit their feedback post their internship completion ? GNOME Discourse is a good place too, but I’m not sure if everyone would be open to discussing any issues they faced during the internship in a public forum ( a.k.a - Safe space for feedback ).

  3. Would be good to see some GSoC names in GNOME contributions ( e.g. branches created by GSoC interns can have "gsoc-2023" prefix, and git commit messages can have "Part of GSoC 2023", so we know that a particular commit was part of GSoC ).

  4. Since you are actively involved with GSoC regularly, it would be good to hear your views on GSoC and how it impacts GNOME ( pros, and cons if any ) on ground.

Cheers!

Sorry for the late response, I have been on vacation for the past few days.

There’s Planet GNOME.

As soon as interns are selected, I start sending them instruction emails. In those messages we set the expectation that the intern will blog with some frequency about their progress.

Here’s the week 1 message they received Announcement: GNOME will be mentoring 9 new contributors in Google Summer of Code 2023! - #2

Yes, the soc-admins@gnome.org. I mention at the end of every single message that interns can contact us on that address or directly for any doubts or concerns.

There’s also the GSoC official feedback form that is part of each milestone evaluation. I read all of them and follow up with mentors when there’s an issue, feedback, etc…

They are also incentivized to subscribe to Discourse (although everything that I post here I also send directly to their GSoC email address).

I like this. I have had one intern working with me in GNOME Settings this year and we decided to target all the work to a gsoc-2023 specific branch. https://gitlab.gnome.org/GNOME/gnome-control-center/-/commits/gsoc23/new-system-panel

I will suggest this to mentors for the following years, but it is a bit impractical to enforce this.

It is net positive for our community as it brings new people that often continue working with us after GSoC, become foundation members, maintainers, mentors themselves, etc… I would like us to work towards bringing more visibility to that because there are a number of cases like this over the years.

As of now I think the main obstacle we have is with mentor’s time/energy. Folks are busy with their work and personal life and it is difficult to commit to mentoring. I hope our efforts with more org admins can help setup a system of co-mentors that can share the load and make the experience more pleasant for mentors too.

1 Like

I feel GSoC contributions start and end within a small circle currently.

So, it was a suggestion to make the contributions visible to a wider community. It’s totally up to the mentors to decide.

Cheers!

1 Like

Absolutely! Sonny also suggested motivating interns to share their progress in This Week in GNOME as well as social media.

1 Like