SlideShare a Scribd company logo
1 of 35
Contributing to Drupal Christopher Skene
Summary ,[object Object],[object Object],[object Object],[object Object],[object Object]
What is Drupal ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The best bits ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The worst bits ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Who contributes? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
@xtfer ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why contribute? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Also…  ,[object Object],[object Object],[object Object]
Challenges of contributing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ways to contribute http://drupal.org/contribute ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Developer contributions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Theming ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Glue Code ,[object Object],[object Object],[object Object],[object Object],[object Object]
Module patches ,[object Object],[object Object],[object Object]
Basic patch workflow ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tips ,[object Object],[object Object],[object Object],[object Object],[object Object]
Help a patch along… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Creating a patch ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
General rules for committing code ,[object Object],[object Object],[object Object],[object Object],[object Object]
Contributing modules and themes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Module stats ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Module developer tips ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Module maintainer tips ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Display Suite ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Control presentation of fields
Display Suite in Drupal 7 http://www.flickr.com/photos/williamcromar/5345283531
Display Suite in Drupal 6 http://www.flickr.com/photos/7891209@N04/2586286021/
Things I do as a maintainer ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Motivations for becoming a maintainer ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thanks! ,[object Object],[object Object],[object Object]
Want to know more? ,[object Object],[object Object],[object Object],[object Object]
Basic skills for Module Maintainers ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Guidelines for contributing code drupal.org/node/363367 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
git usage ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

Viewers also liked

Contribute to drupal
Contribute to drupalContribute to drupal
Contribute to drupal
AG Prime
 

Viewers also liked (7)

Contribute to drupal
Contribute to drupalContribute to drupal
Contribute to drupal
 
Multilingual Drupal
Multilingual DrupalMultilingual Drupal
Multilingual Drupal
 
All the language support in Drupal 8 - At Drupalaton 2014
All the language support in Drupal 8 - At Drupalaton 2014All the language support in Drupal 8 - At Drupalaton 2014
All the language support in Drupal 8 - At Drupalaton 2014
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 

Similar to Contributing to Drupal

Supporting a Drupal site over the Longterm
Supporting a Drupal site over the LongtermSupporting a Drupal site over the Longterm
Supporting a Drupal site over the Longterm
meghsweet
 

Similar to Contributing to Drupal (20)

The Drupal 7 Worst Practices Catalogue
The Drupal 7 Worst Practices CatalogueThe Drupal 7 Worst Practices Catalogue
The Drupal 7 Worst Practices Catalogue
 
Hacking core
Hacking coreHacking core
Hacking core
 
The potential in Drupal 8.x and how to realize it
The potential in Drupal 8.x and how to realize itThe potential in Drupal 8.x and how to realize it
The potential in Drupal 8.x and how to realize it
 
Intro to drupal
Intro to drupalIntro to drupal
Intro to drupal
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
 
Contrib First
Contrib FirstContrib First
Contrib First
 
Supporting a Drupal site over the Longterm
Supporting a Drupal site over the LongtermSupporting a Drupal site over the Longterm
Supporting a Drupal site over the Longterm
 
Drupal Experience Sharing at Prime College
Drupal Experience Sharing at Prime CollegeDrupal Experience Sharing at Prime College
Drupal Experience Sharing at Prime College
 
Drupal Experience Sharing At Prime College
Drupal Experience Sharing At Prime CollegeDrupal Experience Sharing At Prime College
Drupal Experience Sharing At Prime College
 
Drupal 7x Installation - Introduction to Drupal Concepts
Drupal 7x Installation - Introduction to Drupal ConceptsDrupal 7x Installation - Introduction to Drupal Concepts
Drupal 7x Installation - Introduction to Drupal Concepts
 
Drupal as a lean startup platform
Drupal as a lean startup platformDrupal as a lean startup platform
Drupal as a lean startup platform
 
Drupal 6x Installation
Drupal 6x Installation Drupal 6x Installation
Drupal 6x Installation
 
Dev ops days berlin damien caro
Dev ops days berlin   damien caroDev ops days berlin   damien caro
Dev ops days berlin damien caro
 
Building API's
Building API'sBuilding API's
Building API's
 
Single sourcing to the max
Single sourcing to the maxSingle sourcing to the max
Single sourcing to the max
 
A Quick Look at Drupal
A Quick Look at DrupalA Quick Look at Drupal
A Quick Look at Drupal
 
Portal Deployment Best Practices | IBM Portal Excellence Conference 2009
Portal Deployment Best Practices | IBM Portal Excellence Conference 2009Portal Deployment Best Practices | IBM Portal Excellence Conference 2009
Portal Deployment Best Practices | IBM Portal Excellence Conference 2009
 
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
 
Top tips from what we've learned from our 10 years experience
Top tips from what we've learned from our 10 years experienceTop tips from what we've learned from our 10 years experience
Top tips from what we've learned from our 10 years experience
 
Drupal - Introduction to Drupal Creating Modules
Drupal - Introduction to Drupal Creating ModulesDrupal - Introduction to Drupal Creating Modules
Drupal - Introduction to Drupal Creating Modules
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Contributing to Drupal

Editor's Notes

  1. - Try to reproduce the issue based on the provided information. If you can reproduce the bug, provide detailed steps and describe your configuration and other modules installed on the site where you reproduced it. - If you can't, ask for the steps to reproduce, installed modules and so on - If it's not a bug but just needs something configured differently or another module or ... explain that, switch the issue to "support request" and set it to "fixed". Even better, create a documentation page and point to it in the issue. - Reclassify the issue as necessary, maybe it's not a bug but a missing feature, or not critical but only a normal bug. (See http://drupal.org/node/156119 and http://drupal.org/node/45111 for information about what status/priority means what)
  2. - Set up a clean environment for the version of the code that is specified for the issue.  - If the issue comes with an existing patch, apply the patch now, so you can correct work that was previously done. Work on your fix Test (preferably using the SimpleTest framework) - Be sure that the file has been commented and formatted correctly before creating the patch. - Submit the patch to the appropriate issue and mark it "Needs review”
  3. Always use an existing solution where one exists Find a balance between sufficiently abstracted to cover multiple use cases, but not too complex as to be unmaintainable Build a proper internal API (you’ll thank yourself later) Use OO where possible, but wrap code in functional wrappers, especially factory functions Pay attention to what version of PHP the Drupal version is written for Learn the Form API and use it properly Learn how to use drupal_alter and work with hooks Use the database API Release before a major code change is committed to the repository, not just after Use the SimpleTest framework
  4. Not doing anything for two years then writing "I think I have this working" is not a good way to close a thread.
  5. I became lead 6.x maintainer in September 2011
  6. Shiny Well-architected Built with a purpose Completely rewritten for Drupal 7 Leverages Entities, Ctools and other Drupal 7 stuff Has only one module Has a very busy issue queue
  7. Built up over time A mix of styles Not all of it seems to work properly Probably looked completely different at some point Extended many times Difficult to maintain Completely different from the Drupal 7 version Built around disparate internal APIs, across 5 modules, supporting integration of roughly 10 other contributed modules Has a relatively quiet issue queue