From e5c351bf99e5cf1a006e480764bebd693bcacfac Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sun, 6 Oct 2024 13:37:35 -0700 Subject: Update release notes. --- RELEASE_NOTES.adoc | 115 -------------------------------------------- RELEASE_NOTES.md | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 139 insertions(+), 115 deletions(-) delete mode 100644 RELEASE_NOTES.adoc create mode 100644 RELEASE_NOTES.md diff --git a/RELEASE_NOTES.adoc b/RELEASE_NOTES.adoc deleted file mode 100644 index c27c04b9..00000000 --- a/RELEASE_NOTES.adoc +++ /dev/null @@ -1,115 +0,0 @@ -ifdef::env-github[] -:note-caption: :information_source: -:important-caption: :heavy_exclamation_mark: -endif::[] - -= RELEASE NOTES FOR NNG v1.7.0 - -This document has the following sections: - -* Notable Changes -* End of Feature Announcements - -== Notable Changes (since 1.6.0) - -A new compile time setting, `NNG_MAX_POLLER_THREADS` is introduced, -with a default value of 8, and will limit the number of threads -used for pollers that are concurrent (currently only Windows). -Additionally, for single core systems only two threads will be started -instead of four. - -A new supplemental API, nng_id_map(3), is made available. -This exposes the internal ID hash API NNG uses mapping integer IDs -(like socket IDs) to data structures. -It also brings back support for 64-bit IDs. -See bug #1740. - -Setting the `NNG_OPT_RECVMAXSZ` setting no longer affects pipes -that are already established. The old behavior was undocumented -and racy. Please set this setting before starting any listeners -or dialers. - -A new transport (experimental), for `socket://` is available. -This allows one to create a connection using sockets created -with `socketpair()` (or the new `nng_socket_pair()` supplemental API), -which can help use cases where file descriptors are passed between -processes or inherited via `fork()`. This API is only available on -Linux. It does have somewhat different semantics for establishing -the connection, so please see the manual page for `nng_socket(5)` for more information. - -WebSocket close is fixed to conform to RFC 6455, sending the -close frame, and waiting to receive the close frame from the -peer. This allows websocket based connections to ensure that -data messages are fully delivered before shutting down. -See bugs #1733, #1734 and #1735. -Thanks @alawn-wang for the inspiration and a first -draft of the change. - -The REQ and SURVEYOR protocols were fixed to improve scalability -when many clients or many contexts are used. As part of this change, -a new option, `NNG_OPT_REQ_RESENDTICK` is available to adjust how -often we check for expired requests. - -A new ability to override compile-time settings for thread counts -is available. This facility is considered experimental, and is not -documented in manual pages -- and is subject to change without notice. -Please see nng_init_set_parameter() in the nng.h header file. The -values that can be tuned are listed there along with comments -describing their use. See bug #1572. - -As part of the fixes for #1572, tunable values for setting fixed -values (rather upper limits) for thread counts are now exposed properly -via CMake variables. These are `NNG_NUM_EXPIRE_THREADS` and `NNG_NUM_TASKQ_THREADS`. - -A new API, `nng_aio_set_expire()` is introduced as a complement to -`nng_aio_set_timeout()`. This provides absolute expiration times, -which may be easier in circumstances involving multiple actions such -as common state-machine based idioms. - -A bug which caused TLS connections to spin on accept, causing high -CPU usage, is fixed. (See bug #1673) -Various minor documentation fixes were made, some contributed by -Patrik Wenger . - -== End of Feature Announcements - -=== Windows Legacy Support - -As announced in 1.6.0, -NNG no longer officially claims support for Windows Vista, Windows 7, Windows 8, or Windows 8.1. -We have no ability to build or test these versions, and Microsoft no longer supports them. -Continued use of these systems may be possible, but future changes may break -compatibility with these systems without further notice. - -=== Windows Named Pipe Support Changes - -A future release of NNG may make the ipc:// URL format operate over UNIX domain sockets by default. -We plan to do this for the other projects we control, such as mangos, as well. - -Should this occur, it will be breaking for Windows versions older than Windows 10 17063. - -=== macOS Legacy Support - -As announced in 1.6.0, -NNG no longer officially supports macOS versions older than 10.12. -Future versions of NNG may depend on features not available on versions of macOS older than 10.12. - -=== Documentation Restructuring - -A future release of NNG may restructure the documentation to make it more -approachable for more users. This would break the organization as UNIX manual -pages, and would also drop the ability to format them as UNIX nroff source. -The best way to view this documentation is on the NNG website, or with the PDF or printed manual. - -=== ZeroTier Incompatible Changes - -A future release of NNG may break compatibility for applications built using earlier versions -of NNG when using the ZeroTier transport. ZeroTier support is an experimental feature. - -=== Pair1 Polyamorous Mode - -A future release of NNG may remove Pair 1 Polyamorous support, but *only* if a suitable -replacement is provided. Pair1 Polyamorous mode is an experimental feature. - -Alternatively we may change the Pair1 wire protocol in a way that breaks compatibility with -earlier versions of Pair1 Polyamorous mode. diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md new file mode 100644 index 00000000..c2b83483 --- /dev/null +++ b/RELEASE_NOTES.md @@ -0,0 +1,139 @@ +# RELEASE NOTES FOR NNG v1.8.x + +This document has the following sections: + +- Notable Changes +- End of Feature Announcements + +## Notable Changes (since 1.8.0) + +Support is added for WolfSSL and TLS 1.3. + +Support is added for TLS PSK. + +An undocumented, but public, API for UDP is provided. + +Mimimum CMake version is 3.15. + +A new nng_id_visit API is provided. + +Significant bug fixes, especially race conditions around close/shutdown. + +## Notable Changes (since 1.7.0) + +A new option, `NNG_ENABVLE_COMPAT` is present to allow removing +the compatibility layer from the build. (This defaults to `ON`.) +Note that a future release will likely drop support for the compatibility +layer altogether! + +CMake related improvements should reduce friction when building for TLS. + +New `NNG_ENABLE_IPV6` option to conditionally enable IPv6 support. +It is off by default. + +A new logging framework, `nng_log_*` is provided to provide more debuggability, +especially useful for TLS debugging. + +## Notable Changes (since 1.6.0) + +A new compile time setting, `NNG_MAX_POLLER_THREADS` is introduced, +with a default value of 8, and will limit the number of threads +used for pollers that are concurrent (currently only Windows). +Additionally, for single core systems only two threads will be started +instead of four. + +A new supplemental API, nng_id_map(3), is made available. +This exposes the internal ID hash API NNG uses mapping integer IDs +(like socket IDs) to data structures. +It also brings back support for 64-bit IDs. +See bug #1740. + +Setting the `NNG_OPT_RECVMAXSZ` setting no longer affects pipes +that are already established. The old behavior was undocumented +and racy. Please set this setting before starting any listeners +or dialers. + +A new transport (experimental), for `socket://` is available. +This allows one to create a connection using sockets created +with `socketpair()` (or the new `nng_socket_pair()` supplemental API), +which can help use cases where file descriptors are passed between +processes or inherited via `fork()`. This API is only available on +Linux. It does have somewhat different semantics for establishing +the connection, so please see the manual page for `nng_socket(5)` for more information. + +WebSocket close is fixed to conform to RFC 6455, sending the +close frame, and waiting to receive the close frame from the +peer. This allows websocket based connections to ensure that +data messages are fully delivered before shutting down. +See bugs #1733, #1734 and #1735. +Thanks @alawn-wang for the inspiration and a first +draft of the change. + +The REQ and SURVEYOR protocols were fixed to improve scalability +when many clients or many contexts are used. As part of this change, +a new option, `NNG_OPT_REQ_RESENDTICK` is available to adjust how +often we check for expired requests. + +A new ability to override compile-time settings for thread counts +is available. This facility is considered experimental, and is not +documented in manual pages -- and is subject to change without notice. +Please see nng_init_set_parameter() in the nng.h header file. The +values that can be tuned are listed there along with comments +describing their use. See bug #1572. + +As part of the fixes for #1572, tunable values for setting fixed +values (rather upper limits) for thread counts are now exposed properly +via CMake variables. These are `NNG_NUM_EXPIRE_THREADS` and `NNG_NUM_TASKQ_THREADS`. + +A new API, `nng_aio_set_expire()` is introduced as a complement to +`nng_aio_set_timeout()`. This provides absolute expiration times, +which may be easier in circumstances involving multiple actions such +as common state-machine based idioms. + +A bug which caused TLS connections to spin on accept, causing high +CPU usage, is fixed. (See bug #1673) +Various minor documentation fixes were made, some contributed by +Patrik Wenger . + +## End of Feature Announcements + +### Windows Legacy Support + +As announced in 1.6.0, +NNG no longer officially claims support for Windows Vista, Windows 7, Windows 8, or Windows 8.1. +We have no ability to build or test these versions, and Microsoft no longer supports them. +Continued use of these systems may be possible, but future changes may break +compatibility with these systems without further notice. + +### Windows Named Pipe Support Changes + +A future release of NNG may make the ipc:// URL format operate over UNIX domain sockets by default. +We plan to do this for the other projects we control, such as mangos, as well. + +Should this occur, it will be breaking for Windows versions older than Windows 10 17063. + +### macOS Legacy Support + +As announced in 1.6.0, +NNG no longer officially supports macOS versions older than 10.12. +Future versions of NNG may depend on features not available on versions of macOS older than 10.12. + +### Documentation Restructuring + +A future release of NNG may restructure the documentation to make it more +approachable for more users. This would break the organization as UNIX manual +pages, and would also drop the ability to format them as UNIX nroff source. +The best way to view this documentation is on the NNG website, or with the PDF or printed manual. + +### ZeroTier Incompatible Changes + +A future release of NNG may break compatibility for applications built using earlier versions +of NNG when using the ZeroTier transport. ZeroTier support is an experimental feature. + +### Pair1 Polyamorous Mode + +A future release of NNG may remove Pair 1 Polyamorous support, but _only_ if a suitable +replacement is provided. Pair1 Polyamorous mode is an experimental feature. + +Alternatively we may change the Pair1 wire protocol in a way that breaks compatibility with +earlier versions of Pair1 Polyamorous mode. -- cgit v1.2.3-70-g09d2