Jump to: navigation, search

Difference between revisions of "Athena Common Build"

(Ongoing Development)
(Getting Started)
 
(25 intermediate revisions by 4 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
+
  
 
= Sources =
 
= Sources =
  
* '''Metagen Wizards for creating plugin, feature, and .releng projects''' ([[JET_Transforms/Wizards_for_creating_project_meta_data|GSoC 2008]] project, incubating)
+
In order of currency:
:* cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/technology -Q co -d org.eclipse.metagen org.eclipse.soc/athena
+
  
 
* '''Dash Common Build''' (beta, in progress, v4, ''2009?'')
 
* '''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
 
:* 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)
 
* '''Modeling Common Build''' (stable release, v3, 2008)
Line 60: Line 96:
 
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&component=Common+Builder&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&component=Common+Builder open a new bug].
+
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 =
 
= 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 1: Build Hard]]
 
* [[Build Workshop 2: Build Harder]]
 
* [[Build Workshop 2: Build Harder]]
* [[Build Workshop 3: Build Hard With A Purpose]] -- [[Build Workshop 3: Build Hard With A Purpose/Report|Report]]
+
* [[Build Workshop 3: Build Hard With A Purpose]]
* [http://www.eclipse.org/projects/project-plan.php?planurl=http://www.eclipse.org/dash/athena/project-info/plan.xml&component=Athena Project Plan (Draft)]
+
* [[Build Workshop 4: Code's Free So Build Hard]]
  
 
[[Category:Dash Project]]
 
[[Category:Dash Project]]
 
[[Category:Eclipse Technology Project]]
 
[[Category:Eclipse Technology Project]]
[[Category:Common Builder]]
+
[[Category:Athena Common Build]]
 +
[[Category:Releng]]

Latest revision as of 14:06, 23 March 2010

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.

Requirements

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

End User

System

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

To Be Done

Cross-Project Integration

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

Enhancements

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 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)

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

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.

Ongoing Development

Past Workshops