Skip to content

Commit

Permalink
feat docs: add release notes and changelog for v1.0.0
Browse files Browse the repository at this point in the history
Tests: на прод не влияет
  • Loading branch information
apolukhin committed Sep 20, 2023
1 parent f90adef commit e1fbef5
Show file tree
Hide file tree
Showing 11 changed files with 130 additions and 80 deletions.
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# userver [<img src="./scripts/docs/logo.svg" align='right' width="10%">](https://userver.tech/)

| Service Templates | Status |
|------------------------|-----|
| [Core](https://github.com/userver-framework/service_template) | [![CI](https://github.com/userver-framework/service_template/actions/workflows/ci.yml/badge.svg)](https://github.com/userver-framework/service_template/actions/workflows/ci.yml) [![Docker build](https://github.com/userver-framework/service_template/actions/workflows/docker.yaml/badge.svg)](https://github.com/userver-framework/service_template/actions/workflows/docker.yaml) |
| [PostgreSQL](https://github.com/userver-framework/pg_service_template) | [![CI](https://github.com/userver-framework/pg_service_template/actions/workflows/ci.yml/badge.svg)](https://github.com/userver-framework/pg_service_template/actions/workflows/ci.yml) [![Docker build](https://github.com/userver-framework/pg_service_template/actions/workflows/docker.yaml/badge.svg)](https://github.com/userver-framework/pg_service_template/actions/workflows/docker.yaml) |
| [gRPC+PostgreSQL](https://github.com/userver-framework/pg_grpc_service_template) | [![CI](https://github.com/userver-framework/pg_grpc_service_template/actions/workflows/ci.yml/badge.svg)](https://github.com/userver-framework/pg_grpc_service_template/actions/workflows/ci.yml) [![Docker build](https://github.com/userver-framework/pg_grpc_service_template/actions/workflows/docker.yaml/badge.svg)](https://github.com/userver-framework/pg_grpc_service_template/actions/workflows/docker.yaml) |
| Service Templates | Develop / Green Trunk | v1.0 |
|------------------------|-----|-----|
| Core: | [![CI](https://github.com/userver-framework/service_template/actions/workflows/ci.yml/badge.svg) ![Docker build](https://github.com/userver-framework/service_template/actions/workflows/docker.yaml/badge.svg)](https://github.com/userver-framework/service_template/) | [[]](https://github.com/userver-framework/service_template/tree/v1.0.x) |
| PostgreSQL: | [![CI](https://github.com/userver-framework/pg_service_template/actions/workflows/ci.yml/badge.svg) ![Docker build](https://github.com/userver-framework/pg_service_template/actions/workflows/docker.yaml/badge.svg)](https://github.com/userver-framework/pg_service_template/) | [[]](https://github.com/userver-framework/pg_service_template/tree/v1.0.x) |
| gRPC+PostgreSQL: | [![CI](https://github.com/userver-framework/pg_grpc_service_template/actions/workflows/ci.yml/badge.svg) ![Docker build](https://github.com/userver-framework/pg_grpc_service_template/actions/workflows/docker.yaml/badge.svg)](https://github.com/userver-framework/pg_grpc_service_template) | [[]](https://github.com/userver-framework/pg_grpc_service_template/tree/v1.0.x) |

**userver** is an open source asynchronous framework with a rich set of abstractions
for fast and comfortable creation of C++ microservices, services and utilities.
Expand Down Expand Up @@ -37,8 +37,8 @@ or [Habr](https://habr.com/post/674902) (Russian).
* Efficient asynchronous drivers for databases (MongoDB, PostgreSQL, Redis,
ClickHouse, MySQL/MariaDB (experimental) ...) and data transfer protocols
(HTTP, GRPC, AMQP 0-9-1 (experimental), TCP, TLS ...), tasks construction and
cancellation.
(HTTP, gRPC, AMQP 0-9-1 (experimental), TCP, TLS, WebSocket ...), tasks
construction and cancellation.
* Rich set of high-level components for caches, tasks, distributed locking,
logging, tracing, statistics, metrics, JSON/YAML/BSON.
* Functionality to change the service configuration on-the-fly.
Expand Down
6 changes: 3 additions & 3 deletions mysql/include/userver/storages/mysql.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@
// clang-format off
/// @page mysql_driver MySQL Driver - EXPERIMENTAL
///
/// **Disclaimer**: current state of the driver is highly experimental, and
/// **Disclaimer**: current state of the driver is experimental, and
/// although APIs are not likely to change drastically, some adjustments may be
/// made in the future.
/// Please also keep in mind that this driver is a community-based effort and is
/// not backed by Yandex expertise nor by Yandex-scale production usage.
/// Please also keep in mind that this driver is
/// not backed by Yandex-scale production usage.
///
/// 🐙 **userver** provides access to MySQL databases servers via
/// components::MySQL. The uMySQL driver is asynchronous, and with it one can
Expand Down
6 changes: 3 additions & 3 deletions postgresql/include/userver/storages/postgres/postgres.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@
/// separately from the query;
/// - Automatic PgaaS topology discovery;
/// - Selecting query target (master/slave);
/// - Connection failover
/// - Connection failover;
/// - Transaction support;
/// - Variadic template query parameter passing;
/// - Query result extraction to C++ types;
/// - Binary protocol usage for communication;
/// - Portals for effective background cache updates;
/// - Queries pipelining;
/// - Mapping PostgreSQL user types to C++ types.
/// - @ref scripts/docs/en/userver/deadline_propagation.md
/// - Mapping PostgreSQL user types to C++ types;
/// - @ref scripts/docs/en/userver/deadline_propagation.md .
///
/// @section toc More information
/// - For configuration see components::Postgres
Expand Down
6 changes: 3 additions & 3 deletions rabbitmq/include/userver/rabbitmq.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@

/// @page rabbitmq_driver RabbitMQ (AMQP 0-9-1) - EXPERIMENTAL
///
/// Disclaimer: current state of the driver is highly experimental, and
/// Disclaimer: current state of the driver is experimental, and
/// although APIs are not likely to change drastically, some adjustments may be
/// made in the future.
/// Please also keep in mind that this driver is a community-based effort and is
/// not backed by Yandex expertise nor by Yandex-scale production usage.
/// Please also keep in mind that this driver is
/// not backed by Yandex-scale production usage.
///
/// 🐙 **userver** provides access to RabbitMQ servers via
/// components::RabbitMQ. The uRabbitMQ driver is asynchronous, it suspends
Expand Down
2 changes: 1 addition & 1 deletion scripts/docs/en/landing.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ developers:</div>
<div class="landing-container">
<div class="landing-intro-left">
Efficient asynchronous drivers for databases (MongoDB, PostgreSQL, MySQL/MariaDB (experimental), Redis, ClickHouse,
...) and data transfer protocols (HTTP, GRPC, TCP, AMQP-0.9.1 (experimental), ...), tasks
...) and data transfer protocols (HTTP, WEbSockets, gRPC, TCP, AMQP-0.9.1 (experimental), ...), tasks
construction and cancellation.
</div>
<div class="landing-intro-right">
Expand Down
5 changes: 4 additions & 1 deletion scripts/docs/en/userver/framework_comparison.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ use ❌ and ❓ respectively.
| Async TCP/UDP | ✔️ @ref engine::io::Socket "[]" | ✔️ || ✔️ [[]][tokio-net] ||
| Async TLS Socket | ✔️ @ref engine::io::TlsWrapper "[]" | ✔️ || ± third-party libs ||
| Async HTTPS client | ✔️ @ref clients::http::Client "[]" | ✔️ || ✔️ ||
| Async HTTPS server |||| ✔️ ||
| Async HTTPS server | ✔️ @ref components::Server "[]" ||| ✔️ ||
| WebSockets Server | ✔️ @ref components::Server "[]" | ± third-party libs |[[]][dapr-websock] | ± third-party libs | ✔️ [[]][drogon] |
| Deadlines and Cancellations | ✔️ |||| ± [[]][drog-timeout] |
| Retries and Load Balancing | ✔️ | ✔️ [[]][gom-features] | ✔️ |||

Expand All @@ -59,8 +60,10 @@ use ❌ and ❓ respectively.
[dapr-postgre]: https://docs.dapr.io/reference/components-reference/supported-state-stores/setup-postgresql/
[dapr-mysql]: https://docs.dapr.io/reference/components-reference/supported-state-stores/setup-mysql/
[dapr-distlock]: https://github.com/dapr/dapr/issues/3549
[dapr-websock]: https://github.com/dapr/dapr/issues/5766
[actix-test]: https://actix.rs/docs/testing/
[acti-db]: https://actix.rs/docs/databases/
[drogon]: https://github.com/drogonframework/drogon
[drog-testig]: https://drogon.docsforge.com/master/testing-framework/
[drog-http-client]: https://drogon.docsforge.com/master/api/drogon/HttpClient/
[drog-db]: https://drogon.docsforge.com/master/database-general/
Expand Down
16 changes: 8 additions & 8 deletions scripts/docs/en/userver/grpc.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ See also:

## Capabilities

* Creating asynchronous gRPC clients and services
* Forwarding gRPC Core logs to userver logs
* Caching and reusing connections (**TODO**)
* Timeouts and retries of requests (**TODO**)
* Collection of metrics on driver usage
* Cancellation support
* Automatic authentication using middlewares
* @ref scripts/docs/en/userver/deadline_propagation.md
* Creating asynchronous gRPC clients and services;
* Forwarding gRPC Core logs to userver logs;
* Caching and reusing connections;
* Timeouts;
* Collection of metrics on driver usage;
* Cancellation support;
* Automatic authentication using middlewares;
* @ref scripts/docs/en/userver/deadline_propagation.md .

## Installation

Expand Down
25 changes: 13 additions & 12 deletions scripts/docs/en/userver/http_server.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,19 @@

## Capabilities

* HTTP 1.1/1.0 support
* HTTPS
* WebSocket
* Body decompression with "Content-Encoding: gzip"
* HTTP pipelining
* Custom authorization @ref scripts/docs/en/userver/tutorial/auth_postgres.md
* Deadline propagation
* Congestion control
* Rate limiting
* Requests-in-flight limiting
* Body size / headers count / URL length / etc. limits
* @ref scripts/docs/en/userver/deadline_propagation.md
* HTTP 1.1/1.0 support;
* HTTPS;
* WebSocket;
* Body decompression with "Content-Encoding: gzip";
* HTTP pipelining;
* Custom authorization @ref scripts/docs/en/userver/tutorial/auth_postgres.md ;
* Congestion control;
* Rate limiting;
* Requests-in-flight limiting;
* Requests-in-flight inspection via server::handlers::InspectRequests ;
* Body size / headers count / URL length / etc. limits;
* Streaming;
* @ref scripts/docs/en/userver/deadline_propagation.md .

## Streaming API

Expand Down
4 changes: 3 additions & 1 deletion scripts/docs/en/userver/mongodb.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@ The mongo asynchronous driver provides an interface to work with MongoDB
databases and the BSON format.

## Main features

* Building and reading BSON documents with support for most of the C++ types;
* Support for basic operations with collections via storages::mongo::Collection;
* Support for bulk operations;
* Dynamic management of database sets;
* Aggregation support;
* Timeouts;
* Congestion control;
* @ref scripts/docs/en/userver/deadline_propagation.md
* @ref scripts/docs/en/userver/deadline_propagation.md .

## Metrics

Expand Down
10 changes: 5 additions & 5 deletions scripts/docs/en/userver/redis.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ versa.

## Main features

* Convenient methods for Redis commands returning proper C++ types;
* Support for bulk operations (MGET, MSET, etc); driver splits data into smaller
chunks if necessary to increase server responsiveness;
* Support for different strategies of choosing the most suitable Redis instance;
* Request timeouts management with transparent retries;
* Convenient methods for Redis commands returning proper C++ types
* Support for bulk operations (MGET, MSET, etc). Driver splits data into smaller
chunks if necessary to increase server responsiveness
* Support for different strategies of choosing the most suitable Redis instance
* Request timeouts management with transparent retries
* @ref scripts/docs/en/userver/deadline_propagation.md
* Cluster autotopology

Expand Down
116 changes: 80 additions & 36 deletions scripts/docs/en/userver/roadmap_and_changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,41 +16,6 @@ Changelog news also go to the

## Roadmap


### Plans for the first release (in a two months!)

* ✓ Add component to serve static pages
* ✓ Migrate userver-only related CI checks to the GithubCI
* ✓ Improve documentation
* ✓ Improve @ref scripts/docs/en/userver/framework_comparison.md
* ✓ Add TCP acceptor sample
* ✓ Add gRPC testsuite mock sample
* ✓ Add reference sections for the Python fixtures
* ✓ Add HTTP authentication sample
* ✓ Improve experience with metrics
* ✓ Add Prometheus metrics format
* ✓ Add Graphite metrics format
* ✓ Provide a modern simple interface to write metrics
* ✓ Add chaos tests for drivers
* ✓ TCP chaos proxy implemented
* ✓ UDP chaos proxy implemented
* ✓ Mongo
* ✓ HTTP Client
* ✓ DNS resolver
* ✓ Redis
* ✓ PostgreSQL
* ✓ Clickhouse
* ✓ gRPC
* Enable PostgreSQL pipelining
* ✓ Implement and enable Deadline Propagation
* ✓ HTTP Client
* ✓ HTTP Server
* ✓ Mongo
* ✓ PostgreSQL
* ✓ Redis
* ✓ gRPC
* ✓ Implement streaming API for the HTTP

### Plans for the next release

* Add web interface to the [uservice-dynconf](https://github.com/userver-framework/uservice-dynconf)
Expand All @@ -61,6 +26,84 @@ Changelog news also go to the
## Changelog


### Release v1.0.0

Big new features since the Beta announcement:

* Implemented WebSockets server
* Added MySQL driver
* RabbitMQ drived was added
* Implemented TLS server
* Enabled PostgreSQL pipelining
* Implemented and enabled Deadline Propagation
* Improved experience with metrics. Added Prometheus and Graphite metric
formats. Provided a modern simple interface to write and test metrics.
* Added chaos tests for drivers
* Implemented streaming API for the HTTP
* Improved documentation, added more samples and descriptions, improved search.
* Numerous optimizations.
* Numerous build improvements, including Conan and Docker support.

Optimized and improved features that were available at the Beta announcement:

* gRPC client and server
* Mongo driver
* Redis driver
* PostgreSQL
* HTTP server and client
* Logging and Tracing
* ... and many other features.

Detailed descriptions could be found below.


### Beta (September 2023)

* WebSockets server and TLS server are now implemented as part of the
@ref scripts/docs/en/userver/http_server.md "HTTP server"

* PostgreSQL pipelining is now implemented and turned on by default, leading to
improved response times.

* @ref scripts/docs/en/userver/mongodb.md "Mongo Congestion Control"
is implemented and turned on by default, leading to better stability of the
service in case of high load on database.

* Initial logger is now initialized from the component config, leading to
a more simple code and setup. The `--initial-logger` option now does nothing
and will be removed soon.

* Added a @ref scripts/docs/en/userver/functional_testing.md "`userver_testsuite_add_simple()`"
CMake function to simplify testsuite CMake configuration.

* Expanded list of HTTP codes, thanks to [Vladimir Popov](https://github.com/Liteskarr)
for the PR!

* Projects from [Yandex Schools](https://academy.yandex.ru/schools) were updated
by the original authors. Thanks to
[bshirokov](https://github.com/bshirokov),
[Almaz Shagiev](https://github.com/bashkirian),
[Konstantin Antoniadi](https://github.com/KonstantinAntoniadi),
[Mingaripov Niyaz](https://github.com/mnink275),
[Ilya Golosov](https://github.com/bookWorm21) and all the participants
for the the great work and PRs!

* Build:
* New versions of `yaml-cpp` library are now supported. Thanks to
[Nikita](https://github.com/rtkid-nik) for the bug report!
* Supported compilation with fmt 10.1.0. Thanks to
[Vladislav Nepogodin](https://github.com/vnepogodin) for the PRs!
* Fixed unused result warning. Thanks to
[Vladislav Nepogodin](https://github.com/vnepogodin) for the PR!
* Fixed use of deprecated API. Thanks to
[Vladislav Nepogodin](https://github.com/vnepogodin) for the PR!
* Fixed build with GCC-13 libstdc++. Thanks to
[Vladislav Nepogodin](https://github.com/vnepogodin) for the PR!
* Fixed MacOS Protobuf discovery. Thanks to
[Pavel Talashchenko](https://github.com/pavelbezpravel) for the PR!
* Fixed multiple other build warnings and issues.


### Beta (August 2023)

* Deadline Propagation is now implemented and
Expand All @@ -70,7 +113,8 @@ Changelog news also go to the
* Documentation was redesigned by [hellenisaeva](https://github.com/hellenisaeva)
and [MariaGrinchenko](https://github.com/MariaGrinchenko); new design was
made up by [Fedor Alekseev](https://github.com/atlz253),
[fleshr](https://github.com/fleshr), [ZenkoWu](https://github.com/ZenkoWu),
[fleshr](https://github.com/fleshr),
[Anna Zagrebaylo](https://github.com/ZenkoWu),
[Michael Talalaev](https://github.com/InfinityScripter); the whole process
was managed by [Oleg Komarov](https://github.com/0GE1) with feedback from
marketing specialist [makachusha](https://github.com/makachusha).
Expand Down

0 comments on commit e1fbef5

Please sign in to comment.