News for our FOSS projects maintenance
Jul 3, 2019
During our latest hackathon, we had a discussion about KNP Labs' FOSS projects. We talked about the number of repositories we had and what to do with such many open source projects.
Many of these projects were created when there was no other alternative in the Symfony ecosystem. They were useful at that time, and we used them quite a lot across many projects.
But now, things have changed. We do not develop applications the same way we used to do when we wrote these FOSS projects. We use other approaches and technologies, for both backend and frontend. We build tailored solutions for our customers, which do not always require the use of these projects. Thus, it makes many of the open source projects that we've built obsolete for our own needs. However, there are still people in the PHP community that rely on them and keep using them. This is why we continued to maintain these projects, and why we'd like to find a solution about how we can continue to keep these projects alive, in spite of our diminution of attention towards them.
In addition to the above facts, these projects were created several years ago, and most of the original authors are no longer working at KNP Labs now, or are not using Symfony / PHP anymore. This makes another point on the difficulties to maintain side, as the original vision and interest in the project may have left with the original author.
During the discussion, we also pointed out that the current time window that we can allocate internally to FOSS development wasn't comfortable anymore. Initially, we had weekly calls with members that were maintaining FOSS projects. In the end, during these meetings, we often had to confess that we did not take any time this week to continue the work. As this was discouraging, we changed our mind and decided to use another approach. From this and until now, we are allowed to take from two up to four hours a week to work on FOSS project. Of course, this is not mandatory, and it's up to the developer to take this time if he / she desires to. In fact, this timeframe is too small to be able to work efficiently on FOSS projects, as it doesn't give us enough space to focus on the projects. Also, we don't always have an opening in our schedule to free up some time for FOSS, so we often end up not taking that time.
In order to improve explicitness, we decided to indicate who are the maintainers of the projects under the KNP Labs organization that we do not maintain internally anymore. There are already some developers with merge rights on some of our repositories, but we'd like to make it clear by explicitely writing it on the project's README file.
BTW, kudo to the developers who have merge rights on our repos :D We appreciate your work there !
We have a tool to list the public repositories under the KNP Labs organization, named FPP (FOSS Project Page), and available at this address : http://fpp.knpnet.net/ . The repos are listed from the most recent contribution to the oldest one. There even is a link on the topbar to randomly pick an issue on any of the repos. We used this tool to identify the most active repositories and to check whether the maintainer was explicitely named on the README. When it was not the case, we opened a PR to make this change and asked the maintainer's approval.
Regarding the allocated time for FOSS, we thought that it'll be better to ask for half days or full days of work on a dedicated project. As we were not systematically using the allowed 2-4 hours per week, we thought it would be better for us to explicitely ask and notify our team when we need some time for FOSS projects, rather than use a small timeframe where we could not focus enough.
As we agreed on the above decisions, we have to apply the evoked changes. This article is a part of them. We want to make our decision as clear as possible to anyone who uses the FOSS projects of the KNP Labs organization and even to anyone who would be interested in these projects.
With these changes, we aim at making clear who's maintaining these projects. As stated before, we do not use some of these projects so it makes it difficult for us to maintain them. However, if you are interested by any of them, feel free to open a PR to ask to be added as a maintainer. We'll be glad to hear from you :)
Most of these projects are PHP ones, which were started some years ago. We changed since, and we do not only rely on PHP now. Maybe it'll lead to JS projects appearing on the organization :)
Also, by allowing to take a higher amount of continuous time for FOSS work, we can more efficiently plan and focus on the maintainance. This will improve the developer experience and so make it easier for other developers that want to contribute to FOSS projects internally.
If you want to say hello => https://twitter.com/KNPLabs