eXo Software Factory
Harder, Better, Faster, Stronger
• Software Factory Team	

• Development rules and recommendations	

• Methods and Tools	

• To improve quality and productivity	

• Teams training	

• To improve ours skills	

• Support & Services	

• About tools, methods, processes, and technical
Software Factory Team
• Development practices	

• Unit tests, integration tests, functional
tests, web tests, performances tests	

• Code quality	

• Java/JEE & Production Architecture	

• Development tools	

• Build, Packaging, IDE ..
Skills Catalog
• Documentations	

• http://int.exoplatform.org/portal/g/:spaces:development_standards/
development_standards	

• http://developer.exoplatform.org (should be the place to go)	

• https://wiki-int.exoplatform.org/display/exoSoftwareFactory/Home
(deprecated but but not moved in intranet)	

• Activity/Requests tracked in Jira : 	

• https://jira.exoplatform.org/browse/SWF	

• Contact us : 	

• Email : exo-swf@exoplatform.com	

• Skype : aheritier
How are we working ?
SCM
Source configuration management
Git on GitHub
• https://github.com/exoplatform/	

• Blessed repositories 	

• Rights limited per profiles/roles	

• https://github.com/exodev/	

• Development repositories 	

• Pull/Push rights for all eXoers	

• https://github.com/exo-addons/	

• Platform Add-ons
Nexus
Binaries management
Nexus
Nexus for productivity
Nexus for
collaboration
Deploy 3rd Party Artifacts	

Collaborate with Internal
Repositories	

Distribute to the community with
Public Repositories	

Distribute to customers with
Private Repositories
Jira
Issues and tasks management
Jira
Jira with Jira Agile
Jira with Jira Capture
Jenkins
Automation and scheduling : Build,Tests, Deployment
Jenkins
Continuous
Integration
Build,Test and Deploy ASAP	

using Maven 2/3	

from sources (SVN,GIT	

googlecode, jboss, exo, github
repos) to Maven repositories
managed by Nexus (if build/tests
are passing)
Reporting
*-sonar jobs are loading data into
sonar to provide code analysis.	

*-site are generating Maven site on
projects.exoplatform.org	

They are launched once a day if
the codebase change otherwise
once per WE
Mobile developments - continuous
integration and deployment
Reporting and
dashboards
• Jenkins => Teams	

• Emails (email-ext plugin)	

• Teams => Jenkins	

• Dashboard views	

• Radiator views
Dashboards
Unstable Build
Notification
Build Failure
Notification
Radiator views
Sonar
Quality management
Sonar, a quality
dashboard
Sonar, analyze your
project
Sonar, Continuous
Improvement ?
Acceptance
Tests and validation platform
Acceptance
• Access to all test instances deployed each
night	

• Monitor features branches statuses
Acceptance
Acceptance
Fisheye & Crucible
Sources browsing and code review
Fisheye/Crucible
Teams Code Reviews
Asynchronous, distributed discussions
Have fully threaded conversations
about source code with your others.
Simply click on some lines to add
comments.
Comments can be displayed inline or
next to the code they refer to.
Flag a comment as a defect to
highlight it.
Teams Code Reviews
Manage reviews
Features
• Pre-commit: reviewing content that is not under version control. Upload a
piece of code, a file or cut-and-paste from your IDE.	

• Post-commit: reviews after the code is committed to the repository.	

• Moderated: reviews can have a moderator responsible for a review; creating,
approving, and determining when a review is finished.	

• Un-moderated: a streamlined process where the review author is the sole
person who starts and stops the review is a simple default.	

• Snippet: a pastebin service meets peer review - you can simply paste some
code and start discussing it with the team, without the need for any formal
code review workflow.	

• Changeset discussions: commit messages allow a developer to provide
information with a commit. Provide free form comments on commit
messages.
Browsing changesets, searching for files,
or uploading a patch to add content
You can use the classic review roles Moderator,
Author and Reviewer or let anyone do anything.
Only a title and code are needed to
start a Snippet Review.
Use change set comments as a
catalyst for code discussions.
Reviews evolve as your code evolves
Live updates and notifications
Teams Code Reviews
Dashboard & Reports
Activity Stream
Who is holding up
Which issues are being held up by
reviews?
Teams Code Reviews
Jira Integration
Create Jira issues
Resolve subtasks from Crucible
Create reviews from Jira
Follow reviews attached to a jira
project
Conclusion
SWF links
Git : 	

https://github.com/exoplatform	

https://github.com/exodev	

https://github.com/exo-addons	

Nexus :	

https://repository.exoplatform.org	

Jenkins : 	

https://ci.exoplatform.org	

Jira : 	

https://jira.exoplatform.org	

Fisheye/Crucible : 	

https://fisheye.exoplatform.org	

Sonar : 	

https://sonar.exoplatform.org	

Acceptance : 	

https://acceptance.exoplatform.org	

Maven sites : 	

https://projects.exoplatform.org
Questions

2014 August - eXo Software Factory Overview