Commit 29f15b6f authored by BZoennchen's avatar BZoennchen

resolve merge conflicts.

parents e980bc8c fc320f3f
Pipeline #111293 failed with stages
in 161 minutes and 6 seconds

Too many changes to show.

To preserve performance only 385 of 385+ files are displayed.

#builds, log/preferences files
target/
# Build artifacts, log and preference files
*.out
*.preferences.xml
#Tools and build utils
bin/
swing-inspector-linux-1.2.3/
target/
# C extensions
*.so
vadere_analysis_tool/build
#IntelliJ
# IDEs
.idea/
*.iml
#Eclipse
.settings/
.metadata/
.classpath
.project
#package specific
# Package specific
VadereGui/*.png
VadereGui/*.svg
VadereGui/*.mov
VadereGui/testResources/**/*.legacy
VadereUtils/testreports/*.txt
VadereUtils/output/*
VadereSimulator/resources/current_commit_hash.txt
VadereSimulator/testResources/**/*.legacy
#model test output
VadereModelTests/TestOSM/output/*
VadereModelTests/TestOSM_Group/output/*
VadereModelTests/TestSFM/output/*
VadereModelTests/TestGNM/output/*
VadereModelTests/TestOVM/output/*
VadereModelTests/TestOSM/legacy/*
VadereModelTests/TestOSM_Group/legacy/*
VadereModelTests/TestSFM/legacy/*
VadereModelTests/TestGNM/legacy/*
VadereModelTests/TestOVM/legacy/*
VadereModelTests/TESTOVM/legacy/*
VadereModelTests/TestOSM/processed output/*
VadereModelTests/TestOSM_Group/processed output/*
VadereModelTests/TestSFM/processed output/*
VadereModelTests/TestGNM/processed output/*
VadereModelTests/TestOVM/processed output/*
VadereUtils/output/*
#deprecated: can potentially be removed
VadereGui/output/
# Python (byte-compiled, optimized, DLL files etc.)
__pycache__/
*.py[cod]
*$py.class
**/venv/
Tools/VadereAnalysisTools/VadereAnalysisTool/vadereanalysistool.egg-info/
Tools/VadereAnalysisTools/VadereAnalysisTool/build/
Tools/VadereAnalysisTools/VadereAnalysisTool/dist/
#mac osx files
# Operating system files
.DS_Store
#linux deskopt dotfiles
**/.directory
/VadereModelTests/TestStairs/output
/VadereModelTests/TestStairs/legacy
# Vadere output directories
**/output/
**/legacy/
**/*_private/
# # GitLab CI Jobs
# # GitLab CI Job Configuration
#
# Each of the jobs defined here is triggered by GitLab's CI pipeline.
# Goal: Run all jobs defined here on all available runners (GNU/Linux and
# Windows).
#
# Procedure: Use GitLab job templates prefixed with a "." and use them in the
# actual job description with the "extends" keyword.
#
# ## GitLab YAML Job Description Syntax
# ## Job Description Syntax
#
# <job_name>: # Job name which is displayed in web interface.
# stage: <stage_name> # <build|test|deploy>: these stages are executed
# # one after another. A stage can contain multiple
# # jobs.
# stage: <stage_name> # Run "script" commands in this stage. The
# # stages are executed sequentially.
# script:
# - <arbitrary_commands> # Here you can execute arbitratry terminal
# # commands. If any of the commands return a
# # non-zero exit code, the job fails.
#
# ## Maven Syntax for Skipping Unit Tests
# ## References
#
# General syntax to execute unit tests:
#
# ```
# mvn test
# ```
#
# The comma-separated list of tests after "-Dtest=<list>" is skipped. All other
# tests are executed normally:
#
# ```
# mvn -Dtest=!TestClassA,!TestClassB,!TestClassC
# ```
#
# **Note:** on some CI instances the exclamation mark must be escaped by a
# backslash. Otherwise, it is interpreted by the executing shell as special
# command.
#
# ## Unit Test Limitations
# - https://docs.gitlab.com/ee/ci/yaml/README.html
# Variable Definitions
variables:
VADERE_DEPLOYMENT_BASE_URL: "http://www.vadere.org/builds"
VADERE_PACKAGE_NAME_BRANCHES: "vadere.${CI_COMMIT_REF_NAME}.${CI_RUNNER_TAGS}.zip"
VADERE_PACKAGE_NAME_RELEASES: "vadere.${CI_COMMIT_TAG}.${CI_RUNNER_TAGS}.zip"
# Stage Definitions
# Watch out: integration tests and the seed tests run after deployment, because
# currently tests fail very often because of timeouts. It is not clear if
# Vadere has slowed down somehow or the test environment is not reliable
# (i.e.,the virtual machines). We have to track that!
stages:
- unit_test
- deploy
- integration_test
- seed_test
# PLEASE, OMIT FOLLOWING GITLAB PITFALLS:
#
# **Watch out:** OpenCL code cannot be run on virtual machines where tests are
# executed. Therefore, skip this tests.
unit_tests_with_coverage:
stage: test
script:
- Documentation/version-control/git-hook-vadere-software
- mvn clean
- mvn -Dtest=!TestConvolution,!TestBitonicSort,!TestCLLinkedList,!TestCLOptimalStepsModel test
- python3 Tools/ContinuousIntegration/collect_line_and_branch_coverage.py
run_scenario_files:
stage: deploy
script:
- Documentation/version-control/git-hook-vadere-software
- mvn clean
- mvn -Dmaven.test.skip=true package
- python3 Tools/ContinuousIntegration/run_vadere_console_with_all_scenario_files.py
# 1. "include:" statement does not work properly and seems really buggy.
# Therefore, define all job templates and jobs directly here.
# "include: .gitlab/ci/templates/test_stage_templates.yml" does not work!
# 2. Variables from "variables" section are not expanded correctly in "url"
# section of an "environment".
# Job Template Definitions
.template_unit_tests:
stage: unit_test
# Skip OpenCL tests by using "-Dtest=!Test1,!Test2,..." because GitLab
# runners do not support OpenCL.
script:
- mvn clean
- mvn -Dtest=!TestConvolution,!TestBitonicSort,!TestCLLinkedList,!TestCLOptimalStepsModel,!TestLWJGL test
- python3 Tools/ContinuousIntegration/collect_line_and_branch_coverage.py
artifacts:
when: on_success
paths:
- "*/target/coverage-reports"
expire_in: 1 week
when: on_success
.template_scenario_files:
stage: integration_test
script:
- mvn clean
- mvn -Dmaven.test.skip=true package
- python3 Tools/ContinuousIntegration/run_vadere_console_with_all_scenario_files.py
artifacts:
when: on_failure
paths:
- "log_dir"
expire_in: 1 week
when: on_success
.template_deploy_master_automatically:
stage: deploy
script:
- mvn clean
- mvn -Dmaven.test.skip=true package
- python3 -m zipfile -c ${VADERE_PACKAGE_NAME_BRANCHES} README.md VadereModelTests/ VadereGui/target/vadere-gui.jar VadereSimulator/target/vadere-console.jar
- scp ${VADERE_PACKAGE_NAME_BRANCHES} di49mur@webdev-mwn.lrz.de:~/webserver/htdocs/builds/master/${VADERE_PACKAGE_NAME_BRANCHES}
only:
refs:
- master
when: on_success
.template_deploy_stable_automatically:
stage: deploy
script:
- mvn clean
- mvn -Dmaven.test.skip=true package
- python3 -m zipfile -c ${VADERE_PACKAGE_NAME_RELEASES} README.md VadereModelTests/ VadereGui/target/vadere-gui.jar VadereSimulator/target/vadere-console.jar
- scp ${VADERE_PACKAGE_NAME_RELEASES} di49mur@webdev-mwn.lrz.de:~/webserver/htdocs/builds/stable/${VADERE_PACKAGE_NAME_RELEASES}
# Run job only for "tags" (usually on the "stable" branch). Watch out: Multiple "only" tags are ORed together.
# See: https://gitlab.com/gitlab-org/gitlab-ce/issues/27818
only:
- tags
when: on_success
.template_deploy_branch_manually:
stage: deploy
script:
- mvn clean
- mvn -Dmaven.test.skip=true package
- python3 -m zipfile -c ${VADERE_PACKAGE_NAME_BRANCHES} README.md VadereModelTests/ VadereGui/target/vadere-gui.jar VadereSimulator/target/vadere-console.jar
- scp ${VADERE_PACKAGE_NAME_BRANCHES} di49mur@webdev-mwn.lrz.de:~/webserver/htdocs/builds/branches/${VADERE_PACKAGE_NAME_BRANCHES}
when: manual
.template_seed_test:
stage: seed_test
script:
- mvn clean
- mvn -Dmaven.test.skip=true package
# setup.py install should from the directoty at which the setup.py file is located (working directory). The brackets return the working direcory back to previous position.
- (cd Tools/VadereAnalysisTools/VadereAnalysisTool/ && python3 setup.py install --user)
- python3 Tools/ContinuousIntegration/run_seed_comparison_test.py
artifacts:
when: on_failure
paths:
- "Tools/ContinuousIntegration/run_seed_comparison_test.d/output"
expire_in: 1 week
when: on_success
# Job Definitions
## Jobs for GNU/Linux runner (which is labelled with tag "linux")
run_unit_tests_on_linux:
extends: .template_unit_tests
tags:
- linux
run_scenario_files_on_linux:
extends: .template_scenario_files
tags:
- linux
run_seed_test_on_linux:
extends: .template_seed_test
tags:
- linux
deploy_master_on_linux:
extends: .template_deploy_master_automatically
tags:
- linux
environment:
name: master/linux
url: ${VADERE_DEPLOYMENT_BASE_URL}/master/vadere.${CI_COMMIT_REF_NAME}.${CI_RUNNER_TAGS}.zip
deploy_stable_on_linux:
extends: .template_deploy_stable_automatically
tags:
- linux
environment:
name: stable/linux
url: ${VADERE_DEPLOYMENT_BASE_URL}/stable/vadere.${CI_COMMIT_TAG}.${CI_RUNNER_TAGS}.zip
deploy_branch_on_linux:
extends: .template_deploy_branch_manually
tags:
- linux
environment:
name: branches/${CI_COMMIT_REF_NAME}/linux
url: ${VADERE_DEPLOYMENT_BASE_URL}/branches/vadere.${CI_COMMIT_REF_NAME}.${CI_RUNNER_TAGS}.zip
## Jobs for Windows runner (which is labelled with tag "windows")
run_unit_tests_on_windows:
extends: .template_unit_tests
tags:
- windows
run_scenario_files_on_windows:
extends: .template_scenario_files
tags:
- windows
run_seed_test_on_windows:
extends: .template_seed_test
tags:
- windows
deploy_master_on_windows:
extends: .template_deploy_master_automatically
tags:
- windows
environment:
name: master/windows
url: ${VADERE_DEPLOYMENT_BASE_URL}/master/vadere.${CI_COMMIT_REF_NAME}.${CI_RUNNER_TAGS}.zip
deploy_stable_on_windows:
extends: .template_deploy_stable_automatically
tags:
- windows
environment:
name: stable/windows
url: ${VADERE_DEPLOYMENT_BASE_URL}/stable/vadere.${CI_COMMIT_TAG}.${CI_RUNNER_TAGS}.zip
deploy_branch_on_windows:
extends: .template_deploy_branch_manually
tags:
- windows
environment:
name: branches/${CI_COMMIT_REF_NAME}/windows
url: ${VADERE_DEPLOYMENT_BASE_URL}/branches/vadere.${CI_COMMIT_REF_NAME}.${CI_RUNNER_TAGS}.zip
First, choose a meaningful and short title and mention context in square brackets. E.g., [GUI] Agents overlap if radius greater than 0.2 m
### Summary
What is the problem you observed?
### What is the current *bug* behavior?
What actually happens?
### What is the expected *correct* behavior?
What you should see instead?
### Steps to reproduce
How can you reproduce the issue?
### Relevant data
- [If you report a bug] Git branch name and commit hash: branch/hash
- [If you report a bug in a scenario] Provide the scenario file --- no matter how simple the scenario is.
### Logs and outputs
[If relevant] Provide log files or console output with error/warning message.
Please, use code blocks (backticks) and if it is much text, encapsulate the text in `<details>` tag:
```
A short
code block
```
<details>
<summary>A long code block...</summary>
<pre>
Line 1 of log file xy`
Line 2 of log file xy`
</pre>
</details>
### Starting point
[If you know it] Starting point in the code for handling the issue (e.g. class name) --> URL to code line in GitLab is also useful.
First, choose a meaningful and short title and mention context in square brackets. E.g., [GUI] Agents overlap if radius greater than 0.2 m
### Problem to solve
### Further details
Include use cases, benefits, and/or goals.
### Links and references
- https://www.google.com/
- http://www.vadere.org/
# Changelog: Vadere
**Note:** Before writing into this file, read the guidelines in [Writing Changelog Entries.md](Documentation/contributing/Writing Changelog Entries.md).
# In Progress: v0.7
## In Progress: v0.7
### Added
- Added new scenario element `AbsorbingArea` to absorb agents immediately.
* The new scenario element can be selected in `TopographyCreator` via the "emergency exit" button.
* The new scenario element is also taken into account by `SettingsDialaog` and `TikzGenerator`.
- Configured 1-click-deployment in ".gitlab-ci.yml".
* In short: Vadere is packaged as a single ZIP file containing following build artifacts: README.md VadereModelTests/ VadereGui/target/vadere-gui.jar VadereSimulator/target/vadere-console.jar
* Vadere is packaged for GNU/Linux and Microsoft Windows.
* The ZIP file can be accessed on the website via: http://www.vadere.org/releases/
* The website's filesystem contains three subdirectories for releases:
- builds/master: For releases on "master" branch (automatically triggered when pushing to "master" branch).
- builds/stable: For Git tags on on any branch (automatically triggered when pushing tags).
- builds/branches: For releases of any other branch (manually triggered in web interface: https://gitlab.lrz.de/vadere/vadere/pipelines)
* The link to the deployed items can be also found in the GitLab web interface: https://gitlab.lrz.de/vadere/vadere/environments
- Create a Facade for the logging in vadere. This will remove 3rd party
dependencies in source most files. Only a small set of facade classes
will have the dependency.
- Assertion output to StdErr is collected by a dedicated logger see `StdOutErrLog.java`.
Each entrypoint must call `StdOutErrLog.addStdOutErrToLog()` to activate this
Logging.
- Logging API did *not* change. Each log level has an additional String formater
method like `log.errorf("Erron in %s with value of x: %d","ClassA", 42)`
- issues closed: [issue#163](https://gitlab.lrz.de/vadere/vadere/issues/163)
- Added script "osm2vadere.py" to "Tools" folder, to convert OpenStreetMap maps to a Vadere topography. (929d4775: Tools).
- `VadereConsole`: Add option `--logname <filename>` to specify the name for the log file.
Please note that the log file `log.out` is always written (because this file is configured
in the `log4j.properties` of each Vadere module (i.e., "gui", "meshing", ...). (c61a3946: Simulator)
- New outputprocessors
* mainly for the BHM: QueueWidthProcessor (to evaluate queueWidth) and PedestrianBehaviorProcessor (evaluate behavior: step / tangential step / sideways step / wait)
* solely for the OSM: PedestrianFootStepProcessor (logs every step instead of the positions at each time step )
- `TopographyChecker`: In package org.vadere.simulator.utils, added TopographyChecker to show
user if the current topography contains problems. The TopographyChecker
will check for overlapping `ScenarioElements` and check for inconsistence
settings such as missing TargetIDs for sources or inconsistenct speed ranges
for pedestrians. See this
[table](Documentation/changelLogImages/TopographyCheckerMessages.md) for
supported warnings and erros as well as this
[picture](Documentation/changelLogImages/TopographyChecker.png) to see which
kind of overlap produces erros or warnings.
- `VadereConsole`: Add `--output-dir [on, off]` (default: `on`) switch to `scenario-run`
sub-command. This will will turn the ScenarioChecker on or off for the command
line. If the Checker detects an error the simulation will not be executed.
- `TopographyCreator` added functionalities:
- move all topography elements by some dx, dy [issue#171](https://gitlab.lrz.de/vadere/vadere/issues/171)
- move the whole topography by some dx, dy [issue#148](https://gitlab.lrz.de/vadere/vadere/issues/148)
- automatically merge overlapping obstacles by using the weiler algorithm.
- `Processors`:
- new processors to compute the fundamental diagrams (by using different velocity, flow and density measurement methods)
- `GUI`:
- improved coloring
- `OutputFile`: Distinguish between indices (rows) and headers (columns), in code and with a new checkbox that when enables allow to write meta-data into output files. Furthermore, resolve naming conflicts (if they occur) in headers of output files (see #201).
### Changed
## Added
- Two new outputprocessors - mainly for the BHM - to evaluaet queueWidth (QueueWidthProcessor) and behavior (PedestrianBehaviorProcessor)
- In package `org.vadere.simulator.util`, added `TopographyChecker` to show user if the current topography contains problems. The
`TopographyChecker` will check for overlapping `ScenarioElements` and check for inconsistence settings such as missing
TargetIDs for sources or inconsistenct speed ranges for pedestrians. See this [table](Documentation/changelLogImages/TopographyCheckerMessages.md) for supported warnings and erros
as well as this [picture](Documentation/changelLogImages/TopographyChecker.png) to see which kind of overlap produces erros or warnings.
- Renamed Vadere JAR files.
* vadere.jar -> vadere-gui.jar
* postvis.jar -> vadere-postvis.jar
* vadere-console.jar -> remained unchanged
- Migration to Java 11 (OpenJDK).
- Removed directory `Documentation/version-control` which contained the Git hooks. The Git hooks are not required anymore. Instead, added `git rev-parse HEAD` to file `VadereSimulator/pom.xml` to create `VadereSimulator/resources/current_commit_hash.txt` during each build via `mvn compile`.
**Note:** The file `current_commit_hash.txt` is created during Maven's validation phase, i.e., before the actual build.
# v0.6 (2018-09-07)
## v0.6 (2018-09-07)
## Added
### Added
- Graphical simulation result is displayed in a table view to show run-time and overlap information if the corresponding processors are loaded. The Simulation result dialog can be deactivated in the preferences. (5ffca5a3: Simulator, GUI)
- Added new OutputProcessors for Overlaps. (8028c523: Simulator)
......@@ -19,12 +81,12 @@
- VadereConsole.jar migrate will migrate all scenario files within the specified directory and all child directories. (37fde165: Simulator)
* To exclude specific sub-trees or only specific directories the igonoreDirs List can be expanded.
* DO_NOT_MIGRATE or .DO_NOT_MIGRATE: Ignore current directory but continue with existing child directories.
* DO_NOT_MIGRATE_TREE or .DO_NOT_MIGRATE_TREE: Ignore the directories and the complete sub-tree.
* DO_NOT_MIGRATE_TREE or .DO_NOT_MIGRATE_TREE: Ignore the directories and the complete sub-tree.
- Added a new OutputProcessor, NumberOverlapsProcessor. This processor saves the number of overlaps that occurred during a simulation run. It needs the PedestrianOverlapProcessor. (57d90e93: Simulator, State)
- Added sub commands to "VadereConsole": project-run, scenario-run, suq, migrate (c7e0538c: GUI)
- In the onlinevisualization it is now possible to display the target potential field of a selected pedestrian. (123457aa: GUI)
## Changed
### Changed
- PedestrianOverlapProcessor returns two values "distance", "overlaps"for each overlap detected. (5ffca5a3: Simulator)
* If no overlap occurs the output is empty.
......@@ -32,23 +94,23 @@
* "overlaps": The amount the two pedestrian overlap
- Moved and renamed attributes in scenario files. (c7e0538c: State)
* Move /scenario/attributesModel/org.vadere.state.attributes.models.AttributesCGM/groupSizeDistribution to each source in /scenario/topography/sources/[]/groupSizeDistribution. This allows different group size distribution for each source
* Rename /scenario/attributesModel/*/timeCostAttributes/standardDerivation to standardDeviation.
* Rename /scenario/attributesModel/*/timeCostAttributes/standardDeviation to standardDeviation.
## Performance
### Performance
- Faster distance computation. (6214738c: Simulator)
* To compute the distance from a point x the closest obstacle we compute the distances on a Cartesian grid of cell size equal to the default value of AttributesFloorField.potentialFieldResolution. There are two methods to compute the distances.
* Brute force (default): Compute the distance for a grid point x by computing all distances (for all obstacles) taking the minimal
* Eikonal Equation solvers (unused): Use obstacles to be the targets are of the eikonal equation and solve the equation using one of the solvers (default is the Fast Marching Method).
# v0.2 (2016-12-22)
## v0.2 (2016-12-22)
## Added
### Added
- Stability and usability improved, additional pedestrian simulation models are supported. (babf0b67: GUI, Simulator, State, Utils)
# v0.1 (2016-08-05)
## v0.1 (2016-08-05)
## Added
### Added
- Initial release of the software as open source. (72391fab: GUI, Simulator, State, Utils)
Contribution guidelines
=======================
# Contributing: Vadere
Workflow
--------
This guide explains the repository structure, how to set up the development environment and introduces coding guidelines.
## Repository Structure
The repository contains following `files` and `folders`:
- The Vadere source code: divided into the sofware modules `VadereGui`, `VadereMeshing`, `VaderSimulator`, `VadereState`, `VadereUtils`
- `VadereModelTests`: pre-shipped tests for different locomotion models (e.g., gradient navigation model, optimal steps model and the social force model)
- `Tools`: scripts which are executing during the continuous integration phase.
- `.gitlab`: templates for creating issues in the Vadere [issue tracker](https://gitlab.lrz.de/vadere/vadere/issues) (this files are implicitly used by GitLab).
- `.gitlab-ci.yml`: instructions which are executed during the [continuous integration pipeline](https://docs.gitlab.com/ee/ci/quick_start/).
## Development Setup
1. Follow the **installation instructions** in the [README.md](README.md) to install all required software and to get the source code.
2. Open a shell and `cd` into the project directory.
3. Run `mvn clean install`.
The project can now be imported *As Maven Project* into your IDE.
### Eclipse
1. *File* > *Import* > *Maven* > *Existing Maven Projects*
2. Choose `pom.xml` as *Root Directory* and click *Finish*
3. Open *Vaderegui (gui)* > *src* > *org.vadere.gui.projectview* > `Vadereapplication`
### IntelliJ IDEA
1. On the welcome-screen select *Import Project*
2. Select `pom.xml` > *Next* > *Next* > *Next* > *Finish*
3. Open *VadereGui (gui)* > *src* > *org.vadere.gui.projectview* > `VadereApplication`
4. lick the *run*-icon next to the `main` method
5. Edit the run configuration for `VadereApplication` to build the project using Maven instead of IntelliJ's internal builder to avoid compilation errors:
6. Click *Edit Configurations* (in dropdown menu next to the play/debug button)