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
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
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
Applications: Apache Velocity + JSR223: Python, Groovy, JavaScript, PHP, Ruby, etc.
Internal (scripting) and external APIs for CRUD data operations.
Open Development, not just open Source
Frequent releases = Early feedback
No single Release Manager + documented process = low bus factor
Users, devs, contributors
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.
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
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
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
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
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
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)
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)
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)
IntelliJ: OSS licenses
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