My Wonderful Journey Through The Open Source World

When I started my CS journey, Open Source was something that immediately got my attention. It had everything that attracted me to the field: passionate developers working together as a community to build something wonderful. Ever since then, I've been learning more about how open-source communities work and have been part of certain smaller communities. Recently, I've started contributing to Wagtail, a Django-based CMS. I'll be sharing my experience with Wagtail and its community here.

Designing elegant solutions

The contributors and maintainers of Wagtail are really friendly people who were ready to help with any roadblocks I might've come across while working on an issue. Every PR made to resolve an issue or add a feature is assigned a reviewer. They review the code and provide feedback, based on which additional changes are made till the PR is ready to be merged. The community members have always been patient in reviewing my revisions, often working along with me for weeks till the PR is finally in a state to be accepted. The best changes aren't decided by the length of code; In this issue, I went from deciding to add a huge redundant code block to making a slight modification for a very flexible solution based on suggestions from the reviewer.

Necessity of Testing And Linting

Although I've written unit tests before, contributing to Wagtail helped me gain more experience dealing with the intricacies that come with it. Wagtail uses CircleCI and Codecov to ensure changes don't break the codebase and proper formatting and coverage are maintained. I learned to write better tests that would take into consideration all the edge cases and write well-formatted code.

Learning New Technologies

As an aspiring backend developer, I've had experience with Django and other backend frameworks in the past. The tools used to compile the documentation like MystParser and Sphinx were entirely new to me. When I had to work on a documentation-related issue, I wasn't sure if I could learn how the tools worked and figure it out. With the reassurance of the lovely community, I was able to learn how they worked and helped resolve the problem. Currently, I'm learning Jest, hotwired-stimulus, mousetrap, and Typescript to work on parts of the codebase out of my comfort zone.

Features/Issues I've worked on:

Prevent displaying model verbose_name in permissions UI for custom permissions Allow subclasses of PagesAPIViewSet override default Page model Flag Warnings as Errors during Documentation Build
API for performantly bulk-creating pages programatically

Amazing Community

I've said this before and I'll say it again: Wagtail has a wonderful community of people from different parts of the world, all passionate about bringing their ideas to life through code and building something awesome. Discussions with them have taught me how to approach problems and persist on them without losing hope. Communicating with a large group of motivated, talented, and brilliant developers has been a humbling experience and has helped me grow both as a developer and also as a human.

Conclusion

Contributing to Open Source Projects has been one of my biggest dreams and my first contribution is one of the proudest moments in my life (I felt like a God). I try to make regular contributions to that project now and have grown a lot in my journey which I could never have learned from my college or anywhere else. If you're apprehensive about getting started, I suggest diving into the community and discussing with them to slowly dip your feet in. Happy coding!

0
Subscribe to my newsletter

Read articles from Neeraj P Yetheendran directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Neeraj P Yetheendran
Neeraj P Yetheendran