1 / 15

CSS Build and Update System

CSS Build and Update System. Kunal Shroff EPICS Fall 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.

sutton
Download Presentation

CSS Build and Update System

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSS Build and Update System Kunal Shroff EPICS Fall Collaboration Meeting, June 2010 Aix-en-Provence

  2. 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

  3. CSS Repository : Architecture • http://cs-studio.sourceforge.net/ • Restructured based on • Functionality and usage • Build system requirements • Criteria • core/: provide contributions to the CSS framework • applications/: plugins/features used by one or more CSS applications • build/: contains the build scripts • product/<siteName>/: site’s product plugin, site specific configuration files and features

  4. CSS Repository : Mercurial • Distributed SCM • Improved scalability • Changeset support • Offline operation • no single point of failure • HgEclipse – mercurial plugin for eclipse • DVCS with best support • Clone, push, pull, commit • Add, remove, merge • Browse history • Hudson plugin

  5. CSS Repository : CVS  Hg • Lossless transition from CVS to Hg

  6. 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

  7. CSS headless build : requirements • Generic Headless build • Simple and easily adaptable for new CSS products • Reuses default build scripts provided by PDE build system • Requires minimum configuration. Minor modification to • Build.properties • Plugin/feature.lists

  8. CSS headless build : build steps • ./build.sh NSLS2 • Create Target (the group of plugins the CSS product is built against) • Downloads and untars eclipse RCP + Delta pack + all other third party plugins. • Create BuildDirectory (all the plugins/features to be built) • Collects the core,application and site specific plugins and features to be built • Build (uses the PDE build system) • Launches “headless” eclipse. • Builds using antRunner applications and the default product.xml build scripts.

  9. 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

  10. CSS Common Product • Continuous Integration with Hudson • Ensures satisfaction of Build requirements • This can be done by simply adding a dependency to the XYZ plugin in the product definition file. • The plugin also needs to be added to the plugins.list in the cs-studio/product/COMMON/plugins.list. • Make sure that all the plugins required by XYZ are also added to both the product definition and the plugin.lists file. • Does not guarantee that nothings broken • org.cssstudio.testsuite

  11. 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

  12. 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

  13. CSS-NSLSII update

  14. Conclusions • Restructured repository • Generic headless build system • Continuous Integration with hudson • p2 for installation and update management

  15. Questions

More Related