Skip to content

Getting started

Installing Makester in standalone mode

Makester is installed by running one of the following commands in your terminal. You can install this via the command-line with either curl, wget or another similar tool.

Method Command
curl sh -c "$(curl -fsSL https://raw.githubusercontent.com/loum/makester/main/tools/install.sh)"
wget sh -c "$(wget -O- https://raw.githubusercontent.com/loum/makester/main/tools/install.sh)"
fetch sh -c "$(fetch -o - https://raw.githubusercontent.com/loum/makester/main/tools/install.sh)"

Integrating Makester into a new project

Begin by assigning your new project name to the MAKESTER__PRIMER_PROJECT_NAME. This will eventually be assigned to the MAKESTER__PROJECT_NAME Makester variable. The following example uses the primer project name supa-idea:

export MAKESTER__PRIMER_PROJECT_NAME=supa-idea

Prime your new project repository:

mkdir $MAKESTER__PRIMER_PROJECT_NAME && cd $_ && git init && git commit -m "initial commit" --allow-empty

Next, prepare your Makefile. The Makefile will feature targets that can help you get things done. Select a scenario from below.

Brand new generic project

For a generic project, or if you want the most minimal Makefile simply to get you started:

make -f ~/.makester/Makefile makester-minimal

Should should be able to access your project's help:

make help

You can now evolve your Makefile to suit your project needs.

Brand new Python project

Makester tooling can provide opionionated scaffolding for common components of a Python coding project.

Initialise Python project boilerplate.
make -f ~/.makester/Makefile py-proj-makefile && make py-proj-primer && make init-dev

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 basic README.md.
  • Documentation scaffolding. More details on how to evolve the documentation suite.
  • Pylint configuration. More targeted 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. For our supa-idea project, this can be invoked with venv/bin/supa_idea --help to render the following output:
    Usage: supa_idea [OPTIONS]
    
    Script entry point.
    
    ╭─ Options ────────────────────────────────────────────────────────────────╮
     --help          Show this message and exit.                              ╰──────────────────────────────────────────────────────────────────────────╯
    
  • Dynamic versioning.

Existing project

If you already have a Makefile, then just include Makester:

#
# Makester overrides.
#
MAKESTER__STANDALONE := true

include $(HOME)/.makester/makefiles/makester.mk

Maintenance

Keep up-to-date with Makester:

sh $HOME/.makester/tools/install.sh --upgrade

top