Randy Fay on the Future of Drupal Development with Git

Podcast episode player
0:00 0:00

Randy Fay (aka rfay) has been getting really excited about how git will change the future of Drupal development. He's been doing a lot of educational and instructional videos about git on his blog at RandyFay.com. He's been learning and getting excited about git by watching what is happening at github, and a lot of the design of the Drupal git migration were partially inspired by the patterns innovated by github.

Fay talks about how github is user-oriented, but that Drupal.org may be the perfect combination of being both project-oriented with Drupal module project pages, but also person-oriented in having personal user sandboxes where more experimentation and innovation can happen where it can be easily shared.

There are a lot of unanswered questions for how a distributed version control system like git will affect the future of Drupal development, and Fay talks a lot about how there is going to be a lot of experimentation over the next year and throughout the Drupal 8 core development cycle for how most of the collaboration will happen in all of the different Drupal.org issue queues. While there are some Drupal contrib modules that have communities of developers, a lot of the major code overhauls and new features are going to be happening in Drupal 8 and so there will be quite a bit of experimentation for what is the optimal workflow for how core Drupal developers collaborate with each other in the Drupal issues queues.

Perhaps patches will go away. What about per issue repositories and branches? And how will the lieutenant system of having a number of different initiative leaders work out? Will each comment become a commit, and will it be possible to develop an easy workflow that is able to preserve individual contributor attributions? These are just a sampling of some of the open questions, and what excites Fay the most is that all of these are answerable and solvable provided by the git distributed version control toolset.