Week 3 of Community Bonding
Tags: gsoc, summerofcode, wagtail, opensource
Published: 2024-06-03 22:33:26

I'll admit that I've been doing a lot of work in this community bonding period to stave off all forms of imposter syndrome very early on. I promised myself a fun internship and I'm laying a good foundation for it. This week was when some major dots started connecting, and I'm more than happy to share.

## Weekly Check-in
As mentioned previously in this series, I start my week with a meeting session with my mentors to discuss expectations and action plans for the week. My mentors and I decided to move some tasks to Sprint 3, because they weren't immediate priorities. We also agreed to keep modifying the RFC to our satisfaction, and I had made good progress on my Proof of Concept. My lead mentor also pointed me to an area of Wagtail to do more research on: StructValue, as well as some considerations for the second goal of the project: modifying the existing image model to accept image descriptions.

I also asked my mentors for permission to use their names in my writings, and they told me I was free too. My two amazing mentors are: [Storm ](https://stormheg.co/)and [Saptak](https://saptaks.website/).

## What I learned
I had to make lots of alterations to my Proof of Concept. I set out to look for the approach that involved modifying only the least amount of Wagtail internal code. In hindsight, I think I opted for that course of action out of some level of nervousness. I was worried once more about my inexperience showing too much. I envisioned a situation where I would do something one way when there was a more efficient (yet seemingly obvious) way of doing it from the get-go, so I tilted towards the path that would let me make the least mistakes. I showed it to the lead dev and he wasn't so keen on my approach, not because it didn't work, but because it involved introducing some new behavior to an existing feature of Wagtail, just to accommodate a small change. My mentors also had similar views, so I decided to let go of my fears and be very experimental, and this led me to the best approach yet.

It's surprising just how much better you can perform a task when calm. I did my due diligence, read large amounts of Wagtail documentation, and played around with the existing features. Thankfully, Wagtail offers a lot of flexibility and allows functionality to be extended in creative ways. There was a lot I had to discover, but my mentors had given me a comfortable ground to fall on, so it was my job to fall as many times as I could with their guidance. Without any pressure to get it right so quickly, I got around to understanding the `Block` behaviour and its underlying Javascript. Getting the Javascript to work was tricky until I remembered I had to compile static files. This led me to work with Webpack and entry points for the first time ever.

Eventually, my Proof of Concept got to a level that we were all very content with, but due to the sheer number of iterations, I had a messy commit history. I perfected the act of rebasing commits. Along these lines, something unexpected happened: I got better at communicating the changes I was making, and I also got better at hypothesizing the effects that certain changes would cause.

## Challenges
I was essentially in the wild this time around, and I found everything tough. I spent so much time looking at my screen, trying things out, reading docs, and probing deeper into topics. I had a nasty eye strain at some point, and the fact that I was using the Docker setup slowed down my progress.
I decided I'd be done with Docker and configure my computer to use the fully local setup, without any form of virtualization. That was my new week's goal.

It was an exciting week yet again, and I had some personal wins that I was (and still am) quite grateful for.

Cheers. 🥂