diff --git a/.travis.yml b/.travis.yml index 2e54ffb1b..bc4d5462f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -92,11 +92,11 @@ script: - export SCONSFLAGS='--debug=time' - configure BENCHMARK=${BENCH} - cat config.log - # we limit the `make` to 35 min + # we limit the `make` to 40 min # to ensure that slow builds still upload their # ccache results and therefore should be faster # (and might work) for the next build - - DURATION=2100 + - DURATION=2400 - scripts/travis-command-wrapper.py -s "date" -i 120 --deadline=$(( $(date +%s) + ${DURATION} )) make - make test - enabled ${COVERAGE} coverage diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b47daba4..a9bd79a81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,8 @@ Released: xx-xx-xx - GeoJSON - exposed `num_features_to_query` as datasource paramer (ref #3495) - Replaced `boost::mpl::vector` with `std::tuple` (ref #3503) - BuildingSymbolizer - fixed closing segment of polygon in building symbolizer (ref #3505) +- Update dependencies versions +- Fixed warnings when compiling with g++5 ## 3.0.11 diff --git a/Makefile b/Makefile index 69bda5197..ee7047982 100755 --- a/Makefile +++ b/Makefile @@ -16,24 +16,7 @@ install: $(PYTHON) scons/scons.py -j$(JOBS) --config=cache --implicit-cache --max-drift=1 install release: - export MAPNIK_VERSION=$(shell ./utils/mapnik-config/mapnik-config --version) && \ - export TARBALL_NAME="mapnik-v$${MAPNIK_VERSION}" && \ - cd /tmp/ && \ - rm -rf $${TARBALL_NAME} && \ - git clone --depth 1 --branch v$${MAPNIK_VERSION} git@github.com:mapnik/mapnik.git $${TARBALL_NAME} && \ - cd $${TARBALL_NAME} && \ - git checkout "tags/v$${MAPNIK_VERSION}" && \ - git submodule update --depth 100 --init && \ - rm -rf deps/mapbox/variant/.git && \ - rm -rf test/data/.git && \ - rm -rf test/data/.gitignore && \ - rm -rf test/data-visual/.git && \ - rm -rf test/data-visual/.gitignore && \ - rm -rf .git && \ - rm -rf .gitignore && \ - cd ../ && \ - tar cjf $${TARBALL_NAME}.tar.bz2 $${TARBALL_NAME}/ && \ - aws s3 cp --acl public-read $${TARBALL_NAME}.tar.bz2 s3://mapnik/dist/v$${MAPNIK_VERSION}/ + ./scripts/publish_release.sh python: if [ ! -d ./bindings/python ]; then git clone git@github.com:mapnik/python-mapnik.git --recursive ./bindings/python; else (cd bindings/python && git pull && git submodule update --init); fi; @@ -94,10 +77,13 @@ rebuild: uninstall: @$(PYTHON) scons/scons.py -j$(JOBS) --config=cache --implicit-cache --max-drift=1 uninstall -test/data: - git submodule update --init +test/data-visual: + ./scripts/ensure_test_data.sh -test: ./test/data +test/data: + ./scripts/ensure_test_data.sh + +test: ./test/data test/data-visual @./test/run check: test diff --git a/appveyor.yml b/appveyor.yml index d4450d7a4..1511191bd 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,6 +1,5 @@ environment: msvs_toolset: 14 - BOOST_VERSION: 61 FASTBUILD: 1 matrix: - platform: x64 diff --git a/scripts/build-appveyor.bat b/scripts/build-appveyor.bat index 84088d4cb..d1fc084eb 100644 --- a/scripts/build-appveyor.bat +++ b/scripts/build-appveyor.bat @@ -22,7 +22,6 @@ ECHO msvs_toolset^: %msvs_toolset% SET BUILD_TYPE=%configuration% SET BUILDPLATFORM=%platform% SET TOOLS_VERSION=%msvs_toolset%.0 -SET ICU_VERSION=56.1 ECHO ICU_VERSION^: %ICU_VERSION% IF DEFINED APPVEYOR (ECHO on AppVeyor) ELSE (ECHO NOT on AppVeyor) ECHO ======== @@ -63,6 +62,16 @@ ECHO extracting binary deps IF EXIST mapnik-sdk (ECHO already extracted) ELSE (7z -y x deps.7z | %windir%\system32\FIND "ing archive") IF %ERRORLEVEL% NEQ 0 GOTO ERROR + +ECHO looking for boost and icu versions in SDK ... +FOR /F "tokens=1,2 usebackq" %%i in (`powershell %APPVEYOR_BUILD_FOLDER%\scripts\get-boost-icu-version-from-sdk.ps1`) DO SET %%i=%%j +IF %ERRORLEVEL% NEQ 0 GOTO ERROR + +ECHO BOOST_VERSION found in SDK^: %BOOST_VERSION% +ECHO ICU_VERSION found in SDK^: %ICU_VERSION% +ECHO ICU_VERSION2 found in SDK^: %ICU_VERSION2% + + CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 IF %ERRORLEVEL% NEQ 0 GOTO ERROR diff --git a/scripts/build-local.bat b/scripts/build-local.bat index 306e10c86..5a27b9bf8 100644 --- a/scripts/build-local.bat +++ b/scripts/build-local.bat @@ -10,11 +10,6 @@ SET APPVEYOR=true SET LOCAL_BUILD_DONT_SKIP_TESTS=true SET FASTBUILD=1 -FOR /F "tokens=1 usebackq" %%i in (`powershell .\scripts\parse-appveyor-yml.ps1`) DO SET BOOST_VERSION=%%i -ECHO BOOST_VERSION found in appveyor.yml^: %BOOST_VERSION% -IF "%BOOST_VERSION%"=="0" ECHO BOOST_VERSION not valid && SET ERRORLEVEL=1 && GOTO ERROR - - :: OVERRIDE PARAMETERS >>>>>>>> :NEXT-ARG diff --git a/scripts/ensure_test_data.sh b/scripts/ensure_test_data.sh new file mode 100755 index 000000000..e124f3daa --- /dev/null +++ b/scripts/ensure_test_data.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +set -eu +set -o pipefail + +VERSION=$(git describe) + +if [[ -d .git ]]; then + git submodule update --init +else + if [[ ! -d ./test/data ]]; then + echo "Downloading unit test data from https://github.com/mapnik/test-data/archive/${VERSION}.tar.gz" + mkdir -p test/data/ + curl -L -s https://github.com/mapnik/test-data/archive/${VERSION}.tar.gz | tar zxf - --strip-components=1 -C test/data/ + fi + if [[ ! -d ./test/data-visual ]]; then + echo "Downloading visual test data from https://github.com/mapnik/test-data-visual/archive/${VERSION}.tar.gz" + mkdir -p test/data-visual/ + curl -L -s https://github.com/mapnik/test-data-visual/archive/${VERSION}.tar.gz | tar zxf - --strip-components=1 -C test/data-visual/ + fi +fi \ No newline at end of file diff --git a/scripts/get-boost-icu-version-from-sdk.ps1 b/scripts/get-boost-icu-version-from-sdk.ps1 new file mode 100644 index 000000000..a24c3196c --- /dev/null +++ b/scripts/get-boost-icu-version-from-sdk.ps1 @@ -0,0 +1,21 @@ +$ErrorActionPreference = 'Stop' +$boost_version='0' +$icu_version='0' +$libdir=$PSScriptRoot+"\..\mapnik-gyp\mapnik-sdk\lib" + +#get boost and icu versions directly from the files in the SDK + +#boost_python-vc140-mt-1_61.dll +$boost_version=(Get-ChildItem $libdir -Filter *boost*.dll)[0].BaseName.split("_")[-1] + +#icuin56.dll +$icu_version=(Get-ChildItem $libdir -Filter icuin*.dll)[0].BaseName.split("icuin")[-1] + +Write-Host "BOOST_VERSION" $boost_version +Write-Host "ICU_VERSION" $icu_version".1" +Write-Host "ICU_VERSION2" $icu_version"_1" + +trap { + "Error: $_" + exit 1 +} diff --git a/scripts/parse-appveyor-yml.ps1 b/scripts/parse-appveyor-yml.ps1 deleted file mode 100644 index f87ae7e3a..000000000 --- a/scripts/parse-appveyor-yml.ps1 +++ /dev/null @@ -1,7 +0,0 @@ -$ErrorActionPreference = 'Stop' -$boost_version='0' -Get-Content .\appveyor.yml | - foreach { - if ($_ -match "BOOST_VERSION: "){ $boost_version = $_.split()[-1] } - } -Write-Host $boost_version diff --git a/scripts/publish_release.sh b/scripts/publish_release.sh new file mode 100755 index 000000000..fb79e0c41 --- /dev/null +++ b/scripts/publish_release.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +set -eu +set -o pipefail + +# for normal release leave empty +# for release candidate, add "-rcN" +export MAPNIK_VERSION=$(git describe) +if [[ $(git tag -l) =~ $MAPNIK_VERSION ]]; then echo yes; + echo "Success: found $MAPNIK_VERSION (result of git describe) in tags, continuing" +else + echo "error: $MAPNIK_VERSION (result of git describe) not in "git tag -l" output, aborting" + echo "You must create a valid annotated tag first, before running this ./scripts/publish_release.sh" + exit 1 +fi +export TARBALL_NAME="mapnik-${MAPNIK_VERSION}" +cd /tmp/ +rm -rf ${TARBALL_NAME} +echo "Cloning ${MAPNIK_VERSION}" +git clone --depth 1 --branch ${MAPNIK_VERSION} git@github.com:mapnik/mapnik.git ${TARBALL_NAME} +cd ${TARBALL_NAME} +git checkout "tags/${MAPNIK_VERSION}" +echo "updating submodules" +# TODO: skip initializing submodule if data is already tagged +# Will require bundling variant as well +git submodule update --depth 100 --init +rm -rf deps/mapbox/variant/.git +cd test/data/ +git remote set-url origin git@github.com:mapnik/test-data +echo "tagging test data" +git tag ${MAPNIK_VERSION} -a -m "tagging for ${MAPNIK_VERSION}" +git push --tags +cd ../../ +echo "removing test data submodule" +rm -rf test/data/ +cd test/data-visual/ +git remote set-url origin git@github.com:mapnik/test-data-visual +echo "tagging visual data" +git tag ${MAPNIK_VERSION} -a -m "tagging for ${MAPNIK_VERSION}" +git push --tags +cd ../../ +echo "removing visual test data submodule" +rm -rf test/data-visual/ +rm -rf .git +rm -rf .gitignore +cd ../ +echo "creating tarball of ${TARBALL_NAME}.tar.bz2" +tar cjf ${TARBALL_NAME}.tar.bz2 ${TARBALL_NAME}/ +echo "uploading $(dirname ${TARBALL_NAME})/${TARBALL_NAME}.tar.bz2 to s3://mapnik/dist/${MAPNIK_VERSION}/" +# TODO: upload to github releases instead of s3 +aws s3 cp --acl public-read ${TARBALL_NAME}.tar.bz2 s3://mapnik/dist/${MAPNIK_VERSION}/ diff --git a/scripts/time-header b/scripts/time-header index 97c3c6977..7561e5e81 100755 --- a/scripts/time-header +++ b/scripts/time-header @@ -6,4 +6,4 @@ set -o pipefail CXXFLAGS="$(./utils/mapnik-config/mapnik-config --cflags)" CXX="$(./utils/mapnik-config/mapnik-config --cxx)" echo "Time taken to compile '$(basename $1)':" -time ${CXX} $1 -I./test -I./deps/agg/include -Ideps -I./include $CXXFLAGS -o /tmp/header.out \ No newline at end of file +time ${CXX} $1 -I./test -I./deps/agg/include -Ideps -I./deps/mapbox/variant/include -I./include $CXXFLAGS -o /tmp/header.out \ No newline at end of file