Skip to main content
Jump to: navigation, search

DSDP/MTJ/Galileo Train Gap

< DSDP‎ | MTJ
Revision as of 09:14, 11 January 2009 by Wds057.motorola.com (Talk | contribs) (Must Do)

Overview

Galileo Train define a list of must's and should's that each project must fulfill in order to join the train. Based on their requirements below is an initial list of what is missing from current DSDP.MTJ.

Initial Analysis

Must

  • Any new third-party plug-ins that are common between projects must be consumed via Orbit; the final Galileo 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).
  • 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 Galileo Final Daze.)
  • 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.

Should

  • 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.

Requirements

Must Do

Galileo Release "Must Do" Items
Category Item Description Target Milestone Master Bug MTJ Bug MTJ Status Date Actions/Notes
Participation Intent Projects must have stated and demonstrated their intent to join Galileo by the M4+0 date. Projects do so by adding themselves to bug bug 251715 and asking to have their project-specific bugs created as clones of each of those referenced in this table. M4 bug 251715
Projects must have an project plan in XML format. M4 bug 252790
Communicate 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 (or their designated alternates) from each project will provide communication channels: phone, mail, IM, IRC and will be available during the milestone integration periods. M4 bug 252789
Attendance Project representatives must attend the planning meetings and conference calls - you have to be involved to be involved. M4 bug 252791
Ramp Down Policy Projects must have a written ramp down policy by M6+0, linked in the table above pending inclusion of ramp down element in the XML project plan. (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 Galileo Final Daze.) M5 bug 252792
IP Projects must have their IP approved (a normal Eclipse requirement) and will follow the Eclipse Legal deadlines to do so. See also bug 220977. CQs submitted by M5, completed by RC3 bug 252793
Development Message Bundles Projects must use Eclipse message bundles unless there are technical reasons not to. (see Message Bundle Conversion Tool and [1]) M4 bug 252795
APIs Projects should leverage only published APIs of dependencies. As a Release Review requirement, deviations should be listed as part of a migration plan, with bugs listed where APIs need to be provided by dependent projects. Perhaps a '99 44/100% Pure APIs' indicator for projects with no improper usage can be used to advertise the 'cleanest' projects? ;) M6 bug 252794
Bundles Version Numbering Projects must use 4-part version numbers. M5 bug 252796 Yes No action necessary
Leverage OSGi 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. With that, empty plugin.xml files in the presence of a manifest.mf file should not be included in a bundle. M5 bug 252797
Execution Environment All plug-ins must correctly list their required JVM versions in the manifest.mf. See the wiki page about selecting the correct JVM [2]. M5 bug 252798
Signing Projects must use signed plugins using the Eclipse certificate. Exceptions must be authorized by the planning council for technical reasons. M4 bug 252799
Use Jars Projects must use jar'ed plug-ins (with unpack=false) unless authorized by the planning council for 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. M4 bug 252800
Releng Builds Projects must have build process maturity: scripted, repeatable, and executable by others. M4 bug 252801
Orbit Any new third-party plug-ins that are common between projects must be consumed via Orbit; the final Galileo 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). M4 bug 252803
Optimization Projects must optimize their own update site using pack200 to reduce bandwidth utilization and provide a better update experience for users. With the introduction of p2, project update sites must generate metadata (artifact and content repository info). M4 bug 252804
New & Noteworthy Must have new & noteworthy for each milestone. Must be something readable and usable not just a static list of all the bugs, e.g. platform. Corollary: individual new & noteworthy should be linked in to the collective New & Noteworthy. RC bug 252805
Deployment Work Together This means that users can load any subset of the Galileo projects into Eclipse and each of the loaded projects will pass all the same tests as if it had been loaded independently. If such a problem is identified, the affected projects must fix the problem. RC bug 252806
Capabilities Each project will provide basic capability/activity definitions to allow for their UI contributions to be hidden. These must be provided in a separate plugin/feature to facilitate inclusion/exclusion by consumers in product development. M6 bug 252807
Localization The project participates in Babel, meaning it is registered and available for string translation, etc. M6 bug 252808
Must use ICU4J. M5 bug 252809
Branding Each major project (the top-level projects except for the Tools and Technology projects where it is the sub-projects) should have an About dialog icon and contribute to the welcome page. RC bug 252813

Should Do

Galileo Release "Should Do" Items
Item Description Target Milestone Master Bug MTJ Bug MTJ Status Date Actions/Notes
Accessibility Should design and test for accessibility. M4 bug 252811
Usability Should follow the User Interface Guidelines. The UI Checklist is a good place to start. Also, should participate in a User Interface Best Practices Working Group UI walkthrough. M5 bug 252810
Localization The project should use the Babel Pseudo Translation Test to verify their translatablity. M6 bug 252814
Should freeze the UI sufficiently early to allow the Babel project time to translate strings. M6 bug 252815
Should design and test for enabling all languages including bidi, unicode characters, etc. M7 bug 252815
Performance Projects should devote at least one milestone to performance and scalability improvements. M7 bug 252812

Back to the top