Skip to content

Commit

Permalink
Merge branch 'release-3.4'
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeff authored and Jeff committed Dec 11, 2019
2 parents c77de4c + fa1a497 commit dd27f93
Show file tree
Hide file tree
Showing 876 changed files with 77,828 additions and 47,380 deletions.
9 changes: 9 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
BasedOnStyle: Mozilla

# Reflowing comments interfers with .rst identation
ReflowComments: false
AlwaysBreakAfterReturnType: None
AlwaysBreakAfterDefinitionReturnType: None
IndentPPDirectives: AfterHash
...
10 changes: 1 addition & 9 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,4 @@ doc/src/examples/makefile/main
*.pbxproj
*.DS_Store
*.pyc
third_party/googletest
!third_party/googletest/CMakeLists.txt
!third_party/googletest/README.md
!third_party/googletest/googletest/LICENSE
!third_party/googletest/googletest/README.md
!third_party/googletest/googletest/CMakeLists.txt
!third_party/googletest/googletest/cmake
!third_party/googletest/googletest/include
!third_party/googletest/googletest/src
/build*
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "third_party/googletest"]
path = third_party/googletest
url = https://github.com/google/googletest.git
206 changes: 140 additions & 66 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ language: cpp
env:
global:
- PATH=$HOME/cache/bin/:$PATH
- BUILD_DIR=/tmp/cppmicroservices_builds
- BUILD_CONFIGURATION=0
- secure: "g2dT1rLVDXAR7uFkhgKlm7rUqCPHwl+o4CFSqEo5w9H/M5xuuQLP597J8qwhgkWutJABM4G4zLF9yzb5rTbUH1BSdGTzmdUkvJGvLOFq09xwLQP5PAKlq6s1dpVr7J9Ciy49cEVDD2leaikMf9zK3ty9Fv5F2mL3Itd6a/U5M5o="

# We do not test all build configurations with all compiler / platform
Expand All @@ -13,65 +15,96 @@ env:

matrix:
include:
- os: linux
addons: &valgrind
apt:
packages: valgrind
compiler: gcc
env: BUILD_CONFIGURATION=0 WITH_COVERAGE=1 BUILD_DIR="/tmp/cppmicroservices_builds"
- os: linux
addons: *valgrind
compiler: gcc
env: BUILD_CONFIGURATION=1 WITH_COVERAGE=1 BUILD_DIR="/tmp/cppmicroservices_builds"
- os: linux
addons: *valgrind
compiler: gcc
env: BUILD_CONFIGURATION=2 WITH_COVERAGE=1 BUILD_DIR="/tmp/cppmicroservices_builds"
- os: linux
addons: *valgrind
compiler: gcc
env: BUILD_CONFIGURATION=3 WITH_COVERAGE=1 BUILD_DIR="/tmp/cppmicroservices_builds"
# Run a build on Ubuntu 12.04 with gcc 4.6, using a shared multi-threaded configuration.
- os: linux
dist: precise
sudo: required
addons: *valgrind
compiler: gcc
env: BUILD_CONFIGURATION=0 BUILD_DIR="/tmp/cppmicroservices_builds_precise"
# minimum supported compiler on OS X
- os: osx
osx_image: xcode6.4
compiler: clang
env: BUILD_CONFIGURATION=0 MACOSX_DEPLOYMENT_TARGET=10.10
- os: osx
osx_image: xcode6.4
compiler: clang
env: BUILD_CONFIGURATION=1 MACOSX_DEPLOYMENT_TARGET=10.10
#- os: osx
# osx_image: xcode6.4
# compiler: clang
# env: BUILD_CONFIGURATION=2 MACOSX_DEPLOYMENT_TARGET=10.10
#- os: osx
# osx_image: xcode6.4
# compiler: clang
# env: BUILD_CONFIGURATION=3 MACOSX_DEPLOYMENT_TARGET=10.10
# latest compiler on OS X
- os: osx
osx_image: xcode8.2
compiler: clang
env: BUILD_CONFIGURATION=0 MACOSX_DEPLOYMENT_TARGET=10.12 WITH_COVERAGE=1 BUILD_DIR="/tmp/cppmicroservices_builds"
- os: osx
osx_image: xcode8.2
compiler: clang
env: BUILD_CONFIGURATION=1 MACOSX_DEPLOYMENT_TARGET=10.12 WITH_COVERAGE=1 BUILD_DIR="/tmp/cppmicroservices_builds"
- os: osx
osx_image: xcode8.2
compiler: clang
env: BUILD_CONFIGURATION=2 MACOSX_DEPLOYMENT_TARGET=10.12 WITH_COVERAGE=1 BUILD_DIR="/tmp/cppmicroservices_builds"
- os: osx
osx_image: xcode8.2
compiler: clang
env: BUILD_CONFIGURATION=3 MACOSX_DEPLOYMENT_TARGET=10.12 WITH_COVERAGE=1 BUILD_DIR="/tmp/cppmicroservices_builds"

# Test our minimum GCC version, which is gcc 5.4 on Ubuntu Trusty
- os: linux
addons: { apt: { packages: ["valgrind", "gcc-5", "g++-5"], sources: ["ubuntu-toolchain-r-test"] } }
env: MY_CC=gcc-5 MY_CXX=g++-5
before_install:
# Install a newer version of valgrind
- ./install_valgrind.sh

# Test our minimum Clang version, which is clang 3.5 on Ubuntu Trusty
- os: linux
dist: trusty
compiler: clang
addons: { apt: { packages: ["valgrind", "clang-3.5", "libc++-dev", "libc++abi-dev", "g++-4.9"], sources: ["ubuntu-toolchain-r-test", llvm-toolchain-trusty-3.5] } }
# Travis puts /usr/local/clang-5.0.0/bin in front of the path, so we have to "fix" that
env: MY_CC=clang-3.5 MY_CXX=clang++-3.5 PATH=/usr/local/bin:/usr/bin:$PATH
before_install:
# Install a newer version of valgrind
- ./install_valgrind.sh

# Test one build configuration with the latest available Clang
- os: linux
dist: xenial
compiler: clang
addons: { apt: { packages: ["valgrind", "libc++-dev", "libc++abi-dev"], sources: ["ubuntu-toolchain-r-test"] } }
env: MY_CC=clang MY_CXX=clang++ PATH=/usr/bin:$PATH
before_install:
# Install a newer version of valgrind
- ./install_valgrind.sh

# Test all build configuration with the latest available GCC
- os: linux
addons: &gcc8-valgrind { apt: { packages: ["valgrind", "gcc-8", "g++-8"], sources: ["ubuntu-toolchain-r-test"] } }
env: MY_CC=gcc-8 MY_CXX=g++-8 WITH_COVERAGE=1
before_install:
# Install a newer version of valgrind
- ./install_valgrind.sh

- os: linux
addons: *gcc8-valgrind
env: MY_CC=gcc-8 MY_CXX=g++-8 BUILD_CONFIGURATION=1 WITH_COVERAGE=1
before_install:
# Install a newer version of valgrind
- ./install_valgrind.sh

- os: linux
addons: *gcc8-valgrind
env: MY_CC=gcc-8 MY_CXX=g++-8 BUILD_CONFIGURATION=2 WITH_COVERAGE=1
before_install:
# Install a newer version of valgrind
- ./install_valgrind.sh

- os: linux
addons: *gcc8-valgrind
env: MY_CC=gcc-8 MY_CXX=g++-8 BUILD_CONFIGURATION=3 WITH_COVERAGE=1
before_install:
# Install a newer version of valgrind
- ./install_valgrind.sh

# minimum supported compiler on OS X
- os: osx
osx_image: xcode7.3
compiler: clang
env: MACOSX_DEPLOYMENT_TARGET=10.11

- os: osx
osx_image: xcode7.3
compiler: clang
env: BUILD_CONFIGURATION=1 MACOSX_DEPLOYMENT_TARGET=10.11

# latest compiler on OS X
- os: osx
osx_image: xcode10.3
compiler: clang
env: BUILD_CONFIGURATION=0 MACOSX_DEPLOYMENT_TARGET=10.14 WITH_COVERAGE=1

- os: osx
osx_image: xcode10.3
compiler: clang
env: BUILD_CONFIGURATION=1 MACOSX_DEPLOYMENT_TARGET=10.14 WITH_COVERAGE=1

- os: osx
osx_image: xcode10.3
compiler: clang
env: BUILD_CONFIGURATION=2 MACOSX_DEPLOYMENT_TARGET=10.14 WITH_COVERAGE=1

- os: osx
osx_image: xcode10.3
compiler: clang
env: BUILD_CONFIGURATION=3 MACOSX_DEPLOYMENT_TARGET=10.14 WITH_COVERAGE=1

cache:
directories:
Expand All @@ -87,20 +120,61 @@ addons:
name: CppMicroServices/CppMicroServices
description: "Build submitted via Travis CI"
notification_email: sascha.zelzer@gmail.com
build_command_prepend: "mkdir us-cov; cd us-cov; cmake -DCMAKE_BUILD_TYPE:STRING=Release -DUS_BUILD_EXAMPLES:BOOL=ON -DUS_BUILD_TESTING:BOOL=ON -DUS_BUILD_SHARED_LIBS:BOOL=ON ../"
build_command_prepend: "mkdir us-cov; cd us-cov; cmake -DCMAKE_BUILD_TYPE:STRING=Release -DUS_BUILD_EXAMPLES:BOOL=ON -DUS_BUILD_TESTING:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=ON ../"
build_command: "make -j 4"
branch_pattern: coverity_scan


before_install:
- test $TRAVIS_BRANCH != coverity_scan -o ${TRAVIS_JOB_NUMBER##*.} = 1 || exit 0
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then bash install_cmake.sh ; fi


# the install step will take care of deploying a newer cmake version
install:
# Set up some variables
- if [[ "$TRAVIS_OS_NAME" == "linux" ]];
then
CMAKE_OS="Linux";
else
CMAKE_OS="Darwin";
fi
- CMAKE_VER_DIR="v3.13"
- CMAKE_VER="3.13.2"
- CMAKE_DIR="cmake-${CMAKE_VER}-${CMAKE_OS}-x86_64"
- CMAKE_FILE="${CMAKE_DIR}.tar.gz"
- CMAKE_SHA_FILE="cmake-${CMAKE_VER}-SHA-256.txt"
- CMAKE_INSTALL_DIR="${TRAVIS_BUILD_DIR}/deps"
- echo "CMAKE_OS=${CMAKE_OS}"
- echo "CMAKE_VER_DIR=${CMAKE_VER_DIR}"
- echo "CMAKE_VER=${CMAKE_VER}"
- echo "CMAKE_DIR=${CMAKE_DIR}"
- echo "CMAKE_FILE=${CMAKE_FILE}"
- echo "CMAKE_SHA_FILE=${CMAKE_SHA_FILE}"
- echo "CMAKE_INSTALL_DIR=${CMAKE_INSTALL_DIR}"
# Create a directory for the CMake binaries
- mkdir ${CMAKE_INSTALL_DIR} && pushd ${CMAKE_INSTALL_DIR}
# we use curl to fetch the cmake binaries
- travis_retry curl -O "https://cmake.org/files/${CMAKE_VER_DIR}/${CMAKE_FILE}"
- travis_retry curl -O "https://cmake.org/files/${CMAKE_VER_DIR}/${CMAKE_SHA_FILE}"
# Check to make sure we got what we expected
- grep "${CMAKE_FILE}" ${CMAKE_SHA_FILE} | shasum -c -s
# Unpack the cmake distribution
- tar -xf "${CMAKE_FILE}"
- if [[ "$TRAVIS_OS_NAME" == "linux" ]];
then
mv "${CMAKE_DIR}" cmake-install;
else
mv "${CMAKE_DIR}/CMake.app/Contents" cmake-install;
fi
# add both the top-level directory and the bin directory from the archive
# to the system PATH. By adding it to the front of the path we hide the
# preinstalled CMake with our own.
- PATH=${CMAKE_INSTALL_DIR}/cmake-install:${CMAKE_INSTALL_DIR}/cmake-install/bin:$PATH
- echo "PATH=${PATH}"
# don't forget to switch back to the main build directory once you are done
- popd
- export CC=$MY_CC CXX=$MY_CXX
- cmake --version

script:
- test $TRAVIS_BRANCH != coverity_scan || exit 0
- if [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then ctest -VV -S ./cmake/usCTestScript_travis.cmake ; fi

after_success:
- bash <(curl -s https://codecov.io/bash) -X gcov -s "/tmp/cppmicroservices_builds"

53 changes: 53 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,59 @@ All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog <http://keepachangelog.com/>`_
and this project adheres to `Semantic Versioning <http://semver.org/>`_.


`v3.4.0 <https://github.com/cppmicroservices/cppmicroservices/tree/v3.4.0>`_ (2019-12-10)
---------------------------------------------------------------------------------------------------------

`Full Changelog <https://github.com/cppmicroservices/cppmicroservices/compare/v3.3.0...v3.4.0>`_

Added
-----
- `Declarative Services <https://github.com/CppMicroServices/rfcs/blob/master/text/0003-declarative-services.md>`_
- `Expose checksum from zip archive. <https://github.com/CppMicroServices/CppMicroServices/issues/307>`_
- Framework property (org.cppmicroservices.library.load.options) to control library loading options on macOS and Linux.
- `Add gmock <https://github.com/CppMicroServices/CppMicroServices/issues/327>`_

Changed
-------

Removed
-------

Deprecated
----------
- The following Bundle method functions:

- ``GetProperties``
- ``GetProperty``
- ``GetPropertyKeys``

Fixed
-----
- `static ServiceTracker object crashes in ServiceTracker::Close() <https://github.com/CppMicroServices/CppMicroServices/issues/281>`_
- `Does the ServiceTracker deleter close the service? <https://github.com/CppMicroServices/CppMicroServices/issues/267>`_
- `Optimize peak heap allocation when installing bundles <https://github.com/CppMicroServices/CppMicroServices/issues/297>`_
- `Change GetHeaders API to return a const ref <https://github.com/CppMicroServices/CppMicroServices/issues/322>`_
- `How do service consumers know whether to use BundleContext::GetService or ServiceObjects? <https://github.com/CppMicroServices/CppMicroServices/issues/325>`_
- `Add a testpoint to validate the return value of ServiceFactory::GetService <https://github.com/CppMicroServices/CppMicroServices/issues/328>`_
- `Invalid Bundle causes crash on method invocation <https://github.com/CppMicroServices/CppMicroServices/issues/263>`_
- `Use correct framework event severity and exception types for service factory errors <https://github.com/CppMicroServices/CppMicroServices/issues/217>`_
- `Raspberry Pi arm build failing <https://github.com/CppMicroServices/CppMicroServices/issues/388>`_
- `Service ctor exception crash <https://github.com/CppMicroServices/CppMicroServices/pull/409>`_
- `Update library loading error messages <https://github.com/CppMicroServices/CppMicroServices/pull/399>`_
- `Unknown Cmake Command "add_compile_definitions" <https://github.com/CppMicroServices/CppMicroServices/issues/412>`_
- `GetChildResources() should not have a dependency on GetChildren() <https://github.com/CppMicroServices/CppMicroServices/issues/397>`_
- Improved code coverage to 90%
- Various performance improvements to:

* Reduce the number of open file handles
* Reduce peak heap memory utilization
* AtCompoundKey
* ServiceTracker
* Service look up
* Bundle installs


`v3.3.0 <https://github.com/cppmicroservices/cppmicroservices/tree/v3.3.0>`_ (2018-02-20)
-----------------------------------------------------------------------------------------

Expand Down

0 comments on commit dd27f93

Please sign in to comment.