CSS Build and Update System
Kunal Shroff
EPICS Spring Collaboration Meeting, June 2010
Aix-en-Provence
CSS Design
2
Eclipse RuntimeOSGi (Equinox)
Java Virtual Machine
IDE with CSS applications
CSS UI
CSS Core UI
Eclipse RCP UI
Eclipse IDE
CSS Headless
Eclipse RCP
CSS Core
CSS appl.CSS appl.CSS appl.
CSS appl.CSS appl.
UI CSS appl.
Slide stolen from DESY
CSS Mercurial repository
Distributed revision control• Offline operation• Changesets based
HgEclipse – mercurial plugin for eclipse• DVCS with best support• Clone, push, pull, commit• Add, remove, merge• Browse history
CSS build The Plug-in Development Environment (PDE)
• The usual way of building is using the Export wizard which requires
- launching eclipse IDE- Creating the target- Setting up the workspace- Lots of user interaction
Headless build system• Run from command line
CSS headless build
Generic Headless build ./build
• Download & untars eclipse in a temp directory
• Creates the buildDirectory by collecting all the required plugins and features
Site specific• product plugins/feature• build.properties• category.xml
are obtained from the css/product/site/…
CSS Continuous Integration SystemUsing Hudson
Building/testing software projects continuously• Detects and fixes
integration problems continuously
• Automate Deployment – publishes the update site to sourceforge
• Makes the build process transparent.
• Saves time and effort
Eclipse p2 – update management
p2 provides a provisioning platform for Eclipse-based applications• Update your RCP and OSGi applications• Provide a mechanism to install and manage new features• Provide a mechanism to manage different configurations• Manage your developers target platforms
CSS-NSLSII
p2 enabled product CSS-NSLSII update site
• http://cs-studio.sourceforge.net/nsls2/dev-updates
Install/update preferences.• List of update sites known to CSS• Update configuration options
- Self updating applications- Update from cloud- User initiated update
CSS-NSLSII update
Conclusions
Restructured repository Generic headless build system Continuous Integration with hudson p2 for installation and update management
Questions