SlideShare une entreprise Scribd logo
1  sur  23
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 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
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
Implementation
Source Management
Distributed Version Control (Git)
Clone remote sources to a local repository
  https://github.com/xwiki
Create 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 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
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
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
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
Functional Tests
UI Tests (Selenium/WebDriver)
  Page Objects strategy
Validation (Web Standards)
Security (XSS)
Accessibility
  Web Content Accessibility Guidelines
Fix regressions and update tests
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
Release
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
Release process
Maintenance
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
Overview
Thank you!

Contenu connexe

Tendances

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 meetupViktor Sadovnikov
 
Wiki Refactoring as Mind Map Reshaping (CAiSE'12)
Wiki Refactoring as Mind Map Reshaping (CAiSE'12)Wiki Refactoring as Mind Map Reshaping (CAiSE'12)
Wiki Refactoring as Mind Map Reshaping (CAiSE'12)Gorka Puente
 
Learning Git and GitHub - BIT GDSC.pdf
Learning Git and GitHub - BIT GDSC.pdfLearning Git and GitHub - BIT GDSC.pdf
Learning Git and GitHub - BIT GDSC.pdfJayprakash677449
 
UC San Diego Campus LISA 2014 - Source Code Management
UC San Diego Campus LISA 2014 - Source Code ManagementUC San Diego Campus LISA 2014 - Source Code Management
UC San Diego Campus LISA 2014 - Source Code ManagementMatthew Critchlow
 
Lessons from Contributing to WebKit and Blink
Lessons from Contributing to WebKit and BlinkLessons from Contributing to WebKit and Blink
Lessons from Contributing to WebKit and BlinkBruno Abinader
 

Tendances (8)

XWiki on GlassFish TV
XWiki on GlassFish TVXWiki on GlassFish TV
XWiki on GlassFish TV
 
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
 
Wiki Refactoring as Mind Map Reshaping (CAiSE'12)
Wiki Refactoring as Mind Map Reshaping (CAiSE'12)Wiki Refactoring as Mind Map Reshaping (CAiSE'12)
Wiki Refactoring as Mind Map Reshaping (CAiSE'12)
 
Learning Git and GitHub - BIT GDSC.pdf
Learning Git and GitHub - BIT GDSC.pdfLearning Git and GitHub - BIT GDSC.pdf
Learning Git and GitHub - BIT GDSC.pdf
 
UC San Diego Campus LISA 2014 - Source Code Management
UC San Diego Campus LISA 2014 - Source Code ManagementUC San Diego Campus LISA 2014 - Source Code Management
UC San Diego Campus LISA 2014 - Source Code Management
 
Lessons from Contributing to WebKit and Blink
Lessons from Contributing to WebKit and BlinkLessons from Contributing to WebKit and Blink
Lessons from Contributing to WebKit and Blink
 
Enterprise Griffon
Enterprise GriffonEnterprise Griffon
Enterprise Griffon
 
Git version control
Git version controlGit version control
Git version control
 

En vedette (10)

XWiki's Development Process
XWiki's Development ProcessXWiki's Development Process
XWiki's Development Process
 
Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...
Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...
Interconectarea Semantica A Datelor In Contextul Managementului Informatiilor...
 
Mashups
MashupsMashups
Mashups
 
XWiki Improvements Review (ver 2.4 - 5.1)
XWiki Improvements Review (ver 2.4 - 5.1)XWiki Improvements Review (ver 2.4 - 5.1)
XWiki Improvements Review (ver 2.4 - 5.1)
 
XWiki Usability Testing Sessions
XWiki Usability Testing SessionsXWiki Usability Testing Sessions
XWiki Usability Testing Sessions
 
Evolution of CSS
Evolution of CSSEvolution of CSS
Evolution of CSS
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Visual Communication through Infographics
Visual Communication through InfographicsVisual Communication through Infographics
Visual Communication through Infographics
 
Captcha
CaptchaCaptcha
Captcha
 
Visual Cryptography
Visual CryptographyVisual Cryptography
Visual Cryptography
 

Similaire à 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 ProjectVincent Massol
 
SMWCon Spring 2012 SMW+ Team Dev Update
SMWCon Spring 2012 SMW+ Team Dev UpdateSMWCon Spring 2012 SMW+ Team Dev Update
SMWCon Spring 2012 SMW+ Team Dev UpdateJesse Wang
 
XWiki SAS development practices
XWiki SAS development practicesXWiki SAS development practices
XWiki SAS development practicesVincent Massol
 
Enabling an Accessible Web 2.0
Enabling an Accessible Web 2.0Enabling an Accessible Web 2.0
Enabling an Accessible Web 2.0bgibson
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Dennys Hsieh
 
Jist tutorial semantic wikis and applications
Jist tutorial   semantic wikis and applicationsJist tutorial   semantic wikis and applications
Jist tutorial semantic wikis and applicationsJesse Wang
 
The site architecture you can edit
The site architecture you can editThe site architecture you can edit
The site architecture you can editOpen Stack
 
Lombardi Wikis - collaborative information development, with DITA XML in the mix
Lombardi Wikis - collaborative information development, with DITA XML in the mixLombardi Wikis - collaborative information development, with DITA XML in the mix
Lombardi Wikis - collaborative information development, with DITA XML in the mixguest47c1f1
 
Lombardi Wikis - a CenTex DITA UG panel presentation
Lombardi Wikis - a CenTex DITA UG panel presentationLombardi Wikis - a CenTex DITA UG panel presentation
Lombardi Wikis - a CenTex DITA UG panel presentationLisa Dyer
 
Sgmp Wiki - GenNxt Wiki Concepts
Sgmp Wiki - GenNxt Wiki ConceptsSgmp Wiki - GenNxt Wiki Concepts
Sgmp Wiki - GenNxt Wiki Conceptsprasadburra
 
What is WebDAV - uploaded by Murali Krishna Nookella
What is WebDAV - uploaded by Murali Krishna NookellaWhat is WebDAV - uploaded by Murali Krishna Nookella
What is WebDAV - uploaded by Murali Krishna Nookellamuralikrishnanookella
 
Gerência de Configuração com Maven
Gerência de Configuração com MavenGerência de Configuração com Maven
Gerência de Configuração com Mavenelliando dias
 
Writing Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly SwarmWriting Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly SwarmComsysto Reply GmbH
 
Semantic Tagging for the XWiki Platform with Zemanta and DBpedia
Semantic Tagging for the XWiki Platform with Zemanta and DBpediaSemantic Tagging for the XWiki Platform with Zemanta and DBpedia
Semantic Tagging for the XWiki Platform with Zemanta and DBpediaElena-Oana Tabaranu
 

Similaire à Development Process, the XWiki way (20)

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
 
Developing XWiki
Developing XWikiDeveloping XWiki
Developing XWiki
 
Comparisons Wiki vs CMS
Comparisons Wiki vs CMSComparisons Wiki vs CMS
Comparisons Wiki vs CMS
 
SMWCon Spring 2012 SMW+ Team Dev Update
SMWCon Spring 2012 SMW+ Team Dev UpdateSMWCon Spring 2012 SMW+ Team Dev Update
SMWCon Spring 2012 SMW+ Team Dev Update
 
XWiki SAS development practices
XWiki SAS development practicesXWiki SAS development practices
XWiki SAS development practices
 
Mla2011 final draft
Mla2011 final draftMla2011 final draft
Mla2011 final draft
 
Enabling an Accessible Web 2.0
Enabling an Accessible Web 2.0Enabling an Accessible Web 2.0
Enabling an Accessible Web 2.0
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
 
Jist tutorial semantic wikis and applications
Jist tutorial   semantic wikis and applicationsJist tutorial   semantic wikis and applications
Jist tutorial semantic wikis and applications
 
The site architecture you can edit
The site architecture you can editThe site architecture you can edit
The site architecture you can edit
 
Building XWiki
Building XWikiBuilding XWiki
Building XWiki
 
Lombardi Wikis - collaborative information development, with DITA XML in the mix
Lombardi Wikis - collaborative information development, with DITA XML in the mixLombardi Wikis - collaborative information development, with DITA XML in the mix
Lombardi Wikis - collaborative information development, with DITA XML in the mix
 
Lombardi Wikis - a CenTex DITA UG panel presentation
Lombardi Wikis - a CenTex DITA UG panel presentationLombardi Wikis - a CenTex DITA UG panel presentation
Lombardi Wikis - a CenTex DITA UG panel presentation
 
Sgmp Wiki - GenNxt Wiki Concepts
Sgmp Wiki - GenNxt Wiki ConceptsSgmp Wiki - GenNxt Wiki Concepts
Sgmp Wiki - GenNxt Wiki Concepts
 
Ticer2005
Ticer2005Ticer2005
Ticer2005
 
What is WebDAV - uploaded by Murali Krishna Nookella
What is WebDAV - uploaded by Murali Krishna NookellaWhat is WebDAV - uploaded by Murali Krishna Nookella
What is WebDAV - uploaded by Murali Krishna Nookella
 
Gerência de Configuração com Maven
Gerência de Configuração com MavenGerência de Configuração com Maven
Gerência de Configuração com Maven
 
Writing Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly SwarmWriting Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly Swarm
 
Semantic Tagging for the XWiki Platform with Zemanta and DBpedia
Semantic Tagging for the XWiki Platform with Zemanta and DBpediaSemantic Tagging for the XWiki Platform with Zemanta and DBpedia
Semantic Tagging for the XWiki Platform with Zemanta and DBpedia
 
Subversion and bug tracking
Subversion and bug trackingSubversion and bug tracking
Subversion and bug tracking
 

Dernier

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Dernier (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

Development Process, the XWiki way

  • 1. Development Process, the XWiki way Marius Florea, Eduard Moraru Ecaterina Moraru, Raluca Stavro www.xwiki.org
  • 2. What is XWiki ? Developing collaborative application using wiki paradigm 5 top level projects LGPL open source license Mainly developed in JAVA
  • 4. Adding a new feature
  • 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
  • 8. Source Management Distributed Version Control (Git) Clone remote sources to a local repository https://github.com/xwiki Create local feature branch
  • 9. Build Management New Maven module Project Descriptor Directory structure Dependencies Project hierarchy and inheritance Build plugins Local and remote repositories
  • 10. Developing Environment (IDE) Eclipse Import maven projects (m2e plugin) Apply checkstyle rules (checkstyle plugin) Format code (formatting rules) Remote Java application debugging
  • 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
  • 15. Functional Tests UI Tests (Selenium/WebDriver) Page Objects strategy Validation (Web Standards) Security (XSS) Accessibility Web Content Accessibility Guidelines Fix regressions and update tests
  • 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

Notes de l'éditeur

  1. Mention clirr and clover as build plugins
  2. Mention how to install jars and xars for testing purposes.
  3. What does push to remote branch mean and what`s the difference between a push and a commit (distributed)
  4. Component FixFor Fields...