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 manwill build a manpage that you can distribute with your binary packages (tuxmake.1in the root directory).make docwill build the documentation. The output will be in a directory calledpublicin the root directly.make bash_completionwill generate a bash completion file inbash_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.