SlideShare una empresa de Scribd logo
1 de 18
Optimize Site Deployments with Drush

      Saturday, 2011.11.12 – Drupal Camp Toronto 2011
      Jon Peck, Owner, FluxSauce.com
      Audience: Intermediate



                                                Revision 2.
Who am I?

 Jon Peck

 Founded web application
  development firm
  FluxSauce

 Zend Certified PHP
  Engineer

 Web development since
  1998

 Used Drupal for the last
  three years
Overview

 Why should you script site deployments?

 What are drush and drush make, and how can you use
  them?

 What are features, and does it fit your needs?

 What are some recommended site deployment
  strategies?

 How can you develop your own strategy?
Why script site deployments?

 Reliability

 Track changes over time
  (including blame)

 Support multiple tiers

 Manage and optimize your
  operations




                             "Aaahhh!!!", CC BY 2.0 by Evil Erin @ flickr
What is drush?


   drush is a
 command
    line shell
         and
    scripting
  interface
 for Drupal.
What can you use drush for?

 Manage modules             Manipulate and extract site
                              variables
 Manage users
                             Execute MySQL queries using
 Execute Drupal commands     Drupal config
What is drush make?

  A standard
    recipe for
downloading
   everything
you need for
         a site
  installation.
Three steps for deployment

 Get the files (drush make)
   drush -y make --no-patch-txt "PATH/drush.make" FOLDER

 2. Install and configure (drush)
   cd FOLDER
   drush -y site-install --config="PATH/drushrc.ENV.php”

 3. Enable modules (drush)
   drush -y en 
    admin_menu
    ctools ...
Scripting site deployments

 Drupal Deployment Skeleton (MIT license)
   http://goo.gl/09JkE (gitHub)

 /projects/NAME/config - stored in repository
   drush.*.php
   drush.make
   config.ini
   install.sh
   setup.sh
   rebuild.sh
What is the features module?
What can you use features for?

 Within your site (GUI)

 Leveraging drush (command line)
What are features’ limitations?

 Imperfect exports

 No site variables without
  third-party modules

 No theme, block support

 No control logic

 If you can't do it in the
  GUI...
                              "40+296 Hello?", CC BY 2.0 by Bark @ flickr
Custom modules for granular control

With hook_install(), you can programmatically…

 Create users, roles, permissions

 Create and hide blocks

 Create content (nodes)

 Import content types / CCK

 Create vocabularies and terms (fields)

 Set site variables (drush vget)

 Import views
Custom module “gotchas”

 Custom modules used like this need a user associated

  drush -u 1 -y en custom_module

 Clear all caches after installing your custom module

  drush cc all

 Changes and updates need to go in hook_update_N
  within your module
Deployment strategies

 Store everything in a versioning system

 Always backup both your scripts and database first!

 Tiered development strategy

 Unique database credentials for each tier

 When in doubt, rebuild on dev first

 Instead of repeating steps, do it in code

 Document the process
How can I do this?

 Get drush

 Get drush_make

 Define your needs.

 Build and document your module toolbox

 Start small, then scale up
"Question mark in Esbjerg", CC BY-SA 2.0 by Alexander Drachmann @ flickr



Questions?
Note: I have not used these techniques with Apache Ant or
phpUnderControl.
Thank you!
 drush
   http://drupal.org/project/drush

 drush_make
   http://drupal.org/project/drush_make

 Drupal Deployment Skeleton (DDS)              jpeck@fluxsauce.com
   http://goo.gl/09JkE (gitHub)                            @FluxSauce
                                                 http://fluxsauce.com
 drush make Generator
   http://drushmake.me

 permissions_api
   http://drupal.org/project/permissions_api

 Traditional Development... Practice for Software
  Development
   http://dltj.org/article/software-development-practice

Más contenido relacionado

Más de Jon Peck

Drupal Site Audit - SFDUG
Drupal Site Audit - SFDUGDrupal Site Audit - SFDUG
Drupal Site Audit - SFDUGJon Peck
 
Terminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interfaceTerminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interfaceJon Peck
 
SANDcamp 2014 - A Perfect Launch, Every Time
SANDcamp 2014 - A Perfect Launch, Every TimeSANDcamp 2014 - A Perfect Launch, Every Time
SANDcamp 2014 - A Perfect Launch, Every TimeJon Peck
 
Pantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction WebinarPantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction WebinarJon Peck
 
Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013Jon Peck
 
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)Jon Peck
 

Más de Jon Peck (6)

Drupal Site Audit - SFDUG
Drupal Site Audit - SFDUGDrupal Site Audit - SFDUG
Drupal Site Audit - SFDUG
 
Terminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interfaceTerminus, the Pantheon command-line interface
Terminus, the Pantheon command-line interface
 
SANDcamp 2014 - A Perfect Launch, Every Time
SANDcamp 2014 - A Perfect Launch, Every TimeSANDcamp 2014 - A Perfect Launch, Every Time
SANDcamp 2014 - A Perfect Launch, Every Time
 
Pantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction WebinarPantheon Launch Check Introduction Webinar
Pantheon Launch Check Introduction Webinar
 
Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013Drush for humans - SANDcamp 2013
Drush for humans - SANDcamp 2013
 
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
Optimize Site Deployments with Drush (DrupalCamp WNY 2011)
 

Último

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Último (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

Optimize Site Deployments with Drush v2 (DrupalCamp Toronto 2011)

  • 1. Optimize Site Deployments with Drush Saturday, 2011.11.12 – Drupal Camp Toronto 2011 Jon Peck, Owner, FluxSauce.com Audience: Intermediate Revision 2.
  • 2. Who am I?  Jon Peck  Founded web application development firm FluxSauce  Zend Certified PHP Engineer  Web development since 1998  Used Drupal for the last three years
  • 3. Overview  Why should you script site deployments?  What are drush and drush make, and how can you use them?  What are features, and does it fit your needs?  What are some recommended site deployment strategies?  How can you develop your own strategy?
  • 4. Why script site deployments?  Reliability  Track changes over time (including blame)  Support multiple tiers  Manage and optimize your operations "Aaahhh!!!", CC BY 2.0 by Evil Erin @ flickr
  • 5. What is drush? drush is a command line shell and scripting interface for Drupal.
  • 6. What can you use drush for?  Manage modules  Manipulate and extract site variables  Manage users  Execute MySQL queries using  Execute Drupal commands Drupal config
  • 7. What is drush make? A standard recipe for downloading everything you need for a site installation.
  • 8. Three steps for deployment  Get the files (drush make) drush -y make --no-patch-txt "PATH/drush.make" FOLDER  2. Install and configure (drush) cd FOLDER drush -y site-install --config="PATH/drushrc.ENV.php”  3. Enable modules (drush) drush -y en admin_menu ctools ...
  • 9. Scripting site deployments  Drupal Deployment Skeleton (MIT license)  http://goo.gl/09JkE (gitHub)  /projects/NAME/config - stored in repository  drush.*.php  drush.make  config.ini  install.sh  setup.sh  rebuild.sh
  • 10. What is the features module?
  • 11. What can you use features for?  Within your site (GUI)  Leveraging drush (command line)
  • 12. What are features’ limitations?  Imperfect exports  No site variables without third-party modules  No theme, block support  No control logic  If you can't do it in the GUI... "40+296 Hello?", CC BY 2.0 by Bark @ flickr
  • 13. Custom modules for granular control With hook_install(), you can programmatically…  Create users, roles, permissions  Create and hide blocks  Create content (nodes)  Import content types / CCK  Create vocabularies and terms (fields)  Set site variables (drush vget)  Import views
  • 14. Custom module “gotchas”  Custom modules used like this need a user associated drush -u 1 -y en custom_module  Clear all caches after installing your custom module drush cc all  Changes and updates need to go in hook_update_N within your module
  • 15. Deployment strategies  Store everything in a versioning system  Always backup both your scripts and database first!  Tiered development strategy  Unique database credentials for each tier  When in doubt, rebuild on dev first  Instead of repeating steps, do it in code  Document the process
  • 16. How can I do this?  Get drush  Get drush_make  Define your needs.  Build and document your module toolbox  Start small, then scale up
  • 17. "Question mark in Esbjerg", CC BY-SA 2.0 by Alexander Drachmann @ flickr Questions? Note: I have not used these techniques with Apache Ant or phpUnderControl.
  • 18. Thank you!  drush  http://drupal.org/project/drush  drush_make  http://drupal.org/project/drush_make  Drupal Deployment Skeleton (DDS) jpeck@fluxsauce.com  http://goo.gl/09JkE (gitHub) @FluxSauce http://fluxsauce.com  drush make Generator  http://drushmake.me  permissions_api  http://drupal.org/project/permissions_api  Traditional Development... Practice for Software Development  http://dltj.org/article/software-development-practice

Notas del editor

  1. PHP 4 & 5Senior software engineer, development manager and systems administratorStarted using Drupal for sites on the side
  2. This presentation is a result of working on multiple sites and trying to reign in both the entropy associated with deployments and out of frustration from having to keep reconfiguring details.The script examples I will be showing use bash, but you can probably do something very similar with Windows if you were so inclined.There are three primary modules that I will highlight today; drush, drush make, and features.The features module is an extremely powerful tool, but it is in no means the final solution.  I'll explore both the good and the bad of features.There's many ways to deploy sites; I'll discuss the way I currently do it based on my experience, both working with a in-house, distributed and one-person team. No size fits all, some sizes fit most, and every client is unique.  With that said, I hope that these strategies can be incorporated into your deployments and make your life easier.
  3. When you deploy a site, are you crossing your fingers?  Do you know exactly what's going to happen?  Did you remember every last variable, setting, configuration, module and theme?Leverage software versioning systems to store your configurations.How many people here already use a system like SVN or git?Separate configurations for development, staging and productionYou can track how long it takes to do things, document why something was done, and constantly improve the process
  4. Drush is a back end tool - a command line shell and scripting interface for Drupal.Easy, fast interface for administrative tasks Originally designed for Drupal 4, it has been maintained and expanded to support Drupal 5, 6 and 7Many modules include support for DrushThis is an example of the status command
  5. Download, enable, disable modulesCreate, block or cancel users, set passwords, add or remove rolesClear cache, flush images, index search items, update database…Very useful for building custom modules that configure your siteExcellent for debuggingNotice how it also automatically downloaded the dependency, FirePHP
  6. drush make is an extension that uses a parsed configuration to create a ready-to-use drupal site, downloading from sources as neededCore and contrib from Drupal.orgChecking out code from CVS, SVN, git, and bzr reposGet archives for librariesDoes not require databaseIt can play nice with installation profiles, but I have not had a need to develop my own using this strategy.It is compatible with Acquia Drupal and Pressflow.Using drush, you can export a drush make configuration from your existing site.  drush generate-makefileThe website, drushmake.me is a graphical user interface that generates drush make files
  7. Get the files using drush make.  It uses a configuration file; this is same for all environments.Install and configure.  You can specify a particular configuration specific to an environmentEnable modules using drush
  8. Much like many of you, I have to deal with a large number of sites on a regular basis.  With that comes the overhead of keeping track of configurations, variables, tweaks and the such.In response, I developed the Drupal Deployment Skeleton to facilitate the rapid deployment and development of commercial sites.  It's available as open-sourced through github so you can leverage it to allow you to create your own scriptable deployments. I filled the skeleton with numerous examples,You must customize these scripts to your environment to be able to use it; this is not a turnkey package.drush.*.php - Site configurations for drushdrush.make - drush make configurationconfig.ini - For each environment, defines where config is and where the site will goinstall.sh - Performs the actual installation, similar to simplest example setup.sh - Gets path, loads configuration, verifies configurationrebuild.sh - After prompt, destroys database and removes site, then reinstalls
  9. Features is a module that captures and manages a collection of Drupal entitiesIt includes both a graphical user interface and APIBundles exportable components into a single moduleVery Easy to use
  10. Within your site:Site contentContent typesUsersRolesModule dependenciesimagecache presetsMenusPermissionsUsing drush:List all available featuresUpdate code of existing feature to include DB changes - drushfuRevert to feature defaultsShow a diff
  11. Publishing preference, for example - told it not to publish on the front page, does it anywayYou have to keep going over the same changes time and time again.  Strongarm exposes some variables, but not all.Themes and blocks have to be manually changed and updated.It's a blunt force instrument, and therefore doesn't handle logic or precedence, like do not do X if Y existsIt's a great tool, but if you can't do it in the GUI, your hands are going to get dirty.Fortunately, there is another way.
  12. Beyond the site administrator - the first user, you often will have roles that you want to place your client's users in.For brochure websites in particular, I disable the login block.  Depending on the design needs of the client, I will also remove the "Powered by Drupal" block. While you want your client to maintain their own content, often you have static content, pages usually, that you want to populate the site with.Content Construction Kit is a great and easy way to create new content types; you can export them with the UI and import them programatically. Do you use taxonomies to categorize your content?  You can easily create vocabularies and terms out of the box.Leverage drush'svget, variable get command to keep track of before and after configuration changes with a quick diff Create WYSIWYG profiles - use them across multiple sites!Imagecache profilesRather than making you suffer through a bunch of dry examples, they are at the end of the presentation and you can download the slides at your leisure.Store your module in your favorite repository
  13. This is one I learned from hard experience - Some operations require a user to be associated, so enable your custom module separately, explicitly specifying UID 1.
  14. Even if you're a one man shop Backup - especially in production, before making any changes Tiered: Development - working environment for individual developers or small teams.  Can also include integration, where the entire team's work is combined and validated.Staging - identical to production as possible, simulating actual release.  Also good for demonstration and training.Production - Public facing deployment.Tiering - this can dovetail into a larger discussion of software versioning and branching  Make sure everything works the way you want it toYou ultimately want someone else to be able to do this for you
  15. The Drush manual is a bit overwhelming, but just search in the page and you'll get the hang of it.Drush make is also well documented; their examples are well worth looking at.What exactly are you trying to accomplish?  Are you putting a skeleton in place for your client to fill, or do you have all content already?Cluster it by purpose.Ex: I need imagecache, galleria, cck, file, image, and jquery_update for an image gallery.Get files, install and configure, enable modules
  16. ----- Meeting Notes (11/12/11 12:11) -----synchronizing contentproduction to