Skip to content

Commit

Permalink
Merge branch 'valhalla:master' into internal
Browse files Browse the repository at this point in the history
  • Loading branch information
antonanders authored Jun 22, 2022
2 parents 7e1b719 + 964beb9 commit 93b5221
Show file tree
Hide file tree
Showing 396 changed files with 16,222 additions and 9,009 deletions.
29 changes: 22 additions & 7 deletions .azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ jobs:
VCPKG_DIR: '$(Build.SourcesDirectory)\vcpkg'
VCPKG_REF: 'f4bd6423'
TRIPLET: 'x64'
CONAN_HOME: '$(Build.SourcesDirectory)/conan'

steps:
- script: |
Expand All @@ -52,16 +53,24 @@ jobs:
key: .\.vcpkg_deps.txt | "$(VCPKG_REF)" | "$(TRIPLET)" | ".v2"
path: "$(VCPKG_DIR)"
cacheHitVar: CACHE_RESTORED

- task: Cache@2
displayName: "Cache build"
displayName: "Cache conan packages"
inputs:
key: '"msvc-v16.10.0" | build | "$(Build.SourceBranch)"'
path: "$(BUILD_DIR)"
restoreKeys: |
"msvc-v16.10.0" | build | "$(Build.SourceBranch)"
"msvc-v16.10.0" | build
key: '"msvc-v16.10.0" | conan | .\conanfile.txt | "$(Build.SourceBranch)" | "v2"'
path: "$(CONAN_HOME)"
cacheHitVar: BUILD_CACHE_RESTORED

# TODO: cache build never worked, look into it
# - task: Cache@2
# displayName: "Cache build"
# inputs:
# key: '"msvc-v16.10.0" | build | "$(Build.SourceBranch)"'
# path: "$(BUILD_DIR)"
# restoreKeys: |
# "msvc-v16.10.0" | build | "$(Build.SourceBranch)"
# "msvc-v16.10.0" | build
# cacheHitVar: BUILD_CACHE_RESTORED

- task: UsePythonVersion@0
inputs:
Expand Down Expand Up @@ -102,6 +111,10 @@ jobs:
Expand-Archive $(Build.SourcesDirectory)\ninja_win.zip -DestinationPath $(Build.SourcesDirectory)\ninja
displayName: 'Download Ninja'
- script: |
pip install conan
displayName: Install conan
- script: |
SET PATH=%PATH%;$(Build.SourcesDirectory)\ninja
pushd "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
Expand All @@ -110,6 +123,8 @@ jobs:
call "%VSPATH%\VC\Auxiliary\Build\vcvars64.bat"
cmake --version
cmake -G "Ninja" -H$(Build.SourcesDirectory) -B%BUILD_DIR% -DCMAKE_BUILD_TYPE=%BUILD_CFG% -DCMAKE_TOOLCHAIN_FILE=%VCPKG_DIR%\scripts\buildsystems\vcpkg.cmake -DVCPKG_APPLOCAL_DEPS=ON -DENABLE_DATA_TOOLS=ON -DENABLE_TOOLS=ON -DENABLE_PYTHON_BINDINGS=ON -DENABLE_TESTS=OFF -DENABLE_CCACHE=OFF -DENABLE_HTTP=OFF -DENABLE_SERVICES=OFF -DENABLE_BENCHMARKS=OFF -DLUA_INCLUDE_DIR=%VCPKG_DIR%\installed\%TRIPLET%-windows\include\luajit -DLUA_LIBRARIES=%VCPKG_DIR%\installed\%TRIPLET%-windows\lib\lua51.lib"
env:
CONAN_USER_HOME: $(CONAN_HOME)
displayName: 'Run CMake to configure build'
- script: |
Expand Down
38 changes: 21 additions & 17 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ version: 2.1
executors:
macos:
macos:
xcode: 11.1.0
xcode: 12.4.0
environment:
HOMEBREW_NO_AUTO_UPDATE: 1

commands:
install_macos_dependencies:
steps:
- run: brew install protobuf cmake ccache libtool boost libspatialite pkg-config luajit curl wget czmq lz4 spatialite-tools unzip
- run: pip3 install requests shapely
- run: git clone https://github.com/kevinkreiser/prime_server --recurse-submodules && cd prime_server && ./autogen.sh && ./configure && make -j4 && make install
- run: brew install protobuf cmake ccache libtool libspatialite pkg-config luajit curl wget czmq lz4 spatialite-tools unzip
- run: pip3 install requests shapely conan
- run: git clone https://github.com/kevinkreiser/prime_server --recurse-submodules && cd prime_server && ./autogen.sh && ./configure && make -j8 && make install

jobs:
build-docker-images:
Expand Down Expand Up @@ -58,8 +58,8 @@ jobs:
- run: git submodule sync && git submodule update --init
- restore_cache:
keys:
- ccache-debug-linux-x86_64-{{ .Branch }}
- ccache-debug-linux-x86_64
- ccache-debug-linux-x86_64-{{ .Branch }}-{{ checksum "conanfile.txt" }}
- ccache-debug-linux-x86_64-{{ checksum "conanfile.txt" }}
- run: mkdir build
- run: |
# NOTE: -Werror disabled in CI, as we currently have >4k warnings.
Expand All @@ -78,9 +78,10 @@ jobs:
# Note: we save the cache here before doing linting so that if linting fails, we can rebuild quickly
# for follow-up fixes
- save_cache:
key: ccache-debug-linux-x86_64-{{ .Branch }}-{{ epoch }}
key: ccache-debug-linux-x86_64-{{ .Branch }}-{{ checksum "conanfile.txt" }}-{{ epoch }}
paths:
- ~/.ccache
- ~/.conan
- run: scripts/clang-tidy-only-diff.sh 4
- run: make -C build install
- run: make -C build package
Expand All @@ -104,8 +105,8 @@ jobs:
- run: git submodule sync && git submodule update --init
- restore_cache:
keys:
- ccache-release-linux-x86_64-{{ .Branch }}
- ccache-release-linux-x86_64
- ccache-release-linux-x86_64-{{ .Branch }}-{{ checksum "conanfile.txt" }}
- ccache-release-linux-x86_64-{{ checksum "conanfile.txt" }}
- run: mkdir build
- run: |
cd build && cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=On -DENABLE_PYTHON_BINDINGS=On \
Expand All @@ -119,14 +120,16 @@ jobs:
- run: make -C build -j8 benchmarks
- run: make -C build -j8 run-benchmarks
- save_cache:
key: ccache-release-linux-x86_64-{{ .Branch }}-{{ epoch }}
key: ccache-release-linux-x86_64-{{ .Branch }}-{{ checksum "conanfile.txt" }}-{{ epoch }}
paths:
- ~/.ccache
- ~/.conan
- run: make -C build install
- run: make -C build package

build-osx:
executor: macos
resource_class: large
steps:
- checkout
- install_macos_dependencies
Expand All @@ -139,20 +142,21 @@ jobs:
- run: git submodule sync && git submodule update --init
- restore_cache:
keys:
- ccache-release-macos-{{ .Branch }}
- ccache-release-macos
- ccache-release-macos-{{ .Branch }}-{{ checksum "conanfile.txt" }}
- ccache-release-macos-{{ checksum "conanfile.txt" }}
- run: mkdir -p build
- run: cd build && cmake ..
- run: make -C build -j4
- run: make -C build -j8
- run: make -C build utrecht_tiles
- run: make -C build -j2 tests
- run: make -C build -j2 check
- run: make -C build -j2 benchmarks
- run: make -C build -j8 tests
- run: make -C build -j8 check
- run: make -C build -j8 benchmarks
- run: make -C build run-benchmarks
- save_cache:
key: ccache-release-macos-{{ .Branch }}-{{ epoch }}
key: ccache-release-macos-{{ .Branch }}-{{ checksum "conanfile.txt" }}-{{ epoch }}
paths:
- ~/.ccache
- ~/.conan

workflows:
version: 2
Expand Down
2 changes: 1 addition & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
Checks: 'clang-*,performance*,-performance-move-const-arg,misc-unused-parameters'
Checks: 'bugprone-throw-keyword-missing,clang-*,performance*,-performance-move-const-arg,misc-unused-parameters'
WarningsAsErrors: ''
AnalyzeTemporaryDtors: false
CheckOptions:
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ valhalla_tyr_worker
valhalla_associate_segments
valhalla_fetch_transit
valhalla_pack_elevation
valhalla_add_elevation
genfiles/
locales/*.UTF-8
!locales/merge-en.sh
Expand Down Expand Up @@ -61,6 +62,9 @@ CMakeLists.txt.user
.idea
/.tidytmp

# python
.venv

# clangd
.cache/

Expand Down
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,9 @@
[submodule "third_party/cpp-statsd-client"]
path = third_party/cpp-statsd-client
url = https://github.com/vthiery/cpp-statsd-client
[submodule "third_party/lz4"]
path = third_party/lz4
url = https://github.com/lz4/lz4
[submodule "third_party/cxxopts"]
path = third_party/cxxopts
url = https://github.com/jarro2783/cxxopts.git
8 changes: 8 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
repos:
# Autoformat: Shell files
- repo: local
hooks:
- id: format
name: format
entry: bash ./scripts/format.sh
language: system
9 changes: 0 additions & 9 deletions .vcpkg_deps.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
boost-algorithm
boost-config
boost-core
boost-heap
boost-lexical-cast
boost-property-tree
boost-variant
boost-geometry
boost-program-options
curl
protobuf
zlib
Expand Down
73 changes: 73 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,46 @@
## Release Date: 2021-??-?? Valhalla 3.1.5
* **Removed**
* **Bug Fix**
* FIXED: Wrong out index in route intersections [#3541](https://github.com/valhalla/valhalla/pull/3541)
* FIXED: Both `hov:designated` and `hov:minimum` have to be correctly set for the way to be considered hov-only [#3526](https://github.com/valhalla/valhalla/pull/3526)
* FIXED: Fix precision losses while encoding-decoding distance parameter in openlr [#3374](https://github.com/valhalla/valhalla/pull/3374)
* FIXED: Fix bearing calculation for openlr records [#3379](https://github.com/valhalla/valhalla/pull/3379)
* FIXED: Some refactoring that was proposed for the PR 3379 [3381](https://github.com/valhalla/valhalla/pull/3381)
* FIXED: Avoid calling out "keep left/right" when passing an exit [3349](https://github.com/valhalla/valhalla/pull/3349)
* FIXED: Fix iterator decrement beyond begin() in GeoPoint::HeadingAtEndOfPolyline() method [#3393](https://github.com/valhalla/valhalla/pull/3393)
* FIXED: Add string for Use:kPedestrianCrossing to fix null output in to_string(Use). [#3416](https://github.com/valhalla/valhalla/pull/3416)
* FIXED: Remove simple restrictions check for pedestrian cost calculation. [#3423](https://github.com/valhalla/valhalla/pull/3423)
* FIXED: Parse "highway=busway" OSM tag: https://wiki.openstreetmap.org/wiki/Tag:highway%3Dbusway [#3413](https://github.com/valhalla/valhalla/pull/3413)
* FIXED: Process int_ref irrespective of `use_directions_on_ways_` [#3446](https://github.com/valhalla/valhalla/pull/3446)
* FIXED: workaround python's ArgumentParser bug to not accept negative numbers as arguments [#3443](https://github.com/valhalla/valhalla/pull/3443)
* FIXED: Undefined behaviour on some platforms due to unaligned reads [#3447](https://github.com/valhalla/valhalla/pull/3447)
* FIXED: Fixed undefined behavior due to invalid shift exponent when getting edge's heading [#3450](https://github.com/valhalla/valhalla/pull/3450)
* FIXED: Use midgard::unaligned_read in GraphTileBuilder::AddSigns [#3456](https://github.com/valhalla/valhalla/pull/3456)
* FIXED: Relax test margin for time dependent traffic test [#3467](https://github.com/valhalla/valhalla/pull/3467)
* FIXED: Fixed missed intersection heading [#3463](https://github.com/valhalla/valhalla/pull/3463)
* FIXED: Stopped putting binary bytes into a string field of the protobuf TaggedValue since proto3 protects against that for cross language support [#3468](https://github.com/valhalla/valhalla/pull/3468)
* FIXED: valhalla_service uses now loki logging config instead of deprecated tyr logging [#3481](https://github.com/valhalla/valhalla/pull/3481)
* FIXED: Docker image `valhalla/valhalla:run-latest`: conan error + python integration [#3485](https://github.com/valhalla/valhalla/pull/3485)
* FIXED: fix more protobuf unstable 3.x API [#3494](https://github.com/valhalla/valhalla/pull/3494)
* FIXED: fix one more protobuf unstable 3.x API [#3501](https://github.com/valhalla/valhalla/pull/3501)
* FIXED: Fix valhalla_build_tiles imports only bss from last osm file [#3503](https://github.com/valhalla/valhalla/pull/3503)
* FIXED: Fix total_run_stat.sh script. [#3511](https://github.com/valhalla/valhalla/pull/3511)
* FIXED: fix valhalla_export_edges: missing null columns separator [#3543](https://github.com/valhalla/valhalla/pull/3543)
* FIXED: Removed/updated narrative language aliases that are not IETF BCP47 compliant [#3546](https://github.com/valhalla/valhalla/pull/3546)
* FIXED: Wrong predecessor opposing edge in dijkstra's expansion [#3528](https://github.com/valhalla/valhalla/pull/3528)
* FIXED: exit and exit_verbal in Russian locale should be same [#3545](https://github.com/valhalla/valhalla/pull/3545)
* FIXED: Skip transit tiles in hierarchy builder [#3559](https://github.com/valhalla/valhalla/pull/3559)
* FIXED: Fix some country overrides in adminconstants and add a couple new countries. [#3578](https://github.com/valhalla/valhalla/pull/3578)
* FIXED: Improve build errors reporting [#3579](https://github.com/valhalla/valhalla/pull/3579)
* FIXED: Fix "no elevation" values and /locate elevation response [#3571](https://github.com/valhalla/valhalla/pull/3571)
* FIXED: Build tiles with admin/timezone support on Windows [#3580](https://github.com/valhalla/valhalla/pull/3580)
* FIXED: admin "Saint-Martin" changed name to "Saint-Martin (France)" [#3619](https://github.com/valhalla/valhalla/pull/3619)
* FIXED: openstreetmapspeeds global config with `null`s now supported [#3621](https://github.com/valhalla/valhalla/pull/3621)
* FIXED: valhalla_run_matrix was failing (could not find proper max_matrix_distance) [#3635](https://github.com/valhalla/valhalla/pull/3635)
* FIXED: Removed duplicate degrees/radians constants [#3642](https://github.com/valhalla/valhalla/pull/3642)
* FIXED: Forgot to adapt driving side and country access rules in [#3619](https://github.com/valhalla/valhalla/pull/3619) [#3652](https://github.com/valhalla/valhalla/pull/3652)
* FIXED: DateTime::is_conditional_active(...) incorrect end week handling [#3655](https://github.com/valhalla/valhalla/pull/3655)
* FIXED: TimeDistanceBSSMatrix: incorrect initialization for destinations[#3659](https://github.com/valhalla/valhalla/pull/3659)

* **Enhancement**
* CHANGED: Pronunciation for names and destinations [#3132](https://github.com/valhalla/valhalla/pull/3132)
Expand All @@ -20,6 +54,45 @@
* ADDED: Add boolean parameter to clear memory for edge labels from thor. [#2789](https://github.com/valhalla/valhalla/pull/2789)
* CHANGED: Do not create statsd client in workers if it is not configured [#3394](https://github.com/valhalla/valhalla/pull/3394)
* ADDED: Import of Bike Share Stations information in BSS Connection edges [#3411](https://github.com/valhalla/valhalla/pull/3411)
* ADDED: Add heading to PathEdge to be able to return it on /locate [#3399](https://github.com/valhalla/valhalla/pull/3399)
* ADDED: Add `prioritize_bidirectional` option for fast work and correct ETA calculation for `depart_at` date_time type. Smoothly stop using live-traffic [#3398](https://github.com/valhalla/valhalla/pull/3398)
* CHANGED: Minor fix for headers [#3436](https://github.com/valhalla/valhalla/pull/3436)
* CHANGED: Use std::multimap for polygons returned for admin and timezone queries. Improves performance when building tiles. [#3427](https://github.com/valhalla/valhalla/pull/3427)
* CHANGED: Refactored GraphBuilder::CreateSignInfoList [#3438](https://github.com/valhalla/valhalla/pull/3438)
* ADDED: Add support for LZ4 compressed elevation tiles [#3401](https://github.com/valhalla/valhalla/pull/3401)
* CHANGED: Rearranged some of the protobufs to remove redundancy [#3452](https://github.com/valhalla/valhalla/pull/3452)
* CHANGED: overhaul python bindings [#3380](https://github.com/valhalla/valhalla/pull/3380)
* CHANGED: Removed all protobuf defaults either by doing them in code or by relying on 0 initialization. Also deprecated best_paths and do_not_track [#3454](https://github.com/valhalla/valhalla/pull/3454)
* ADDED: isochrone action for /expansion endpoint to track dijkstra expansion [#3215](https://github.com/valhalla/valhalla/pull/3215)
* CHANGED: remove boost from dependencies and add conan as prep for #3346 [#3459](https://github.com/valhalla/valhalla/pull/3459)
* CHANGED: Remove boost.program_options in favor of cxxopts header-only lib and use conan to install header-only boost. [#3346](https://github.com/valhalla/valhalla/pull/3346)
* CHANGED: Moved all protos to proto3 for internal request/response handling [#3457](https://github.com/valhalla/valhalla/pull/3457)
* CHANGED: Allow up to 32 outgoing link edges on a node when reclassifying links [#3483](https://github.com/valhalla/valhalla/pull/3483)
* CHANGED: Reuse sample::get implementation [#3471](https://github.com/valhalla/valhalla/pull/3471)
* ADDED: Beta support for interacting with the http/bindings/library via serialized and pbf objects respectively [#3464](https://github.com/valhalla/valhalla/pull/3464)
* CHANGED: Update xcode to 12.4.0 [#3492](https://github.com/valhalla/valhalla/pull/3492)
* ADDED: Add JSON generator to conan [#3493](https://github.com/valhalla/valhalla/pull/3493)
* CHANGED: top_speed option: ignore live speed for speed based penalties [#3460](https://github.com/valhalla/valhalla/pull/3460)
* ADDED: Add `include_construction` option into the config to include/exclude roads under construction from the graph [#3455](https://github.com/valhalla/valhalla/pull/3455)
* CHANGED: Refactor options protobuf for Location and Costing objects [#3506](https://github.com/valhalla/valhalla/pull/3506)
* CHANGED: valhalla.h and config.h don't need cmake configuration [#3502](https://github.com/valhalla/valhalla/pull/3502)
* ADDED: New options to control what fields of the pbf are returned when pbf format responses are requested [#3207](https://github.com/valhalla/valhalla/pull/3507)
* CHANGED: Rename tripcommon to common [#3516](https://github.com/valhalla/valhalla/pull/3516)
* ADDED: Indoor routing - data model, data processing. [#3509](https://github.com/valhalla/valhalla/pull/3509)
* ADDED: On-demand elevation tile fetching [#3391](https://github.com/valhalla/valhalla/pull/3391)
* CHANGED: Remove many oneof uses from the protobuf api where the semantics of optional vs required isnt necessary [#3527](https://github.com/valhalla/valhalla/pull/3527)
* ADDED: Indoor routing maneuvers [#3519](https://github.com/valhalla/valhalla/pull/3519)
* ADDED: Expose reverse isochrone parameter for reverse expansion [#3528](https://github.com/valhalla/valhalla/pull/3528)
* CHANGED: Add matrix classes to thor worker so they persist between requests. [#3560](https://github.com/valhalla/valhalla/pull/3560)
* CHANGED: Remove `max_matrix_locations` and introduce `max_matrix_location_pairs` to configure the allowed number of total routes for the matrix action for more flexible asymmetric matrices [#3569](https://github.com/valhalla/valhalla/pull/3569)
* CHANGED: modernized spatialite syntax [#3580](https://github.com/valhalla/valhalla/pull/3580)
* ADDED: Options to generate partial results for time distance matrix when there is one source (one to many) or one target (many to one). [#3181](https://github.com/valhalla/valhalla/pull/3181)
* ADDED: Enhance valhalla_build_elevation with LZ4 recompression support [#3607](https://github.com/valhalla/valhalla/pull/3607)
* CHANGED: removed UK admin and upgraded its constituents to countries [#3619](https://github.com/valhalla/valhalla/pull/3619)
* CHANGED: expansion service: only track requested max time/distance [#3532](https://github.com/valhalla/valhalla/pull/3509)
* ADDED: Shorten down the request delay, when some sources/targets searches are early aborted [#3611](https://github.com/valhalla/valhalla/pull/3611)
* ADDED: add `pre-commit` hook for running the `format.sh` script [#3637](https://github.com/valhalla/valhalla/pull/3637)
* CHANGED: upgrade pybind11 to v2.9.2 to remove cmake warning [#3658](https://github.com/valhalla/valhalla/pull/3658)

## Release Date: 2021-10-07 Valhalla 3.1.4
* **Removed**
Expand Down
Loading

0 comments on commit 93b5221

Please sign in to comment.