The Symfony software framework is a foundation for building web applications. It contains components for technical task common to many applications. Examples are the processing and validation of form inputs, handling user authentication and internationalization of applications. There is an active ecosystem around Symfony with a lot of conferences, user group meetings and blogs.
Symfony is open source. That means everyone may use it for free. You can read the source code, which gives you a better understanding of how things work. You are free to change and adapt the code to make it fit your needs. And everyone can contribute: By fixing bugs, adding new features and giving these changes back to the project itself.
For us at webfactory, building on top of Symfony has been a strategic choice we made back in 2011 and did not regret ever since. Symfony has grown over the years, also when it comes to strategic decision-making, policies and processes. There is a clearly defined release cycle, and Symfony delivered over a dozen of releases in time.
The Hackathon idea
I was very excited when I got the invitation for a "Hackathon" event in Brussels. Funding was provided by EU-FOSSA 2, the "EU-Free and Open Source Software Auditing project". This programme is managed by the European Commission's Directorate-General for Informatics (DIGIT). It provides a systematic approach for the EU institutions to ensure that widely used critical software can be trusted.
The Hackathon was invite-only and brought together about 50 contributors and "core team members" in a single venue. Most of them were from EU countries, but some also arrived from the US, Cuba, Morocco, Russia or Switzerland. The organizers did a great job, creating an environment where all attendees could work together to bring the Symfony project forward. We planned to work on strategic initiatives like Diversity and Inclusion, fix security problems and reduce the number of open support or change request tickets in general.
This weekend was different
Usually, open source projects work by using online tools for collaboration. Discussions and decisions take place in online forums, public chats or on mailing lists. This "asynchronous" way of working makes it possible for anyone to join. But sometimes it can be hard as well, since written communication lacks the richness of personal interaction.
The venue was an extraordinary place. These photos might give you an idea:
We had plenty of space to come together in groups, discuss things, to work on desks right next to each other or to retreat in cosy, quite places to help concentration.
Never before have so many contributors and members of the core team been together in one place. That gave an incredible boost to everyone and set free lots of energy and enthusiam. Talking to each other, getting advice from senior contributors or directions from the project leads themselves was always just a matter of walking a few steps.
Around that, we had a lot of occasions to get to know each other, to connect, trade stories and share experiences. For me, it was the first time to meet about a dozen of people that I had worked with before online without ever having seen their faces. In most cases, I knew their GitHub usernames better than their real names.
Some numbers and figures
Speaking of GitHub: On that platform, developers open so-called "pull requests". Basically, these are proposals to perform a particular change in the code. These pull requests are then reviewed and discussed. More than often, the initial idea undergoes many rounds of changes, fixes and improvements before it finally gets "merged". In addition to that, "issues" are created for reporting bugs, discussing new ideas and features even before having code for it.
The GitHub statistics for this weekend are impressive, even though the second day hasn't even finished yet:
The Symfony documentation team, which works in a separate GitHub area, did equally well:
Fabien Potencier, the project lead, estimated that on this weekend the work of two months of regular activity has been done. In this filtered issue tracker list, you will find that more than 230 issues have been addressed or even resolved.
The most impressive figure, in my opinion, comes from the "Continuous Integration" system. For every single change suggested, this system will run a suite of several thousand automated software tests to make sure nothing breaks. If you look at the following chart of how many test runs have been triggered during the past 30 days, it gives you a good idea of how much activity there was.
After more than 12 hours of focused work on the first day, we're now on Sunday afternoon and preparing for a closing session. All the groups will get an opportunity to tell the others about their work and results. We're also looking forward to some closing remarks from the project leads as well as the EU-FOSSA 2 team.
Although exhausted, I think most of us will return home with a feeling of satisfaction. For sure we've all learned a lot at the same time as bringing the Symfony project and related open source projects a leap forward.
Thanks – and hope to see you all soon again at one of the Symfony conferences or user groups!