Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Ganymede Simultaneous Release"
m (→Two Classes of Participation) |
|||
(196 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | <div style="border: thin solid black; background-color: #F4FFF4; margin: 3px"><div style="margin: 4px"> | |
+ | This page is for '''developers''' of the June 2008 Ganymede Simultaneous Release. If you are a consumer of the Release, you'll want [[Ganymede Simultaneous Release/For Users | Ganymede Simultaneous Release For Users]]. | ||
+ | </div></div> | ||
+ | |||
+ | {{Succession Box| | ||
+ | before=[[Europa]]| | ||
+ | title=Ganymede | | ||
+ | years=2008| | ||
+ | after=[[Galileo]] | ||
+ | }} | ||
+ | |||
+ | ===Goal=== | ||
+ | The goal of the Ganymede [[Simultaneous Release]] was the same as last year's goal for Europa: to release N major Eclipse projects at the same time. We are doing this simultaneous release to support the needs of the ecosystem members who integrate Eclipse frameworks into their own software and products. While those product producers naturally accept the ultimate responsibility for their customers' experiences, Ganymede's goal is to eliminate uncertainty about project version numbers, and thus to allow ecosystem members to start their own integration, cross-project, and cross-product testing efforts earlier. Ganymede is about improving the productivity of the developers working on top of Eclipse frameworks by providing a more transparent and predictable development cycle; Ganymede is about developers helping developers serve the whole Eclipse community. | ||
+ | |||
+ | ''While Ganymede is about the simultaneous release of N projects, it is not a unification of the projects - each project remains a separate open source project operating with its own project leadership, its own committers, and its own project plan.'' | ||
===Projects=== | ===Projects=== | ||
Line 5: | Line 19: | ||
{| border="1" align="center" cellpadding="3" cellspacing="1" | {| border="1" align="center" cellpadding="3" cellspacing="1" | ||
− | ! Project | + | ! Project/''Component'' |
− | ! Project Lead(s) | + | ! Project/''Component'' Lead(s) |
− | ! | + | ! Release Eng'g |
! Offset | ! Offset | ||
+ | ! Ramp down Policy | ||
|- | |- | ||
− | | [http://www.eclipse.org/ | + | | |
+ | ====[http://www.eclipse.org/birt BIRT]==== | ||
+ | || Wenfeng Li || Xiaoying Gu || +2 || [[BIRT2.3_Rampdown_Policy | BIRT Ramp-down Policy ]] | ||
|- | |- | ||
− | | | + | | |
+ | ====[http://www.eclipse.org/buckminster Buckminster]==== | ||
+ | || Thomas Hallgren, Henrik Lindberg || Thomas Hallgren || +2 || [[Buckminster/Ganymede_Ramp-Down_Policy|Buckminster Ramp-down]] | ||
+ | |- | ||
+ | | | ||
+ | ====[http://www.eclipse.org/cdt CDT]==== | ||
+ | || Doug Schaefer || Vivian Kong || +1 || [[CDT/planning/5.0rampdown | CDT 5.0 Ramp-down]] | ||
+ | |- | ||
+ | | | ||
+ | ====[http://www.eclipse.org/dltk DLTK]==== | ||
+ | || Andrey Platov || Andrey Platov || +3 || [[DLTK_0.95_Project_Plan#Ramp_Down_Policy|DLTK 0.95 Ramp Down Policy]] | ||
+ | |- | ||
+ | | | ||
+ | ====[http://www.eclipse.org/dsdp/ DSDP] [http://www.eclipse.org/dsdp/dd/ DD]==== | ||
+ | || Pawel Piech || Ted Williams || +2 || [[DSDP/DD/DD_1.0_RampDownPolicy|DD Ramp-down]] | ||
+ | |- | ||
+ | | | ||
+ | ====[http://www.eclipse.org/dsdp/ DSDP] [http://www.eclipse.org/dsdp/tm/ TM]==== | ||
+ | || Martin Oberhuber || Martin Oberhuber || +2 || [[DSDP/TM/3.0_Ramp_down_Plan_for_Ganymede|TM Ramp-down]] | ||
+ | |- | ||
+ | | | ||
+ | ====[http://www.eclipse.org/datatools/ DTP]==== | ||
+ | || Brian Fitzpatrick || Xiaoying Gu || +1 || [[DTP Ganymede Rampdown Policy|DTP Ramp-down]] | ||
+ | |- | ||
+ | | | ||
+ | |||
+ | ====[http://www.eclipse.org/ecf/ ECF]==== | ||
+ | || Scott Lewis || Ted Kubaska/Scott Lewis || +1 || [[ECF_2.0.0/Ganymede_Ramp-Down_Policy | ECF Ramp-down]] | ||
+ | |- | ||
+ | | | ||
+ | ====[http://www.eclipse.org/eclipse/ The Eclipse Project]==== | ||
+ | :''[http://www.eclipse.org/platform Platform], [http://www.eclipse.org/jdt JDT], [http://www.eclipse.org/pde PDE], [http://www.eclipse.org/equinox Equinox]'' | ||
+ | || Philippe Mulet || Kim Moir<br/>[http://www.eclipse.org/eclipse/platform-releng/buildSchedule.html Build Schedule] || 0 || [http://www.eclipse.org/eclipse/development/freeze_plan_3.4.php Eclipse 3.4 Endgame plan] | ||
+ | |- | ||
+ | | | ||
+ | ====[http://www.eclipse.org/emf/ EMF]==== | ||
+ | :''[http://www.eclipse.org/modeling/emf/?project=emf#emf EMF (Core)], [http://www.eclipse.org/modeling/emf/?project=sdo#sdo SDO]'' | ||
+ | :''[http://www.eclipse.org/modeling/emf/?project=query#query Query], [http://www.eclipse.org/modeling/emf/?project=transaction#transaction Transaction], [http://www.eclipse.org/modeling/emf/?project=validation#validation Validation], | ||
+ | :''[http://www.eclipse.org/modeling/emft/?project=teneo#teneo Teneo]'' | ||
+ | :''[http://www.eclipse.org/modeling/emft/?project=net4j#net4j Net4j]'', ''[http://www.eclipse.org/modeling/emft/?project=cdo#cdo CDO]'' | ||
+ | || Ed Merks | ||
+ | :''Ed Merks'' | ||
+ | :''Christian Damus'' | ||
+ | :''Martin Taal'' | ||
+ | :''Eike Stepper'' | ||
+ | || Nick Boldt | ||
+ | || | ||
+ | +1<br/> | ||
+ | +2<br/> | ||
+ | +2<br/> | ||
+ | +1, +2 | ||
+ | ||[[Modeling_Project_Ramp_Down_Policy/Ganymede|Modeling Project<br/>Ramp-down]] | ||
+ | |- | ||
+ | | | ||
+ | |||
+ | ====[http://www.eclipse.org/modeling/emft EMFT]==== | ||
+ | :''[http://www.eclipse.org/emft/projects/search/ EMF Search]'' | ||
+ | :''[http://www.eclipse.org/emft/projects/compare/ EMF Compare]'' | ||
+ | :''[http://www.eclipse.org/modeling/emft/?project=ecoretools Ecore Tools]'' | ||
+ | :''[http://www.eclipse.org/modeling/emft/?project=mint#mint Mint]'' | ||
+ | || Ed Merks | ||
+ | :''Lucas Bigeardel'' | ||
+ | :''Cédric Brun'' | ||
+ | :''David Sciamma'' | ||
+ | :''Peter Nehrer'' | ||
+ | || <br/> | ||
+ | Lucas Bigeardel<br/> | ||
+ | Cédric Brun<br/> | ||
+ | Jacques Lescot<br/> | ||
+ | Peter Nehrer | ||
+ | || <br/> | ||
+ | +2 | ||
+ | ||[[Modeling_Project_Ramp_Down_Policy/Ganymede|Modeling Project<br/>Ramp-down]] | ||
+ | |- | ||
+ | | | ||
+ | |||
+ | ====[http://www.eclipse.org/epp/usagedata EPP]==== | ||
+ | || Markus Knauer | ||
+ | :''Wayne Beaton'' | ||
+ | || | ||
+ | Wayne Beaton | ||
+ | || +2 | ||
+ | || [http://wiki.eclipse.org/EPP/Ganymede_Ramp-Down_Policy EPP Ramp Down Policy] | ||
+ | |- | ||
+ | | | ||
+ | |||
+ | ====[http://www.eclipse.org/gef/ GEF]==== | ||
+ | || Anthony Hunter || Anthony Hunter || +1 || | ||
+ | [http://www.eclipse.org/gef/plan/gef_plan_3_4.php#RampDown GEF 3.4 Ramp-Down] | ||
+ | |- | ||
+ | | | ||
+ | ====[http://www.eclipse.org/gmf/ GMF]==== | ||
+ | || Richard Gronback || Max Feldman || +2 || rowspan="4" | [[Modeling_Project_Ramp_Down_Policy/Ganymede|Modeling Project<br/>Ramp-down]] | ||
+ | |- | ||
+ | | | ||
+ | ====[http://www.eclipse.org/modeling/mdt/ MDT]==== | ||
+ | :''[http://www.eclipse.org/modeling/mdt/?project=ocl#ocl OCL]'' | ||
+ | :''[http://www.eclipse.org/modeling/mdt/?project=uml2#uml2 UML2]'' | ||
+ | :''[http://www.eclipse.org/modeling/mdt/?project=uml2tools#uml2tools UML2 Tools]'' | ||
+ | :''[http://www.eclipse.org/modeling/mdt/?project=xsd#xsd XSD]'' | ||
+ | || Kenn Hussey | ||
+ | :''Christian Damus'' | ||
+ | :''James Bruck'' | ||
+ | :''Michael Golubev'' | ||
+ | :''Ed Merks'' | ||
+ | || Nick Boldt || | ||
+ | +1<br/> | ||
+ | +1<br/> | ||
+ | +3<br/> | ||
+ | +1 | ||
+ | |- | ||
+ | | | ||
+ | ====[http://www.eclipse.org/m2m/ M2M]==== | ||
+ | :''[http://www.eclipse.org/m2m/atl/ ATL]'' | ||
+ | :''[http://wiki.eclipse.org/index.php/QVTO QVTO]'' | ||
+ | || Frédéric Jouault | ||
+ | :''Frédéric Jouault'' | ||
+ | :''Radek Dvorak'' | ||
+ | || | ||
+ | William Piers<br/> | ||
+ | Radek Dvorak | ||
+ | || | ||
+ | +2 | ||
+ | |- | ||
+ | | | ||
+ | ====[http://www.eclipse.org/modeling/m2t/ M2T]==== | ||
+ | :''[http://www.eclipse.org/modeling/m2t/?project=jet#jet JET]'' | ||
+ | || Paul Elder | ||
+ | :''Paul Elder'' | ||
+ | || <br> | ||
+ | Paul Elder | ||
+ | || <br> | ||
+ | +2 | ||
+ | |- | ||
+ | | | ||
+ | |||
+ | ====[http://www.eclipse.org/mylyn/ Mylyn]==== | ||
+ | || Mik Kersten || || +1 || | ||
+ | [http://wiki.eclipse.org/Mylyn_3.0_Plan#Schedule Ramp-down] | ||
+ | |- | ||
+ | | | ||
+ | ====[http://www.eclipse.org/rap/ Rich Ajax Platform (RAP)]==== | ||
+ | ||Jochen Krause || Benny Muskalla || +2 ||[[RAP/Ramp down Ganymede|RAP Ramp down]] | ||
+ | |- | ||
+ | | | ||
+ | ====[http://www.eclipse.org/stp/ SOA Tools Platform (STP)]==== | ||
+ | ||Oisin Hurley || Oisin Hurley || +3 || [[STP/Ganymede_Release/RampDown|Ramp-down]] | ||
+ | |- | ||
+ | | | ||
+ | ====[http://www.eclipse.org/subversive/ Subversive]==== | ||
+ | ||Igor Vinnykov || Alexander Gurov || +2 || | ||
+ | [http://wiki.eclipse.org/Subversive_Plan#Subversive_build_schedule Ramp-down] | ||
+ | |- | ||
+ | | | ||
+ | |||
+ | ====[http://www.eclipse.org/tptp/ TPTP]==== | ||
+ | :''Platform, Test, Trace, Monitoring'' | ||
+ | || Joanna Kubasta || Joel Cayne || +2 || [http://wiki.eclipse.org/index.php/TPTP_Project_Ramp_Down_Policy_for_Ganymede Policy] | ||
+ | |- | ||
+ | | | ||
+ | ====[http://www.eclipse.org/webtools/ Web Tools Platform (WTP)]==== | ||
+ | || David Williams || David Williams || +2 || [[WTP 3.0 Ramp down Plan for Ganymede]] | ||
+ | |- | ||
+ | |} | ||
===Requirements For Participation=== | ===Requirements For Participation=== | ||
Line 21: | Line 201: | ||
====Must Do==== | ====Must Do==== | ||
These are ''required'' for participation: | These are ''required'' for participation: | ||
− | # The projects must work together. This means that one should be able to load any subset of the | + | # The projects must work together. This means that one should be able to load any subset of the Ganymede projects into Eclipse and each of the loaded projects should be able to pass all the same tests as if it had been loaded independently. |
# Projects must have build process maturity and their own functional project update site - the Ganymede site will reference these sites, not replace them. | # Projects must have build process maturity and their own functional project update site - the Ganymede site will reference these sites, not replace them. | ||
# Projects must use 4-part [[Version Numbering|version numbers.]] | # Projects must use 4-part [[Version Numbering|version numbers.]] | ||
− | # Any third-party plug-ins that are common between projects must be consumed via [http://www.eclipse.org/orbit/ Orbit]; the final Ganymede release will not have duplicate third-party libraries (note that this only applies to identical versions of the libraries; thus if project A requires foo.jar 1.6 and project B uses foo.jar 1.7, that's ok). | + | # Any new (new during Ganymede) third-party plug-ins that are common between projects must be consumed via [http://www.eclipse.org/orbit/ Orbit]; the final Ganymede release will not have duplicate third-party libraries (note that this only applies to identical versions of the libraries; thus if project A requires foo.jar 1.6 and project B uses foo.jar 1.7, that's ok). |
− | # All plug-ins must correctly list their required JVM versions in the manifest | + | # All plug-ins (bundles) must use the true bundle form. That is, provide a manifest.mf file, and not rely on the plugin.xml file being 'translated' into a manifest.mf file at initial startup. See [https://bugs.eclipse.org/bugs/show_bug.cgi?id=130598 bug 130598]. |
− | # Project representatives must attend the planning meetings and conference calls - you have to be involved to be involved. | + | # All plug-ins must correctly list their required JVM versions in the manifest.mf. See the wiki page about selecting the correct JVM [http://wiki.eclipse.org/index.php/EMF_2.3_JVM_Requirements#Runtime_.2F_Compilation_Compatibility]. |
+ | # Project representatives must attend the planning meetings and conference calls - you have to be involved to be involved. A few misses are ok, but chronic lack of attendance is a no-no. | ||
# At least one person from each project must subscribe to cross-project bug inbox, i.e. edit Bugzilla prefs to watch "cross-project.inbox@eclipse.org" | # At least one person from each project must subscribe to cross-project bug inbox, i.e. edit Bugzilla prefs to watch "cross-project.inbox@eclipse.org" | ||
# Build team members from each project will provide communication channels: phone, mail, IM, IRC and will be available during ''to-be-specified'' crucial integration times | # Build team members from each project will provide communication channels: phone, mail, IM, IRC and will be available during ''to-be-specified'' crucial integration times | ||
− | # Projects must have stated and demonstrated their intent to join Ganymede by the M4+0 date. Projects do so by adding themselves to the table/list above and to the Ganymede common build | + | # Projects must have stated and demonstrated their intent to join Ganymede by the M4+0 date. Projects do so by adding themselves to the table/list above, by signing off each milestone/RC on the [[Ganymede/Signoffs]] page, and by contributing an .sc file to the [[Ganymede/Build#The_Projects.27_Roles|Ganymede common build]]. |
− | # Projects | + | # Projects must have a written ramp down policy by M6+0, linked in the table above. (One of the issues identified with this guideline is that its not so much the ramp down policy of how many votes are needed for each bug fix that we need to be consistent on, but rather the meaning of each of the milestones and release candidates. See [http://www.eclipse.org/eclipse/development/freeze_plan_3.4.php Platform 3.4 Endgame plan] as a guideline. See also [[Ganymede/Final Daze|Ganymede Final Daze]].) |
− | # Projects must have their IP approved (a normal Eclipse requirement) and will follow the | + | # Projects must have their IP approved (a normal Eclipse requirement) and will follow the Eclipse Legal deadlines to do so. See also {{bug|220977}}. |
− | # Projects must [[Update_Site_Optimization | optimize ]] their update site using [[Pack200 | pack200 ]] to reduce bandwidth utilization and provide a better update experience for users. Additionally, they should do site digesting. | + | # Projects must [[Update_Site_Optimization|optimize]] their update site using [[Pack200|pack200]] to reduce bandwidth utilization and provide a better update experience for users. Additionally, they should do [[Update_Site_Optimization#The_Update_Site|site digesting]]. |
− | # Projects must use signed plugins using the Eclipse certificate. | + | # Projects must use [[Modeling_Project_Releng/Building/Signing_And_Packing|signed plugins]] using the Eclipse certificate. Exceptions must be authorized by the planning council for technical reasons. |
+ | # Projects must have use jar'ed plug-ins unless there are technical reasons. | ||
+ | ## Nested jars should be avoided if possible since it creates problems for projects that has dependencies to such plug-ins. The OSGi runtime is fine with it but the compiler is not able to handle classpaths that contain nested jars. | ||
+ | ## In case only one nested jar exists, it is often better to expand the contents of that jar into the root folder (i.e. unnest the jar). | ||
+ | ## If a plug-in contains large files that are frequently used (opened and closed), a jar'ed plug-in might degrade performance significantly since the file must be decompressed each time it is opened. | ||
+ | # Projects must use Eclipse message bundles unless there are technical reasons not to. (see [[Message Bundle Conversion Tool]] and [http://www.eclipse.org/eclipse/platform-core/documents/3.1/message_bundles.html]) | ||
====Should Do==== | ====Should Do==== | ||
These are recommended for participating projects: | These are recommended for participating projects: | ||
− | # Projects should have | + | # Projects should have capabilities for their feature sets. |
− | + | ||
# Build reproducibility? Require that projects be buildable by community members. Should be identical bits (but not required). All build assets and documentation in CVS/Subversion. | # Build reproducibility? Require that projects be buildable by community members. Should be identical bits (but not required). All build assets and documentation in CVS/Subversion. | ||
− | # Non-project-team-members should be able to build each project. | + | # Non-project-team-members should be able to build each project. |
# Non-project-team-members should be able to run unit tests on each project. | # Non-project-team-members should be able to run unit tests on each project. | ||
− | # Source tarballs should be created for Linux distros to build with. | + | # Source tarballs should be created for Linux distros to build with. <need reference here, on how to do ... Kim :) > |
# Should have new & noteworthy for each milestone. Should be something readable and usable not just a static list of all the bugs. Corollary: individual new & noteworthy should be linked in to the collective New & Noteworthy. | # Should have new & noteworthy for each milestone. Should be something readable and usable not just a static list of all the bugs. Corollary: individual new & noteworthy should be linked in to the collective New & Noteworthy. | ||
− | # | + | # Should use [[ICU4J | ICU4J when appropriate]]. |
− | # | + | # Should provide build [[:Category:RSS | RSS feeds]] as per the build workshop. |
+ | # Should follow the [[User Interface Guidelines]]. The [[UI Checklist]] is a good place to start. | ||
+ | # Should not have improper API usage, i.e., should not use non-API of other projects. | ||
+ | # Should devote at least one milestone to performance and scalability improvements. | ||
+ | # Each major project (the top-level projects except for the Tools and Technology projects where it is the sub-projects) should have a splash page icon and contribute to the welcome page. | ||
+ | |||
+ | ====Encouraged==== | ||
+ | We added a third, even weaker, category of recommendations: | ||
+ | # Should participate in a [[User Interface Best Practices Working Group]] [[UIBPWG UI Walkthrough | UI walkthrough]]. | ||
+ | |||
+ | ====Could Do==== | ||
+ | # SDKs can be included in the Ganymede update site at the project's discretion. A best practice that was discussed would be a minimum run-time with additional sources and examples can be added via update manager or other features. | ||
===Milestones and Release Candidates=== | ===Milestones and Release Candidates=== | ||
− | These milestone and release candidate dates are based on the dependencies of the projects (we call these the +0, +1, and +2 dependencies). Obviously, if a +0 date slips, then it will cause the +1 and +2 dates to slip; similarly for a +1 slip causing +2 slips. | + | These milestone and release candidate dates are based on the dependencies of the projects (we call these the +0, +1, and +2 dependencies). Obviously, if a +0 date slips, then it will cause the +1 and +2 dates to slip; similarly for a +1 slip causing +2 slips. Note that the +0, +1, +2, and +3 dates are roughly equivalent to stable nightly builds in a traditional Eclipse project - each of these partial milestone builds will incorporate more and more of the associated project milestones. The "Release" date is the official M/RC date. |
+ | |||
+ | Note: in the following table, '''''RC5''''' on the 'Ganymede' line does not mean this final build is a release ''''candidate'''' ... it is still to be the ''''final build'''' for this Release ... but 'RC5' is the suggested "target" to have some consistent terminology in Bugzilla, and similar things, to be able to mark things that are different in the final release build than in the RC4 build. [The full word, "Ganymede" doesn't make a very good bugzilla milestone target, since it's a little too inclusive, and "R" (for "Release") is too short. TODO: next year consider "GA" for this final target?] | ||
+ | |||
+ | '''Hopefully''' there will '''not by ''ANY'' differences''' between RC4, and RC5 ... but, some projects may find they have to make doc additions, readme files, etc., so ... this just provides a way that such changes can be consistently marked, tracked, etc., to better keep everyone informed about what might be different between RC4 and the RC5 (the final released code). [Note: it's probably obvious, but this does not mean "RC5" should be part of the final zip file names or anything. those can still be what ever "final" name they would always have.] | ||
− | |||
<table border=1 align=center> | <table border=1 align=center> | ||
− | <tr><td> </td><th colspan= | + | <tr><td> </td><th colspan=5> Staging </th><th colspan=2>Release</th></tr> |
− | <tr><td> </td><th> +0 </th><th> +1 </th><th> +2 </th></tr> | + | <tr><td> </td><th> +0 </th><th> +1 </th><th> +2 </th><th> +3 </th><th>EPP</th><th> Server<br/>Freeze </th><th> Public<br/>Access </th></tr> |
− | <tr><th> M2 </th><td> Sep 21 </td><td> Sep | + | <tr bgcolor="lightgrey"><th> M2 </th><td> Sep 21 </td><td> Sep 26 </td><td> Oct 3 </td><td>''n/a''</td><td> Oct 5 </td><td>''n/a''</td><td> Oct 9 </td></tr> |
− | <tr><th> M3 </th><td> Nov 2 </td><td> Nov | + | <tr bgcolor="lightgrey"><th> M2+</th><td colspan="3" align="center">Oct 22</td><td>''n/a''</td><td>Oct 24</td><td>''n/a''</td><td>Oct 25</td></tr> |
− | <tr><th> M4 </th><td> Dec 14 </td><td> Dec | + | <tr bgcolor="lightgrey"><th> M3 </th><td> Nov 2 </td><td> Nov 7 </td><td> Nov 14 </td><td> Nov 16 </td><td>Nov 19</td><td>?</td><td> Nov 20 </td></tr> |
− | <tr><th> M5 </th><td> Feb 8 </td><td> Feb | + | <tr bgcolor="lightgrey"><th> M4 </th><td> Dec 14 </td><td> Dec 17 </td><td> Jan 7 </td><td> Jan 8 </td><td>Jan 9</td><td>Jan 10</td><td> <strike>Jan 11</strike> Jan 16 </td></tr> |
− | <tr><th> M6 - API Freeze </th> | + | <tr bgcolor="lightgrey"><th> M5 </th><td> Feb 8 </td><td> Feb 11 </td><td> Feb 18 </td><td> Feb 20 </td><td>Feb 22</td><td>Feb 25</td><td> Feb 26 </td></tr> |
− | + | <tr bgcolor="lightgrey"><th> M6 - API Freeze</th><td> Mar 28 </td><td> Mar 31 </td><td> Apr 7 </td><td> Apr 9 </td><td> Apr 11 </td><td> Apr 14 </td><td> Apr 15 </td></tr> | |
− | <tr><th> M7 | + | <tr bgcolor="lightgrey"><th> M7 </th><td> May 2 </td><td> May 5 </td><td> May 6 </td><td> May 7 </td><td> May 9 </td><td> May 12 </td><td> May 13 </td></tr> |
− | + | <tr bgcolor="lightgrey"><th> RC1 </th><td>May 16 </td><td> May 19 </td><td> May 20 </td><td> May 21 </td><td> May 23</td><td> May 26 </td><td> May 27 </td></tr> | |
− | <tr><th> RC1 </th> | + | <tr bgcolor="lightgrey"><th> RC2 </th><td>May 23 </td><td> May 26 </td><td> May 27 </td><td> May 28 </td><td> May 30</td><td> Jun 2 </td><td> Jun 3 </td></tr> |
− | + | <tr bgcolor="lightgrey"><th> RC3 </th><td>May 30 </td><td> Jun 2 </td><td> Jun 3 </td><td> Jun 4 </td><td> Jun 6 </td><td> Jun 9 </td><td> Jun 10 </td></tr> | |
− | <tr><th> RC2 </th> | + | <tr bgcolor="lightgrey"><th> RC4 </th><td>Jun 6 </td><td> Jun 9 </td><td> Jun 10</td><td> Jun 11</td><td> Jun 13</td><td> Jun 16 </td><td> Jun 17 </td></tr> |
− | + | ||
− | <tr><th> RC3 </th> | + | <tr bgcolor="lightgrey"><th> [[Ganymede_Final_Daze|Ganymede ("RC5")]] </th><td bgcolor="">Jun 13*</td><td bgcolor="">Jun 16*</td><td bgcolor="">Jun 17*</td><td bgcolor="">June 18*</td><td>June 23</td><td>June 24</td><td>June 25</td></tr> |
− | + | ||
− | <tr><th> RC4 </th> | + | |
− | + | ||
− | <tr><th> Ganymede </th><td | + | |
</table> | </table> | ||
− | == | + | <table align="center" width="500"> |
− | + | <tr><td> | |
− | * | + | <small>''* Note: RC5 +N dates may be considered slightly flexible as this is the time for stop-ship critical bugfixes. Please ensure you communicate your plans on the '''[[Ganymede/Signoffs#RCx_Status|Ganymede Signoffs - RCx Status]]''' page.''</small> |
− | + | </td></tr> | |
− | + | <tr><td align="center"> | |
+ | [[Image:xml.gif]] [http://www.google.com/calendar/feeds/ji23856biu6e1k1p1hfj2es4sc%40group.calendar.google.com/public/basic RSS feed]<br/> | ||
+ | [[Image:ical.gif]] [http://www.google.com/calendar/ical/ji23856biu6e1k1p1hfj2es4sc%40group.calendar.google.com/public/basic.ics iCal file]<br/> | ||
+ | [[Image:html.gif]] [http://www.google.com/calendar/embed?src=ji23856biu6e1k1p1hfj2es4sc%40group.calendar.google.com HTML]<br/> | ||
+ | [[User:nickb|Request Invite]] | ||
+ | </td></tr></table> | ||
− | ===Conference Calls=== | + | ===Communication=== |
+ | |||
+ | ====Cross-Project Milestone & RC Status Reporting==== | ||
+ | |||
+ | In the past, status reporting has been done via the mailing list(s). This year it's [[Planning_Council_Agenda#Europa_Fall_and_Winter_Maintenance | been suggested]] that as with [[Europa/Winter_Maintenance_Signoffs | Europa Winter Maintenance]] we [http://dev.eclipse.org/mhonarc/lists/eclipse.org-planning-council/msg01094.html reduce] the [http://dev.eclipse.org/mhonarc/lists/eclipse.org-planning-council/msg01093.html email clutter] and just use a wiki table instead. | ||
+ | |||
+ | * [[Ganymede/Signoffs]] | ||
+ | |||
+ | ====Conference Calls==== | ||
+ | |||
+ | ''next:'' Wednesday August 27 at 11am EDT, 8am PDT, 5pm CET.<br> | ||
+ | ''613.287.8000 or 866.362.7064 passcode 874551#'' | ||
+ | |||
+ | ====Mailing Lists and Newsgroups==== | ||
+ | |||
+ | Eclipse projects have three communication channels: a mailing list for developers, a newsgroup for users, and Bugzilla. Ganymede, although not a "project" per se, will use the same structure: | ||
+ | * [https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev cross-projects-issues-dev] - mailing list for developers and releng (see [http://dev.eclipse.org/mhonarc/lists/cross-project-issues-dev/threads.html archives]) | ||
+ | * [http://www.eclipse.org/newsportal/thread.php?group=eclipse.simultaneous-release eclipse.simultaneous-release] - newsgroup for users (see [http://dev.eclipse.org/newslists/news.eclipse.simultaneous-release/maillist.html archives]) | ||
+ | |||
+ | The old [https://dev.eclipse.org/mailman/listinfo/eclipse.org-planning-council eclipse.org-planning-council ] mailing list will be used for non-Ganymede Planning Council items. | ||
+ | |||
+ | === Bugs & Feature Requests === | ||
+ | |||
+ | * [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Eclipse+Foundation&product=Community&component=Cross-Project&classification=Technology&product=Dash&component=Ganymatic&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= Search] in Eclipse Foundation > Community > Cross-Project or Technology > Dash > Ganymatic | ||
+ | * Open a new [https://bugs.eclipse.org/bugs/enter_bug.cgi?assigned_to=cross-project.inbox%40eclipse.org&product=Community&component=Cross-Project Cross-Project] or [https://bugs.eclipse.org/bugs/enter_bug.cgi?assigned_to=cross-project.inbox%40eclipse.org&product=Dash&component=Ganymatic Ganymatic] bug | ||
===Ganymede Builds=== | ===Ganymede Builds=== | ||
− | + | ||
− | + | A number of utilities have been written to automate the assembly of Callisto '06, Europa '07 and now Ganymede '08 builds. These are available in their own CVS respository. You can find more information about how this is organized and individual project responsibilities for the build on this [[Ganymede/Build | Ganymede Build]] page (and old information on the [[Europa/Build | Europa Build]] page). | |
+ | |||
+ | '''The [[Ganymede/Build | Ganymede Build]] page is where you go to learn how to add your project to the Ganymede build.''' | ||
+ | |||
+ | ===Coordinated Service Releases === | ||
+ | |||
+ | On the planning call on 2008/06/02, it was suggested that Wednesday, September 24, 2008 and Wednesday, February 25, 2009 be the Service Release 1 and Service Release 2 dates. See specific band (+0, +1, +2, +3, EPP) & [[Ganymede/Final Daze|freeze dates]] below. | ||
+ | |||
+ | It is currently assumed that projects will continue to use the [[Ganymede/Signoffs]] page to report status. | ||
+ | |||
+ | <p><table align=center width="600"><tr><td> | ||
+ | </td></tr></table></p> | ||
+ | <p><table border=1 align=center width="600"> | ||
+ | <tr><td> </td><th colspan=5> Staging </th><th colspan=2>Release</th></tr> | ||
+ | <tr><td> </td><th> +0 </th><th> +1 </th><th> +2 </th><th> +3 </th><th> EPP </th><th> Server<br/>Freeze </th><th> Public<br/>Access </th></tr> | ||
+ | <tr><th align="right"> RC1</th><td> Sep 1 </td><td> Sep 2 </td><td> Sep 3 </td><td> Sep 4 </td><td> Sep 8 </td><td> Sep 9 </td><td>Sep 10</td></tr> | ||
+ | <tr><th align="right"> RC2</th><td> Sep 8 </td><td> Sep 9 </td><td> Sep 10 </td><td> Sep 11 </td><td> Sep 15 </td><td> Sep 16 </td><td>Sep 17</td></tr> | ||
+ | <tr><th align="right"> [[Ganymede_Final_Daze|Ganymede SR1 ("RC3")]]</th><td> Sep 15 </td><td> Sep 16 </td><td> Sep 17 </td><td> Sep 18 </td><td> Sep 22 </td><td> Sep 23 </td><td>Sep 24</td></tr> | ||
+ | </table></p> | ||
+ | <p><table border=1 align=center width="600"> | ||
+ | <tr><td> </td><th colspan=5> Staging </th><th colspan=2>Release</th></tr> | ||
+ | <tr><td> </td><th> +0 </th><th> +1 </th><th> +2 </th><th> +3 </th><th> EPP </th><th> Server<br/>Freeze </th><th> Public<br/>Access </th></tr> | ||
+ | <tr><th align="right"> RC1</th><td> Feb 2 </td><td> Feb 3 </td><td> Feb 4 </td><td> Feb 5 </td><td> Feb 9 </td><td> Feb 10 </td><td>Feb 11</td></tr> | ||
+ | <tr><th align="right"> RC2</th><td> Feb 9 </td><td> Feb 10 </td><td> Feb 11 </td><td> Feb 12 </td><td> Feb 16 </td><td> Feb 17 </td><td>Feb 18</td></tr> | ||
+ | <tr><th align="right"> [[Ganymede_Final_Daze|Ganymede SR2 ("RC3")]]</th><td> Feb 16 </td><td> Feb 17 </td><td> Feb 18 </td><td> Feb 19 </td><td> Feb 23 </td><td> Feb 24 </td><td>Feb 25</td></tr> | ||
+ | </table></p> | ||
[[Category:Ganymede]] [[Category:Coordinated]] | [[Category:Ganymede]] [[Category:Coordinated]] | ||
+ | |||
+ | ===Videos with OpenTech Media=== | ||
+ | |||
+ | For details on creating a video of your Ganymede project and instructions on how to record see the [[OpenTech Media Videos]] page. |
Latest revision as of 10:50, 6 July 2011
This page is for developers of the June 2008 Ganymede Simultaneous Release. If you are a consumer of the Release, you'll want Ganymede Simultaneous Release For Users.
Simultaneous Release | ||
Preceded by Europa |
Ganymede 2008 |
Succeeded by Galileo |
Contents
- 1 Goal
- 2 Projects
- 2.1 BIRT
- 2.2 Buckminster
- 2.3 CDT
- 2.4 DLTK
- 2.5 DSDP DD
- 2.6 DSDP TM
- 2.7 DTP
- 2.8 ECF
- 2.9 The Eclipse Project
- 2.10 EMF
- 2.11 EMFT
- 2.12 EPP
- 2.13 GEF
- 2.14 GMF
- 2.15 MDT
- 2.16 M2M
- 2.17 M2T
- 2.18 Mylyn
- 2.19 Rich Ajax Platform (RAP)
- 2.20 SOA Tools Platform (STP)
- 2.21 Subversive
- 2.22 TPTP
- 2.23 Web Tools Platform (WTP)
- 3 Requirements For Participation
- 4 Milestones and Release Candidates
- 5 Communication
- 6 Bugs & Feature Requests
- 7 Ganymede Builds
- 8 Coordinated Service Releases
- 9 Videos with OpenTech Media
Goal
The goal of the Ganymede Simultaneous Release was the same as last year's goal for Europa: to release N major Eclipse projects at the same time. We are doing this simultaneous release to support the needs of the ecosystem members who integrate Eclipse frameworks into their own software and products. While those product producers naturally accept the ultimate responsibility for their customers' experiences, Ganymede's goal is to eliminate uncertainty about project version numbers, and thus to allow ecosystem members to start their own integration, cross-project, and cross-product testing efforts earlier. Ganymede is about improving the productivity of the developers working on top of Eclipse frameworks by providing a more transparent and predictable development cycle; Ganymede is about developers helping developers serve the whole Eclipse community.
While Ganymede is about the simultaneous release of N projects, it is not a unification of the projects - each project remains a separate open source project operating with its own project leadership, its own committers, and its own project plan.
Projects
The projects that plan to participate in the Ganymede Simultaneous Release are listed below, along with their milestone offsets and their project lead.
Project/Component | Project/Component Lead(s) | Release Eng'g | Offset | Ramp down Policy |
---|---|---|---|---|
BIRT |
Wenfeng Li | Xiaoying Gu | +2 | BIRT Ramp-down Policy |
Buckminster |
Thomas Hallgren, Henrik Lindberg | Thomas Hallgren | +2 | Buckminster Ramp-down |
CDT |
Doug Schaefer | Vivian Kong | +1 | CDT 5.0 Ramp-down |
DLTK |
Andrey Platov | Andrey Platov | +3 | DLTK 0.95 Ramp Down Policy |
DSDP DD |
Pawel Piech | Ted Williams | +2 | DD Ramp-down |
DSDP TM |
Martin Oberhuber | Martin Oberhuber | +2 | TM Ramp-down |
DTP |
Brian Fitzpatrick | Xiaoying Gu | +1 | DTP Ramp-down |
ECF |
Scott Lewis | Ted Kubaska/Scott Lewis | +1 | ECF Ramp-down |
The Eclipse Project |
Philippe Mulet | Kim Moir Build Schedule |
0 | Eclipse 3.4 Endgame plan |
EMF |
Ed Merks
|
Nick Boldt |
+1 |
Modeling Project Ramp-down |
EMFT |
Ed Merks
|
Lucas Bigeardel |
+2 |
Modeling Project Ramp-down |
EPP |
Markus Knauer
|
Wayne Beaton |
+2 | EPP Ramp Down Policy |
GEF |
Anthony Hunter | Anthony Hunter | +1 | |
GMF |
Richard Gronback | Max Feldman | +2 | Modeling Project Ramp-down |
MDT |
Kenn Hussey
|
Nick Boldt |
+1 | |
M2M |
Frédéric Jouault
|
William Piers |
+2 | |
M2T |
Paul Elder
|
Paul Elder |
+2 | |
Mylyn |
Mik Kersten | +1 | ||
Rich Ajax Platform (RAP) |
Jochen Krause | Benny Muskalla | +2 | RAP Ramp down |
SOA Tools Platform (STP) |
Oisin Hurley | Oisin Hurley | +3 | Ramp-down |
Subversive |
Igor Vinnykov | Alexander Gurov | +2 | |
TPTP
|
Joanna Kubasta | Joel Cayne | +2 | Policy |
Web Tools Platform (WTP) |
David Williams | David Williams | +2 | WTP 3.0 Ramp down Plan for Ganymede |
Requirements For Participation
Projects that are part of Ganymede agree to abide by the following requirements. Unlike the somewhat lax enforcement of previous years, the EMO will remove projects that do not meet the required constraints.
Must Do
These are required for participation:
- The projects must work together. This means that one should be able to load any subset of the Ganymede projects into Eclipse and each of the loaded projects should be able to pass all the same tests as if it had been loaded independently.
- Projects must have build process maturity and their own functional project update site - the Ganymede site will reference these sites, not replace them.
- Projects must use 4-part version numbers.
- Any new (new during Ganymede) third-party plug-ins that are common between projects must be consumed via Orbit; the final Ganymede release will not have duplicate third-party libraries (note that this only applies to identical versions of the libraries; thus if project A requires foo.jar 1.6 and project B uses foo.jar 1.7, that's ok).
- All plug-ins (bundles) must use the true bundle form. That is, provide a manifest.mf file, and not rely on the plugin.xml file being 'translated' into a manifest.mf file at initial startup. See bug 130598.
- All plug-ins must correctly list their required JVM versions in the manifest.mf. See the wiki page about selecting the correct JVM [1].
- Project representatives must attend the planning meetings and conference calls - you have to be involved to be involved. A few misses are ok, but chronic lack of attendance is a no-no.
- At least one person from each project must subscribe to cross-project bug inbox, i.e. edit Bugzilla prefs to watch "cross-project.inbox@eclipse.org"
- Build team members from each project will provide communication channels: phone, mail, IM, IRC and will be available during to-be-specified crucial integration times
- Projects must have stated and demonstrated their intent to join Ganymede by the M4+0 date. Projects do so by adding themselves to the table/list above, by signing off each milestone/RC on the Ganymede/Signoffs page, and by contributing an .sc file to the Ganymede common build.
- Projects must have a written ramp down policy by M6+0, linked in the table above. (One of the issues identified with this guideline is that its not so much the ramp down policy of how many votes are needed for each bug fix that we need to be consistent on, but rather the meaning of each of the milestones and release candidates. See Platform 3.4 Endgame plan as a guideline. See also Ganymede Final Daze.)
- Projects must have their IP approved (a normal Eclipse requirement) and will follow the Eclipse Legal deadlines to do so. See also bug 220977.
- Projects must optimize their update site using pack200 to reduce bandwidth utilization and provide a better update experience for users. Additionally, they should do site digesting.
- Projects must use signed plugins using the Eclipse certificate. Exceptions must be authorized by the planning council for technical reasons.
- Projects must have use jar'ed plug-ins unless there are technical reasons.
- Nested jars should be avoided if possible since it creates problems for projects that has dependencies to such plug-ins. The OSGi runtime is fine with it but the compiler is not able to handle classpaths that contain nested jars.
- In case only one nested jar exists, it is often better to expand the contents of that jar into the root folder (i.e. unnest the jar).
- If a plug-in contains large files that are frequently used (opened and closed), a jar'ed plug-in might degrade performance significantly since the file must be decompressed each time it is opened.
- Projects must use Eclipse message bundles unless there are technical reasons not to. (see Message Bundle Conversion Tool and [2])
Should Do
These are recommended for participating projects:
- Projects should have capabilities for their feature sets.
- Build reproducibility? Require that projects be buildable by community members. Should be identical bits (but not required). All build assets and documentation in CVS/Subversion.
- Non-project-team-members should be able to build each project.
- Non-project-team-members should be able to run unit tests on each project.
- Source tarballs should be created for Linux distros to build with. <need reference here, on how to do ... Kim :) >
- Should have new & noteworthy for each milestone. Should be something readable and usable not just a static list of all the bugs. Corollary: individual new & noteworthy should be linked in to the collective New & Noteworthy.
- Should use ICU4J when appropriate.
- Should provide build RSS feeds as per the build workshop.
- Should follow the User Interface Guidelines. The UI Checklist is a good place to start.
- Should not have improper API usage, i.e., should not use non-API of other projects.
- Should devote at least one milestone to performance and scalability improvements.
- Each major project (the top-level projects except for the Tools and Technology projects where it is the sub-projects) should have a splash page icon and contribute to the welcome page.
Encouraged
We added a third, even weaker, category of recommendations:
- Should participate in a User Interface Best Practices Working Group UI walkthrough.
Could Do
- SDKs can be included in the Ganymede update site at the project's discretion. A best practice that was discussed would be a minimum run-time with additional sources and examples can be added via update manager or other features.
Milestones and Release Candidates
These milestone and release candidate dates are based on the dependencies of the projects (we call these the +0, +1, and +2 dependencies). Obviously, if a +0 date slips, then it will cause the +1 and +2 dates to slip; similarly for a +1 slip causing +2 slips. Note that the +0, +1, +2, and +3 dates are roughly equivalent to stable nightly builds in a traditional Eclipse project - each of these partial milestone builds will incorporate more and more of the associated project milestones. The "Release" date is the official M/RC date.
Note: in the following table, RC5 on the 'Ganymede' line does not mean this final build is a release 'candidate' ... it is still to be the 'final build' for this Release ... but 'RC5' is the suggested "target" to have some consistent terminology in Bugzilla, and similar things, to be able to mark things that are different in the final release build than in the RC4 build. [The full word, "Ganymede" doesn't make a very good bugzilla milestone target, since it's a little too inclusive, and "R" (for "Release") is too short. TODO: next year consider "GA" for this final target?]
Hopefully there will not by ANY differences between RC4, and RC5 ... but, some projects may find they have to make doc additions, readme files, etc., so ... this just provides a way that such changes can be consistently marked, tracked, etc., to better keep everyone informed about what might be different between RC4 and the RC5 (the final released code). [Note: it's probably obvious, but this does not mean "RC5" should be part of the final zip file names or anything. those can still be what ever "final" name they would always have.]
Staging | Release | ||||||
---|---|---|---|---|---|---|---|
+0 | +1 | +2 | +3 | EPP | Server Freeze | Public Access | |
M2 | Sep 21 | Sep 26 | Oct 3 | n/a | Oct 5 | n/a | Oct 9 |
M2+ | Oct 22 | n/a | Oct 24 | n/a | Oct 25 | ||
M3 | Nov 2 | Nov 7 | Nov 14 | Nov 16 | Nov 19 | ? | Nov 20 |
M4 | Dec 14 | Dec 17 | Jan 7 | Jan 8 | Jan 9 | Jan 10 | |
M5 | Feb 8 | Feb 11 | Feb 18 | Feb 20 | Feb 22 | Feb 25 | Feb 26 |
M6 - API Freeze | Mar 28 | Mar 31 | Apr 7 | Apr 9 | Apr 11 | Apr 14 | Apr 15 |
M7 | May 2 | May 5 | May 6 | May 7 | May 9 | May 12 | May 13 |
RC1 | May 16 | May 19 | May 20 | May 21 | May 23 | May 26 | May 27 |
RC2 | May 23 | May 26 | May 27 | May 28 | May 30 | Jun 2 | Jun 3 |
RC3 | May 30 | Jun 2 | Jun 3 | Jun 4 | Jun 6 | Jun 9 | Jun 10 |
RC4 | Jun 6 | Jun 9 | Jun 10 | Jun 11 | Jun 13 | Jun 16 | Jun 17 |
Ganymede ("RC5") | Jun 13* | Jun 16* | Jun 17* | June 18* | June 23 | June 24 | June 25 |
* Note: RC5 +N dates may be considered slightly flexible as this is the time for stop-ship critical bugfixes. Please ensure you communicate your plans on the Ganymede Signoffs - RCx Status page. |
Communication
Cross-Project Milestone & RC Status Reporting
In the past, status reporting has been done via the mailing list(s). This year it's been suggested that as with Europa Winter Maintenance we reduce the email clutter and just use a wiki table instead.
Conference Calls
next: Wednesday August 27 at 11am EDT, 8am PDT, 5pm CET.
613.287.8000 or 866.362.7064 passcode 874551#
Mailing Lists and Newsgroups
Eclipse projects have three communication channels: a mailing list for developers, a newsgroup for users, and Bugzilla. Ganymede, although not a "project" per se, will use the same structure:
- cross-projects-issues-dev - mailing list for developers and releng (see archives)
- eclipse.simultaneous-release - newsgroup for users (see archives)
The old eclipse.org-planning-council mailing list will be used for non-Ganymede Planning Council items.
Bugs & Feature Requests
- Search in Eclipse Foundation > Community > Cross-Project or Technology > Dash > Ganymatic
- Open a new Cross-Project or Ganymatic bug
Ganymede Builds
A number of utilities have been written to automate the assembly of Callisto '06, Europa '07 and now Ganymede '08 builds. These are available in their own CVS respository. You can find more information about how this is organized and individual project responsibilities for the build on this Ganymede Build page (and old information on the Europa Build page).
The Ganymede Build page is where you go to learn how to add your project to the Ganymede build.
Coordinated Service Releases
On the planning call on 2008/06/02, it was suggested that Wednesday, September 24, 2008 and Wednesday, February 25, 2009 be the Service Release 1 and Service Release 2 dates. See specific band (+0, +1, +2, +3, EPP) & freeze dates below.
It is currently assumed that projects will continue to use the Ganymede/Signoffs page to report status.
Staging | Release | ||||||
---|---|---|---|---|---|---|---|
+0 | +1 | +2 | +3 | EPP | Server Freeze | Public Access | |
RC1 | Sep 1 | Sep 2 | Sep 3 | Sep 4 | Sep 8 | Sep 9 | Sep 10 |
RC2 | Sep 8 | Sep 9 | Sep 10 | Sep 11 | Sep 15 | Sep 16 | Sep 17 |
Ganymede SR1 ("RC3") | Sep 15 | Sep 16 | Sep 17 | Sep 18 | Sep 22 | Sep 23 | Sep 24 |
Staging | Release | ||||||
---|---|---|---|---|---|---|---|
+0 | +1 | +2 | +3 | EPP | Server Freeze | Public Access | |
RC1 | Feb 2 | Feb 3 | Feb 4 | Feb 5 | Feb 9 | Feb 10 | Feb 11 |
RC2 | Feb 9 | Feb 10 | Feb 11 | Feb 12 | Feb 16 | Feb 17 | Feb 18 |
Ganymede SR2 ("RC3") | Feb 16 | Feb 17 | Feb 18 | Feb 19 | Feb 23 | Feb 24 | Feb 25 |
Videos with OpenTech Media
For details on creating a video of your Ganymede project and instructions on how to record see the OpenTech Media Videos page.