Skip to content

Commit 8cea524

Browse files
committed
docs(changelog): record #5354/#5355, #5356, #5358, #5359; tighten 1.15.3 overview
Four PRs merged on main after the release commit and cherry-picked into poco-1.15.3: - #5358 fix(AbstractEvent): operator-= holds the event mutex across Delegate destructor - #5359 enh(MongoDB): MongoDB 6.0/7.0/8.0 compat (carries its own API Changes for SCRAM-SHA-256 default, count() via $count, deprecated INDEX_BACKGROUND / CMD_MAP_REDUCE) - #5355 (GH #5354) feat(CppUnit): terminate handler - #5356 fix(Foundation): gate atomic_flag::test on C++20 atomic_wait Also tighten the 1.15.3 entries: trim the Summary paragraph, replace multi-paragraph API Changes prose with one-line bullets, drop redundant qualifiers from bug-fix / enhancement bullets, and use the verbatim GitHub issue/PR titles for each item. CHANGELOG and doc/99100-ReleaseNotes.page now carry the same content. CONTRIBUTORS unchanged -- all four PR authors (aleks-f, uilianries, matejk) are already listed.
1 parent 91775d7 commit 8cea524

2 files changed

Lines changed: 50 additions & 86 deletions

File tree

CHANGELOG

Lines changed: 25 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -6,91 +6,53 @@ Release 1.15.3 (2026-05-13)
66

77
Summary of Changes:
88

9-
A patch release focused on bug fixes, security updates in bundled
10-
third-party libraries (including two expat CVEs), and a small set of
11-
enhancements. Notable changes include PostgreSQL connection-string
12-
URI syntax support, a fix for the WAL-reset database corruption in
13-
SQLite, and a behaviour correction to the %c date/time format
14-
specifier so it actually emits centiseconds as documented (this is a
15-
breaking change for code that relied on the previous single-digit
16-
decisecond output).
9+
Bug fixes, expat CVE updates in bundled deps, MongoDB 6.0/7.0/8.0
10+
compatibility, PostgreSQL URI connection strings, and a corrected %c
11+
date/time format specifier (breaking).
1712

1813
Breaking Changes:
1914

20-
- GH #3949 Poco::DateTimeFormatter: %c now formats and parses a
21-
zero-padded two-digit centisecond (00..99), matching the
22-
documentation. Previously it emitted a single-digit decisecond
23-
(millisecond/100). Callers using "%H:%M:%S.%c" will see one extra
24-
character in the output. Closed by PR #5350.
15+
- GH #3949 Poco::DateTimeFormatter %c does not format to centisecond but decisecond (PR #5350)
2516

2617
API Changes:
2718

28-
- Poco::MongoDB::Database::authenticate() default mechanism changed from
29-
"SCRAM-SHA-1" to "SCRAM-SHA-256", matching the MongoDB server default
30-
for new users since 4.0 and the convention used by every official
31-
MongoDB driver. Existing callers that rely on SCRAM-SHA-1 should pass
32-
Database::AUTH_SCRAM_SHA1 explicitly. SCRAM-SHA-256 currently requires
33-
ASCII passwords; non-ASCII passwords throw NotImplementedException
34-
pending full SASLprep (RFC 4013) support.
35-
- Poco::MongoDB::Database::count() now uses aggregation [{$count: "n"}]
36-
instead of the legacy "count" command. The signature is unchanged.
37-
Aggregation $count is in the Stable API v1, returns accurate results
38-
on sharded clusters (the legacy command over-reports due to orphans),
39-
and is permitted in multi-document transactions. Operators watching
40-
server-side query metrics will see "aggregate" commands where they
41-
previously saw "count".
42-
- Poco::MongoDB::Database::INDEX_BACKGROUND is now marked POCO_DEPRECATED
43-
(deprecated by MongoDB in 4.2; server-side no-op). The flag is kept
44-
for source compatibility but its value is no longer forwarded to the
45-
server.
46-
- Poco::MongoDB::OpMsgMessage::CMD_MAP_REDUCE is now marked
47-
POCO_DEPRECATED (mapReduce deprecated by MongoDB in 5.0); use the
48-
aggregation pipeline.
49-
50-
- GH #5322 PropertyFileConfiguration: the optional parent-configuration
51-
parameter (added in 1.15.1 via #5253) is now an AbstractConfiguration*
52-
raw non-owning pointer instead of AbstractConfiguration::Ptr. Callers
53-
must keep the parent alive for the child's lifetime. This fixes a
54-
circular reference between LayeredConfiguration and child
55-
PropertyFileConfiguration instances in Application::loadConfiguration().
56-
The Ptr-taking overloads are retained as deprecated forwarders to
57-
surface the lifetime contract at compile time; they will be removed
58-
in a future release. Passing a temporary Ptr would leave _pParentConfig
59-
dangling and should be replaced with a named variable whose lifetime
60-
outlives the child. All three PropertyFileConfiguration constructors
61-
are now explicit to prevent accidental implicit conversions.
19+
- MongoDB::Database::authenticate() default is now SCRAM-SHA-256; pass AUTH_SCRAM_SHA1 for the previous default. ASCII passwords only. (PR #5359)
20+
- MongoDB::Database::count() now uses {$count: "n"} aggregation; signature unchanged, accurate on sharded clusters, transaction-safe. (PR #5359)
21+
- MongoDB::Database::INDEX_BACKGROUND and MongoDB::OpMsgMessage::CMD_MAP_REDUCE are POCO_DEPRECATED (deprecated server-side in 4.2 and 5.0). (PR #5359)
22+
- GH #5322 Circular reference in `Application::loadConfiguration()` -- PropertyFileConfiguration parent parameter is now AbstractConfiguration* (was Ptr); caller owns lifetime. Ptr overloads retained as deprecated. Constructors are now explicit.
6223

6324
Security Fixes:
6425

65-
- PR #5351 chore(deps): bundled third-party library updates -- includes
66-
expat 2.8.1 with CVE-2026-41080 (hash flooding salt entropy) and
67-
CVE-2026-45186 (quadratic runtime on attribute name collisions, DoS).
68-
- GH #5050 CodeQL: Net: IPv6 isLoopback IPv4-mapped check was always
69-
false. Closed by PR #5349.
26+
- PR #5351 chore(deps): bundled third-party library updates for 1.15.3
27+
- GH #5050 CodeQL: Net: Comparison result is always the same (PR #5349)
7028

7129
Bundled Third-Party Library Upgrades:
7230

73-
- expat 2.7.5 -> 2.8.1 - security (CVE-2026-41080, CVE-2026-45186), new entropy sources
74-
- SQLite 3.53.0 -> 3.53.1 - WAL-reset database corruption fix
75-
- libpng 1.6.57 -> 1.6.58 - fix png_get_PLTE returning stale palette data (1.6.56 regression)
76-
- 7zip (LZMA SDK) 26.00 -> 26.01 - bug fixes, Linux huge pages
31+
- expat 2.7.5 -> 2.8.1 (CVE-2026-41080, CVE-2026-45186)
32+
- SQLite 3.53.0 -> 3.53.1 (WAL-reset corruption fix)
33+
- libpng 1.6.57 -> 1.6.58 (png_get_PLTE regression fix)
34+
- 7zip (LZMA SDK) 26.00 -> 26.01
7735

7836
Features, Enhancements and Third Party Updates:
7937

80-
- PR #5346 enh(PostgreSQL): let libpq parse the connection string itself, support URI syntax
81-
- GH #5344 POCO::JWT issue with OPENSSL_NO_DEPRECATED -- addressed by silencing OpenSSL 3.x deprecation warnings on legacy key accessors (PR #5332)
38+
- PR #5359 enh(MongoDB): MongoDB 6.0/7.0/8.0 compat -- partial indexes, Decimal128, SCRAM-SHA-256
39+
- GH #5354 CppUnit terminate handler (PR #5355)
40+
- PR #5346 Support quoted parameters and URI syntax in PostgreSQL connection strings
41+
- GH #5344 POCO::JWT issue with OPENSSL_NO_DEPRECATED (PR #5332)
8242
- PR #5334 enh(MongoDB): add wire version constants for MongoDB 6.1-8.0
83-
- GH #5337 ProcessRunner error message format
43+
- GH #5337 `ProcessRunner` error message format (PR #5338)
8444

8545
Bug Fixes and Improvements:
8646

87-
- GH #5352 C++20 does not guarantee atomic_flag::test (PR #5353)
47+
- PR #5358 fix(AbstractEvent): operator-= holds the event mutex across Delegate destructor
48+
- PR #5356 [fix] Only allow use atomic when C++20 is properly configured
49+
- GH #5352 C++ 20 does not guarantee atomic_flag.test (PR #5353)
8850
- GH #5347 PDF does not build with make
89-
- GH #5342 Oracle ODBC CI fail
90-
- GH #5340 PropertyFileConfiguration does not persist deletion of last key from included property files
51+
- GH #5342 Oracle ODBC CI fail (PR #5343)
52+
- GH #5340 PropertyFileConfiguration does not persist deletion of last key from included property files (PR #5341)
9153
- GH #5330 POCO_UNBUNDLED=ON build fails when ZLIB is a transitive dependency of another found package
9254
- GH #5327 UnbufferedStreamBuf::xsgetn silently swallows decoder errors after partial read (regression from #5290)
93-
- GH #5324 Logger::shutdown() use-after-free
55+
- GH #5324 `Logger::shutdown()` use-after-free
9456
- GH #5316 ThreadTest::testTrySleep flaky on macOS, causes segfault
9557
- PR #5345 fix(cmake): replace obsolete -s with -Wl,-x on Apple linker
9658
- PR #5336 Fix C1021 fatal error when building DataSQLite with POCO_SQLITE_UNBUNDLED on MSVC

doc/99100-ReleaseNotes.page

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,50 +5,52 @@ AAAIntroduction
55

66
!!Summary of Changes
77

8-
A patch release focused on bug fixes, security updates in bundled
9-
third-party libraries (including two expat CVEs), and a small set of
10-
enhancements. Notable changes include PostgreSQL connection-string
11-
URI syntax support, a fix for the WAL-reset database corruption in
12-
SQLite, and a behaviour correction to the %c date/time format
13-
specifier so it actually emits centiseconds as documented (this is a
14-
breaking change for code that relied on the previous single-digit
15-
decisecond output).
8+
Bug fixes, expat CVE updates in bundled deps, MongoDB 6.0/7.0/8.0
9+
compatibility, PostgreSQL URI connection strings, and a corrected %c
10+
date/time format specifier (breaking).
1611

1712
!!Breaking Changes
1813

19-
- GH #3949 Poco::DateTimeFormatter: %c now emits zero-padded two-digit centisecond (00..99), matching documentation. Previously it emitted a single-digit decisecond. Closed by PR #5350.
14+
- GH #3949 Poco::DateTimeFormatter %c does not format to centisecond but decisecond (PR #5350)
2015

2116
!!API Changes
2217

23-
- GH #5322 PropertyFileConfiguration optional parent-configuration parameter is now an AbstractConfiguration* raw non-owning pointer instead of AbstractConfiguration::Ptr. Callers must keep the parent alive for the child's lifetime. Ptr-taking overloads retained as deprecated forwarders. Constructors are now explicit. See CHANGELOG for details.
18+
- MongoDB::Database::authenticate() default is now SCRAM-SHA-256; pass AUTH_SCRAM_SHA1 for the previous default. ASCII passwords only. (PR #5359)
19+
- MongoDB::Database::count() now uses {$count: "n"} aggregation; signature unchanged, accurate on sharded clusters, transaction-safe. (PR #5359)
20+
- MongoDB::Database::INDEX_BACKGROUND and MongoDB::OpMsgMessage::CMD_MAP_REDUCE are POCO_DEPRECATED (deprecated server-side in 4.2 and 5.0). (PR #5359)
21+
- GH #5322 Circular reference in `Application::loadConfiguration()` -- PropertyFileConfiguration parent parameter is now AbstractConfiguration* (was Ptr); caller owns lifetime. Ptr overloads retained as deprecated. Constructors are now explicit.
2422

2523
!!Security Fixes
2624

27-
- PR #5351 chore(deps): bundled third-party library updates (expat CVE-2026-41080, CVE-2026-45186)
28-
- GH #5050 CodeQL: Net: IPv6 isLoopback IPv4-mapped check was always false
25+
- PR #5351 chore(deps): bundled third-party library updates for 1.15.3
26+
- GH #5050 CodeQL: Net: Comparison result is always the same (PR #5349)
2927

3028
Bundled Third-Party Library Upgrades:
31-
- expat 2.7.5 -> 2.8.1 - security (CVE-2026-41080, CVE-2026-45186), new entropy sources
32-
- SQLite 3.53.0 -> 3.53.1 - WAL-reset database corruption fix
33-
- libpng 1.6.57 -> 1.6.58 - fix png_get_PLTE returning stale palette data (1.6.56 regression)
34-
- 7zip (LZMA SDK) 26.00 -> 26.01 - bug fixes, Linux huge pages
29+
- expat 2.7.5 -> 2.8.1 (CVE-2026-41080, CVE-2026-45186)
30+
- SQLite 3.53.0 -> 3.53.1 (WAL-reset corruption fix)
31+
- libpng 1.6.57 -> 1.6.58 (png_get_PLTE regression fix)
32+
- 7zip (LZMA SDK) 26.00 -> 26.01
3533

3634
!!Features, Enhancements and Third Party Updates
3735

38-
- PR #5346 enh(PostgreSQL): let libpq parse the connection string itself, support URI syntax
39-
- GH #5344 POCO::JWT issue with OPENSSL_NO_DEPRECATED -- addressed via PR #5332 (silence OpenSSL 3.x deprecation warnings on legacy key accessors)
36+
- PR #5359 enh(MongoDB): MongoDB 6.0/7.0/8.0 compat -- partial indexes, Decimal128, SCRAM-SHA-256
37+
- GH #5354 CppUnit terminate handler (PR #5355)
38+
- PR #5346 Support quoted parameters and URI syntax in PostgreSQL connection strings
39+
- GH #5344 POCO::JWT issue with OPENSSL_NO_DEPRECATED (PR #5332)
4040
- PR #5334 enh(MongoDB): add wire version constants for MongoDB 6.1-8.0
41-
- GH #5337 ProcessRunner error message format
41+
- GH #5337 `ProcessRunner` error message format (PR #5338)
4242

4343
!!Bug Fixes and Improvements
4444

45-
- GH #5352 C++20 does not guarantee atomic_flag::test (PR #5353)
45+
- PR #5358 fix(AbstractEvent): operator-= holds the event mutex across Delegate destructor
46+
- PR #5356 [fix] Only allow use atomic when C++20 is properly configured
47+
- GH #5352 C++ 20 does not guarantee atomic_flag.test (PR #5353)
4648
- GH #5347 PDF does not build with make
47-
- GH #5342 Oracle ODBC CI fail
48-
- GH #5340 PropertyFileConfiguration does not persist deletion of last key from included property files
49+
- GH #5342 Oracle ODBC CI fail (PR #5343)
50+
- GH #5340 PropertyFileConfiguration does not persist deletion of last key from included property files (PR #5341)
4951
- GH #5330 POCO_UNBUNDLED=ON build fails when ZLIB is a transitive dependency of another found package
5052
- GH #5327 UnbufferedStreamBuf::xsgetn silently swallows decoder errors after partial read (regression from #5290)
51-
- GH #5324 Logger::shutdown() use-after-free
53+
- GH #5324 `Logger::shutdown()` use-after-free
5254
- GH #5316 ThreadTest::testTrySleep flaky on macOS, causes segfault
5355
- PR #5345 fix(cmake): replace obsolete -s with -Wl,-x on Apple linker
5456
- PR #5336 Fix C1021 fatal error when building DataSQLite with POCO_SQLITE_UNBUNDLED on MSVC

0 commit comments

Comments
 (0)