Where we're at for Google Summer of Code 2022
We're more than halfway through the summer. Time to check in with our Summer of Code contributors to see how their projects are going.
Whether it's too hot, too cold or somewhere in between in your part of the world, we have four contributors who are making some very cool contributions to Wagtail. Earlier, we announced the start of three projects sponsored by Google Summer of Code and one sponsored by Torchbox. Now it's time to see how things are going and find out what our contributors are learning along with way.
Anuja has been busy helping us improve Windows High Contrast mode in Wagtail. She has submitted seven pull requests that have been merged into Wagtail. Through her work, she has updated different components of the Wagtail style guide to provide better high contrast support for Windows users.
So far, Anuja has been learning a lot of new things about system colours as well as standardizing code and managing version control through git. Learning how to write code and merge it into a project in a more systematic way has been a new challenge for her. But she says, "I'm proud of the fact that I can see my progress every day."
One of the best parts of the project so far for Anuja is the time she gets to spend with her mentors: Thibaud Colas and Jane Hughes from Torchbox as well as Scott Cranfill from the NASA Jet Propulsion Laboratory. "My favourite part is the weekly meetings where we get to review our progress," she says. "It helps a lot in setting up our priorities, discarding the weak points and adding new ideas into the project we can improve on."
Anuja has been very dedicated to coding this summer and focusing on her studies at the Indian Institute of Technology. This is her last summer before her final year, and we're very happy she chose to spend it with us in the Wagtail community.
With Hitansh's help, we're working on building a standalone website for the Wagtail Editor's guide that will make it easier for editors, administrators, and other Wagtail users to find information about how to use Wagtail.
One challenge Hitansh and his mentors had to figure out early on in the was how to organise different versions of the guide. Currently, the default versions of Django and Wagtail don't allow dot "." characters in the names of locales, which are what Wagtail uses to organise content in multiple languages. This was an issue because the Wagtail version numbers have dots in them. Mentor Coen van der Kamp from Four Digits ultimately came up with a monkey-patch solution that would allow dots to be used in the locale names without having to maintain a lot of complex code.
A lot of the site infrastructure has been constructed so far, and Hitansh is currently working on building out the initial design as well as the navigation and different features for the website. Soon, he'll be working with mentors Meagen Voss and Phil Dexter from Torchbox to create some initial content and sort out which content from the original Editor's Guide will be transferred over.
"I have learned a ton from my mentors, including all sorts of technical tools and a little project management," says Hitansh. "Coen has taught me a lot about good and bad practices in Python, Django and Wagtail code. A lot of the tools we're using in this project are ones I never used before. This is giving me an opportunity to explore new things."
Hitansh is in his second year pursuing a Mathematics and Computing degree from the Indian Institute of Technology Varanasi. He has been an active member of the campus coding club and you can explore his personal projects on GitHub.
Data and databases have been on Sandil's mind a lot since he started his project with mentors Jacob Topp-Mugglestone, Joshua Munn, and Karl Hobley from Torchbox. According to Sandil, they started out the project by writing a lot of manual data migrations for different migration scenarios to get a sense for what the toolkit would need to include. They also created a Wagtail test project to use for testing. A lot of questions came up during that exercise about how data would be loaded and organised.
Next, Sandil started creating a package by writing a series of tests that would account for changes to data under different scenarios. Together, the team developed an approach to map data that relied on "block structures", which are the chunks of data found in StreamField blocks. They successfully got operations for renaming and removing blocks to work for all of the test cases they created then incorporated processes for querying databases, updating database objects with StreamFields, and saving the changes. They are currently exploring the best functions for managing those revisions as well as looking at options to help users optimise performance.
Sandil has been enjoying the different problems he's had a chance to dig into. He says, "The work we did on the recursion process was interesting, and I liked some of the work we did on querying."
One other thing Sandil likes about his project is the opportunities he's been getting to see the inner workings of the team behind Wagtail. "I get to see how an open source organisation works," he says. "I got to join a couple core team meetings and see how they discuss things and solve problems. I'm learning a lot from my mentors too."
Sandil just completed his first year in the Computer Science Engineering at the University of Moratuwa in Sri Lanka. Considering how well he's done with this project so far, we're pretty sure he'll have a fantastic second year too.
Paarth has been incredibly busy taking the styles and components of the new Wagtail page editor and applying them to the rest of Wagtail. Thanks to his efforts, and his mentors LB from Virgin Australia as well as Thibaud Colas and Helen Chapman from Torchbox, Wagtail will have a more consistent look and feel across all of its interfaces.
Paarth started the project by added new components to Wagtail's pattern library. Then he modified the styles of existing components and replaced the old designs with the new ones. His work has touched nearly every frontend part of Wagtail, and his favorite part about the project so far is that he gets to work on something new every time.
"When I started the project, I thought it would be frontend work only," says Paarth. "But it extends far into the backend too, which has made the work challenging but enlightening. The best part is the stand-ups and meetings. I always look forward to meetings with LB. We discuss stuff, share life updates, and have lots of fun!"
One challenge Paarth is especially proud about overcoming during his project is learning to write tests. "I was afraid of writing unit tests and I was a little hesitant about backend work," he says. "I was so proud when I wrote my first unit test by myself, and seeing my pull requests progress has been very satisfying."
To date, Paarth has committed an incredible 56 pull requests across five Wagtail repositories. When Paarth isn't contributing to Wagtail, he is making contributions to purr-data. He is preparing to enter his second year of studying for his Bachelor's of Technology degree at the Indian Institute of Technology (BHU).
It's been a great summer so far, and we're super grateful to all of our contributors for their hard work! These projects are all part of our ongoing open-source efforts, so if any of these projects sound like fun to you, join our communities on GitHub or Slack.