Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Development Process, the XWiki way

13 403 vues

Publié le

Publié dans : Technologie
  • Soyez le premier à commenter

Development Process, the XWiki way

  1. 1. Development Process, the XWiki way Marius Florea, Eduard Moraru Ecaterina Moraru, Raluca Stavro www.xwiki.org
  2. 2. What is XWiki ? Developing collaborative application using wiki paradigm 5 top level projects LGPL open source license Mainly developed in JAVA
  3. 3. What is XWiki?http://www.xwiki.org
  4. 4. Adding a new feature
  5. 5. 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
  6. 6. 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
  7. 7. Implementation
  8. 8. Source ManagementDistributed Version Control (Git)Clone remote sources to a local repository https://github.com/xwikiCreate local feature branch
  9. 9. Build Management New Maven module Project Descriptor Directory structure Dependencies Project hierarchy and inheritance Build plugins Local and remote repositories
  10. 10. Developing Environment (IDE)Eclipse Import maven projects (m2e plugin) Apply checkstyle rules (checkstyle plugin) Format code (formatting rules) Remote Java application debugging
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. Functional TestsUI Tests (Selenium/WebDriver) Page Objects strategyValidation (Web Standards)Security (XSS)Accessibility Web Content Accessibility GuidelinesFix regressions and update tests
  16. 16. 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
  17. 17. Release
  18. 18. 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
  19. 19. Release process
  20. 20. Maintenance
  21. 21. 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
  22. 22. Overview
  23. 23. Thank you!