• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Development Process, the XWiki way
 

Development Process, the XWiki way

on

  • 12,140 views

 

Statistics

Views

Total Views
12,140
Views on SlideShare
1,410
Embed Views
10,730

Actions

Likes
1
Downloads
11
Comments
0

10 Embeds 10,730

http://www.xwiki.org 10695
http://translate.googleusercontent.com 15
http://www.watch.xwiki.org 6
http://webcache-exp-test.googleusercontent.com 4
http://www.manager.xwiki.org 2
http://nexus.xwiki.org 2
http://main.xwiki.org 2
http://www.linkedin.com 2
http://207.46.192.232 1
https://twitter.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Mention clirr and clover as build plugins
  • Mention how to install jars and xars for testing purposes.
  • What does push to remote branch mean and what`s the difference between a push and a commit (distributed)
  • Component FixFor Fields...

Development Process, the XWiki way Development Process, the XWiki way Presentation Transcript

  • Development Process, the XWiki way Marius Florea, Eduard Moraru Ecaterina Moraru, Raluca Stavro www.xwiki.org
  • What is XWiki ? Developing collaborative application using wiki paradigm 5 top level projects LGPL open source license Mainly developed in JAVA
  • What is XWiki?http://www.xwiki.org
  • Adding a new feature
  • Release Cycles1 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 developmentTimeboxing vs Feature-drivenEarly feedback
  • RoadmapDiscuss new feature ideas (mailing lists, IRC)Roadmap meeting List of features to develop List of tasks and Jira issues jira.xwiki.orgInvestigation phase UI/UX mockup(s) Design and implementation details pageDiscuss investigation results and vote
  • Implementation
  • Source ManagementDistributed Version Control (Git)Clone remote sources to a local repository https://github.com/xwikiCreate local feature branch
  • Build Management New Maven module Project Descriptor Directory structure Dependencies Project hierarchy and inheritance Build plugins Local and remote repositories
  • Developing Environment (IDE)Eclipse Import maven projects (m2e plugin) Apply checkstyle rules (checkstyle plugin) Format code (formatting rules) Remote Java application debugging
  • Types of modulesComponents (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
  • Committing your codeReview your changes1..* Local commits (local branch)Push local branch to remote repositoryEach commit triggers notification mails Code review DiscussionsSend a mail with the status of your work Ask for feedback
  • Merging your codeQuality assurance phase Apply code review suggestions Interface localization l10n.xwiki.orgMerge your remote branch into master A couple of days before the release Solve any existing merge conflicts
  • Continuous IntegrationEach commit triggers a build on Jenkins ci.xwiki.orgRuns tests (Unit and functional)Build reportsNotification mailsPush Maven artifact snapshots to Nexus nexus.xwiki.orgOthers can now depend on your code
  • Functional TestsUI Tests (Selenium/WebDriver) Page Objects strategyValidation (Web Standards)Security (XSS)Accessibility Web Content Accessibility GuidelinesFix regressions and update tests
  • DocumentationDocument the feature extensions.xwiki.org User/Admin/Developer documentationLink the Jira issue to the documentationUpdate the release notes www.xwiki.org/xwiki/bin/view/ReleaseNotes/ Backwards compatibility and migration notesClose the Jira issue
  • Release
  • Release processMake sure the build passes on CIRelease on Jira (review opened issues, create new versions)Release on maven Run automated release script Publish release artifacts on NexusAnnounce the new release Write release notes Update xwiki.org, wikipedia, wikimatrix Blog, Twitter, announcement mail
  • Release process
  • Maintenance
  • Maintenance and iterationsReceive bug or improvement reports Jira gardening upon received notification mailsFix issues and write tests to avoid future regressionsKeep an eye on the triggered CI buildClose resolved Jira issuesProvide support on the public mailing list related to your feature
  • Overview
  • Thank you!