5. Release Cycles
1 cycle per year (v4.x)
6 minor releases per cycle (v4.0-v4.5)
2.5 months per minor release
1-3 Milestones (3 weeks each)
1-2 Release Candidates (2 weeks each)
Iterative development
Timeboxing vs Feature-driven
Early feedback
6. Roadmap
Discuss new feature ideas (mailing lists, IRC)
Roadmap meeting
List of features to develop
List of tasks and Jira issues
jira.xwiki.org
Investigation phase
UI/UX mockup(s)
Design and implementation details page
Discuss investigation results and vote
11. Types of modules
Components (jar)
Interface and multiple implementations
Inversion of control (dependency injection)
Registration
Unit testing (TDD)
XWiki applications (xar)
Collection of wiki pages (XML files)
Structured data (objects)
Scripts (Velocity, Groovy, etc.)
JavaScript/CSS extensions
12. Committing your code
Review your changes
1..* Local commits (local branch)
Push local branch to remote repository
Each commit triggers notification mails
Code review
Discussions
Send a mail with the status of your work
Ask for feedback
13. Merging your code
Quality assurance phase
Apply code review suggestions
Interface localization
l10n.xwiki.org
Merge your remote branch into master
A couple of days before the release
Solve any existing merge conflicts
14. Continuous Integration
Each commit triggers a build on Jenkins
ci.xwiki.org
Runs tests (Unit and functional)
Build reports
Notification mails
Push Maven artifact snapshots to Nexus
nexus.xwiki.org
Others can now depend on your code
16. Documentation
Document the feature
extensions.xwiki.org
User/Admin/Developer documentation
Link the Jira issue to the documentation
Update the release notes
www.xwiki.org/xwiki/bin/view/ReleaseNotes/
Backwards compatibility and migration notes
Close the Jira issue
18. Release process
Make sure the build passes on CI
Release on Jira (review opened issues, create
new versions)
Release on maven
Run automated release script
Publish release artifacts on Nexus
Announce the new release
Write release notes
Update xwiki.org, wikipedia, wikimatrix
Blog, Twitter, announcement mail
21. Maintenance and iterations
Receive bug or improvement reports
Jira gardening upon received notification mails
Fix issues and write tests to avoid future
regressions
Keep an eye on the triggered CI build
Close resolved Jira issues
Provide support on the public mailing list related
to your feature