Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[21366] Bump version to v3.0.0 #884

Merged
merged 12 commits into from
Aug 26, 2024
5 changes: 0 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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/)

<!-- 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 branch, [2.14.x](https://github.com/eProsima/Fast-DDS/tree/2.14.x).**

<a href="http://www.eprosima.com"><img src="https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcSd0PDlVz1U_7MgdTe0FRIWD0Jc9_YH-gGi0ZpLkr-qgCI6ZEoJZ5GBqQ" align="left" hspace="8" vspace="2" width="100" height="100" ></a>

*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,
Expand Down
5 changes: 5 additions & 0 deletions code/Examples/C++/DDSHelloWorld/src/HelloWorldCdrAux.ipp
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,13 @@ void serialize_key(
eprosima::fastcdr::Cdr& scdr,
const HelloWorld& data)
{

static_cast<void>(scdr);
static_cast<void>(data);
scdr << data.index();

scdr << data.message();

}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down
6 changes: 0 additions & 6 deletions docs/02-formalia/titlepage.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,6 @@
eProsima Fast DDS Documentation
</h1>

.. 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 <https://fast-dds.docs.eprosima.com/en/v2.14.1>`_.

.. image:: /01-figures/logo.png
:height: 100px
:width: 100px
Expand Down
1 change: 1 addition & 0 deletions docs/fastdds/rtps_layer/rtps_layer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,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
^^^^^^^^^^^^^^^^^^^^^^
Expand Down
2 changes: 1 addition & 1 deletion docs/notes/notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Information about the release lifecycle can be found
`here <https://github.com/eProsima/Fast-DDS/blob/master/RELEASE_SUPPORT.md>`_.

.. include:: previous_versions/v2.14.3.rst
.. include:: previous_versions/v3.0.0.rst

.. seealso::

Expand Down
5 changes: 5 additions & 0 deletions docs/notes/previous_versions/supported_versions.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
Supported versions
==================

Version 3.0
------------

.. include:: v3.0.0.rst

Version 2.14
------------

Expand Down
3 changes: 1 addition & 2 deletions docs/notes/previous_versions/v2.14.0.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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**:

Expand Down
3 changes: 1 addition & 2 deletions docs/notes/previous_versions/v2.14.1.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down
3 changes: 1 addition & 2 deletions docs/notes/previous_versions/v2.14.2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down
7 changes: 3 additions & 4 deletions docs/notes/previous_versions/v2.14.3.rst
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
`Version 2.14.3 (latest) <https://fast-dds.docs.eprosima.com/en/v2.14.3/index.html>`_
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
`Version 2.14.3 <https://fast-dds.docs.eprosima.com/en/v2.14.3/index.html>`_
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. 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:

Expand Down
92 changes: 92 additions & 0 deletions docs/notes/previous_versions/v3.0.0.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
`Version 3.0.0 (latest) <https://fast-dds.docs.eprosima.com/en/v3.0.0/index.html>`_
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

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 <https://github.com/eProsima/Fast-DDS/blob/master/UPGRADING.md>`__ 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<rtps_layer_ipayload_pool_interface>` refactor.
#. :ref:`Participant discovery structures <api_rtps_builtin_data_participantbuiltintopicdata>` refactor.
#. GUIDLess :ref:`Discovery Server<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<flow-controllers>` 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 <https://github.com/eProsima/Fast-DDS/blob/master/examples/cpp/hello_world/README.md>`__ 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 <dds_layer_domainParticipant_creation_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 <https://github.com/eProsima/Fast-DDS/blob/master/UPGRADING.md>`__.
#. 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 <https://github.com/eProsima/Fast-DDS-Gen/releases/tag/v4.0.0>`_.
91 changes: 91 additions & 0 deletions docs/notes/versions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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::
Expand Down Expand Up @@ -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 <https://github.com/eProsima/Fast-CDR/>`__
- `v2.2.3 <https://github.com/eProsima/Fast-CDR/releases/tag/v2.2.3>`__
* - `Foonathan Memory Vendor <https://github.com/eProsima/foonathan_memory_vendor/>`__
- `v1.3.1 <https://github.com/eProsima/foonathan_memory_vendor/releases/tag/v1.3.1>`__
* - `Asio <https://github.com/chriskohlhoff/asio>`__
- `v1.18.1 <https://github.com/chriskohlhoff/asio/tree/asio-1-18-1>`__
* - `TinyXML2 <https://github.com/leethomason/tinyxml2>`__
- `v6.0.0 <https://github.com/leethomason/tinyxml2/tree/6.0.0>`__
* - `OpenSSL <https://github.com/openssl/openssl>`__
- `v3.1.1 <https://github.com/openssl/openssl/releases/tag/openssl-3.1.1>`__

.. group-tab:: 2.14.x

.. list-table::
Expand Down Expand Up @@ -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 <https://github.com/eProsima/Fast-DDS-Gen/>`__
- `v4.0.0 <https://github.com/eProsima/Fast-DDS-Gen/releases/tag/v4.0.0>`__
* - `Fast DDS Gen - IDL parser <https://github.com/eProsima/IDL-Parser/>`__
- `v4.0.0 <https://github.com/eProsima/IDL-Parser/releases/tag/v4.0.0>`__
* - `Fast DDS python <https://github.com/eProsima/Fast-DDS-python/>`__
- `v2.0.0 <https://github.com/eProsima/Fast-DDS-python/releases/tag/v2.0.0>`__
* - `Shapes Demo <https://github.com/eProsima/ShapesDemo/>`__
- `v3.0.0 <https://github.com/eProsima/ShapesDemo/releases/tag/v3.0.0>`__
* - `Discovery Server <https://github.com/eProsima/Discovery-Server/>`__
- `v2.0.0 <https://github.com/eProsima/Discovery-Server/releases/tag/v2.0.0>`__

.. group-tab:: 2.14.x

.. list-table::
Expand Down
4 changes: 4 additions & 0 deletions docs/spelling_wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ homebrew
Homebrew
hostid
hotfix
hpp
idl
IDL
ifaddrs
Expand All @@ -162,6 +163,7 @@ le
Libp
libs
lifecycle
loanable
localhost
localtime
LogTopic
Expand Down Expand Up @@ -226,6 +228,7 @@ qnx
QoS
QosPolicyCount
quadratically
reachability
ReaderProxyData
readFromCdrMessage
readNextData
Expand All @@ -248,6 +251,7 @@ scalable
seqNum
SequenceNumber
sequencenumbers
Serialization
shm
SHM
simpleEDP
Expand Down
Loading