diff --git a/README.md b/README.md index d4b2e7272..89b4e0ab8 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,6 @@ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Linux Build Status](http://jenkins.eprosima.com:8080/job/nightly_fastdds-docs_master/badge/icon?subject=CI%20testing%20)](http://jenkins.eprosima.com:8080/job/nightly_fastdds-docs_master/) - -> [!WARNING] -> **In preparation for v3.0.0, Fast DDS' master branch is undergoing major changes entailing API breaks.** -> **Until Fast DDS v3.0.0 is released, it is strongly advisable to use the latest stable branch, [2.14.x](https://github.com/eProsima/Fast-DDS/tree/2.14.x).** - *eprosima Fast DDS* (formerly Fast RTPS) is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object Management Group). eProsima Fast DDS implements the RTPS (Real Time Publish Subscribe) protocol, which provides publisher-subscriber communications over unreliable transports such as UDP, diff --git a/code/Examples/C++/DDSHelloWorld/src/HelloWorldCdrAux.ipp b/code/Examples/C++/DDSHelloWorld/src/HelloWorldCdrAux.ipp index 19316df7d..30f135e30 100644 --- a/code/Examples/C++/DDSHelloWorld/src/HelloWorldCdrAux.ipp +++ b/code/Examples/C++/DDSHelloWorld/src/HelloWorldCdrAux.ipp @@ -113,8 +113,13 @@ void serialize_key( eprosima::fastcdr::Cdr& scdr, const HelloWorld& data) { + static_cast(scdr); static_cast(data); + scdr << data.index(); + + scdr << data.message(); + } diff --git a/code/Examples/C++/DDSHelloWorld/src/HelloWorldPubSubTypes.cxx b/code/Examples/C++/DDSHelloWorld/src/HelloWorldPubSubTypes.cxx index f9a6f740d..865410fd5 100644 --- a/code/Examples/C++/DDSHelloWorld/src/HelloWorldPubSubTypes.cxx +++ b/code/Examples/C++/DDSHelloWorld/src/HelloWorldPubSubTypes.cxx @@ -184,7 +184,8 @@ bool HelloWorldPubSubType::compute_key( HelloWorld_max_key_cdr_typesize); // Object that serializes the data. - eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv1); + eprosima::fastcdr::Cdr ser(fastbuffer, eprosima::fastcdr::Cdr::BIG_ENDIANNESS, eprosima::fastcdr::CdrVersion::XCDRv2); + ser.set_encoding_flag(eprosima::fastcdr::EncodingAlgorithmFlag::PLAIN_CDR2); eprosima::fastcdr::serialize_key(ser, *p_type); if (force_md5 || HelloWorld_max_key_cdr_typesize > 16) { diff --git a/docs/02-formalia/titlepage.rst b/docs/02-formalia/titlepage.rst index d2d28d880..cbda89103 100644 --- a/docs/02-formalia/titlepage.rst +++ b/docs/02-formalia/titlepage.rst @@ -4,12 +4,6 @@ eProsima Fast DDS Documentation -.. TODO(eduponz): Remove this before releasing v3.0.0 -.. warning:: - - In preparation for v3.0.0, Fast DDS' master branch is undergoing major changes entailing **API breaks**. - Until Fast DDS v3.0.0 is released, it is strongly advisable to use the latest stable version, `2.14 `_. - .. image:: /01-figures/logo.png :height: 100px :width: 100px diff --git a/docs/fastdds/rtps_layer/rtps_layer.rst b/docs/fastdds/rtps_layer/rtps_layer.rst index 0000dcfd3..3a58ff614 100644 --- a/docs/fastdds/rtps_layer/rtps_layer.rst +++ b/docs/fastdds/rtps_layer/rtps_layer.rst @@ -292,6 +292,7 @@ However, a custom Payload pool can be given to |RTPSDomain::createRTPSWriter-api Writers and Readers will use the provided pool when a new :class:`CacheChange_t` is requested or released. +.. _rtps_layer_ipayload_pool_interface: IPayloadPool interface ^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/notes/notes.rst b/docs/notes/notes.rst index 5728999e4..b90f8c312 100644 --- a/docs/notes/notes.rst +++ b/docs/notes/notes.rst @@ -5,7 +5,7 @@ Information about the release lifecycle can be found `here `_. -.. include:: previous_versions/v2.14.3.rst +.. include:: previous_versions/v3.0.0.rst .. seealso:: diff --git a/docs/notes/previous_versions/supported_versions.rst b/docs/notes/previous_versions/supported_versions.rst index 169981d01..d24189bea 100644 --- a/docs/notes/previous_versions/supported_versions.rst +++ b/docs/notes/previous_versions/supported_versions.rst @@ -1,6 +1,11 @@ Supported versions ================== +Version 3.0 +------------ + +.. include:: v3.0.0.rst + Version 2.14 ------------ diff --git a/docs/notes/previous_versions/v2.14.0.rst b/docs/notes/previous_versions/v2.14.0.rst index 6fc61841a..a6e491717 100644 --- a/docs/notes/previous_versions/v2.14.0.rst +++ b/docs/notes/previous_versions/v2.14.0.rst @@ -3,8 +3,7 @@ .. important:: - Fast DDS v2.14 will be the last minor version of Fast DDS v2, the next major release will be Fast DDS - v3.0.0, stay tuned! + Fast DDS v2.14 is the last minor version of Fast DDS v2, take a look at Fast DDS v3! This release includes the following **new features**: diff --git a/docs/notes/previous_versions/v2.14.1.rst b/docs/notes/previous_versions/v2.14.1.rst index 09e258307..ef074ee57 100644 --- a/docs/notes/previous_versions/v2.14.1.rst +++ b/docs/notes/previous_versions/v2.14.1.rst @@ -3,8 +3,7 @@ .. important:: - Fast DDS v2.14 will be the last minor version of Fast DDS v2, the next major release will be Fast DDS - v3.0.0, stay tuned! + Fast DDS v2.14 is the last minor version of Fast DDS v2, take a look at Fast DDS v3! This release includes the following **features** in an ABI compatible manner: diff --git a/docs/notes/previous_versions/v2.14.2.rst b/docs/notes/previous_versions/v2.14.2.rst index a4216b270..e10ff02b6 100644 --- a/docs/notes/previous_versions/v2.14.2.rst +++ b/docs/notes/previous_versions/v2.14.2.rst @@ -3,8 +3,7 @@ .. important:: - Fast DDS v2.14 will be the last minor version of Fast DDS v2, the next major release will be Fast DDS - v3.0.0, stay tuned! + Fast DDS v2.14 is the last minor version of Fast DDS v2, take a look at Fast DDS v3! This release includes the following **features** in an ABI compatible manner: diff --git a/docs/notes/previous_versions/v2.14.3.rst b/docs/notes/previous_versions/v2.14.3.rst index f7826c463..dceccf638 100644 --- a/docs/notes/previous_versions/v2.14.3.rst +++ b/docs/notes/previous_versions/v2.14.3.rst @@ -1,10 +1,9 @@ -`Version 2.14.3 (latest) `_ -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +`Version 2.14.3 `_ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. important:: - Fast DDS v2.14 will be the last minor version of Fast DDS v2, the next major release will be Fast DDS - v3.0.0, stay tuned! + Fast DDS v2.14 is the last minor version of Fast DDS v2, take a look at Fast DDS v3! This release includes the following **features** in an ABI compatible manner: diff --git a/docs/notes/previous_versions/v3.0.0.rst b/docs/notes/previous_versions/v3.0.0.rst new file mode 100644 index 000000000..6ac05f652 --- /dev/null +++ b/docs/notes/previous_versions/v3.0.0.rst @@ -0,0 +1,92 @@ +`Version 3.0.0 (latest) `_ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Fast DDS v3.0.0 is a mayor release that entails some **API breaks** and new features. +This version is **not backwards compatible** with previous versions. +Refer to the `migration guide `__ for hints moving to Fast DDS v3.0.0. + +This release includes the following **API breaks**: + +#. Fastrtps package name migration to fastdds. +#. API and namespace migration from RTPS to DDS. +#. Make private previously public API. +#. Make all public headers .hpp. +#. :ref:`dynamic-types` refactor. +#. :ref:`IPayloadPool` refactor. +#. :ref:`Participant discovery structures ` refactor. +#. GUIDLess :ref:`Discovery Server`. +#. Gather-send implementation. +#. ``const`` qualify all data related inputs in DataWriter APIs. +#. Refactor RTPS reader APIs. +#. Refactor RTPS writer APIs. +#. Refactor RTPS ``WriterHistory``. +#. Refactor ``TopicDataType``. +#. Make ``StdoutErrConsumer`` default ``LogConsumer``. +#. All ``DataWriter::write`` overloads return ``ReturnCode_t`` type. +#. Add :ref:`XML configuration` for ``FlowControllerDescriptor`` and remove ``ThroughputController``. +#. Move ``DataReader::TypeConsistencyEnforcement`` and ``DataReader::DataRepresentation`` from ``TypeConsistency`` to ``DataReaderQos``. +#. Migrate ``BuiltinEndpoints`` defines to variables. +#. Remove ``string_convert`` header and source. +#. `Examples `__ refactor. +#. Update Fast DDS docs QoS examples. +#. Link SHM locator kind with Fast DDS major version. +#. Discard local SHM locators that cannot be opened. + +This release includes the following new **features**: + +#. :ref:`property_type_propagation` policy. +#. :ref:`Create Participant with default profile ` + (use environment XML configuration). +#. Create :ref:`dds_layer_domainParticipantExtendedQos` class. +#. Add product version on Participant Discovery information. +#. Automatically unmatch remote participants on participant deletion. +#. Refactor Statistics module IDL. +#. Change PDP discovery database backup restore order. +#. Create ``InitialConnection`` for TCP initial peers. +#. New :ref:`property_max_message_size` property to limit output datagrams size. +#. Use ``PID_DOMAIN_ID`` during PDP. +#. Ubuntu example testing automation infrastructure. +#. Update versions in fastdds.repos file. + +This release includes the following **improvements**: + +#. Make ``DataReader::return_loan`` return ``RETCODE_OK`` on loanable sequences without loans. +#. Use absolute paths when loading XML files. +#. Remove ``FASTCDR_VERSION_MAJOR == 1`` related code. +#. Setting ``vendor_id`` on received ``CacheChange_t``. +#. Builtin data related improvements. +#. GitHub repository management. +#. `Migration guide `__. +#. Update fastcdr thirdparty. +#. Documentation updates due to major version change. + +This release includes the following **fixes**: + +#. Handle errors when setting socket buffer sizes. +#. Do not require ``PYTHON_VERSION`` to be defined in .bat files. +#. Use ``%*`` instead of ``loop`` in .bat scripts. +#. Set DataSharing in ``WriterProxyData`` and ``ReaderProxyData``. +#. Minor fix in ``DDSBlackboxTestsBasic.cpp``. +#. Fix PDP and EDP unittest compilation. +#. Fix ``AllocTest`` compilation. +#. Correct liveliness state in a multiple reader and one writer scenario. +#. Only apply content filter to ALIVE changes. +#. Fix compilation when building static library. +#. Properly delete builtin statistics writers upon ``delete_contained_entities()``. +#. Correctly initialize ``MatchingFailureMask`` constants to be used with the ``std::bitset`` API. +#. Change monitor service writer entity id. +#. Fix EDP build warning without security. +#. Fix compilation warning. +#. Fix discovery server not connecting due to ports logic. +#. Fix assertion in ``TopicPayloadPool::release_history``. +#. Fix topic interference on ``liveliness_changed`` status. +#. Fix typo in CMakeLists.txt. +#. Solve ``SecurityManager`` memory issue. +#. Fuzzer regressions and fix build issues. +#. Address build issues for documentation and different platforms. +#. Add unsigned specification to literals. + +.. important:: + + When upgrading to version 3.0.0 it is **required** to regenerate generated source from IDL files + using `Fast DDS-Gen v4.0.0 `_. diff --git a/docs/notes/versions.rst b/docs/notes/versions.rst index 9585de889..c3f9983de 100644 --- a/docs/notes/versions.rst +++ b/docs/notes/versions.rst @@ -49,6 +49,61 @@ The following table shows the minimum version required of the Fast DDS build sys .. tabs:: + .. group-tab:: 3.0.x + + .. list-table:: + + * - **CMake** + - 3.20 + + .. list-table:: + :header-rows: 1 + + * - OS \ Architecture + - amd64 + - amd32 + - arm64 + * - Ubuntu Noble (24.04) + - Tier 3: GCC 13.2 + - **───** + - Tier 3: GCC 13.2 + * - Ubuntu Jammy (22.04) + - Tier 1: GCC 11.4 |br| + Tier 3: Clang 15 + - **───** + - Tier 1: GCC 11.4 |br| + Tier 3: Clang 15 + * - MacOS Mojave (10.14) + - Tier 1: Clang 15 + - **───** + - **───** + * - Windows 10 + - Tier 1: MSVC v142 (Visual Studio 2019) |br| + Tier 3: MSVC v141 (Visual Studio 2017) + - Tier 3: MSVC v142 (Visual Studio 2019) |br| + Tier 3: MSVC v141 (Visual Studio 2017) + - **───** + * - Windows 11 + - Tier 3: MSVC v143 (Visual Studio 2022) + - Tier 3: MSVC v143 (Visual Studio 2022) + - **───** + * - Debian Buster (10) + - Tier 3: GCC 8 + - **───** + - Tier 3: GCC 8 + * - Android 12 + - Tier 3: SDK 31 + - **───** + - Tier 3: SDK 31 + * - Android 13 + - Tier 3: SDK 33 + - **───** + - Tier 3: SDK 33 + * - QNX 7.1 + - Tier 3: QCC (over GCC 8.3) + - **───** + - Tier 3: QCC (over GCC 8.3) + .. group-tab:: 2.14.x .. list-table:: @@ -203,6 +258,24 @@ The following table shows the corresponding versions of the Fast DDS library dep .. tabs:: + .. group-tab:: 3.0.x + + .. list-table:: + :header-rows: 1 + + * - Product + - Related version + * - `Fast CDR `__ + - `v2.2.3 `__ + * - `Foonathan Memory Vendor `__ + - `v1.3.1 `__ + * - `Asio `__ + - `v1.18.1 `__ + * - `TinyXML2 `__ + - `v6.0.0 `__ + * - `OpenSSL `__ + - `v3.1.1 `__ + .. group-tab:: 2.14.x .. list-table:: @@ -273,6 +346,24 @@ Fast DDS as the core middleware. .. tabs:: + .. group-tab:: 3.0.x + + .. list-table:: + :header-rows: 1 + + * - Product + - Related version + * - `Fast DDS Gen `__ + - `v4.0.0 `__ + * - `Fast DDS Gen - IDL parser `__ + - `v4.0.0 `__ + * - `Fast DDS python `__ + - `v2.0.0 `__ + * - `Shapes Demo `__ + - `v3.0.0 `__ + * - `Discovery Server `__ + - `v2.0.0 `__ + .. group-tab:: 2.14.x .. list-table:: diff --git a/docs/spelling_wordlist.txt b/docs/spelling_wordlist.txt index 56c49a0f8..16ff737b5 100644 --- a/docs/spelling_wordlist.txt +++ b/docs/spelling_wordlist.txt @@ -141,6 +141,7 @@ homebrew Homebrew hostid hotfix +hpp idl IDL ifaddrs @@ -162,6 +163,7 @@ le Libp libs lifecycle +loanable localhost localtime LogTopic @@ -226,6 +228,7 @@ qnx QoS QosPolicyCount quadratically +reachability ReaderProxyData readFromCdrMessage readNextData @@ -248,6 +251,7 @@ scalable seqNum SequenceNumber sequencenumbers +Serialization shm SHM simpleEDP