Einar Egilsson

Open Source Contributions

Posted: Last updated:

I've contributed small fixes or features to some open source projects. Mostly it's when I've needed something myself and then figured I might as well send the changes to the project owners.

NuGet: We were using NuGet at Trustpilot and I wanted to be able to read credentials for private package sources from environment variables instead of having to add them to files in the repository. So I submitted Issue 3916, implemented the features, and submitted Pull Request 5893 for it. The main part being the ReadCredentialFromEnvironment method, along with some unit tests. The pull request got merged in August 2014, and is part of NuGet 3.0.

MongoDB: We are using MongoDB in my job at Trustpilot, and I've submitted a couple of pull requests for the C# driver for things that I needed, mainly around profiling. I submitted Pull Request 143 to add a missing field to the SystemProfileInfo object and Pull Request 144 to fix a number of issues around the serialization of lock statistics in the system.profile collection. Both of those were accepted and released in v1.8 of the driver. I've also submitted Pull Request 139 which adds a couple of features to the LINQ provider to explain queries and specify which index to use. That one hasn't been accepted yet but hopefully will soon.

Wordpress: I submitted bug 4739 and a patch for it. It finally made it into trunk in changeset 15930 and was released in Wordpress 3.1. It fixes the transformation from Icelandic letters to ASCII when creating page slugs. I previously wrote about it in this blog post.

Django: Django has a module called "localflavor" where people can submit self-validating controls for a particular country, for instance a combobox with all zip codes for the country, or a textbox that can validate a correct phone number. I wrote the icelandic localflavor (see ticket here) which includes a textbox that validates icelandic identification numbers, a textbox for phone numbers and a combobox with zip codes.

Standard Sitemap: I contributed some code to this extension which allows websites to define their site structure in an xml document and a site tree is then displayed in a sidebar. There are a few extension developers working together on this and it should be excellent when it's finished.

MarkdownSharp: I contributed a patch for making the options for the Markdown class be per-instance, not static, which makes it possible to use different instances with different options as well as make unit testing easier. The patch also added support for loading these options from a config file. There is a long issue thread about it and revision 95 is where it got checked into trunk.

Cordova Plugin Google Consent: I used this plugin for the cardgames.io apps to gather GDPR consent for personalized ads, but the plugin only had a Java version, so I wrote the iOS version in Swift. First time writing something in Swift, was a lot of fun :)

If you read this far you should probably follow me on Twitter or check out my other blog posts.