Information for developers¶
OpenPTV need developers. Your support, code and contribution is very welcome and we are grateful you can provide some. Please send us an email to openptv@googlegroups.com to get started, or for any kind of information.
We use Git for development version control, and we have our main repository on Github.
Development workflow¶
This is absolutely not a comprehensive guide of git development, and it is only an indication of our workflow.
Download and install
`git`
. Instruction can be found here.Set up a github account.
Clone OpenPTV repositories using:
git clone http://github.com/openptv/openptv.git
create a branch new_feature either in
liboptv
where you implement your new feature.Fix, change, implement, document code, …
From time to time fetch and merge your master branch with that of the main repository.
Be sure that everything is ok and works in your branch.
Merge your master branch with your new_feature branch.
Be sure that everything is now ok and works in you master branch.
Send a pull request.
Create another branch for a new feature.
Programming languages¶
As a general rule, we use ANSI C for the liboptv
library and Python for the interface.
You are welcome to use Python for the core algorithms as well if it does not make any
difference with code speed. In those situations where Python speed is the bottleneck,
we have some possibilities, depending on your skills and background. If something has
to be written from scratch use the first language from the following which you are
confortable with: Cython
, C
, C++
, Fortran
. If you have existing, debugged, tested code that
you would like to share, then no problem. We accept it, whichever language may be written in!
Things OpenPTV currently needs, (in order of importance)¶
Move all the core algorithms into
liboptv
, clean and testedDocumentation
Cython wrappers for
C
algorithms, seepybind
directory.Flow field filtering and validation functions, see
post-ptv
repositoryBetter graphical user interface design, e.g. Qt, QML, …