Compare commits

...

7 Commits

Author SHA1 Message Date
Siarhei Fedartsou dc27a0751f Always use original weights when handling --parse-conditionals-from-now 2022-10-11 23:35:42 +02:00
Siarhei Fedartsou 4f10b15513 Always use original weights when handling --parse-conditionals-from-now 2022-10-11 23:21:39 +02:00
Siarhei Fedartsou db82cecce4 Always use original weights when handling --parse-conditionals-from-now 2022-10-11 23:09:09 +02:00
Siarhei Fedartsou 9fd452f6af Always use original weights when handling --parse-conditionals-from-now 2022-10-11 23:04:20 +02:00
Siarhei Fedartsou 4026ed54c0 Add support for surface=metal,grass_paver,woodchips in bicyle profile (#6395) 2022-10-11 11:09:56 +02:00
Daniel J. H 895e4bf6d5 Adds cucumber scenario for u turn restrictions at intersection (#4484) 2022-10-10 22:27:27 +02:00
Michael Bell cb90d587be Release 5.27 (#6392)
* Bookkeeping for 5.27.0 release.

* Prep rc.1

* Final 5.27 release tag

* Reset for next release
2022-10-10 17:54:01 +01:00
9 changed files with 89 additions and 15 deletions
+8 -8
View File
@@ -29,7 +29,7 @@ jobs:
ENABLE_APPLE_SILICON: "OFF" ENABLE_APPLE_SILICON: "OFF"
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- run: pip install conan==1.51.3 - run: pip install conan==1.53.0
- run: conan --version - run: conan --version
- run: cmake --version - run: cmake --version
- uses: actions/setup-node@v3 - uses: actions/setup-node@v3
@@ -252,7 +252,7 @@ jobs:
CXXFLAGS: "-m32 -msse2 -mfpmath=sse" CXXFLAGS: "-m32 -msse2 -mfpmath=sse"
TARGET_ARCH: i686 TARGET_ARCH: i686
ENABLE_CONAN: ON ENABLE_CONAN: ON
- name: gcc-8-release - name: gcc-8-release
continue-on-error: false continue-on-error: false
node: 12 node: 12
@@ -460,7 +460,7 @@ jobs:
CUCUMBER_TIMEOUT: 60000 CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON ENABLE_CONAN: ON
- name: conan-macos-arm64-release-node-lts - name: conan-macos-arm64-release-node-lts
build_node_package: true build_node_package: true
continue-on-error: true continue-on-error: true
@@ -553,7 +553,7 @@ jobs:
key: v3-test-${{ matrix.name }}-${{ github.sha }} key: v3-test-${{ matrix.name }}-${{ github.sha }}
restore-keys: | restore-keys: |
v3-test-${{ matrix.name }}- v3-test-${{ matrix.name }}-
- name: Prepare environment - name: Prepare environment
run: | run: |
PACKAGE_JSON_VERSION=$(node -e "console.log(require('./package.json').version)") PACKAGE_JSON_VERSION=$(node -e "console.log(require('./package.json').version)")
@@ -574,7 +574,7 @@ jobs:
- name: Install dev dependencies - name: Install dev dependencies
run: | run: |
python3 -m pip install conan==1.51.3 python3 -m pip install conan==1.53.0
# ccache # ccache
if [[ "${RUNNER_OS}" == "Linux" ]]; then if [[ "${RUNNER_OS}" == "Linux" ]]; then
@@ -582,12 +582,12 @@ jobs:
elif [[ "${RUNNER_OS}" == "macOS" ]]; then elif [[ "${RUNNER_OS}" == "macOS" ]]; then
brew install ccache brew install ccache
fi fi
# clang # clang
if [[ "${CCOMPILER}" == "clang-6.0" ]]; then if [[ "${CCOMPILER}" == "clang-6.0" ]]; then
sudo apt-get update -y && sudo apt-get install clang++-6 sudo apt-get update -y && sudo apt-get install clang++-6
fi fi
# Linux dev packages # Linux dev packages
if [ "${TARGET_ARCH}" != "i686" ] && [ "${ENABLE_CONAN}" != "ON" ]; then if [ "${TARGET_ARCH}" != "i686" ] && [ "${ENABLE_CONAN}" != "ON" ]; then
sudo apt-get update -y sudo apt-get update -y
@@ -697,7 +697,7 @@ jobs:
run: | run: |
pushd ${OSRM_BUILD_DIR} pushd ${OSRM_BUILD_DIR}
make --jobs=${JOBS} benchmarks make --jobs=${JOBS} benchmarks
./src/benchmarks/alias-bench ./src/benchmarks/alias-bench
./src/benchmarks/json-render-bench ../src/benchmarks/portugal_to_korea.json ./src/benchmarks/json-render-bench ../src/benchmarks/portugal_to_korea.json
./src/benchmarks/match-bench ../test/data/ch/monaco.osrm ./src/benchmarks/match-bench ../test/data/ch/monaco.osrm
./src/benchmarks/packedvector-bench ./src/benchmarks/packedvector-bench
+7
View File
@@ -1,4 +1,11 @@
# Unreleased # Unreleased
- Changes from 5.27.0
- Routing:
- CHANGED: Add support for surface=metal,grass_paver,woodchips in bicyle profile. [#6395](https://github.com/Project-OSRM/osrm-backend/pull/6395)
- Tools:
- FIXED: Always use original weights when handling `--parse-conditionals-from-now` option. [#6399](https://github.com/Project-OSRM/osrm-backend/pull/6399)
# 5.27.0
- Changes from 5.26.0 - Changes from 5.26.0
- API: - API:
- ADDED: Add Flatbuffers support to NodeJS bindings. [#6338](https://github.com/Project-OSRM/osrm-backend/pull/6338) - ADDED: Add Flatbuffers support to NodeJS bindings. [#6338](https://github.com/Project-OSRM/osrm-backend/pull/6338)
+4 -4
View File
@@ -58,16 +58,16 @@ Download OpenStreetMap extracts for example from [Geofabrik](http://download.geo
Pre-process the extract with the car profile and start a routing engine HTTP server on port 5000 Pre-process the extract with the car profile and start a routing engine HTTP server on port 5000
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-extract -p /opt/car.lua /data/berlin-latest.osm.pbf docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-extract -p /opt/car.lua /data/berlin-latest.osm.pbf
The flag `-v "${PWD}:/data"` creates the directory `/data` inside the docker container and makes the current working directory `"${PWD}"` available there. The file `/data/berlin-latest.osm.pbf` inside the container is referring to `"${PWD}/berlin-latest.osm.pbf"` on the host. The flag `-v "${PWD}:/data"` creates the directory `/data` inside the docker container and makes the current working directory `"${PWD}"` available there. The file `/data/berlin-latest.osm.pbf` inside the container is referring to `"${PWD}/berlin-latest.osm.pbf"` on the host.
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-partition /data/berlin-latest.osrm docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-partition /data/berlin-latest.osrm
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-customize /data/berlin-latest.osrm docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-customize /data/berlin-latest.osrm
Note there is no `berlin-latest.osrm` file, but multiple `berlin-latest.osrm.*` files, i.e. `berlin-latest.osrm` is not file path, but "base" path referring to set of files and there is an option to omit this `.osrm` suffix completely(e.g. `osrm-partition /data/berlin-latest`). Note there is no `berlin-latest.osrm` file, but multiple `berlin-latest.osrm.*` files, i.e. `berlin-latest.osrm` is not file path, but "base" path referring to set of files and there is an option to omit this `.osrm` suffix completely(e.g. `osrm-partition /data/berlin-latest`).
docker run -t -i -p 5000:5000 -v "${PWD}:/data" osrm/osrm-backend osrm-routed --algorithm mld /data/berlin-latest.osrm docker run -t -i -p 5000:5000 -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-routed --algorithm mld /data/berlin-latest.osrm
Make requests against the HTTP server Make requests against the HTTP server
+3
View File
@@ -15,6 +15,7 @@ Feature: Bike - Surfaces
| cycleway | cobblestone:flattened | 72 s | | cycleway | cobblestone:flattened | 72 s |
| cycleway | paving_stones | 72 s | | cycleway | paving_stones | 72 s |
| cycleway | wood | 72 s | | cycleway | wood | 72 s |
| cycleway | metal | 72 s |
| cycleway | compacted | 72 s | | cycleway | compacted | 72 s |
| cycleway | fine_gravel | 72 s | | cycleway | fine_gravel | 72 s |
| cycleway | ground | 72 s | | cycleway | ground | 72 s |
@@ -22,11 +23,13 @@ Feature: Bike - Surfaces
| cycleway | cobblestone | 102.9 s | | cycleway | cobblestone | 102.9 s |
| cycleway | gravel | 120 s | | cycleway | gravel | 120 s |
| cycleway | pebblestone | 120 s | | cycleway | pebblestone | 120 s |
| cycleway | grass_paver | 120 s |
| cycleway | dirt | 90 s | | cycleway | dirt | 90 s |
| cycleway | earth | 120 s | | cycleway | earth | 120 s |
| cycleway | grass | 120 s | | cycleway | grass | 120 s |
| cycleway | mud | 240 s | | cycleway | mud | 240 s |
| cycleway | sand | 240 s | | cycleway | sand | 240 s |
| cycleway | woodchips | 240 s |
| cycleway | sett | 80 s | | cycleway | sett | 80 s |
Scenario: Bicycle - Good surfaces on small paths Scenario: Bicycle - Good surfaces on small paths
@@ -353,6 +353,28 @@ Feature: Car - Turn restrictions
| b | a | bj,jc,jc,aj,aj | | b | a | bj,jc,jc,aj,aj |
| b | d | bj,jd,jd | | b | d | bj,jd,jd |
# here we check that conditional restrictions can be updated via re-run of `contract`/`customize` with updated `--parse-conditionals-from-now`
# 10am utc, sat
When I run "osrm-contract {osm_file} --time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1494064800"
When I run "osrm-customize {osm_file} --time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1494064800"
When I route I should get
| from | to | route |
| b | c | bj,jc,jc |
| b | a | bj,aj,aj |
| b | d | bj,jd,jd |
# 10am utc, wed
When I run "osrm-contract {osm_file} --time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493805600"
When I run "osrm-customize {osm_file} --time-zone-file=test/data/tz/{timezone_names}/guinea.geojson --parse-conditionals-from-now=1493805600"
When I route I should get
| from | to | route |
| b | c | bj,jc,jc |
| b | a | bj,jc,jc,aj,aj |
| b | d | bj,jd,jd |
@no_turning @conditionals @no_turning @conditionals
Scenario: Car - Conditional restriction with multiple time windows Scenario: Car - Conditional restriction with multiple time windows
Given the extract extra arguments "--parse-conditional-restrictions" Given the extract extra arguments "--parse-conditional-restrictions"
+30
View File
@@ -115,6 +115,36 @@ Feature: Car - Turn restrictions
| c | a | cj,aj,aj | | c | a | cj,aj,aj |
| c | b | cj,bj,bj | | c | b | cj,bj,bj |
@no_turning
Scenario: Car - No u-turn
# https://www.openstreetmap.org/edit?node=54878482#map=19/34.05242/-117.19067
Given the node map
"""
c
3
a 1 x 2 b
4
d
"""
And the ways
| nodes |
| ax |
| xb |
| cx |
| xd |
And the relations
| type | way:from | way:to | node:via | restriction |
| restriction | ax | ax | x | no_u_turn |
| restriction | bx | bx | x | no_u_turn |
| restriction | cx | cx | x | no_u_turn |
| restriction | dx | dx | x | no_u_turn |
When I route I should get
| waypoints | route | turns |
| a,x,a | ax,xb,xb,xb,ax,ax | depart,new name straight,continue uturn,arrive,depart,arrive |
@no_turning @no_turning
Scenario: Car - Handle any no_* relation Scenario: Car - Handle any no_* relation
Given the node map Given the node map
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@project-osrm/osrm", "name": "@project-osrm/osrm",
"version": "5.27.0-unreleased", "version": "5.28.0-unreleased",
"private": false, "private": false,
"description": "The Open Source Routing Machine is a high performance routing engine written in C++14 designed to run on OpenStreetMap data.", "description": "The Open Source Routing Machine is a high performance routing engine written in C++14 designed to run on OpenStreetMap data.",
"dependencies": { "dependencies": {
+3
View File
@@ -178,6 +178,7 @@ function setup()
concrete = default_speed, concrete = default_speed,
concrete_lanes = default_speed, concrete_lanes = default_speed,
wood = 10, wood = 10,
metal = 10,
["cobblestone:flattened"] = 10, ["cobblestone:flattened"] = 10,
paving_stones = 10, paving_stones = 10,
compacted = 10, compacted = 10,
@@ -186,12 +187,14 @@ function setup()
fine_gravel = 10, fine_gravel = 10,
gravel = 6, gravel = 6,
pebblestone = 6, pebblestone = 6,
grass_paver = 6,
ground = 10, ground = 10,
dirt = 8, dirt = 8,
earth = 6, earth = 6,
grass = 6, grass = 6,
mud = 3, mud = 3,
sand = 3, sand = 3,
woodchips = 3,
sett = 9 sett = 9
}, },
+11 -2
View File
@@ -583,8 +583,17 @@ Updater::LoadAndUpdateEdgeExpandedGraph(std::vector<extractor::EdgeBasedEdge> &e
[&] { extractor::files::readNodeData(config.GetPath(".osrm.ebg_nodes"), node_data); }, [&] { extractor::files::readNodeData(config.GetPath(".osrm.ebg_nodes"), node_data); },
[&] { [&] {
extractor::files::readTurnWeightPenalty( // we are going to overwrite this `.turn_weight_penalties` afterwards,
config.GetPath(".osrm.turn_weight_penalties"), turn_weight_penalties); // so here we backup the original turn penalties if we didn't do that yet in order
// to guarantee that subsequent runs of this code will work on top of original
// weights
auto path = config.GetPath(".osrm.turn_weight_penalties").string() + ".original";
if (!boost::filesystem::exists(path))
{
boost::filesystem::copy_file(config.GetPath(".osrm.turn_weight_penalties"),
path);
}
extractor::files::readTurnWeightPenalty(path, turn_weight_penalties);
}, },
[&] { [&] {
extractor::files::readTurnDurationPenalty( extractor::files::readTurnDurationPenalty(