| Summary: | Bundle versioning scheme should be based on problem filtering and project preferences | ||
|---|---|---|---|
| Product: | [Eclipse Project] PDE | Reporter: | Olivier Thomann <Olivier_Thomann> |
| Component: | API Tools | Assignee: | Darin Wright <darin.eclipse> |
| Status: | VERIFIED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | bokowski, darin.eclipse, mober.at+eclipse, susan |
| Version: | 3.4 | ||
| Target Milestone: | 3.4 M7 | ||
| Hardware: | PC | ||
| OS: | Windows XP | ||
| Whiteboard: | |||
| Bug Depends on: | |||
| Bug Blocks: | 225433 | ||
|
Description
Olivier Thomann
See bug 222905 comment 17 for a sample scenario, as well as more comments. My concern with this one is that the bundle version might not reflect changes applied to the bundle since the previous version. This might create a situation where some bundles should be compatible because their versions are within the version range and in reality they are not. We need to investigate/consider this use case. It seems a few component owners are running into this problem. We have another scenario in JFace, where we decided to change the value of a "public static final int" constant. This value is used as a style bit for a constructor, and the old value was wrong. We added code that detects when the old value is passed in, changing it to the correct value before passing it on to SWT. I guess the "correct" way would have been to deprecate the existing constant and add a new one, but we felt that the additional work imposed on clients by doing that was not warranted. Right now we have an inconsistency. When changing the preferences, the bundle errors are not flagged, but when using the problem filter they are. If the preferences are modified to "ignore" some problems, the corresponding problem is not reported by the builder. When the problem is filtered, this is done after the bit has been set to "check" the bundle version. We need a consistent story here. The current situation is confusing. Olivier, I think we should change to do something like this: * builder is invoked * creates API problems, adds them to the problem reporter * (the problem report does the filtering) * after all building is complete, the builder checks with the problem reporter for specific kinds of problems that would effect bundle versions to decide if bundle version problems need to be added This way, we avoid putting the decision in the delta. We would need new API on the problem reporter to ask for problems/or specific kinds of problems (what ever would work best). I'll investigate it. We must also check the existing markers in case of an incremental build to "rebuild" some files or simply remove the existing markers that are not relevant anymore. See bug 224983. Released for 3.4M7. Michael, please verify. Released. Re-opening. Looks like we still report bundle version problems even when related problems have been filtered. Released for 3.4M7. Darin, please verify. Fixed. Verified. Bundle version problems are now avoided if I filter associated problems, or set severities to ignore. |