diff --git a/Doc/DevGuide.mdown b/Doc/DevGuide.mdown index c5efb525..b86c538b 100755 --- a/Doc/DevGuide.mdown +++ b/Doc/DevGuide.mdown @@ -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 @@ -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 @@ -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" @@ -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" @@ -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. @@ -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. @@ -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. @@ -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 @@ -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): @@ -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] (`networkit@ira.uka.de`). -[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`.