[gdal-dev] GDAL 3.12.0 "Chicoutimi" is released

Even Rouault even.rouault at spatialys.com
Fri Nov 7 16:14:09 PST 2025


Hi,

On behalf of the GDAL/OGR development team and community, I am pleased 
to announce the release of GDAL/OGR 3.12.0 "Chicoutimi". GDAL/OGR is a 
C++ geospatial data access library for raster and vector file formats, 
databases and web services. It includes bindings for several languages, 
and a variety of command line tools.

http://gdal.org/

The 3.12.0 release is a new feature release with the following highlights:

* New 'gdal' command line interface capabilities:
   - Add 'gdal raster as-features' (#12970)
   - Add 'gdal raster blend' (port of hsv_merge.py + regular alpha blending)
   - Add 'gdal raster compare' (port of gdalcompare.py) (#12757)
   - Add 'gdal raster neighbors' (#12768)
   - Add 'gdal raster nodata-to-alpha' (#12524)
   - Add 'gdal raster pansharpen' (port of gdal_pansharpen.py)
   - Add 'gdal raster proximity' (#12350)
   - Add 'gdal raster rgb-to-palette' (port of rgb2pct.py)
   - Add 'gdal raster update'
   - Add 'gdal raster zonal-stats'
   - Add 'gdal vector check-coverage'
   - Add 'gdal vector check-geometry'
   - Add 'gdal vector clean-coverage'
   - Add 'gdal vector index' (port of ogrtindex)
   - Add 'gdal vector layer-algebra' (port of ogr_layer_algebra.py)
   - Add 'gdal vector make-point'
   - Add 'gdal vector partition'
   - gdal vector pipeline: add limit step
   - Add 'gdal vector set-field-type'
   - Add 'gdal vector simplify-coverage'
   - Add 'gdal mdim mosaic' (#13208)
   - Add 'gdal dataset' port of 'gdal manage'
   - Make 'gdal pipeline' support mixed raster/vector pipelines
   - Pipeline: add support for nested pipeline (#12874)
   - Pipeline: add support for a 'tee' step (#12874)
   - Move 'gdal vector geom XXXX' utilities directly under 'gdal vector'
   - Rename 'gdal vector geom set-type' as 'gdal vector set-geom-type'
   - gdal raster reproject: add a -j/--num-threads option and default to 
ALL_CPUS
   - Make 'gdal raster fill-nodata/proximity/sieve/viewshed' pipeline-able
   - gdal raster mosaic/stack: allow it to be the first step of a raster 
pipeline
   - gdal pipeline: allow to run an existing pipeline and override/add 
parameters
   - Improved Bash completion
   - Python bindings: add a dynamically generated 'gdal.alg' module
     (e.g. ``gdal.alg.raster.convert(input="in.tif", output="out.tif")``)
   - Many other improvements to existing utilities (see below)

Other topics

* VRT pixel functions: Add mean, median, geometric_mean, harmonic_mean, mode
    (#12418), and handle NoData values
* Add C/C++/Python API for [raster band 
algebra](https://gdal.org/en/latest/user/band_algebra.html):
   arithmetic operators, comparison operators, AsType(),
   gdal::abs()/sqrt()/log10()/log()/min()/max()/mean()/IfThenElse() 
functions
* Add MiraMon raster driver: read-only support (#12293)
* ADBC driver: support for ADBC BigQuery driver (requires BigQuery ADBC 
driver)
* JSONFG driver: add read/write support for curve and measured geometries;
   update to 0.3.0 spec
* Parquet: add update support using OGREditableLayer mechanism
* Add C++ public header files for raster functionality
* Security: avoid potential path traversal in several drivers
* Various code linting, static code analyzer fixes, etc.
* Significant automation of the release process
* Add Docker attestation (#13066)
* Bump of shared lib major version
* [RFC 
104](https://gdal.org/en/latest/development/rfc/rfc104_gdal_cli.html): 
<b>Adding a "gdal" front-end command line interface</b>.
   - See the [list of 
commands](https://gdal.org/en/latest/programs/index.html#gdal-application)
   - Includes new "gdal raster calc" and "gdal raster resclassify" 
utilities.
   - "gdal raster tile", C++ port of gdal2tiles, runs faster (3x to 6x 
in some cases)
   - Includes "gdal vsi list/copy/delete/move/sync" (ports of Python 
sample scripts)
   - Includes "gdal driver {driver_name}" for driver-specific commands.
   - Includes smart Bash autocompletion
   - Includes C, C++, Python API
* Add [GDALG](https://gdal.org/en/latest/drivers/vector/gdalg.html) 
(GDAL Streamed Algorithm Format) driver: reading of on-the-fly / 
streamed vector dataset replaying compatible "gdal" command lines (kind 
of VRT).

More complete information on the new features and fixes in the 3.12.0 
release can be found at:

https://github.com/OSGeo/gdal/blob/v3.12.0/NEWS.md

Please also consult the migration guide when updating from prior releases:

https://gdal.org/en/latest/user/migration_guide.html#from-gdal-3-11-to-gdal-3-12

The release can be downloaded from:
   * https://download.osgeo.org/gdal/3.12.0/gdal-3.12.0.tar.gz - source 
as .tar.gz
   * https://download.osgeo.org/gdal/3.12.0/gdal-3.12.0.tar.gz.md5 - md5sum
   * https://download.osgeo.org/gdal/3.12.0/gdal-3.12.0.tar.gz.sig - 
signature
   * https://download.osgeo.org/gdal/3.12.0/gdal-3.12.0.tar.xz - source 
as .tar.xz
   * https://download.osgeo.org/gdal/3.12.0/gdal-3.12.0.tar.xz.md5 - md5sum
   * https://download.osgeo.org/gdal/3.12.0/gdal-3.12.0.tar.xz.sig - 
signature
   * https://download.osgeo.org/gdal/3.12.0/gdal3120.zip - source as a zip
   * https://download.osgeo.org/gdal/3.12.0/gdal3120.zip.md5 - md5sum
   * https://download.osgeo.org/gdal/3.12.0/gdal3120.zip.sig - signature
   * https://download.osgeo.org/gdal/3.12.0/gdalautotest-3.12.0.zip - 
test suite
   * https://download.osgeo.org/gdal/3.12.0/gdal3120doc.zip - 
documentation / website

Python bindings are pushed to https://pypi.org/project/GDAL/3.12.0.post1
Note the ".post1" suffix. The initial 3.12.0 was unfortunately corrupted 
due to
a hickup in the new release process.

Docker images are available:
   * ghcr.io/osgeo/gdal:ubuntu-full-3.12.0
   * ghcr.io/osgeo/gdal:ubuntu-small-3.12.0
   * ghcr.io/osgeo/gdal:alpine-normal-3.12.0
   * ghcr.io/osgeo/gdal:alpine-small-3.12.0

Best regards,

Even

PS1: Packager comparing rc1 to final will notice a slight difference in
content for the dates of the manpages, due to the generation of tarballs 
now being triggered
on tag push.

PS2: GPG signing key used:

-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBGjlDXoBEACjbYUouwHnW+X/xK51AfwN1vTrJn+pZziGGLobD4Jfs4gU4PwQ
dEw1bFj6tsgBrJ7hrKmcyd0bBQiKU1FTYy+tOu768t9qlC7HC3JfRBACrGn3Svz4
evinQkq5GGcZ1FkJhRKgEIxJLGppG7O45XEFYdcbCkLqC8uyu2+PbY2SYXlzlKs8
DLiAwqX670eZ78pDtynJj81CRowSqyNBOzaltR6OLCsYZrYzAYYtBqSiifKoIpm/
sV4VRvUuWaaUNNMPPRLt+mV+iIYm8cKLH2uyozZWIfOSck7I30fGIuuUhulc41bi
3WNV+QtOepPyuMolab8JNbaRJXAFxQ5Q2k5ZyzXvpuAEqwrhaFIroc7LvkQ4RLlT
r6BkFUzvCCjRWG5jCFA0CjvvvYG9DPSUKdSaD2Vxfor/cwSRqnPYwRauFMuST57H
exrLYJZqfeZuqV2mlI8wVvh3tO9oC/pGmggV3B1KxYvzj2I/nQ/bnugveEvD005j
EcfSlmAPWcuily+rgB9xqed0tZwG0A9fjY/gveqxLVE41EIoAfkdeRl+KVOqEEYk
cyiJQdFKBuGxemEP2cfDnROUawp+1XXEuA1MGkLvB+6nNIp1e+mhUtWfDY70MEz1
l7J49MUZBfPM3vy63t7ihlPLIP9IUcO9j9rfy1iW8t86qG3CnZE/rsnVZwARAQAB
tCRHREFMIFJlbGVhc2UgQm90IDxnZGFsb3JnQGdtYWlsLmNvbT6JAlQEEwEKAD4W
IQR7Ew6VW0TYfM4nZfDb2B/1LsKkKgUCaOUNegIbAwUJA8JnAAULCQgHAgYVCgkI
CwIEFgIDAQIeAQIXgAAKCRDb2B/1LsKkKpY+D/9hVR9JIQNT3So4fg/fQx36azSf
kVzO4nS0lZhSxR4/Xig5Zqq8EOFk7ipWwb4hhivPi7yR49BhVSQbHo36+jNbC5k/
jDMsZ+9CNzUjp1XSH/v06mcdSD4LB4vSvHBfLjDdV7OoOGnExkEyqBcoje53tW6p
tKQGwqZ3ilZs75GkLO1UC3DNQ9VpVc7lk1Cv+npto86A6CWMAC7q+n540wC/oTj7
APn6dz1S0LAPWR9v0aBoLMoRP9YiRQSmQmyQsKe3HJd4c7hSdWyST/PIMvPZawpP
BYG+JRRuRoWm6zjJIWnvqj9IZeFkQv1fKqYHKW86aITTqGGF6kcq83mf2XH26KQR
mu8ArI5aLULmpKA67p2RXxyPdoSNiaiP8UuWQ18rnEA/Hedz2sgBYSvjeYYziTRm
wgiRbts4MjB5pj+JGKtX7FEL6HuPDVnMYGc8n8bO8qiKctuYMwBM/KRE+2e3zx0m
m5YXjjCSvBiTLYNhvrrQ5pxiUK5xiAH0G/MzPXjJToJzLrHn0vqRVHXs9F8d9zLe
o6E4S8VVgyJ9zdXkYtj9nyL9jb00K+jj/g4avpnOKTuIgpsTR2ntxWz2liWU6Saz
03Vrd9mVwgU7NBnYAMXOg54eYwhyWkGvbFHvCK6ijL1+SaAkN9mVs5VTJMpGiJ9s
qj7DbIY0GwZQMVSvxQ==
=FY/p
-----END PGP PUBLIC KEY BLOCK-----

-- 
http://www.spatialys.com
My software is free, but my time generally not.



More information about the gdal-dev mailing list