# Craft Parts
[![Documentation Status](https://readthedocs.com/projects/canonical-craft-parts/badge/?version=latest)](https://canonical-craft-parts.readthedocs-hosted.com/en/latest/?badge=latest)
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.
Apt package prerequisites for this development environment on an Ubuntu system can be installed with:
```bash
sudo apt install libapt-pkg-dev intltool fuse-overlayfs
```
On a Debian or Ubuntu system, the appropriate package can be installed by running
```bash
apt source python-apt
pip install ./python-apt_*
```
or by downloading and installing the appropriate source tarball. On Ubuntu these are:
* 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
## Running tests
To run all tests in the suite run:
```
make tests
```
## 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)
Raw data
{
"_id": null,
"home_page": "https://github.com/canonical/craft-parts",
"name": "craft-parts",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": null,
"author": "Canonical Ltd.",
"author_email": "snapcraft@lists.snapcraft.io",
"download_url": "https://files.pythonhosted.org/packages/af/30/22154fdfc6ec43cdce792855fe7708239ebae2afba922c0159ad7f16f745/craft-parts-1.29.0.tar.gz",
"platform": null,
"description": "# Craft Parts\n\n[![Documentation Status](https://readthedocs.com/projects/canonical-craft-parts/badge/?version=latest)](https://canonical-craft-parts.readthedocs-hosted.com/en/latest/?badge=latest)\n\nCraft-parts provides a mechanism to obtain data from different sources,\nprocess it in various ways, and prepare a filesystem subtree suitable for\ndeployment. The components used in its project specification are called\n*parts*, which can be independently downloaded, built and installed, and\nalso depend on each other in order to assemble the subtree containing the\nfinal artifacts.\n\n\n# License\n\nFree software: GNU Lesser General Public License v3\n\n\n# Documentation\n\nhttps://canonical-craft-parts.readthedocs-hosted.com/en/latest/\n\n# Contributing\n\nA `Makefile` is provided for easy interaction with the project. To see\nall available options run:\n\n```\nmake help\n```\n\n## Development Environment\n\nIn order to develop any `apt` related items, the `python-apt` package is needed.\nThe `apt` extra will require this package in general.\n\nApt package prerequisites for this development environment on an Ubuntu system can be installed with:\n\n```bash\nsudo apt install libapt-pkg-dev intltool fuse-overlayfs\n```\n\nOn a Debian or Ubuntu system, the appropriate package can be installed by running\n\n```bash\napt source python-apt\npip install ./python-apt_*\n```\n\nor by downloading and installing the appropriate source tarball. On Ubuntu these are:\n\n* 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\n* jammy (22.04): https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/python-apt/2.4.0ubuntu1/python-apt_2.4.0ubuntu1.tar.xz\n* lunar (23.04): https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/python-apt/2.5.3ubuntu1/python-apt_2.5.3ubuntu1.tar.xz\n\n## Running tests\n\nTo run all tests in the suite run:\n\n```\nmake tests\n```\n\n## Adding new requirements\n\nIf a new dependency is added to the project run:\n\n```\nmake freeze-requirements\n```\n\n## Verifying documentation changes\n\nTo locally verify documentation changes run:\n\n```\nmake docs\n```\n\nAfter running, newly generated documentation shall be available at\n`./docs/_build/html/`.\n\n\n## Committing code\n\nPlease follow these guidelines when committing code for this project:\n\n- Use a topic with a colon to start the subject\n- Separate subject from body with a blank line\n- Limit the subject line to 50 characters\n- Do not capitalize the subject line\n- Do not end the subject line with a period\n- Use the imperative mood in the subject line\n- Wrap the body at 72 characters\n- Use the body to explain what and why (instead of how)\n",
"bugtrack_url": null,
"license": "GNU General Public License v3",
"summary": "Craft parts tooling",
"version": "1.29.0",
"project_urls": {
"Homepage": "https://github.com/canonical/craft-parts"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "af3022154fdfc6ec43cdce792855fe7708239ebae2afba922c0159ad7f16f745",
"md5": "52046521988f068d5e9a1833783932b3",
"sha256": "09958d5c5802cf48fd9d7d189f5c30bf7a4721d0b668bd14e47bee32edd25a5b"
},
"downloads": -1,
"filename": "craft-parts-1.29.0.tar.gz",
"has_sig": false,
"md5_digest": "52046521988f068d5e9a1833783932b3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 325793,
"upload_time": "2024-03-21T12:53:43",
"upload_time_iso_8601": "2024-03-21T12:53:43.402271Z",
"url": "https://files.pythonhosted.org/packages/af/30/22154fdfc6ec43cdce792855fe7708239ebae2afba922c0159ad7f16f745/craft-parts-1.29.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-21 12:53:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "canonical",
"github_project": "craft-parts",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "craft-parts"
}