eXo Software FactoryHarder, Better, Faster, Stronger
Friday, January 27, 12
• Software Factory Team
• Development rules and recommendations
• Methods and Tools
• To improve quality and productivity
• Teams training
• To improve ours skills
• Support & Accompaniment
• About tools, methods, processes, and technical
Software Factory Team
Friday, January 27, 12
• 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
Friday, January 27, 12
• Documentations are in ours WIKIs
• http://wiki-int.exoplatform.org/display/exoSoftwareFactory/Home
• Activity is tracked in Jira :
• http://jira.exoplatform.org/browse/SWF
• Contact us :
• Email : [email protected]
• Skype : aheritier
How are we working ?
Friday, January 27, 12
WIKI
Confluence
Friday, January 27, 12
Confluence
Friday, January 27, 12
SCMsSources management
Friday, January 27, 12
Subversion• https://svn.exoplatform.org/projects/
• Private and public R&D projects
• https://svn.exoplatform.org/exo-int/
• Private developments
• https://svn.exoplatform.org/cp
• Customers projects
• https://svn.exoplatform.org/sandbox/
• Sandbox
Friday, January 27, 12
Git
• https://git.exoplatform.org/public/
• Public projects
• https://git.exoplatform.org/private/
• Private projects
• Tests repositories
• https://git.exoplatform.org/public/tests-git/
• https://git.exoplatform.org/private/tests-git/
Proof of concept
Friday, January 27, 12
NexusBinaries management
Friday, January 27, 12
Nexus
Friday, January 27, 12
Nexus for productivity
Friday, January 27, 12
Nexus for collaborationDeploy 3rd Party ArtifactsCollaborate with Internal
RepositoriesDistribute to the community with
Public RepositoriesDistribute to customers with
Private Repositories
Friday, January 27, 12
JiraIssues and tasks management
Friday, January 27, 12
Jira
Friday, January 27, 12
Jira with Greenhopper
Friday, January 27, 12
Jira with Bonfire
Friday, January 27, 12
JenkinsAutomation and scheduling : Build, Tests, Deployment
Friday, January 27, 12
Jenkins
Friday, January 27, 12
Continuous Integration
Build, Test and Deploy ASAPUsing Maven 2/3
From sources in SVN or GITgooglecode, jboss, exo, github
reposTo Maven repositories
>100 jobs
Friday, January 27, 12
PackagingGenerate the full packaging of our
productsReady for demo or tests
Use upstream constraints and a large quiet period to not launch them to often
Use priority sorter plugin with a reduced priority
~15 jobs
Friday, January 27, 12
Mobile developments - continuous integration and deployment
Friday, January 27, 12
Reporting and dashboards
• Jenkins => Teams
• Emails (email-ext plugin)
• Teams => Jenkins
• Dashboard views
• Radiator views
Friday, January 27, 12
Dashboards
Friday, January 27, 12
Unstable Build Notification
Friday, January 27, 12
Build Failure Notification
Friday, January 27, 12
Radiator views
Friday, January 27, 12
Quality management• Sonar reports everyday if the code had changed
(polling)
• ~90 jobs
• Continuous deployment and integration or performances tests
• Jmeter
• Selenium
• JMXTrans / Graphite / Zabbix for monitoring
Friday, January 27, 12
SonarQuality management
Friday, January 27, 12
Sonar, a quality dashboard
Friday, January 27, 12
Sonar, analyze your project
Friday, January 27, 12
Sonar, Continuous Improvement ?
Friday, January 27, 12
AcceptanceTests platform
Friday, January 27, 12
Acceptance
Friday, January 27, 12
Fisheye & CrucibleSources browsing and code review
Friday, January 27, 12
Fisheye/Crucible
Friday, January 27, 12
Teams Code ReviewsAsynchronous, distributed discussions
Friday, January 27, 12
Have fully threaded conversations about source code with your others.
Friday, January 27, 12
Simply click on some lines to add comments.
Friday, January 27, 12
Comments can be displayed inline or next to the code they refer to.
Friday, January 27, 12
Flag a comment as a defect to highlight it.
Friday, January 27, 12
Teams Code ReviewsManage reviews
Friday, January 27, 12
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.
Friday, January 27, 12
Browsing changesets, searching for files, or uploading a patch to add content
Friday, January 27, 12
You can use the classic review roles Moderator, Author and Reviewer or let anyone do anything.
Friday, January 27, 12
Only a title and code are needed to start a Snippet Review.
Friday, January 27, 12
Use change set comments as a catalyst for code discussions.
Friday, January 27, 12
Reviews evolve as your code evolves
Friday, January 27, 12
Live updates and notifications
Friday, January 27, 12
Teams Code ReviewsDashboard & Reports
Friday, January 27, 12
Activity StreamFriday, January 27, 12
Who is holding up Friday, January 27, 12
Which issues are being held up by reviews?
Friday, January 27, 12
Teams Code ReviewsJira Integration
Friday, January 27, 12
Create Jira issuesFriday, January 27, 12
Resolve subtasks from Crucible
Friday, January 27, 12
Create reviews from JiraFriday, January 27, 12
Follow reviews attached to a jira project
Friday, January 27, 12
Conclusion
Friday, January 27, 12
SWF linksSubversion :
https://svn.exoplatform.org
Git :
https://git.exoplatform.org
Nexus :
http://repository.exoplatform.org
http://repository.exoplatform.vn
Jenkins :
https://ci.exoplatform.org
Jira :
https://jira.exoplatform.org
Fisheye/Crucible :
https://fisheye.exoplatform.org
Sonar :
https://sonar.exoplatform.org
Confluence :
https://wiki-int.exoplatform.org
Acceptance :
http://acceptance.exoplatform.org
Friday, January 27, 12
Questions
Friday, January 27, 12
Top Related