110 likes | 124 Views
Explore a comprehensive CSS build and update system for Eclipse IDE, featuring Mercurial, a headless build system, continuous integration with Hudson, and update management with p2.
E N D
CSS Build and Update System Kunal Shroff EPICS Spring Collaboration Meeting, June 2010 Aix-en-Provence
CSS Design IDE with CSS applications CSS UI CSS Headless CSS appl. CSS appl. CSS appl. CSS appl. UI CSS appl. CSS appl. Eclipse IDE CSS Core UI CSS Core Eclipse RCP UI Eclipse RCP Eclipse Runtime OSGi (Equinox) Java Virtual Machine 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
Conclusions • Restructured repository • Generic headless build system • Continuous Integration with hudson • p2 for installation and update management