Mastering Git for the Drupal Developer's Work Flow
You've dabbled a little in version control. You know about commits and pulls and branches. You may have even tried rebasing something once. You can follow along with Drupal.org's Git tab. But now you've been asked to implement a work flow strategy for your company's next Drupal project. Where do you start?
In this workshop you will work closely with long-time version control lovers to create a work flow strategy that is unique to your project. From Drush to Views, we'll walk you through the steps you need to share your work efficiently with Git.
Discussion will include:
- Tips for working with popular ticketing systems, such as GitHub and Unfuddle.
- Common pitfalls when first adopting version control for Drupal site building teams with more than one person.
- Tool kit recommendations based on real world Drupal projects.
Hands-on activities will include:
- Selecting and customizing a branch strategy for typical mid-size Drupal projects.
- Executing Git commands necessary to implement the identified branch strategy.
- Creating a project-specific strategy check list for dealing with merge conflicts.
- Verifying feasibilty of strategy decisions by executing steps identified in the branch and merge conflict strategy documents on a code base.
Participants will leave the workshop with the following:
- Git branching strategy specific to their team's needs.
- Hands-on experience working at the command line to export features, check code into a Git repository, pull changes from a Git repository, and reset features using Drush.
- A one-month subscription to Drupalize.Me, including videos on Git, Features, and Drush.
Attendees MUST have knowledge of basic Drupal site building. A rudimentary knowledge of Drush and import/export functionality of Features will be helpful. Ideally participants will have been exposed to version control before, but have struggled with how to incorporate an efficient workflow into their Drupal projects. Attendees will be using Git and working from the command line for this workshop. Pre-workshop resources will be provided to help bring people up-to-speed. Where relevant, participants are encouraged to sign up with their less technical co-workers and work in teams for this workshop. Work flow is, after all, all about improving your work with others.
- Morning - Part 1
- Lecture: Intro to Drupal deployment patterns.
- Activity: map out your current dev/stage/prod environment.
- Lecture: Intro to common branch strategies.
- Activity: to your dev/stage/prod environment, add branch strategy details.
- Morning - Part 2
- Lecture: Review of common Git commands.
- Activity: to your map, add git commands used for common activities.
- Lecture: Intro to Drupal developer workflow and the challenges of database-stored config. Current solutions (e.g. Features) and a brief talk of what's coming up in Drupal 8 (CMI).
- Activity: Set up Drupal locally from the DB snapshot (ideally already done), checkout a specific branch from the thumb drive, and run Drush to reset all Features (mostly an environment test). Spend the last 10 minutes demonstrating the steps (live demo) for those who've not been able to do it.
- Morning wrap-up / Summary: Brief review of the "lecture" and "activities" from the morning.
- Afternoon - Part 1
- Discussion: Ticketing systems and team work flow challenges.
- Activity: Based on the previous discussion, create a work flow / plan detailing steps team members need to take to work together.
- Lecture: Dealing with merge conflicts. Common scenarios, common solutions.
- Activity: pull a different branch from the thumb drive and implement your conflict resolution strategy.
- Afternoon - Part 2
- Lecture: Working with features. Opportunities and challenges (what's good, and what sucks).
- Activity: Pull a new branch that has a new Feature and enable the Feature using Drush. Review, and roll the changed branch into "master".
- Discussion: automation strategies for shared dev server and production. How Drupal, Git, and your database can all learn to play together nicely.
- Wrap-up / Summary: Brief review of the "lecture" and "activities" from the afternoon.
- Small Drupal and web shops struggling to implement effective work flow habits with larger projects.
- Teams at corporate, nonprofit, and educational institutions that need better processes for their Drupal projects.
- Solo developers who need better strategies for collaborating with other contractors.
Joe Shindelar worked on the image-handling system in Drupal core, and is a sought-after presenter who has spoken at many tech conferences about everything from code-level development to user interface, design, and community involvement. Joe has been teaching for over 6 years, and enjoys the â€śAha!â€ť moment that students experience when, after several failed attempts they get it and say, â€śThis is awesome!â€ť and the experience of watching his students expand their own knowledge and go on to accomplish amazing things.
Emma Jane Westby (nĂ©e Hogbin) is an internationally renowned open source software advocate, technical author, and teacher. She is a frequent speaker at open source conferences in Canada, US and Europe and is an active volunteer with several open source projects, including Drupal. In addition to her engaging conference presentations, Emma has also worked as a technical college instructor, and has worked on curriculum development for large organizations. Emma has been teaching internet technology since 2002, and is the author of Front End Drupal and Drupal User's Guide.