Hacktoberfest on fpdf2 & v2.4.6

Last month, I realized late that October was hacktoberfest month!

Hacktoberfest 2021 logo

This online event is a month-long celebration (October 1-31) of open source software run in partnership with different software companies, with a focus on encouraging contributions to open source projects.

While I participated in the 2019 edition as a contributor, with @kleph & @minitux, this year I wanted to involve myself as a maintainer around the fpdf2 Python project, a minimalist PDF creation library.

fpdf2 logo

In this blog post I simply want to share my personal experience with this event.

Set up

The first tier of October had already passed when I realized hacktoberfest had started, so I quickly took a few actions to ensure the fpdf2 project was ready to receive contributions from newcomers:

  • I skimmed through the event rules, and ensured the repo had the hacktoberfest tag
  • I enabled discussions on the GitHub project, in hope it would allow for more casual chats with contributors (not a massive success)
  • I tagged some fpdf2 GitHub issues with the hacktoberfest label, to make it easy for curious developers to spot issues they could contribute to. I also tried to redact those issues in a way that would make them accessible and interesting to work on.
  • I created 3 extra good first issues, aimed at new contributors: #256, #257 & #258. In the end I implemented one myself because it was fun 😁
  • post-hacktoberfest, I also took sometime to write some issue / PR templates, so that when newcomers attempt to submit a bug report, a feature request, a PR or just ask a question, they are welcome with some nice explanatory text

A tutorial available in 8 languages!

Among the fpdf2 GitHub issues tagged hacktoberfest, one received an outstanding number of contributions: an issue suggesting to translate the one-page tutorial (#267).

What happened is that, mid-October, a contributor suggested to translate the tutorial in Portugese. I though the idea was great and totally fitted with the context of the hacktoberfest, so I opened issue #267 to encourage other translations.

This was well received as this idea motivated 6 people to contribute a translation, making the tutorial available in 8 languages total! Link to Tutorial.

Results & personal feedback

  • more than 50 issues & PRs have been created since October 1st, on the fpdf2 GitHub repo
  • v2.4.6 of fpdf2 has been released, and it is the biggest release since I joined the project: v2.4.6 ChangeLog
  • fpdf2 reached 300 stars ⭐ on GitHub! ✨ 🥳 🎉 🎈 🥂
  • it seems like the peak downloads per day almost doubled since September: Pepy stats, PypiStats

fpdf2 download statistics

A huge THANKS! to all the people who made contributions to fpdf2 since October 1st:

It was really an amazing experience for me, and I had this great feeling of being part of some wave of positive human energy!

Notable new features in fpdf2 v2.4.6

Temporary changes to graphics state variables are now possible using with pdf.local_context(): ... Docstring.

A mechanism to detect & downscale oversized images: dedicated documentation. Feedbacks on this new feature are very welcome! Has it been useful to you? Do you see behaviour / usage improvements?

New drawing methods have also been introduced:

Documentation improvements:

fpdf2 PDF manual screenshot

Final words

While I had a great time during this Hacktoberfest, I think that for the next open source / libre software contribution event, I'll try to pick one where I can be physically present.

I simply would have loved chat with the contributors at the end of the event! To get to know a little who they are and what are their reasons for contributing.

Happy coding to you all!