SlideShare a Scribd company logo
Drupal,	
  git	
  and	
  sanity	
  
Charlie	
  Morris	
  
Penn	
  State	
  University	
  Libraries	
  
@cdmo	
  
	
  
Code4lib	
  2015	
  |	
  Portland,	
  Oregon	
  
our	
  scenario	
  
•  migraEng	
  into	
  Drupal	
  from	
  proprietary	
  system	
  
•  one	
  big	
  academic	
  library	
  site	
  
•  many	
  smaller	
  library	
  sites	
  and	
  sites	
  under	
  the	
  
auspices	
  of	
  the	
  libraries	
  
•  mulEple	
  developers	
  leading	
  and	
  collaboraEng	
  
on	
  projects	
  
•  lots	
  of	
  new	
  
	
  
core	
  +	
  
contrib	
  +	
  
custom	
  
hJp://farm9.staEcflickr.com/8471/8135313427_44c72f8d52_c.jpg	
  
some	
  potenEal	
  opEons	
  for	
  managing	
  
drupal	
  projects	
  
•  put	
  all	
  the	
  things	
  in	
  the	
  drupal	
  file	
  tree	
  in	
  a	
  
repo	
  
•  whole	
  file	
  tree	
  +	
  git	
  submodules	
  for	
  core	
  +	
  
contrib	
  code	
  
•  create	
  many	
  repos	
  for	
  the	
  many	
  custom	
  
modules	
  and	
  themes	
  in	
  your	
  drupal	
  file	
  tree	
  
– (and	
  figure	
  out	
  how	
  to	
  handle	
  
seWngs.php,	
  .htaccess	
  and	
  /sites/all/libraries	
  
modificaEons)	
  
	
  
sEll	
  the	
  problem	
  of	
  updaEng	
  the	
  
database	
  aYer	
  updaEng	
  core	
  and	
  
contrib	
  
how	
  we	
  are	
  doing	
  it	
  
•  just	
  managing	
  all	
  of	
  our	
  own	
  code	
  in	
  one	
  repo	
  
(modules,	
  theme,	
  .htaccess	
  mods,	
  libraries…)	
  
•  aggressive	
  giEgnore	
  for	
  stuff	
  drush	
  can	
  take	
  
care	
  of	
  
•  use	
  features	
  and	
  strongarm	
  modules	
  for	
  
storing	
  as	
  much	
  db	
  config	
  in	
  code	
  as	
  possible	
  
•  drush	
  sql-­‐sync	
  to	
  keep	
  dev	
  environments	
  in	
  
sync	
  with	
  live	
  dbs	
  
a	
  “base	
  build”	
  or	
  “the	
  upstream”	
  
•  created	
  a	
  base	
  build	
  that	
  contains	
  the	
  
common	
  theme,	
  module,	
  and	
  other	
  custom	
  
code	
  that	
  drush	
  wouldn’t	
  be	
  used	
  to	
  manage	
  
the	
  basic	
  idea	
  
1.  clone	
  the	
  base	
  build	
  and	
  install	
  via	
  bash	
  
script	
  
2.  new	
  project	
  gets	
  2	
  remotes:	
  origin	
  and	
  
upstream
3.  projects	
  are	
  developed	
  on	
  origin
4.  periodic	
  fetching	
  and	
  merging	
  of	
  upstream	
  
(devs	
  noEfied	
  when	
  changes	
  occur	
  via	
  Slack)	
  
5.  drush	
  adds/manages/updates	
  core,	
  contrib	
  
git fetch upstream
git merge upstream/master
(resolve	
  conflicts	
  as	
  needed)	
  
link	
  
end	
  result	
  (hopefully)	
  
•  staying	
  in	
  sync	
  
•  least	
  pain	
  possible	
  for	
  updaEng/maintaining	
  
•  less	
  Eme	
  on	
  DevOps	
  
•  more	
  Eme	
  learning	
  all	
  the	
  other	
  new	
  things	
  
•  more	
  Eme	
  building	
  beJer	
  user	
  experiences	
  
	
  
thanks!	
  
	
  
base	
  build	
  upstream	
  repo	
  at	
  	
  
hJps://github.com/cdmo/psu-­‐libraries-­‐drupal	
  	
  
	
  
quesEons/feedback?	
  
	
  
Charlie	
  Morris	
  
Penn	
  State	
  Libraries	
  
@cdmo	
  

More Related Content

What's hot

Make JavaScript Lean, Mean, and Clean
Make JavaScript Lean, Mean, and CleanMake JavaScript Lean, Mean, and Clean
Make JavaScript Lean, Mean, and Clean
Blue Raster
 
Composer JSON kills make files
Composer JSON kills make filesComposer JSON kills make files
Composer JSON kills make files
ropsu
 
Untangling spring week12
Untangling spring week12Untangling spring week12
Untangling spring week12
Derek Jacoby
 
Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8
Angela Byron
 
Gajendra sharma Drupal Module development
Gajendra sharma Drupal Module developmentGajendra sharma Drupal Module development
Gajendra sharma Drupal Module development
Gajendra Sharma
 
Speed up Drupal development with Drush
Speed up Drupal development with DrushSpeed up Drupal development with Drush
Speed up Drupal development with Drush
kbasarab
 
Composer Tools & Frameworks for Drupal
Composer Tools & Frameworks for DrupalComposer Tools & Frameworks for Drupal
Composer Tools & Frameworks for Drupal
Pantheon
 
Drupal meets PostgreSQL for DrupalCamp MSK 2014
Drupal meets PostgreSQL for DrupalCamp MSK 2014Drupal meets PostgreSQL for DrupalCamp MSK 2014
Drupal meets PostgreSQL for DrupalCamp MSK 2014
Kate Marshalkina
 
Untangling fall2017 week2
Untangling fall2017 week2Untangling fall2017 week2
Untangling fall2017 week2
Derek Jacoby
 
Managing Distributed Systems with Chef
Managing Distributed Systems with ChefManaging Distributed Systems with Chef
Managing Distributed Systems with Chef
Mandi Walls
 
Drupal Overview For Techies
Drupal Overview For TechiesDrupal Overview For Techies
Drupal Overview For Techies
Robert Carr
 
One drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp CaceresOne drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp Caceres
hernanibf
 
Hadoop in a Windows Shop - CHUG - 20120416
Hadoop in a Windows Shop - CHUG - 20120416Hadoop in a Windows Shop - CHUG - 20120416
Hadoop in a Windows Shop - CHUG - 20120416
Chicago Hadoop Users Group
 
Evolution of Drupal and the Drupal community
Evolution of Drupal and the Drupal communityEvolution of Drupal and the Drupal community
Evolution of Drupal and the Drupal community
Angela Byron
 
Drupal in 5
Drupal in 5Drupal in 5
Drupal in 5
Robert Carr
 
How a Content Delivery Network Can Help Speed Up Your Website
How a Content Delivery Network Can Help Speed Up Your WebsiteHow a Content Delivery Network Can Help Speed Up Your Website
How a Content Delivery Network Can Help Speed Up Your Website
Mediacurrent
 
CentOS Stream at Facebook
CentOS Stream at FacebookCentOS Stream at Facebook
CentOS Stream at Facebook
Davide Cavalca
 
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
DrupalDay
 
Evolution of deploy.sh
Evolution of deploy.shEvolution of deploy.sh
Evolution of deploy.sh
Leonid Mamchenkov
 

What's hot (19)

Make JavaScript Lean, Mean, and Clean
Make JavaScript Lean, Mean, and CleanMake JavaScript Lean, Mean, and Clean
Make JavaScript Lean, Mean, and Clean
 
Composer JSON kills make files
Composer JSON kills make filesComposer JSON kills make files
Composer JSON kills make files
 
Untangling spring week12
Untangling spring week12Untangling spring week12
Untangling spring week12
 
Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8
 
Gajendra sharma Drupal Module development
Gajendra sharma Drupal Module developmentGajendra sharma Drupal Module development
Gajendra sharma Drupal Module development
 
Speed up Drupal development with Drush
Speed up Drupal development with DrushSpeed up Drupal development with Drush
Speed up Drupal development with Drush
 
Composer Tools & Frameworks for Drupal
Composer Tools & Frameworks for DrupalComposer Tools & Frameworks for Drupal
Composer Tools & Frameworks for Drupal
 
Drupal meets PostgreSQL for DrupalCamp MSK 2014
Drupal meets PostgreSQL for DrupalCamp MSK 2014Drupal meets PostgreSQL for DrupalCamp MSK 2014
Drupal meets PostgreSQL for DrupalCamp MSK 2014
 
Untangling fall2017 week2
Untangling fall2017 week2Untangling fall2017 week2
Untangling fall2017 week2
 
Managing Distributed Systems with Chef
Managing Distributed Systems with ChefManaging Distributed Systems with Chef
Managing Distributed Systems with Chef
 
Drupal Overview For Techies
Drupal Overview For TechiesDrupal Overview For Techies
Drupal Overview For Techies
 
One drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp CaceresOne drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp Caceres
 
Hadoop in a Windows Shop - CHUG - 20120416
Hadoop in a Windows Shop - CHUG - 20120416Hadoop in a Windows Shop - CHUG - 20120416
Hadoop in a Windows Shop - CHUG - 20120416
 
Evolution of Drupal and the Drupal community
Evolution of Drupal and the Drupal communityEvolution of Drupal and the Drupal community
Evolution of Drupal and the Drupal community
 
Drupal in 5
Drupal in 5Drupal in 5
Drupal in 5
 
How a Content Delivery Network Can Help Speed Up Your Website
How a Content Delivery Network Can Help Speed Up Your WebsiteHow a Content Delivery Network Can Help Speed Up Your Website
How a Content Delivery Network Can Help Speed Up Your Website
 
CentOS Stream at Facebook
CentOS Stream at FacebookCentOS Stream at Facebook
CentOS Stream at Facebook
 
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
 
Evolution of deploy.sh
Evolution of deploy.shEvolution of deploy.sh
Evolution of deploy.sh
 

Similar to Drupal, git and sanity

Drupal upgrades and migrations. BAD Camp 2013 version
Drupal upgrades and migrations. BAD Camp 2013 versionDrupal upgrades and migrations. BAD Camp 2013 version
Drupal upgrades and migrations. BAD Camp 2013 version
David Lanier
 
Drupal: an Overview
Drupal: an OverviewDrupal: an Overview
Drupal: an Overview
Matt Weaver
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
IT Event
 
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
Gaetano Giunta
 
Asbury Hadoop Overview
Asbury Hadoop OverviewAsbury Hadoop Overview
Asbury Hadoop Overview
Brian Enochson
 
Depolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and CapistranoDepolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and Capistrano
libsys
 
Lessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker ContainersLessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker Containers
BlueData, Inc.
 
Upgrading to Drupal 7
Upgrading to Drupal 7Upgrading to Drupal 7
Upgrading to Drupal 7
DesignHammer
 
One Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp LondonOne Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp London
hernanibf
 
Phase2 - Large Drupal Multisites (GTA Case Study)
Phase2 - Large Drupal Multisites (GTA Case Study)Phase2 - Large Drupal Multisites (GTA Case Study)
Phase2 - Large Drupal Multisites (GTA Case Study)
Robert Bates
 
Pure Speed Drupal 4 Gov talk
Pure Speed Drupal 4 Gov talkPure Speed Drupal 4 Gov talk
Pure Speed Drupal 4 Gov talk
Bryan Ollendyke
 
Holy PowerShell, BATman! - dogfood edition
Holy PowerShell, BATman! - dogfood editionHoly PowerShell, BATman! - dogfood edition
Holy PowerShell, BATman! - dogfood edition
Dave Diehl
 
Managing changes to eZPublish Database
Managing changes to eZPublish DatabaseManaging changes to eZPublish Database
Managing changes to eZPublish Database
Gaetano Giunta
 
Managing Changes to the Database Across the Project Life Cycle (presented by ...
Managing Changes to the Database Across the Project Life Cycle (presented by ...Managing Changes to the Database Across the Project Life Cycle (presented by ...
Managing Changes to the Database Across the Project Life Cycle (presented by ...
eZ Systems
 
Organizing Your PHP Projects (2010 ConFoo)
Organizing Your PHP Projects (2010 ConFoo)Organizing Your PHP Projects (2010 ConFoo)
Organizing Your PHP Projects (2010 ConFoo)
Paul Jones
 
Building Applications using Apache Hadoop
Building Applications using Apache HadoopBuilding Applications using Apache Hadoop
Building Applications using Apache Hadoop
C4Media
 
Produce and consume_linked_data_with_drupal
Produce and consume_linked_data_with_drupalProduce and consume_linked_data_with_drupal
Produce and consume_linked_data_with_drupal
STIinnsbruck
 
Organinzing Your PHP Projects (2010 Memphis PHP)
Organinzing Your PHP Projects (2010 Memphis PHP)Organinzing Your PHP Projects (2010 Memphis PHP)
Organinzing Your PHP Projects (2010 Memphis PHP)
Paul Jones
 
List of Engineering Colleges in Uttarakhand
List of Engineering Colleges in UttarakhandList of Engineering Colleges in Uttarakhand
List of Engineering Colleges in Uttarakhand
Roorkee College of Engineering, Roorkee
 
Hadoop.pptx
Hadoop.pptxHadoop.pptx
Hadoop.pptx
arslanhaneef
 

Similar to Drupal, git and sanity (20)

Drupal upgrades and migrations. BAD Camp 2013 version
Drupal upgrades and migrations. BAD Camp 2013 versionDrupal upgrades and migrations. BAD Camp 2013 version
Drupal upgrades and migrations. BAD Camp 2013 version
 
Drupal: an Overview
Drupal: an OverviewDrupal: an Overview
Drupal: an Overview
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
 
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
 
Asbury Hadoop Overview
Asbury Hadoop OverviewAsbury Hadoop Overview
Asbury Hadoop Overview
 
Depolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and CapistranoDepolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and Capistrano
 
Lessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker ContainersLessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker Containers
 
Upgrading to Drupal 7
Upgrading to Drupal 7Upgrading to Drupal 7
Upgrading to Drupal 7
 
One Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp LondonOne Drupal to rule them all - Drupalcamp London
One Drupal to rule them all - Drupalcamp London
 
Phase2 - Large Drupal Multisites (GTA Case Study)
Phase2 - Large Drupal Multisites (GTA Case Study)Phase2 - Large Drupal Multisites (GTA Case Study)
Phase2 - Large Drupal Multisites (GTA Case Study)
 
Pure Speed Drupal 4 Gov talk
Pure Speed Drupal 4 Gov talkPure Speed Drupal 4 Gov talk
Pure Speed Drupal 4 Gov talk
 
Holy PowerShell, BATman! - dogfood edition
Holy PowerShell, BATman! - dogfood editionHoly PowerShell, BATman! - dogfood edition
Holy PowerShell, BATman! - dogfood edition
 
Managing changes to eZPublish Database
Managing changes to eZPublish DatabaseManaging changes to eZPublish Database
Managing changes to eZPublish Database
 
Managing Changes to the Database Across the Project Life Cycle (presented by ...
Managing Changes to the Database Across the Project Life Cycle (presented by ...Managing Changes to the Database Across the Project Life Cycle (presented by ...
Managing Changes to the Database Across the Project Life Cycle (presented by ...
 
Organizing Your PHP Projects (2010 ConFoo)
Organizing Your PHP Projects (2010 ConFoo)Organizing Your PHP Projects (2010 ConFoo)
Organizing Your PHP Projects (2010 ConFoo)
 
Building Applications using Apache Hadoop
Building Applications using Apache HadoopBuilding Applications using Apache Hadoop
Building Applications using Apache Hadoop
 
Produce and consume_linked_data_with_drupal
Produce and consume_linked_data_with_drupalProduce and consume_linked_data_with_drupal
Produce and consume_linked_data_with_drupal
 
Organinzing Your PHP Projects (2010 Memphis PHP)
Organinzing Your PHP Projects (2010 Memphis PHP)Organinzing Your PHP Projects (2010 Memphis PHP)
Organinzing Your PHP Projects (2010 Memphis PHP)
 
List of Engineering Colleges in Uttarakhand
List of Engineering Colleges in UttarakhandList of Engineering Colleges in Uttarakhand
List of Engineering Colleges in Uttarakhand
 
Hadoop.pptx
Hadoop.pptxHadoop.pptx
Hadoop.pptx
 

More from Charlie Morris

Axe-matchers gem for automated accessibility testing
Axe-matchers gem for automated accessibility testing Axe-matchers gem for automated accessibility testing
Axe-matchers gem for automated accessibility testing
Charlie Morris
 
Dynamic sitemaps
Dynamic sitemapsDynamic sitemaps
Dynamic sitemaps
Charlie Morris
 
Content & Features Reno: Less Is More
Content & Features Reno: Less Is MoreContent & Features Reno: Less Is More
Content & Features Reno: Less Is More
Charlie Morris
 
Less is more: Getting Real About Content and Features
Less is more: Getting Real About Content and Features Less is more: Getting Real About Content and Features
Less is more: Getting Real About Content and Features
Charlie Morris
 
With Drupal Your Website is an API
With Drupal Your Website is an APIWith Drupal Your Website is an API
With Drupal Your Website is an API
Charlie Morris
 
Responsive Approaches: Redesigning websites for Duke, NCSU & UNC Libraries
Responsive Approaches: Redesigning websites for Duke, NCSU & UNC LibrariesResponsive Approaches: Redesigning websites for Duke, NCSU & UNC Libraries
Responsive Approaches: Redesigning websites for Duke, NCSU & UNC Libraries
Charlie Morris
 
Boiling a Frog: A Responsive Update
Boiling a Frog: A Responsive UpdateBoiling a Frog: A Responsive Update
Boiling a Frog: A Responsive Update
Charlie Morris
 
Viral Outreach: Blending Online and Offline Social Networks
Viral Outreach: Blending Online and Offline Social NetworksViral Outreach: Blending Online and Offline Social Networks
Viral Outreach: Blending Online and Offline Social Networks
Charlie Morris
 
Creating the Hunt Partners App: Cross-Departmental Rapid Response
Creating the Hunt Partners App: Cross-Departmental Rapid ResponseCreating the Hunt Partners App: Cross-Departmental Rapid Response
Creating the Hunt Partners App: Cross-Departmental Rapid Response
Charlie Morris
 
Google Analytics Basics for NCSU Libraries' Staff
Google Analytics Basics for NCSU Libraries' StaffGoogle Analytics Basics for NCSU Libraries' Staff
Google Analytics Basics for NCSU Libraries' Staff
Charlie Morris
 
Exposing Tech Lending Device Availability Data
Exposing Tech Lending Device Availability DataExposing Tech Lending Device Availability Data
Exposing Tech Lending Device Availability Data
Charlie Morris
 
5 Ways to Make Use of Your Google Analytics
5 Ways to Make Use of Your Google Analytics5 Ways to Make Use of Your Google Analytics
5 Ways to Make Use of Your Google Analytics
Charlie Morris
 

More from Charlie Morris (12)

Axe-matchers gem for automated accessibility testing
Axe-matchers gem for automated accessibility testing Axe-matchers gem for automated accessibility testing
Axe-matchers gem for automated accessibility testing
 
Dynamic sitemaps
Dynamic sitemapsDynamic sitemaps
Dynamic sitemaps
 
Content & Features Reno: Less Is More
Content & Features Reno: Less Is MoreContent & Features Reno: Less Is More
Content & Features Reno: Less Is More
 
Less is more: Getting Real About Content and Features
Less is more: Getting Real About Content and Features Less is more: Getting Real About Content and Features
Less is more: Getting Real About Content and Features
 
With Drupal Your Website is an API
With Drupal Your Website is an APIWith Drupal Your Website is an API
With Drupal Your Website is an API
 
Responsive Approaches: Redesigning websites for Duke, NCSU & UNC Libraries
Responsive Approaches: Redesigning websites for Duke, NCSU & UNC LibrariesResponsive Approaches: Redesigning websites for Duke, NCSU & UNC Libraries
Responsive Approaches: Redesigning websites for Duke, NCSU & UNC Libraries
 
Boiling a Frog: A Responsive Update
Boiling a Frog: A Responsive UpdateBoiling a Frog: A Responsive Update
Boiling a Frog: A Responsive Update
 
Viral Outreach: Blending Online and Offline Social Networks
Viral Outreach: Blending Online and Offline Social NetworksViral Outreach: Blending Online and Offline Social Networks
Viral Outreach: Blending Online and Offline Social Networks
 
Creating the Hunt Partners App: Cross-Departmental Rapid Response
Creating the Hunt Partners App: Cross-Departmental Rapid ResponseCreating the Hunt Partners App: Cross-Departmental Rapid Response
Creating the Hunt Partners App: Cross-Departmental Rapid Response
 
Google Analytics Basics for NCSU Libraries' Staff
Google Analytics Basics for NCSU Libraries' StaffGoogle Analytics Basics for NCSU Libraries' Staff
Google Analytics Basics for NCSU Libraries' Staff
 
Exposing Tech Lending Device Availability Data
Exposing Tech Lending Device Availability DataExposing Tech Lending Device Availability Data
Exposing Tech Lending Device Availability Data
 
5 Ways to Make Use of Your Google Analytics
5 Ways to Make Use of Your Google Analytics5 Ways to Make Use of Your Google Analytics
5 Ways to Make Use of Your Google Analytics
 

Recently uploaded

Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 

Recently uploaded (20)

Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 

Drupal, git and sanity

  • 1. Drupal,  git  and  sanity   Charlie  Morris   Penn  State  University  Libraries   @cdmo     Code4lib  2015  |  Portland,  Oregon  
  • 2. our  scenario   •  migraEng  into  Drupal  from  proprietary  system   •  one  big  academic  library  site   •  many  smaller  library  sites  and  sites  under  the   auspices  of  the  libraries   •  mulEple  developers  leading  and  collaboraEng   on  projects   •  lots  of  new    
  • 3.
  • 4. core  +   contrib  +   custom   hJp://farm9.staEcflickr.com/8471/8135313427_44c72f8d52_c.jpg  
  • 5. some  potenEal  opEons  for  managing   drupal  projects   •  put  all  the  things  in  the  drupal  file  tree  in  a   repo   •  whole  file  tree  +  git  submodules  for  core  +   contrib  code   •  create  many  repos  for  the  many  custom   modules  and  themes  in  your  drupal  file  tree   – (and  figure  out  how  to  handle   seWngs.php,  .htaccess  and  /sites/all/libraries   modificaEons)    
  • 6. sEll  the  problem  of  updaEng  the   database  aYer  updaEng  core  and   contrib  
  • 7. how  we  are  doing  it   •  just  managing  all  of  our  own  code  in  one  repo   (modules,  theme,  .htaccess  mods,  libraries…)   •  aggressive  giEgnore  for  stuff  drush  can  take   care  of   •  use  features  and  strongarm  modules  for   storing  as  much  db  config  in  code  as  possible   •  drush  sql-­‐sync  to  keep  dev  environments  in   sync  with  live  dbs  
  • 8. a  “base  build”  or  “the  upstream”   •  created  a  base  build  that  contains  the   common  theme,  module,  and  other  custom   code  that  drush  wouldn’t  be  used  to  manage  
  • 9. the  basic  idea   1.  clone  the  base  build  and  install  via  bash   script   2.  new  project  gets  2  remotes:  origin  and   upstream 3.  projects  are  developed  on  origin 4.  periodic  fetching  and  merging  of  upstream   (devs  noEfied  when  changes  occur  via  Slack)   5.  drush  adds/manages/updates  core,  contrib  
  • 10. git fetch upstream git merge upstream/master (resolve  conflicts  as  needed)  
  • 12. end  result  (hopefully)   •  staying  in  sync   •  least  pain  possible  for  updaEng/maintaining   •  less  Eme  on  DevOps   •  more  Eme  learning  all  the  other  new  things   •  more  Eme  building  beJer  user  experiences    
  • 13. thanks!     base  build  upstream  repo  at     hJps://github.com/cdmo/psu-­‐libraries-­‐drupal       quesEons/feedback?     Charlie  Morris   Penn  State  Libraries   @cdmo