GSOC 2022: One Month Progress

Deepak Dinesh
2 min readJun 24, 2022

--

Through this blog, I will share my experience of participating in Google's Summer of code with the Django organization.

I started to look at the projects mentioned by the Django organization about a month before the proposal submission deadline, at the beginning I was not even confident enough to write a proposal but my mentors David Smith and Carlton Gibson helped me understand the needs of the project and they also helped me with my proposal.

During the community bonding period, my mentors advised me to get started on my project rather than waiting till the coding period began, this has been one the best pieces of advice I have ever received as I now realize how starting early has helped me.

Week 1:

  • Refactored the benchmarks which were in a single file into separate directories

Week 2:

  • Added a linting workflow that uses flake8 to check the code for linting errors and isort to sort the import statements so as to maintain code quality but isort’s behavior on the local machine and GitHub runner was different so my mentor David smith added pre-commit so that these discrepancies do not exist.
  • Added a benchmark workflow that runs the benchmarks when a pull request is created or when changes are pushed to the main branch
  • Added some new benchmarks

Week 3:

  • To recognize regressions in performance due to the changes made in previous commits I ran the benchmarks against the first commit of every month for the past five years using a GitHub-hosted runner and I added the results.
  • I added some more benchmarks and also refactored some of the existing benchmarks

Week 4:

  • Previously the benchmark workflow only ran the benchmark suite, but did not add the results back to the repo, I modified it such that the results are added back to the repo.
  • Airspeed velocity is an excellent benchmarking tool with a ton of features. It provides support to publish the results to a local website and view them in the form of a website, it also has the feature of pushing the results to the gh-pages branch of the repository which lets GitHub deploy it to Github pages.
  • I added a workflow to publish the results to the gh-pages branch and the results can be viewed here

Screenshot:

Work for the next months:

  • Run the benchmarks when a pull request is labeled in the django repository
  • Load test different ASGI and WSGI servers using Locust to compare their performances
  • Update the documentation

--

--

Deepak Dinesh

GSoC2022 | Open source contributor | Python Programmer