# Upgrade Guide

## Table of Content

* [v2.3 to v2.4](#upgrade-from-v23-to-v24)
* [v2.2 to v2.3](#upgrade-from-v22-to-v23)
* [v2.1 to v2.2](#upgrade-from-v21-to-v22)
* [v2.0 to v2.1](#upgrade-from-v20-to-v21)
* [v1.1.12 to v2.0](#upgrade-from-v1112-to-v20)
* [v1.1.11 to v1.1.12](#upgrade-from-v1111-to-v1112)

## Upgrade from v2.4 to v3.0

* TBD

## Upgrade from v2.3 to v2.4

### Breaking Changes

* Supports React 17
* Dependency Upgrades, major ones: `d3-xxx@^2`, `redux@4.0.5`, `type-analyzer@0.3.0`, `react-palm@~3.3.7`

### New Features

* Support incremental timeline animation
* Allow changing dataset in layer config
* Enable polygon filter for h3 layer
* Show last added filter at the top

### Bug Fixes

* Avoid duplicated h3 layer detection
* Fixed bug when reversing color palette not update

## Upgrade from v2.2 to v2.3

* Upgrade dependencies to `deck.gl@8.2.0`, `loaders.gl@2.2.5` and `luma.gl@8.2.0`. This should only affects projects with the above libraries in its dependencies.

## Upgrade from v2.1 to v2.2

### New Features

* **Interaction** - Added Geocoder in the interactin panel

### Improvements

* **Localization** - Added Spanish, Catalan, and Portuguese translations

### Bug Fixes

* **Layer** - Aggregation layer fix out-of-domain coloring for valid strings
* **Export** - Fixed download file for microsoft edge

### API Update

* **Components** - Exported map drawing editor factories

## Upgrade from v2.0 to v2.1

### Breaking Changes

* Upgrade Node v10 for dev development, node requirement is now at `>=10.15.0`

### New Features

* **Provider** - Add cloud provider API
* **Layer** - Added S2 Layer
* **Basemap** - Added satellite to base map styles options
* **Theme** - Added base UI theme to theme option as `base`

### Improvements

* **UI** - Improved data table and layer panel header
* **Filter** - Better handle filter steps for small domains

### Bug Fixes

* **Layer** - Remove incorrect outlier for better map center detection
* **Layer** - Fix point layer stroke width
* **Basemap** - Fix bug custom map style not saved correctly
* **Export** - Fix bug exported html blank

***

## Upgrade from v1.1.12 to v2.0

### Breaking Changes

* Upgrade deck.gl to `8.0.15`, this only affects projects with deck.gl in its dependencies. Because only one version of deck.gl can be loaded.

### New Features

* **GPU Filter** - Improved time and numeric filter performance by moving calculation to GPU
* **Geo Fitler** - Added drawing polygon function, allow filter layer based on polygon

### Improvements

* **Layer** - Improved GeoJson and H3 layer geometry rendering
* **UI** - Support custom side panel tabs. [example](https://github.com/keplergl/kepler.gl/tree/master/examples/replace-component)

### Bug Fixes

***

## Upgrade from v1.1.11 to v1.1.12

### Breaking Changes

#### Dependency Upgrade

* **react** and **react-dom**: minimum required version is now `^16.3`
* **react-redux** is upgraded to `^7.1.3`. If you have older version of `react-redux` in your app. You will have error loading kepler.gl, likely due to multiple version of `react-redux` installed.
* **react-palm**: required version is now `^3.1.2`.
* **react-route**: if you are using `react-router`, we suggest using `^3.2.5` to avoid `React 16.8` lifecycle deprecation warning in the console.

### Bug Fixes

* **Cluster Layer**: Fix incorrect cluster point count. Fix cluster layer missing in exported image.

### Moved from `kepler.gl/utils` to `@kepler.gl/table`

* `maybeToDate`
* `getNewDatasetColor`
* `createNewDataEntry`
* `setFilterGpuMode`
* `assignGpuChannels`
* `assignGpuChannel`
* `resetFilterGpuMode`
* `getGpuFilterProps`
* `getDatasetFieldIndexForFilter`

### Moved from `kepler.gl/utils` to `@kepler.gl/reducers`

* `findMapBounds`
* `exportData`
* `TOOLTIP_MINUS_SIGN`
* `getDefaultInteraction`
* `BRUSH_CONFIG`
* `findFieldsToShow`
* `getTooltipDisplayDeltaValue`
* `getTooltipDisplayValue`
* `LayersToRender`
* `AggregationLayerHoverData`
* `LayerHoverProp`
* `findDefaultLayer`
* `calculateLayerData`
* `getLayerHoverProp`
* `renderDeckGlLayer`
* `isLayerRenderable`
* `isLayerVisible`
* `prepareLayersForDeck`
* `prepareLayersToRender`
* `getCustomDeckLayers`
* `ComputeDeckLayersProps`
* `computeDeckLayers`

### Moved from `kepler.gl/processors` to `@kepler.gl/utils`

* `ACCEPTED_ANALYZER_TYPES`
* `validateInputData`
* `getSampleForTypeAnalyze`
* `getFieldsFromData`
* `renameDuplicateFields`
* `analyzerTypeToFieldType`

### Moved from `kepler.gl/templates` to `@kepler.gl/utils`

* `exportMapToHTML`

### Moved from `kepler.gl/layers` to `@kepler.gl/utils`

* `getCentroid`
* `idToPolygonGeo`
* `h3IsValid`
* `getHexFields`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.kepler.gl/upgrade-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
