SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
27 au 29 mars 2013
Leading a Community-Driven open
source project
Vincent Massol
XWiki Committer
CTO XWiki SAS
Vincent Massol, June 2017
(When a company is behind the project)
Vincent Massol
• Speaker Bio
• Committer XWiki & CTO XWiki SAS
• Projects
• XWiki (community-driven open source project) - 11y
• Past: Maven,Apache Cargo,Apache Cactus, Pattern Testing - 6y
• Other Credentials:
• LesCastCodeurs podcast about Java news
• Creator of OSSGTP open source group in Paris
• 3 books: JUnit in Action, Maven:A Developer’s Notebook, BBWM
Agenda
• The XWiki project
• Communication
• Build
• Continuous Integration
• Tests
• XWiki Days
• Governance & Marketing
• Roadmap Process
• Release Process
• Committers Diversity
• Increasing Contributions
• Measuring Progress
• Future
What is XWiki? (1/2)
• A structured open source enterprise wiki
What is XWiki? (2/2)
• A platform for developing content-based web applications
Project Stats
Source: http://dev.xwiki.org/xwiki/bin/view/Community/ProjectHealth
Mailing lists activity
Communication
• Dev mailing lists (devs, notifs)
• ~8/day
• Forum (Discourse) - New
• ~10/day
• IRC/Matrix for discussions
• But all important messages must
go through the list
• Commit emails + JIRAs + daily wiki
activity on the notifications list
• Code reviews (not systematic)
Source: http://dev.xwiki.org/xwiki/bin/view/Community/MailingLists & http://dev.xwiki.org/xwiki/bin/view/Community/Chat
Build
• Maven-based with several custom plugins
• Active Quality vs Passive Quality. Examples:
• Checkstyle with additional custom rules
• Verify that Script Services are not located in the internal package
• Verify that @since javadoc tags have the correct format
• Verify header licenses
• Backward compatibility checks with Revapi
• Enforcer checks
• Verify we don't use Commons Logging or Log4j (since we use SLF4J)
• Verify that Test Percentage Coverage don't go down
Source: http://dev.xwiki.org/xwiki/bin/view/Community/Building
Continuous Integration
• Some jobs with -Pquality profile to perform
Quality checks
• Catching false positives before sending mail.
Examples:
• JVM crash
• GitHub connection issue
• X Display not ready for UI tests
• Display screenshot of failing test in job report
• Started using Jenkinsfile for xwiki-contrib
• Pipeline Job to generate full TPC
Source: http://ci.xwiki.org/
Tests (1/3)
• Unit tests: JUnit + Mockito
• Integration tests with automatic component testing and
injection. Custom JUnit @Rule
• Functional UI tests with JUnit + Selenium/WebDriver
• Page Object strategy
• WCAG tests
• HTML5 validity tests
• Manual tests (performance + QA @ XWiki SAS
• Total TPC = 73.2%
Source: http://dev.xwiki.org/xwiki/bin/view/Community/Testing
Tests (2/3) - Manual Tests
Source: http://test.xwiki.org
Tests (3/3) - Manual Tests
XWiki Days
• Every Thursday
• Examples
• Bug Fixing Day (BFD)
• Test Improvement Day
• Deprecation Fixing Day
• Improvement Fixing Day
• Doc Improvement Day
• Pull Request Day
• Worked really well for BFD
Source: http://dev.xwiki.org/xwiki/bin/view/Community/XWikiDays
Governance - General
• Complete separation from
XWiki SAS since 2005-2006
• Employees are not committers
• xwiki.org has its own governance rules (similar to the ASF)
• Committership
• Voting: +1, 0, -1 (72 hours)
• Only 1 non-XWiki SAS committer needed to guarantee honesty!
• Lazy consensus
• All decisions done by committers and community (non-binding)
Governance - Marketing (1/2)
• Governance for website
• Question: How to reconcile
XWiki SAS need for marketing
and keep it fair?
• Sponsoring Companies
• At least 1 active committer
• Active = at least 1 commit / year
• Top Sponsoring Company (TSC) =
company with the most active
committers (= XWiki SAS)
Source: http://dev.xwiki.org/xwiki/bin/view/Community/Governance
Governance - Marketing (2/2)
• Marketing allowed on:
• Download page
• Support page (for professional
support)
• TSC allowed to gather emails
and redistribute to other SC (if
>= 3 active committers)
Source: http://dev.xwiki.org/xwiki/bin/view/Community/Governance
• SC can have their Extensions repo by default in XWiki is >= 3 active
committers
• TSC can advertise on extensions.xwiki.org
Roadmap
• Time-boxed releases every month (3w RC and 1w final)
Source: http://www.xwiki.org/xwiki/bin/view/Roadmaps/
Release Process
• Ongoing Release Notes and
reference documentation
• Marked in JIRA with 2 custom
fields
• Rolling Release Managers
Source: http://dev.xwiki.org/xwiki/bin/view/ReleasePlans/
• Create Release Plan for the release
Release Process - Plan (1/2)
Source: http://dev.xwiki.org/xwiki/bin/view/ReleasePlans/
Release Process - Plans (2/2)
• Release in JIRA
• Check that all issues are
documented
• Check Release Notes
• Import translations
• Build the Release
• Create mail
announcement
• Push to Maven Central
• Update Docker official
image
• etc
Source: http://dev.xwiki.org/xwiki/bin/view/ReleasePlans/ReleasePlan845
Committers Diversity
• XWiki SAS: 38
• Core Committers: 17 (11
actives)
• Contrib Committers: 69
(17 from XWiki SAS, 22
active)
• 64% of Core Committers
are from XWiki SAS
• But 90%+ of code
committed by XWiki
SAS devs
• Problem: XWiki SAS
hires contributors…
XWiki SAS Contrib Committers
Core

Committers
21 6 11 6 46
Why Community-Driven for XWiki?
• In 2005: Copied from ASF, Community over Code
• But community-driven model under attack
• Not enough contributions, 90%+ of code from XWiki SAS
• Creates separation in company (those working in OSS vs others)
• Why continue?
• Love of open community by founders
• Ethics:“real open source”
• Senior developer retention & HR <— over 8 years in dev team
• Still getting some contributions (translations, support help, extensions, etc)
• Increased usage? Having a deciding community means that even if company goes
away the project can live on?
• We want other companies and individuals to make a living on XWiki!
Increasing Contributions (1/2)
• Idea 1: Slim down the core into modules and extensions
• Concept of Extensions in XWiki, that can be installed at runtime
• Moved from ‘xwiki’ GitHub org to ‘xwiki-contrib’ and still going on
• Anyone given commit permissions on ‘xwiki-contrib’
• Idea 2: XWiki SAS hires more devs
• Idea 3: Good dev documentation
• Idea 4: Feeling of welcome and good support on IRC + Forums
Increasing Contributions (2/2)
• Idea 5: Make it easy to perform some type of contributions, e.g.
http://l10n.xwiki.org for translations
• Idea 6:Why would people contribute when they just need to
ask and wait a bit to see it done?
• Idea 7: If some devs work too fast then occasional contributors
cannot follow up
Not easy. Maybe it’s just not possible when there’s a company paying devs to work on
project?
Measuring Progress - Active Installs
Source: http://dev.xwiki.org/xwiki/bin/view/Community/ProjectHealth
• Opt out mechanism
• Send anonymous data (no IP recorded)
• Send XWiki version, Java version, Servlet
Container, Installed Extensions & versions,
Distributions
Future
• XWiki Foundation to officially separate open source project from XWiki SAS
company
• CLA Discussion (ex Amazon)
• CI functional tests executing on various environments inside Docker containers
• Work on reducing flaky tests number
• Automate performance tests
• Unbreakable build with automatic merge on Release branch when CI jobs passes
(using Pipeline)
• Maybe more Paying Apps (XWiki SAS).Too many users don’t play the open source
game… Idea:
• Open source
• Free for anyone who shows a contribution to OSS
Q&A
Me

Mais conteúdo relacionado

Mais procurados

Meetup RomaJS - introduzione interattiva a Node.js - Luca Lanziani - Codemoti...
Meetup RomaJS - introduzione interattiva a Node.js - Luca Lanziani - Codemoti...Meetup RomaJS - introduzione interattiva a Node.js - Luca Lanziani - Codemoti...
Meetup RomaJS - introduzione interattiva a Node.js - Luca Lanziani - Codemoti...Codemotion
 
Clair, A Container Image Security Analyzer
Clair, A Container Image Security AnalyzerClair, A Container Image Security Analyzer
Clair, A Container Image Security AnalyzerCoreOS
 
jclouds overview
jclouds overviewjclouds overview
jclouds overviewAdrian Cole
 
KubeCon EU 2016: Scaling Open edX with Kubernetes
KubeCon EU 2016: Scaling Open edX with KubernetesKubeCon EU 2016: Scaling Open edX with Kubernetes
KubeCon EU 2016: Scaling Open edX with KubernetesKubeAcademy
 
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017Microsoft & Open Source - a 'brave new world' - ProgSCon 2017
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017Matt Warren
 
Source code analyzer
Source code analyzer Source code analyzer
Source code analyzer OSLL
 
Serverless code components azure
Serverless code components azureServerless code components azure
Serverless code components azureShimon Tolts
 
Building a deployment pipeline
Building a deployment pipelineBuilding a deployment pipeline
Building a deployment pipelineNoam Shochat
 
Introduction to cloud and openstack
Introduction to cloud and openstackIntroduction to cloud and openstack
Introduction to cloud and openstackShivaling Sannalli
 
Nikolay Kozhukharenko ''Component driven development how to guide''
Nikolay Kozhukharenko ''Component driven development how to guide''Nikolay Kozhukharenko ''Component driven development how to guide''
Nikolay Kozhukharenko ''Component driven development how to guide''OdessaJS Conf
 
JS & NodeJS - An Introduction
JS & NodeJS - An IntroductionJS & NodeJS - An Introduction
JS & NodeJS - An IntroductionNirvanic Labs
 
Creating your own project's Quality Dashboard
Creating your own project's Quality DashboardCreating your own project's Quality Dashboard
Creating your own project's Quality DashboardVincent Massol
 
Kubernetes and lastminute.com: our course towards better scalability and proc...
Kubernetes and lastminute.com: our course towards better scalability and proc...Kubernetes and lastminute.com: our course towards better scalability and proc...
Kubernetes and lastminute.com: our course towards better scalability and proc...Michele Orsi
 
Node.js - Introduction and role in Frontend Development
Node.js - Introduction and role in Frontend DevelopmentNode.js - Introduction and role in Frontend Development
Node.js - Introduction and role in Frontend DevelopmentJulián David Duque
 
Implementation of the new REST API for Open Source LBS-platform Geo2Tag
Implementation of the new REST API for Open Source LBS-platform Geo2TagImplementation of the new REST API for Open Source LBS-platform Geo2Tag
Implementation of the new REST API for Open Source LBS-platform Geo2TagOSLL
 

Mais procurados (20)

Meetup RomaJS - introduzione interattiva a Node.js - Luca Lanziani - Codemoti...
Meetup RomaJS - introduzione interattiva a Node.js - Luca Lanziani - Codemoti...Meetup RomaJS - introduzione interattiva a Node.js - Luca Lanziani - Codemoti...
Meetup RomaJS - introduzione interattiva a Node.js - Luca Lanziani - Codemoti...
 
Clair, A Container Image Security Analyzer
Clair, A Container Image Security AnalyzerClair, A Container Image Security Analyzer
Clair, A Container Image Security Analyzer
 
Vanilla JS*
Vanilla JS*Vanilla JS*
Vanilla JS*
 
jclouds overview
jclouds overviewjclouds overview
jclouds overview
 
KubeCon EU 2016: Scaling Open edX with Kubernetes
KubeCon EU 2016: Scaling Open edX with KubernetesKubeCon EU 2016: Scaling Open edX with Kubernetes
KubeCon EU 2016: Scaling Open edX with Kubernetes
 
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017Microsoft & Open Source - a 'brave new world' - ProgSCon 2017
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017
 
Source code analyzer
Source code analyzer Source code analyzer
Source code analyzer
 
Docker+java
Docker+javaDocker+java
Docker+java
 
Scaling xtext
Scaling xtextScaling xtext
Scaling xtext
 
Serverless code components azure
Serverless code components azureServerless code components azure
Serverless code components azure
 
Building a deployment pipeline
Building a deployment pipelineBuilding a deployment pipeline
Building a deployment pipeline
 
Introduction to cloud and openstack
Introduction to cloud and openstackIntroduction to cloud and openstack
Introduction to cloud and openstack
 
Nikolay Kozhukharenko ''Component driven development how to guide''
Nikolay Kozhukharenko ''Component driven development how to guide''Nikolay Kozhukharenko ''Component driven development how to guide''
Nikolay Kozhukharenko ''Component driven development how to guide''
 
JS & NodeJS - An Introduction
JS & NodeJS - An IntroductionJS & NodeJS - An Introduction
JS & NodeJS - An Introduction
 
Gwtcreatekeynote
GwtcreatekeynoteGwtcreatekeynote
Gwtcreatekeynote
 
DockerCon 2016 Recap
DockerCon 2016 RecapDockerCon 2016 Recap
DockerCon 2016 Recap
 
Creating your own project's Quality Dashboard
Creating your own project's Quality DashboardCreating your own project's Quality Dashboard
Creating your own project's Quality Dashboard
 
Kubernetes and lastminute.com: our course towards better scalability and proc...
Kubernetes and lastminute.com: our course towards better scalability and proc...Kubernetes and lastminute.com: our course towards better scalability and proc...
Kubernetes and lastminute.com: our course towards better scalability and proc...
 
Node.js - Introduction and role in Frontend Development
Node.js - Introduction and role in Frontend DevelopmentNode.js - Introduction and role in Frontend Development
Node.js - Introduction and role in Frontend Development
 
Implementation of the new REST API for Open Source LBS-platform Geo2Tag
Implementation of the new REST API for Open Source LBS-platform Geo2TagImplementation of the new REST API for Open Source LBS-platform Geo2Tag
Implementation of the new REST API for Open Source LBS-platform Geo2Tag
 

Semelhante a Leading a Community-Driven Open Source Project

XWiki SAS development practices
XWiki SAS development practicesXWiki SAS development practices
XWiki SAS development practicesVincent Massol
 
Development Process, the XWiki way
Development Process, the XWiki wayDevelopment Process, the XWiki way
Development Process, the XWiki wayEduard Moraru
 
Create great cncf user base from lessons learned from other open source com...
Create great cncf user base from   lessons learned from other open source com...Create great cncf user base from   lessons learned from other open source com...
Create great cncf user base from lessons learned from other open source com...Krishna-Kumar
 
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...Lee Calcote
 
Unicon June 2014 IAM Briefing
Unicon June 2014 IAM BriefingUnicon June 2014 IAM Briefing
Unicon June 2014 IAM BriefingJohn Gasper
 
Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Vincent Massol
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAdam Getchell
 
XWiki's Development Process
XWiki's Development ProcessXWiki's Development Process
XWiki's Development ProcessEduard Moraru
 
XWiki's Development Process
XWiki's Development ProcessXWiki's Development Process
XWiki's Development ProcessEduard Moraru
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer DayKimihiko Kitase
 
UC San Diego Campus LISA 2014 - Source Code Management
UC San Diego Campus LISA 2014 - Source Code ManagementUC San Diego Campus LISA 2014 - Source Code Management
UC San Diego Campus LISA 2014 - Source Code ManagementMatthew Critchlow
 
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHubIncrease the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHubDevOps.com
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAppDynamics
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGroup
 
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
 

Semelhante a Leading a Community-Driven Open Source Project (20)

Developing XWiki
Developing XWikiDeveloping XWiki
Developing XWiki
 
XWiki SAS development practices
XWiki SAS development practicesXWiki SAS development practices
XWiki SAS development practices
 
About XWiki.org
About XWiki.orgAbout XWiki.org
About XWiki.org
 
Development Process, the XWiki way
Development Process, the XWiki wayDevelopment Process, the XWiki way
Development Process, the XWiki way
 
Create great cncf user base from lessons learned from other open source com...
Create great cncf user base from   lessons learned from other open source com...Create great cncf user base from   lessons learned from other open source com...
Create great cncf user base from lessons learned from other open source com...
 
Building XWiki
Building XWikiBuilding XWiki
Building XWiki
 
Git SVN Migrate Reasons
Git SVN Migrate ReasonsGit SVN Migrate Reasons
Git SVN Migrate Reasons
 
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
 
Unicon June 2014 IAM Briefing
Unicon June 2014 IAM BriefingUnicon June 2014 IAM Briefing
Unicon June 2014 IAM Briefing
 
Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019Advanced Java Testing @ POSS 2019
Advanced Java Testing @ POSS 2019
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
 
XWiki's Development Process
XWiki's Development ProcessXWiki's Development Process
XWiki's Development Process
 
XWiki's Development Process
XWiki's Development ProcessXWiki's Development Process
XWiki's Development Process
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day
 
UC San Diego Campus LISA 2014 - Source Code Management
UC San Diego Campus LISA 2014 - Source Code ManagementUC San Diego Campus LISA 2014 - Source Code Management
UC San Diego Campus LISA 2014 - Source Code Management
 
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHubIncrease the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
 
ChatOps in Action
ChatOps in ActionChatOps in Action
ChatOps in Action
 
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
 

Mais de Vincent Massol

XWiki Testing with TestContainers
XWiki Testing with TestContainersXWiki Testing with TestContainers
XWiki Testing with TestContainersVincent Massol
 
XWiki: The best wiki for developers
XWiki: The best wiki for developersXWiki: The best wiki for developers
XWiki: The best wiki for developersVincent Massol
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projectsVincent Massol
 
Configuration Testing with Docker & TestContainers
Configuration Testing with Docker & TestContainersConfiguration Testing with Docker & TestContainers
Configuration Testing with Docker & TestContainersVincent Massol
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projectsVincent Massol
 
What's new in XWiki 9.x and 10.x
What's new in XWiki 9.x and 10.xWhat's new in XWiki 9.x and 10.x
What's new in XWiki 9.x and 10.xVincent Massol
 
XWiki Status - July 2015
XWiki Status - July 2015XWiki Status - July 2015
XWiki Status - July 2015Vincent Massol
 
XWiki SAS: An open source company
XWiki SAS: An open source companyXWiki SAS: An open source company
XWiki SAS: An open source companyVincent Massol
 
XWiki: A web dev runtime for writing web apps @ FOSDEM 2014
XWiki: A web dev runtime for writing web apps @ FOSDEM 2014XWiki: A web dev runtime for writing web apps @ FOSDEM 2014
XWiki: A web dev runtime for writing web apps @ FOSDEM 2014Vincent Massol
 
Implementing Quality on a Java Project
Implementing Quality on a Java ProjectImplementing Quality on a Java Project
Implementing Quality on a Java ProjectVincent Massol
 
Implementing Quality on Java projects (Short version)
Implementing Quality on Java projects (Short version)Implementing Quality on Java projects (Short version)
Implementing Quality on Java projects (Short version)Vincent Massol
 
Implementing quality in Java projects
Implementing quality in Java projectsImplementing quality in Java projects
Implementing quality in Java projectsVincent Massol
 
Implementing Quality on Java projects
Implementing Quality on Java projectsImplementing Quality on Java projects
Implementing Quality on Java projectsVincent Massol
 
Combining open source ethics with private interests
Combining open source ethics with private interestsCombining open source ethics with private interests
Combining open source ethics with private interestsVincent Massol
 
Evolutions XWiki 2012/2013
Evolutions XWiki 2012/2013Evolutions XWiki 2012/2013
Evolutions XWiki 2012/2013Vincent Massol
 
XWiki: Developing simple apps quickly
XWiki: Developing simple apps quicklyXWiki: Developing simple apps quickly
XWiki: Developing simple apps quicklyVincent Massol
 
XWiki: Building a dynamic Conference web site
XWiki: Building a dynamic Conference web siteXWiki: Building a dynamic Conference web site
XWiki: Building a dynamic Conference web siteVincent Massol
 

Mais de Vincent Massol (20)

XWiki Testing with TestContainers
XWiki Testing with TestContainersXWiki Testing with TestContainers
XWiki Testing with TestContainers
 
XWiki: The best wiki for developers
XWiki: The best wiki for developersXWiki: The best wiki for developers
XWiki: The best wiki for developers
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projects
 
Configuration Testing with Docker & TestContainers
Configuration Testing with Docker & TestContainersConfiguration Testing with Docker & TestContainers
Configuration Testing with Docker & TestContainers
 
New types of tests for Java projects
New types of tests for Java projectsNew types of tests for Java projects
New types of tests for Java projects
 
What's new in XWiki 9.x and 10.x
What's new in XWiki 9.x and 10.xWhat's new in XWiki 9.x and 10.x
What's new in XWiki 9.x and 10.x
 
QDashboard 1.2
QDashboard 1.2QDashboard 1.2
QDashboard 1.2
 
XWiki Status - July 2015
XWiki Status - July 2015XWiki Status - July 2015
XWiki Status - July 2015
 
XWiki SAS: An open source company
XWiki SAS: An open source companyXWiki SAS: An open source company
XWiki SAS: An open source company
 
XWiki: A web dev runtime for writing web apps @ FOSDEM 2014
XWiki: A web dev runtime for writing web apps @ FOSDEM 2014XWiki: A web dev runtime for writing web apps @ FOSDEM 2014
XWiki: A web dev runtime for writing web apps @ FOSDEM 2014
 
Implementing Quality on a Java Project
Implementing Quality on a Java ProjectImplementing Quality on a Java Project
Implementing Quality on a Java Project
 
Implementing Quality on Java projects (Short version)
Implementing Quality on Java projects (Short version)Implementing Quality on Java projects (Short version)
Implementing Quality on Java projects (Short version)
 
Implementing quality in Java projects
Implementing quality in Java projectsImplementing quality in Java projects
Implementing quality in Java projects
 
Implementing Quality on Java projects
Implementing Quality on Java projectsImplementing Quality on Java projects
Implementing Quality on Java projects
 
Combining open source ethics with private interests
Combining open source ethics with private interestsCombining open source ethics with private interests
Combining open source ethics with private interests
 
Evolutions XWiki 2012/2013
Evolutions XWiki 2012/2013Evolutions XWiki 2012/2013
Evolutions XWiki 2012/2013
 
Developing XWiki
Developing XWikiDeveloping XWiki
Developing XWiki
 
XWiki: Developing simple apps quickly
XWiki: Developing simple apps quicklyXWiki: Developing simple apps quickly
XWiki: Developing simple apps quickly
 
XWiki: Building a dynamic Conference web site
XWiki: Building a dynamic Conference web siteXWiki: Building a dynamic Conference web site
XWiki: Building a dynamic Conference web site
 
Evolutions XWiki 2012
Evolutions XWiki 2012Evolutions XWiki 2012
Evolutions XWiki 2012
 

Último

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
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 Processorsdebabhi2
 
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 SavingEdi Saputra
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
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 2024The Digital Insurer
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
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.pdfsudhanshuwaghmare1
 
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...Orbitshub
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
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 FMESafe Software
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 

Último (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
+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...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
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
 
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
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
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...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

Leading a Community-Driven Open Source Project

  • 1. 27 au 29 mars 2013 Leading a Community-Driven open source project Vincent Massol XWiki Committer CTO XWiki SAS Vincent Massol, June 2017 (When a company is behind the project)
  • 2. Vincent Massol • Speaker Bio • Committer XWiki & CTO XWiki SAS • Projects • XWiki (community-driven open source project) - 11y • Past: Maven,Apache Cargo,Apache Cactus, Pattern Testing - 6y • Other Credentials: • LesCastCodeurs podcast about Java news • Creator of OSSGTP open source group in Paris • 3 books: JUnit in Action, Maven:A Developer’s Notebook, BBWM
  • 3. Agenda • The XWiki project • Communication • Build • Continuous Integration • Tests • XWiki Days • Governance & Marketing • Roadmap Process • Release Process • Committers Diversity • Increasing Contributions • Measuring Progress • Future
  • 4. What is XWiki? (1/2) • A structured open source enterprise wiki
  • 5. What is XWiki? (2/2) • A platform for developing content-based web applications
  • 7. Communication • Dev mailing lists (devs, notifs) • ~8/day • Forum (Discourse) - New • ~10/day • IRC/Matrix for discussions • But all important messages must go through the list • Commit emails + JIRAs + daily wiki activity on the notifications list • Code reviews (not systematic) Source: http://dev.xwiki.org/xwiki/bin/view/Community/MailingLists & http://dev.xwiki.org/xwiki/bin/view/Community/Chat
  • 8. Build • Maven-based with several custom plugins • Active Quality vs Passive Quality. Examples: • Checkstyle with additional custom rules • Verify that Script Services are not located in the internal package • Verify that @since javadoc tags have the correct format • Verify header licenses • Backward compatibility checks with Revapi • Enforcer checks • Verify we don't use Commons Logging or Log4j (since we use SLF4J) • Verify that Test Percentage Coverage don't go down Source: http://dev.xwiki.org/xwiki/bin/view/Community/Building
  • 9. Continuous Integration • Some jobs with -Pquality profile to perform Quality checks • Catching false positives before sending mail. Examples: • JVM crash • GitHub connection issue • X Display not ready for UI tests • Display screenshot of failing test in job report • Started using Jenkinsfile for xwiki-contrib • Pipeline Job to generate full TPC Source: http://ci.xwiki.org/
  • 10. Tests (1/3) • Unit tests: JUnit + Mockito • Integration tests with automatic component testing and injection. Custom JUnit @Rule • Functional UI tests with JUnit + Selenium/WebDriver • Page Object strategy • WCAG tests • HTML5 validity tests • Manual tests (performance + QA @ XWiki SAS • Total TPC = 73.2% Source: http://dev.xwiki.org/xwiki/bin/view/Community/Testing
  • 11. Tests (2/3) - Manual Tests Source: http://test.xwiki.org
  • 12. Tests (3/3) - Manual Tests
  • 13. XWiki Days • Every Thursday • Examples • Bug Fixing Day (BFD) • Test Improvement Day • Deprecation Fixing Day • Improvement Fixing Day • Doc Improvement Day • Pull Request Day • Worked really well for BFD Source: http://dev.xwiki.org/xwiki/bin/view/Community/XWikiDays
  • 14. Governance - General • Complete separation from XWiki SAS since 2005-2006 • Employees are not committers • xwiki.org has its own governance rules (similar to the ASF) • Committership • Voting: +1, 0, -1 (72 hours) • Only 1 non-XWiki SAS committer needed to guarantee honesty! • Lazy consensus • All decisions done by committers and community (non-binding)
  • 15. Governance - Marketing (1/2) • Governance for website • Question: How to reconcile XWiki SAS need for marketing and keep it fair? • Sponsoring Companies • At least 1 active committer • Active = at least 1 commit / year • Top Sponsoring Company (TSC) = company with the most active committers (= XWiki SAS) Source: http://dev.xwiki.org/xwiki/bin/view/Community/Governance
  • 16. Governance - Marketing (2/2) • Marketing allowed on: • Download page • Support page (for professional support) • TSC allowed to gather emails and redistribute to other SC (if >= 3 active committers) Source: http://dev.xwiki.org/xwiki/bin/view/Community/Governance • SC can have their Extensions repo by default in XWiki is >= 3 active committers • TSC can advertise on extensions.xwiki.org
  • 17. Roadmap • Time-boxed releases every month (3w RC and 1w final) Source: http://www.xwiki.org/xwiki/bin/view/Roadmaps/
  • 18. Release Process • Ongoing Release Notes and reference documentation • Marked in JIRA with 2 custom fields • Rolling Release Managers Source: http://dev.xwiki.org/xwiki/bin/view/ReleasePlans/ • Create Release Plan for the release
  • 19. Release Process - Plan (1/2) Source: http://dev.xwiki.org/xwiki/bin/view/ReleasePlans/
  • 20. Release Process - Plans (2/2) • Release in JIRA • Check that all issues are documented • Check Release Notes • Import translations • Build the Release • Create mail announcement • Push to Maven Central • Update Docker official image • etc Source: http://dev.xwiki.org/xwiki/bin/view/ReleasePlans/ReleasePlan845
  • 21. Committers Diversity • XWiki SAS: 38 • Core Committers: 17 (11 actives) • Contrib Committers: 69 (17 from XWiki SAS, 22 active) • 64% of Core Committers are from XWiki SAS • But 90%+ of code committed by XWiki SAS devs • Problem: XWiki SAS hires contributors… XWiki SAS Contrib Committers Core
 Committers 21 6 11 6 46
  • 22. Why Community-Driven for XWiki? • In 2005: Copied from ASF, Community over Code • But community-driven model under attack • Not enough contributions, 90%+ of code from XWiki SAS • Creates separation in company (those working in OSS vs others) • Why continue? • Love of open community by founders • Ethics:“real open source” • Senior developer retention & HR <— over 8 years in dev team • Still getting some contributions (translations, support help, extensions, etc) • Increased usage? Having a deciding community means that even if company goes away the project can live on? • We want other companies and individuals to make a living on XWiki!
  • 23. Increasing Contributions (1/2) • Idea 1: Slim down the core into modules and extensions • Concept of Extensions in XWiki, that can be installed at runtime • Moved from ‘xwiki’ GitHub org to ‘xwiki-contrib’ and still going on • Anyone given commit permissions on ‘xwiki-contrib’ • Idea 2: XWiki SAS hires more devs • Idea 3: Good dev documentation • Idea 4: Feeling of welcome and good support on IRC + Forums
  • 24. Increasing Contributions (2/2) • Idea 5: Make it easy to perform some type of contributions, e.g. http://l10n.xwiki.org for translations • Idea 6:Why would people contribute when they just need to ask and wait a bit to see it done? • Idea 7: If some devs work too fast then occasional contributors cannot follow up Not easy. Maybe it’s just not possible when there’s a company paying devs to work on project?
  • 25. Measuring Progress - Active Installs Source: http://dev.xwiki.org/xwiki/bin/view/Community/ProjectHealth • Opt out mechanism • Send anonymous data (no IP recorded) • Send XWiki version, Java version, Servlet Container, Installed Extensions & versions, Distributions
  • 26. Future • XWiki Foundation to officially separate open source project from XWiki SAS company • CLA Discussion (ex Amazon) • CI functional tests executing on various environments inside Docker containers • Work on reducing flaky tests number • Automate performance tests • Unbreakable build with automatic merge on Release branch when CI jobs passes (using Pipeline) • Maybe more Paying Apps (XWiki SAS).Too many users don’t play the open source game… Idea: • Open source • Free for anyone who shows a contribution to OSS