Prepare for GDAL 3.6.0
This commit is contained in:
parent
dae35e2ae0
commit
bc8cb193f6
|
@ -2,8 +2,8 @@ cff-version: 1.2.0
|
|||
message: Please cite this software using these metadata or in the CITATION file.
|
||||
type: software
|
||||
title: GDAL
|
||||
version: 3.5.3
|
||||
date-released: 2022-10-21
|
||||
version: 3.6.0
|
||||
date-released: 2022-11-03
|
||||
doi: 10.5281/zenodo.5884351
|
||||
abstract: GDAL is a translator library for raster and vector geospatial data
|
||||
formats that is released under an MIT style Open Source License by the Open
|
||||
|
|
|
@ -32,7 +32,7 @@ Process :
|
|||
1) a) Regenerate swig generated files for python bindings and commit if changed.
|
||||
Currently SWIG 4.0.2 is used.
|
||||
|
||||
b) "cd scripts; make completion" to regenerate scripts/gdal-bash-completion.sh
|
||||
b) "make completion" to regenerate scripts/gdal-bash-completion.sh
|
||||
if new command line switches have been added. scripts/completionFinder.py
|
||||
must also be edited before if new utilities/scripts are added/removed.
|
||||
|
||||
|
@ -48,23 +48,20 @@ Process :
|
|||
3) Update the VERSION file (if not already done)
|
||||
|
||||
3.1) Update the version information in the following files:
|
||||
- ./swig/python/setup.py (gdal python package)
|
||||
- ./swig/python/gdal-utils/osgeo_utils/__init__.py (gdal-utils python package)
|
||||
- ./swig/python/README.rst (libgdal)
|
||||
|
||||
3.2) For major releases update the VERSION macro in nmake.opt (for 1.6, 1.7etc)
|
||||
|
||||
4) Update the GDAL_SOVERSION number at top of gdal.cmake according to the
|
||||
directions given in the comment preceding it.
|
||||
|
||||
5) Prepare release overview in the NEWS file. For example, to get all changes
|
||||
5) Prepare release overview in the NEWS.md file. For example, to get all changes
|
||||
from v3.4.0 to current HEAD
|
||||
git log --reverse -v v3.4.0..HEAD . ":(exclude)autotest" ":(exclude)doc" ":(exclude).github"
|
||||
|
||||
- commit new version to NEWS file.
|
||||
For a feature release, e.g 3.6.0, you can use scripts/generate_log_feature_release.py to generate a log without commit that went in the previous 3.5.x bugfix releases with:
|
||||
python scripts/generate_log_feature_release.py
|
||||
|
||||
Create a News page in Trac for the release, like
|
||||
http://trac.osgeo.org/gdal/wiki/Release/3.1.0-News
|
||||
- commit new version to NEWS.md file.
|
||||
|
||||
6) If this is a feature release (e.g 3.1), prepare a branch.
|
||||
|
||||
|
|
478
NEWS.md
478
NEWS.md
|
@ -1,3 +1,481 @@
|
|||
# GDAL/OGR 3.6.0 Release Notes
|
||||
|
||||
Those notes include changes since GDAL 3.5.0, but not already included in a GDAL 3.5.x bugfix release.
|
||||
|
||||
## In a nutshell...
|
||||
|
||||
* CMake is the only build system available in-tree. autoconf and nmake build systems have been removed
|
||||
* OpenFileGDB: write and update support (v10.x format only), without requiring any external dependency, with same (and actually larger) functional scope as write side of the FileGDB driver
|
||||
* [RFC 86](https://gdal.org/development/rfc/rfc86_column_oriented_api.html): Column-oriented read API for vector layers.
|
||||
Implemented in core, Arrow, Parquet, GPKG and FlatGeoBuf drivers
|
||||
* Add read/write raster [JPEGXL driver](https://gdal.org/drivers/raster/jpegxl.html) for standalone JPEG-XL files. Requires libjxl
|
||||
* Add KTX2 and BASISU read/write raster drivers for texture formats. Require (forked) basisu library
|
||||
* Vector layer API: table relationship discovery & creation, Upsert() operation
|
||||
* GeoTIFF: add multi-threaded read capabilities (reqiures NUM_THREADS open option or GDAL_NUM_THREADS configuration option to be set)
|
||||
* Multiple performance improvements in GPKG driver
|
||||
* ogr_layer_algebra.py: promoted to official script (#1581)
|
||||
* Code linting and security fixes
|
||||
* Bump of shared lib major version
|
||||
|
||||
## New optional dependencies
|
||||
|
||||
* libjxl: for JPEGXL driver (it was already a potential dependency in past versions, when using internal libtiff, to get the JXL TIFF codec)
|
||||
* libarrow_dataset: for Parquet driver
|
||||
* [QB3](https://github.com/lucianpls/QB3): for QB3 codec in MRF driver
|
||||
* [basisu](https://github.com/rouault/basis_universal/tree/cmake): required for KTX2 and BASISU drivers
|
||||
|
||||
## New installed files
|
||||
|
||||
* bin/ogr_layer_algebra.py
|
||||
* include/ogr_recordbatch.h
|
||||
|
||||
## Removed installed files
|
||||
|
||||
None
|
||||
|
||||
## Backward compatibility issues
|
||||
|
||||
See [MIGRATION_GUIDE.TXT](https://github.com/OSGeo/gdal/blob/release/3.6/MIGRATION_GUIDE.TXT)
|
||||
|
||||
## Build changes
|
||||
|
||||
Enhancements:
|
||||
* Add version suffix to DLL when compiling for MinGW target
|
||||
* Add a -DBUILD_WITHOUT_64BIT_OFFSET advanced option (#5941)
|
||||
* Add a USE_ALTERNATE_LINKER option
|
||||
* Build iso8211 library conditionally to drivers requiring it
|
||||
|
||||
Fixes:
|
||||
* Fix build without PNG (#5742) and JPEG (#5741)
|
||||
* Various changes for CHERI-extended architectures such CHERI-RISC-V or Arm Morello with sizeof(void*) == 16
|
||||
* FindMono.cmake: fix setting 'CSHARP_MONO_INTERPRETER_', to avoid having to run CMake twice
|
||||
* swig/python/CMakeLists.txt: fix SWIG_REGENERATE_PYTHON mode
|
||||
* FindNetCDF.cmake: fix when running on Ubuntu 16.04 regarding erroneous detection of netcdf_mem.h
|
||||
* Remove uses of std::regex (#6358)
|
||||
* honour CMAKE_INSTALL_RPATH for Python bindings, but only if it is an absolute path. (#6371)
|
||||
* Python: fix to allow building in ubuntu 18.04 (#6443)
|
||||
* Fixed building position independent static lib
|
||||
* Fix issues when building/installing in directories with spaces, at least on Unix.
|
||||
* fix LIBKML linking on Windows Conda
|
||||
* make sure to register EEDAI driver when built as a plugin
|
||||
|
||||
## Internal libraries
|
||||
|
||||
* flatbuffers: updated
|
||||
* internal libtiff: resynchroinzation with upstream
|
||||
* internal libpng: use __UINTPTR_TYPE__ for png_ptruint when available
|
||||
|
||||
## GDAL 3.6.0 - Overview of Changes
|
||||
|
||||
### Port
|
||||
|
||||
New features:
|
||||
* Add CPLIsASCII()
|
||||
* /vsis3/: Provide credentials mechanism for web identity token on AWS EKS (#4058)
|
||||
* /vsis3/: support source_profile in .aws/config pointing to a profile with a web_identity_token_file (#6320)
|
||||
* /vsistdin/: make size of buffered area configurable (#751)
|
||||
* add VSIIsLocal(), VSISupportsSequentialWrite() and VSISupportsRandomWrite()
|
||||
* Configuration file: add a ignore-env-vars=yes setting (#6326) in a \[general\] leading section
|
||||
* Add a cpl::ThreadSafeQueue<> class
|
||||
|
||||
Enhancements:
|
||||
* VSIFileFromMemBuffer(): allow anonymous files
|
||||
* CPLCheckForFile(): do not request file size
|
||||
* /vsicurl/: when CPL_CURL_VERBOSE is enabled, log as CPLDebug() message the error message from the server
|
||||
* /vsicurl / CPLHTTPFetch(): add GDAL_HTTP_HEADERS configuration option (#6230)
|
||||
* VSIVirtualHandle: add a PRead() method for thread-safe parallel read and implement it in /vsimem/ and Unix virtual file system
|
||||
* /vsis3/: make CPL_VSIS3_USE_BASE_RMDIR_RECURSIVE a path-specific configuration option
|
||||
* Make GDAL_DISABLE_READDIR_ON_OPEN a path-specific configuration option
|
||||
* Add VSISetPathSpecificOption() / VSIGetPathSpecificOption() / VSIClearPathSpecificOptions().
|
||||
Deprecate VSISetCredential() / VSIGetCredential() / VSIClearCredentials()
|
||||
* /vsicurl/ and other network file systems: add a DISABLE_READDIR_ON_OPEN=YES/NO VSIFOpenEx2L() option
|
||||
* Add a VSIFilesystemHandler::SupportsRead() method
|
||||
* Add GDAL_HTTP_TCP_KEEPALIVE/GDAL_HTTP_TCP_KEEPIDLE/GDAL_HTTP_TCP_KEEPINTVL configuration options to control TCP keep-alive functionality
|
||||
* Make CPLODBCSession and CPLODBCStatement member variables 'protected' (#6314)
|
||||
|
||||
Bugfixes:
|
||||
* cpl_config.h: Don't use __stdcall on MinGW
|
||||
* CPL recode: fix issues with iconv library integrated in musl C library
|
||||
* CPLWorkerThreadPool::SubmitJob(): avoid potential deadlock when called from worker thread
|
||||
* /vsicurl/: fix caching of first bytes of the files
|
||||
|
||||
### Core
|
||||
|
||||
New features:
|
||||
* Add a GDALRasterBand::GetSuggestedBlockAccessPattern() method, implement it in GTiff, JPEG, PNG, PDF drivers and use it in GDALCopyWholeRasterGetSwathSize().
|
||||
* GDALJP2Box/GDALJP2Metadata: add support for reading/writing JUMBF box
|
||||
* Add a GDALDeinterleave() function, to copy values from a pixel-interleave buffer to multiple per-component,
|
||||
and add SSE2/SSSE3 optimizations for a few common scenarios like Byte/UInt16 3/4 components.
|
||||
Use it in GTiff and MEM drivers.
|
||||
* C API change: make GDALComputeRasterMinMax() return CPLErr instead of void (#6300)
|
||||
* Add a GDAL_DMD_MULTIDIM_ARRAY_OPENOPTIONLIST constant
|
||||
|
||||
Enhancements:
|
||||
* GDALRasterBand::ComputeRasterMinMax(): add optimized implementation for Byte and UInt16 data types (~10 times faster)
|
||||
* Multidim API: significantly enhance performance of reading transposed arrays for netCDF/HDF5
|
||||
* GDALVersionInfo(): report if it is a debug build in --version output, and report compiler version in BUILD_INFO output
|
||||
* /vsicurl/: cache the result of several collections/URL signing requests to Planetary Computer
|
||||
* GDALCopyWholeRasterGetSwathSize(): aim for a chunk that is at least tall as the maximum of the source and target block heights
|
||||
* GDALGetJPEG2000Structure(): add JP2_BOXES, CODESTREAM_MARKERS, STOP_AT_SOD, ALLOW_GET_FILE_SIZE options
|
||||
* GDALDataset::BuildOverviews/IBuildOverviews(): add a CSLConstList papszOptions parameter
|
||||
* GDALDataset::CreateLayer(): honor GDAL_VALIDATE_CREATION_OPTIONS (#6487)
|
||||
|
||||
Breaking changes:
|
||||
* Remove use of compatibility wrappers _GetProjectionRef / _GetGCPProjection / _SetProjection / _SetGCPs (#6186)
|
||||
|
||||
Bugfixes:
|
||||
* EXIFCreate(): fix writing of EXIF_UserComment
|
||||
* GDALPamDataset::TrySaveXML(): do not set error if a subdataset name is set but the .aux.xml doesn't exist (#5790)
|
||||
* GDALOpen(): make recursive opening of dataset more reliable when papszAllowedDrivers is passed
|
||||
* GetHistogram(): Support 64 bit images (#6059)
|
||||
* GetHistogram(): deal with undefined behavior when raster values are at infinity, or with pathological min/max bounds
|
||||
* GDALPamRasterBand::SetOffset()/SetScale(): set the bOffsetSet/bScaleSet even if the value provided is the default offset/scale
|
||||
* GDALDataset/GDALRasterBand::BuildOverviews/IBuildOverviews(): fix const correctness of panOverviewList and panBandList arguments
|
||||
* Overview: tighten GAUSS and MODE to be exactly those names, and not starting with them
|
||||
* Overview building: fix MODE resampling on large datasets (#6587)
|
||||
|
||||
### Algorithms
|
||||
|
||||
Enhancements:
|
||||
* Transformer: add SRC_GEOLOC_ARRAY and DST_GEOLOC_ARRAY transformer options
|
||||
* GDALChecksumImage(): make it return -1 in case of error
|
||||
|
||||
### Utilities
|
||||
|
||||
New features:
|
||||
* gdalinfo: add a STAC section to `gdalinfo -json` output (#6265)
|
||||
* gdal_translate: add a -ovr <level|AUTO|AUTO-n|NONE> flag (#1923)
|
||||
* gdal2tiles.py: add WEBP support with --tiledriver option
|
||||
* gdalmdiminfo & gdalmdimtranslate: add -if (input format) flag (#6295)
|
||||
* gdal_grid: add 'radius' parameter to invdist, nearest, averge and metrics algorithm, to set radius1 and radius2 at the same time
|
||||
* gdal_grid: add per-quadrant search capabilities for invdistnn, average, and metrics algorithms
|
||||
* ogr_layer_algebra.py: promoted to official script (#1581)
|
||||
|
||||
Enhancements:
|
||||
* gdal2tiles.py: short circuit overview tile creation for --resume ahead of processing base tiles
|
||||
* gdal2tiles.py: refactor transparent file check in overview creation
|
||||
* gdalsrsinfo: use wkt2_2019 name instead of wkt2_2018
|
||||
* gdal_viewshed: use -cc 1.0 as default for non-Earth CRS (#6278)
|
||||
* nearblack: skip erosion when pixel at edge is valid
|
||||
* gdal_grid: produce north-up images
|
||||
* gdal_grid: add validation of algorithm parameters and warn when a unknown parameter is specified
|
||||
* gdal_grid: add a nSizeOfStructure leading structure member in GDALGridXXXXOptions structure, as a way to detect ABI issues when adding new parameters
|
||||
|
||||
Bugfixes:
|
||||
* gdalwarp: modify 'sum' resampling to preserve total sum
|
||||
* gdalwarp: fix issue with wrong resolution when reprojecting between geographic CRS with source extent slightly off [-180,180]
|
||||
* gdalwarp: fix artifacts around antimeridian for average/mode/min/max/med/q1/q3/sum/rms resampling (#6478)
|
||||
* gdal2tiles.py: remove PIL deprecation warning by replacing ANTIALIAS with LANCZOS
|
||||
* gdal2tiles: allow oversampling in -p raster mode (fixes #6207)
|
||||
* gdal2xyz.py: fix parsing of -b option (#5984)
|
||||
* gdal_rasterize: fix ALL_TOUCHED on polygons whose boundaries coordinates are aligned on pixels (#6414)
|
||||
|
||||
### gdal_utils package
|
||||
|
||||
* standardized return codes (#5561). Return 2 when utilities called without argumen
|
||||
|
||||
### Raster drivers
|
||||
|
||||
ADRG driver:
|
||||
* add SRP pixel spacing value (SRP_PSP) to the dataset metadata
|
||||
|
||||
COG driver:
|
||||
* add a OVERVIEW_COUNT creation option to control the number of overview levels (#6566)
|
||||
* add DMD_EXTENSIONS metadata item (#6073)
|
||||
* properly set lossy WEBP compression when QUALITY_OVERVIEW < 100 but QUALITY = 100 (#6550)
|
||||
|
||||
COSAR driver:
|
||||
* handle version 2 files that contain half-foat samples (#6289)
|
||||
|
||||
ECRGTOC driver:
|
||||
* fix error on RasterIO() when GDAL_FORCE_CACHING=YES is set
|
||||
|
||||
ECW driver:
|
||||
* strip off boring Kakadu and OpenJPEG COM marker comments
|
||||
|
||||
ENVI driver:
|
||||
* implement 'default bands' to read/write R,G,B and gray color interpretation (#6339)
|
||||
* implement Get/Set Scale/Offset from ENVI 'data gain values'/'data offset values' (#6444)
|
||||
* use OGRSpatialReference::FindBestMatch() on reading to find a matching known CRS (#6453)
|
||||
|
||||
GPKG driver:
|
||||
* in CreateCopy() mode for Byte data, save the band count in a IMAGE_STRUCTURE metadata domain to be able to re-open the file with the appropriate number of bands
|
||||
* default to PNG storage for single band dataset (qgis/QGIS#40425)
|
||||
* writer: write fully set tiles as soon as possible to decrease pressure on block cache
|
||||
|
||||
GTiff driver:
|
||||
* add multi-threaded read capabilities (reqiures NUM_THREADS open option or GDAL_NUM_THREADS configuration option to be set)
|
||||
* JXL codec: support more than 4 bands in INTERLEAVE=PIXEL mode (#5704)
|
||||
* JXL codec: preserve Alpha color interpretation when the Alpha band does not immediately follow color bands (e.g. R,G,B,undefined,Alpha), and fix decoding of such files
|
||||
* add a WEBP_LOSSLESS_OVERVIEW=YES/NO configuration option (#6439)
|
||||
* report a COMPRESSION_REVERSIBILITY=LOSSLESS (possibly)/LOSSY metadata item in IMAGE_STRUCTURE for WEBP and JXL compression
|
||||
* read/write JPEGXL and WEBP compression parameters (for main dataset only) in IMAGE_STRUCTURE metadata domain of GDAL_METADATA tag
|
||||
* avoid potential crash on creation in a disk full situation
|
||||
* fix reading a CompoundCRS of a LocalCS/EngineeringCS, and avoid warnings on writing (#5890)
|
||||
* report codec name (or code) when opening a file with a unhandled code
|
||||
* WEBP: avoid unnecessary temporary buffer creation and copy (most of changes are in libtiff itself)
|
||||
* force INTERLEAVE=PIXEL for internal overviews when using WEBP compression
|
||||
* avoid SetMetadata() to cancel effect of SetGeoTransform() (#6015)
|
||||
* refuse to open files with SampleFormat=IEEEFP and BitsPerSample != 16, 24, 32 or 64
|
||||
* SRS import: better deal when angular unit of the GEOGCS[] of the PROJCS[] doesn't match the one from the database
|
||||
* SRS export: avoid error when exporting a Projected 3D CRS (#6362)
|
||||
* honour COMPRESS_OVERVIEW and INTERLEAVE_OVERVIEW for internal overviews (#6344)
|
||||
* CreateCopy(): fix marking alpha channels that are not the last one (#6395)
|
||||
|
||||
JP2KAK driver:
|
||||
* use kdu_multi_analysis class for tile encoding, instead of very low level kdu_analysis
|
||||
* use kdu_stripe_compressor whenever the required buffer size is < CACHE_MAX / 4, otherwise fallback to kdu_multi_analysis
|
||||
* add (at least build) support for versions down to 7.3
|
||||
|
||||
All JPEG2000 drivers:
|
||||
* report a COMPRESSION_REVERSIBILITY=LOSSLESS/LOSSLESS (possibly)/LOSSY metadata item in IMAGE_STRUCTURE domain
|
||||
|
||||
JP2OpenJPEG driver:
|
||||
* for reversible compression, write a hint in the COM marker if the compression is lossy or not, and use it on reading
|
||||
|
||||
JPEG-XL driver:
|
||||
* NEW!
|
||||
* The JPEG-XL format is supported for reading, and batch writing (CreateCopy()), but not update in place.
|
||||
The driver supports reading and writing:
|
||||
- georeferencing: encoded as a GeoJP2 UUID box within a JUMBF box.
|
||||
- XMP in the xml:XMP metadata domain
|
||||
- EXIF in the EXIF metadata domain
|
||||
- color profile in the COLOR_PROFILE metadata domain.
|
||||
|
||||
KEA driver:
|
||||
* add support for 64 bit nodata functions
|
||||
|
||||
MRF driver:
|
||||
* Add QB3 compression (#5824)
|
||||
|
||||
netCDF driver:
|
||||
* handle variables of type NC_SHORT with _Unsigned=true as GDT_UInt16 (#6352)
|
||||
* do not report metadata of indexing variables of dimensions not used by the variable of interest (#6367)
|
||||
* fix 2 issues with netCDF 4.9.0 of msys2-mingw64 (#5970)
|
||||
* multidim: workaround crash with using same file in 2 different threads (each thread with its own dataset object) (#6253)
|
||||
* ignore 'missing_value' when it is a non-numeric string
|
||||
* multidim: use 'fill_value' attribute as an alternative for nodata, and add a USE_DEFAULT_FILL_AS_NODATA=YES array open option
|
||||
* allow NETCDF:"/vsicurl_streaming/http[s]://example.com/foo.nc":variable_name (#6610)
|
||||
|
||||
NITF driver:
|
||||
* do not put PAM metadata in a Subdataset node of .aux.xml file if there's a single dataset (3.4.0 regression) (#5790)
|
||||
* avoid excessive memory allocation on broken files (ossfuzz#52642)
|
||||
ù fix crash when reading all metadata from a file without image segment, and allow creating such file
|
||||
* add support for writing a TRE_OVERFLOW DES
|
||||
* nitf_spec.xml: lower minlength for CSEPHA
|
||||
|
||||
PDF driver:
|
||||
* avoid PROJ error when reading a CRS with a EPSG code that is actually a ESRI one (#6522)
|
||||
|
||||
PNG driver:
|
||||
* report cause when unable to create file
|
||||
|
||||
RMF driver:
|
||||
* backup error state before min-max computation at FlushCache
|
||||
* Ext header size checks improved
|
||||
|
||||
VRT driver:
|
||||
* optimize speed of statistics and minmax computation when the VRT is a mosaics of non-overlapping simple sources
|
||||
* ComputeStatistics(): for mosaicing case, enable it to be multi-threaded if GDAL_NUM_THREADS is set
|
||||
* take into account open options when sharing sources (#5989)
|
||||
|
||||
WEBP driver:
|
||||
* report a COMPRESSION_REVERSIBILITY=LOSSLESS/LOSSY metadata item in IMAGE_STRUCTURE
|
||||
|
||||
## OGR 3.6.0 - Overview of Changes
|
||||
|
||||
### Core
|
||||
|
||||
New features:
|
||||
* OGRLayer: add Arrow C stream based batch retrieval (RFC 86)
|
||||
* Add OGRLayer::Upsert() operation support (#6199). Implement it in MongoDBv3, ElasticSearch MEM, GPKG drivers
|
||||
* Add OGR_G_ConcaveHull(), using GEOS >= 3.11 GEOSConcaveHull_r(), and map it to SWIG
|
||||
* Add a OGRLayer::AlterGeomFieldDefn() / OGR_L_AlterGeomFieldDefn() to change geometry field definitions. Implement in MEM, Shapefile, GPKG, PG, OpenFileGDB drivers
|
||||
* Add GDALRelationship class for describing a relationship between two tables,
|
||||
and related API for retrieving the relationship
|
||||
names and relationships in a dataset.
|
||||
Implement discovery in FileGDB, OpenFileGDB, PGeo and GPKG drivers, SQLite
|
||||
* Add API for relationship creation/deletion/update.
|
||||
Implement in OpenFileGDB driver
|
||||
* Add OGRLayer::GetGeometryTypes(). This method iterates over features to retrieve their geometry types.
|
||||
This is mostly useful for layers that report a wkbUnknown geometry type.
|
||||
Specialized implementation in GPKG and PG drivers.
|
||||
* Add a GDAL_DMD_ALTER_GEOM_FIELD_DEFN_FLAGS driver metadata item
|
||||
* Add DCAP_CREATE_LAYER for drivers which have support for layer creation
|
||||
* Add DCAP_DELETE_LAYER for drivers which have support for layer deletion
|
||||
* Add DCAP_DELETE_FIELD for drivers which have support for field deletion
|
||||
* Add DCAP_REORDER_FIELDS for drivers which have support for field reordering
|
||||
* Add GDAL_DMD_ALTER_FIELD_DEFN_FLAGS for drivers which describe the flags supported for a driver by the AlterFieldDefn API
|
||||
* Add DCAP_CURVE_GEOMETRIES for drivers which support curved geometries
|
||||
* Add DCAP_MEASURED_GEOMETRIES for drivers which support measured geometries
|
||||
* Add driver capability for DCAP_Z_GEOMETRIES
|
||||
* Add OLCZGeometries (equivalent to OLCMeasuredGeometries for Z support)
|
||||
* Add ODsCZGeometries datasource capability flag
|
||||
* Add driver metadata for DMD_GEOMETRY_FLAGS. Contains a list of (space separated) flags which reflect the geometry handling behavior of a driver.
|
||||
Supported values are currently "EquatesMultiAndSingleLineStringDuringWrite", "EquatesMultiAndSinglePolygonDuringWrite".
|
||||
* Add OGRParseDateTimeYYYYMMDDTHHMMSSZ() and OGRParseDateTimeYYYYMMDDTHHMMSSsssZ()
|
||||
* Add GDAL_DMD_SUPPORTED_SQL_DIALECTS driver metadata.
|
||||
|
||||
Enhancements:
|
||||
* Make isClockwise() available at the OGRCurve level
|
||||
* Export OSRStripVertical() function in C API
|
||||
* OGRSimpleCurve point iterator: make its modification instant on the parent curve (#6215)
|
||||
|
||||
Bugfixes:
|
||||
* OGRFeature::FillUnsetWithDefault(): do not set driver-specific default values on unset numeric fields
|
||||
* OGR_SM_InitStyleString(): make it work with a @style_name argument (#5555)
|
||||
* Fix loss of split/merge policy when cloning field domains
|
||||
* OGRSQL: fix GetFeature() to return a feature such that GetFeature(fid).GetFID() == fid (#5967)
|
||||
* OGRGeometry::UnionCascaded(): avoid crash with GEOS < 3.11 on empty multipolygon input
|
||||
|
||||
### OGRSpatialReference
|
||||
|
||||
New features:
|
||||
* Add a OGRSpatialReference::FindBestMatch() method
|
||||
|
||||
Enhancements:
|
||||
* Warping/coordinate transformation performance improvements
|
||||
* OSRGetProjTLSContext(): make it faster on Linux by saving getpid() system call
|
||||
* OGRSpatialReference::SetFromUserInput(): allow using strings like EPSG:3157+4617 where the 'vertical CRS' is actually the geographic CRS, to mean ellipsoidal height, which is supported in recent PROJ versions
|
||||
* Improve OGRCoordinateTransformation::TransformBounds error handling (#6081)
|
||||
* OGRSpatialReference: evaluate OSR_DEFAULT_AXIS_MAPPING_STRATEGY config option at each object construction (#6084)
|
||||
|
||||
Bugfixes:
|
||||
* Avoid issues with PROJJSON with id in members of datum ensemble
|
||||
* OGRSpatialReference::GetTargetLinearUnits(): fix getting linear units from a CompoundCRS of a LocalCS/EngineeringCS (#5890)
|
||||
|
||||
### Utilities
|
||||
|
||||
New features:
|
||||
* ogr2ogr: add -upsert option
|
||||
|
||||
Bugfixes:
|
||||
* ogr2ogr: make sure geometry column name is going through laundering when outputting to PG/PGDump (#6261)
|
||||
* ogr2ogr: take into account -limit when -progress is used
|
||||
|
||||
### Vector drivers
|
||||
|
||||
All drivers:
|
||||
* Add some missing DCAP_VECTOR capabilities to drivers
|
||||
|
||||
Arrow/Parquet drivers:
|
||||
* implement faster SetAttributeFilter() for simpler filters.
|
||||
Things like "col =/!=/>/>=/</<= constant", "col IS NULL", "col IS NOT NULL", possibly combined with AND.
|
||||
|
||||
CSV driver:
|
||||
* make AUTODETECT_SIZE_LIMIT=0 open option to scan the whole file, including beyond 2 GB (for non-streaming input) (#5885)
|
||||
* fix width autodetection
|
||||
|
||||
DXF driver:
|
||||
* Support files between 2 GB and 4 GB in size
|
||||
* Prevent buffer from sometimes splitting CRLF newlines in MLEADER entities
|
||||
|
||||
FlatGeoBuf driver:
|
||||
* make CreateLayer() to fail if output file cannot be
|
||||
created
|
||||
|
||||
FileGDB driver:
|
||||
* handle Shape_Area/Shape_Length fields on reading/writing
|
||||
* avoid crash when reading layer with AliasName with XML special characters (issue with embedded libxml2 in SDK), and fallback to OpenFileGDB driver to reliably retrieve it (#5841)
|
||||
* Report relationships
|
||||
|
||||
GeoJSONSeq driver:
|
||||
* add support for appending features to an existing file (#2080)
|
||||
|
||||
GML driver:
|
||||
* make FORCE_SRS_DETECTION=YES open option work with multiple geometry columns (#6392)
|
||||
* read <gml:description>, <gml:identifier>, <gml:name> fields in a feature (qgis/QGIS#42660)
|
||||
|
||||
GMLAS driver:
|
||||
* be robust to GML schemas being pointed to a location different from http://schemas.ogc.net/
|
||||
|
||||
GPKG driver:
|
||||
* Do not list layers referenced in gpkg_contents but that have no corresponding table (qgis/qgis#30670)
|
||||
* Performance improvement in reading features
|
||||
* Performance improvement in reading DateTime fields
|
||||
* Performance improvement: do not request ignored fields
|
||||
* Micro optimizations to improve CreateFeature() speed
|
||||
* Performance improvement: implement background RTree creation in bulk insertion into a new table
|
||||
* Implement a fast ST_Area() method
|
||||
* optimization to remove bbox filtering when the spatial filter is larger than the layer extent
|
||||
* remove code path specific to SQLite < 3.7.8 (PROJ requires SQLite >= 3.11)
|
||||
* avoid integer overflow when trying to insert strings larger > 2 GB
|
||||
* preliminary non-user-visible support for Related Tables Extension
|
||||
* fix issue with ST_MakeValid() when the SQLite driver runs before GPKG on Alpine Linux
|
||||
* Report relationships, through FOREIGN KEY constraints, and Related Tables extension.
|
||||
* properly update gpkg_ogr_contents on INSERT OR REPLACE statements
|
||||
* do not warn about http://ngageoint.github.io/GeoPackage/docs/extensions extensions in read-only mode
|
||||
* Rename layer: take into account QGIS layer_styles extension
|
||||
|
||||
HANA driver:
|
||||
* pending batches are not flushed when layer is destroyed
|
||||
* reset prepared statements when creating new field
|
||||
* fix transaction support
|
||||
* execute pending batches from other operations
|
||||
* properly handle special characters in connection string
|
||||
|
||||
LIBKML driver:
|
||||
* writer: add automatic reprojection to EPSG:4326 (#6495)
|
||||
|
||||
MITAB driver:
|
||||
* implements writing Text objects for Point geometries with LABEL style string (#6149)
|
||||
|
||||
ODS driver:
|
||||
* make it possible to open file without .ods extension if prefixed with ODS: (#6375)
|
||||
|
||||
OpenFileGDB driver:
|
||||
* Add write support
|
||||
* handle Shape_Area/Shape_Length fields on reading
|
||||
* fix use of indexes on strings when the searched value is longer than the max indexed string, or ending with space
|
||||
* Report relationships
|
||||
|
||||
Parquet driver:
|
||||
* add basic support for reading partitionned datasets
|
||||
* add CREATOR option
|
||||
* do not write statistics for WKB geometry columns
|
||||
* make sure 'geo' metadata is embedded in ARROW:schema so that partitioned reading works fine
|
||||
* implement SetNextByIndex()
|
||||
* make it honour GDAL_NUM_THREADS, and assume min(4, ALL_CPUS) as default value
|
||||
|
||||
PG driver:
|
||||
* make GEOM_TYPE layer creation option be taken into account by CreateGeomField() (instead of always assuming geometry)
|
||||
|
||||
PGDump driver:
|
||||
* avoid extraneous harmless spaces in CREATE TABLE statements
|
||||
|
||||
S57 driver:
|
||||
* resource files: fix missing punctuation (#6000)
|
||||
|
||||
Selafin driver:
|
||||
* remove likely broken logic in handing /vsigzip/foo.gz filenames
|
||||
|
||||
SQLite driver:
|
||||
* Report relationships, through FOREIGN KEY constraints
|
||||
* SQLiteVFS: fix semantics of xOpen(SQLITE_OPEN_CREATE) that could cause to wrongly truncate an attached database
|
||||
|
||||
VFK driver:
|
||||
* add support for UTF-8 (VFK 6.0 switched from ISO-8859-2 to UTF-8)
|
||||
|
||||
XLSX driver:
|
||||
* make it possible to open file without .xlsx extension if prefixed with XLSX: (#6375)
|
||||
* improve detection to recognize even if no XLSX: prefix or .xlsx extension
|
||||
|
||||
## SWIG Language Bindings
|
||||
|
||||
All bindings:
|
||||
* Add SWIG bindings for OGR_L_AlterGeomFieldDefn()
|
||||
* fix SpatialReference.GetLinearUnitsName() to use OSRGetLinearUnits() to retrieve the name
|
||||
* add SpatialReference.StripVertical()
|
||||
* Create alias versions with/without GDAL_ prefix for c#/java constants
|
||||
* add inverseCT optional parameter to CoordinateOperation.SetOperation(), and add CoordinateOperation.GetInverse()
|
||||
* make Band.ComputeStatistics() kwargs
|
||||
* add options argument to Dataset.BuildOverviews()
|
||||
|
||||
Python bindings:
|
||||
* bindings for Arrow Batch functionality
|
||||
* add numpy to extras_require option of setup.py
|
||||
* add an optional can_return_none=True parameter to Band.ComputeRasteMinMax() to make it return None in case of error. Otherwise, return (nan, nan) (#6300)
|
||||
|
||||
# GDAL/OGR 3.5.0 Release Notes
|
||||
|
||||
## In a nutshell...
|
||||
|
|
233
NEWS.template
233
NEWS.template
|
@ -1,232 +1,43 @@
|
|||
= GDAL/OGR X.Y.Z Release Notes (r25919 to rXXXXX) =
|
||||
# GDAL/OGR X.Y.Z Release Notes
|
||||
|
||||
== In a nutshell... ==
|
||||
## In a nutshell...
|
||||
|
||||
* New GDAL drivers:
|
||||
* New OGR drivers:
|
||||
* For feature version, generally: Bump of shared lib major version
|
||||
## New optional dependencies
|
||||
|
||||
## New installed files
|
||||
|
||||
== New installed files ==
|
||||
## Removed files
|
||||
|
||||
== Backward compatibility issues ==
|
||||
## Backward compatibility issues
|
||||
|
||||
== GDAL/OGR X.Y.Z - General Changes ==
|
||||
See [MIGRATION_GUIDE.TXT](https://github.com/OSGeo/gdal/blob/release/X.Y/MIGRATION_GUIDE.TXT)
|
||||
|
||||
Build(Unix):
|
||||
## Build changes
|
||||
|
||||
Build(Windows):
|
||||
## Internal libraries
|
||||
|
||||
== GDAL X.Y.Z - Overview of Changes ==
|
||||
## GDAL X.Y.Z - Overview of Changes
|
||||
|
||||
Port:
|
||||
### Port
|
||||
|
||||
Core:
|
||||
### Core
|
||||
|
||||
Algorithms:
|
||||
### Algorithms
|
||||
|
||||
Utilities:
|
||||
### Utilities
|
||||
|
||||
Multi driver changes:
|
||||
### gdal_utils package
|
||||
|
||||
AAIGrid:
|
||||
### Raster drivers
|
||||
|
||||
ACE2 driver:
|
||||
## OGR X.Y.Z - Overview of Changes
|
||||
|
||||
ADRG driver:
|
||||
### Core
|
||||
|
||||
BAG driver:
|
||||
### OGRSpatialReference
|
||||
|
||||
BT driver:
|
||||
### Utilities
|
||||
|
||||
CEOS2 driver:
|
||||
### Vector drivers
|
||||
|
||||
DIMAP driver:
|
||||
|
||||
DTED driver:
|
||||
|
||||
ECW driver:
|
||||
|
||||
ENVI driver:
|
||||
|
||||
ENVISAT driver:
|
||||
|
||||
GeoRaster driver:
|
||||
|
||||
GIF driver:
|
||||
|
||||
GMT driver:
|
||||
|
||||
GTiff driver:
|
||||
|
||||
GRIB driver:
|
||||
|
||||
GSAG driver:
|
||||
|
||||
GS7BG driver:
|
||||
|
||||
GTX driver:
|
||||
|
||||
GXF driver:
|
||||
|
||||
HDF4 driver:
|
||||
|
||||
HDF5 driver:
|
||||
|
||||
HFA driver:
|
||||
|
||||
INGR driver:
|
||||
|
||||
ISIS3 driver:
|
||||
|
||||
JP2ECW driver:
|
||||
|
||||
JP2KAK driver:
|
||||
|
||||
JP2OpenJPEG driver:
|
||||
|
||||
JPEG driver:
|
||||
|
||||
JPEG2000 driver:
|
||||
|
||||
KMLSuperOverlay driver:
|
||||
|
||||
L1B driver:
|
||||
|
||||
MG4Lidar driver:
|
||||
|
||||
NetCDF driver:
|
||||
|
||||
NITF driver:
|
||||
|
||||
Northwood driver:
|
||||
|
||||
PDF driver:
|
||||
|
||||
PNG driver:
|
||||
|
||||
PostgisRaster driver:
|
||||
|
||||
Rasterlite driver:
|
||||
|
||||
RMF driver:
|
||||
|
||||
RPFTOC driver:
|
||||
|
||||
RS2 driver:
|
||||
|
||||
SDTS driver:
|
||||
|
||||
SRP driver:
|
||||
|
||||
TIL driver:
|
||||
|
||||
TSX driver:
|
||||
|
||||
VRT driver:
|
||||
|
||||
WCS driver:
|
||||
|
||||
WebP driver:
|
||||
|
||||
WMS driver:
|
||||
|
||||
XYZ driver:
|
||||
|
||||
== OGR X.Y.Z - Overview of Changes ==
|
||||
|
||||
Core:
|
||||
|
||||
OGRSpatialReference:
|
||||
|
||||
Utilities:
|
||||
|
||||
Multi driver changes:
|
||||
|
||||
AVCE00 driver:
|
||||
|
||||
AVCBin driver:
|
||||
|
||||
CSV driver:
|
||||
|
||||
DGN driver:
|
||||
|
||||
DXF driver:
|
||||
|
||||
FileGDB driver:
|
||||
|
||||
Geoconcept driver:
|
||||
|
||||
GeoJSON driver:
|
||||
|
||||
Geomedia driver:
|
||||
|
||||
GFT driver:
|
||||
|
||||
GML driver:
|
||||
|
||||
ILI driver:
|
||||
|
||||
Ingres driver:
|
||||
|
||||
KML driver:
|
||||
|
||||
Idrisi driver:
|
||||
|
||||
LIBKML driver:
|
||||
|
||||
MITAB driver:
|
||||
|
||||
MSSQLSpatial driver:
|
||||
|
||||
MySQL:
|
||||
|
||||
NAS driver:
|
||||
|
||||
NULL driver:
|
||||
|
||||
OCI driver:
|
||||
|
||||
ODBC driver:
|
||||
|
||||
NTF driver:
|
||||
|
||||
OCI driver:
|
||||
|
||||
PGeo driver:
|
||||
|
||||
PG driver:
|
||||
|
||||
PGDump driver:
|
||||
|
||||
REC driver:
|
||||
|
||||
SDE driver:
|
||||
|
||||
Shapefile driver:
|
||||
|
||||
S57 driver:
|
||||
|
||||
SQLite/Spatialite driver:
|
||||
|
||||
TIGER driver:
|
||||
|
||||
VFK driver:
|
||||
|
||||
VRT driver:
|
||||
|
||||
WFS driver:
|
||||
|
||||
XLS driver:
|
||||
|
||||
== SWIG Language Bindings ==
|
||||
|
||||
All bindings:
|
||||
|
||||
CSharp bindings:
|
||||
|
||||
Java bindings:
|
||||
|
||||
Perl bindings:
|
||||
|
||||
Python bindings:
|
||||
## SWIG Language Bindings
|
||||
|
|
|
@ -24,9 +24,9 @@
|
|||
|
||||
#if !defined(DO_NOT_DEFINE_GDAL_DATE_NAME)
|
||||
#ifndef GDAL_RELEASE_DATE
|
||||
# define GDAL_RELEASE_DATE 20229999
|
||||
# define GDAL_RELEASE_DATE 20221103
|
||||
#endif
|
||||
#ifndef GDAL_RELEASE_NAME
|
||||
# define GDAL_RELEASE_NAME "3.6.0dev"
|
||||
# define GDAL_RELEASE_NAME "3.6.0"
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
# a new member or virtual function in a public C++ class, etc.
|
||||
# This will typically happen for each GDAL feature release (change of X or Y in
|
||||
# a X.Y.Z numbering scheme), but should not happen for a bugfix release (change of Z)
|
||||
# Previous value: 31 for GDAL 3.5
|
||||
set(GDAL_SOVERSION 31)
|
||||
# Previous value: 32 for GDAL 3.6
|
||||
set(GDAL_SOVERSION 32)
|
||||
|
||||
# Switches to control build targets(cached)
|
||||
option(ENABLE_GNM "Build GNM (Geography Network Model) component" ON)
|
||||
|
|
|
@ -254,7 +254,14 @@ def main(argv):
|
|||
"gdal_create",
|
||||
]
|
||||
|
||||
ogrtools = ["ogr2ogr", "ogrinfo", "ogrlineref", "ogrtindex", "ogrmerge.py"]
|
||||
ogrtools = [
|
||||
"ogr2ogr",
|
||||
"ogrinfo",
|
||||
"ogrlineref",
|
||||
"ogrtindex",
|
||||
"ogrmerge.py",
|
||||
"ogr_layer_algebra.py",
|
||||
]
|
||||
|
||||
# parse general options
|
||||
generalOptions = parseGDALGeneralOptions()
|
||||
|
|
|
@ -407,7 +407,7 @@ _gdalmove.py()
|
|||
_get_comp_words_by_ref cur prev
|
||||
case "$cur" in
|
||||
-*)
|
||||
key_list=""
|
||||
key_list="-s_srs -t_srs -et "
|
||||
mapfile -t COMPREPLY < <(compgen -W "$key_list" -- "$cur")
|
||||
return 0
|
||||
;;
|
||||
|
@ -444,11 +444,22 @@ _gdal_proximity.py()
|
|||
_get_comp_words_by_ref cur prev
|
||||
case "$cur" in
|
||||
-*)
|
||||
key_list=""
|
||||
key_list="-srcband -dstband -of -co -ot -values -distunits -maxdist -nodata -use_input_nodata -fixed-buf-val -q "
|
||||
mapfile -t COMPREPLY < <(compgen -W "$key_list" -- "$cur")
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
tool=${COMP_WORDS[0]}
|
||||
case "$prev" in
|
||||
-ot)
|
||||
key_list="Byte Int16 UInt16 UInt32 Int32 Float32 Float64 CInt16 CInt32 CFloat32 CFloat64"
|
||||
mapfile -t COMPREPLY < <(compgen -W "$key_list" -- "$cur")
|
||||
;;
|
||||
-of)
|
||||
key_list="$( $tool --formats | tail -n +2 | cut -f 3 -d ' ')"
|
||||
mapfile -t COMPREPLY < <(compgen -W "$key_list" -- "$cur")
|
||||
;;
|
||||
esac
|
||||
return 0
|
||||
}
|
||||
complete -o default -F _gdal_proximity.py gdal_proximity.py
|
||||
|
@ -578,7 +589,7 @@ _gdal_translate()
|
|||
_get_comp_words_by_ref cur prev
|
||||
case "$cur" in
|
||||
-*)
|
||||
key_list="--help-general --long-usage -ot -strict -if -of -b -mask -expand -outsize -tr -r -unscale -scale -exponent -srcwin -epo -eco -projwin -projwin_srs -a_srs -a_coord_epoch -a_ullr -a_nodata -a_scale -a_offset -nogcp -gcp -colorinterp{_bn} -colorinterp -mo -q -sds -co -stats -norat -noxmp -oo --version --build --license --formats --format --optfile --config --debug --pause --locale "
|
||||
key_list="--help-general --long-usage -ot -strict -if -of -b -mask -expand -outsize -tr -ovr -r -unscale -scale -exponent -srcwin -epo -eco -projwin -projwin_srs -a_srs -a_coord_epoch -a_ullr -a_nodata -a_scale -a_offset -nogcp -gcp -colorinterp{_bn} -colorinterp -mo -q -sds -co -stats -norat -noxmp -oo --version --build --license --formats --format --optfile --config --debug --pause --locale "
|
||||
mapfile -t COMPREPLY < <(compgen -W "$key_list" -- "$cur")
|
||||
return 0
|
||||
;;
|
||||
|
@ -683,7 +694,7 @@ _ogr2ogr()
|
|||
_get_comp_words_by_ref cur prev
|
||||
case "$cur" in
|
||||
-*)
|
||||
key_list="--help-general -skipfailures -append -update -select -where -progress -sql -dialect -preserve_fid -fid -limit -spat -spat_srs -geomfield -a_srs -t_srs -s_srs -ct -f -overwrite -dsco -lco -nln -nlt -dim --version --build --license --formats --format --optfile --config --debug --pause --locale "
|
||||
key_list="--help-general -skipfailures -append -upsert -update -select -where -progress -sql -dialect -preserve_fid -fid -limit -spat -spat_srs -geomfield -a_srs -t_srs -s_srs -ct -f -overwrite -dsco -lco -nln -nlt -dim --version --build --license --formats --format --optfile --config --debug --pause --locale "
|
||||
mapfile -t COMPREPLY < <(compgen -W "$key_list" -- "$cur")
|
||||
return 0
|
||||
;;
|
||||
|
@ -784,11 +795,48 @@ _ogrmerge.py()
|
|||
_get_comp_words_by_ref cur prev
|
||||
case "$cur" in
|
||||
-*)
|
||||
key_list=""
|
||||
key_list="-o -f -single -nln -update -overwrite_ds -append -overwrite_layer -src_geom_type -dsco -lco -s_srs -t_srs -a_srs -progress -skipfailures --help-general --version --build --license --formats --format --optfile --config --debug --pause --locale "
|
||||
mapfile -t COMPREPLY < <(compgen -W "$key_list" -- "$cur")
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
tool=${COMP_WORDS[0]/ogrtindex/ogr2ogr}
|
||||
case "$prev" in
|
||||
-f)
|
||||
key_list="$( $tool --formats | tail -n +2 | grep -o -E '"[^"]+"' | sed 's/\ /__/')"
|
||||
for iter in $key_list; do
|
||||
if [[ $iter =~ ^$cur ]]; then
|
||||
COMPREPLY+=( "${iter//__/ }" )
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
||||
return 0
|
||||
}
|
||||
complete -o default -F _ogrmerge.py ogrmerge.py
|
||||
_ogr_layer_algebra.py()
|
||||
{
|
||||
local cur prev
|
||||
COMPREPLY=()
|
||||
_get_comp_words_by_ref cur prev
|
||||
case "$cur" in
|
||||
-*)
|
||||
key_list="-input_ds -input_lyr -method_ds -method_lyr -output_ds -output_lyr -overwrite -opt -f -dsco -lco -input_fields -method_fields -nlt -a_srs "
|
||||
mapfile -t COMPREPLY < <(compgen -W "$key_list" -- "$cur")
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
tool=${COMP_WORDS[0]/ogrtindex/ogr2ogr}
|
||||
case "$prev" in
|
||||
-f)
|
||||
key_list="$( $tool --formats | tail -n +2 | grep -o -E '"[^"]+"' | sed 's/\ /__/')"
|
||||
for iter in $key_list; do
|
||||
if [[ $iter =~ ^$cur ]]; then
|
||||
COMPREPLY+=( "${iter//__/ }" )
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
||||
return 0
|
||||
}
|
||||
complete -o default -F _ogr_layer_algebra.py ogr_layer_algebra.py
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
if len(sys.argv) == 1:
|
||||
VERSION = open("VERSION", "rt").read()
|
||||
VERSION = VERSION.split(".")
|
||||
last_release_branch = "%d.%d" % (int(VERSION[0]), int(VERSION[1]) - 1)
|
||||
else:
|
||||
last_release_branch = sys.argv[1]
|
||||
|
||||
print("Generating /tmp/log.txt with changes not in %s branch" % last_release_branch)
|
||||
|
||||
os.system(
|
||||
f'git log --reverse -v v{last_release_branch}.0..HEAD . ":(exclude)autotest" ":(exclude)doc" ":(exclude).github" > /tmp/log_raw.txt'
|
||||
)
|
||||
os.system(
|
||||
f'git log --no-merges --reverse -v v{last_release_branch}.0..release/{last_release_branch} . ":(exclude)autotest" ":(exclude)doc" ":(exclude).github" > /tmp/log_bugfixes.txt'
|
||||
)
|
||||
|
||||
|
||||
class Commit(object):
|
||||
def __init__(self):
|
||||
self.metadata = ""
|
||||
self.message = ""
|
||||
|
||||
|
||||
def get_commits(filename):
|
||||
commits = []
|
||||
commit = None
|
||||
for l in open(filename, "rt").readlines():
|
||||
if l.startswith("commit "):
|
||||
commit = Commit()
|
||||
commits.append(commit)
|
||||
commit.metadata += l
|
||||
elif commit.message == "" and l == "\n":
|
||||
commit.message += l
|
||||
elif commit.message == "":
|
||||
commit.metadata += l
|
||||
else:
|
||||
commit.message += l
|
||||
return commits
|
||||
|
||||
|
||||
raw_commits = get_commits("/tmp/log_raw.txt")
|
||||
bugfixes_commits = get_commits("/tmp/log_bugfixes.txt")
|
||||
set_bugfixes_commit_messages = set()
|
||||
for commit in bugfixes_commits:
|
||||
set_bugfixes_commit_messages.add(commit.message)
|
||||
|
||||
with open("/tmp/log.txt", "wt") as f:
|
||||
for commit in raw_commits:
|
||||
is_bugfix = False
|
||||
message = commit.message.split("\n")[1]
|
||||
for bugfix_commit_message in set_bugfixes_commit_messages:
|
||||
if message in bugfix_commit_message:
|
||||
is_bugfix = True
|
||||
break
|
||||
if not is_bugfix:
|
||||
f.write(commit.metadata)
|
||||
f.write(commit.message)
|
|
@ -16,7 +16,7 @@ reference documentation, but the `GDAL API Tutorial`_ includes Python examples.
|
|||
Dependencies
|
||||
------------
|
||||
|
||||
* libgdal (3.5.0 or greater) and header files (gdal-devel)
|
||||
* libgdal (3.6.0 or greater) and header files (gdal-devel)
|
||||
* numpy (1.0.0 or greater) and header files (numpy-devel) (not explicitly
|
||||
required, but many examples and utilities will not work without it)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
__package_name__ = "gdal-utils"
|
||||
gdal_utils_version = (3, 5, 99, 0)
|
||||
gdal_utils_version = (3, 6, 0, 0)
|
||||
__version__ = ".".join(str(i) for i in gdal_utils_version)
|
||||
__author__ = "Frank Warmerdam"
|
||||
__author_email__ = "warmerdam@pobox.com"
|
||||
|
|
Loading…
Reference in New Issue