Skip to content

feat docs: changelog-tool#1253

Open
Malevrovich wants to merge 14 commits into
userver-framework:developfrom
Malevrovich:changelog-tool
Open

feat docs: changelog-tool#1253
Malevrovich wants to merge 14 commits into
userver-framework:developfrom
Malevrovich:changelog-tool

Conversation

@Malevrovich

Copy link
Copy Markdown
Contributor

No description provided.

@Malevrovich

Copy link
Copy Markdown
Contributor Author

Пример генерации для 3.1:

* Breaking Change

  * core

    * Changed X-Request-Deadline header format from ISO timestamp to Unix epoch microseconds. Migration: Update clients to send deadlines as uint64_t microseconds since Unix epoch instead of ISO strings. <!-- ceb559ac -->

  * engine

    * Removed obscure overloads of engine::Async and utils::Async variants. Migration: Use utils::TaskBuilder for complex task settings instead of the removed overloads. <!-- e73a3ebc -->

  * grpc/tests

    * Changed ugrpc::tests::Service constructor signature. Migration: Pass server config, middlewares, and client settings through ugrpc::tests::ServiceConfigs instead of direct constructor parameters. <!-- 02522b55 -->

  * userver

    * Replaced utils::void_t with C++20 requires constraints in PostgreSQL type traits. Migration: Update custom type trait specializations to use requires clauses instead of std::enable_if conditions. <!-- 0b04131a -->
    * Raised minimum GCC version from 11.1 to 11.2 to enable C++20 heterogeneous lookup in hash containers. Migration: Update your GCC compiler to version 11.2 or newer. <!-- 288c7e7c -->

  * ydb

    * Changed YDB topic API: GetNativeTopicReadSession/GetNativeTopicWriteSession now return references instead of shared_ptr. Migration: Remove dereference operator (*) or -> when calling methods on the returned native session objects. <!-- a0d306f2 -->

  * Changed graceful shutdown procedure to two stages. Migration: replace `graceful_shutdown_interval` with `graceful_shutdown_continue_accepting_requests_interval` and `graceful_shutdown_pending_requests_completion_interval` in your config. The old parameter is deprecated and will be removed in the future. <!-- 56b3b2da -->

* Feature

  * all

    * Enabled three-way comparison operator (<=>) support unconditionally across the codebase <!-- a07ffe8c -->

  * chaotic

    * Improved support for allOf schemas with additionalProperties in chaotic serialization <!-- 0dd5cc3b -->
    * Added support for JSON Schema 'const' keyword in chaotic code generation <!-- d795f94d -->
    * Added support for 'any' type in chaotic schema generator, allowing arbitrary JSON values without type constraints. <!-- f59bbeed -->
    * Added JSON stream writer generation for chaotic schemas, improving serialization performance <!-- 20b36c01 -->
    * Added support for uniqueItems validation in chaotic array schemas for integer, string, and boolean types <!-- 86a10abb -->
    * Chaotic OpenAPI generator: added automatic config.yaml generation, improved handler generation, and enhanced documentation <!-- f3115e35 -->
    * Added comprehensive OpenAPI handler generation support with multiple content types, request body parsing, logging customization, and URL masking for sensitive parameters <!-- e616760e -->
    * Added OpenAPI handler code generation support for server-side HTTP handlers <!-- 525eba65 -->
    * chaotic: Added support for emoji characters in enum and field names by escaping them as Unicode code points <!-- ca356ebd --> Many thanks to Halfdarkangel for the PR!

  * engine

    * Added engine::AwaitableToken API and engine::Awaitable concept for integration with WaitAny/WaitAllChecked. Replaced TryGetContextAccessor() hooks with GetAwaitableToken() for creating custom awaitables. <!-- 4079a9a8 -->
    * Added utils::AsyncHideSpan for creating tasks with hidden spans that preserve log linking <!-- eefe9858 -->

  * grpc

    * feat grpc: Added validation for proto2 required fields before sending responses, providing better error messages <!-- 4c434fa1 -->
    * Added deadline propagation handling for gRPC client streaming calls <!-- 93b53d86 -->
    * Added absolute timepoint propagation support for gRPC client-side deadline propagation <!-- 54614329 -->
    * gRPC server now processes calls in subtasks, enabling Congestion Control to properly handle service overload <!-- de70eb2a -->
    * gRPC: Added graceful shutdown headers to trailing metadata for streaming calls when shutdown starts after initial metadata has been sent <!-- 5a9e7074 -->

  * kafka

    * Kafka consumer now automatically recreates itself after fatal librdkafka errors (configurable via 'restart_after_failure_delay') <!-- 894551a0 -->

  * logging

    * tracing::Span::SetLocalLogLevel now overrides the global log level in both directions - can raise the threshold (suppress logs) or lower it (enable debug logs even if the global level is higher) <!-- 2ffc7724 -->

  * mongo

    * Added OperationError getter to mongo::WriteResult for better error handling with SuppressServerExceptions option <!-- 8453f5e7 -->

  * odbc

    * Added comprehensive ODBC driver support including connection pooling, transactions, deadlines, and component configuration <!-- 64d5b74f --> Many thanks to Andrey Balabekyan for the PR!

  * postgresql

    * Added connecting_interval_ms option to PostgreSQL connection pool for throttling connection attempts <!-- ad37210b -->

  * redis

    * Added support for Redis hash field expiration commands (HEXPIRE, HPEXPIRE, HEXPIREAT, HPEXPIREAT, HEXPIRETIME, HPEXPIRETIME, HTTL, HPTTL, HPERSIST, HGETEX, HSETEX) <!-- 332799e3 -->
    * Added `SetAndGetPrevious` method to Redis client and transaction interfaces for atomic set-with-TTL operations that return the previous value <!-- c736fe02 -->
    * Added support for suppressing per-channel Redis Pub/Sub metrics to reduce metrics volume when using many channels <!-- 018efdbb -->
    * Added Redis JSON module support with json.set, json.get, json.mset, and json.mget commands <!-- f4cb5f36 -->
    * feat redis: add support for CLUSTER SHARDS topology update method <!-- 4661929e -->

  * testsuite/grpc

    * grpc.Mockserver now properly manages mock lifecycle with scope-based ownership, enabling nested and overlapping mock scopes for complex testing scenarios <!-- 3a1962b8 -->

  * userver

    * Added YDB database routing via dynamic config for blue-green deployments and live migrations <!-- 144fef36 -->
    * Added OpenTelemetry trace sampling support for gRPC servers. When enabled, gRPC requests now respect the sampling flag from incoming traceparent headers. <!-- f84a9a53 -->
    * Added support for OpenTelemetry trace sampling flags. When 'otel-trace-sampling-enabled' is true, spans will respect the W3C trace-context sampled flag (unsampled spans are not written to tracing systems). Added Span::IsSampled() and Span::SetSampled() methods for manual control. <!-- c580979b -->
    * Added full HTTP/2 over TLS support with ALPN negotiation <!-- 13d761fe --> Many thanks to SSE4 for the PR!
    * Added ScyllaDB driver: asynchronous C++ driver for ScyllaDB and Apache Cassandra with full CQL support, typed operations, and lightweight transactions <!-- b2dc90c2 --> Many thanks to gearonixx for the PR!
    * Added support for parsing all Redis command control configuration fields including account_in_statistics, force_shard_idx, chunk_size, force_retries_to_master_on_nil_reply, and retry_counter <!-- 985239a8 -->
    * Fixed MongoDB transactions to properly use dedicated client sessions. Transaction collections now prohibit cursor operations (Find, Aggregate) that could lead to undefined behavior. <!-- df8cb397 -->

  * userver/postgresql

    * Added PostgreSQL support for std::span types as array formatters <!-- 6bbd4ac3 -->
    * Added chaos testing infrastructure for PostgreSQL to detect message handling issues under network irregularities <!-- 9fbbaade -->

  * userver/ydb

    * Added deadline support for YDB topic producer flush operations <!-- 3e643f33 -->
    * Added TopicProducer wrapper for YDB topic message publishing <!-- 1fb7f5cf -->
    * Added TCP and gRPC keepalive configuration options to YDB driver <!-- ec9e2642 -->

  * utils

    * Migrated utils::span to use C++20 std::span implementation with enhanced features <!-- 8d7fb78c -->

  * ydb

    * Added support for YDB tuple type serialization with std::tuple support <!-- 5039c851 -->
    * Added TopicWriteSession support to YDB client for coroutine-friendly topic writing <!-- 5c60bc53 --> Many thanks to Vasily Sviridov for the PR!

  * Added support for Redis ACL authentication (Redis 6+) with username/password credentials <!-- 24c93522 -->
  * Added support for multiple channels in Redis subscribe commands (Subscribe, Psubscribe, Ssubscribe) <!-- e964f1f0 -->
  * crypto: Added PublicKey::LoadFromPrivateKey method to derive public keys from private keys <!-- 69dbd2de --> Many thanks to Georgij Tsarin for the PR!

* Optimization

  * grpc

    * Optimized gRPC server to parse and serialize messages from raw grpc::ByteBuffer, allowing congestion control to reject calls before parsing unary request payloads. <!-- 88ba163b -->

  * universal

    * Optimized various utility functions to use string views instead of strings, reducing unnecessary string copies. <!-- 02e1e566 -->

* Refactor

  * engine

    * refactor: Renamed engine::AsyncNoSpan to engine::AsyncNoTracing to clarify its purpose and prevent misuse <!-- 5b9e81b2 -->

  * userver

    * Improved resource lifetime management for metrics subscriptions using RegisterWriterScope to prevent race conditions during component initialization and destruction <!-- 262948c9 -->

* Many thanks to:
  * Alexander Ermakov for feat docs: duplicates removed!
  * Artyom Kolpakov for:
    * fix universal: use std::addressof in FindTransparentOrNullptr
    * docs universal: adjust RateCounter description
    * fix universal: use std::addressof in utils::Required
    * fix postgresql: fix confusion with std::forward
    * fix universal: use std::addressof in implementation of OptionalRef
    * docs universal: remove incorrect deprecated tag
    * fix universal: use std::addressof in FindOrNullptr
    * fix universal: support generators for GenerateFixedArray that return const &
    * fix utils: make comparison operators of CachedHash consistent
  * Fedor Shatokhin for fix chaotic: fixup chrono milliseconds convert!
  * Halfdarkangel for:
    * fix chaotic: respect cmake libdir path variable for bash wrapper
    * fix userver build without USERVER_FEATURE_UBOOST_CORO
  * Konstantin Goncharik for:
    * feat llhttp: upgrade to 9.4.1
    * feat service_template: upgrade get_cpm.cmake to 0.42.1
    * feat mongo: add CMake support for mongo-c-driver 2.x.x
  * Merzlikin-Matvey for fix s3api: fix ListBucketContentsParsed with truncation!
  * SSE4 for:
    * feat build: on debian trixie, system abseil package uses its own string_view
    * feat build: debian trixie doesn't have libgrpc++1, use libgrpc++1.51t64 instead
  * Vasily Sviridov for feat build: enable clickhouse by default and require clickhouse-cpp >= 2.6.0!
  * netliomax25-code for fix websocket: avoid size_t overflow in frame length check!
  * seriouscoder43 for feat universal: fix issues in crypto error handling!

@apolukhin

Copy link
Copy Markdown
Member

LGTM

@robot-magpie

robot-magpie Bot commented Jun 10, 2026

Copy link
Copy Markdown

Many thanks for the PR! @apolukhin is now importing your pull request into our internal upstream repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants