Mapnik v4.0.0
What's Changed
- fix intersecting extents in different projections by @talaj in #3525
- Unbundle unifont by @springmeyer in #3511
- Fix 'depedencies' typo, replace with 'dependencies'. by @sebastic in #3535
- Fix blur with scale_factor by @talaj in #3537
- Use 2D box for pgraster bounding box by @tomhughes in #3551
- remove superfluous declaration by @talaj in #3556
- Develop master by @artemp in #3532
- remove methods that are not referenced anywhere by @talaj in #3560
- Travis: Add g++ testing, upgrade to clang++ 3.9, downgrade to libstdc++-4.9 by @springmeyer in #3568
- Duplicate code elimination by @talaj in #3538
- fix #3526 GroupSymbolizer PairLayout with 3+ items by @lightmare in #3529
- simplify mapnik::value conversion rules by @lightmare in #3572
- C++14-like type traits aliases by @lightmare in #3578
- Better largest bbox by @talaj in #3566
- minor render_thunk_list change by @lightmare in #3585
- Text simple placement: add center 'C' placement by @talaj in #3596
- Rename PostGIS' ST_Estimate_Extent to ST_EstimateExtent by @poggs in #3624
- Color emoji + updated harfbuzz_shaper and unicode_string_grammar by @artemp in #3636
- Rendering text labels when labels length exceeds the length of the line by @talaj in #3512
- Postgis parameter quoting and interpolation by @lightmare in #3618
- 3.1.x mason upgrades by @springmeyer in #3638
- Remove auto-publishing to mason by @springmeyer in #3639
- Nested layers, layer level comp-op and opacity by @talaj in #3474
- Empty geometries by @artemp in #3643
- Geometry.hpp by @artemp in #3646
- add twkb support to sqlite plugin by @rinigus in #3660
- The last stripe of a tiff could be read incorrectly due to a swap by @flippmoke in #3679
- TIFF I/O : add support for multiple bands in 'scanline` reading metho… by @artemp in #3671
- Tiff memory mapped by @artemp in #3681
- fix closing polygons on reprojection by @talaj in #3678
- Fix a layer compositing offset by @talaj in #3694
- Updated the tests for webp by @flippmoke in #3693
- Fixes a bug associated with the raster plugin by @flippmoke in #3697
- Fix Filter Factor for Resampling. by @flippmoke in #3701
- Svg strict parsing (WIP) by @artemp in #3685
- Set premultiplied flag to the color font glyph bitmap by @talaj in #3716
- cairo renderer: clear map background with given color as agg renderer does by @talaj in #3718
- Use alpha over no data in RGBA tiffs by @flippmoke in #3722
- remove superfluous line by @talaj in #3725
- Geobuf.input by @artemp in #3715
- Port #3759 to master by @springmeyer in #3762
- fix feature_style_processor::apply_to_layer() after #3474 by @talaj in #3764
- Bbox index by @artemp in #3742
- visual tests: report failed tests by @talaj in #3765
- Basic unit test for feature_style_processor by @talaj in #3766
- Color font support improvements by @talaj in #3758
- visual tests: allow to ignore particular renderer by @talaj in #3768
- Fix centroid and interior algorithms by @talaj in #3771
- Check duplicate style names by @talaj in #3770
- Fix memory leak when color font used by @talaj in #3775
- Fix linking of Viewer by @talaj in #3777
- Remove -Wc++14-extensions flag by @springmeyer in #3778
- Add new angled-point marker placement mode for lines by @bmharper in #3782
- Glibcxx fix by @springmeyer in #3792
- char_array_buffer should implement also seekpos() by @talaj in #3794
- Glibcxx fix redux by @springmeyer in #3796
- Scons3 by @artemp in #3802
- replace agg::pod_bvector with std::deque for svg path attributes by @lightmare in #3455
- Export all text_placements_ classes from mapnik.dll by @bmharper in #3809
- Modified Polylabel as interior algorithm by @talaj in #3811
- SVG: Add a test of clipPath by @talaj in #3826
- Replaced old-style exception for Python 3 compatibility. by @mikejcorey in #3828
- Fix crash in case of empty ring by @talaj in #3833
- Interior, Polylabel: cover empty polygon or exterior ring by @talaj in #3834
- Add a test that GDAL plugin does not upsample by @talaj in #3827
- Fix crash in polygon_vertex_adapter by @talaj in #3838
- Fix vertex_adapter test by @talaj in #3845
- Interior, polylabel: Scale precision by polygon size by @talaj in #3844
- Grid placement by @talaj in #3847
- Updated changelog from v3.0.x branch by @flippmoke in #3848
- grid_vertex_converter: Fix handling of empty polygon by @talaj in #3855
- Respect raster_has_nodata by @talaj in #3859
- PROJ_LIB: Fix detection code by @Algunenano in #3863
- Fix apply_color_blind_filter to use correct color-space and avoid NAN… by @artemp in #3862
- Handle unicode file path on windows in command line tools by @mat007 in #3837
- ICU DATA: Default to icu-config if u_getDataDirectory fails by @Algunenano in #3865
- Fix filtering of vertices in offset_converter by @talaj in #3843
- Raster colorizer: check image bounds by @talaj in #3875
- Fix build issue with MAPNIK_THREADSAFE disabled by @Algunenano in #3876
- GDAL Driver Overview Fix and Memory Reduction - Master by @flippmoke in #3873
- Qualify ICU types explicitly by @Algunenano in #3880
- don't error oddly if compiler is not found by @springmeyer in #3891
- Improve the allow_overlap optimization when loading the map by @Algunenano in #3890
- postgis: Thread safe ConnectionManager by @talaj in #3894
- postgis: Exclude password from ConnectionCreator::id() by @talaj in #3895
- Remove useless ellipsoid.hpp by @talaj in #3896
- Scale denominator: a bit of refactoring by @talaj in #3897
- Use pkg-config to find FreeType2 if available by @Algunenano in #3892
- Marker symbolizer: Fix bug with lines with 0 length by @Algunenano in #3899
- Update INSTALL.md by @ISNIT0 in #3905
- Improves INSTALL.md by @manaswinidas in #3920
- Only throw on duplicate styles in strict mode by @springmeyer in #3917
- GDAL: Fixes of overviews by @talaj in #3912
- add test for parsing expression with non-ascii characters in attribute name by @lightmare in #3921
- Sconf TryAction replacement by @lightmare in #3922
- scons configure cleanup by @lightmare in #3923
- Also check types of values in datasource tests by @lightmare in #3925
- Changelog autolinks by @lightmare in #3924
- Fix bbox reprojection by @lightmare in #3935
- Changelog updates (3.1.unreleased) by @lightmare in #3936
- speed up util::normalize_angle for stupidly-large values by @lightmare in #3337
- remove old render_box function declaration from cairo_renderer.hpp by @EmilGedda in #3944
- Boost 1 67 by @artemp in #3948
- Circleci 20 test by @artemp in #3952
- Building symbolizer improvements by @talaj in #3506
- revamp well_known_srs, remove M_PI by @lightmare in #3938
- bootstrap.sh improvements by @lightmare in #3962
- Force full qualification of ICU types by @talaj in #3965
- Accept TopoJSON with no objects by @lightmare in #3971
- Fix buffer-size with scale-factor by @talaj in #3958
- Fix seams of mesh faces when warping transparent raster by @talaj in #3967
- travis: switch to dist: trusty by @lightmare in #3945
- sqlite: Add !pixel_width! and !pixel_height! by @rbray89 in #3979
- Polygon pattern on line geometries by @talaj in #3980
- Compatibility patch for Boost GIL v1.68 by @tdubrownik in #3993
- True global pattern alignment, fixed local alignment by @talaj in #3989
- Vector patterns with Cairo by @talaj in #4009
- Remove sanitizer flags to configure step by @springmeyer in #3866
- Cairo: set version of SVG to 1.2 by @talaj in #4029
- Adaptive smooth by @talaj in #4031
- Ditch rint by @mdholloway in #4039
- New raster colorizer mode for Terrain-RGB by @talaj in #4058
- Update main.cpp by @treenewbee in #4064
- Ensure 'scaling' and
comp-op
stored as enumeration_wrappers + fix imagescaling
property by @artemp in #4066 - Replace MAPNIK_INIT_PRIORITY workaround by @Kojoley in #4072
- libxml2: add support for huge XMLs by @tarvip in #4047
- Add command line options for map size to mapnik-render. by @timmg in #4052
- Tests of text_placements_simple and text_placements_list by @talaj in #3999
- postgis: always put decimal point in substituted tokens in SQL by @lightmare in #3942
- use
ST_MakeEnvelope
(ref #3317) by @artemp in #3319 - accept explicit parameter "application_name" in postgis and pgraster datasources by @lightmare in #3984
- Revamp mapnik-config generation by @lightmare in #4085
- install mapbox includes into subdir mapnik/deps/ by @lightmare in #4086
- Boost-1.71 by @artemp in #4094
- avoid potential out-of-bounds array access (undefined behaviour) by @artemp in #4096
- Boost 1_72 support by @artemp in #4103
- Use pkg-config for libxml2. by @sebastic in #4114
- Svg fixes by @artemp in #4113
- mapnik-config: fix substitution of environment variables by @lightmare in #4121
- scons: prevent duplication of linker flags by @lightmare in #4122
- SVG: basic CSS support by @artemp in #4123
- Add Int32 support for gdal driver by @cpaulik in #4124
- Update SConstruct to fix osx build by @dirkvdb in #4128
- add support for spacing-offset by @zdila in #4132
- boost_1_73 support by @artemp in #4144
- Support for C++17 builds by @artemp in #4173
null
properties inFeature
object by @artemp in #4178- compiler independent warning ignore fixes #4188 by @mathisloge in #4189
- Fix dead link to tutorials in INSTALL.md by @Nonemoticoner in #4197
- upgrade dist+toolchain by @artemp in #4199
- fix warning for unknown compiler by @mathisloge in #4194
- Scons 4.1.0 by @artemp in #4217
- Upgrade to new Proj APIs by @artemp in #4202
- fixes proj_transform_cache incomplete type by @mathisloge in #4219
- Simplify proj_transform_cache implementation by @artemp in #4220
- SVG rendering improvements by @artemp in #4225
- C++20 by @artemp in #4230
- CMake build support by @mathisloge in #4191
- [CMake] make mapnik::core a public dependency of mapnik::mapnik by @mathisloge in #4244
- [CMake] Simplify install, add min versions and PkgConfig by @mathisloge in #4248
- bump boost version to 1.73 and fix docs by @mathisloge in #4250
- [CMake] fix
mapnik_find_plugin_dir
by @mathisloge in #4251 - [CMake] Fix issues with tests, boost-regex and webp. Fix viewer qt6 by @mathisloge in #4252
- [CMake] fix mapnik_option by @mathisloge in #4254
- Compile for vcpkg using VS2017 by @GimpMaster in #4253
- [CMake] improve pkg-config export by @mathisloge in #4257
- replace _WINDOWS with _WIN32 by @mathisloge in #4260
- [CMake] improve build structure by @mathisloge in #4266
- fix proj version detection / harfbuzz pkg-config for cmake by @mathisloge in #4270
- [CMake] do not install FindHarfbuzz.cmake by @mathisloge in #4271
- add CITATION.cff by @mathisloge in #4272
- remove make_unique (c++11 drop in) by @mathisloge in #4275
- add vpkg.json manifest file by @mathisloge in #4280
- fix #4268 by adding mapped_memory_file by @mathisloge in #4279
- use shared::ptr::use_count instead of unique() by @mathisloge in #4281
- remove cxx11_support.hpp by @mathisloge in #4276
- CMake stuff, missing includes and enables tiff test on windows by @mathisloge in #4284
- Feature clang format by @mathisloge in #4282
- add github actions by @mathisloge in #4286
- fix gha secret name by @mathisloge in #4288
- fix formatting of warning.hpp by @mathisloge in #4289
- [GHA] use current user if PR or local repo (readonly) and vcpkg debug… by @mathisloge in #4290
- [CI] disable vcpkg debug mode by @mathisloge in #4295
- fix test for newer cairo versions by @mathisloge in #4304
- src/proj_transform.cpp: improve error handling of proj_transform() by @josch in #4305
- [CI] update vcpkg to latest hash by @mathisloge in #4300
- src/proj_transform.cpp: only use proj_context_errno_string for proj >= 8.0.0 by @josch in #4307
- [CMake] fix generated viewer ini file by @mathisloge in #4336
- adding auto formatting by @mathisloge in #4334
- Fix font installation logic by @artemp in #4333
- [CI] only run on master pushes and all PRs by @mathisloge in #4338
- SVG: Fix reflection points for smooth curves after arcs by @kkaefer in #4357
- [CI] update vcpkg by @mathisloge in #4365
- Update vcpkg.json by @mathisloge in #4367
- Fix windows build error by @mathisloge in #4368
- [CI] refactor github actions by @mathisloge in #4366
- Refactor/enumerations by @mathisloge in #4372
- Feature/cmake static plugins by @mathisloge in #4291
- move datasource_plugin into mapnik target by @mathisloge in #4377
- Include cstdint for uint16_t by @tomhughes in #4378
- Update vcpkg-sha by @mathisloge in #4379
- Add
fonts_dir
&plugins_dir
variables tolibmapnik.pc
by @hummeltech in #4382 - Use
std::filesystem
when CXX_STD >= 17 and notUSE_BOOST_FILESYSTEM
by @artemp in #4383 - Fixed check for
__cpp_lib_filesystem
infilesystem.hpp
by @hummeltech in #4384 - Add build & test for
CXX_STANDARD=17
to GitHub Actions by @hummeltech in #4385 - add cstdint header for gcc13 compilation. by @MoeSzyslak98 in #4389
- Update vcpkg commit ref in the ci by @mathisloge in #4390
- Add cstdint header include to
include/mapnik/geometry/boost_spirit_karma_adapter.hpp
by @hummeltech in #4404 - Drop support for old versions of GDAL/OGR (older than 2.0) by @Nakaner in #4419
- Add support for open_options in OGR input plugin by @Nakaner in #4420
- Fix broken builds with libxml2 >= v2.12.0 by @hummeltech in #4423
- Fix configure script for variables read from mapnik-settings.env by @Nakaner in #4424
- Fix bugs in configure script by @Nakaner in #4426
- Fix CMake build issues after OGR open_options support addition by @hummeltech in #4421
- Geojson empty geometries by @artemp in #4432
- Svg group renderer [WIP] by @artemp in #4364
- css color fractional percentage values by @artemp in #4438
- don't pollute global include dir when installing agg by @mathisloge in #4441
- Add missing
#include <string>
toinclude/mapnik/png_io.hpp
by @hummeltech in #4443 - Address
lcov
/geninfo
errors on macOS CI builds by @hummeltech in #4442 - Increase min cxx standard to 17 by @mathisloge in #4444
- No need to install
mapnik-test-visual
by @hummeltech in #4447 - Resolve
Node.js 16 actions are deprecated
GitHub Actions warnings by @hummeltech in #4446 - Svg refactor by @artemp in #4450
macos-latest
was migrated frommacOS 12
onamd64
tomacOS 14
onarm64
by @hummeltech in #4449- Delete unused files by @mathisloge in #4458
- replace majority of boost->std optional and boost->std string_view by @mathisloge in #4445
- Use
temp_directory_path
rather than hard-coded/tmp
forimage io
tests by @hummeltech in #4461
New Contributors
- @poggs made their first contribution in #3624
- @rinigus made their first contribution in #3660
- @bmharper made their first contribution in #3782
- @mikejcorey made their first contribution in #3828
- @Algunenano made their first contribution in #3863
- @mat007 made their first contribution in #3837
- @ISNIT0 made their first contribution in #3905
- @manaswinidas made their first contribution in #3920
- @EmilGedda made their first contribution in #3944
- @rbray89 made their first contribution in #3979
- @tdubrownik made their first contribution in #3993
- @mdholloway made their first contribution in #4039
- @treenewbee made their first contribution in #4064
- @Kojoley made their first contribution in #4072
- @tarvip made their first contribution in #4047
- @timmg made their first contribution in #4052
- @dirkvdb made their first contribution in #4128
- @zdila made their first contribution in #4132
- @mathisloge made their first contribution in #4189
- @Nonemoticoner made their first contribution in #4197
- @GimpMaster made their first contribution in #4253
- @josch made their first contribution in #4305
- @MoeSzyslak98 made their first contribution in #4389
- @Nakaner made their first contribution in #4419
Full Changelog: v3.0.12...v4.0.0
What's Changed
- Develop master by @artemp in #3532
- remove methods that are not referenced anywhere by @talaj in #3560
- Travis: Add g++ testing, upgrade to clang++ 3.9, downgrade to libstdc++-4.9 by @springmeyer in #3568
- Duplicate code elimination by @talaj in #3538
- fix #3526 GroupSymbolizer PairLayout with 3+ items by @lightmare in #3529
- simplify mapnik::value conversion rules by @lightmare in #3572
- C++14-like type traits aliases by @lightmare in #3578
- Better largest bbox by @talaj in #3566
- minor render_thunk_list change by @lightmare in #3585
- Text simple placement: add center 'C' placement by @talaj in #3596
- Rename PostGIS' ST_Estimate_Extent to ST_EstimateExtent by @poggs in #3624
- Color emoji + updated harfbuzz_shaper and unicode_string_grammar by @artemp in #3636
- Rendering text labels when labels length exceeds the length of the line by @talaj in #3512
- Postgis parameter quoting and interpolation by @lightmare in #3618
- 3.1.x mason upgrades by @springmeyer in #3638
- Remove auto-publishing to mason by @springmeyer in #3639
- Nested layers, layer level comp-op and opacity by @talaj in #3474
- Empty geometries by @artemp in #3643
- Geometry.hpp by @artemp in #3646
- add twkb support to sqlite plugin by @rinigus in #3660
- The last stripe of a tiff could be read incorrectly due to a swap by @flippmoke in #3679
- TIFF I/O : add support for multiple bands in 'scanline` reading metho… by @artemp in #3671
- Tiff memory mapped by @artemp in #3681
- fix closing polygons on reprojection by @talaj in #3678
- Fix a layer compositing offset by @talaj in #3694
- Updated the tests for webp by @flippmoke in #3693
- Fixes a bug associated with the raster plugin by @flippmoke in #3697
- Fix Filter Factor for Resampling. by @flippmoke in #3701
- Svg strict parsing (WIP) by @artemp in #3685
- Set premultiplied flag to the color font glyph bitmap by @talaj in #3716
- cairo renderer: clear map background with given color as agg renderer does by @talaj in #3718
- Use alpha over no data in RGBA tiffs by @flippmoke in #3722
- remove superfluous line by @talaj in #3725
- Geobuf.input by @artemp in #3715
- Port #3759 to master by @springmeyer in #3762
- fix feature_style_processor::apply_to_layer() after #3474 by @talaj in #3764
- Bbox index by @artemp in #3742
- visual tests: report failed tests by @talaj in #3765
- Basic unit test for feature_style_processor by @talaj in #3766
- Color font support improvements by @talaj in #3758
- visual tests: allow to ignore particular renderer by @talaj in #3768
- Fix centroid and interior algorithms by @talaj in #3771
- Check duplicate style names by @talaj in #3770
- Fix memory leak when color font used by @talaj in #3775
- Fix linking of Viewer by @talaj in #3777
- Remove -Wc++14-extensions flag by @springmeyer in #3778
- Add new angled-point marker placement mode for lines by @bmharper in #3782
- Glibcxx fix by @springmeyer in #3792
- char_array_buffer should implement also seekpos() by @talaj in #3794
- Glibcxx fix redux by @springmeyer in #3796
- Scons3 by @artemp in #3802
- replace agg::pod_bvector with std::deque for svg path attributes by @lightmare in #3455
- Export all text_placements_ classes from mapnik.dll by @bmharper in #3809
- Modified Polylabel as interior algorithm by @talaj in #3811
- SVG: Add a test of clipPath by @talaj in #3826
- Replaced old-style exception for Python 3 compatibility. by @mikejcorey in #3828
- Fix crash in case of empty ring by @talaj in #3833
- Interior, Polylabel: cover empty polygon or exterior ring by @talaj in #3834
- Add a test that GDAL plugin does not upsample by @talaj in #3827
- Fix crash in polygon_vertex_adapter by @talaj in #3838
- Fix vertex_adapter test by @talaj in #3845
- Interior, polylabel: Scale precision by polygon size by @talaj in #3844
- Grid placement by @talaj in #3847
- Updated changelog from v3.0.x branch by @flippmoke in #3848
- grid_vertex_converter: Fix handling of empty polygon by @talaj in #3855
- Respect raster_has_nodata by @talaj in #3859
- PROJ_LIB: Fix detection code by @Algunenano in #3863
- Fix apply_color_blind_filter to use correct color-space and avoid NAN… by @artemp in #3862
- Handle unicode file path on windows in command line tools by @mat007 in #3837
- ICU DATA: Default to icu-config if u_getDataDirectory fails by @Algunenano in #3865
- Fix filtering of vertices in offset_converter by @talaj in #3843
- Raster colorizer: check image bounds by @talaj in #3875
- Fix build issue with MAPNIK_THREADSAFE disabled by @Algunenano in #3876
- GDAL Driver Overview Fix and Memory Reduction - Master by @flippmoke in #3873
- Qualify ICU types explicitly by @Algunenano in #3880
- don't error oddly if compiler is not found by @springmeyer in #3891
- Improve the allow_overlap optimization when loading the map by @Algunenano in #3890
- postgis: Thread safe ConnectionManager by @talaj in #3894
- postgis: Exclude password from ConnectionCreator::id() by @talaj in #3895
- Remove useless ellipsoid.hpp by @talaj in #3896
- Scale denominator: a bit of refactoring by @talaj in #3897
- Use pkg-config to find FreeType2 if available by @Algunenano in #3892
- Marker symbolizer: Fix bug with lines with 0 length by @Algunenano in #3899
- Update INSTALL.md by @ISNIT0 in #3905
- Improves INSTALL.md by @manaswinidas in #3920
- Only throw on duplicate styles in strict mode by @springmeyer in #3917
- GDAL: Fixes of overviews by @talaj in #3912
- add test for parsing expression with non-ascii characters in attribute name by @lightmare in #3921
- Sconf TryAction replacement by @lightmare in #3922
- scons configure cleanup by @lightmare in #3923
- Also check types of values in datasource tests by @lightmare in #3925
- Changelog autolinks by @lightmare in #3924
- Fix bbox reprojection by @lightmare in #3935
- Changelog updates (3.1.unreleased) by @lightmare in #3936
- speed up util::normalize_angle for stupidly-large values by @lightmare in #3337
- remove old render_box function declaration from cairo_renderer.hpp by @EmilGedda in #3944
- Boost 1 67 by @artemp in #3948
- Circleci 20 test by @artemp in #3952
- Building symbolizer improvements by @talaj in #3506
- revamp well_known_srs, remove M_PI by @lightmare in #3938
- bootstrap.sh improvements by @lightmare in #3962
- Force full qualification of ICU types by @talaj in #3965
- Accept TopoJSON with no objects by @lightmare in #3971
- Fix buffer-size with scale-factor by @talaj in #3958
- Fix seams of mesh faces when warping transparent raster by @talaj in #3967
- travis: switch to dist: trusty by @lightmare in #3945
- sqlite: Add !pixel_width! and !pixel_height! by @rbray89 in #3979
- Polygon pattern on line geometries by @talaj in #3980
- Compatibility patch for Boost GIL v1.68 by @tdubrownik in #3993
- True global pattern alignment, fixed local alignment by @talaj in #3989
- Vector patterns with Cairo by @talaj in #4009
- Remove sanitizer flags to configure step by @springmeyer in #3866
- Cairo: set version of SVG to 1.2 by @talaj in #4029
- Adaptive smooth by @talaj in #4031
- Ditch rint by @mdholloway in #4039
- New raster colorizer mode for Terrain-RGB by @talaj in #4058
- Update main.cpp by @treenewbee in #4064
- Ensure 'scaling' and
comp-op
stored as enumeration_wrappers + fix imagescaling
property by @artemp in #4066 - Replace MAPNIK_INIT_PRIORITY workaround by @Kojoley in #4072
- libxml2: add support for huge XMLs by @tarvip in #4047
- Add command line options for map size to mapnik-render. by @timmg in #4052
- Tests of text_placements_simple and text_placements_list by @talaj in #3999
- postgis: always put decimal point in substituted tokens in SQL by @lightmare in #3942
- use
ST_MakeEnvelope
(ref #3317) by @artemp in #3319 - accept explicit parameter "application_name" in postgis and pgraster datasources by @lightmare in #3984
- Revamp mapnik-config generation by @lightmare in #4085
- install mapbox includes into subdir mapnik/deps/ by @lightmare in #4086
- Boost-1.71 by @artemp in #4094
- avoid potential out-of-bounds array access (undefined behaviour) by @artemp in #4096
- Boost 1_72 support by @artemp in #4103
- Use pkg-config for libxml2. by @sebastic in #4114
- Svg fixes by @artemp in #4113
- mapnik-config: fix substitution of environment variables by @lightmare in #4121
- scons: prevent duplication of linker flags by @lightmare in #4122
- SVG: basic CSS support by @artemp in #4123
- Add Int32 support for gdal driver by @cpaulik in #4124
- Update SConstruct to fix osx build by @dirkvdb in #4128
- add support for spacing-offset by @zdila in #4132
- boost_1_73 support by @artemp in #4144
- Support for C++17 builds by @artemp in #4173
null
properties inFeature
object by @artemp in #4178- compiler independent warning ignore fixes #4188 by @mathisloge in #4189
- Fix dead link to tutorials in INSTALL.md by @Nonemoticoner in #4197
- upgrade dist+toolchain by @artemp in #4199
- fix warning for unknown compiler by @mathisloge in #4194
- Scons 4.1.0 by @artemp in #4217
- Upgrade to new Proj APIs by @artemp in #4202
- fixes proj_transform_cache incomplete type by @mathisloge in #4219
- Simplify proj_transform_cache implementation by @artemp in #4220
- SVG rendering improvements by @artemp in #4225
- C++20 by @artemp in #4230
- CMake build support by @mathisloge in #4191
- [CMake] make mapnik::core a public dependency of mapnik::mapnik by @mathisloge in #4244
- [CMake] Simplify install, add min versions and PkgConfig by @mathisloge in #4248
- bump boost version to 1.73 and fix docs by @mathisloge in #4250
- [CMake] fix
mapnik_find_plugin_dir
by @mathisloge in #4251 - [CMake] Fix issues with tests, boost-regex and webp. Fix viewer qt6 by @mathisloge in #4252
- [CMake] fix mapnik_option by @mathisloge in #4254
- Compile for vcpkg using VS2017 by @GimpMaster in #4253
- [CMake] improve pkg-config export by @mathisloge in #4257
- replace _WINDOWS with _WIN32 by @mathisloge in #4260
- [CMake] improve build structure by @mathisloge in #4266
- fix proj version detection / harfbuzz pkg-config for cmake by @mathisloge in #4270
- [CMake] do not install FindHarfbuzz.cmake by @mathisloge in #4271
- add CITATION.cff by @mathisloge in #4272
- remove make_unique (c++11 drop in) by @mathisloge in #4275
- add vpkg.json manifest file by @mathisloge in #4280
- fix #4268 by adding mapped_memory_file by @mathisloge in #4279
- use shared::ptr::use_count instead of unique() by @mathisloge in #4281
- remove cxx11_support.hpp by @mathisloge in #4276
- CMake stuff, missing includes and enables tiff test on windows by @mathisloge in #4284
- Feature clang format by @mathisloge in #4282
- add github actions by @mathisloge in #4286
- fix gha secret name by @mathisloge in #4288
- fix formatting of warning.hpp by @mathisloge in #4289
- [GHA] use current user if PR or local repo (readonly) and vcpkg debug… by @mathisloge in #4290
- [CI] disable vcpkg debug mode by @mathisloge in #4295
- fix test for newer cairo versions by @mathisloge in #4304
- src/proj_transform.cpp: improve error handling of proj_transform() by @josch in #4305
- [CI] update vcpkg to latest hash by @mathisloge in #4300
- src/proj_transform.cpp: only use proj_context_errno_string for proj >= 8.0.0 by @josch in #4307
- [CMake] fix generated viewer ini file by @mathisloge in #4336
- adding auto formatting by @mathisloge in #4334
- Fix font installation logic by @artemp in #4333
- [CI] only run on master pushes and all PRs by @mathisloge in #4338
- SVG: Fix reflection points for smooth curves after arcs by @kkaefer in #4357
- [CI] update vcpkg by @mathisloge in #4365
- Update vcpkg.json by @mathisloge in #4367
- Fix windows build error by @mathisloge in #4368
- [CI] refactor github actions by @mathisloge in #4366
- Refactor/enumerations by @mathisloge in #4372
- Feature/cmake static plugins by @mathisloge in #4291
- move datasource_plugin into mapnik target by @mathisloge in #4377
- Include cstdint for uint16_t by @tomhughes in #4378
- Update vcpkg-sha by @mathisloge in #4379
- Add
fonts_dir
&plugins_dir
variables tolibmapnik.pc
by @hummeltech in #4382 - Use
std::filesystem
when CXX_STD >= 17 and notUSE_BOOST_FILESYSTEM
by @artemp in #4383 - Fixed check for
__cpp_lib_filesystem
infilesystem.hpp
by @hummeltech in #4384 - Add build & test for
CXX_STANDARD=17
to GitHub Actions by @hummeltech in #4385 - add cstdint header for gcc13 compilation. by @MoeSzyslak98 in #4389
- Update vcpkg commit ref in the ci by @mathisloge in #4390
- Add cstdint header include to
include/mapnik/geometry/boost_spirit_karma_adapter.hpp
by @hummeltech in #4404 - Drop support for old versions of GDAL/OGR (older than 2.0) by @Nakaner in #4419
- Add support for open_options in OGR input plugin by @Nakaner in #4420
- Fix broken builds with libxml2 >= v2.12.0 by @hummeltech in #4423
- Fix configure script for variables read from mapnik-settings.env by @Nakaner in #4424
- Fix bugs in configure script by @Nakaner in #4426
- Fix CMake build issues after OGR open_options support addition by @hummeltech in #4421
- Geojson empty geometries by @artemp in #4432
- Svg group renderer [WIP] by @artemp in #4364
- css color fractional percentage values by @artemp in #4438
- don't pollute global include dir when installing agg by @mathisloge in #4441
- Add missing
#include <string>
toinclude/mapnik/png_io.hpp
by @hummeltech in #4443 - Address
lcov
/geninfo
errors on macOS CI builds by @hummeltech in #4442 - Increase min cxx standard to 17 by @mathisloge in #4444
- No need to install
mapnik-test-visual
by @hummeltech in #4447 - Resolve
Node.js 16 actions are deprecated
GitHub Actions warnings by @hummeltech in #4446 - Svg refactor by @artemp in #4450
macos-latest
was migrated frommacOS 12
onamd64
tomacOS 14
onarm64
by @hummeltech in #4449- Delete unused files by @mathisloge in #4458
- replace majority of boost->std optional and boost->std string_view by @mathisloge in #4445
- Use
temp_directory_path
rather than hard-coded/tmp
forimage io
tests by @hummeltech in #4461
New Contributors
- @poggs made their first contribution in #3624
- @rinigus made their first contribution in #3660
- @bmharper made their first contribution in #3782
- @mikejcorey made their first contribution in #3828
- @Algunenano made their first contribution in #3863
- @mat007 made their first contribution in #3837
- @ISNIT0 made their first contribution in #3905
- @manaswinidas made their first contribution in #3920
- @EmilGedda made their first contribution in #3944
- @rbray89 made their first contribution in #3979
- @tdubrownik made their first contribution in #3993
- @mdholloway made their first contribution in #4039
- @treenewbee made their first contribution in #4064
- @Kojoley made their first contribution in #4072
- @tarvip made their first contribution in #4047
- @timmg made their first contribution in #4052
- @dirkvdb made their first contribution in #4128
- @zdila made their first contribution in #4132
- @mathisloge made their first contribution in #4189
- @Nonemoticoner made their first contribution in #4197
- @GimpMaster made their first contribution in #4253
- @josch made their first contribution in #4305
- @MoeSzyslak98 made their first contribution in #4389
- @Nakaner made their first contribution in #4419
Full Changelog: v3.1.0...v4.0.0