Build Workshop 3: Build Hard With A Purpose
Having a common build infrastructure at Eclipse.org is important and we're taking steps to get there.
As experienced software developers, we all know that release engineering is an essential part of building high-quality frameworks and tools. Motivated by our desire to reduce the manual overhead of cross-project release engineering for the upcoming coordinated releases of Eclipse 3.5 and 4.0, it's time for another meeting of the minds.
We really appreciate all the ideas, but please come prepared to show them in action, and be prepared to delegate tasks to implement the solution on Eclipse servers.
Nick suggested Wed, Thu, Fri Oct 22, 23, 24. Bjorn likes that and has already purchased airplane tickets to Ottawa for those dates, though has since had to cancel. Perhaps we'll be able to network remotely? See below for remote options.
It has also been suggested that Oct 22 will be "Provision Hard With A Purpose" day (a p2 Dev Workshop, in the same style as the Build Workshop to follow -- minimal talk, maximum coding), followed by two days of Build(ing) Hard. Attendees are welcome to attend the p2 event, the build event, or both. Pascal has cancelled the p2 event due to a lack of developer interest.
- Oct 22 12pm BW3 begins. Discuss requirements, ideas, plans, limitations, etc. over lunch.
- Oct 22 1 or 1:30pm. Coding begins in earnest.
- Oct 22 6 or 7pm. Break for food; perhaps escape to a pub for some lively build, provisioning, PDE, Eclipse, ... discussion & drinks?
- Oct 23 9am. Coding resumes. Evening to be similar to previous, unless a better idea is suggested. Perhaps the locals know of something entertaining we can do?
- Oct 24 9am. Coding resumes, final day. Day ends around 5 or 6pm.
See below for Entertainment ideas.
The event will most likely be held at the Eclipse Foundation offices in Ottawa .
Setting up a GotoMeeting.. TBD.
- To agree on the shape and scope of the working system: what we want it to look like in all its glory, how projects will use it, how they'll interact with it, what the results will be, where they will be, what the inputs will be, how people will specify the inputs, etc.
- To agree on architecture: what we want the various pieces to do in the system.
- To assess where all the pieces of contributed code are today.
- To create a plan for moving from assessment (3) to architecture (2) in support of a working system (1).
- To spend the rest of the available time building the system (1).
Some discussion points may be:
- do we move forward with "un-Modeling-ifying" and "un-vserver-ifying" the current Common Modeling Build to make it more Tools/Tech friendly?
- do we replace web UI with Eclipse UI, eg., with Buckminster?
- do we replace shell scripts w/ java & xml, again, eg., Buckminster?
- do we try something completely different?
- http://build.eclipse.org/hudson ?
- do we make the build as generic as possible so that it doesn't require a server to run. i.e. allow building/testing within the eclipse ide.
- do we seperate the pieces better so that different build systems can be used...i.e. cron jobs, cruisecontrol, or luntbuild. Some build systems already handle project dependencies and will manage checking out of the code. Breaking up the system into various pieces will allow greater flexibility on how the build is deployed into a production build server.
- do we discuss the inclusion of product builds not just plugin builds?
As with the previous Build Workshop, the real goal (5) is to get some concrete work done. That may include completing the GEF build system or creating a new variant for building another Tools project, such as VE (which hasn't had formal releases in years due to a shortage of devs (but no shortage of community interest)).
If you have had, or will have, build and/or release engineering responsibilities for an Eclipse project, please consider attending.
It is important for attendees to have real-world knowledge of their build system - this is not a meeting for managers, it's a workshop for do-ers. You are also welcome to attend if you have substantial related experience and a willingness to contribute to the workshop's goals.
How to register
Like the last one, this will be an informal event, but we'd like to know who's interested in attending. Please sign below with Name & Role and/or Responsibility, and how you can attend.
Also, please ensure you're subscribed to the following mailing lists:
- https://dev.eclipse.org/mailman/listinfo/dash-dev (Common Build discussions)
- https://dev.eclipse.org/mailman/listinfo/cross-projects-issues-dev (Cross-Project discussions)
- Denis Roy, Eclipse Foundation, innocent bystander
- Nick Boldt, JBoss, a division of Red Hat, Modeling Project Release Engineer, organizer (in Ottawa from Wed noon to Fri evening; VIA Rail)
- Andrew Overholt, Red Hat, Linux Distros, p2
- Pascal Rapicault, IBM, PDE Build, p2
- Andrew Niefer, IBM, PDE Build, p2
- Chris Butt, Progress Software (Formerly of IONA Technologies), Build/Release Engineer
Remote access may be in the form of an impromptu IRC channel, like #eclipse-dash, or perhaps via the Eclipse XMPP server. Could also try using shared editing via ECF, or we could go the conference call or VoIP route. To Be Announced.
- Bjorn Freeman-Benson, Eclipse Foundation, organizer
- David Carver, STAR, WTP Incubator for XSL Tools, VEX - I can attend via conference call and web conferencing.
- Ted Kubaska, ECF Builds
Like any good EclipseCON tutorial, the workshop will start with talk, then move into actual hands-on coding. No more than half a day should be spent on discussion!
Delegation of Tasks
Assuming that our intent is to continue from June's workshop, here are a number of tasks that can be delegated to others so that we don't spend most of the time "watching others code."
- [PHP, mysql] replace dependency of web UI and commandline scripts on promoteToEclipse.*.properties (for Ant & shell) and _common.php (for PHP & shell) files with database queries into Foundation database - build configuration should be done in the Portal; should cache results locally too, in case db cannot be accessed or for offline testing?
- [PHP, server config] fix broken links in web UI as a result of dissimilar path structure; see /modeling/includes/scripts.php for getPWD() and loadDir*() methods
- [PHP, Ant, .releng] port Tools-PDT build to Dash CBI system (as with Tools-GEF system)
- [shell, crontab, PHP? JS? HTML?] port new features in Modeling build to Dash CBI build (eg., cvs tag & release & build integration); polish integration by adding web UI?
- [Ant, .releng] change build process to no longer need to scp Master zip to build.eclipse; instead, just copy file locally
- [Ant, .releng] change build process to no longer need to ssh-check for signed Master zip on build.eclipse; instead, just check for file locally
- [Ant, .releng] change build process to use PDE Packager instead of custom ant script for SDK/runtime/examples zip assembly (after Master is built & signed)
- [PHP] refactor PHP scripts to be more object-based (vs. reusable functions & nested include/require files)
- [PHP] refactor build UI to be less project-with-one-or-more-components oriented
- [PHP, mysql?] refactor web UI to use fewer project/component/path variables: instead of "/gef", "gef", and "/tools/gef" (contrast with "/modeling/emf", "cdo", "/modeling/emf/cdo"), use an object which can be queried for all the various required string forms, labels, names & paths. Use Foundation/Portal project definition as key ("modeling.emf.cdo" or "tools.gef")?
- Denis is going to the Senators hockey game, so he won't be available for evening activities.
- Go Karting. Burn Rubber, Fuel, Oil and Calories all in one convenient location.
- Canadian War Museum. See Tanks, Machine Guns, Missiles, and Rifles and maybe learn something about them. Closes at 8pm on Thursday.
- Dinner & Beers on the Byward Market
We intend come away with a working system that can be community tested and blogger approved . A longer report will be linked here: Build Workshop 3: Build Harder With A Purpose/Report.