Skip to main content

Craft parts tooling

Project description

Craft Parts

Documentation Status

Craft-parts provides a mechanism to obtain data from different sources, process it in various ways, and prepare a filesystem subtree suitable for deployment. The components used in its project specification are called parts, which can be independently downloaded, built and installed, and also depend on each other in order to assemble the subtree containing the final artifacts.

License

Free software: GNU Lesser General Public License v3

Documentation

https://canonical-craft-parts.readthedocs-hosted.com/en/latest/

Contributing

A Makefile is provided for easy interaction with the project. To see all available options run:

make help

Development Environment

In order to develop any apt related items, the python-apt package is needed. The apt extra will require this package in general.

Ubuntu 22.04 is assumed in the rest of this setup

Development packages, such as those to build the Apt Python package are required:

sudo apt install libapt-pkg-dev intltool fuse-overlayfs python3.10-venv python3-dev gcc g++ make

The following are required to run integration tests (it is a default target for make tests):

sudo snap install chisel --candidate
sudo apt install ninja-build cmake scons qt5-qmake p7zip rpm \
                 autoconf automake autopoint gcc git gperf help2man libtool texinfo \
                 pkg-config

Create virtual environment to develop in and activate it:

python3 -m venv .venv
source .venv/bin/activate

Install the required Python packages

pip install -e .[dev,docs]
pip install https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/python-apt/2.4.0ubuntu1/python-apt_2.4.0ubuntu1.tar.xz

Python Apt across Ubuntu series

Running tests

To run all tests in the suite run:

make tests

To get coverage information for Craft Parts from the unit tests:

make coverage

Adding new requirements

If a new dependency is added to the project run:

make freeze-requirements

Verifying documentation changes

To locally verify documentation changes run:

make docs

After running, newly generated documentation shall be available at ./docs/_build/html/.

Committing code

Please follow these guidelines when committing code for this project:

  • Use a topic with a colon to start the subject
  • Separate subject from body with a blank line
  • Limit the subject line to 50 characters
  • Do not capitalize the subject line
  • Do not end the subject line with a period
  • Use the imperative mood in the subject line
  • Wrap the body at 72 characters
  • Use the body to explain what and why (instead of how)

Project details


Release history Release notifications | RSS feed

This version

2.0.0

Download files

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

Source Distribution

craft_parts-2.0.0.tar.gz (534.6 kB view details)

Uploaded Source

Built Distribution

craft_parts-2.0.0-py3-none-any.whl (430.8 kB view details)

Uploaded Python 3

File details

Details for the file craft_parts-2.0.0.tar.gz.

File metadata

  • Download URL: craft_parts-2.0.0.tar.gz
  • Upload date:
  • Size: 534.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for craft_parts-2.0.0.tar.gz
Algorithm Hash digest
SHA256 2c547f2b2fc9a0df8d9be7cca36506434f15df0856f9ea121b5a40061173338a
MD5 9db5e25ab7d2d64e5095d9cf58e4d5e7
BLAKE2b-256 3678b9572d4b5b6cbae0d810afd19bfec5d5d84178efdedb341c5000c4945639

See more details on using hashes here.

File details

Details for the file craft_parts-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: craft_parts-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 430.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for craft_parts-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aa09b904c26baa0b2db2be97463a48eae091cf84500f04ff5574b55c6292d58f
MD5 41c0db6aa709d08f517a4039fa64bc2d
BLAKE2b-256 6eefba71bde9338fb55ac546020fcabf32c7d87ca9fa273f41d4558d1f1d01ad

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