I began my fork of php-mode on 25th of July 2011. It is a package for GNU Emacs, my editor of choice, that adds features to help programmers working with the PHP language. After spending time today working on some code for the project I felt like writing down some thoughts on what it’s been like to run the project for this long.
Most open-source projects like php-mode run purely on volunteer effort. Some professional programmers make a living from their work on open-source, but most of us do not. Instead we contribute to such projects for personal reasons.
However, maintaining an open-source project is a bit different than contributing code. As the maintainer of php-mode it is my responsibility to manage and review contributions from other programmers, answer questions, respond to bugs, improve documentation—basically to do not only programming but also be the face for the project. When there is a release of php-mode that causes bugs for users that is my fault and no one else’s, because as the maintainer it is my responsibility to set the standard for quality control.
That is a major reason that some programmers I know have expressed apprehension about volunteering to be the maintainer for an open-source project that other people depend on. And don’t misinterpret that as me bragging about php-mode; they are countless open-source projects with way more users and a tremendous amount of public attention. Nonetheless, there are enough people using php-mode that I cannot be lax about quality control. That is the area where I feel my role has changed the most over the past nearly two years. When I volunteered to be the maintainer for php-mode I expected to spend most of my time adding new features. But after embarrassing myself with some buggy releases I decided that the community benefited more from me trying to hold php-mode to a high level of quality as opposed to adding every neat feature I could think of.
Working With Contributors
Nowadays most of the new, neat features in php-mode come from other people. This has become the aspect of the project I enjoy the most: interacting with other programmers and users. Everyone has been friendly, helpful, respectful, and professional. Because of that I consider one of my most important duties as maintainer is to ensure that everyone receives the proper gratitude and credit for their contributions, whether it is reporting a bug or submitting patches of code. They are all equally important to the project.
Working together with programmers on php-mode has also improved my knowledge of Emacs Lisp and PHP. As more people use my version of php-mode, naturally more eyes are watching the code. And that means a wider net when it comes to catching bugs or finding holes in the functionality. The things I’ve learned from php-mode have helped improve the quality of other Emacs packages of mine.
Maintaining php-mode is rewarding in a lot of ways. Particularly because of the great people that I get to meet who regularly make the project better. Managing php-mode also provides consistent reminders about the importance of quality control, unit testing, and other methodologies I will write about someday.
I have a lot of fun maintaining php-mode, and working on an open-source project like that is a great experience that I would recommend to any computer programmer.