January 10, 2017
The ABC's of Drupal: Camp, CLI, CMI
For anyone who's ever looked up a definition of a Drupal term and been left wondering what it all means, here are some practical real world explanations you can use to navigate the Drupalverse. Watch this space and use comments to send us your feedback and requests.
A camp is a gathering of Drupal experts and other interested humans set up to share best practices, emerging trends and other information. Camps are usually free or low cost and may be organized over one or several days. They are an excellent way to become familiar with the Drupal community and Drupal practices.
Camps can be found all over the globe. Some are big, some are small, but regardless of size, beginners are always welcome. Many camps offer high-quality, paid trainings taught by leading Drupalists who are experienced in specific areas such as module development, theming or project management.
Drupal camps are generally built around a series sessions, which are 45 to 90 minute presentations by Drupalists that cover specific topics, themes, or ideas. Most camps organize sessions to cover a variety of topics and experience level so that all attendees get to enjoy great content. Many camps will also organize contribution sprints on a subsequent day, where attendees write code for the Drupal project.
Sprints are a great way to get more people contributing back to the Drupal project and also a great way to enable regular committers to work more collaboratively and effectively together around a specific set of issues. Visit Drupal.org for info on upcoming events and also Drupical.com a very handy aggregator of Drupal meet ups, camps and conferences.
(FFW is very active in the camps scenes in the cities where we have offices. If you'd like to check out a Drupal Camp for yourself and want to know if FFW will be there, check out our events page, which lists out which upcoming camps we plan to attend.)
CLI: Command Line Interface
CLI stands for Command Line Interface, which can mean either the Drupal shell program (Drush) or the Symfony-based Drupal Console program. Configuration that occurs via a Drupal graphical user interface can often be performed much more effectively at the command line.
Drush (rhymes with “crush”) is a mainstay of Drupal configuration and is well known by any developer who’s worth their salt. Drush refers to ‘Drupal Shell’, and is a shell-based software that allows users to administer Drupal sites of all versions from the command line. The other CLI, Drupal Console, was developed specifically for Drupal 8 and is used as a shell program to learn Drupal 8 development, configure Drupal sites, create custom module and theme scaffolding and debug custom code.
A handy tip from Ray: If someone tries to get you in a conversation about which CLI is better or why we should only have one, it’s best to shrug your shoulders and walk away quietly.
CMI: Configuration Management Initiative
The Configuration Management Initiative began as a Drupal 8 configuration effort. The goal of CMI was to strengthen Drupal’s configuration workflows. It was also built to mitigate potential roadblocks and collisions in production websites with user generated content that were also undergoing active development.
The main challenge for the CMI was to create a method of saving, versioning, reverting and making portable the changes made to a site’s configuration settings. The initiative lead to fundamental changes in how Drupal classifies and handles configuration data, and laid the foundation for significantly improved development workflows in Drupal 8. CMI is just another reason why you should be developing your next project using Drupal 8.
To learn more about the unique nature of Drupal, download our Ebook: 10 Drupal Project Pitfalls to Avoid. This eBook has compiled a list of lessons we’ve learned in 15+ years of delivering digital solutions to some of the most recognizable brands in the world.