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

Iox #1283 backports commits from release 2.0 branch to master #1285

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
640e601
iox-#743 Fix geoffrey tags in request-response example and run geoffrey
elBoberido Mar 4, 2022
e09a964
iox-#743 Use geoffrey for waintset in C example
elBoberido Mar 4, 2022
e227d7c
iox-#743 Use 'CTRL+C' with upper case 'C' everywhere
elBoberido Mar 4, 2022
a0a9989
iox-#743 Fix typos
elBoberido Mar 4, 2022
4a14a37
iox-#1249 Increase watchdog timeout for smart-lock tests
elBoberido Mar 7, 2022
0be03fb
iox-#743 Update planned features
elfenpiff Mar 7, 2022
4e6da09
iox-#1249 Reduce UDS buffer size on QNX
elBoberido Mar 7, 2022
0d2b4e6
iox-#1249 Use heap for gateway tests
elBoberido Mar 7, 2022
98d1375
iox-#1249 Use heap for PoshRuntimeSingleProcess_test
elBoberido Mar 7, 2022
d77690a
iox-#1249 Use heap for ProcessIntrospection_test
elBoberido Mar 7, 2022
bc2396d
iox-#1249 Disable TOML gateway config parser tests on QNX
elBoberido Mar 7, 2022
7be770d
iox-#1249 Enable semaphore tests on QNX
elBoberido Mar 7, 2022
f76c304
iox-#743 Update iceperf readme
MatthiasKillat Mar 9, 2022
4c8727d
iox-#743 Move pthread usage into separate functions
elBoberido Mar 9, 2022
a9a38d2
iox-#743 Fix typo
elfenpiff Mar 9, 2022
cd7eb60
iox-#743 repair clean build functionality in build script
elfenpiff Mar 9, 2022
485f84f
Merge pull request #1256 from ApexAI/iox-#743-validate-iceperf-example
MatthiasKillat Mar 9, 2022
12376b9
iox-#743 Rephrase some sentences
FerdinandSpitzschnueffler Mar 9, 2022
32a4ca8
iox-#743 Fix issue where build script fails when 'build' directory al…
elfenpiff Mar 9, 2022
e5a8663
Merge pull request #1259 from ApexAI/iox-#743-review-governance
elfenpiff Mar 9, 2022
af408c1
iox-#743 Add note for colcon build, correct find_package occurences
FerdinandSpitzschnueffler Mar 9, 2022
c7beb37
iox-#743 Rephrase some sentences
FerdinandSpitzschnueffler Mar 9, 2022
3ca0bda
iox-#743 Update dds readme with the new unified dds gateway (for both…
elfenpiff Mar 9, 2022
4b15782
Merge pull request #1263 from ApexAI/iox-#743-validate-optional-expec…
FerdinandSpitzschnueffler Mar 9, 2022
376f5c3
iox-#1264 make handle translator threadsafe
elfenpiff Mar 9, 2022
dd03009
iox-#1264 Enable some tests and fix PoshRuntime_test.NoAppName
elfenpiff Mar 9, 2022
3bd9eb7
iox-#1264 Fix copyright year
elfenpiff Mar 9, 2022
610db99
iox-#743 Fix typos
elfenpiff Mar 9, 2022
1846d67
Merge pull request #1262 from ApexAI/iox-#743-validate-installation-g…
FerdinandSpitzschnueffler Mar 9, 2022
a640a1d
Merge pull request #1236 from ApexAI/iox-#743-update-waitset-in-c-exa…
elBoberido Mar 9, 2022
7c553e8
iox-#743 Update goals-non-goals.md
elBoberido Mar 9, 2022
8628307
Merge pull request #1266 from eclipse-iceoryx/iox-#1264-threadsafe-ha…
elfenpiff Mar 10, 2022
55c9319
Merge pull request #1251 from ApexAI/iox-#743-review-planned-features
elfenpiff Mar 10, 2022
85fcff9
Merge pull request #1260 from ApexAI/iox-#743-review-tools-docker
elfenpiff Mar 10, 2022
c8c8133
iox-#743 Add clients and servers to descriptions
FerdinandSpitzschnueffler Mar 9, 2022
4d14c03
iox-#1269 Add mutex and more detailed error output to windows shm_* f…
elfenpiff Mar 10, 2022
a38879c
iox-#1269 Fix resource leak in shared memory test
elfenpiff Mar 10, 2022
27ad1f6
iox-#1271 Make semaphore/mutex creation threadsafe in windows platform
elfenpiff Mar 10, 2022
37c0898
iox-#1269 Add missing include for linux platform, update changelog
elfenpiff Mar 10, 2022
202025f
iox-#1264 update changelog
elfenpiff Mar 10, 2022
a1bdfd1
iox-#1271 Update changelog, update copyright year
elfenpiff Mar 10, 2022
fcc0dc9
iox-#743 Update top level README.md
elBoberido Mar 10, 2022
88e6cf3
Merge pull request #1270 from ApexAI/iox-#1269-threadsafe-shm-functio…
elfenpiff Mar 10, 2022
6b0b61e
Merge branch 'release_2.0' into iox-#1271-make-sem-calls-thread-safe-…
elfenpiff Mar 10, 2022
b5cb07c
iox-#743 Keep pub-sub and req-res distinct
FerdinandSpitzschnueffler Mar 10, 2022
b236b23
Merge pull request #1265 from ApexAI/iox-#743-review-iceoryx-dds
elfenpiff Mar 10, 2022
46c7cf3
iox-#1271 Disabling all stress tests in the CI
elfenpiff Mar 10, 2022
ddeb020
Merge pull request #1268 from ApexAI/iox-#743-validate-overview
FerdinandSpitzschnueffler Mar 10, 2022
2c1d927
iox-#743 Add period and update latency diagram
elBoberido Mar 10, 2022
dea26bc
iox-#1126 Set version to 2.0 in cmake files
dkroenke Mar 2, 2022
f945431
iox-#1126 Set new maintainer mail address
dkroenke Mar 2, 2022
48e3350
iox-#1249 Set max socket message size for QNX to 2048
elBoberido Mar 10, 2022
1f7e86f
iox-#1126 Add conflict/replace tag to hoofs package
dkroenke Mar 10, 2022
c34fe62
Merge pull request #1267 from ApexAI/iox-#743-update-goals-non-goals.md
elBoberido Mar 10, 2022
8c9cc18
iox-#743 Add request-response messaging pattern
FerdinandSpitzschnueffler Mar 10, 2022
44d1559
Merge pull request #1272 from ApexAI/iox-#1271-make-sem-calls-thread-…
elfenpiff Mar 10, 2022
b610968
Merge pull request #1273 from ApexAI/iox-#743-update-top-level-readme
elBoberido Mar 10, 2022
347f1ea
Merge pull request #1276 from ApexAI/iox-#743-validate-what-is-iceoryx
FerdinandSpitzschnueffler Mar 11, 2022
6b2986b
iox-#1278 Adapt subscriber history support logic
MatthiasKillat Mar 11, 2022
bb70623
iox-#1280 use proper prototypes in C binding
eboasson Mar 11, 2022
16947db
iox-#743 Set links to v2.0.0
mossmaurice Mar 8, 2022
ad37027
iox-#743 Adapt links in overview.md
FerdinandSpitzschnueffler Mar 11, 2022
77de8d0
iox-#1278 Adapt tests to subscriber history support logic
MatthiasKillat Mar 11, 2022
4eabe77
Merge pull request #1281 from eboasson/iox-#1280-proper-prototypes-in…
MatthiasKillat Mar 11, 2022
b6c6f4e
Merge pull request #1250 from ApexAI/iox-#1249-fix-tests-on-qnx
elBoberido Mar 11, 2022
33f10d5
Merge pull request #1213 from ApexAI/iox-#1126-set-version-to-2.0
dkroenke Mar 11, 2022
91dd909
iox-#743 Fix several links
FerdinandSpitzschnueffler Mar 11, 2022
4ded2f7
Merge pull request #1279 from ApexAI/iox-#1278-subscriber-requesting-…
MatthiasKillat Mar 11, 2022
f030ed9
Merge pull request #1275 from ApexAI/iox-#1126-add-replace-conflicts-…
dkroenke Mar 11, 2022
e759b4d
Merge pull request #1254 from ApexAI/iox-#743-set-links-to-v2-0-0
FerdinandSpitzschnueffler Mar 11, 2022
81d31d9
iox-#1283 Merge branch 'release_2.0' into iox-#1283-backports-commits…
elBoberido Mar 11, 2022
4008a90
iox-#1283 Set links to master
elBoberido Mar 11, 2022
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 GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ For a calendar event, you can subscribe to the [ROS calendar](https://calendar.g
### Topics

* Propose features
* E.g. present and discuss a design document
* E.g. present and discuss design documents
* Discuss pull requests without going into details
* E.g. a small demo
* Steer direction of Eclipse iceoryx
Expand Down
24 changes: 19 additions & 5 deletions PLANNED_FEATURES.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,24 @@
# Planned features

This list contains rather high-prio features that will most likely be implemented in the near future.
If you have ideas or wishes and don't find them on this list,
feel free to start the discussion by raising a feature request.

* Windows support
## iceoryx v3.0 and later

This is an incomplete list of possible features for later versions of
iceoryx.

* Windows command line support
* Dynamic types
* Sending dynamic types like vector, string, list
* iceoryx tools to debug connections and communication content
* User defined platform support
* User defined memory provider to support hardware accelerators
* Man page for RouDi and the runtime
* Request-response communication
* Packages for linux distributions like debian, archlinux, gentoo

If you have ideas or wishes and don't find them on this list,
feel free to start the discussion by raising a feature request.
## iceoryx v2.0

* Windows support
* Request-response communication
* Service Discovery
8 changes: 4 additions & 4 deletions QUALITY_DECLARATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ On Git, the tags have a `v` prefix before the version numbers. A [release script

Since release `1.0.0` iceoryx is at a stable version, i.e. `>= 1.0.0`. The latest valid release can be found on the [release page](https://github.com/eclipse-iceoryx/iceoryx/releases) of iceoryx.

The change history can be found in the [release notes section](https://iceoryx.io/latest/release-notes).
The change history can be found in the [release notes section](https://iceoryx.io/v2.0.0/release-notes).

### Public API Declaration [1.iii]

Expand Down Expand Up @@ -89,8 +89,8 @@ It is required to create/modify the Doxygen/design and user documentation within

### Feature Documentation [3.i]

The documentation of the main iceoryx features (sending, receiving data) can be found in the [overview](https://iceoryx.io/latest/getting-started/overview/) and [iceoryx examples](https://iceoryx.io/latest/getting-started/examples/) including a user-friendly description on how to use the iceoryx API.
The [configuration guide](https://iceoryx.io/latest/advanced/configuration-guide/) completes the documentation on how to use iceoryx.
The documentation of the main iceoryx features (sending, receiving data) can be found in the [overview](https://iceoryx.io/v2.0.0/getting-started/overview/) and [iceoryx examples](https://iceoryx.io/v2.0.0/getting-started/examples/) including a user-friendly description on how to use the iceoryx API.
The [configuration guide](https://iceoryx.io/v2.0.0/advanced/configuration-guide/) completes the documentation on how to use iceoryx.

Detailed technical documentation about iceoryx features can be found in the [design document](https://github.com/eclipse-iceoryx/iceoryx/tree/master/doc/design) section with descriptions and diagrams about internal mechanisms of iceoryx.

Expand Down Expand Up @@ -131,7 +131,7 @@ There is continuous effort to cover the corner cases in the usage of iceoryx in
### Public API Testing [4.ii]

All tests are executed for every major feature. New features must provide unit and integration tests that cover the code changes in the Pull-Request. The tests reside in separated folders for every package following a defined structure and naming convention.
The features are tested at module(unit) -integration and system test level. The [guidelines](https://iceoryx.io/latest/advanced/best-practice-for-testing/) for Contributors ensure a high quality of test development.
The features are tested at module(unit) -integration and system test level. The [guidelines](https://iceoryx.io/v2.0.0/advanced/best-practice-for-testing/) for Contributors ensure a high quality of test development.

### Coverage [4.iii]

Expand Down
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,13 @@

## Introduction

Great that you've made it to this little Eclipse project! Let's get you started by providing a quick background
Great that you've made it to this neat Eclipse project! Let's get you started by providing a quick background
tour, introducing the project scope and all you need for installation and a first running example.

So first off: What is iceoryx?

iceoryx is an inter-process-communication (IPC) middleware for various operating systems (currently we support Linux, MacOS, QNX and Windows 10).
iceoryx is an inter-process-communication (IPC) middleware for various operating systems (currently we support Linux,
macOS, QNX, FreeBSD and Windows 10).
It has its origins in the automotive industry, where large amounts of data have to be transferred between different processes
when it comes to driver assistance or automated driving systems. However, the efficient communication mechanisms can also be applied
to a wider range of use cases, e.g. in the field of robotics or game development.
Expand All @@ -29,17 +30,16 @@ to a wider range of use cases, e.g. in the field of robotics or game development

iceoryx uses a true zero-copy, shared memory approach that allows to transfer data from publishers to subscribers without a single copy.
This ensures data transmissions with constant latency, regardless of the size of the payload. For more information have a look at the
[1000 words iceoryx introduction](https://www.eclipse.org/community/eclipse_newsletter/2019/december/4.php)
[1000 words iceoryx introduction](https://www.eclipse.org/community/eclipse_newsletter/2019/december/4.php).

<p align="center">
<img src="https://user-images.githubusercontent.com/55156294/91751530-35af7f80-ebc5-11ea-9aed-eed590b229df.png" width="80%">
<img src="https://user-images.githubusercontent.com/56729607/157733625-e3e61617-2f72-46ba-b4f2-5a3973f9ad6f.png" width="80%">
</p>

You're right, middleware is a cluttered term and can somehow be all or nothing, so let's talk about the [goals and non-goals](doc/goals-non-goals.md) of iceoryx.
You're right, middleware is a cluttered term and can somehow be all or nothing. To get a better impression what
this means for iceoryx, please have a loot at our [goals and non-goals](doc/goals-non-goals.md).

It's all about the API?!

Don't get too frightened of the API when strolling through the codebase. Think of the untyped C++ and the C API as a
Don't get too frightened of the API when strolling through the examples. Think of the untyped C++ and the C API as a
"plumbing" one ("plumbing" as defined in Git, which means low-level). We're not using the "plumbing" APIs ourselves, but
instead the typed C++ API. The normal use case is that iceoryx is integrated as high-performance IPC transport layer in
a bigger framework with additional API layers.
Expand All @@ -65,7 +65,7 @@ In general unix platforms should work with iceoryx but we only test FreeBSD on o
|---|---|
| [ROS 2](https://github.com/ros2/rmw_iceoryx) | Eclipse iceoryx can be used inside the [Robot Operating System](https://www.ros.org/) with [rmw_iceoryx](https://github.com/ros2/rmw_iceoryx.git) |
| [eCAL](https://github.com/continental/ecal) | Open-source framework from [Continental AG](https://www.continental.com/) supporting pub/sub and various message protocols |
| [RTA-VRTE](https://www.etas.com/en/products/rta-vrte.php) | [Adaptive AUTOSAR](https://www.autosar.org/standards/adaptive-platform/) platform software framework for vehicle computer from [ETAS GmbH](https://www.etas.com) |
| [RTA-VRTE](https://www.etas.com/en/products/rta-vrte.php) | [AUTOSAR Adaptive Platform](https://www.autosar.org/standards/adaptive-platform/) software framework for vehicle computer from [ETAS GmbH](https://www.etas.com) |
| [Cyclone DDS](https://github.com/eclipse-cyclonedds/cyclonedds) | Performant and robust open-source DDS implementation maintained by [ADLINK Technology Inc.](https://www.adlinktech.com/) |
| [Apex.Middleware](https://www.apex.ai/apex-middleware) | Safe and certified middleware for autonomous mobility systems from [Apex.AI](https://www.apex.ai/) |
| [AVIN AP](https://www.avinsystems.com/products/autosar_ap_solutions/) | AUTOSAR Adaptive Platform Product from AVIN Systems |
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.91.0
2.0.0
4 changes: 2 additions & 2 deletions cmake/package/package.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@
#
# SPDX-License-Identifier: Apache-2.0
cmake_minimum_required(VERSION 3.16)
set(IOX_VERSION_STRING "1.91.0")
set(IOX_VERSION_STRING "2.0.0")

project(iceoryx_package VERSION ${IOX_VERSION_STRING})


set(CPACK_GENERATOR "DEB")
set(CPACK_PACKAGE_NAME "iceoryx-${iceoryx_package_VERSION}")
set(CPACK_PACKAGE_FILE_NAME "iceoryx_${iceoryx_package_VERSION}_${CMAKE_CXX_COMPILER_ID}-${CMAKE_CXX_COMPILER_VERSION}")
set(CPACK_PACKAGE_CONTACT "michael.poehnl@apex.ai")
set(CPACK_PACKAGE_CONTACT "iceoryx-oss-support@apex.ai")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libacl1-dev,libncurses5-dev")
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "iceoryx inter-process-communication (IPC) middleware")
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/eclipse-iceoryx/iceoryx")
Expand Down
2 changes: 1 addition & 1 deletion doc/aspice_swe3_4/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

cmake_minimum_required(VERSION 3.16)

set(IOX_VERSION_STRING "1.91.0")
set(IOX_VERSION_STRING "2.0.0")

project(iceoryx_doc VERSION ${IOX_VERSION_STRING})

Expand Down
7 changes: 4 additions & 3 deletions doc/goals-non-goals.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,18 @@
## Goals

* High-performance inter-process-communication for various operating systems
* Safe and flexible API
* Service discovery functionality with dynamic connections
* Data agnostic, there are no restrictions on payload data
* Data agnostic without restrictions on payload data
* Compatibility with AUTOSAR Adaptive and ROS 2 communication patterns
* Providing the building blocks for being able to build gateways to network protocols
* Providing the building blocks for being able to build gateways to network protocols
* Automotive-grade SW quality
* Modern C++

## Non-Goals

* Providing a data model and things like IDL or code generators
* Shrinking it down for being able to run on µControllers (e.g. with < 1MB of memory)
* Shrinking it down for being able to run on µ-Controllers (e.g. with < 1MB of memory)
* Full compliance with the DDS standard

## User personas
Expand Down
1 change: 0 additions & 1 deletion doc/website/.pages
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,3 @@ nav:
- FAQ.md
- advanced
- release-notes
- API-reference
2 changes: 1 addition & 1 deletion doc/website/FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ In this document are tips and hints documented which can help for troubleshootin

## Does iceoryx run in a docker environment

Yes. Take a look at the [icedocker example](https://github.com/eclipse-iceoryx/iceoryx/blob/master/iceoryx_examples/icedelivery)
Yes. Take a look at the [icedocker example](https://github.com/eclipse-iceoryx/iceoryx/blob/master/iceoryx_examples/icedocker)

## iox-roudi fails on startup

Expand Down
2 changes: 1 addition & 1 deletion doc/website/advanced/configuration-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ These options adjust the limits of Publisher and Subscriber Ports for resource m
| `IOX_MAX_CHUNKS_HELD_PER_SUBSCRIBER_SIMULTANEOUSLY` | Maximum number of chunks a subscriber can hold at a given time (subscriber history size)|
| `IOX_MAX_INTERFACE_NUMBER` | Maximum number of interface ports which are used for gateways |

Have a look at [iceoryx_posh_deployment.cmake](https://github.com/eclipse-iceoryx/iceoryx/blob/master/iceoryx_posh/cmake/iceoryx_posh_deployment.cmake) for the default values of the constants.
Have a look at [IceoryxPoshDeployment.cmake](https://github.com/eclipse-iceoryx/iceoryx/blob/master/iceoryx_posh/cmake/IceoryxPoshDeployment.cmake) for the default values of the constants.

!!! hint
With the default values set, the size of `iceoryx_mgmt` is ~64.5 MByte. You can reduce the size by decreasing the values from the table via the CMake options. The current values are printed in the CMake stage when building iceoryx.
Expand Down
Loading