From 8f6a6d4ed92dbce9f484d41bb05c55dc42c10559 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Sun, 27 Aug 2023 10:58:19 +0200 Subject: add DEVELOPMENT.md --- DEVELOPMENT.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 55 ++----------------------------------------------------- 2 files changed, 50 insertions(+), 53 deletions(-) create mode 100644 DEVELOPMENT.md 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. diff --git a/README.md b/README.md index 5df79ad..8454678 100644 --- a/README.md +++ b/README.md @@ -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 --------- -- cgit v1.2.3