-
Notifications
You must be signed in to change notification settings - Fork 400
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: config migration and graph repo client #1889
base: main
Are you sure you want to change the base?
Conversation
…ure into ors-engine - The config is now entirely encapsulated in a clear class hierarchy that can be imported by any module needed. Ors-api imports those classes and is able to use them directly with the externalized spring-boot config loader functionality. - The config classes are using jackson to deserialize yaml files. Since its the basic jackson logic, theoretically ors should understand all possible file formats jackson can handle (yml,json etc.). But we assume yml only. - All formerly bare string accesses to config parameters are now clear function and method accesses from the config classes. - The config class engine has a new parameter graphManagement for a new graph repo client which will be added in subsequent commits - The config classes are currently not designed for serialization except the graph management configs. - Some obvious generic getter/setter scenarios have now been implemented or replaced with the corresponding lombok imports. - ProfileProperties and ProfileDefaultProperties have been merged. ProfileProperties has new parameters `build`, `repo`, and `service`. Except repo the other two include no new parameters, just moved ones. Repo is new and is part of the coming graph management feature. Co-authored-by: jhaeu <[email protected]> Co-authored-by: Julian Psotta <[email protected]> BREAKING CHANGE: Structural changes in the configuration make this change incompatible with earlier versions and configurations.
…pository - The feature allows ors to download graphs from a pre-defined remote repository. The ors client looks for specific things like graph version, the used profiles, area of interest etc. to decide which graph should be downloaded. - To differentiate incompatible graphs, these changes are accommodated by a manually defined graph-version. Once a version is different, the graphs are incompatible. - While building new graphs, the folder of the graphs will include YAML files that contain the settings the graphs were built with. This ensures that graphs cannot be loaded with different graph building relevant configs. - Downloaded graphs will always contain these files. - Graph download triggers can be configure by schedule as well as its activation. Co-authored-by: Takara Baumbach <[email protected]> Co-authored-by: Julian Psotta <[email protected]>
… with tests based on junit and TestContainers The focus of these tests is not to check for correct API tests but for the correct interaction with external tools and dependencies: - Config environment tests - Config file tests - Config lookup tests - GeoTools temp folder creation test - GraphRepoTests that mock an external graph repo with different scenarios The new junit based integration tests are executed like any other junit tests. Under the hood they use test containers to spawn containers with docker to provide isolated and clear defined environments. All tests run in the same way for all current relevant execution scenarios, maven/spring-boot, war/tomcat, java/jar and test for the same expected behavior. All tests are executed in parallel. The max parallel tests are configured by `junit-platform.properties`. Before each parallel execution the container layers are built with a single thread to ensure that parallel tests reuse the same image layers for the containers. This leads to a massively reduced build time in general. Graphs are pre-built by the same layer caching process before the individual test run and shared among tests that request shared graphs. Some tests require new graphs on the fly. Co-authored-by: jhaeu <[email protected]> Co-authored-by: Takara Baumbach <[email protected]>
The documentation now includes information for the new configuration of ors. The configuration is now differently structured and thus content moved a lot. Additionally, the graph download functionality is described. Co-authored-by: Takara Baumbach <[email protected]>
the latter is flaky because the format depends on local locale, time zone etc.
Quality Gate failedFailed conditions See analysis details on SonarQube Cloud Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE |
The commit message title of commit 6035301 is irritating. A refactoring is not supposed to be a breaking change. |
The ! indicates a breaking change & the body describes the thing that is breaking:
according to the specification we are currently using, that's how a breaking change should be committed and it can be on any commit type: Or do you think the actual title confusing? |
No, I think that in general "refactor" and "BREAKING CHANGE" are incompatible by their definition. I wonder whether there are rare exceptions to this? |
ah due to refactoring being defined by "not altering existing functionality" 😓. Yeah, agreed. |
Pull Request Checklist
have been resolved.
[Unreleased] heading.
along with a short description of what it is for, and documented this in the Pull Request (below).
(at least Germany), and the graphs build without problems (i.e. no out-of-memory errors).
importer etc.), I have generated longer distance routes for the affected profiles with different options
(avoid features, max weight etc.) and compared these with the routes of the same parameters and start/end
points generated from the current live ORS.
If there are differences then the reasoning for these MUST be documented in the pull request.
and why the change was needed.
Fixes # .
Information about the changes
Examples and reasons for differences between live ORS routes, and those generated from this pull request
Required changes to ors config (if applicable)