Craft parts tooling
Project description
Craft Parts
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
- focal (20.04): https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/python-apt/2.0.1ubuntu0.20.04.1/python-apt_2.0.1ubuntu0.20.04.1.tar.xz
- jammy (22.04): https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/python-apt/2.4.0ubuntu1/python-apt_2.4.0ubuntu1.tar.xz
- lunar (23.04): https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/python-apt/2.5.3ubuntu1/python-apt_2.5.3ubuntu1.tar.xz
- noble (24.04): https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/python-apt/2.7.7ubuntu1/python-apt_2.7.7ubuntu1.tar.xz
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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file craft_parts-2.1.0.tar.gz
.
File metadata
- Download URL: craft_parts-2.1.0.tar.gz
- Upload date:
- Size: 340.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e23b36407a15688949b3a3036404914272a8a8a6d2642f43f1f665963ab102c5 |
|
MD5 | 227c06ea52f8bdd4ed51838d2185656e |
|
BLAKE2b-256 | 7071936ada107a69404006e0756b4d38e41406cf147e09f5bf4f6ae47b6b7a90 |
File details
Details for the file craft_parts-2.1.0-py3-none-any.whl
.
File metadata
- Download URL: craft_parts-2.1.0-py3-none-any.whl
- Upload date:
- Size: 434.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33b9cfdc9cbc9f8b02478f428610f34f6f44514fd807ad89a0d984f979c7d2de |
|
MD5 | f0ea84b393250d7265f0f51036470e2b |
|
BLAKE2b-256 | 0685a95a0740913634b57397888c7d2a56250f6356354a8124d983f0ae1ec416 |