Thanks for contributing to TTK!
Please find below a few guidelines that we invite you to consider before making a pull request.
-
To make TTK's source code more homogeneous and readable, we use clang-format. A style file is already available in TTK's source tree. Before creating a new pull request, please make sure that you clang-formatted your local repository by entering the following command at the top of TTK's source tree:
$ clang-format -i -style=file core/*/*/*h core/*/*/*cpp core/*/*/*inl standalone/*/*/*cpp
-
To make your life even easier, we recommend that you setup a clang-format pre-commit hook, which will automatically run clang-format on any of your commits to your local repository. For this, we recommend to use scripts such as this one.
- TTK uses some basic continuous integration, which consists in testing for build success under Linux (with travis) and Windows (with app-veyor) upon each commit or pull request. Your pull request will not be merged if it fails these tests.
- To make your life easier, we recommend that you sign up for both services (which both offer free plans) and that you connect your TTK github fork to these services. This will run the build tests upon each of your commits to your local TTK repository.
- Before submitting a new module, we invite you to read our Guidelines for Developing a New TTK Module. Also, before submitting your pull-request to TTK's source repository, please make sure that your fork is in sync with the latest version of TTK's source tree (typically by entering a command like
git pull ttk-public master
, wherettk-public
is the name of your remote pointing to TTK's public source tree). - Please submit a pull-request with an example to ttk-data:
- Provide a ParaView state file (*.pvsm) in the
states/
directory which runs your new module. This example will be used to both test and demo your module. - Provide new data sets if needed. For new data sets, please update the README file to include the corresponding references.
- Make sure to remove all absolute paths from the state file example generated by ParaView (with a text editor). The state files are supposed to be run with ParaView from the root directory of ttk-data (see TTK's tutorial page for examples).
- Provide a ParaView state file (*.pvsm) in the
- Please submit a pull-request to topology-tool-kit.github.io:
- For this, generate a screenshot for the above ParaView state file example. Please include on the left of your screenshot a terminal with TTK's output (see examples on TTK's gallery page). Please use a dark color theme if possible.
- Place that screenshot in
img/gallery/
- Prepare, if possible, a video tutorial, similar to those available on TTK's tutorial page. In this video, you should:
- Open a terminal and load your state file demo to explain what it does and what it shows.
- Re-open ParaView and re-create your state file pipeline from scratch (to show people how to put things together)
From our experience, video tutorials are essential to attract users towards new features. So if you want people to use your new module, you want to prepare a video tutorial. There are several excellent software packages for video editing (for instance kdenlive)