/*! \page api_break Backwards Incompatible Changes \tableofcontents The API of QGIS libraries is allowed to be changed just between major versions of QGIS. For example, there are various planned backwards incompatible changes between QGIS 1.8 and 2.0 because the version 2.0 is a new major version. After a release of a major version of QGIS (e.g. 2.0) the developer team is committed to maintain stable API for all subsequent minor releases (2.2, 2.4, ...). That roughly means we do not rename classes and methods, remove them nor change their semantics. Existing code should keep working when the user updates QGIS to another minor version (e.g. from 2.0 to 2.2), so all extensions of existing classes should be done in a manner that third party developers do not need to adjust their code to work properly with newer QGIS releases. Sometimes, however, we may need to break the API as a result of some code changes. These cases should be only exceptions and they should happen only after consideration and agreement of the development team. Backwards incompatible changes with too big impact should be deferred to a major version release. This page tries to maintain a list with incompatible changes that happened in previous releases. \section qgis_api_break_3_0 QGIS 3.0 \subsection qgis_api_break_3_0_renamed_classes Renamed Classes
Renamed classes
API 2.x API 3.X
QgsColorButtonV2 QgsColorButton
QgsSymbolLayerV2 QgsSymbolLayer
QgsSymbolLayerV2AbstractMetadata QgsSymbolLayerAbstractMetadata
QgsSymbolLayerV2Metadata QgsSymbolLayerMetadata
QgsSymbolLayerV2Registry QgsSymbolLayerRegistry
QgsSymbolLayerV2Utils QgsSymbolLayerUtils
QgsSymbolLayerV2Widget QgsSymbolLayerWidget
QgsSymbolLevelsV2Dialog QgsSymbolLevelsDialog
QgsSymbologyV2Conversion QgsSymbologyConversion
QgsSymbolV2 QgsSymbol
QgsSymbolV2LegendNode QgsSymbolLegendNode
QgsSymbolV2LevelItem QgsSymbolLevelItem
QgsSymbolV2RenderContext QgsSymbolRenderContext
QgsSymbolV2SelectorDialog QgsSymbolSelectorDialog
QgsSymbolV2SelectorWidget QgsSymbolSelectorWidget
\subsection qgis_api_break_3_0_removed_classes Removed Classes \subsection qgis_api_break_3_0_global General changes \subsection qgis_api_break_3_0_DataProviders Data Providers \subsection qgis_api_break_3_0_Qgis Qgis \subsection qgis_api_break_3_0_QgsAtlasComposition QgsAtlasComposition \subsection qgis_api_break_3_0_QgsAuthConfigUriEdit QgsAuthConfigUriEdit \subsection qgis_api_break_3_0_QgsAuthMethod QgsAuthMethod \subsection qgis_api_break_3_0_QgsComposerLegendItem QgsComposerLegendItem \subsection qgis_api_break_3_0_QgsComposerMap QgsComposerMap \subsection qgis_api_break_3_0_QgsComposerNodesItem QgsComposerNodesItem \subsection qgis_api_break_3_0_QgsComposerTable QgsComposerTable \subsection qgis_api_break_3_0_QgsComposition QgsComposition \subsection qgis_api_break_3_0_QgsCoordinateReferenceSystem QgsCoordinateReferenceSystem \subsection qgis_api_break_3_0_QgsCoordinateTransform QgsCoordinateTransform \subsection qgis_api_break_3_0_QgsCoordinateTransformCache QgsCoordinateTransformCache \subsection qgis_api_break_3_0_QgsCptCitySelectionItem QgsCptCitySelectionItem \subsection qgis_api_break_3_0_QgsCRSCache QgsCRSCache \subsection qgis_api_break_3_0_QgsDataDefinedSymbolDialog QgsDataDefinedSymbolDialog \subsection qgis_api_break_3_0_QgsDataItem QgsDataItem \subsection qgis_api_break_3_0_QgsDatasourceUri QgsDataSourceURI \subsection qgis_api_break_3_0_QgsDatumTransformStore QgsDatumTransformStore \subsection qgis_api_break_3_0_QgsDiagram QgsDiagram \subsection qgis_api_break_3_0_QgsDiagramLayerSettings QgsDiagramLayerSettings \subsection qgis_api_break_3_0_QgsFeature QgsFeature \subsection qgis_api_break_3_0_QgsFeatureRendererV2 QgsFeatureRendererV2 \subsection qgis_api_break_3_0_QgsFields QgsFields \subsection qgis_api_break_3_0_QgsGeometry QgsGeometry \subsection qgis_api_break_3_0_QgsGeometryAnalyzer QgsGeometryAnalyzer \subsection qgis_api_break_3_0_QgsGraphBuilderInterface QgsGraphBuilderInterface \subsection qgis_api_break_3_0_QgsGroupWMSDataDialog QgsGroupWMSDataDialog \subsection qgis_api_break_3_0_QgsHighlight QgsHighlight \subsection qgis_api_break_3_0_QgsJSONExporter QgsJSONExporter \subsection qgis_api_break_3_0_QgsLabelingEngineInterface QgsLabelingEngineInterface \subsection qgis_api_break_3_0_QgsLayerTreeGroup QgsLayerTreeGroup \subsection qgis_api_break_3_0_QgsLayerTreeNode QgsLayerTreeNode \subsection qgis_api_break_3_0_QgsMapCanvas QgsMapCanvas \subsection qgis_api_break_3_0_QgsMapLayer QgsMapLayer \subsection qgis_api_break_3_0_QgsMapOverviewCanvas QgsMapOverviewCanvas \subsection qgis_api_break_3_0_QgsMapRenderer QgsMapRenderer \subsection qgis_api_break_3_0_QgsMapRendererJob QgsMapRendererJob \subsection qgis_api_break_3_0_QgsMapSettings QgsMapSettings \subsection qgis_api_break_3_0_QgsOSMElement QgsOSMElement \subsection qgis_api_break_3_0_QgsOWSSourceSelect QgsOWSSourceSelect \subsection qgis_api_break_3_0_QgsOWSConnection QgsOWSConnection \subsection qgis_api_break_3_0_QgsNumericSortTreeWidgetItem QgsNumericSortTreeWidgetItem \subsection qgis_api_break_3_0_QgsPalLabeling QgsPalLabeling \subsection qgis_api_break_3_0_QgsPalLayerSettings QgsPalLayerSettings \subsection qgis_api_break_3_0_QgsPointLocator QgsPointLocator \subsection qgis_api_break_3_0_QgsProject QgsProject \subsection qgis_api_break_3_0_QgsRasterDataProvider QgsRasterDataProvider \subsection qgis_api_break_3_0_QgsRasterInterface QgsRasterInterface \subsection qgis_api_break_3_0_QgsRasterProjector QgsRasterProjector \subsection qgis_api_break_3_0_QgsRelation QgsRelation \subsection qgis_api_break_3_0_QgsRenderChecker QgsRenderChecker \subsection qgis_api_break_3_0_QgsRenderContext QgsRenderContext \subsection qgis_api_break_3_0_QgsRubberBand QgsRubberBand \subsection qgis_api_break_3_0_QgsSnapper QgsSnapper \subsection qgis_api_break_3_0_QgsSymbol QgsSymbol (renamed from QgsSymbolV2) \subsection qgis_api_break_3_0_QgsSymbolLayer QgsSymbolLayer (renamed from QgsSymbolLayerV2) \subsection qgis_api_break_3_0_QgsSymbolRenderContext QgsSymbolRenderContext (renamed from QgsSymbolV2RenderContext) \subsection qgis_api_break_3_0_QgsSymbolLayerUtils QgsSymbolLayerUtils (renamed from QgsSymbolLayerUtilsV2) \subsection qgis_api_break_3_0_QgsTolerance QgsTolerance \subsection qgis_api_break_3_0_QgsTreeWidgetItem QgsTreeWidgetItem \subsection qgis_api_break_3_0_QgsUnitTypes QgsUnitTypes \subsection qgis_api_break_3_0_QgsVectorDataProvider QgsVectorDataProvider \subsection qgis_api_break_3_0_QgsVectorLayer QgsVectorLayer \subsection qgis_api_break_3_0_QgsVectorLayerEditBuffer QgsVectorLayerEditBuffer \subsection qgis_api_break_3_0_QgsVectorLayerEditUtils QgsVectorLayerEditUtils \subsection qgis_api_break_3_0_QgsVectorLayerImport QgsVectorLayerImport \subsection qgis_api_break_3_0_QgsVectorLayerUndoCommand QgsVectorLayerUndoCommand \subsection qgis_api_break_3_0_QgsVisibilityPresetCollection QgsVisibilityPresetCollection \subsection qgis_api_break_3_0_QgsVectorFileWriter QgsVectorFileWriter \subsection qgis_api_break_3_0_QgsWMSLegendNode QgsWMSLegendNode \section qgis_api_break_2_4 QGIS 2.4 \subsection qgis_api_break_mtr Multi-threaded Rendering \section qgis_api_break_2_6 QGIS 2.6 \subsection qgis_api_break_legend_refactoring Legend Refactoring */