core
the foundation of the platform

[home] [documents] [downloads] [resources] [planning] [testing]

Planning
3.1 Milestone 7 - May 13, 2005
  • Performance Dynamic Team
    • Performance is THE top item which is going to be addressed for M7 by the Eclipse team as a whole. Tod and John have already been working together and identifying some performance problems and during this milestone more people are going to be added to the team.
    • Look at the posts about String#substring from the eclipse mailing lists and ensure that we are doing the right thing.
  • Performance Tests
    • We need to identify more fingerprint tests for the Core component.
    • Should create some performance tests for OSGi class loading.
    • Test Eclipse start-up on a non-empty workspace.
  • Running from JARs (bug 85065)
    • All plug-ins included in the RCP SDK are being shipped as JARs (in all dev drops...Platform, JDT, etc) for M6.
    • Will convert more plug-ins for M7.
    • Need to get more performance numbers. Will fully JAR up the M6 build and run the performance tests on the performance machine to compare against the M6 regular drop.
  • Content Type
    • (bug 69640) Finish implementation of nature -> content type association.
    • (bug 87447) Project specific content type settings.
  • Shipping Manifest Files (bug 83634)
    • Continued from 3.1 M6.
    • If a plug-in defines a legacy plug-in manifest rather than a bundle manifest, then on start-up we take a hit because we have to run through all the plug-in manifests and generate the corresponding bundle manifest file.
    • For 3.1, we would like to ship bundle manifest files for all plug-ins in the SDK.
    • Mostly this is an education item: educate the other teams and help them do what they need to do.
  • PDE-Build
    • On plug-in export, the scripts are being executed in the workspace VM and we would like to move this to be in a separate VM. We will work with the Ant team to make this happen. Also need involvment from PDE/UI team.
    • PDE/UI has a model of the target platform and currently PDE/Build makes their own model. We want to investigate sharing of these models.
    • Cross platform export of RCP product - e.g. we would like to be able to export a Linux drop from a Windows machine.
  • Extension Registry
    • (bug 89983) Investigate performance of non lazy loading of the registry. (e.g. when the registry is always in memory) This might be useful for small applications.
    • (bug 89986) Investigate performance of the registry when it is located on a network drive.
    • (bug 89984) Compare performance numbers of having the registry always in memory versus having parts flushed out to disk, Explore the idea of switching lazy on or off depending on the number of plug-ins.
  • OSGi
    • (bug 89988) Investigate performance of the OSGi state when it is located on a network drive.
    • (bug 84066) Investigate automatic closure of JAR files based on time-outs, etc.
    • Investigate buddy class-loading.
  • Documentation
    • Write a document describing how to setup eclipse install (in shared install, non local dirive, etc).
    • General documentation.
  • Bug Sorting - We are getting close to the release of 3.1 so we need to sort through our bug reports to...
    • ...make sure we aren't missing important ones.
    • ...ensure the milestones are set correctly.
    • ...move all enhancements that we are going to defer so they don't interfere with new bugs coming in.

 

3.1 Milestone 6 - April 1, 2005
  • Enhancing the createExecutableExtension mechanism [pascal + jeff]
    • [bug 86236] The way executable extensions are created is limited (instantiate the class using the default constructor). However lately several scenarios demonstrated that this limitation needed to be alleviated. We need to come up with a solution that will make the executable extension pluggable.
  • Running from JARs [dj + pascal + jeff]
    • [bug 85065] We are working towards being able to run an Eclipse with each plug-in being in a single JAR file rather than a directory containing multiple files and JARs. We are currently identifying the list of issues which are preventing us from running and self-hosting with this setup. Some of the items remaining to address are:
      • source association between the JARs and the source plug-ins
      • debugging, setting breakpoints and stepping into JAR'd plug-ins
      • dealing with plug-ins who define ant tasks
      • building JAR'd Eclipses (PDE/Build)
    • Note that running from JARs works correctly, most of the remaining issues are related to normal everyday development with a JAR'd Eclipse as your Target Platform.
  • Shipping manifest files
    • If a plug-in defines a legacy plug-in manifest rather than a bundle manifest, then on start-up we take a hit because we have to run through all the plug-in manifests and generate the corresponding bundle manifest file.
    • For 3.1, we would like to ship bundle manifest files for all plug-ins in the SDK.
    • Mostly this is an education item: educate the other teams and help them do what they need to do.
  • Performance Dynamic Team [john]
    • Instrumentation is now in the Core.
    • Have ui views which (when running in dev mode) let people know if certain operations are taking too long.
    • Investigation of using aspects.
  • NLS and message bundles [john + dj]
    • Message bundle story is now defined and base code is released to Core.
    • We need to educate other teams on what to do. (how to convert, how to maintain)
    • JDT/UI is working on hooking tooling into current NLS tooling story.
    • Basic conversion tool is created. Would like to add hooks to search for non-referenced keys when converting.
  • Content Type [rafael]
    • Most Core work is done. Rest of work is education and working with other teams to get them to take advantage of the features.
    • Still working on project specific content type resolution.
  • EclipseCon [john + pascal + jeff]
    • The conference has arrived and the Core team is sending 3 members as representatives.
  • Classloading [pascal + jeff]
    • There are situations arising where other teams (RMI, Hibernate, etc) are having classloader problems. We need to investigate what we can do to help them out.
    • Level of help can be anything from hooks in code to coding patterns or something else.
  • Configurations [rafael]
    • Investigation into pre-configured installs.
  • Communication [all]
    • We want to make a concerted effort to have more discussions on the platform-core mailing list.
    • This will make other teams aware of the on-goings of the Core team. (since we don't have fancy UI features to appear in the New & Noteworthy for each milestone :-)
  • Mark-up for Dynamic Plug-ins
    • Need to assist the Update team in determining when installed plug-ins are dynamic.

 

3.1 Milestone 5 - February 18, 2005
  • History Store
    • Refactor the new HistoryStore code to share common code base with persistent properties.
  • Property Store
    • Use the refactored HistoryStore buckets for storing the persistent properties.
    • By using this mechanism for the persistent properties we hope to remove our last dependancy on the IndexedStore implementation.
  • Content type
    • Evaluate remaining content type work.
    • Bug fixing.
    • Work with clients to enable their use of our APIs.
  • Preferences dynamic team
  • Message bundles
    • Work on a new implementation that shows a performance gain in both speed and memory usage.
    • Try to provide a good compromise on readability and performance benefits.
    • Talk to the JDT/UI team to discuss tooling.
    • How much work would it be to integrate new system with current tooling?
  • Dynamic bundle support
    • Work with UI team on initial APIs for dynamic bundle support.
    • Make the runtime and resources plug-ins react to dynamic changes. (builders, prefs, etc)
  • Equinox
    • Integration of Equinox stream into Eclipse code base.
    • Code has OSGi changes bringing it up to r4.0 of the OSGi spec.
  • EclipseCon
    • Preparations for talks, presentations, and tutorials.
  • Bugzilla
    • Continued effort to fix bugs, mark bugs as WONTFIX if we aren't going to fix them, or as HELPWANTED if we want to fix them but don't have the time or resources to do so.
  • Planning
    • Milestone and release planning.

 

3.1 Milestone 4 - December 17, 2004

  1. Content Type Dynamic Team (Rafael)
    • Summary: In 3.0 we added support at the Core level and now we need to work with other teams and help them use this new functionality.
    • Milestone 4: TBD. Need to coordinate with UI team to see when they have cycles to work on this.
  2. Preferences Dynamic Team (DJ)
    • Summary: Check out the Dynamic Team page for more detailed information.
    • Milestone 4: MVM and DJ to review "Core APIs vs. User Actions"
  3. Registry Structure (Pascal)
    • Summary: Another representation of the registry has been written and it has a few performance improvements in both the time and space aspects.
    • Milestone 4: Mcq and Pascal will do a code review Nov 9 and we will evaluate the forward direction at following team meeting. This code needs to be released in first 2 weeks of M4 or we need to decide that the benefit is not good enough and we will move on.
  4. Large Scale Workspaces (John)
  5. RCP/eRCP
    • Summary:
    • Milestone 4: Investigation into dynamic plugin support and object tracking.
  6. IndexedStore work (Rafael)
    • Summary: We are looking at replacing the underlying mechanism of the history and property stores. We have used a B-tree implementation but we believe the implemention is more complex than we need. The stores are separated into 2 parts: the index store and the blob store. The index store maps paths to UUIDs the the blob store maps UUIDs to blobs. It is the index store part of the mechanism which we are looking at replacing. We have an initial implementation which tries to use the file system to help with the mapping.
    • Milestone 4: Performance work. Migration/Backwards compatibility story. (potentially a lot of work here) Investigate garbage collection in background operation. Investigate snapshots (time permitting) (bug 36958)
  7. PDE/Build (Pascal)
    • Summary: The original purpose for PDE/Build was to be able to build Eclipse from Ant tasks but lately there have been bug reports about PDE/Build not being workspace-aware. (e.g. linked resources, classpath, compiler options) This would require a lot of work (essentially a complete re-write) so before do anything we need to construct a list of problems that we are seeing and come up with a risk vs benefit analysis. Also we should investigate if there is a subset of issues we can fix with minimal work.
    • Milestone 4: Identify list of problems. Identify issue subset.
  8. Resource Bundles
    • Summary: The size of resource bundles and bundle keys has always been a concern and performance issue. We need to investigate strategies for making improvements in this area. We need to talk to other teams (JDT/UI?) about the tooling. Also this is of importance to the performance team, perhaps we can get help/ideas from them?
    • Milestone 4: TBD (talk to Erich to see where this is on his radar)
  9. Managing Bugzilla (all)
    • Summary: Our bug counts are ever-growing so we are going to make an effort to reduce the number of open bugs in our components. We need to be agressive with reports. There are a couple of categories which make up a lot of bugs: enhancements which we don't plan on implementing and bug reports which we can't reproduce. If we don't plan on implementing a feature, then we should close the bug and use the "helpwanted" keyword. If we can't replicate a bug and its been open for longer than 6 months, we should close it.
  10. Test Suites (all)
    • Summary: We have a lot of performance tests in the Resources project which should be converted over to use the new framework.
    • Milestone 4: Convert existing performance tests to use new framework.

 

3.1 Milestone 3 - November 5, 2004

  • IPath Issues (bug 24152)
    • There are issues when specifying a slash or colon as part of a filename or having filenames with leading or trailing whitespace.
  • File attributes (bug 26100)
    • Specifying file atttributes on IResources. (executable bit, etc)
  • User Settings (bug 71124)
    • Dynamic team should be set up between Core, UI, and JDT UI groups.
    • Summarize current situation.
    • Identify work which we want to accomplish.

 

3.1 Milestone 2 - September 24, 2004
  • Fix external tool builder story (bug 21029)
  • Implementation of new content type APIs. Fix and release in 3.0.1 maintenance branch and merge into HEAD. (bug 67884)
  • At the Resources level, react to the content type changes and reflect them in resource deltas. Also do the implementation of new file encoding APIs. Fix and release in 3.0.1 maintenance branch and merge into HEAD. (bug 59899)
  • Investigation of problems with large-scale development. This includes start-up time, build time, random build manager issues, build progress issues, etc.
  • Performance work using large-scale applications as test data.
  • Work on the test suites for session tests -> adapt to work with the test harness and be run as a part of the automated builds.
  • Planning.