Skip to main content

tests release quality-gate-status security-rating vulnerabilities codecov ruff ty pypi status license downloads python

bakefile logo

bakefile

An OOP task runner. Write tasks once, reuse everywhere. Like a Makefile, but reusable and in Python.

Documentation: bakefile.wisl.dev

Define tasks as Python methods, list them, and run them with bake

Why bakefile?

  • Reusable - Makefile and Justfile work well, but reusing tasks across projects is hard. bakefile makes tasks Python class methods, so you inherit and share them like any other code.
  • Python - Write Python instead of a DSL. Real language features, type checking with ruff and ty, and the rest of Python's tooling. ctx.run() still handles normal CLI commands through subprocess.
  • Language-agnostic - Tasks are Python, but the commands they run can target any language (Go, Rust, JS, etc.).

Tasks are class methods you inherit, override, and compose, so reusable task libraries (bakelib Spaces) just work. bakefile is new, built on modern typed Python (Typer + Pydantic). Production-proven: I run it daily at my company.

See how bakefile compares to Make, Just, Task, mise, and Invoke in Why bakefile.

Installation

pip install bakefile

Or via uv:

uv tool install bakefile

Quick Start

from bake import Bakebook, command, console


class MyBakebook(Bakebook):
    @command()
    def build(self) -> None:
        console.echo("Building...")
        self.ctx.run("cargo build")


bakebook = MyBakebook()
bake build

Generate a bakefile with bakefile init, or start from the simple example. Full walkthrough in the quickstart.

Documentation

Full documentation lives at bakefile.wisl.dev:

Development

git clone https://github.com/wislertt/bakefile.git
cd bakefile

uv tool install bakefile

bake setup-dev        # Setup development environment (macOS only)
bake assert-setup-dev # Verify the setup is correct

bake test             # Unit tests (fast)
bake test-integration # Integration tests (slow, real subprocess)
bake lint             # prettier, toml-sort, ruff format, ruff check, ty, deptry

bake setup-dev only supports macOS. On other platforms, run bake --dry-run setup-dev to see the commands and follow platform-specific alternatives.

The project uses uv for dependency management.

Contributing

Contributions are welcome. See CLAUDE.md for development guidelines, including project structure, testing conventions, and the development workflow.

Author

Wisaroot Lertthaweedech – wisl.dev

License

Licensed under the Apache License 2.0. See LICENSE for the full text.

The wordmark in docs/img/brand/ uses outlined paths from Shantell Sans, licensed under the SIL Open Font License 1.1.

Metadata

Release files for bakefile 0.0.79

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bakefile 0.0.79
File Size Uploaded
bakefile-0.0.79.tar.gz 86.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bakefile 0.0.79
File Interpreter ABI Platform
bakefile-0.0.79-py3-none-any.whl Python 3 none any Details

Total release size: 205.4 kB

Release files / bakefile-0.0.79.tar.gz

Download URL bakefile-0.0.79.tar.gz
Size 86.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8145558ed9294053fabd72b3ac3408632d1adfb91788245355099d157831d3a1
BLAKE2b-256 checksum
How to use checksums
b71d49c517b0ff12de0d744fdf609dc6de0521decb524593a905d184b6055473
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bakefile-0.0.79-py3-none-any.whl

Download URL bakefile-0.0.79-py3-none-any.whl
Size 119.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
800544ed700fc49599ce7539c4cbc0ead6a40a9ee0023b69133965d012dfdb8d
BLAKE2b-256 checksum
How to use checksums
85688d2e390c6679c6d4afb2af50734a8fb4dea775ea99076b4cdaf4f37e95ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.0.81

2 release files

0.0.80

2 release files

This release

0.0.79 This release

2 release files

0.0.77

2 release files

0.0.76

2 release files

0.0.75

2 release files

0.0.74

2 release files

0.0.73

2 release files

0.0.72

2 release files

0.0.71

2 release files

0.0.70

2 release files

0.0.69

2 release files

0.0.68

2 release files

0.0.64

2 release files

0.0.63

2 release files

0.0.62

2 release files

0.0.61

2 release files

0.0.60

2 release files

0.0.59

2 release files

0.0.55

2 release files

0.0.54

2 release files

0.0.53

2 release files

0.0.52

2 release files

0.0.51

2 release files

0.0.50

2 release files

0.0.48

2 release files

0.0.47

2 release files

0.0.46

2 release files

0.0.45

2 release files

0.0.44

2 release files

0.0.40

2 release files

0.0.39

2 release files

0.0.38

2 release files

0.0.31

2 release files

0.0.30

2 release files

0.0.29

2 release files

0.0.28

2 release files

0.0.27

2 release files

0.0.26

2 release files

0.0.25

2 release files

0.0.24

2 release files

0.0.23

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.20

2 release files

0.0.19

2 release files

0.0.18

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page