Skip to content

Latest commit

 

History

History
82 lines (55 loc) · 2.87 KB

File metadata and controls

82 lines (55 loc) · 2.87 KB

Develop

.. toctree::
   :maxdepth: 1

   Development environment <environment>
   Create a release <release>
   Use of Git <git>
   Examples <example/index>


Notes on software we use

CMake

Pure Python developers may not already be familiar with CMake. CMake solves the problem of managing dependencies between input files (sources) and output files (targets) in a platform independent way.

For example, documentation is automatically generated from the Python code, using Sphinx. With CMake we can declare which commands are needed to do this.

CMake will generate project files that will eventually do whatever it takes to generate all output targets, like the generated documentation. The project files generated can be any kind you prefer, like GNU Makefile, Ninja, Microsoft Visual Studio, etc.

Software developers often have a preference for the contents of their software development environment. They may like to use a certain operating system, integrated development environment, editor, etc. The use of CMake helps to allow them to keep using their preferred environment.

If you need to learn more about CMake then the Professional CMake book is highly recommended.

pre-commit

When working with multiple people on a code-base, there have to be some rules in place to keep the code in a good shape. There are many tools that can help enforce such rules. Development environments can be configured in such a way that such tools are run while editing the code or at least just before changes are committed to the repository. Pre-commit supports this latter scenario. When installed and configured, it runs a set of tools on the changed source files and will only allow the commit to succeed if none of the tools reports an error.

Important

When helping to improve the software, it is essential that pre-commit is installed and configured before committing any changes to the repository.

Background information