SlideShare a Scribd company logo
XWiki's Development Process
Eduard Moraru
2016
About XWiki
●
Web platform on top of
the wiki paradigm
●
Structured data, scripting,
applications
●
Java platform, polyglot
applications (JSR223)
●
XWiki Enterprise – the
product
●
LGPL license, since 2004
●
www.xwiki.org
XWiki Features
● Modular and highly extensible
●
Version control, attachments, user and rights
management, subwiki and subpages,
comments, wiki syntax and WYSIWYG editor,
macros, notifications, skins, search,
import/export, apps, etc.
● Use cases:
● Knowledge sharing and collaboration
● Intranets, knowledge base, public websites,
groupware, education, etc.
XWiki Enterprise
Community
● Users, Contributors and Core committers
●
Core and Contrib
●
Meritocracy
●
Governed by committers
● New committers voted based on contribution
● Lazy consensus
●
Important changes go through voting
●
+1, +/-0, -1
● Core committers have veto (-1) rights
Roadmap and Releases
● Timeboxing vs Feature-driven
●
Open roadmap for each minor release
●
1 major release per year
●
Minor releases (2.5 months)
● Dev releases (1-3 weeks)
● Bugfix releases
●
Support 3 versions (Dev, Stable & LTS)
● Release Manager Roster (taking turns)
●
Release Process on xwiki.org
Process: Community
Process: Mails
Process: Chat
Process: Issues
Process: Code
Process: Continuous Integration
Process: Quality
Process: Builds
Process: Product
Process: Websites
Process – Recap
●
Communication: Mailing Lists + IRC
● Issue Tracking: Jira
● Source Code Management: GitHub
● Continuous Integration: Jenkins
●
Build Repository: Nexus
● Documentation: (*.)xwiki.org
● Localization: l10n.xwiki.org
●
Extensions Repo: extensions.xwiki.org
● Code Quality: SonarQube
Dev Tools
● Source Control: Git
●
IDE: Eclipse, IntelliJ
●
Build Management: Maven 3
● Quality Control:
● Code style: Checkstyle
● Testing: JUnit/Mockito, Jacoco, Selenium 2
● Backwards compatibility: Revapi
Dev Principles
● High focus on quality
● dev.xwiki.org dedicated to dev documentation and
best practices
●
Enforcing coding style and min. test coverage
●
XWiki special days (Bug Fixing Days, etc.)
●
High focus on backwards compatibility
● Deprecation strategy
● Legacy modules
Statistics (1/2)
● 19 active committers
● 194 code contributors
●
60K commits
●
950K lines of code (Java)
●
67K mails
● 1K current subscribers
●
27.5K issues
●
(13% open; 53% bugs)
Statistics (2/2)
● 305 product releases
● (1 release every 15 days)
●
2.3M downloads
●
2200+ active instances
●
870+ extensions
● (200+ applications)
●
37 supported languages
● 9/12 years @ Google Summer of Code
Ways to Contribute
●
Pull Requests
●
github.com/xwiki
●
github.com/xwiki-contrib
● Translations
●
l10n.xwiki.org
● Documentation
●
xwiki.org
● New extensions
●
extensions.xwiki.org
Earning a living
● Multiple companies build their businesses on
top of XWiki
● XWiki.com is the main company sponsoring the
development of the project (since 2004)
● Professional Support
●
Consulting & Training
● Custom Development & Solutions
●
Hosting
●
Sustainable alternative to proprietary
Questions?
Thank you!
Eduard Moraru
Enygma2002

More Related Content

Similar to XWiki's Development Process

Development Process, the XWiki way
Development Process, the XWiki wayDevelopment Process, the XWiki way
Development Process, the XWiki way
Eduard Moraru
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Giovanni Toraldo
 
Open Chemistry: Input Preparation, Data Visualization & Analysis
Open Chemistry: Input Preparation, Data Visualization & AnalysisOpen Chemistry: Input Preparation, Data Visualization & Analysis
Open Chemistry: Input Preparation, Data Visualization & Analysis
Marcus Hanwell
 
JBoss @ CVUT FIT April 2013
JBoss @ CVUT FIT April 2013JBoss @ CVUT FIT April 2013
JBoss @ CVUT FIT April 2013
Vaclav Tunka
 

Similar to XWiki's Development Process (20)

Developing XWiki
Developing XWikiDeveloping XWiki
Developing XWiki
 
XWiki Enterprise 2.0 & Beyond
XWiki Enterprise 2.0 & BeyondXWiki Enterprise 2.0 & Beyond
XWiki Enterprise 2.0 & Beyond
 
XWiki Enterprise 2.0 & Beyond
XWiki Enterprise 2.0 & BeyondXWiki Enterprise 2.0 & Beyond
XWiki Enterprise 2.0 & Beyond
 
XWiki SAS development practices
XWiki SAS development practicesXWiki SAS development practices
XWiki SAS development practices
 
Development Process, the XWiki way
Development Process, the XWiki wayDevelopment Process, the XWiki way
Development Process, the XWiki way
 
Leading a Community-Driven Open Source Project
Leading a Community-Driven Open Source ProjectLeading a Community-Driven Open Source Project
Leading a Community-Driven Open Source Project
 
Join the Java Evolution GIDS Bangalore & Pune
Join the Java Evolution GIDS Bangalore & PuneJoin the Java Evolution GIDS Bangalore & Pune
Join the Java Evolution GIDS Bangalore & Pune
 
Crunching the numbers: Open Source Community Metrics at OSCON
Crunching the numbers: Open Source Community Metrics at OSCONCrunching the numbers: Open Source Community Metrics at OSCON
Crunching the numbers: Open Source Community Metrics at OSCON
 
Crunching the numbers: Open Source Community Metrics
Crunching the numbers: Open Source Community MetricsCrunching the numbers: Open Source Community Metrics
Crunching the numbers: Open Source Community Metrics
 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus Introduction
 
Dealing with large code bases. cd ams meetup
Dealing with large code bases. cd ams meetupDealing with large code bases. cd ams meetup
Dealing with large code bases. cd ams meetup
 
XWiki Aquarium Paris
XWiki Aquarium ParisXWiki Aquarium Paris
XWiki Aquarium Paris
 
Java overview and architecture
Java overview and architectureJava overview and architecture
Java overview and architecture
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)
 
Join the Java Evolution Baltimore/DC/Philly
Join the Java Evolution Baltimore/DC/PhillyJoin the Java Evolution Baltimore/DC/Philly
Join the Java Evolution Baltimore/DC/Philly
 
Open Chemistry: Input Preparation, Data Visualization & Analysis
Open Chemistry: Input Preparation, Data Visualization & AnalysisOpen Chemistry: Input Preparation, Data Visualization & Analysis
Open Chemistry: Input Preparation, Data Visualization & Analysis
 
Net Beans Jasig Jun2006
Net Beans Jasig Jun2006Net Beans Jasig Jun2006
Net Beans Jasig Jun2006
 
Node js vs golang -which one is better ?
Node js vs golang -which one is better ?Node js vs golang -which one is better ?
Node js vs golang -which one is better ?
 
Oslo Vancouver Onboarding
Oslo Vancouver OnboardingOslo Vancouver Onboarding
Oslo Vancouver Onboarding
 
JBoss @ CVUT FIT April 2013
JBoss @ CVUT FIT April 2013JBoss @ CVUT FIT April 2013
JBoss @ CVUT FIT April 2013
 

Recently uploaded

Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 

Recently uploaded (20)

Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 

XWiki's Development Process

  • 2. About XWiki ● Web platform on top of the wiki paradigm ● Structured data, scripting, applications ● Java platform, polyglot applications (JSR223) ● XWiki Enterprise – the product ● LGPL license, since 2004 ● www.xwiki.org
  • 3. XWiki Features ● Modular and highly extensible ● Version control, attachments, user and rights management, subwiki and subpages, comments, wiki syntax and WYSIWYG editor, macros, notifications, skins, search, import/export, apps, etc. ● Use cases: ● Knowledge sharing and collaboration ● Intranets, knowledge base, public websites, groupware, education, etc.
  • 5. Community ● Users, Contributors and Core committers ● Core and Contrib ● Meritocracy ● Governed by committers ● New committers voted based on contribution ● Lazy consensus ● Important changes go through voting ● +1, +/-0, -1 ● Core committers have veto (-1) rights
  • 6. Roadmap and Releases ● Timeboxing vs Feature-driven ● Open roadmap for each minor release ● 1 major release per year ● Minor releases (2.5 months) ● Dev releases (1-3 weeks) ● Bugfix releases ● Support 3 versions (Dev, Stable & LTS) ● Release Manager Roster (taking turns) ● Release Process on xwiki.org
  • 17. Process – Recap ● Communication: Mailing Lists + IRC ● Issue Tracking: Jira ● Source Code Management: GitHub ● Continuous Integration: Jenkins ● Build Repository: Nexus ● Documentation: (*.)xwiki.org ● Localization: l10n.xwiki.org ● Extensions Repo: extensions.xwiki.org ● Code Quality: SonarQube
  • 18. Dev Tools ● Source Control: Git ● IDE: Eclipse, IntelliJ ● Build Management: Maven 3 ● Quality Control: ● Code style: Checkstyle ● Testing: JUnit/Mockito, Jacoco, Selenium 2 ● Backwards compatibility: Revapi
  • 19. Dev Principles ● High focus on quality ● dev.xwiki.org dedicated to dev documentation and best practices ● Enforcing coding style and min. test coverage ● XWiki special days (Bug Fixing Days, etc.) ● High focus on backwards compatibility ● Deprecation strategy ● Legacy modules
  • 20. Statistics (1/2) ● 19 active committers ● 194 code contributors ● 60K commits ● 950K lines of code (Java) ● 67K mails ● 1K current subscribers ● 27.5K issues ● (13% open; 53% bugs)
  • 21. Statistics (2/2) ● 305 product releases ● (1 release every 15 days) ● 2.3M downloads ● 2200+ active instances ● 870+ extensions ● (200+ applications) ● 37 supported languages ● 9/12 years @ Google Summer of Code
  • 22. Ways to Contribute ● Pull Requests ● github.com/xwiki ● github.com/xwiki-contrib ● Translations ● l10n.xwiki.org ● Documentation ● xwiki.org ● New extensions ● extensions.xwiki.org
  • 23. Earning a living ● Multiple companies build their businesses on top of XWiki ● XWiki.com is the main company sponsoring the development of the project (since 2004) ● Professional Support ● Consulting & Training ● Custom Development & Solutions ● Hosting ● Sustainable alternative to proprietary

Editor's Notes

  1. Applications: Apache Velocity + JSR223: Python, Groovy, JavaScript, PHP, Ruby, etc. Internal (scripting) and external APIs for CRUD data operations.
  2. Open Development, not just open Source Frequent releases = Early feedback No single Release Manager + documented process = low bus factor
  3. Users, devs, contributors
  4. Users, Devs, Notifications (central) - roadmap discussions - ask for help - votes, proposals, announcements - BFDs - asynchronous - publicly indexed by (3+) services and searchable by google - also has a forum-like view with nabble Alternative: forum - needs account, need to go on the forum to interact (even if notified by mail), etc.
  5. Synchronous discussions IRC Bot (XWiki) Application on xwiki.org - wiki modifs and code commits live notifications - Jira link completion - chat archive Freenode.org for OS projects and interractions Open, standard and well known protocol that already has (and is easy to add) many integrations even if maybe less sexy
  6. OSS license - Dashboards, filters, reports - Used in Roadmap tracking - more powerful than github issues - we started with Jira, hard to move away Contributors can assign and close issues - issues closed by PRs have proper assignee Core + Contrib exts GitHub integration We do not close older issues Mandatory documentation and release notes fields checked by the release process
  7. GitHub – the place to be, social, etc. xwiki & xwiki-contrib organizations Pull Requests Many code reviews for core, less picky for contrib extensions Cvs, svn, git (Hub) Alternative: Bitbucket - not interested in Mercurial or private repos We store at least 3 branches for all supported versions
  8. 3 set of builds, 1 for each supported vers. Full integration, snapshots, up to distrib - unit tests, integration/functional tests for each module (minimal test instance) - security, web/accessibiltity standards - performance - quality (fails build if coverage not me + reports) - sonar metrics Screenshot of failing UI tests (even for older builds) See what commit breaks build Incremental builds on commit, full builds on manual trigger
  9. Quality level analysis - coverage, metrics, best practices, severity levels, architecture/design issues, etc. - technical debt - gives you a place to start when you want to improve something
  10. OSS License Proxy multiple repos + maven.xwiki.org/releases /externals /snapshots Core + Contrib exts Allows extensions to depend on each other and distributions to package extensions Used by maven builds of individual modules (without needing to rebuild everything)
  11. Product even if the result, is still connected to the project's infrastructure, even after it's installed and running (through EM/DW) Updates and new extensions from e.x.o (repository/index) - actually downloaded from either e.x.o or nexus.xwiki.org (if in core or contrib)
  12. Repo index + extension documentation Admin, install, config, high-level doc on xwiki.org + blog dev.xwiki.org – dev doc, best practices, etc. Translations Eating our own dogfood, various use cases of Xwiki (KB, App store, translation tool, etc.) Free to edit, monitored on IRC live and on mail (digests/watchlist)
  13. IntelliJ: OSS licenses
  14. Open by default Going open source is not an anti-pattern for a business Having a business contribute to a project helps the project overall