diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index fe9d132540..95e3c44761 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -5,7 +5,7 @@ name: Build & Test # Triggers the workflow on push or pull request events but only for the master branch on: push: - branches: [ master ] + branches: [ master, release* ] pull_request: branches: [ master, release* ] diff --git a/.github/workflows/coverage_doc.yml b/.github/workflows/coverage_doc.yml index 63db6b74f0..e6cfe8c032 100644 --- a/.github/workflows/coverage_doc.yml +++ b/.github/workflows/coverage_doc.yml @@ -5,7 +5,7 @@ name: Test Coverage + Doxygen Documentation # Triggers the workflow on push or pull request events but only for the master branch on: push: - branches: [ master ] + branches: [ master, release* ] pull_request: branches: [ master, release* ] diff --git a/.github/workflows/experimental_build.yml b/.github/workflows/experimental_build.yml index 358a0b419e..54cfe8c5b7 100644 --- a/.github/workflows/experimental_build.yml +++ b/.github/workflows/experimental_build.yml @@ -6,7 +6,7 @@ name: Experimental build # events but only for the master branch on: push: - branches: [ master ] + branches: [ master, release* ] pull_request: branches: [ master, release* ] diff --git a/.github/workflows/integrationtest.yml b/.github/workflows/integrationtest.yml index 7d0843cce7..12f9a19ebc 100644 --- a/.github/workflows/integrationtest.yml +++ b/.github/workflows/integrationtest.yml @@ -6,7 +6,7 @@ name: Iceoryx Integrationtests # events but only for the master branch on: push: - branches: [ master ] + branches: [ master, release* ] pull_request: branches: [ master, release* ] diff --git a/.github/workflows/sanitize.yml b/.github/workflows/sanitize.yml index 691701dd93..60a7c6282c 100644 --- a/.github/workflows/sanitize.yml +++ b/.github/workflows/sanitize.yml @@ -5,7 +5,7 @@ name: Sanitize # Triggers the workflow on push or pull request events but only for the master branch on: push: - branches: [ master ] + branches: [ master, release* ] pull_request: branches: [ master, release* ] diff --git a/CHANGELOG.md b/CHANGELOG.md index f5abdc5cf1..2b528ba2a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Change Log +## [v1.0.1](https://github.com/eclipse-iceoryx/iceoryx/tree/v1.0.0) (2021-06-15) + +[Full Changelog](https://github.com/eclipse-iceoryx/iceoryx/compare/v1.0.0...v1.0.1) + +Description: +This is the first bugfix release for Eclipse iceoryx 1.0.0. We made minor changes in the documentation and added several patches. + +Compared to the feature content of the release 1.0.0, the following bug tickets were resolved: + +**Bugfixes:** + +- Github CI Integrationtests failing[\#825](https://github.com/eclipse-iceoryx/iceoryx/issues/825) +- Segmentation Fault in FileLock [\#808](https://github.com/eclipse-iceoryx/iceoryx/issues/808) +- Cpptoml cannot be build due to failing examples [\#791](https://github.com/eclipse-iceoryx/iceoryx/issues/791) +- Missing template parameter for user-header in typed C++ API [\#768](https://github.com/eclipse-iceoryx/iceoryx/issues/768) +- Fix issues with generating website documentation [\#743](https://github.com/eclipse-iceoryx/iceoryx/issues/743) +- Starting an application after RouDi was terminated floods the cmd line with error messages [\#654](https://github.com/eclipse-iceoryx/iceoryx/issues/654) + ## [v1.0.0](https://github.com/eclipse-iceoryx/iceoryx/tree/v1.0.0) (2021-04-15) [Full Changelog](https://github.com/eclipse-iceoryx/iceoryx/compare/v0.90.7...v1.0.0) diff --git a/VERSION b/VERSION index 3eefcb9dd5..7dea76edb3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.0 +1.0.1 diff --git a/cmake/package/package.cmake b/cmake/package/package.cmake index f23e61f17c..4ddb8b920b 100644 --- a/cmake/package/package.cmake +++ b/cmake/package/package.cmake @@ -14,7 +14,7 @@ # # SPDX-License-Identifier: Apache-2.0 cmake_minimum_required(VERSION 3.5) -set(IOX_VERSION_STRING "1.0.0") +set(IOX_VERSION_STRING "1.0.1") project(iceoryx_package VERSION ${IOX_VERSION_STRING}) diff --git a/doc/aspice_swe3_4/CMakeLists.txt b/doc/aspice_swe3_4/CMakeLists.txt index 6b4c8969fa..85c43dd59f 100644 --- a/doc/aspice_swe3_4/CMakeLists.txt +++ b/doc/aspice_swe3_4/CMakeLists.txt @@ -16,7 +16,7 @@ cmake_minimum_required(VERSION 3.10) -set(IOX_VERSION_STRING "1.0.0") +set(IOX_VERSION_STRING "1.0.1") #find_package(iceoryx_utils REQUIRED) diff --git a/iceoryx_binding_c/CMakeLists.txt b/iceoryx_binding_c/CMakeLists.txt index da3ea84180..a5b63df7a9 100644 --- a/iceoryx_binding_c/CMakeLists.txt +++ b/iceoryx_binding_c/CMakeLists.txt @@ -16,7 +16,7 @@ # SPDX-License-Identifier: Apache-2.0 cmake_minimum_required(VERSION 3.7) -set(IOX_VERSION_STRING "1.0.0") +set(IOX_VERSION_STRING "1.0.1") diff --git a/iceoryx_binding_c/package.xml b/iceoryx_binding_c/package.xml index d0356f0e4d..1e9810f4c3 100644 --- a/iceoryx_binding_c/package.xml +++ b/iceoryx_binding_c/package.xml @@ -2,7 +2,7 @@ iceoryx_binding_c - 1.0.0 + 1.0.1 Eclipse iceoryx inter-process-communication (IPC) middleware C-Language Binding Eclipse Foundation, Inc. Apache 2.0 diff --git a/iceoryx_binding_c/test/moduletests/test_publisher.cpp b/iceoryx_binding_c/test/moduletests/test_publisher.cpp index c4bf4d5dd5..db28439415 100644 --- a/iceoryx_binding_c/test/moduletests/test_publisher.cpp +++ b/iceoryx_binding_c/test/moduletests/test_publisher.cpp @@ -361,7 +361,14 @@ TEST(iox_pub_options_test, publisherOptionsInitializationCheckReturnsTrueAfterDe TEST(iox_pub_options_test, publisherOptionsInitializationCheckReturnsFalseWithoutDefaultInit) { iox_pub_options_t sut; +#if (defined(__GNUC__) && __GNUC__ >= 7 && !defined(__clang__)) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif EXPECT_FALSE(iox_pub_options_is_initialized(&sut)); +#if (defined(__GNUC__) && __GNUC__ >= 7 && !defined(__clang__)) +#pragma GCC diagnostic pop +#endif } TEST(iox_pub_options_test, publisherOptionInitializationWithNullptrDoesNotCrash) diff --git a/iceoryx_binding_c/test/moduletests/test_subscriber.cpp b/iceoryx_binding_c/test/moduletests/test_subscriber.cpp index 2f311b0cbd..a9b72e6d5c 100644 --- a/iceoryx_binding_c/test/moduletests/test_subscriber.cpp +++ b/iceoryx_binding_c/test/moduletests/test_subscriber.cpp @@ -433,7 +433,14 @@ TEST(iox_sub_options_test, subscriberOptionsInitializationCheckReturnsTrueAfterD TEST(iox_sub_options_test, subscriberOptionsInitializationCheckReturnsFalseWithoutDefaultInit) { iox_sub_options_t sut; +#if (defined(__GNUC__) && __GNUC__ >= 7 && !defined(__clang__)) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif EXPECT_FALSE(iox_sub_options_is_initialized(&sut)); +#if (defined(__GNUC__) && __GNUC__ >= 7 && !defined(__clang__)) +#pragma GCC diagnostic pop +#endif } TEST(iox_sub_options_test, subscriberOptionInitializationWithNullptrDoesNotCrash) diff --git a/iceoryx_dds/CMakeLists.txt b/iceoryx_dds/CMakeLists.txt index cad8ba5a22..0d5cc5c596 100644 --- a/iceoryx_dds/CMakeLists.txt +++ b/iceoryx_dds/CMakeLists.txt @@ -16,7 +16,7 @@ # SPDX-License-Identifier: Apache-2.0 cmake_minimum_required(VERSION 3.7) -set(IOX_VERSION_STRING "1.0.0") +set(IOX_VERSION_STRING "1.0.1") project(iceoryx_dds VERSION ${IOX_VERSION_STRING}) diff --git a/iceoryx_integrationtest/package.xml b/iceoryx_integrationtest/package.xml index bea3424ced..85e5bd481b 100644 --- a/iceoryx_integrationtest/package.xml +++ b/iceoryx_integrationtest/package.xml @@ -2,7 +2,7 @@ iceoryx_integrationtest - 1.0.0 + 1.0.1 iceoryx Software Integrationtest Eclipse Foundation, Inc. Apache 2.0 diff --git a/iceoryx_meta/CMakeLists.txt b/iceoryx_meta/CMakeLists.txt index 726b7db093..f06b7fd06c 100644 --- a/iceoryx_meta/CMakeLists.txt +++ b/iceoryx_meta/CMakeLists.txt @@ -25,6 +25,12 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/build_options.cmake) include(${CMAKE_CURRENT_SOURCE_DIR}/tests.cmake) include(${CMAKE_CURRENT_SOURCE_DIR}/install_help_and_config.cmake) +# set rpath for finding shared libraries outside of the build-tree +# see https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling#cmake-and-the-rpath +list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir) +if("${isSystemDir}" STREQUAL "-1") + set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") +endif() # ===== Core add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../iceoryx_utils ${CMAKE_BINARY_DIR}/utils) diff --git a/iceoryx_posh/CMakeLists.txt b/iceoryx_posh/CMakeLists.txt index 6df5429b64..def55da88b 100644 --- a/iceoryx_posh/CMakeLists.txt +++ b/iceoryx_posh/CMakeLists.txt @@ -16,7 +16,7 @@ # SPDX-License-Identifier: Apache-2.0 cmake_minimum_required(VERSION 3.5) -set(IOX_VERSION_STRING "1.0.0") +set(IOX_VERSION_STRING "1.0.1") project(iceoryx_posh VERSION ${IOX_VERSION_STRING}) diff --git a/iceoryx_posh/package.xml b/iceoryx_posh/package.xml index 58b69972aa..a34c4023bc 100644 --- a/iceoryx_posh/package.xml +++ b/iceoryx_posh/package.xml @@ -2,7 +2,7 @@ iceoryx_posh - 1.0.0 + 1.0.1 Eclipse iceoryx inter-process-communication (IPC) middleware Posix Shared Memory Library and middleware daemon (RouDi) Eclipse Foundation, Inc. Apache 2.0 diff --git a/iceoryx_posh/source/version/version_info.cpp b/iceoryx_posh/source/version/version_info.cpp index f4f005c250..52af4d61f6 100644 --- a/iceoryx_posh/source/version/version_info.cpp +++ b/iceoryx_posh/source/version/version_info.cpp @@ -1,4 +1,5 @@ // Copyright (c) 2020 by Robert Bosch GmbH. All rights reserved. +// Copyright (c) 2021 by Apex.AI Inc. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -50,8 +51,8 @@ VersionInfo::VersionInfo(const cxx::Serialization& serial) noexcept /// @brief Serialization of the VersionInfo. VersionInfo::operator cxx::Serialization() const noexcept { - SerializationString_t tmp_m_buildDateString(cxx::TruncateToCapacity, m_buildDateString.c_str()); - SerializationString_t tmp_commitIdString(cxx::TruncateToCapacity, m_commitIdString.c_str()); + SerializationString_t tmp_m_buildDateString = m_buildDateString; + SerializationString_t tmp_commitIdString = m_commitIdString; return cxx::Serialization::create( m_versionMajor, m_versionMinor, m_versionPatch, m_versionTweak, tmp_m_buildDateString, tmp_commitIdString); } diff --git a/iceoryx_utils/CMakeLists.txt b/iceoryx_utils/CMakeLists.txt index 403e82b080..b1f2b6adc2 100644 --- a/iceoryx_utils/CMakeLists.txt +++ b/iceoryx_utils/CMakeLists.txt @@ -17,7 +17,7 @@ cmake_minimum_required(VERSION 3.5) -set(IOX_VERSION_STRING "1.0.0") +set(IOX_VERSION_STRING "1.0.1") #include("${CMAKE_CURRENT_LIST_DIR}/cmake/IceoryxVersion.cmake") diff --git a/iceoryx_utils/include/iceoryx_utils/internal/cxx/string.inl b/iceoryx_utils/include/iceoryx_utils/internal/cxx/string.inl index 9bdf141a8b..a48e523b56 100755 --- a/iceoryx_utils/include/iceoryx_utils/internal/cxx/string.inl +++ b/iceoryx_utils/include/iceoryx_utils/internal/cxx/string.inl @@ -97,7 +97,7 @@ inline string::string(const char (&other)[N]) noexcept template inline string::string(TruncateToCapacity_t, const char* const other) noexcept - : string(TruncateToCapacity, other, strnlen(other, Capacity + 1U)) + : string(TruncateToCapacity, other, strnlen(other, Capacity)) { } @@ -143,7 +143,7 @@ inline string& string::operator=(const char (&rhs)[N]) noexc return *this; } - m_rawstringSize = strnlen(rhs, Capacity); + m_rawstringSize = std::min(Capacity, static_cast(strnlen(rhs, N))); std::memcpy(&(m_rawstring[0]), rhs, m_rawstringSize); m_rawstring[m_rawstringSize] = '\0'; @@ -465,14 +465,18 @@ inline typename std::enable_if::value || internal::IsCx string::unsafe_append(const T& t) noexcept { uint64_t tSize = internal::GetSize::call(t); - if (Capacity < (m_rawstringSize + tSize)) + const char* tData = internal::GetData::call(t); + uint64_t clampedTSize = std::min(Capacity - m_rawstringSize, tSize); + + if (tSize > clampedTSize) { std::cerr << "Appending failed because the sum of sizes exceeds this' capacity." << std::endl; return false; } - std::memcpy(&(m_rawstring[0]) + m_rawstringSize, internal::GetData::call(t), tSize); - m_rawstring[m_rawstringSize + tSize] = '\0'; - m_rawstringSize += tSize; + + std::memcpy(&(m_rawstring[m_rawstringSize]), tData, clampedTSize); + m_rawstringSize += clampedTSize; + m_rawstring[m_rawstringSize] = '\0'; return true; } @@ -484,20 +488,17 @@ inline { uint64_t tSize = internal::GetSize::call(t); const char* tData = internal::GetData::call(t); - if (Capacity < (m_rawstringSize + tSize)) + uint64_t clampedTSize = std::min(Capacity - m_rawstringSize, tSize); + + std::memcpy(&(m_rawstring[m_rawstringSize]), tData, clampedTSize); + if (tSize > clampedTSize) { std::cerr << "The last " << tSize - Capacity + m_rawstringSize << " characters of " << tData << " are truncated, because the length is larger than the capacity." << std::endl; - std::memcpy(&(m_rawstring[0]) + m_rawstringSize, tData, Capacity - m_rawstringSize); - m_rawstring[Capacity] = '\0'; - m_rawstringSize = Capacity; - } - else - { - std::memcpy(&(m_rawstring[0]) + m_rawstringSize, tData, tSize); - m_rawstring[m_rawstringSize + tSize] = '\0'; - m_rawstringSize += tSize; } + + m_rawstringSize += clampedTSize; + m_rawstring[m_rawstringSize] = '\0'; return *this; } diff --git a/iceoryx_utils/package.xml b/iceoryx_utils/package.xml index 636ec80bb8..8e165826ce 100644 --- a/iceoryx_utils/package.xml +++ b/iceoryx_utils/package.xml @@ -2,7 +2,7 @@ iceoryx_utils - 1.0.0 + 1.0.1 Eclipse iceoryx inter-process-communication (IPC) middleware basic building blocks Eclipse Foundation, Inc. Apache 2.0 diff --git a/iceoryx_utils/test/moduletests/test_cxx_string.cpp b/iceoryx_utils/test/moduletests/test_cxx_string.cpp index d1ec6b4ced..03a7dcbf39 100644 --- a/iceoryx_utils/test/moduletests/test_cxx_string.cpp +++ b/iceoryx_utils/test/moduletests/test_cxx_string.cpp @@ -1,4 +1,5 @@ // Copyright (c) 2019 by Robert Bosch GmbH. All rights reserved. +// Copyright (c) 2021 by Apex.AI Inc. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -251,7 +252,8 @@ TYPED_TEST(stringTyped_test, UnsafeCharToStringConvConstrWithSizeCapaResultsInSi { using MyString = typename TestFixture::stringType; constexpr auto STRINGCAP = MyString().capacity(); - char testChar[STRINGCAP]; + // increase capacity by one to circumvent gcc -Werror=array-bounds + char testChar[STRINGCAP + 1]; for (uint64_t i = 0U; i < STRINGCAP - 1U; i++) { testChar[i] = 'M'; diff --git a/tools/introspection/CMakeLists.txt b/tools/introspection/CMakeLists.txt index 5f32cba915..a319ae7df1 100644 --- a/tools/introspection/CMakeLists.txt +++ b/tools/introspection/CMakeLists.txt @@ -17,7 +17,7 @@ cmake_minimum_required(VERSION 3.5) -set(IOX_VERSION_STRING "1.0.0") +set(IOX_VERSION_STRING "1.0.1") project(iceoryx_introspection VERSION ${IOX_VERSION_STRING})