Name | kraken-build JSON |
Version |
0.43.1
JSON |
| download |
home_page | None |
Summary | None |
upload_time | 2025-02-27 11:44:31 |
maintainer | None |
docs_url | None |
author | Niklas Rosenstein |
requires_python | <3.14,>=3.10 |
license | MIT |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# The Kraken build system

[](https://github.com/kraken-build/kraken/actions/workflows/python.yaml)
[](https://badge.fury.io/py/kraken-build)
[](https://kraken-build.github.io/kraken/)
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 Poetry, Cargo or CMake.
__Requirements__
* CPython 3.10+
## Getting started
[Pipx]: https://pypa.github.io/pipx/
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:
1. Install `kraken-wrapper` (e.g. with [Pipx][]) to get access to the `krakenw` command-line tool.
2. Create a `.kraken.py` script in your project's root directory.
```py
from kraken.common import buildscript
buildscript(requirements=["kraken-build==0.32.3"])
from kraken.std.python import mypy, black, isort
mypy()
black()
isort()
```
3. Run `krakenw lock` to install `kraken-build` for your project in `build/.kraken/venv` and generate a `kraken.lock` file.
4. 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.
## How-to's
### Upgrade a project's lock file
To upgrade a project's lock file, run `krakenw lock --upgrade`. This will upgrade all dependencies to the latest
available version. If you want to upgrade based on updated constraints in `.kraken.py` without installing from scratch,
add the `--incremental` flag or set `KRAKENW_INCREMENTAL=1`.
## Development
[Slap]: https://github.com/NiklasRosenstein/slap
This repository uses [Slap][] to manage the Python project. After installing Slap with Pipx, run the following to
install Kraken for development.
```
$ slap venv -c --python python3.10
$ slap install --link
# If you have the Slap shell magic installed, it will activate the Venv in your shell.
$ slap venv -a
```
You may want to use a released version of `krakenw` to interact in the repository however:
$ krakenw run python.install
$ krakenw run fmt lint test
### Releases
A release must be created by a maintainer that has write access to the `develop` branch. The release process
is automated using Slap.
$ slap release -tp <patch|minor|major|x.y.z>
$ slap publish
Raw data
{
"_id": null,
"home_page": null,
"name": "kraken-build",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.10",
"maintainer_email": null,
"keywords": null,
"author": "Niklas Rosenstein",
"author_email": "rosensteinniklas@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/c1/5e/d044813f205d817b6c43b30e0816dbb672debec0da584ef3618f40d5abec/kraken_build-0.43.1.tar.gz",
"platform": null,
"description": "# The Kraken build system\n\n\n\n[](https://github.com/kraken-build/kraken/actions/workflows/python.yaml)\n[](https://badge.fury.io/py/kraken-build)\n[](https://kraken-build.github.io/kraken/)\n\nKraken is a build system, but not in the traditional sense. It's focus is on the orchestration of high-level tasks,\nsuch as organization of your repository configuration, code generation, invoking other build systems, etc. It is not a\nreplacement for tools like Poetry, Cargo or CMake.\n\n__Requirements__\n\n* CPython 3.10+\n\n## Getting started\n\n [Pipx]: https://pypa.github.io/pipx/\n\nCurrently, Kraken's OSS components are not very well documented and do not provide a convenient way to get started.\nHowever, if you really want to try it, you can use the following steps:\n\n1. Install `kraken-wrapper` (e.g. with [Pipx][]) to get access to the `krakenw` command-line tool.\n2. Create a `.kraken.py` script in your project's root directory.\n\n ```py\n from kraken.common import buildscript\n buildscript(requirements=[\"kraken-build==0.32.3\"])\n \n from kraken.std.python import mypy, black, isort\n mypy()\n black()\n isort()\n ```\n3. Run `krakenw lock` to install `kraken-build` for your project in `build/.kraken/venv` and generate a `kraken.lock` file.\n4. Run `krakenw run lint` to run the linters.\n\n> Note that you can also use the `kraken` CLI (instead of `krakenw`), however this will disregard the `buildscript()`\n> function, will not use the lock file and will use the version of Kraken that was installed globally.\n\n## How-to's\n\n### Upgrade a project's lock file\n\nTo upgrade a project's lock file, run `krakenw lock --upgrade`. This will upgrade all dependencies to the latest\navailable version. If you want to upgrade based on updated constraints in `.kraken.py` without installing from scratch,\nadd the `--incremental` flag or set `KRAKENW_INCREMENTAL=1`.\n\n## Development\n\n [Slap]: https://github.com/NiklasRosenstein/slap\n\nThis repository uses [Slap][] to manage the Python project. After installing Slap with Pipx, run the following to\ninstall Kraken for development.\n\n```\n$ slap venv -c --python python3.10\n$ slap install --link\n# If you have the Slap shell magic installed, it will activate the Venv in your shell.\n$ slap venv -a\n```\n\nYou may want to use a released version of `krakenw` to interact in the repository however:\n\n $ krakenw run python.install\n $ krakenw run fmt lint test\n\n### Releases\n\nA release must be created by a maintainer that has write access to the `develop` branch. The release process\nis automated using Slap.\n\n $ slap release -tp <patch|minor|major|x.y.z>\n $ slap publish\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": null,
"version": "0.43.1",
"project_urls": {
"Bug Tracker": "https://github.com/kraken-build/kraken-build/issues",
"Documentation": "https://kraken-build.github.io/kraken-build/",
"Homepage": "https://kraken-build.github.io/kraken-build/",
"Repository": "https://github.com/kraken-build/kraken-build/"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "4febb2402046c59c3ce19d316ef5e21b665f81609dc3959d1598ec3b069eb924",
"md5": "a96a18671c44432d4309888dbdccb19e",
"sha256": "e316a763fda51c069f6477caa6d0c3332d577b9df01729329efdb76e15bab8a9"
},
"downloads": -1,
"filename": "kraken_build-0.43.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a96a18671c44432d4309888dbdccb19e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.14,>=3.10",
"size": 252569,
"upload_time": "2025-02-27T11:44:28",
"upload_time_iso_8601": "2025-02-27T11:44:28.972263Z",
"url": "https://files.pythonhosted.org/packages/4f/eb/b2402046c59c3ce19d316ef5e21b665f81609dc3959d1598ec3b069eb924/kraken_build-0.43.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c15ed044813f205d817b6c43b30e0816dbb672debec0da584ef3618f40d5abec",
"md5": "93b7d1327340223a64870915a9212786",
"sha256": "60a9ffce99aec7793fe3d7f71f068202c98097a0e1ed3ac53972bced04ac097a"
},
"downloads": -1,
"filename": "kraken_build-0.43.1.tar.gz",
"has_sig": false,
"md5_digest": "93b7d1327340223a64870915a9212786",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.10",
"size": 174452,
"upload_time": "2025-02-27T11:44:31",
"upload_time_iso_8601": "2025-02-27T11:44:31.875687Z",
"url": "https://files.pythonhosted.org/packages/c1/5e/d044813f205d817b6c43b30e0816dbb672debec0da584ef3618f40d5abec/kraken_build-0.43.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-27 11:44:31",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "kraken-build",
"github_project": "kraken-build",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "kraken-build"
}