Metadata-Version: 2.4
Name: kraken-build
Version: 0.52.0
Summary: Kraken is an extensible build orchestration system.
Project-URL: Bug Tracker, https://github.com/kraken-build/kraken-build/issues
Project-URL: Documentation, https://kraken-build.github.io/kraken-build/
Project-URL: Homepage, https://kraken-build.github.io/kraken-build/
Project-URL: Repository, https://github.com/kraken-build/kraken-build/
Author-email: Niklas Rosenstein <rosensteinniklas@gmail.com>
License-Expression: MIT
License-File: LICENSE
Requires-Python: <3.15,>=3.10
Requires-Dist: cyclopts<4.0.0,>=3.22.2
Requires-Dist: databind<5.0.0,>=4.5.0
Requires-Dist: deprecated>=1.2.18
Requires-Dist: httpx<0.29.0,>=0.28.0
Requires-Dist: keyring<26.0.0,>=25.0.0
Requires-Dist: loguru<0.8.0,>=0.7.2
Requires-Dist: networkx<4.0,>=3.1
Requires-Dist: packaging<25.1,>=25
Requires-Dist: stablehash>=0.2.2
Requires-Dist: termcolor<3.4,>=3.3
Requires-Dist: tomli-w<2.0.0,>=1.0.0
Requires-Dist: tomli<3.0.0,>=2.0.1
Requires-Dist: tomlkit<0.15.0,>=0.14.0
Requires-Dist: typeapi<3.0.0,>=2.3.0
Requires-Dist: typing-extensions>=4.6.0
Requires-Dist: uv<0.12.0,>=0.11.8
Description-Content-Type: text/markdown

# The Kraken build system

![kraken-logo](https://i.imgur.com/Lqjy2zi.png)

[![Python](https://github.com/kraken-build/kraken/actions/workflows/python.yaml/badge.svg)](https://github.com/kraken-build/kraken/actions/workflows/python.yaml)  
[![PyPI version](https://badge.fury.io/py/kraken-build.svg)](https://badge.fury.io/py/kraken-build)  
[![Documentation](https://img.shields.io/badge/Documentation-blue?style=flat&logo=gitbook&logoColor=white)](https://kraken-build.github.io/kraken/)  
[![Release](https://img.shields.io/badge/Release-dispatch-blue?style=flat&logo=github)](https://github.com/kraken-build/kraken/actions/workflows/release.yaml)

Kraken is a build system, but not in the traditional sense. It's focus is on the orchestration of high-level tasks,
such as organization of your repository configuration, code generation, invoking other build systems, etc. It is not a
replacement for tools like Uv, Cargo or CMake.

**Requirements**

*   CPython 3.10+

## Getting started

Currently, Kraken's OSS components are not very well documented and do not provide a convenient way to get started.
However, if you really want to try it, you can use the following steps:

Install `kraken-wrapper` (e.g. with [Uv](https://docs.astral.sh/uv/)) to get access to the `krakenw` command-line tool.

Create a `.kraken.py` script in your project's root directory.

Run `krakenw lock` to install `kraken-build` for your project in `build/.kraken/venv` and generate a `kraken.lock` file.

Run `krakenw run lint` to run the linters.

> Note that you can also use the `kraken` CLI (instead of `krakenw`), however this will disregard the `buildscript()`
> function, will not use the lock file and will use the version of Kraken that was installed globally.

## Development

This repository uses [Uv](https://docs.astral.sh/uv/), but not currently a Uv-workspace because Kraken does not support that, yet. You may
want to use a released version of `krakenw` instead of the live version in `kraken-wrapper/` to interact with this
repository. You can use [Mise](https://mise.jdx.dev/) to install all the tools you need.

```
$ mise install
$ eval "$(mise activate)"
$ krakenw run fmt lint test
```

## Release process

A release must be created by a maintainer that has write access to the `develop` branch.

```
$ ./scripts/bump.py X.Y.Z --release
```

The packages are published to PyPI from CI.
