Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 361126 - Valgrind exports "internal" packages as API
Summary: Valgrind exports "internal" packages as API
Status: RESOLVED FIXED
Alias: None
Product: Linux Tools
Classification: Tools
Component: Valgrind (show other bugs)
Version: 0.9.0   Edit
Hardware: All All
: P3 major (vote)
Target Milestone: 0.9.0   Edit
Assignee: Jeff Johnston CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-10-17 08:33 EDT by Martin Oberhuber CLA
Modified: 2011-10-20 15:43 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Oberhuber CLA 2011-10-17 08:33:22 EDT
Build-ID: 0.9.0 / master as per 17-Oct-2011

Most MANIFEST.MF in Linuxtools export their "internal" packages without specifying the OSGi ;x-internal:="true" directive.

This is a problem for development, because API tooling can't be applied properly, since it won't know the difference of what is API versus what is internal. This, in turn, is a major problem as Linuxtools strives for an 1.0 release ... adding the "x-internal" directive after an 1.0 release would virtually remove API and thus not be acceptable.

In fact I noticed the problem because with a 0.8.1 Linuxtools baseline set in Preferences > PDE > API Tooling, removal of methods from internal MassifToolPage was reported as an error (although it's not an error since that class is internal).

Suggestions:
1.) As per 0.9.0, Linuxtools should add the missing ;x-internal:="true"
    directives for all internal packages exported in MANIFEST.MF
2.) After 0.9.0, all Linuxtools committers should be required to specify an 
    API baseline in their Preferences, such that problems like this are
    detected early enough.
Comment 1 Martin Oberhuber CLA 2011-10-17 10:27:19 EDT
PS for some of the exported internal packages, an ;x-friends:="bundle..."
might be needed in order to give visibility to other valgrind bundles.
Comment 2 Jeff Johnston CLA 2011-10-18 18:10:46 EDT
(In reply to comment #1)
> PS for some of the exported internal packages, an ;x-friends:="bundle..."
> might be needed in order to give visibility to other valgrind bundles.

This is exactly what I was planning on doing.  Using the PDE form editor, the package is either public (no OSGI directive) or it can be hidden except for specified packages.  This ends up adding the x-friends directive (but no x-internal).  If anyone has a need for some of the classes that were previously exposed, I would consider moving them to the public package if warranted.
Comment 3 Martin Oberhuber CLA 2011-10-19 07:47:12 EDT
Sounds good.
FYI an x-friends implies x-internal for everyone who's not a friend.
Comment 4 Jeff Johnston CLA 2011-10-19 16:02:23 EDT
Checking in patch for Valgrind core into master and stable-0.9 branch.
Comment 5 Andrew Overholt CLA 2011-10-20 15:43:38 EDT
Setting target milestone.