DEV Community

Cover image for GSoC Week 10
Chiemezuo
Chiemezuo

Posted on

GSoC Week 10

In any project, it's expected that a couple of things will change a little bit, often because there is more information now at one's disposal. Some other times, it's because of an extra creativity that comes when a person is moving at a good enough pace. Regardless of the situation, a mental compass of the initial direction is still needed not to derail too far. We, once again, made some design alterations.

Weekly Check-in

My mentors and I walked through the previous week's challenges and successes and reviewed the progress so far. I also mentioned reaching out to people higher up in Wagtail for help with another issue I'd encountered with the Suggestion UI in the previous week.

Storm talked about his holidays and discussed his availability during that period. Saptak didn't plan on going on any holidays right away so he would still be available till the end of my GSoC program for the most part. I mentioned how Thibaud offered to take some time from his own holidays to help me round up my GSoC project.

Finally, my mentors told me to get started with preps for the blog post I would have to make. I would first have to start with an overall idea of what I would like it to look like, and then build upon it.

Here's some extra good news: My RFC has been approved and is currently awaiting a merge upon completion of the "waiting time".

Challenges

The problem with the Suggestion UI is that there was no "readily" supported way of retrieving Python database values from the Javascript side of the logic, and those values couldn't be sent from Python to the form because the expected initial data would always be None or "empty". I discussed with Matt (Wagtail's lead dev) and he mentioned that there were some things in the Telepath.js library that could potentially be changed, but that it would involve some level of complexity. Nearing the completion of my GSoC program, additional levels of complexity, especially on internal tooling that I had never worked with before felt like a lot of effort in the wrong direction. I discussed it with Thibaud, and he mentioned that he would look at it, but that if it felt like a lot of extra unplanned work, then it could be worked upon iteratively after my GSoC program by either any Wagtail dev or me. I was largely in support of moving it aside because it was a blocker for the rest of the projects.

However, the biggest challenge I faced in the previous week was the "undocumented" series of problems that happened as a result of the nationwide protest in my country. The government shut down some parts of our Internet access and electricity system. This made it particularly difficult for me to do any work, and at some point in time it was impossible to even access Git and GitHub. For two working days in the previous week, I couldn't do a single thing except clean up code offline (I couldn't even push). This meant I had to work during the weekend to account for time wasted beyond my control. I also noticed that Internet access was more bearable at night time, so I had to tweak my working schedule. It did take a physical toll on me, but it's the only way I was able to get work done.

What I learned

I realized that the more I had to explain the code I had (and why it did what it did), the more my fundamental understanding of Wagtail blocks got better. I have become much better at spotting properties and attributes of models in Wagtail. I also now know how to confidently access the docstrings at will. In one of the reviews, Thibaud pointed out how I could check code test coverage, and Storm mentioned modifying fixtures for the bakerydemo setup project. I hadn't previously known about them in Django, but I got to do some reading about them in this article about fixtures.

Once again, I fried my commit history when I was trying to revert some changes I did somewhere else. It took me on another rollercoaster where certain commits were doubled, but this time, it was on one of the primary branches I was working on. I panicked at first, but after some time (and lots of effort), I decided that I would be able to start over if it got damaged beyond repair. In my adventure battling this problem, I learned the powerful "drop" keyword when rebasing, and thoroughly vetted what I was dropping with help from GitHub's interface to verify the hashes. Much to my happiness, it did work out just fine. It's safe to say I'm developing superpowers with Git.

The week had its ups and downs, but few things move linearly, and I'll take the wins and lessons from the losses.

Thanks again for reading this far.

Till next time.
Cheers. 🥂

Top comments (0)