Skip to content

Commit

Permalink
updated Dev guide
Browse files Browse the repository at this point in the history
  • Loading branch information
clstaudt committed Apr 28, 2016
1 parent c8c4618 commit 8df8f96
Showing 1 changed file with 15 additions and 15 deletions.
30 changes: 15 additions & 15 deletions Doc/DevGuide.mdown
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ The NetworKit main development repository is at [http://algohub.iti.kit.edu/parc

## Branches

Currently, the two most important branches of NetworKit are `Dev` and `default`.
Currently, the two most important branches of NetworKit are `Dev` and `default`.

________ Dev
____/________ default
Expand All @@ -23,7 +23,7 @@ As the name says, `default` is the branch which you are on if you do not switch.

`Dev` is the development branch and most of the development of new features happens in this branch. This is also where new releases are being prepared. When pushing into this branch, think about whether your code is ready for the core development team to work with and will be suitable for a release in the foreseeable future.

It can be appropriate to create additional branches for projects, features, developer teams etc. Creation of branches should be coordinated with the core development team. For this purpose, post to the [developers e-mail list][list].
It can be appropriate to create additional branches for projects, features, developer teams etc. Creation of branches should be coordinated with the core development team. For this purpose, post to the [e-mail list][list].

## Tags

Expand Down Expand Up @@ -55,7 +55,7 @@ Bugfixes are changes that should be immediately visible to users of NetworKit, s


Example:

hg up default
...
hg com -m "fixed bug xyz"
Expand All @@ -67,14 +67,14 @@ Example:
#### Releasing New Features

When new features should be released, the `Dev` branch is merged into the `default` branch. Additional testing and cleanup is performed before that happens. The new major or minor release is then tagged with a version number.

______________________________________________________ Dev
/ ^ new feature prepare release ^ \ < merge Dev into default
____/________________________________________\______________ default
^ tag version


Example:
Example:

hg up Dev
hg com -m "ready for release X.Y"
Expand Down Expand Up @@ -119,7 +119,7 @@ We also ask student teams to adhere to the following conventions:

### Reviewing Student Exercises

Incoming pull requests appear as notifications on [algohub.iti.kit.edu](http://algohub.iti.kit.edu). It is also possible to receive notifications via e-mail.
Incoming pull requests appear as notifications on [algohub.iti.kit.edu](http://algohub.iti.kit.edu). It is also possible to receive notifications via e-mail.


1. Before the course starts, create an appropriate branch for the course (e.g. `Networks101`). Derive the branch from the `Dev` branch.
Expand Down Expand Up @@ -155,7 +155,7 @@ The following general conventions apply to all NetworKit developers.
### Versioning

- Before you commit, make sure your code compiles and run the unit tests. Never push code which breaks the build for others.
- Commit regularly and often to your local repository.
- Commit regularly and often to your local repository.
- Use meaningful commit messages.
- Get the newest changes from the repository regularly and merge them into your local repository.
- Make sure that you merged correctly and did not break other people's work.
Expand All @@ -166,11 +166,11 @@ The following general conventions apply to all NetworKit developers.

### Unit Tests and Testing

Every new feature must be covered by a unit test. Omitting unit tests makes it very likely that your feature will break silently as the project develops, leading to unneccessary work in tracing back the source of the error.
Every new feature must be covered by a unit test. Omitting unit tests makes it very likely that your feature will break silently as the project develops, leading to unneccessary work in tracing back the source of the error.

Unit tests for the C++ part of NetworKit are based on the `googletest` library. For more information read the [googletest primer](http://code.google.com/p/googletest/wiki/Primer). The Python test framework currently relies on `nose` to collect the tests.

- Each source folder contains a `test` folder with `googletest` classes. Create the unit tests for each feature in the appropriate `test/*GTest` class by adding a `TEST_F` function.
- Each source folder contains a `test` folder with `googletest` classes. Create the unit tests for each feature in the appropriate `test/*GTest` class by adding a `TEST_F` function.
- Prefix standard unit tests with `test` and experimental feature tests with `try`. A `test*` must pass when pushed to the main repository, a `try*` is allowed to fail.
- Keep the running time of test functions to the minimum needed for testing functionality. Testing should be fast, long-running unit tests look like infinite loops.
- If the unit test requires a data set, add the file to the `input/` folder. Only small data sets (a few kilobytes maximum) are acceptable in the repository.
Expand All @@ -179,8 +179,8 @@ Unit tests for the C++ part of NetworKit are based on the `googletest` library.
To build and run the tests you need the [gtest library](https://code.google.com/p/googletest/). Assuming, gtest is successfully installed and you add the paths to your build.conf, the unit tests should be compiled with:

scons --optimize=Dbg --target=Tests
To verify that the code was built correctly: Run all unit tests with

To verify that the code was built correctly: Run all unit tests with

./NetworKit-Tests-Dbg --tests

Expand Down Expand Up @@ -238,8 +238,8 @@ The code above exposes the C++ class definition to Cython - but not yet to Pytho

cdef class Dijkstra:
""" Dijkstra's SSSP algorithm.
Returns list of weighted distances from node source,
i.e. the length of the shortest path from @a source
Returns list of weighted distances from node source,
i.e. the length of the shortest path from @a source
to any other node."""
cdef _Dijkstra* _this
def __cinit__(self, Graph G, source):
Expand All @@ -260,9 +260,9 @@ The docstring between the triple quotation marks can be accessed through Python'

## Contact

To discuss important changes to NetworKit, use the [developers e-mail list][list] (`networkit-dev@ira.uka.de`).
To discuss important changes to NetworKit, use the [e-mail list][list] (`[email protected]`).

[list]: https://lists.ira.uni-karlsruhe.de/mailman/listinfo/networkit-dev
[list]: https://lists.ira.uni-karlsruhe.de/mailman/listinfo/networkit

To suggest improvements to workflows and conventions, write to `christian.staudt @ kit.edu`.

Expand Down

0 comments on commit 8df8f96

Please sign in to comment.