Towards A Common Build Infrastructure: Designing For Reusability

Similar documents
EMFT Mint (Incubation) 0.7 Ganymede Simultaneous Release Review

API Tooling in the Eclipse SDK

EMF Compare Ganymede Simultaneous Release

EMF Compare Galileo Simultaneous Release

GMF 2.0 Europa Simultaneous Release

Unified Modeling Language (MDT UML2) 3.0 Galileo Simultaneous Release Review. 4 June, 2009

EMF Ganymede Simultaneous Release

Extending TPTP for Database Unit Testing

Acceleo Galileo Simultaneous Release

EMFT 1.0 Release Review (OCL, Query, Transaction, and Validation)

Object Constraint Language (MDT OCL) 1.3 Galileo Simultaneous Release Review

Setting up Java environment for Project Capuchin development with Sony Ericsson phones

Creating Custom Dojo Widgets Using WTP

Eclipse Data Tools Platform (DTP) 1.8 Release Review. Eclipse DTP PMC May 28, 2010

EMF Europa Simultaneous Release

The Galilean Moons of Eclipse

Generating Specification Documents from Models using BIRT

WSDM = Web Services Distributed Management, an open standard/specified ratified by OASIS

Papyrus: Advent of an Open Source IME at Eclipse (Redux)

Tools for mobile Linux Release Review Dec 2009

Extending the JavaScript Development Toolkit

TPTP 4.7 Release Review -- One Quick Foil What s new

Eclipse Foundation, Inc. Copyright 2005 by Intel, IBM, Scapa Technologies and others and made available under the EPL v1.0 1

Innovate 2013 Automated Mobile Testing

EAXML Demonstration Platform on Artop/Sphinx.

Software Development Kit

Streaming with Project Capuchin for Adobe Flash Lite developers

AppDev StudioTM 3.2 SAS. Migration Guide

Dali JPA Tools Project Graduation Review

Composer Guide for JavaScript Development

ECLIPSE JAVA DOCUMENTATION

Integrate IBM Rational Application Developer and IBM Security AppScan Source Edition

DOC2MODEL. This document is a docuware for creation review and describes the doc2model project.

e4 Project 0.9 Release Review

Cadena 2.0: Install Guide

AD105 Introduction to Application Development for the IBM Workplace Managed Client

Install Guide. Version 1.0 Demonstration. Copyright 2007 MGH

Equinox Project 3.6 Release Review

Introduction to Eclipse

SCA Tools project Creation Review. July

6.170 Laboratory in Software Engineering Eclipse Reference for 6.170

EMC Documentum Composer

ActiveSpaces Transactions. Quick Start Guide. Software Release Published May 25, 2015

MDT OCL Goes Generic. Introduction to OCL and Study of the Generic Metamodel and API. Christian W. Damus IBM Rational Software OCL Committer

Eclipse Automotive Working Group

Eclipse 4.x Compatibility Layer: What's hot? What's not?

Getting the Most from Eclipse

ZK Mobile The Quick Start Guide

Project Capuchin Bridging Flash Lite and Java ME in Sony Ericsson phones

FREQUENTLY ASKED QUESTIONS

TPF Toolkit for WebSphere Studio V3 V Using an Internal Update Site

Core Services SSL Installation Guide. Service Pack 9, July 2007

Developing Applications With Java And UML By Paul R. Reed Jr.

Series 40 6th Edition SDK, Feature Pack 1 Installation Guide

The ImageJ Eclipse Howto

Index. Symbols. /**, symbol, 73 >> symbol, 21

Eclipse Packaging Project

What s new in CDT 4.0 and beyond. Doug Schaefer QNX Software Systems CDT Project Lead

designed to enable you to create a foundation for your own plugin project.

EMC Documentum Composer

IBM Rational Application Developer for WebSphere Software, Version 7.0

Introduction to Eclipse

Eclipse Data Tools Platform (DTP) 0.7 Release Review. Eclipse DTP PMC March 8, 2006

Using Smartphone devices with IBM WebSphere Portlet Factory

Graphiti Release Review

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

Tivoli Web Solutions. Upgrade Notes

SAS Web Infrastructure Kit 1.0. Overview, Second Edition

Embedded Rich Client Platform (ercp) 1.2 Release Review

What s New in the IBM Lotus Notes Client. Kevin O Connell, Consulting Manager, IBM Asia Pacific

Revolutionize the Way You Work With IMS Applications Using IBM UrbanCode Deploy Evgeni Liakhovich, IMS Developer

Using CVS Repositories with SAS

Buckminster. Ganymede Review. May, Cloudsmith Inc - Made available under the Eclipse Public License.

Lotus Learning Management System R1

Leverage Rational Application Developer v8 to develop OSGi application and test with Websphere Application Server v8

Migrate early, migrate often! JDK release cadence strategies

TIBCO ActiveMatrix BusinessWorks Plug-in for Microsoft SharePoint Installation

Isight Component Development 5.9

IBM Operational Decision Manager Version 8 Release 5. Configuring Operational Decision Manager on Java SE

Provisioning WPF based WP Composite Applications to Expeditor

Patient Identifier Cross-reference Consumer. Architecture & API Documentation. Version srrenly{at}us{dot}ibm{dot}com Sondra R Renly

CHAPTER 6. Java Project Configuration

TIBCO ActiveMatrix BusinessWorks Plug-in for Microsoft SharePoint Installation

IBM Workplace TM Collaboration Services

Zest: Move Review. Transition from Mylyn to GEF. Component Lead: R. Ian Bull. University of Victoria & IBM Centre for Advanced Studies

Silk Central Release Notes

IBM Rational Software Architect

Platform SDK Deployment Guide. Platform SDK 8.1.2

SSL Installation Guide. Service Pack 9, July 2007

CS279 Course Overview. Joe Hoffert Distributed Real-time Embedded (DRE) Group Institute for Software Integrated Systems Vanderbilt University

BPS79- Sample Reports View

About Xcode and iphone SDK

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik

Start Up Benoît Langlois / Thales Global Services Eclipse (EMFT) EGF 2011 by Thales; made available under the EPL v1.

Simple to purchase, flexible to use

Equinox Framework: How to get Hooked

IBM Software Configuration Library Manager Advanced Edition for z/os, Version 1.2

OHF ATNA Audit Client. Architecture & API Documentation. Version seknoop[at]us[dot]ibm[dot]com Sarah Knoop

SCA Tools: new & noteworthy

ArcGIS Runtime SDK for Java: Building Apps. Mark Baird

Transcription:

Towards A Common Build Infrastructure: Designing For Reusability Nick Boldt, Release Engineer Eclipse Modeling Project IBM Rational Software Toronto, Canada 1

Agenda History of EMFT / Modeling Project Builds Release engineering Building Testing Publishing 2

History of EMFT / Modeling Project Builds Started with one build, OCL, Nov 2005 By July 2006, there were 10 heterogeneous component builds Including GEF, there are now 20 with 10 more coming! 3 rd party jars (including Orbit) As many as 12 upstream dependencies (Eclipse, EMF, UML2, OCL, GEF, GMF,...) JDK TM 1.4 / 5.0 3

Agenda History of EMFT / Modeling Project Builds Release engineering Building Testing Publishing 4

Release engineering: Building Organize Templatize Centralize 5

Release engineering: Building :: Organize Organize releng code for simplicity & reuse Simplified operation one web page which fires one shell script which sets up environment and launches Ant script 6

Release engineering: Building :: Templatize Code duplication is bad, but not entirely avoidable Extract duplication and similarities into templates with TODO markers for where to insert differences Easier introduction of new components 8

Release engineering: Building :: Centralize Extract contents of components scripts into a single script Execute scripts with commandline parameters or userinitiated web selections parameters For repetitive steps (eg., weekly builds) use properties files to set per-project unique attributes and minimize script API 9

Release engineering: Testing Integrate Irritate? Investigate 10

Release engineering: Testing :: Integrate Integrate JUnit testing into all builds Integrate test status reporting into build download / status review webpage Integrate status reporting into email notification, with links to JUnits, log, details, and status 11

Release engineering: Testing :: Irritate? Publish all types of test results to encourage test-driven development Every bug fix should include a new JUnit test to both reproduce the problem and validate the fix Make test errors obvious on downloads webpage; make email notifications concise and immediate 12

Release engineering: Testing :: Investigate Logfile viewer for build and test logs to more easily find problems Test results page (replacement for default) 13

Release engineering: Publishing Release Reuse Recycle 15

Release engineering: Publishing :: Release 4+ Zips per component JUnit test results Update Manager jars + shared site*.xml 1 RSS feed per component Ganymede Update Site Contributions (*.sc) Newsgroup and/or email notifications 16

Release engineering: Publishing :: Reuse Shared web UI calls shell script using one properties file per component for default settings, plus commandline options/overrides Update Manager jars are generated from SDK zip contents Online javadoc is generated from.doc plugin contents, with string substitution to resolve cross-project links (eg., to help.eclipse.org) 18

[promote] Started 14:18:28. Executing with the following options: -sub uml2 [loading./promotetoeclipse.uml2.properties] -cvsbranch HEAD -branch 2.2.0 -buildid I200803011358 -announce -coordsite ganymede -email codeslave@ca.ibm.com [promote] [14:18:29] Create target drop folder [coordsite] [14:29:08] Ganymede Update Site [coordsite] [14:29:11] Searching for features: org.eclipse.uml2 2.2.0.v200703011358 [coordsite] [14:29:13] done. [promote] Temporary files purged [announce] Announce new build in newsgroup (eclipse.modeling.mdt.uml2)... 200 utils.eclipse.org InterNetNews NNRP server 381 PASS required 281 Ok 340 Ok, recommended ID <es79ic$o4l$1@utils> 240 Article posted <es79ic$o4l$1@utils.eclipse> 205. [announce] done.

Release engineering: Publishing :: Recycle Binary-compatible build rename script Rename zips/jars/md5s Change strings in text files RSS feed is used as input to Release Notes database Files changed per bug, by author, by date range, by component Bugs fixed per build, per component, per CVS branch Bugzilla update script Update Bugzilla by closing bugs fixed per release 20

Resources http://wiki.eclipse.org/user:nickb EMFT, MDT Websites: http://www.eclipse.org/modeling/emft/ http://www.eclipse.org/modeling/mdt/ Downloads, Release Notes, Search CVS Useful Eclipse Wiki Docs: http://wiki.eclipse.org/modeling_project_releng http://wiki.eclipse.org/search_cvs http://wiki.eclipse.org/category:releng 23

Legal Notices Copyright IBM Corp., 2007-2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation, in the United States, other countries or both. Rational and the Rational logo are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries or both. Java and all Java-based marks, among others, are trademarks or registered trademarks of Sun Microsystems in the United States, other countries or both. Eclipse and the Eclipse logo are trademarks of Eclipse Foundation, Inc. Other company, product and service names may be trademarks or service marks of others. THE INFORMATION DISCUSSED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY. WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION, IT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, AND IBM SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO, SUCH INFORMATION. ANY INFORMATION CONCERNING IBM'S PRODUCT PLANS OR STRATEGY IS SUBJECT TO CHANGE BY IBM WITHOUT NOTICE.