Skip to content

Downstream packaging

TuxMake is design to be a standard Python project, and to be installed using standard Python tools. Packaging TuxMake for other systems should be trivial, and if it's not, this is probably a bug in TuxMake, please talk to us.

Build system

TuxMake uses flit, but the source releases published to PyPI do contain an autogenerated setup.py. So if you get releases from PyPI, you can build either using flit, or using the included setup.py. But if you get the sources from the git repository, then you will need to use flit.

You will notice that there is a Makefile in the root directory, but that is mostly used to automate running the tests during development. There are, however, a few targets that will be of interest for packagers:

  • make man will build a manpage that you can distribute with your binary packages (tuxmake.1 in the root directory).
  • make doc will build the documentation. The output will be in a directory called public in the root directly.
  • make bash_completion will generate a bash completion file in bash_completion/tuxmake, that you can include in your package.

Tests

TuxMake has both unit and integration tests, in test/test_*.py and test/integration/ respectively. Both are able to run against an installed version of TuxMake (as opposed to from the TuxMake sources).

The unit test can be executed with pytest, and the integration tests can be run by just calling scripts/run-tests test/integration.