My First Open Source Contribution
I made my first meaningful contribution to a project on GitHub this past weekend.
I was aggregating 300+ notes from Evernote and found that I could convert them into markdown using tool evernote2md. The utility was easy to install and use.
The program evernote2md took Evernote's backup file (a .enex file) and converted it into markdown files while aggregating attachements and images into separate folders.
For my purposes, I really wanted to have metadata on the file's creation date for archiving purposes. So I made an issue. Within ten minutes the maintainer, wormi4ok, had commented on the issue affirming my needs.
The rest of the day, I made a custom solution using Deno that stitched together the output of `evernote2md` with a custom parser made in Deno for the `*.enex` files. This worked, but I couldn't match the file names perfectly and duplicated file names like "untitled" were saved as "untitled_1.md" and "untitled_2.md". This decoupled the markdown file from the metadata in the backup file. In other words, it was impossible for me to date certain files.
So the next day, I took a stab at updating the golang source code for `evernote2md`. I finished the PR and submitted it for review. I was nervous. Imposter syndrome gets me pretty hard sometimes, especially when writing code in an unfamiliar language. When I woke up the next morning the maintainer, who lives in Germany, had made some helpful comments which informed me of some golang conventions and suggested ways that I could improve my code (with actual code snippets!).
I made the suggested changes and updated the PR. Shortly after it was merged and I felt a strong sense of accomplishment. So much so that I decided to write about it. :)
All in all I learned a bit about golang and about how rewarding it felt to have contributed to an open source project!
If you are interested in making a contribution to a github project, feel free to checkout (sic) this project that I made. It can always use an update and I would be happy to review any PR.