SlideShare una empresa de Scribd logo
1 de 40
How can I contribute to
  WordPress core?

    By Dave Martin - @lessbloat
I’m a new contributor.
Contributor Handbook

make.wordpress.org/core/handbook/
Lots of ways to help
•Support         •Translations
•Documentation   •Speaking
•Testing         •Run local classes
•Design          •Writing code
Front-end dev & Design
Outline
• Communication       • Intro to Trac
• Release cycles      • Intro to IRC
• Decisions           • Testing a patch
• I have an idea      • Creating a patch
• Run trunk locally
Communication

make.wordpress.org
Release cycles 101
• Planning
• Design/Dev - 2 mo.
• Beta’s - 1 mo.
• Release Candidates - 1 mo.
• Launch
Decisions
I’ve got an idea
Run trunk locally
Run trunk locally
 apachefriends.org (XAMPP)
Run trunk locally
  Start Apache and MySQL
Run trunk locally
/Applications/XAMPP/xamppfiles/htdocs
Run trunk locally
cd /Applications/XAMPP/htdocs/wordpress
Run trunk locally
svn co http://core.svn.wordpress.org/
trunk/
Run trunk locally
  localhost/phpmyadmin
Run trunk locally
   Edit your config
Run trunk locally
Add your database connection info
Run trunk locally
localhost/wordpress/trunk/
Intro to Trac
core.trac.wordpress.org
Intro to IRC
http://adium.im/
Intro to IRC
irc.freenode.net
Intro to IRC
#wordpress-dev
#wordpress-ui
Testing a patch
Testing a patch
Testing a patch
Testing a patch
   svn status
Testing a patch
patch -p0 -i 21997.3.diff
Testing a patch
localhost/wordpress/trunk/wp-admin
Creating a patch
     svn up
Creating a patch
   svn status
Creating a patch
    svn diff
Creating a patch
svn diff > 21997.4.diff
Creating a patch
Creating a patch
Creating a patch
Creating a patch
Questions?

Más contenido relacionado

La actualidad más candente

Vinted life embetterment
Vinted life embettermentVinted life embetterment
Vinted life embetterment
Agile Lietuva
 
Intro ipcberlin2012
Intro ipcberlin2012Intro ipcberlin2012
Intro ipcberlin2012
Pierre Joye
 
From Test to Live with Rex
From Test to Live with RexFrom Test to Live with Rex
From Test to Live with Rex
Jan Gehring
 

La actualidad más candente (20)

Building Open-Source React Components
Building Open-Source React ComponentsBuilding Open-Source React Components
Building Open-Source React Components
 
Building Open-source React Components
Building Open-source React ComponentsBuilding Open-source React Components
Building Open-source React Components
 
API All the Things!
API All the Things!API All the Things!
API All the Things!
 
Vinted life embetterment
Vinted life embettermentVinted life embetterment
Vinted life embetterment
 
Intro ipcberlin2012
Intro ipcberlin2012Intro ipcberlin2012
Intro ipcberlin2012
 
Puppet Camp Atlanta 2014: DEV Toolsets for Ops (Beginner) -
Puppet Camp Atlanta 2014: DEV Toolsets for Ops (Beginner) - Puppet Camp Atlanta 2014: DEV Toolsets for Ops (Beginner) -
Puppet Camp Atlanta 2014: DEV Toolsets for Ops (Beginner) -
 
AMIMOTO WordPress + Amazon Web Services for ALL Tech Levels
AMIMOTO WordPress + Amazon Web Services for ALL Tech Levels AMIMOTO WordPress + Amazon Web Services for ALL Tech Levels
AMIMOTO WordPress + Amazon Web Services for ALL Tech Levels
 
From Test to Live with Rex
From Test to Live with RexFrom Test to Live with Rex
From Test to Live with Rex
 
Enterprise PHP
Enterprise PHPEnterprise PHP
Enterprise PHP
 
Working Well Together: How to Keep High-end Game Development Teams Productive
Working Well Together: How to Keep High-end Game Development Teams ProductiveWorking Well Together: How to Keep High-end Game Development Teams Productive
Working Well Together: How to Keep High-end Game Development Teams Productive
 
When Tools Attack
When Tools AttackWhen Tools Attack
When Tools Attack
 
Git+jenkins+rex presentation
Git+jenkins+rex presentationGit+jenkins+rex presentation
Git+jenkins+rex presentation
 
Oscp preparation
Oscp preparationOscp preparation
Oscp preparation
 
Docker for everything
Docker for everythingDocker for everything
Docker for everything
 
Package anything with fpm cookery
Package anything with fpm cookeryPackage anything with fpm cookery
Package anything with fpm cookery
 
Securing the Container Pipeline
Securing the Container PipelineSecuring the Container Pipeline
Securing the Container Pipeline
 
Perl-Critic
Perl-CriticPerl-Critic
Perl-Critic
 
Resumable File Upload API using GridFS and TUS
Resumable File Upload API using GridFS and TUSResumable File Upload API using GridFS and TUS
Resumable File Upload API using GridFS and TUS
 
tus.io – Resumable file uploads for web and mobile apps by Felix Geisendörfer
tus.io – Resumable file uploads for web and mobile apps by Felix Geisendörfertus.io – Resumable file uploads for web and mobile apps by Felix Geisendörfer
tus.io – Resumable file uploads for web and mobile apps by Felix Geisendörfer
 
Tus.io presentation for iOS devscout meetup
Tus.io presentation for  iOS devscout meetupTus.io presentation for  iOS devscout meetup
Tus.io presentation for iOS devscout meetup
 

Destacado (6)

WordPress Intermediate Workshop
WordPress Intermediate WorkshopWordPress Intermediate Workshop
WordPress Intermediate Workshop
 
eCairn - Webinar 11-18-09
eCairn - Webinar 11-18-09eCairn - Webinar 11-18-09
eCairn - Webinar 11-18-09
 
Evolution of microprocessor
Evolution of microprocessorEvolution of microprocessor
Evolution of microprocessor
 
Kesalahan grammar yang membuat kita kelihatan bodoh
Kesalahan grammar yang membuat kita kelihatan bodohKesalahan grammar yang membuat kita kelihatan bodoh
Kesalahan grammar yang membuat kita kelihatan bodoh
 
How To Build A Blog - Step-By-Step Guide
How To Build A Blog - Step-By-Step GuideHow To Build A Blog - Step-By-Step Guide
How To Build A Blog - Step-By-Step Guide
 
Final
FinalFinal
Final
 

Similar a Contributing to WordPress core - a primer

Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Radhika Puthiyetath
 

Similar a Contributing to WordPress core - a primer (20)

SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
 
WordPress Development Environments
WordPress Development Environments WordPress Development Environments
WordPress Development Environments
 
WordPress Development Environments
WordPress Development EnvironmentsWordPress Development Environments
WordPress Development Environments
 
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 -  Rock Solid Deployment of Symfony AppsSymfony Live NYC 2014 -  Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer Toolbox
 
The Future of WordPress (WordCamp Montréal)
The Future of WordPress (WordCamp Montréal)The Future of WordPress (WordCamp Montréal)
The Future of WordPress (WordCamp Montréal)
 
ConFoo 2016: Development to Deployment
ConFoo 2016: Development to DeploymentConFoo 2016: Development to Deployment
ConFoo 2016: Development to Deployment
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day
 
Introduction to Contribution
Introduction to ContributionIntroduction to Contribution
Introduction to Contribution
 
Intro to WordPress Plugins
Intro to WordPress PluginsIntro to WordPress Plugins
Intro to WordPress Plugins
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
Hacking on WildFly 9
Hacking on WildFly 9Hacking on WildFly 9
Hacking on WildFly 9
 
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web Applications
 
Why puppet? Why now?
Why puppet? Why now?Why puppet? Why now?
Why puppet? Why now?
 
DCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityDCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production Parity
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Liz Quilty – Security, Scaling & High End Hosting for WordPress sites
Liz Quilty – Security, Scaling & High End Hosting for WordPress sitesLiz Quilty – Security, Scaling & High End Hosting for WordPress sites
Liz Quilty – Security, Scaling & High End Hosting for WordPress sites
 
Webinar Docker Tri Series
Webinar Docker Tri SeriesWebinar Docker Tri Series
Webinar Docker Tri Series
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Contributing to WordPress core - a primer

Notas del editor

  1. \n
  2. - Good opportunity to talk about this, since it's fresh in my mind.\n- Name is Dave Martin\n- I work for Automattic on the dot org team\n- I started working on core at the beginning of the 3.5 release.\n- Automattic, which runs wp.com is a private company\n- They donate my time to work full time on core\n
  3. - Check out the contributor handbook at this address\n- It covers a lot of the getting started questions you may have\n
  4. - Not going to talk in depth about all of the ways you can contribute\n- There are loads of ways you can help out. \n- You don’t have to be a coder or designer to contribute.\n
  5. - Going to focus on front-end dev and design perspective\n- That’s where I spend the bulk of my time.\n- You’ll also find this presentation helpful if you're just getting started in other ways\n
  6. - Things I'd like to cover are the following\n
  7. - TALK THROUGH EACH\n- IRC\n- Trac\n- Make P2’s\n- make.wordpress.org\n- Core, UI, plugins, themes, support, accessibility\n
  8. - Trying to stick to 4 month release cycles\n- GO THROUGH EACH\n- 3-4 betas\n- 3 private RC’s and 1 public RC\n
  9. - WordPress core operates as a meritocracy\n- Decisions are made by those who have contributed the most, and been around the longest\n- Does that mean if you’re new, your voice won’t be heard? Not at all. \n
  10. - So, you’ve got an idea for improving wp-admin, or you’ve found a bug\n- The first thing you do is head over to Trac - and run a couple searches\n- there may already be a ticket\n- If so, you’ll see the back history\n- If you don’t find anything, ask in IRC - there may be a back story behind why it hasn’t been done.\n- If the reaction is positive, create a ticket\n
  11. - I’ll walk you through how I do things\n- For all of these tutorials I’ll be using a Mac\n- That’s what I use, but a lot of the processes are similar on other operating systems\n
  12. - First you’ll want to download and install XAMPP\n- This will auto install apache, PHP, and MySQL\n- Go ahead an just install it in your applications folder\n
  13. - After you’ve installed XAMPP, \n- From the XAMPP control panel, you’ll want to turn on Apache, and MySQL\n
  14. - After you’ve turned on XAMPP, open the htdocs\n- I’ve added the path here on the slide\n- And add a new folder called “wordpress”\n
  15. - Next open terminal and change directories by typing cd /Applications/XAMPP/htdocs/wordpress\n- Then hit enter\n
  16. - Then enter “SVN CO ...”\n- SVN is the version control used to host Wordpress trunk\n- CO equals “check out”\n- So essentially, you are checking out a copy of WordPress trunk to your local WordPress folder\n- Once you hit enter, you’ll see a bunch of WordPress files being added\n
  17. - We need to create a database for WordPress\n- Open a browser and go to localhost/phpmyadmin/\n- In the create a new database section enter “wordpress” as the database name\n- And click create - this will create a blank DB for you to use with WordPress\n
  18. - Open your new wordpress folder in a text editor (I use Coda)\n- Just like in any new install, you’ll want to\n- Make a copy of the wp-config-sample.php file, and rename it without the sample bit\n
  19. - Add “wordpress” as the db name\n- Then root for the username, leave the password blank, and leave the host to localhost\n
  20. - Last, just visit localhost/wordpress/trunk/ in your browser and finish your install\n- Your local site will then be accessible through localhost/wordpress/trunk/\n- And just tack a wp-admin on the end to reach the admin.\n
  21. - Trac is where we keep track of bugs and everything that’s being worked on\n- This is the reports tab\n- You’ll see that report 5 there with show you all of the open tickets slated for the next major release\n- Report 35, which you can’t see here shows all UX, UI tickets.\n
  22. - This is what you’ll see when you look at a ticket\n- The top portion lists who reported it\n- Attachments will include (patches, images)\n- Change history at the bottom is where you comment on this ticket, and read the ticket history.\n- We’ll go through the process of creating a patch at the end of the talk, and I’ll show you more of Trac then.\n
  23. - There are plenty of IRC tutorials on the net, but I just want to touch quickly on getting started\n- The IRC client I use is called Adium - it’s free.\n
  24. - After you download and install Adium, you’ll want to connect to irc.freenode.net\n
  25. - The two rooms I frequent are: #wordpress-dev, and #wordpress-ui\n\n
  26. - One of the best was to get your feet wet is to start by testing other peoples patches\n- So here’s a ticket with some improvements to the pressthis bookmarklet\n- It has yet to be committed, but multiple patches have been uploaded\n- The latest one dot 3 was uploaded 2 weeks ago.\n- So, you could come in and click that last link (which will show you the patch)\n\n
  27. - From the patch page, you can review the code that has been submitted, \n- and you can download a copy of the patch to test it on your local install\n- Just click that grey link at the bottom that says “Original Format”\n\n
  28. - After you’ve got that downloaded, to your desktop, drag it to your local WP install\n- It should be right there in the trunk directory\n
  29. - Hop back over to terminal, and type svn status\n- This will show you any files that you’ve modified in trunk, or any file that has not been added via SVN\n- You can see that our diff files is sitting there\n
  30. - Next type patch -p0 -i 21997.3.diff \n- This will apply the changes from patch file to your local instance of wordpress\n- It will give you an indication as to whether everything went okay or not\n
  31. - Then you pull up your local install in the browser and test the changes that were just applied\n- And then go back to the ticket in Trac, and leave a comment stating how you tested it, \n- and whether the patch looks good or not.\n- Try to be as specific as possible (especially if you find something wrong with the patch).\n
  32. - So let’s say you’ve made a change to you local install of wordpress, and you’d like to submit it as a patch.\n- The first thing you’ll want to do is type SVN up, and hit enter, \n- which will make sure you’re running the latest version of trunk, and ensure that you don’t have any conflicts\n
  33. - Then run svn status to review the files with changes\n- You’ll see an M next to the wp-admin.css file\n- That means there are modifications to that file\n
  34. - To review those modifications, you’ll type svn diff\n- This will allow you to review the actual diff of the files that were changed\n- You’ll see a minus sign on the left next to lines that were removed\n- And a plus sign next to new lines that have been added\n
  35. - To export this diff to a file that can then be uploaded to the ticket, type svn diff > 21997.4.diff\n- The greater than sign exports it to a file\n- 21997 is the Trac ticket ID (this is just best practice)\n- Since this was a modification to an existing patch, I changed .3 to .4\n
  36. - Then, when you check your local trunk directory, you should see that new .4.diff file\n- \n
  37. - Go back to the ticket page, and click the “attach file” button\n
  38. - And upload your new patch in the form that is provided.\n
  39. - Last, go back to the ticket, and leave a detailed comment as to what was changed, and why.\n
  40. - That’s all I’ve got for today.\n- Thanks for sticking around for the last session.\n- Any questions?\n