Skip to content

Commit

Permalink
Merge pull request #471 from GMLC-TDC/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
phlptp authored Oct 2, 2018
2 parents 12ac10c + 91076e1 commit 9f43602
Show file tree
Hide file tree
Showing 368 changed files with 6,941 additions and 3,597 deletions.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: Support of design question
name: Support or design question
about: Ask a detailed question or start a design discussion

---
Expand Down
24 changes: 24 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<!--
Please make sure you fill the following sections. If this PR fixes an issue, please tag the issue number in the first section.
e.g.
This fixes issue #123
-->

- [ ] I have reviewed the [Contributing Guidelines](../CONTRIBUTING.md)
- [ ] I agree to license my contributions under the same license as in this repository
- [ ] I have verified that the tests pass

# Description

<!-- Describe your Pull Request here -->

# Proposed changes

<!-- Describe the proposed changes of Pull Request here -->

-
-
-

6 changes: 6 additions & 0 deletions .github/SUPPORT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Support resources

We have an active [Gitter]((https://gitter.im/GMLC-TDC/HELICS-src) channel
Our GitHub pages provides a rich set of [documentation](https://gmlc-tdc.github.io/HELICS-src/index.html) including a set of introductory [examples](https://gmlc-tdc.github.io/HELICS-src/introduction/index.html), a [developers guide](https://gmlc-tdc.github.io/HELICS-src/developer-guide/index.html), complete doxygen-auto-produced [API documentation](https://gmlc-tdc.github.io/HELICS-src/doxygen/), and more.

We've created a series of roughly 10-minute mini-tutorial videos that discuss various design topics, concepts, and interfaces, including how to use the tool. They can be found on our [YouTube channel](https://www.youtube.com/channel/UCPa81c4BVXEYXt2EShTzbcg).
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -249,3 +249,5 @@ tags
# End of https://www.gitignore.io/api/c++,c,python
/build/Download/libzmq

### MATLAB ###
*.mex*
65 changes: 48 additions & 17 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ cache:
ccache: true
directories:
- dependencies
- build/libs

before_cache:
- ${TRAVIS_BUILD_DIR}/scripts/cleanup-cmake.sh
Expand Down Expand Up @@ -45,33 +46,27 @@ jobs:
fast_finish: true
allow_failures:
- os: osx
- name: "Clang 4 Thread Sanitizer"

include:
# XCode 6.4, OS X 10.10
- <<: *osx_base
name: "XCode 6.4 macOS 10.10"
env:
- MATRIX_EVAL="COMPILER=clang && BUILD_TYPE=Release && TRAVIS_XCODE_VERSION=64"
- HOMEBREW_NO_AUTO_UPDATE=1
- CI_BOOST_VERSION=1.58.0
osx_image: xcode6.4
# XCode 7.3, OS X 10.11
- <<: *osx_base
name: "XCode 7.3 macOS 10.11"
env:
- MATRIX_EVAL="COMPILER=clang && BUILD_TYPE=Release && TRAVIS_XCODE_VERSION=73"
- HOMEBREW_NO_AUTO_UPDATE=1
osx_image: xcode7.3

- <<: *osx_base
env:
- MATRIX_EVAL="COMPILER=clang && BUILD_TYPE=Release && TRAVIS_XCODE_VERSION=73"
- HOMEBREW_NO_AUTO_UPDATE=1
# Built without errors on my clone from one of the changes made
# Possibly local dependencies, or removing Linux-only commands fixed it
# XCode 8.3, OS X 10.12
#- env: COMPILER=clang++ BUILD_TYPE=Debug
# osx_image: xcode8.3

- <<: *linux_base
name: "GCC 6"
addons:
apt:
sources:
Expand All @@ -84,6 +79,7 @@ jobs:
- USE_MPI=mpich

- <<: *linux_base
name: "GCC 4.9 (No SWIG)"
addons:
apt:
sources:
Expand All @@ -96,6 +92,7 @@ jobs:
- CI_BOOST_VERSION=1.61.0

- <<: *linux_base
name: "Clang 3.6"
compiler: clang
addons:
apt:
Expand All @@ -112,20 +109,27 @@ jobs:
# ------------------------------------------------
# Jobs for daily valgrind and code coverage tests
# ------------------------------------------------
# Valgrind build
- <<: *daily_linux
name: "GCC 6 Valgrind"
env:
- MATRIX_EVAL="COMPILER=gcc && CC=gcc-6 && CXX=g++-6"
- USE_SWIG=true
- RUN_VALGRIND=true
- BUILD_TYPE=RelWithDebInfo
# Code coverage build
- <<: *daily_linux
name: "GCC 6 Code Coverage"
env:
- MATRIX_EVAL="COMPILER=gcc && CC=gcc-6 && CXX=g++-6"
- USE_SWIG=true
- USE_SWIG=true
- TEST_TYPE=Coverage
- BUILD_TYPE=Coverage
- GCOV_TOOL=gcov-6
- USE_MPI=mpich
# GCC 5 build
- <<: *daily_linux
name: "GCC 5"
addons:
apt:
sources:
Expand All @@ -134,7 +138,9 @@ jobs:
- g++-5
env:
- MATRIX_EVAL="COMPILER=gcc && CC='gcc-5' && CXX='g++-5'"
# Clang 5 build
- <<: *daily_linux
name: "Clang 5"
compiler: clang
addons:
apt:
Expand All @@ -149,8 +155,27 @@ jobs:
- CCACHE_CPP2=yes
- USE_SWIG=true
- CXX_STANDARD=17
# TSAN build
- <<: *daily_linux
name: "Clang 4 Thread Sanitizer"
compiler: clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-4.0
packages:
- libstdc++-6-dev
- clang-4.0
env:
- MATRIX_EVAL="COMPILER=clang && CC='clang-4.0' && CXX='clang++-4.0'"
- CCACHE_CPP2=yes
- RUN_TSAN=true
- USE_MPI=mpich
- JOB_OPTION_FLAGS="-C../scripts/tsan-cache.cmake"
# XCode 8gm, OS X 10.11
- <<: *daily_osx
name: "XCode 8gm macOS 10.11"
env:
- MATRIX_EVAL="COMPILER=clang && BUILD_TYPE=Release && TRAVIS_XCODE_VERSION=8gm"
- HOMEBREW_NO_AUTO_UPDATE=1
Expand All @@ -165,11 +190,13 @@ before_install:
- $CXX --version

install:
- export BOOST_USE_STATIC=true
- source scripts/install-ci-dependencies.sh

- OPTION_FLAGS_ARR=()
- OPTION_FLAGS_ARR+=("-DBUILD_C_SHARED_LIB=ON" "-DBUILD_CXX_SHARED_LIB=ON" "-DBUILD_PYTHON_INTERFACE=ON" "-DBUILD_JAVA_INTERFACE=ON" "-DEXAMPLES_WARNINGS_AS_ERROR=ON")
- OPTION_FLAGS_ARR+=("-DPYTHON_LIBRARY=${PYTHON_LIB_PATH}" "-DPYTHON_INCLUDE_DIR=${PYTHON_INCLUDE_PATH}")
- OPTION_FLAGS_ARR+=("-DZMQ_USE_STATIC_LIBRARY=ON -DUSE_BOOST_STATIC_LIBS=ON")

- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then OPTION_FLAGS_ARR+=("-DDISABLE_SYSTEM_CALL_TESTS=ON") ; fi

Expand All @@ -181,28 +208,32 @@ install:
- if [[ "$USE_MPI" ]]; then CC=${CI_DEPENDENCY_DIR}/mpi/bin/mpicc ; CXX=${CI_DEPENDENCY_DIR}/mpi/bin/mpic++ ; fi
- export HELICS_OPTION_FLAGS=${OPTION_FLAGS_ARR[@]}

- TEST_FLAGS_ARR=()
- if [[ "$RUN_VALGRIND" ]]; then TEST_FLAGS_ARR+=("--valgrind") ; fi
- TEST_FLAGS_ARR=("$TEST_TYPE")
- if [[ "$RUN_VALGRIND" ]]; then TEST_FLAGS_ARR+=("--valgrind" "--disable-unit-tests") ; fi
- if [[ "$RUN_CACHEGRIND" ]]; then TEST_FLAGS_ARR+=("--cachegrind") ; fi
- if [[ "$RUN_ASAN" ]]; then TEST_FLAGS_ARR+=("--asan") ; fi
- if [[ "$RUN_MSAN" ]]; then TEST_FLAGS_ARR+=("--msan") ; fi
- if [[ "$RUN_TSAN" ]]; then TEST_FLAGS_ARR+=("--tsan") ; fi
- if [[ "$RUN_UBSAN" ]]; then TEST_FLAGS_ARR+=("--ubsan") ; fi
- if [[ "$NO_CTEST" ]]; then TEST_FLAGS_ARR+=("--no-ctest") ; fi
- if [[ "$DISABLE_CI_TESTS" ]]; then TEST_FLAGS_ARR+=("--disable-unit-tests") ; fi
- export CI_TEST_FLAGS=${TEST_FLAGS_ARR[@]}

script:
- mkdir build && cd build
- HELICS_DEPENDENCY_FLAGS+="-DZeroMQ_INSTALL_PATH=${CI_DEPENDENCY_DIR}/zmq -DBOOST_INSTALL_PATH=${CI_DEPENDENCY_DIR}/boost"
- cmake .. ${HELICS_DEPENDENCY_FLAGS} ${HELICS_OPTION_FLAGS} -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- mkdir -p build && cd build
- HELICS_DEPENDENCY_FLAGS+="-DBOOST_INSTALL_PATH=${CI_DEPENDENCY_DIR}/boost"
- cmake .. ${JOB_OPTION_FLAGS} ${HELICS_DEPENDENCY_FLAGS} ${HELICS_OPTION_FLAGS} -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- make ${MAKEFLAGS}

# Setup counters for coverage
- if [[ "$BUILD_TYPE" == "Coverage" ]]; then pushd .. && scripts/lcov-helper.sh setup-counters && popd ; fi

- if [[ "TRAVIS_OS_NAME" == "osx" ]] ; then python ../scripts/fix_install_names.py ; fi
- if [[ "TRAVIS_OS_NAME" == "osx" ]] ; then make ${MAKEFLAGS} install ; fi
- ctest --output-on-failure --timeout 180 -L Continuous

# Run CI tests
- export CTEST_OPTIONS="--output-on-failure"
- ../scripts/run-ci-tests.sh ${CI_TEST_FLAGS}

# Gather coverage results
- if [[ "$BUILD_TYPE" == "Coverage" ]]; then pushd .. && scripts/lcov-helper.sh gather-coverage-info --gcov ${GCOV_TOOL} --codecov && popd ; fi
Expand Down
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,28 @@ All notable changes to this project after the 1.0.0 release will be documented i

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.3.1] - 2018-09-23
### Changed
- wait for Broker now uses a condition variable instead of sleep and checking repeatedly

### Fixed
- some race conditions in a few test cases and in user disconnection calls for brokers
- certain types of federates would occasionally hang during off nominal shutdown call sequences. Fixing this led to a substantial rewrite of the tcp comms

### Added
- federate, broker, and core destroy functions to the C api
- tcp cores have a --reuse-address flag to allow multiple brokers on the same port, mostly useful for the test suite to prevent spurious failures due to the OS not releasing tcp ports in a timely manner.

### Changed
- changed the logging levels to be error, warning, summary, connections, interfaces, timing, data, and trace to better match debugging levels used in development and make the purpose of each level clearer
- comm objects now can use the same logging system as the rest of HELICS


## [1.3.0] - 2018-07-31
### Changed
- some CMake options have been removed (BUILD_BROKER)
- major changes to the build of the CTest testing Framework
- moved most examples to new [HELICS-Examples](https://github.com/GMLC-TDC/HELICS-Examples) Repo

### Fixed
- potential segmentation fault in C shared library when calling free with invalid object.
Expand All @@ -30,6 +47,9 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- split API tests from system wide tests
- added options on MSVC to build with embedded system libraries and embedded debug info.

### Removed
- Most examples are now located in [HELICS-Examples](https://github.com/GMLC-TDC/HELICS-Examples)

## [1.2.1] - 2018-06-30
### Fixed
- bug in the conversion of named points from strings
Expand Down
Loading

0 comments on commit 9f43602

Please sign in to comment.