Skip to main content

craftr-core

The craftr-core package provides the core build system functions for the Craftr build system.

Concepts

Projects

A project is the main unit that is used to represent a collection of tasks. A project has a collection of tasks and possibly other sub-projects. Every project has a name and unique ID (aka. path) inside the current build context.

Tasks

Tasks encapsulate the configuration and logic of an operation in a build. Examples include the compilation or generation of source files, copying or compressing files. Such operations are usually described using a sequence of Actions, see below. Dependencies between individual tasks describe a directed acyclic graph used for determining the order in which tasks need to be executed.

A task has a set of input and output files. If an input files changes or an output file does not exist, a task is considered outdated and will be executed again. There are also tasks that are not executed by default unless depended on by another tasks that is executed or explicitly specified as to be executed in a given execution of the build graph.

Actions

An action is a concrete unit of work that can be executed as part of a build. A task is usually described by one or more actions. Dependencies between actions express the order in which they are to be executed relative to the other actions produced by the same task.

Plugins

Plugins are reusable pieces of build logic that can be applied to projects. A plugin usually registers a new task or task factory in the project which is subsequently accessible via the project.ext object or from the namespace object returned by Project.apply().

Settings

Craftr settings are files in a line-based key=value format. There are a bunch of settings that control the behaviour of the Craftr core components. No settings file is loaded implicitly by the Context class.

Option Default value
core.build_directory .build
core.executor craftr.core.executor.default.DefaultExecutor
core.plugin.loader craftr.core.plugin.default.DefaultPluginLoader
core.plugin.loader.delegates craftr.core.project.loader.default.DefaultProjectLoader,craftr.build.loader.DslProjectLoader?
core.plugin.entrypoint craftr.plugins
core.project.loader craftr.core.project.loader.delegate.DelegateProjectLoader
core.verbose False
core.task_selector craftr.core.task.selector.default.DefaultTaskSelector

Copyright © 2021 Niklas Rosenstein

Metadata

Release files for craftr-core 0.2.2

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

Source distribution (sdist)

Source distribution for craftr-core 0.2.2
File Size Uploaded
craftr-core-0.2.2.tar.gz 27.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for craftr-core 0.2.2
File Interpreter ABI Platform
craftr_core-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 65.2 kB

Release files / craftr-core-0.2.2.tar.gz

Download URL craftr-core-0.2.2.tar.gz
Size 27.7 kB
Tags Source
SHA-256 checksum
How to use checksums
1fa23b4bc87dbcf8592c3e52a52781705b538afa90db6cf5b9b6bd6f5a6505cb
BLAKE2b-256 checksum
How to use checksums
3fd23b3fc028fea86ce72b37d708a9cc8a9a8d4166d808717921ba999458472f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.10

Release files / craftr_core-0.2.2-py3-none-any.whl

Download URL craftr_core-0.2.2-py3-none-any.whl
Size 37.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f26c090edcaff4cce5349b95814b23fa9e7dd4b9bf094448a8115a9f6dc2ebec
BLAKE2b-256 checksum
How to use checksums
e1e4db1ff088d9390c3a20dcb8accdc6e966836a65ce828e23f572e7f959a233
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.10

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

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