Skip to content

Releases: zerebubuth/openstreetmap-cgimap

Release version 2.1.0

22 Jul 17:28

Choose a tag to compare

New Features

  • Enhanced changeset statistics (#510).
  • Enhanced developer experience:
    • Devcontainer support for VS Code, Debian Bookworm/Trixie (#476, #529).
    • Compile-time configurable COPYRIGHT, ATTRIBUTION, LICENSE values (#537).
    • Code coverage reporting via CMake (#492).
  • Added Alpine-based Dockerfile for leaner images (#457).
  • Set fallback_application_name postgresql parameter (#532)

Dependency changes

  • Switched to C++20, updating multiple components for compatibility (#470, #471).
  • Replaced crypto++ with PostgreSQL sha256() for hashing (#511).
  • Remove yajl build option; always enabled now (#464)

Performance Improvements

  • Optimized diff upload performance using CTEs instead of temporary tables (#460).
  • Limit max-changeset-elements to 50'000 changes (#516)
  • Introduced psql_array_ids_to_vector (#459).
  • deb package: run pg_virtualenv only once for all test cases (#494)

Bug Fixes

  • Don't rate limit HTTP OPTIONS requests (#458)
  • Fixed relation member sequence IDs starting from 0 (#523).
  • Enforced negative placeholder IDs for create operations (#524).
  • Escaped values in PostgreSQL connection strings (#535).
  • Finish up FCGI request in case of exceptions (#522)
  • Resolved macOS compatibility issues (#456).

Refactoring & Cleanup

  • Removed Boost dependencies (fusion, lexical_cast, regex) in favor of standard alternatives (#463, #475, #486).
    Only boost program-options is now left.
  • New AcceptHeader parser w/o boost (#466)
  • Major C++20 codebase modernizations across the project:
    • Concepts in routes.cpp (#507)
    • Simplified unit tests (#479, #481)
    • Refactored main.cpp, xmlparser, and utility tests (#504, #528, #477).
    • sjparser: mostly c++20 related changes (#525)
    • Reorganized and cleaned up include files, using std::, and test framework structure.
  • Removed deprecated components: staticxml and test_core (#491).

Testing & Infrastructure

  • Make pg_virtualenv switchable (#490)
  • Improved test coverage: added unit tests for HTTP, test_core_helper, and simulated DB errors (#519, #495, #521).
  • Updated Catch2 unit test framework to v3.8.1 (#536).
  • Enhanced .testcore DB integration and backend test coverage (#488, #489).

#453, #480, #482, #484, #536, #537 by @Woazboat , #456 with contribution from @deevroman, others by @mmd-osm

Full Changelog: v2.0.1...v2.1.0

Release version 2.0.1

25 Aug 12:32
8ea707e

Choose a tag to compare

What's Changed

  • Replace old openstreetmap-cgimap-bin Debian package in #452

(changes by @mmd-osm unless stated otherwise)

Full Changelog: v2.0.0...v2.0.1

Release version 2.0.0

24 Aug 07:47

Choose a tag to compare

Breaking changes

  • OAuth 1.0a removal in #354
  • Basic auth removal in #362
  • Remove obsolete --readonly command line parameter in #443
  • Rework changeset json output according to Rails implementation in #439

Important

Command line parameters to enable/disable OAuth 1.0a and Basic Auth (--basic_auth_support and --oauth_10_support) have been removed!

Performance

  • Immediately reject repeated attempts to lock the same changeset in #421
  • tiles_for_area: vector instead of set in #437
  • [perf] Only copy tags to old tables for ids that are known to have tags in #425
  • Enable libpqxx stream_to for selected tables in #427
  • std::from_chars for number parsing in #431
  • Set locale only once per request in #430
  • Simplify std::regex in #436
  • Simplified is_valid_bearer_token_char by @Woazboat in #444
  • memcached: add non-zero expiration value in #422

Misc changes

  • Update apache fcgi module link in readme by @Woazboat in #396
  • Remove multi-backend support in #395
  • Added missing brotli libs in Dockerfile stage 2 in #397
  • Fix libxml++ contrib library compiler options by @Woazboat in #398
  • Add build on Ubuntu 24.04 in #399
  • Docker image smoke test in #400
  • Deprecate test support for Ubuntu 20.04 by @Woazboat in #405
  • Sync test db schema with upstream openstreetmap-website by @Woazboat in #403
  • Unit test: user in status pending cannot upload changesets in #406
  • Add importer role by @Woazboat in #410
  • Propagate request context to handlers by @Woazboat in #411
  • Adding sjparser lib in #416
  • rate_limiter-update: consumed bytes may be larger than maxdebt in #429
  • Refactor cmake install and package definitions by @Woazboat in #381
  • Debian package build in #447
  • Build debian packages by @Firefishy in #449

(changes by @mmd-osm unless stated otherwise)

Full Changelog: v0.9.3...v2.0.0

Release version 0.9.3

21 Jun 16:25

Choose a tag to compare

Note: Releases 0.9.x will be the last ones before OAuth 1.0a and Basic Auth will be removed.

New features

  • Add the ability to limit changeset size (#413)

(changes by @mmd-osm unless stated otherwise)

Release version 0.9.2

25 Apr 16:07

Choose a tag to compare

Note: Releases 0.9.x will be the last ones before OAuth 1.0a and Basic Auth will be removed.

Bug fixes

  • Revert "Skip changeset discussions unless requested" (#402)

Release version 0.9.1

14 Apr 17:16
24709f1

Choose a tag to compare

Note: Releases 0.9.x will be the last ones before OAuth 1.0a and Basic Auth will be removed.

Breaking changes

  • Added support for brotli response body compression (#375)
  • Drop support for staticxml backend in production code (#376)
  • Require YAJL v2 in CMakeLists (#373)

Performance

  • JSON generation
    • yajl: output json in larger chunks (#380)
    • json writer: fmt for formatting integer values (#390)
    • Reuse available string length (#385)
  • SQL queries and libpqxx
    • Skip db query if no changesets were requested (#379)
    • libpqxx: cache column names (#383)
    • Skip changeset discussions unless requested (#388)
  • Misc
    • Small performance improvements (#378)
    • Use emplace_back instead of push_back, remove unnecessary temp objects by @Woazboat (#389)

Refactoring

  • CMake, code quality checks and third party libs management
    • Move modified libxml++ lib to contrib directory(#367)
    • Create separate cmake files for contrib libs by @Woazboat (#369)
    • Remove duplicated cmake test definition by @Woazboat (#370)
    • Remove unused catch2 automake reporter header file by @Woazboat (#371)
    • Integrate clang-tidy in cmake build by @Woazboat (#382)
  • A bit of refactoring in XML / JSON writer (#366)
  • Change some enums to enum class (#372)
  • Minor router cleanups (#377)
  • Some cleanups from @Woazboat psql-array-iterator branch (#384)
  • Use raw string literal for bearer token regex by @Woazboat (#387)
  • Use std::forward for forwarding references instead of std::move by @Woazboat (#386)
  • pqxx::field wrapper for psql_array_to_vector (#391)

(changes by @mmd-osm unless stated otherwise)

Full Changelog: v0.9.0...v0.9.1

Release version 0.9.0

11 Mar 19:17
cb06343

Choose a tag to compare

Note: Releases 0.9.x will be the last ones before OAuth 1.0a and Basic Auth will be removed.

Breaking changes

  • Replace autotools by cmake by @Woazboat in #317 and @mmd-osm in #358
    • Refer to the README for updated instructions on how to build CGImap
    • New option to generate Debian ppa files using cpack

Bug fixes

  • Fix json output incorrectly truncating coordinates by @Woazboat in #364
  • Fix test_parse_id_list unit test failure on ARM64 in #347
  • Adjustments for changes in underlying libpqxx 7.x.x library version in #301
  • Fix program option --instances in #339
  • Daemon mode improvements (multiple PRs)
  • Check node lat lon not NaN or infinite by @Woazboat in (7d058d5)

Performance

  • Use std::string / std::string_view for psql_array_to_vector by @Woazboat in #344
  • Reduce temporary allocations for xml serialization by @Woazboat in #342

Refactoring

  • Migrate unit tests to Catch2 framework, increased unit test coverage (multiple PRs)
  • Code cleanups (multiple PRs)

Full Changelog: v0.8.10...v0.9.0

Release version 0.8.10

05 Nov 10:29
a0ef59f

Choose a tag to compare

New features

  • Added changeset upload rate limiting (#296) (#297)

Refactoring

  • process_post_put_request: small cleanups (#298)

Full Changelog: v0.8.9...v0.8.10

Release version 0.8.9

29 Oct 19:25
c881b38

Choose a tag to compare

New features

Bug fixes

  • Fix vector reserve in pqsql select for historic n/w/r by @Woazboat (#282)
  • Replace deprecated std::iterator with direct member type declarations by @Woazboat (#279)
  • Check user state, only allow db changes for confirmed and active users by @mmd-osm (#284)
  • Fix commented out Dockerfile config in lighttpd.conf by @AntonKhorev (#287)
  • Add more test files to gitignore by @AntonKhorev (#288)

New Contributors

Full Changelog: v0.8.8...v0.8.9

Release version 0.8.8

27 Jul 18:26
5435b16

Choose a tag to compare

Bug fixes:

  • Undo "Replace custom array parser by pqxx::array_parser" (#277)