This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Many of our modules (~40) in cnd and dlight don't have Implementation Version set. It will cause update problems if another module declares an implementation version dependency on one of these modules and the module gets rebuilt. Bug assigned to Andrew for his fixes. Please re-assign to next person when done. More details: If a module *doesn't* have "Implementation Version" set in it's properties (API Versioning), it will get a new random implementation version assigned every time you build it. nativeexecution module doesn't have this set and it's implementation version is something like OpenIDE-Module-Implementation-Version: 100817-76836433d241 when we build it. If a module *has* "Implementation Version" set in it's properties (usually just '1'), this value doesn't change when you build it and it shows up as for instance: OpenIDE-Module-Implementation-Version: 1 So, if a module is well written, you can put it on the update center and all modules, even those with a implementation dependency, will continue to work.
Why should we use implementation dependencies? I strongly believe we should not. And if we don't, why should we care?
We should not use implementation dependencies, but the core issue is many of our modules don't have the declared implementation version and it creates an update problem for those modules that has a implementation dependencies. And that includes third-party code like THA, dbxgui (if it has any), MC code, and whatever is out there. It is a vali to use our modules this way so we have to make sure they are well-written by adding the implementation version. Another task for us (CND/dlight) is to move from using implementation dependencies to a specification-version dependency, but it is a secondary task and doesn't fix the core issue.
OK... Modules that have implementation dependencies on (current state) are: First column description: first '+' means that this module already has impl spec number defined first '-' means that this module has no impl spec number defined second '+' means that all (known) impl dependent modules are in the same repository second '-' means we have (known) 3rd-party/close-source modules (from different repository) that have impl dependency on it -+: analytics.management ++: cnd --: cnd.dwarfdump +-: dlight +-: dlight.collector.stdout +-: dlight.core.stack --: dlight.extras +-: dlight.management --: dlight.memory --: dlight.nativeexecution --: dlight.spi -+: dlight.targets ++: dlight.threadmap.support ++: dlight.threads -+: dlight.ui --: dlight.util +-: dlight.visualizers Modules that have second '-' have cross-repositories implementation dependencies. We should do our best to avoid them. Those that have '--' - will definitely lead to problems once they are updated from UC. Those that have '+-' - may lead to problems once they are updated from UC. For now at least we need to define impl. version spec for them...
added implementation version 1 to all cnd and dlight modules just in case: http://hg.netbeans.org/cnd-main/rev/930a4cc7f6d4
Integrated into 'main-golden', will be available in build *201009160000* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main/rev/930a4cc7f6d4 User: Egor Ushakov <gorrus@netbeans.org> Log: fixed #189649 (missing impl versions)