SlideShare a Scribd company logo
1 of 52
WordPress Under Control
Matthew Bernhardt
MIT Libraries
@morphosis7
MIT Libraries Use WordPress
• 21 node multisite network
• 58 plugins
• 11 themes
Multiple environments
Development
• libraries_development.mit.edu
Testing
• libraries_testing.mit.edu
Production
• libraries.mit.edu
How we change things…
Starting with developer(s)
Multiple environments
Development
Testing
Production
Developer
FTP
Multiple developers
Development
Testing
Production
Developer
Developer
FTP
This is getting out of hand...
Development
Testing
Production
Developer
Developer
Contractor
FTP
FTP
You take this, you take that, I’ll be over here
Plugins
Home Page News
Pending Posts
Multisearch Widget
Private Debug Log
Themes
Parent
Child
News
Music Oral History
150Books
Connick
TwentyTwelve
Developer
Developer
Contractor
Enter GitHub
Developer
Developer
Contractor
Development
Testing
Production
Enter GitHub…and Magic happens?
Developer
Developer
Contractor
Development
Testing
Production
WordPress Architecture
WordPress Core Plugins
Community
Custom
Themes
Core
Community
Custom
WordPress UI for Core / Community
GitHub for Local / Custom code
WordPress Core Plugins
Community
Custom
Themes
Core
Community
Custom
17 repositories
• Seven plugins
• Plugin Canary
• Multisearch widget
• Private debug log
• Analytics
• Home page news
• Pending posts
• Custom child post types
• Ten themes
• Parent
• Child
• 8 Site-specific themes
Each project gets its own repository
…WordPress under (source) control
Developer
Developer
Contractor
Development
Testing
Production
…but wait…
This only addresses part of the team.
What about non-developers?
Developer
Developer
Contractor
Development
Testing
Production
UX
Specialist
Content
Owner
Communications
Developer
Developer
Contractor
Development
Testing
Production
UX
Specialist
Content
Owner
Communications
Developer
Developer
Contractor
Development
Testing
Production
UX
Specialist
Content
Owner
Communications
Agile?
Basecamp?
GitHub UI can be intimidating
Enter Waffle.io
Enter Waffle.io
• Focused on issues, not code
• Stores (almost) no data itself
• Alternate UI for GitHub
• Free for open source
• Multiple repos summarized on
one board
One system, many interfaces
• Developers get to use git
• Non-developers get to not use
git
• Everybody has interface choices
based on their desire
• Everything is free
Developer
Developer
Contractor
Development
Testing
Production
UX
Specialist
Content
Owner
Communications
Waffle.io
…let’s talk about side benefits
Code quality
Ghosted plugins
Side Benefit: code quality
Development and review process
Developer
Development
• Simple visual
inspection
Testing
Production
Stakeholder
Development and review process
Developer
Development
Testing
• Rigorous User Testing
• Cross-browser
inspection
• Pull request / code
review
Production
Stakeholder
Developer
Development and review process
Developer
Development
Testing
Production
• Post-deploy
verification
Stakeholder
Can we automate this?
Developer
Development
Testing
• Code Review
Production
Developer
Static Code Analysis
Static Code Analysis
Static Code Analysis
Travis CI
• Runs PHP CodeSniffer
• Includes WP Code Standards
• Scans the entire codebase for
each PR
• Customizable deploy script
CodeClimate
• Runs PHPCS, ESlint, CSSlint
• Includes WP Code Standards
• Scans only the methods/lines
that have changed
• Only performs code analysis
Example implementations
Plugin Template
• https://github.com/MITLibraries/wp-plugin-template
Underscores theme (Travis/PHPCS only)
• https://github.com/automattic/_s
• Specifically .travis.yml
Outcomes
• Swallow our pride
• Chip away at fixes when possible
Development and review process
Developer
Development
Testing
• Code Review
Production
Developer
Developer
Developer
Contractor
Development
Testing
Production
UX
Specialist
Content
Owner
Communications
Waffle.io
Side Benefit: ghosted plugins
Ghosted plugins
Ghosted plugins to local repository
Ghosted plugins to local repository
• Enables code analysis to try and
guess why removed
• Ensures backup if a site needs to
be rebuilt
Related: Plugin canary
• Watch for plugins that are not
listed in public directory
Other things we have tried
Visual Regression Testing
Visual Regression Testing
• Rampart
https://github.com/mitlibraries/rampart
• Based on BackstopJS
https://github.com/garris/BackstopJS
• Also evaluating Instadiff
Visual Regression Testing
• Automated visual comparisons
• Multiple window sizes
• Selenium-based (only one
render engine)
• Tricky to tune
• Manually initiated (so far)
Trello
Trello
• Separate from GitHub
• Easy to use on its own
• Very simple (in fact, too simple)
JIRA
JIRA
• Separate from GitHub
• Much more complex
(appropriately so, in our case)
Future (and latest) steps
• Visual regression testing
• Move from Waffle to JIRA
• Combines code- and non-code changes
• Not as easy to use, but more expansive
• Better build/deploy workflow from GitHub to servers
• Refactor WordPress code to be testable
• Submit projects to WordPress / SVN / TRAC?
• Pantheon?
Thank You
• GitHub for source control
• One repository per (local) project
• Waffle as an alternative UI
• …although we’ve moved to JIRA
• Automatic code linting
• Travis CI
• CodeClimate
• Continuously examine your
tooling choices
• MIT Libraries
https://libraries.mit.edu
https://github.com/mitlibraries/
• Matthew Bernhardt
mjbernha@mit.edu
@morphosis7

More Related Content

What's hot

COSCUP 開源工作坊:Git workflows
COSCUP 開源工作坊:Git workflowsCOSCUP 開源工作坊:Git workflows
COSCUP 開源工作坊:Git workflowsCarl Su
 
Cross platform native development with appcelerator titanium (2014 devnexus)
Cross platform native development with appcelerator titanium (2014 devnexus)Cross platform native development with appcelerator titanium (2014 devnexus)
Cross platform native development with appcelerator titanium (2014 devnexus)Stephen Feather
 
Beyond Domino Designer
Beyond Domino DesignerBeyond Domino Designer
Beyond Domino DesignerPaul Withers
 
How to Contribute to Pinax
How to Contribute to PinaxHow to Contribute to Pinax
How to Contribute to Pinaxjtauber
 
Itea dev ops_course_topic2
Itea dev ops_course_topic2Itea dev ops_course_topic2
Itea dev ops_course_topic2Vad Tymoshyk
 
IntelliJ IDEA Architecture and Performance
IntelliJ IDEA Architecture and PerformanceIntelliJ IDEA Architecture and Performance
IntelliJ IDEA Architecture and Performanceintelliyole
 
JUnit 5 - from Lambda to Alpha and beyond
JUnit 5 - from Lambda to Alpha and beyondJUnit 5 - from Lambda to Alpha and beyond
JUnit 5 - from Lambda to Alpha and beyondSam Brannen
 
Workshops from konferencjabeit.pl
Workshops from konferencjabeit.plWorkshops from konferencjabeit.pl
Workshops from konferencjabeit.plMichał Ślęzak
 
PowerShell 101 - What is it and Why should YOU Care!
PowerShell 101 - What is it and Why should YOU Care!PowerShell 101 - What is it and Why should YOU Care!
PowerShell 101 - What is it and Why should YOU Care!Thomas Lee
 
Integrating Git, Gerrit and Jenkins/Hudson with Mylyn
Integrating Git, Gerrit and Jenkins/Hudson with MylynIntegrating Git, Gerrit and Jenkins/Hudson with Mylyn
Integrating Git, Gerrit and Jenkins/Hudson with MylynSascha Scholz
 
Global Azure Bootcamp - Vancouver (2018) - Testing with Containers
Global Azure Bootcamp - Vancouver (2018) - Testing with ContainersGlobal Azure Bootcamp - Vancouver (2018) - Testing with Containers
Global Azure Bootcamp - Vancouver (2018) - Testing with ContainersDen Delimarsky
 
Ci tools Introduce
Ci tools IntroduceCi tools Introduce
Ci tools IntroduceYin-Hong Hsu
 
WordPress: Getting Under the Hood
WordPress: Getting Under the HoodWordPress: Getting Under the Hood
WordPress: Getting Under the HoodScott Taylor
 
2017 stuysplash-build-tools
2017 stuysplash-build-tools2017 stuysplash-build-tools
2017 stuysplash-build-toolsJeanne Boyarsky
 
Publishing API documentation -- Presentation
Publishing API documentation -- PresentationPublishing API documentation -- Presentation
Publishing API documentation -- PresentationTom Johnson
 
Gerrit + Jenkins = Continuous Delivery For Big Data
Gerrit + Jenkins = Continuous Delivery For Big DataGerrit + Jenkins = Continuous Delivery For Big Data
Gerrit + Jenkins = Continuous Delivery For Big DataStefano Galarraga
 
Tooling for the productive front-end developer
Tooling for the productive front-end developerTooling for the productive front-end developer
Tooling for the productive front-end developerMaurice De Beijer [MVP]
 
Shift Remote FRONTEND: Building Web Parasite Using Chrome Extension - Ivan Vu...
Shift Remote FRONTEND: Building Web Parasite Using Chrome Extension - Ivan Vu...Shift Remote FRONTEND: Building Web Parasite Using Chrome Extension - Ivan Vu...
Shift Remote FRONTEND: Building Web Parasite Using Chrome Extension - Ivan Vu...Shift Conference
 
Live Coverage at The New York Times
Live Coverage at The New York TimesLive Coverage at The New York Times
Live Coverage at The New York TimesScott Taylor
 
Mozilla: Mozmill meets L10n
Mozilla: Mozmill meets L10nMozilla: Mozmill meets L10n
Mozilla: Mozmill meets L10nHenrik Skupin
 

What's hot (20)

COSCUP 開源工作坊:Git workflows
COSCUP 開源工作坊:Git workflowsCOSCUP 開源工作坊:Git workflows
COSCUP 開源工作坊:Git workflows
 
Cross platform native development with appcelerator titanium (2014 devnexus)
Cross platform native development with appcelerator titanium (2014 devnexus)Cross platform native development with appcelerator titanium (2014 devnexus)
Cross platform native development with appcelerator titanium (2014 devnexus)
 
Beyond Domino Designer
Beyond Domino DesignerBeyond Domino Designer
Beyond Domino Designer
 
How to Contribute to Pinax
How to Contribute to PinaxHow to Contribute to Pinax
How to Contribute to Pinax
 
Itea dev ops_course_topic2
Itea dev ops_course_topic2Itea dev ops_course_topic2
Itea dev ops_course_topic2
 
IntelliJ IDEA Architecture and Performance
IntelliJ IDEA Architecture and PerformanceIntelliJ IDEA Architecture and Performance
IntelliJ IDEA Architecture and Performance
 
JUnit 5 - from Lambda to Alpha and beyond
JUnit 5 - from Lambda to Alpha and beyondJUnit 5 - from Lambda to Alpha and beyond
JUnit 5 - from Lambda to Alpha and beyond
 
Workshops from konferencjabeit.pl
Workshops from konferencjabeit.plWorkshops from konferencjabeit.pl
Workshops from konferencjabeit.pl
 
PowerShell 101 - What is it and Why should YOU Care!
PowerShell 101 - What is it and Why should YOU Care!PowerShell 101 - What is it and Why should YOU Care!
PowerShell 101 - What is it and Why should YOU Care!
 
Integrating Git, Gerrit and Jenkins/Hudson with Mylyn
Integrating Git, Gerrit and Jenkins/Hudson with MylynIntegrating Git, Gerrit and Jenkins/Hudson with Mylyn
Integrating Git, Gerrit and Jenkins/Hudson with Mylyn
 
Global Azure Bootcamp - Vancouver (2018) - Testing with Containers
Global Azure Bootcamp - Vancouver (2018) - Testing with ContainersGlobal Azure Bootcamp - Vancouver (2018) - Testing with Containers
Global Azure Bootcamp - Vancouver (2018) - Testing with Containers
 
Ci tools Introduce
Ci tools IntroduceCi tools Introduce
Ci tools Introduce
 
WordPress: Getting Under the Hood
WordPress: Getting Under the HoodWordPress: Getting Under the Hood
WordPress: Getting Under the Hood
 
2017 stuysplash-build-tools
2017 stuysplash-build-tools2017 stuysplash-build-tools
2017 stuysplash-build-tools
 
Publishing API documentation -- Presentation
Publishing API documentation -- PresentationPublishing API documentation -- Presentation
Publishing API documentation -- Presentation
 
Gerrit + Jenkins = Continuous Delivery For Big Data
Gerrit + Jenkins = Continuous Delivery For Big DataGerrit + Jenkins = Continuous Delivery For Big Data
Gerrit + Jenkins = Continuous Delivery For Big Data
 
Tooling for the productive front-end developer
Tooling for the productive front-end developerTooling for the productive front-end developer
Tooling for the productive front-end developer
 
Shift Remote FRONTEND: Building Web Parasite Using Chrome Extension - Ivan Vu...
Shift Remote FRONTEND: Building Web Parasite Using Chrome Extension - Ivan Vu...Shift Remote FRONTEND: Building Web Parasite Using Chrome Extension - Ivan Vu...
Shift Remote FRONTEND: Building Web Parasite Using Chrome Extension - Ivan Vu...
 
Live Coverage at The New York Times
Live Coverage at The New York TimesLive Coverage at The New York Times
Live Coverage at The New York Times
 
Mozilla: Mozmill meets L10n
Mozilla: Mozmill meets L10nMozilla: Mozmill meets L10n
Mozilla: Mozmill meets L10n
 

Similar to WordPress Under Control (Boston WP Meetup)

WordPress Under Control
WordPress Under ControlWordPress Under Control
WordPress Under ControlMatt Bernhardt
 
Team Development on Force.com
Team Development on Force.comTeam Development on Force.com
Team Development on Force.comDaniel Hoechst
 
From WordPress With Love
From WordPress With LoveFrom WordPress With Love
From WordPress With LoveUp2 Technology
 
Magento 2 Workflows
Magento 2 WorkflowsMagento 2 Workflows
Magento 2 WorkflowsRyan Street
 
How to start developing your own ExpressionEngine addons
How to start developing your own ExpressionEngine addonsHow to start developing your own ExpressionEngine addons
How to start developing your own ExpressionEngine addonsLeevi Graham
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchHoward Greenberg
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for DocumentationAnne Gentle
 
Tuenti Release Workflow
Tuenti Release WorkflowTuenti Release Workflow
Tuenti Release WorkflowTuenti
 
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...Paul Withers
 
Sitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helixSitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helixPeter Nazarov
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)Dave Haeffner
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsTaylor Lovett
 
Plug-ins & Third-Party SDKs in UE4
Plug-ins & Third-Party SDKs in UE4Plug-ins & Third-Party SDKs in UE4
Plug-ins & Third-Party SDKs in UE4Gerke Max Preussner
 
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018hernanibf
 
Guidelines for Working with Contract Developers in Evergreen
Guidelines for Working with Contract Developers in EvergreenGuidelines for Working with Contract Developers in Evergreen
Guidelines for Working with Contract Developers in Evergreenloriayre
 
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Max Romanovsky
 
Symfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim RomanovskySymfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim Romanovskyphp-user-group-minsk
 

Similar to WordPress Under Control (Boston WP Meetup) (20)

WordPress Under Control
WordPress Under ControlWordPress Under Control
WordPress Under Control
 
Team Development on Force.com
Team Development on Force.comTeam Development on Force.com
Team Development on Force.com
 
From WordPress With Love
From WordPress With LoveFrom WordPress With Love
From WordPress With Love
 
Magento 2 Workflows
Magento 2 WorkflowsMagento 2 Workflows
Magento 2 Workflows
 
How to start developing your own ExpressionEngine addons
How to start developing your own ExpressionEngine addonsHow to start developing your own ExpressionEngine addons
How to start developing your own ExpressionEngine addons
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for Documentation
 
Tuenti Release Workflow
Tuenti Release WorkflowTuenti Release Workflow
Tuenti Release Workflow
 
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
From XPages Hero to OSGi Guru: Taking the Scary out of Building Extension Lib...
 
Sitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helixSitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helix
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)
 
Developing XWiki
Developing XWikiDeveloping XWiki
Developing XWiki
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress Applications
 
Plug-ins & Third-Party SDKs in UE4
Plug-ins & Third-Party SDKs in UE4Plug-ins & Third-Party SDKs in UE4
Plug-ins & Third-Party SDKs in UE4
 
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
 
Hacking on WildFly 9
Hacking on WildFly 9Hacking on WildFly 9
Hacking on WildFly 9
 
Guidelines for Working with Contract Developers in Evergreen
Guidelines for Working with Contract Developers in EvergreenGuidelines for Working with Contract Developers in Evergreen
Guidelines for Working with Contract Developers in Evergreen
 
Case study
Case studyCase study
Case study
 
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...
 
Symfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim RomanovskySymfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim Romanovsky
 

More from Matt Bernhardt

Digital fabrication as a library integrated service
Digital fabrication as a library integrated serviceDigital fabrication as a library integrated service
Digital fabrication as a library integrated serviceMatt Bernhardt
 
Reality Bytes: an overview of Virtual and Augmented Reality
Reality Bytes: an overview of Virtual and Augmented RealityReality Bytes: an overview of Virtual and Augmented Reality
Reality Bytes: an overview of Virtual and Augmented RealityMatt Bernhardt
 
Visualizing Open Access - Open Repositories 2015
Visualizing Open Access - Open Repositories 2015Visualizing Open Access - Open Repositories 2015
Visualizing Open Access - Open Repositories 2015Matt Bernhardt
 
Visualizing Open Access - 2015 Code4Lib Northeast
Visualizing Open Access - 2015 Code4Lib NortheastVisualizing Open Access - 2015 Code4Lib Northeast
Visualizing Open Access - 2015 Code4Lib NortheastMatt Bernhardt
 
Web based collaboration at the KSA
Web based collaboration at the KSAWeb based collaboration at the KSA
Web based collaboration at the KSAMatt Bernhardt
 
Supporting a Dynamic Learning Environment with Custom Application Development
Supporting a Dynamic Learning Environment with Custom Application DevelopmentSupporting a Dynamic Learning Environment with Custom Application Development
Supporting a Dynamic Learning Environment with Custom Application DevelopmentMatt Bernhardt
 

More from Matt Bernhardt (6)

Digital fabrication as a library integrated service
Digital fabrication as a library integrated serviceDigital fabrication as a library integrated service
Digital fabrication as a library integrated service
 
Reality Bytes: an overview of Virtual and Augmented Reality
Reality Bytes: an overview of Virtual and Augmented RealityReality Bytes: an overview of Virtual and Augmented Reality
Reality Bytes: an overview of Virtual and Augmented Reality
 
Visualizing Open Access - Open Repositories 2015
Visualizing Open Access - Open Repositories 2015Visualizing Open Access - Open Repositories 2015
Visualizing Open Access - Open Repositories 2015
 
Visualizing Open Access - 2015 Code4Lib Northeast
Visualizing Open Access - 2015 Code4Lib NortheastVisualizing Open Access - 2015 Code4Lib Northeast
Visualizing Open Access - 2015 Code4Lib Northeast
 
Web based collaboration at the KSA
Web based collaboration at the KSAWeb based collaboration at the KSA
Web based collaboration at the KSA
 
Supporting a Dynamic Learning Environment with Custom Application Development
Supporting a Dynamic Learning Environment with Custom Application DevelopmentSupporting a Dynamic Learning Environment with Custom Application Development
Supporting a Dynamic Learning Environment with Custom Application Development
 

Recently uploaded

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

WordPress Under Control (Boston WP Meetup)

Editor's Notes

  1. Travis runs on feature branches and pull requests, allowing analysis and code repair before deploying to production
  2. Learned from Automattic’s _s theme
  3. Learned from Automattic’s _s theme
  4. Learned from Automattic’s _s theme
  5. Travis runs on feature branches and pull requests, allowing analysis and code repair before deploying to production