My follow up on open source (week 11@ Encora Academy)

Uriel Martinez
3 min readDec 8, 2020

This week, my take on open source was a little deeper than the past week. I finally chose between the hundreds of projects on GitHub after a long review.

In the beginning, I decided to get to work on Pandas, a library for analysis and data manipulation wrote in Python. This project has about 3.4k open issues, so it was a good choice since there was a lot of work to do.

The first step was to set up the environment to start working. I followed the guide for contributing to Pandas. They recommend working in a container so finally, I get to know what Docker is about.

Docker is a tool for automatizing the process of project deployment, it builds a “container” where there is everything you need to start working. From dependencies, environments, and all kinds of software requirements and resources to have nothing to worry about.

Then, the only problem that I had was that it took me nearly the whole day building the container, lucky me, while Docker was working, I found an issue that I thought I could start working on right away.

By Thursday, I finally started to work on my first issue, it was about getting rid of unnecessary dict() calls in a bunch of files. It is because flake8 (C408) standard says that it is slower to call dict() than using the empty literal, for example:

  • Rewrite: dict() as {}
  • Rewrite: dict(a=1, b=2) as {}
  • Rewrite: list() as []
  • Rewrite: tuple() as ()

I just modified one single file to see how this contributing thing works, I noticed that when you do a pull request for an Open Source project, it has to pass all checks that they have implemented.

By Friday, I got the hang of it, and I did five more files from the same issue to prove myself. Everything worked just fine, and they got merged into the Pandas project. It feels good to know that somehow now you have contributed something to them…

I also took a look at another project called Faker, which is a library that helps you building fake datasets when you need data to prove anything you want. I found an issue about implementing type-checking and I also started to work on it.

This week there was not a specific schedule of activities or a specific guide for what to do, but since it was all about finding projects and understand what they do and how it works, it feels like a completely different type of work.

Conclusion

This week I learned a lot about tools that projects implement for keeping order in code, I learned about the flake8 rules and standards, I learned about continuous integration tools such as Travis, I learned about mypy and type-checking which will keep me busy the following week. I just realized how much I still have to learn about Python.

--

--