Skip to content

Commit 49ecab2

Browse files
committed
Prepare release 2.8
Change-Id: I98c36a7763387cd27df88713e68035dff222b187
1 parent 59090db commit 49ecab2

10 files changed

+234
-78
lines changed

.jenkins.d/01-deps.sh

+38-9
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,48 @@ source "$JDIR"/util.sh
77
set -x
88

99
if has OSX $NODE_LABELS; then
10+
FORMULAE=(boost pkg-config libxml2)
11+
if [[ -n $USE_OPENSSL_1_1 ]]; then
12+
FORMULAE+=([email protected])
13+
else
14+
FORMULAE+=(openssl)
15+
fi
16+
1017
brew update
11-
brew upgrade
12-
brew install boost pkg-config cryptopp openssl
13-
brew install libxml2
14-
brew link --force libxml2
18+
if [[ -n $TRAVIS ]]; then
19+
# Travis images come with a large number of brew packages
20+
# pre-installed, don't waste time upgrading all of them
21+
for FORMULA in "${FORMULAE[@]}"; do
22+
brew outdated $FORMULA || brew upgrade $FORMULA
23+
done
24+
else
25+
brew upgrade
26+
fi
27+
brew install "${FORMULAE[@]}"
1528
brew cleanup
1629
fi
1730

1831
if has Ubuntu $NODE_LABELS; then
1932
sudo apt-get -qq update
20-
sudo apt-get -qq install build-essential pkg-config libboost-all-dev \
21-
libcrypto++-dev libsqlite3-dev libssl-dev
22-
sudo apt-get install -qq -y python-setuptools python-dev python-pygraphviz python-kiwi
23-
# sudo apt-get install -qq -y python-pygoocanvas python-gnome2
24-
# sudo apt-get install -qq -y python-rsvg ipython
33+
sudo apt-get -qy install build-essential pkg-config libboost-all-dev \
34+
libsqlite3-dev libssl-dev
35+
36+
if [[ $JOB_NAME == *"code-coverage" ]]; then
37+
sudo apt-get -qy install gcovr lcov libgd-perl
38+
fi
39+
fi
40+
41+
if has Ubuntu-16.04 $NODE_LABELS; then
42+
sudo apt-get -qy install python-setuptools python-dev python-pygraphviz castxml \
43+
python-kiwi python-gnome2 ipython libcairo2-dev python3-gi \
44+
libgirepository1.0-dev python-gi python-gi-cairo \
45+
gir1.2-gtk-3.0 gir1.2-goocanvas-2.0 python-pip
46+
sudo pip install pygraphviz pycairo PyGObject pygccxml
47+
elif has Ubuntu $NODE_LABELS; then
48+
sudo apt-get -qy install build-essential libsqlite3-dev libboost-all-dev libssl-dev \
49+
git python3-setuptools castxml \
50+
gir1.2-goocanvas-2.0 gir1.2-gtk-3.0 libgirepository1.0-dev \
51+
python3-dev python3-gi python3-gi-cairo \
52+
python3-pip python3-pygraphviz python3-pygccxml
53+
sudo pip3 install kiwi
2554
fi

.jenkins.d/10-build.sh

+8-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
#!/usr/bin/env bash
2-
set -x
32
set -e
43

54
JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
65
source "$JDIR"/util.sh
76

7+
set -x
8+
89
pushd ns-3 >/dev/null
910

1011
git submodule update --init
@@ -13,15 +14,18 @@ git submodule update --init
1314
sudo rm -Rf build/ .waf-1* .waf3-1*
1415
find . -name '*.pyc' | sudo xargs rm -f
1516

16-
# Configure/build in debug mode
1717
if has OSX $NODE_LABELS; then
1818
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/opt/libxml2/lib/pkgconfig"
19+
if [[ -n $USE_OPENSSL_1_1 ]]; then
20+
OPENSSL="--with-openssl=/usr/local/opt/[email protected]"
21+
fi
1922
fi
20-
./waf -j${WAF_JOBS:-1} configure -d debug --enable-examples --enable-tests $EXTRA_FLAGS
23+
24+
./waf -j${WAF_JOBS:-1} configure -d debug --enable-examples --enable-tests $OPENSSL
2125
./waf -j${WAF_JOBS:-1} build
2226

2327
# Install
24-
sudo ./waf -j${WAF_JOBS:-1} install
28+
sudo_preserve_env PATH -- ./waf -j${WAF_JOBS:-1} install
2529

2630
if has Linux $NODE_LABELS; then
2731
sudo ldconfig

.jenkins.d/20-tests.sh

+7-28
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,19 @@
11
#!/usr/bin/env bash
2-
set -x
2+
set -e
33

44
JDIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
55
source "$JDIR"/util.sh
66

7-
set -e
7+
set -x
88

99
pushd ns-3 >/dev/null
1010

11-
BOOST_VERSION=$(python -c "import sys; sys.path.append('build/c4che'); import _cache; v = _cache.BOOST_VERSION.split('_'); print int(v[0]) * 100000 + int(v[1]) * 100;")
12-
13-
ut_log_args() {
14-
if (( BOOST_VERSION >= 106200 )); then
15-
echo --logger=HRF,test_suite,stdout:XML,all,build/xunit-${1:-report}.xml
16-
else
17-
if [[ -n $XUNIT ]]; then
18-
echo --log_level=all $( (( BOOST_VERSION >= 106000 )) && echo -- ) \
19-
--log_format2=XML --log_sink2=build/xunit-${1:-report}.xml
20-
else
21-
echo --log_level=test_suite
22-
fi
23-
fi
24-
}
25-
26-
ASAN_OPTIONS="color=always"
27-
ASAN_OPTIONS+=":detect_leaks=false"
28-
ASAN_OPTIONS+=":detect_stack_use_after_return=true"
29-
ASAN_OPTIONS+=":check_initialization_order=true"
30-
ASAN_OPTIONS+=":strict_init_order=true"
31-
ASAN_OPTIONS+=":detect_invalid_pointer_pairs=1"
32-
ASAN_OPTIONS+=":detect_container_overflow=false"
33-
ASAN_OPTIONS+=":strict_string_checks=true"
34-
ASAN_OPTIONS+=":strip_path_prefix=${PWD}/"
35-
export ASAN_OPTIONS
11+
export BOOST_TEST_BUILD_INFO=1
12+
export BOOST_TEST_COLOR_OUTPUT=1
13+
export BOOST_TEST_DETECT_MEMORY_LEAK=0
14+
export BOOST_TEST_LOGGER=HRF,test_suite,stdout:XML,all,build/xunit-log.xml
3615

3716
# Run unit tests
38-
./waf --run "ndnSIM-unit-tests $(ut_log_args)"
17+
./waf --run "ndnSIM-unit-tests"
3918

4019
popd >/dev/null

.jenkins.d/README.md

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
CONTINUOUS INTEGRATION SCRIPTS
2+
==============================
3+
4+
Environment Variables Used in Build Scripts
5+
-------------------------------------------
6+
7+
- `NODE_LABELS`: the variable defines a list of OS properties. The set values are used by the
8+
build scripts to select proper behavior for different OS.
9+
10+
The list should include at least `[OS_TYPE]`, `[DISTRO_TYPE]`, and `[DISTRO_VERSION]`.
11+
12+
Possible values for Linux:
13+
14+
* `[OS_TYPE]`: `Linux`
15+
* `[DISTRO_TYPE]`: `Ubuntu`
16+
* `[DISTRO_VERSION]`: `Ubuntu-16.04`, `Ubuntu-18.04`
17+
18+
Possible values for macOS:
19+
20+
* `[OS_TYPE]`: `OSX`
21+
* `[DISTRO_TYPE]`: `OSX` (can be absent)
22+
* `[DISTRO_VERSION]`: `OSX-10.12`, `OSX-10.13`, `OSX-10.14`
23+
24+
- `JOB_NAME`: optional variable to define type of the job. Depending on the defined job type,
25+
the build scripts can perform different tasks.
26+
27+
Possible values:
28+
29+
* empty: default build process
30+
* `code-coverage` (Ubuntu Linux is assumed): debug build with tests and code coverage analysis
31+
* `limited-build`: only a single debug build with tests
32+
33+
- `WAF_JOBS`: number of parallel build jobs used by waf, defaults to 1.

.jenkins.d/util.sh

+19
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,22 @@ has() {
1616
set ${saved_xtrace}
1717
return ${ret}
1818
}
19+
20+
sudo_preserve_env() {
21+
local saved_xtrace
22+
[[ $- == *x* ]] && saved_xtrace=-x || saved_xtrace=+x
23+
set +x
24+
25+
local vars=()
26+
while [[ $# -gt 0 ]]; do
27+
local arg=$1
28+
shift
29+
case ${arg} in
30+
--) break ;;
31+
*) vars+=("${arg}=${!arg}") ;;
32+
esac
33+
done
34+
35+
set ${saved_xtrace}
36+
sudo env "${vars[@]}" "$@"
37+
}

.travis.yml

+84-19
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,89 @@
1-
sudo: required
2-
language: generic
1+
version: ~> 1.0
2+
language: cpp
3+
os: linux
4+
dist: bionic
5+
arch: amd64
6+
37
env:
4-
global:
5-
- WAF_JOBS=2
6-
matrix:
8+
- COMPILER=g++-7
9+
- COMPILER=g++-9
10+
- COMPILER=clang++-6.0
11+
- COMPILER=clang++-9
12+
13+
jobs:
714
include:
8-
- os: linux
9-
dist: xenial
10-
env:
11-
- CXX=g++
12-
- NODE_LABELS="Linux Ubuntu Ubuntu-16.04"
15+
# Linux
16+
- env: COMPILER=g++-8
17+
- env: COMPILER=clang++-5.0
18+
- env: COMPILER=clang++-7
19+
- env: COMPILER=clang++-8
20+
- env: COMPILER=clang++-10
21+
- env: COMPILER=clang++-11
22+
23+
# macOS
1324
- os: osx
14-
osx_image: xcode10.1
15-
env:
16-
- CXX=clang++
17-
- xcode10.1
18-
- NODE_LABELS="OSX OSX_VERSION=10.13"
19-
notifications:
20-
email:
21-
on_success: always
22-
on_failure: always
25+
osx_image: xcode11.4
26+
env: # default compiler
27+
28+
allow_failures:
29+
- env: COMPILER=clang++-11
30+
31+
fast_finish: true
32+
33+
before_install:
34+
- |
35+
: Adding apt repositories
36+
case ${COMPILER} in
37+
g++-9)
38+
# https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test/+packages
39+
travis_retry sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
40+
travis_retry sudo apt-get -qq update
41+
;;
42+
clang++-1?)
43+
# https://apt.llvm.org/
44+
LLVM_REPO=${COMPILER/clang++/llvm-toolchain-${TRAVIS_DIST}}
45+
travis_retry wget -nv -O - "https://apt.llvm.org/llvm-snapshot.gpg.key" | sudo apt-key add -
46+
travis_retry sudo add-apt-repository -y "deb http://apt.llvm.org/${TRAVIS_DIST}/ ${LLVM_REPO%-11} main"
47+
travis_retry sudo apt-get -qq update
48+
;;
49+
esac
50+
51+
install:
52+
- |
53+
: Installing C++ compiler
54+
if [[ -n ${COMPILER} ]]; then
55+
travis_retry sudo apt-get -qy install ${COMPILER/clang++/clang}
56+
fi
57+
58+
before_script:
59+
- |
60+
: Setting environment variables
61+
if [[ -n ${COMPILER} ]]; then
62+
export CXX=${COMPILER}
63+
fi
64+
case ${TRAVIS_OS_NAME} in
65+
linux) export NODE_LABELS="Linux Ubuntu Ubuntu-18.04" ;;
66+
osx) export NODE_LABELS="OSX OSX-$(sw_vers -productVersion | cut -d . -f -2)" ;;
67+
esac
68+
export JOB_NAME=limited-build
69+
export WAF_JOBS=2
70+
- |
71+
: Enabling workarounds
72+
case "${TRAVIS_CPU_ARCH},${COMPILER}" in
73+
arm64,g++*)
74+
# Avoid exceeding the per-job time limit
75+
export DISABLE_HEADERS_CHECK=yes
76+
;;
77+
ppc64le,g++-7)
78+
# AddressSanitizer does not seem to be working
79+
export DISABLE_ASAN=yes
80+
;;
81+
*,clang++-8)
82+
# https://bugs.llvm.org/show_bug.cgi?id=40808
83+
export DISABLE_ASAN=yes
84+
;;
85+
esac
86+
- ${CXX:-c++} --version
87+
2388
script:
2489
- ./.jenkins

VERSION

-1
This file was deleted.

docs/source/RELEASE_NOTES.rst

+26
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,32 @@ This file contains ndnSIM release notes.
55

66
All of the ndnSIM documentation is accessible from the `ndnSIM website <https://ndnsim.net>`__.
77

8+
Release 2.8
9+
-----------
10+
11+
- The submodules of NFD and ndn-cxx have been upgraded to version 0.7.0.
12+
13+
`NFD 0.7.0 release notes <https://named-data.net/doc/NFD/0.7.0/RELEASE_NOTES.html>`__
14+
15+
`ndn-cxx 0.7.0 release notes <https://named-data.net/doc/ndn-cxx/0.7.0/RELEASE_NOTES.html>`__
16+
17+
.. note::
18+
In order to retrieve the marked versions of ndn-cxx and NFD, use
19+
``--recursive`` option to the git clone command or run ``git
20+
submodule update --init`` after clone, pull, or merge.
21+
22+
- With the underlying NFD/ndn-cxx upgrade, ndnSIM now operates with NDN Packet format version 0.3.
23+
24+
- Base NS-3 was rebased to version 3.30.1
25+
26+
- Add Loop-Free In-port Dependent (LFID) route calculation that provides a set of
27+
loop-free paths (:issue:`4985`)
28+
29+
- Fix wrong behaviour of default Size in ConsumerWindow
30+
31+
- **Remove** legacy content store implementation. Use content store replacement/placement
32+
policies implemented using NFD routines.
33+
834
Release 2.7
935
-----------
1036

docs/source/_templates/indexcontent.html

+3-2
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,9 @@ <h2>ndnSIM tutorial</h2>
5959
<td width="50%" valign="top">
6060
<h2>ndnSIM Versions</h2>
6161
<div class="tile">
62-
<p class="biglink"><a class="biglink" href="#">ndnSIM 2.7</a><br/>
63-
<span class="linkdescr">latest version</span></p>
62+
<p class="biglink"><a class="biglink" href="#">ndnSIM 2.8</a><br/>
63+
<span class="linkdescr">the latest version</span></p>
64+
<p class="biglink"><a class="biglink" href="https://ndnsim.net/2.7/">ndnSIM 2.7</a><br/>
6465
<p class="biglink"><a class="biglink" href="https://ndnsim.net/2.6/">ndnSIM 2.6</a><br/>
6566
<p class="biglink"><a class="biglink" href="https://ndnsim.net/2.5/">ndnSIM 2.5</a><br/>
6667
<p class="biglink"><a class="biglink" href="https://ndnsim.net/2.4/">ndnSIM 2.4</a><br/>

0 commit comments

Comments
 (0)