Skip to main content

# Craft Platforms

[![QA](https://github.com/canonical/craft-platforms/actions/workflows/qa.yaml/badge.svg)](https://github.com/canonical/craft-platforms/actions/workflows/qa.yaml) [![ReadTheDocs badge](https://readthedocs.com/projects/canonical-craft-platforms/badge/?version=latest)](https://canonical-craft-platforms.readthedocs-hosted.com) [![PyPI - Version](https://img.shields.io/pypi/v/craft-platforms)](https://pypi.org/project/craft-platforms) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![Security scan](https://github.com/canonical/craft-platforms/actions/workflows/security-scan.yaml/badge.svg)](https://github.com/canonical/craft-platforms/actions/workflows/security-scan.yaml)

Craft Platforms is a library that handles platform information for Snapcraft, Charmcraft, Rockcraft, and other craft apps. A platform in this sense is the combination of an operating system version and its target architecture.

The library’s primary function is to parse information in a craft project file, such as snapcraft.yaml, and creates a build plan from it. The plan is a manifest for environments, describing those where the artifact can build and run.

This library is most useful for developers who build apps with the [Craft Application](https://canonical-craft-application.readthedocs-hosted.com) library.

## Basic usage

Craft Platforms creates exhaustive build plans for any craft-like data structure, taking into account differences between applications.

`terminal >>> import craft_platforms >>> craft_platforms.get_build_plan( ... "mycraft", ... project_data={"base": "debian@14", "platforms": {"riscv64": None}} ... ) [BuildInfo(platform='riscv64', build_on='riscv64', build_for='riscv64', build_base=DistroBase(distribution='debian', series='14'))] `

## Installation

Craft Platforms is a pure Python library that runs on Python 3.8 or later. It can be installed from [PyPI](https://pypi.org/project/craft-platforms)

## Documentation

The [Craft Platforms documentation](https://canonical-craft-platforms.readthedocs-hosted.com) contains reference information for the library.

## Community and support

You can report any issues or bugs on the project’s [GitHub repository](https://github.com/canonical/craft-platforms/issues).

Craft Platforms is covered by the [Ubuntu Code of Conduct](https://ubuntu.com/community/ethos/code-of-conduct).

## Contribute to Craft Platforms

Craft Platforms is open source and part of the Canonical family. We would love your help.

If you’re interested, start with the [contribution guide](HACKING.rst).

We welcome any suggestions and help with the docs. The [Canonical Open Documentation Academy](https://github.com/canonical/open-documentation-academy) is the hub for doc development, including Craft Platforms docs. No prior coding experience is required.

## License and copyright

Craft Platforms is released under the [LGPL-3.0 license](LICENSE).

© 2023-2025 Canonical Ltd.

Download files

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

Source Distribution

craft_platforms-0.12.0.tar.gz (349.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

craft_platforms-0.12.0-py3-none-any.whl (39.4 kB view details)

Uploaded Python 3

File details

Details for the file craft_platforms-0.12.0.tar.gz.

File metadata

  • Download URL: craft_platforms-0.12.0.tar.gz
  • Upload date:
  • Size: 349.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for craft_platforms-0.12.0.tar.gz
Algorithm Hash digest
SHA256 497b6421fc5f464ee1f31da60ae1211bd3101722770afae72e0b330e54883e9d
MD5 515bc9b41e5677ebe3b1e1c4bbab5d20
BLAKE2b-256 a0f2507e3b1bd017f51bea6c70205744239b62eac20c552fa0ee1f1c30019752

See more details on using hashes here.

Provenance

The following attestation bundles were made for craft_platforms-0.12.0.tar.gz:

Publisher: release-publish.yaml on canonical/craft-platforms

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file craft_platforms-0.12.0-py3-none-any.whl.

File metadata

File hashes

Hashes for craft_platforms-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 71fff4a3aeb075df878cada38bb89b0d36c9efb5423973db7625da983b8ee6f6
MD5 23a7d0ca6add6016cde4e30d88558c22
BLAKE2b-256 94d5d7eb7180085f70756372acfc27e782affe21fda791d801cff6fc10bb047a

See more details on using hashes here.

Provenance

The following attestation bundles were made for craft_platforms-0.12.0-py3-none-any.whl:

Publisher: release-publish.yaml on canonical/craft-platforms

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page