Skip to content
Snippets Groups Projects
Commit fc8af57c authored by Erik Andresen's avatar Erik Andresen
Browse files

add (copied) changelog and contribution guide

parent 59f2ae90
Branches
Tags
No related merge requests found
......@@ -6,10 +6,94 @@ All notable changes to this project will be documented in this file.
### Added
#### JPSEditor
#### JPSCORE
- CI with travis and Gitlab CI
- Compilation checked on Visual Studio 12 2013
- Added more validation tests
- Added statistics (calculate exit usage) for all exits
- Added voronoi based algorithm for inserting agents coming from the source or from matsim
- New option for the quickest path router. Sample options are:
```<parameters default_strategy="local_shortest">```
```<parameters default_strategy="global_shortest">```
``` <parameters cba_gain="0.15" reference_peds_selection="single" congestion_ratio="0.8" queue_vel_escaping_jam="0.2"
queue_vel_new_room="0.7" visibility_obstruction="4">
```
- New model with the generic name `Tordeux2015` and `id=3`. For use check the ini-files in the Utest-validation tests.
- Tests are sorted in `rimea_tests`, `juelich_tests` and `validation_tests`.
- Periodic boundary conditions with the option `<periodic>1</periodic>`.Works only with model 3.
- Added Floorfield to all exits, providing direction to target, direction to closest wall and cost estimates. Parameter to control wall-avoidance included.
- Point Grid
- Line Grid
- Select all lines
- Edit Room Type
- Show and snap the origin
\ No newline at end of file
#### JPSVIS
- Added option to load vtk files. Need to add the line ``` <gradient_field filename="floorfield.vtk">
``` in the header of the trajectory file. Alternatively drag and drop a vtk file on JPSvis.
- Fixed error displaying the total number of frames when using the scroolbar
#### JPSREPORT
- Added geometry information while plotting the voronoi cells
- Added option to disable plotting
- Issue a warning when the voronoi cell cannot be calculated
- Fixed error where all trajectories were colinear
#### JPSEDITOR
## v0.7.0 [2015-07-15]
### New Module
- JuPedSim: Editor for the geometry
### Added
- Risk tolerance factor (value in [0 1]) for pedestrian. Pedestrians with high values are likely to take more risks.
- Added pre-movement time of the agents. Only after this time, the concerned agents will start moving.
- Sources for generating agents at runtime. Parameter are frequency (agents per seconds) and maximum number
- Option to color the pedestrians by group, spotlight, velocity, group, knowledge, router, final\_goal, intermediate\_goal. Usage: (
```<trajectories format="xml-plain" fps="8" color_mode="group"> ```)
- More control over the triangulation specially to avoid skinny triangles. Usage: ```<navigation_mesh method="triangulation" minimum_distance_between_edges="0.5" minimum_angle_in_triangles="20" use_for_local_planning="true" />```
- Improved statistics. The flow curve for the different exits can be computed at runtime.
- Changelog file
- Rimea testcases
- Unit tests are now based on the Boost testing engine
#### JPSVIS
- Display the geometry structure individual room/subroom.
- Now build on OSX/Linux/Windows
### Changed
-
-
### Fixed
- Visiblity in 3D
- Numerous geometrical operations
## v0.6.0 - 2015-01-31
### Added
- Steering the simulation with predefined events (closing or opening doors during the simulation)
- Information sharing between the pedestrians. The agents now share their knowledge about closed doors.
- Pre evacuation time for groups of agents.
- Adjustable velocities on stairs and even terrain for group of agents.
- Stability and performance improvement. The simulation is approx 40% faster for larger scenarios and you will notice it
- New route choice model, cognitive map, giving agents the possibility to explore the environment and discover doors for instance.
- Different sensors for improving the navigation of pedestrians (smoke/jam sensor).
- New verification and validation tests.
- General statistics over the evacuation (for instance areas egress time and door usage)
- Support for Visual Studio and Xcode compilers.
### Changed
- refactor NumCPU and ExitCrossingStrategy tags to `num_threads and exit_crossing_strategy`
## v0.5.0 - 2014-08-05
First release of the the Juelich Pedestrian Simulator. Most noteworthy features:
- Simulate pedestrians movement in a space continuous geometry
- Forces based models for describing the pedestrians interactions
- Shortest and quickest path route choice strategies
- Loading and visualizing trajectories and geometries
- Easy to use visualization interface
- Making high quality videos directly from the visualization interface or generating png sequences
- XML based input files
\ No newline at end of file
Contributing to JuPedSim
========================
This project is mainly developed by a small group of researchers and students from [Jülich Research Center](http://www.fz-juelich.de/en) and [BUW](http://www.uni-wuppertal.de/).
However you are kindly invited not only to use JuPedSim but also contributing to our open-source-project.
It does not matter if you are a researcher, student or just interested in pedestrian dynamics.
There are only a few rules and advices we want to give to you:
- [Advice for new contributors](#advice-for-new-contributors)
- [First steps](#first-steps)
- [Guidelines](#guidelines)
- [FAQ](#faq)
- [Reporting bugs and requesting features](#reporting-bugs-and-requesting-features)
- [Using the issue tracker](#using-the-issue-tracker)
- [Reporting bugs](#reporting-bugs)
- [Requesting features](#requesting-features)
- [Writing code](#writing-code)
- [Coding style](#coding-style)
- Unit tests
- [Writing documentation](#wrinting-documentation)
- [Comments](#comments)
- Documenting new features
- [Committing code](#commiting-code)
- Handling pull/merge requests
- [Committing guidelines](#commiting-guidelines)
- Reverting commits
## Advice for new contributors
### First steps
### Guidelines
### FAQ
## Reporting bugs and requesting features
If you got a question or a problem and need support from our team feel free to contact us.
You can do this via [email](mailto:dev@jupedsim.org).
If you think you found an issue or bug in JuPedSim please use our issue tracker.
### Using the issue tracker
The issue tracker is the preferred channel for bug reports, features requests and submitting pull requests, but please respect the following restrictions:
- Please do not use the issue tracker for personal support requests. [Mail us](mailto:dev@jupedsim.org) if you need personal support.
- Please do not derail or troll issues. Keep the discussion on topic and respect the opinions of others.
If you use the issue tracker we have a list of labels you should use.
### Reporting bugs
If you find a bug in the source code or a mistake in the documentation, you can help us by submitting an issue to our repository.
Even better you can submit a pull or merge request with a fix. Please use the following template and make sure you provide us as much information as possible:
~~~.md
[Short description of problem here]
**Reproduction Steps:**
1. [First Step]
2. [Second Step]
3. [Other Steps...]
**Expected behavior:**
[Describe expected behavior here]
**Observed behavior:**
[Describe observed behavior here]
**Screenshots and GIFs**
![Screenshots and GIFs which follow reproduction steps to demonstrate the problem](url)
**JuPedSim version:** [Enter JuPedSim version here]
**OS and version:** [Enter OS name and version here]
**Compiler and version:** [Enter compiler name and version here]
**Installed Libraries:**
[Enter Boost version here]
[Enter Vtk version here]
[Enter Qt version here]
**Additional information:**
* Problem started happening recently, didn't happen in an older version of JuPedSim: [Yes/No]
* Problem can be reliably reproduced, doesn't happen randomly: [Yes/No]
* Problem happens with all files and projects, not only some files or projects: [Yes/No]
* Problem happens with the attached ini and geometry files: [Yes/No]
~~~
### Requesting features
Enhancement suggestions are tracked as issues. After you've determined which repository your enhancement suggestions is related to, create an issue on that repository and provide the following information:
* Use a clear and descriptive title for the issue to identify the suggestion.
* Provide a step-by-step description of the suggested enhancement in as many details as possible.
* Provide specific examples to demonstrate the steps. Include copy/pasteable snippets which you use in those examples, as Markdown code blocks.
* Describe the current behavior and explain which behavior you expected to see instead and why.
If you want to support us by writing the enhancement yourself consider what kind of change it is:
- **Major changes** that you wish to contribute to the project should be discussed first on our **dev mailing list** so that we can better coordinate our efforts, prevent duplication of work, and help you to craft the change so that it is successfully accepted into the project.
- **Small changes** can be crafted and submitted to our repository as a **pull or merge request**.
Nevertheless open an issue for documentation purposes with the following template:
~~~.md
[Short description of suggestion]
**Steps which explain the enhancement**
1. [First Step]
2. [Second Step]
3. [Other Steps...]
**Current and suggested behavior**
[Describe current and suggested behavior here]
**Why would the enhancement be useful to most users**
[Explain why the enhancement would be useful to most users]
[List some other text editors or applications where this enhancement exists]
**Screenshots and GIFs**
![Screenshots and GIFs which demonstrate the steps or part of JuPedSim the enhancement suggestion is related to](url)
**JuPedSim Version:** [Enter JuPedSim version here]
**OS and Version:** [Enter OS name and version here]~
~~~
## Writing Code
### Coding style
In JuPedSim we try to code according to the *Stroustrup* style of formatting/indenting.
If you want (or have) to write code in JuPedSim you really **need** to respect that style.
This is important not just aesthetically but also practically. Diff commits are much more clearer and cleaner.
The code is formated using the automatic formatter [astyle](http://astyle.sourceforge.net/astyle.html) with the option `--style=stroustrup`:
> Stroustrup style formatting/indenting uses stroustrup brackets.
> Brackets are broken from function definitions only.
> Brackets are attached to everything else including
> namespaces, classes, and statements within a function, arrays, structs, and enums.
> This style frequently is used with an indent of 5 spaces.
Here is an **example:**
```c++
int Foo(bool isBar)
{
if (isBar) {
bar();
return 1;
} else
return 0;
}
```
#### Tabs vs Spaces
This can be a long and religious discussion, to make it short *DO NOT* use tabs, just spaces please.
Here are some hints to configure your editor in order to use the *stroustrup* style
- **Emacs**:
Add this to your ```.emacs```
```lisp
(setq c-default-style "stroustrup" c-basic-offset 5)
(setq indent-tabs-mode nil)
```
- **Vim**:
Set in your config file these variables
```javascript
:set autoindent
:set cindent
:set expandtab
:set shiftwidth=5
:set softtabstop=5
```
- **Eclipse**:
Here is a [plugin](http://astyleclipse.sourceforge.net/) for astyle in eclipse.
Read also
[How to change indentation width in eclipse?](https://superuser.com/questions/462221/how-do-i-reliably-change-the-indentation-width-in-eclipse)
- **Clion**
<!-- TODO -->
## Writing Documentation
### Comments
Comments have to be written in **English** everywhere. Please use markdown where applicable.
## Commiting Code
### Commiting guidelines
Please write clear and concise commit messages so that
your co-developers can directly grasp what changes on the code are you committing/pushing. Please do this with respect
to the following points:
- Name every class (file if you only change a single file) you changed and right after that a brief description of your
change.
- Use markdown if you want do make a longer description than two sentences.
- Reference issues and pull requests liberally if your commit is connected to one.
- When only changing documentation start with `:memo:`
- Consider starting the commit message with an applicable emoji:
- :art: `:art:` when improving the format/structure of the code
- :racehorse: `:racehorse:` when improving performance
- :memo: `:memo:` when writing docs
- :penguin: `:penguin:` when fixing something on Linux
- :apple: `:apple:` when fixing something on Mac OS
- :checkered_flag: `:checkered_flag:` when fixing something on Windows
- :bug: `:bug:` when fixing a bug
- :fire: `:fire:` when removing code or files
- :green_heart: `:green_heart:` when fixing the CI build
- :white_check_mark: `:white_check_mark:` when adding tests
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment