Difference between revisions of "Athena Common Build"

From Eclipsepedia

Jump to: navigation, search
m
(Getting Started)
 
(31 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{stub}}
+
= Getting Started =
  
Eventually there will be bugs opened for many of these items. For now, see {{bug|238626}}. Order of listed items below should not be taken as priority sequence.
+
Getting started with a PDE build can be daunting. Athena aims to make that simpler by streamlining the setup process by setting & creating logical defaults, but you can always extend and override.
 +
 
 +
To get started with Athena, you can read the following:
 +
 
 +
* [[Common_Build_Infrastructure/Getting_Started|Getting Started Guide]]
 +
* [[Common_Build_Infrastructure/Getting_Started/Build In Eclipse|Getting Started In Eclipse]]
 +
* [[Common_Build_Infrastructure/Getting_Started/Build In Hudson|Getting Started In Hudson]]
 +
 
 +
* [[:Category:Athena_Common_Build|All Other Documents]]
 +
 
 +
Who's using Athena? [https://build.eclipse.org/hudson/view/Athena%20CBI/ Here's the list]. See also [[:Category:Athena_Common_Build_Users|Common Build Users]].
  
 
= Requirements =
 
= Requirements =
 +
 +
Order of listed items below should not be taken as priority sequence. For prioritization, see [http://www.eclipse.org/projects/project-plan.php?planurl=http://www.eclipse.org/dash/athena/project-info/plan.xml&component=Athena Project Plan (Draft)], or the following bugzilla queries:
 +
 +
* [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&product=Dash+Athena&order=bugs.target_milestone%2Cbugs.resolution&target_milestone=Past&target_milestone=M1&target_milestone=M2&target_milestone=M3&target_milestone=M4&target_milestone=M5&target_milestone=M6&target_milestone=M7&target_milestone=RC Committed Bugs]
 +
* [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&product=Dash+Athena&order=bugs.target_milestone%2Cbugs.resolution&target_milestone=---&target_milestone=Future Proposed Bugs]
  
 
== End User ==
 
== End User ==
Line 11: Line 26:
 
== System ==
 
== System ==
  
* UI for running, exploring, validating & promoting builds; UI for killing / purging invalid builds
+
===Implemented ===
* automatic build cleanup / expiry
+
[[Image:Athena-CBI-Hudson.png|thumb|right]]
* configuration to be done in Portal
+
* [https://build.eclipse.org/hudson/view/Athena%20CBI/ UI for running, exploring, validating & promoting builds; UI for killing / purging invalid builds]
* crontab-based solution for scheduling builds
+
* [https://build.eclipse.org/hudson/view/Athena%20CBI/ continuous builds (build queuing, repo watching)]
* Cruise Control to allow build queuing, scheduling, and cvs repo watching (continuous builds)
+
 
* support for java-only, simple project builds (not products)
+
* [[Common Build Infrastructure/Publishing|solution for scheduling builds (eg. crontab-based)]]
* support for building on Linux only (no Win or Mac shared libraries)
+
* [[Common Build Infrastructure/Publishing|automatic build cleanup / expiry]]
* builds must be reproduceable (cvs tagging)
+
 
 +
* support for building on Linux <strike>only (no Win or Mac shared libraries)</strike> - can build on Win/Lin/Mac
 +
* builds must be reproduceable (tagging)
 
* one build per project or component
 
* one build per project or component
* mechanism for producing signed, packed, and digested update sites w/ p2 metadata
+
* mechanism for producing [http://bugs.eclipse.org/253286 signed, packed], and <strike>digested</strike> [http://bugs.eclipse.org/252035 update sites w/ p2 metadata] (digest no longer required in Eclipse 3.4+)
 +
* support for Eclipse SCM systems ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=253276 cvs + svn])
 +
* <strike>configuration to be done in Portal</strike> - cancelled to allow Athena to be portable enough to run at home, not just at eclipse.org
 +
 
 +
* support for java-only, simple project builds (not products)
 +
* Other [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Dash+Athena&target_milestone=---&target_milestone=Past&target_milestone=M1&target_milestone=M2&target_milestone=M3&target_milestone=M4&target_milestone=M5&target_milestone=M6&target_milestone=M7&target_milestone=RC&target_milestone=Future&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= Closed Bugs]
 +
 
 +
=== To Be Done ===
 +
 
 +
* See [http://www.eclipse.org/projects/project-plan.php?planurl=http://www.eclipse.org/dash/athena/project-info/plan.xml&component=Athena Project Plan] or [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Dash+Athena&target_milestone=---&target_milestone=Past&target_milestone=M1&target_milestone=M2&target_milestone=M3&target_milestone=M4&target_milestone=M5&target_milestone=M6&target_milestone=M7&target_milestone=RC&target_milestone=Future&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= Open Bugs]
  
 
== Cross-Project Integration ==
 
== Cross-Project Integration ==
  
* mechanism for optionally contributing update site feature(s) to a coordinated release site, a la [[Ganymede]]
+
* mechanism for optionally contributing update site feature(s) to a coordinated release site, a la [[Galileo]]
  
 
= Enhancements =
 
= Enhancements =
  
* support feeding dependencies to build from update site instead of from zips
+
===Implemented ===
 +
 
 +
* support feeding dependencies to build from update site instead of from zips (Linux Tools uses CDT's update site zip as input; tests use generated project Update zip as runtime)
 +
* support SVN (map files are supported, psf support may be coming one day)
 +
 
 +
===In Progress===
 +
 
 +
* convert bash scripts that “do work” to Ant scripts w/ custom tasks; submit these back to PDE build or releng.basebuilder for reuse
 +
 
 +
===To Be Done===
 +
 
 
* support getting latest dependencies from RSS feeds
 
* support getting latest dependencies from RSS feeds
 
* support building & testing against multiple versions of target platform
 
* support building & testing against multiple versions of target platform
Line 34: Line 70:
 
* automatic cleanup of downloaded/cached dependencies
 
* automatic cleanup of downloaded/cached dependencies
 
* support Buckminster
 
* support Buckminster
* support SVN
 
 
* support Maven-based dependencies
 
* support Maven-based dependencies
* convert bash scripts that “do work” to Ant scripts w/ custom tasks; submitting these back to PDE build or releng.basebuilder for reuse
+
* convert bash scripts that “do calculations” to PHP-based web apis, so they can be called by web, shell, ant, or java (since UI is now Hudson is probably no longer required)
* convert bash scripts that “do calculations” to PHP-based web apis, so they can be called by web, shell, ant, or java
+
  
= Source =
+
= Sources =
  
* cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/modeling -Q co -d org.eclipse.dash.commonbuilder org.eclipse.dash/org.eclipse.dash.commonbuilder
+
In order of currency:
 +
 
 +
* '''Dash Common Build''' (beta, in progress, v4, ''2009?'')
 +
:* cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/technology -Q co -d org.eclipse.dash.commonbuilder org.eclipse.dash/athena/org.eclipse.dash.commonbuilder
 +
 
 +
* '''Metagen Wizards for creating plugin, feature, and .releng projects''' ([[JET_Transforms/Wizards_for_creating_project_meta_data|GSoC 2008]] project, incubating)
 +
:* cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/technology -Q co -d org.eclipse.metagen org.eclipse.soc/athena
 +
 
 +
* '''Modeling Common Build''' (stable release, v3, 2008)
 +
:* cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/modeling -Q co -d org.eclipse.modeling.common.releng releng-common
 +
 
 +
* '''EMFT Common Build''' (stable release, v2, 2007)
 +
:* ''deprecated by Modeling Common Build''
 +
 
 +
* '''EMF Build''' (stable release, v1, 2006)
 +
:* cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/modeling -Q co -d org.eclipse.emf.releng org.eclipse.emf/org.eclipse.emf.releng
  
 
= Contributing =
 
= Contributing =
  
 
We're always looking for people to contribute. You can drop us a line at dash-dev@eclipse.org.  
 
We're always looking for people to contribute. You can drop us a line at dash-dev@eclipse.org.  
 +
 +
You can also subscribe to the [mailto:dash.commonbuilder-inbox@eclipse.org Dash Commonbuilder Bugzilla inbox], [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Technology&product=Dash+Athena&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&resolution=---&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= find an open bug to work on] (we love patches!), or [https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Dash+Athena open a new bug].
 +
 +
= Ongoing Development =
 +
 +
* [[Common_Build_Infrastructure/Getting_Started|Getting Started Guide]]
 +
* [[Build Workshop Report]] - updated (bi)weekly
 +
* [http://www.eclipse.org/projects/project-plan.php?planurl=http://www.eclipse.org/dash/athena/project-info/plan.xml&component=Athena Project Plan (Draft)]
 +
* [[:Category:Athena_Common_Build|More Wiki Docs]]
 +
 +
== Past Workshops ==
 +
 +
* [[Build Workshop 1: Build Hard]]
 +
* [[Build Workshop 2: Build Harder]]
 +
* [[Build Workshop 3: Build Hard With A Purpose]]
 +
* [[Build Workshop 4: Code's Free So Build Hard]]
  
 
[[Category:Dash Project]]
 
[[Category:Dash Project]]
 
[[Category:Eclipse Technology Project]]
 
[[Category:Eclipse Technology Project]]
 +
[[Category:Athena Common Build]]
 +
[[Category:Releng]]

Latest revision as of 14:06, 23 March 2010

Contents

[edit] Getting Started

Getting started with a PDE build can be daunting. Athena aims to make that simpler by streamlining the setup process by setting & creating logical defaults, but you can always extend and override.

To get started with Athena, you can read the following:

Who's using Athena? Here's the list. See also Common Build Users.

[edit] Requirements

Order of listed items below should not be taken as priority sequence. For prioritization, see Project Plan (Draft), or the following bugzilla queries:

[edit] End User

[edit] System

[edit] Implemented

Athena-CBI-Hudson.png
  • support for building on Linux only (no Win or Mac shared libraries) - can build on Win/Lin/Mac
  • builds must be reproduceable (tagging)
  • one build per project or component
  • mechanism for producing signed, packed, and digested update sites w/ p2 metadata (digest no longer required in Eclipse 3.4+)
  • support for Eclipse SCM systems (cvs + svn)
  • configuration to be done in Portal - cancelled to allow Athena to be portable enough to run at home, not just at eclipse.org
  • support for java-only, simple project builds (not products)
  • Other Closed Bugs

[edit] To Be Done

[edit] Cross-Project Integration

  • mechanism for optionally contributing update site feature(s) to a coordinated release site, a la Galileo

[edit] Enhancements

[edit] Implemented

  • support feeding dependencies to build from update site instead of from zips (Linux Tools uses CDT's update site zip as input; tests use generated project Update zip as runtime)
  • support SVN (map files are supported, psf support may be coming one day)

[edit] In Progress

  • convert bash scripts that “do work” to Ant scripts w/ custom tasks; submit these back to PDE build or releng.basebuilder for reuse

[edit] To Be Done

  • support getting latest dependencies from RSS feeds
  • support building & testing against multiple versions of target platform
  • provide source builds to facilitate the build-from-source scenario (eg., Linux distros)
  • automatic cleanup of downloaded/cached dependencies
  • support Buckminster
  • support Maven-based dependencies
  • convert bash scripts that “do calculations” to PHP-based web apis, so they can be called by web, shell, ant, or java (since UI is now Hudson is probably no longer required)

[edit] Sources

In order of currency:

  • Dash Common Build (beta, in progress, v4, 2009?)
  • cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/technology -Q co -d org.eclipse.dash.commonbuilder org.eclipse.dash/athena/org.eclipse.dash.commonbuilder
  • Metagen Wizards for creating plugin, feature, and .releng projects (GSoC 2008 project, incubating)
  • cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/technology -Q co -d org.eclipse.metagen org.eclipse.soc/athena
  • Modeling Common Build (stable release, v3, 2008)
  • cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/modeling -Q co -d org.eclipse.modeling.common.releng releng-common
  • EMFT Common Build (stable release, v2, 2007)
  • deprecated by Modeling Common Build
  • EMF Build (stable release, v1, 2006)
  • cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/modeling -Q co -d org.eclipse.emf.releng org.eclipse.emf/org.eclipse.emf.releng

[edit] Contributing

We're always looking for people to contribute. You can drop us a line at dash-dev@eclipse.org.

You can also subscribe to the Dash Commonbuilder Bugzilla inbox, find an open bug to work on (we love patches!), or open a new bug.

[edit] Ongoing Development

[edit] Past Workshops