Getting started
Brand new (Python) project
Makester tooling can provide scaffolding for common components of a coding project. Begin by assigning
your new project name to the MAKESTER__PROJECT_NAME
environment variable. The following example uses the project name supa-idea
:
Prime your new project repository:
Add Makester
as a submodule in your git
project repository:
Note
Some versions of git submodule add
will only fetch
the submodule folder without any content.
For first time initialisation (pull
the submodule):
The -i
switch will also install the Makester tooling that will be used in the following steps.
Create the Python project directory layout
Let Makester prepare your Python project boilerplate, by initialising with the -a
switch:
What just happened?
Makester takes care of the of the Python project scaffolding for you. You now have the basic boilerplate for a new Python coding project and can start work immediately on your problem domain. This includes:
- src-layout based on Packaging Python Projects.
- A sane,
.gitignore
, MIT license coverage and a basicREADME.md
. - Documentation scaffolding. More details on how to evolve the documentation suite.
- Pylint configuration. More targetted configuration options for linting.
- mypy for code type annotation and black for code formatting are ready to go. See make py-check.
- Placeholder for a project CLI that defaults to the
MAKESTER__PROJECT_NAME
. This can be invoked withvenv/bin/<MAKESTER__PROJECT_NAME>
- Makester tooling that is ephemeral and does not polute your project code base.
Existing project
If you already have a Makefile
, then just include Makester:
Run the primer script to build a minimal Makefile
:
Maintenance
To get the latest Makester
release:
Note
Prior to Makester v0.2.6 you will first need
to sync the Makester git
submodule:
Minimal mode
In certain circumstances, you may only need a limited subset of Makester capability. It is
possible to include only the Makester Makefile
s that you need with the MAKESTER__INCLUDES
environment variable. For example, to limit Makester to Python tooling, set MAKESTER__INCLUDES
as follows:
To make the settings persist, add the expression to your project's Makefile before the
include makefiles/makester.mk
call:
.SILENT:
.DEFAULT_GOAL := help
MAKESTER__INCLUDES := py
include makefiles/makester.mk
help: makester-help
@echo "(Makefile)\n"