diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2023-08-27 10:58:19 +0200 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2023-08-27 11:03:00 +0200 |
commit | 8f6a6d4ed92dbce9f484d41bb05c55dc42c10559 (patch) | |
tree | f338407bedaf7bc449ad7cb83445e905b52d1e30 | |
parent | sanitize linked libraries (diff) | |
download | cimple-8f6a6d4ed92dbce9f484d41bb05c55dc42c10559.tar.gz cimple-8f6a6d4ed92dbce9f484d41bb05c55dc42c10559.zip |
add DEVELOPMENT.md
Diffstat (limited to '')
-rw-r--r-- | DEVELOPMENT.md | 48 | ||||
-rw-r--r-- | README.md | 55 |
2 files changed, 50 insertions, 53 deletions
diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md new file mode 100644 index 0000000..07c65a7 --- /dev/null +++ b/DEVELOPMENT.md @@ -0,0 +1,48 @@ +There's a Makefile with useful shortcuts to build the project in the "build/" +directory: + + make build + +This command makes a CMake build directory in build/cmake/ and executes `make` +there. + +The default is to build using clang in `Debug` configuration. +You can choose a different compiler and configuration like so: + + make build COMPILER=gcc CONFIGURATION=Release + +### Testing + +After building, you can run the "test suite" (depends on Pytest). + + make test + +### Code coverage + +You can generate a code coverage report (depends on `gcovr`) in +build/coverage/: + + make coverage + +The latest code coverage report for the `master` branch can be found at +https://egor-tensin.github.io/cimple/coverage/. + +### Flame graphs + +Some performance analysis can be done by looking at flame graphs. +Generate them after building the project (depends on `perf` & [FlameGraph]): + + make test/perf + +[FlameGraph]: https://github.com/brendangregg/FlameGraph + +This will generate two flame graphs in build/flame_graphs/; they stress +slightly different parts of the system: + +* [flame_graph_output_simple.svg] for a CI script with short output, +* [flame_graph_output_long.svg] for a CI script with long output. + +[flame_graph_output_simple.svg]: https://egor-tensin.github.io/cimple/flame_graphs/flame_graph_output_simple.svg +[flame_graph_output_long.svg]: https://egor-tensin.github.io/cimple/flame_graphs/flame_graph_output_long.svg + +Follow the links above to view the latest flame graphs for the `master` branch. @@ -11,60 +11,9 @@ Development Build using CMake. Depends on json-c, libgit2, libsodium and SQLite. -There's a Makefile with useful shortcuts to build the project in the "build/" -directory: +See [DEVELOPMENT.md] for details. - make build - -This command makes a CMake build directory in build/cmake/ and executes `make` -there. - -The default is to build using clang in `Debug` configuration. -You can choose a different compiler and configuration like so: - - make build COMPILER=gcc CONFIGURATION=Release - -### Testing - -After building, you can run the "test suite" (depends on Pytest). - - make test - -### Code coverage - -You can generate a code coverage report (depends on `gcovr`) in -build/coverage/: - - make coverage - -The latest code coverage report for the `master` branch can be found at -https://egor-tensin.github.io/cimple/coverage/. - -### Flame graphs - -Some performance analysis can be done by looking at flame graphs. -Generate them after building the project (depends on `perf` & [FlameGraph]): - - make test/perf - -[FlameGraph]: https://github.com/brendangregg/FlameGraph - -This will generate two flame graphs in build/flame_graphs/; they stress -slightly different parts of the system: - -* [flame_graph_output_simple.svg] for a CI script with short output, -* [flame_graph_output_long.svg] for a CI script with long output. - -[flame_graph_output_simple.svg]: https://egor-tensin.github.io/cimple/flame_graphs/flame_graph_output_simple.svg -[flame_graph_output_long.svg]: https://egor-tensin.github.io/cimple/flame_graphs/flame_graph_output_long.svg - -Follow the links above to view the latest flame graphs for the `master` branch. - -### Code style - -Set up the git pre-commit hook by running `./scripts/setup-hooks.sh`. -This depends on `clang-format` and won't allow you to commit code that doesn't -pass the formatting check. +[DEVELOPMENT.md]: DEVELOPMENT.md Rationale --------- |