Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "CDT/Obsolete/APIBreakages"
(→Proposed process) |
m (Jonah.kichwacoders.com moved page CDT/APIBreakages to CDT/Obsolete/APIBreakages) |
||
(21 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | |||
+ | {{warning|Note: The contents of this page is obsolete. The API Breakages that did happen are documented in [[CDT/User/NewIn90]] }} | ||
+ | |||
+ | [[Category:CDT:Obsolete]] | ||
+ | |||
== CDT 9.0 == | == CDT 9.0 == | ||
Line 5: | Line 10: | ||
=== Proposed API-breaking changes === | === Proposed API-breaking changes === | ||
* Remove all methods, interfaces and classes that have been deprecated since around 2 years CDT 8.?.0 and are not currently used in CDT code. | * Remove all methods, interfaces and classes that have been deprecated since around 2 years CDT 8.?.0 and are not currently used in CDT code. | ||
+ | ** '''Marc K to do the DSF/DSF-GDB part. This was done, although maybe not 100%''' | ||
** Improves readability | ** Improves readability | ||
** Reduces maintenance | ** Reduces maintenance | ||
** Could be contributions from a hackathon | ** Could be contributions from a hackathon | ||
** Suggested rules (not mandatory): something deprecated for around 2 years and not used by CDT itself | ** Suggested rules (not mandatory): something deprecated for around 2 years and not used by CDT itself | ||
− | ** Delete CDI plugins | + | ***'''EclipeCon2016 update: Some of this cleanup has been done but not extensively.''' |
− | ** | + | * Remove support for old Apple GDB. '''Done''' |
− | *** | + | * Delete CDI plugins '''Done by a [https://git.eclipse.org/r/63282 contribution from Jonah]''' |
− | + | ** Clean up CApplicationLaunchShortcut to no longer chooseDebugConfig() which is a CDI concept '''Marc will look at that''' | |
− | *** Our tests still use old-style and migrating them is not trivial | + | ***'''EclipeCon2016 update: Can be done once CDI is removed. Not requiring API-breakage''' |
− | ** Old scanner discovery (Language setting provider) | + | * Cleanup old-style projects '''Marc-Andre will head this''' |
− | ** What about LR parser? | + | **'''EclipeCon2016 update: Marc-Andre has a patch he will try to complete''' |
− | + | ** Our tests still use old-style and migrating them is not trivial | |
− | + | ***'''EclipeCon2016 update: These tests are essential and migrating them will take time. Will not happen.''' | |
− | + | ** Remove code that migrates from .cdtproject (pre CDT 4.0) | |
− | ** | + | ***'''EclipeCon2016 update: Can be done. Maybe Marc-Andre?''' |
− | * | + | ** Removing UI that is not used |
− | + | **'''EclipeCon2016 update: Can be done. Marc-Andre will have a look.''' | |
− | + | * Old scanner discovery (Language setting provider) | |
− | + | ** At least we should not show both in the UI to a user | |
− | + | ***'''EclipeCon2016 update: Doug will remove the element from the UI''' | |
− | ** Remove IA64, QNX | + | * What about LR parser? |
− | + | ** Need to follow-up with IBM | |
+ | ** UPC, XLC plugins may need them, which are used by PTP | ||
+ | ** Can we move it to PTP? | ||
+ | ***'''EclipeCon2016 update: Doug is following-up [https://dev.eclipse.org/mhonarc/lists/cdt-dev/msg30275.html here]''' | ||
+ | * p2 plugin '''Has been removed''' | ||
+ | * o.e.cdt.core.native (Spawner) '''Doug''' | ||
+ | ** Used by o.e.remote but CDT uses o.e.remote => circular | ||
+ | ** Spawner should be moved lower than CDT. Where? Maybe in CDT but be independent. That still solves 'circular' dependency. | ||
+ | ** native should have its own pom/build | ||
+ | ***'''EclipeCon2016 update: Want to move to a IDE Commons project. Until then, we can just split the build. Not requiring API-breakage''' | ||
+ | * Remove IA64, QNX as they are not available from platform '''Done''' | ||
+ | * Remove o.e.linuxtools.cdt.autotools.core '''Jeff''' | ||
+ | **'''EclipeCon2016 update: Done''' | ||
* Merge cross-GCC with regular-GCC | * Merge cross-GCC with regular-GCC | ||
− | * | + | **'''EclipeCon2016 update: Won't have time''' |
− | * Cleanup CDI* classes used by DSF | + | * Cleanup/Rename CDI* classes used by DSF '''Marc K''' |
− | + | **'''EclipeCon2016 update: Keep old classes but make then stubs that point to a properly named set of classes. Non API-breaking''' | |
− | * Rewrite error parsers to use a better regex library (java.regex.Pattern is part of API now) because build is horribly slow from IDE strictly because of error parsers. | + | * C/C++ Problem Markers - add API to deal with column information '''Alena''' |
+ | **'''EclipeCon2016 update: We believe this was done''' | ||
+ | * Rewrite error parsers to use a better regex library (java.regex.Pattern is part of API now) because build is horribly slow from IDE strictly because of error parsers. '''Doug, as part of the new build effort''' | ||
** Need to fix API | ** Need to fix API | ||
** Be careful with performance | ** Be careful with performance | ||
− | + | ***'''EclipeCon2016 update: Won't have time''' | |
* Rewrite ui for debug tabs, all current ui controls are APIs... | * Rewrite ui for debug tabs, all current ui controls are APIs... | ||
** Check with list if anyone is against such changes | ** Check with list if anyone is against such changes | ||
− | + | ***'''EclipeCon2016 update: Won't have time''' | |
− | * Java 8 changes | + | * Java 8 changes '''Ok for CDT plugins to use Java 8. Migration of each plugin when/if needed''' |
+ | **'''EclipeCon2016 update: Would be nice to move all plugins. Let's write a script to do this whenever we need for different java versions. Non API-breaking.''' | ||
+ | * Make (some) dsf.ui and dsf.gdb.ui classes as API. | ||
+ | ** Pay attention to good extensibility for some of these classes. Probably best to makes changes to address specific use-cases | ||
+ | ** '''We will only do this upon request and if there is a good reason''' | ||
+ | ****'''EclipeCon2016 update: No request, not done.''' | ||
+ | * Separate the Run launch delegate into its own delegate. The Run delegate should use LocalRunLaunchDelegate.java instead of LocalCDILaunchDelegate.java '''Done''' | ||
+ | * In the debugger, make thread a string instead of an integer. GDB may move to use strings. See IMIExecutionDMContext '''Done by Alvaro''' | ||
+ | * MIBreakpoint MI uses an int as an id. It should be a string. '''Done by Marc Dumais''' | ||
+ | * Changes for Grouping feature and its use of IContainer... Containers may no longer be directly mapped to processes. '''Marc''' | ||
+ | ***'''EclipeCon2016 update: Grouping feature still under development. Don't know what needs to be done about this yet.''' | ||
+ | * Replace IRunControl.isStepping() and IRunConrol.isSuspended() with asynchronous versions??? | ||
+ | ***'''EclipeCon2016 update: Unclear if needed until Grouping feature completed. Not going to be done''' | ||
+ | * Revisit the CDT Breakpoint action framework '''Mikhail''' | ||
+ | ***'''EclipeCon2016 update: No time for this one.''' | ||
+ | * [http://eclip.se/302305 Bug 302305] - Migrate Move to Line and Resume At Line actions to use the asynchronous DebugCommandAction '''No time''' | ||
+ | * [http://eclip.se/489398 Bug 489398] - Support memory spaces in IExpressionDMAdress '''Alvaro used default methods. No longer API breaking''' | ||
+ | * [http://eclip.se/489501 Bug 489501] - [memory] Add API to resolve the default memory space id '''Alvaro used default methods. No longer API breaking''' | ||
=== Proposed process === | === Proposed process === |
Latest revision as of 14:19, 22 January 2020
CDT 9.0
This page is attempt to collect possible API breaking proposals for next CDT release
Proposed API-breaking changes
- Remove all methods, interfaces and classes that have been deprecated since around 2 years CDT 8.?.0 and are not currently used in CDT code.
- Marc K to do the DSF/DSF-GDB part. This was done, although maybe not 100%
- Improves readability
- Reduces maintenance
- Could be contributions from a hackathon
- Suggested rules (not mandatory): something deprecated for around 2 years and not used by CDT itself
- EclipeCon2016 update: Some of this cleanup has been done but not extensively.
- Remove support for old Apple GDB. Done
- Delete CDI plugins Done by a contribution from Jonah
- Clean up CApplicationLaunchShortcut to no longer chooseDebugConfig() which is a CDI concept Marc will look at that
- EclipeCon2016 update: Can be done once CDI is removed. Not requiring API-breakage
- Clean up CApplicationLaunchShortcut to no longer chooseDebugConfig() which is a CDI concept Marc will look at that
- Cleanup old-style projects Marc-Andre will head this
- EclipeCon2016 update: Marc-Andre has a patch he will try to complete
- Our tests still use old-style and migrating them is not trivial
- EclipeCon2016 update: These tests are essential and migrating them will take time. Will not happen.
- Remove code that migrates from .cdtproject (pre CDT 4.0)
- EclipeCon2016 update: Can be done. Maybe Marc-Andre?
- Removing UI that is not used
- EclipeCon2016 update: Can be done. Marc-Andre will have a look.
- Old scanner discovery (Language setting provider)
- At least we should not show both in the UI to a user
- EclipeCon2016 update: Doug will remove the element from the UI
- At least we should not show both in the UI to a user
- What about LR parser?
- Need to follow-up with IBM
- UPC, XLC plugins may need them, which are used by PTP
- Can we move it to PTP?
- EclipeCon2016 update: Doug is following-up here
- p2 plugin Has been removed
- o.e.cdt.core.native (Spawner) Doug
- Used by o.e.remote but CDT uses o.e.remote => circular
- Spawner should be moved lower than CDT. Where? Maybe in CDT but be independent. That still solves 'circular' dependency.
- native should have its own pom/build
- EclipeCon2016 update: Want to move to a IDE Commons project. Until then, we can just split the build. Not requiring API-breakage
- Remove IA64, QNX as they are not available from platform Done
- Remove o.e.linuxtools.cdt.autotools.core Jeff
- EclipeCon2016 update: Done
- Merge cross-GCC with regular-GCC
- EclipeCon2016 update: Won't have time
- Cleanup/Rename CDI* classes used by DSF Marc K
- EclipeCon2016 update: Keep old classes but make then stubs that point to a properly named set of classes. Non API-breaking
- C/C++ Problem Markers - add API to deal with column information Alena
- EclipeCon2016 update: We believe this was done
- Rewrite error parsers to use a better regex library (java.regex.Pattern is part of API now) because build is horribly slow from IDE strictly because of error parsers. Doug, as part of the new build effort
- Need to fix API
- Be careful with performance
- EclipeCon2016 update: Won't have time
- Rewrite ui for debug tabs, all current ui controls are APIs...
- Check with list if anyone is against such changes
- EclipeCon2016 update: Won't have time
- Check with list if anyone is against such changes
- Java 8 changes Ok for CDT plugins to use Java 8. Migration of each plugin when/if needed
- EclipeCon2016 update: Would be nice to move all plugins. Let's write a script to do this whenever we need for different java versions. Non API-breaking.
- Make (some) dsf.ui and dsf.gdb.ui classes as API.
- Pay attention to good extensibility for some of these classes. Probably best to makes changes to address specific use-cases
- We will only do this upon request and if there is a good reason
- EclipeCon2016 update: No request, not done.
- Separate the Run launch delegate into its own delegate. The Run delegate should use LocalRunLaunchDelegate.java instead of LocalCDILaunchDelegate.java Done
- In the debugger, make thread a string instead of an integer. GDB may move to use strings. See IMIExecutionDMContext Done by Alvaro
- MIBreakpoint MI uses an int as an id. It should be a string. Done by Marc Dumais
- Changes for Grouping feature and its use of IContainer... Containers may no longer be directly mapped to processes. Marc
- EclipeCon2016 update: Grouping feature still under development. Don't know what needs to be done about this yet.
- Replace IRunControl.isStepping() and IRunConrol.isSuspended() with asynchronous versions???
- EclipeCon2016 update: Unclear if needed until Grouping feature completed. Not going to be done
- Revisit the CDT Breakpoint action framework Mikhail
- EclipeCon2016 update: No time for this one.
- Bug 302305 - Migrate Move to Line and Resume At Line actions to use the asynchronous DebugCommandAction No time
- Bug 489398 - Support memory spaces in IExpressionDMAdress Alvaro used default methods. No longer API breaking
- Bug 489501 - [memory] Add API to resolve the default memory space id Alvaro used default methods. No longer API breaking
Proposed process
- Mark classes that will disappear as Deprecated. Can we do it on the Package? Maybe using javadoc. Do this ASAP to warn people.
- Select an API-breaking change to work on
- Estimate the impact (code changes) of the change on the APIs
- Communicate that impact to the cdt-dev list to notify possible impacted parties