Skip to main content

The core framework for the Craftr build system.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

craftr-core-0.2.0.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

craftr_core-0.2.0-py3-none-any.whl (37.5 kB view details)

Uploaded Python 3

File details

Details for the file craftr-core-0.2.0.tar.gz.

File metadata

  • Download URL: craftr-core-0.2.0.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for craftr-core-0.2.0.tar.gz
Algorithm Hash digest
SHA256 bc5d31de685c887df6b434dbd164ed534c0da8eb3b1ff55c386db200d9e9b53b
MD5 711b95d282ff27d5d19f943d64c92c9e
BLAKE2b-256 07efe8c2d0d649e3d1b952e4b43b98366084721437dba844f2bd88f811debefa

See more details on using hashes here.

File details

Details for the file craftr_core-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: craftr_core-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 37.5 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for craftr_core-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d5cea4f069678ddb62e5ae2b2b2c5de8c341985ee0f5da53fcc0aab7065482b0
MD5 7b6ee5c52d1f42008790e00620eca7f8
BLAKE2b-256 6205b55f00bcaf6052af2795c09c368887a9e2a536c5506dbd2b7fdbacc07aa9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page