Skip to main content

Core library for C/C++ software product line engineering.

Project description

Yanga Core

CI Status Test coverage percentage

uv Ruff pypeline pre-commit

PyPI Version Supported Python versions License


Source Code: https://github.com/yanga-project/yanga-core


Core library for C/C++ software product line (SPL) engineering. Works with any build system.

Yanga Core provides data models, configuration loading, pipeline steps, and commands that build system integrations (like Yanga for CMake) use to:

  • Define platforms, variants, and components for a product line
  • Run build pipeline steps (KConfig generation, dependency installation, static analysis, ...)
  • Generate HTML reports (CppCheck, Sphinx docs, coverage)

Installation

Requires Python 3.10+.

pip install yanga-core

Quick Start

yanga-core is a library, not a standalone CLI. Applications import its modules and compose them. See Yanga for a CMake-based application built on yanga-core.

from pathlib import Path
from yanga_core.domain.project_slurper import YangaProjectSlurper

slurper = YangaProjectSlurper(project_dir=Path("."))
for variant in slurper.variants:
    print(f"Variant: {variant.name}, components: {variant.components}")

Documentation

Full documentation is available in the docs/ directory:

  • Tutorials — learn yanga-core step-by-step
  • How-to Guides — task-oriented guides for specific goals
  • Reference — configuration, domain model, pipeline, and API
  • Explanation — architecture, design decisions, and concepts

Contributing

See the Contributing Guide for setup instructions, running tests, and code quality standards.

Credits

Copier

This package was created with Copier and the browniebroke/pypackage-template project template.

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

yanga_core-0.1.1.tar.gz (31.4 kB view details)

Uploaded Source

Built Distribution

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

yanga_core-0.1.1-py3-none-any.whl (42.2 kB view details)

Uploaded Python 3

File details

Details for the file yanga_core-0.1.1.tar.gz.

File metadata

  • Download URL: yanga_core-0.1.1.tar.gz
  • Upload date:
  • Size: 31.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for yanga_core-0.1.1.tar.gz
Algorithm Hash digest
SHA256 eeb955ddbd83d6a4980d2ec35293d61a97e9e7f541a2d1e2ee558a03bc187d5d
MD5 5db36200b4480066e63f1288ae3d5a4b
BLAKE2b-256 3cae068873122b392858a7baea4d9d9e6e781d8c1b5cf15550ae9923b66de6c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for yanga_core-0.1.1.tar.gz:

Publisher: ci.yml on yanga-project/yanga-core

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

File details

Details for the file yanga_core-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: yanga_core-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 42.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for yanga_core-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 96025ae0d4e29c0be62c3f54496871acabd40b1d6aed5ea66875afdec22b6cb3
MD5 70e76c41568a6bc71752ab28417656f2
BLAKE2b-256 c674fa3340e0bdee029aa5aba06b419ae4ed5eb04f5058286546d43c67d73d56

See more details on using hashes here.

Provenance

The following attestation bundles were made for yanga_core-0.1.1-py3-none-any.whl:

Publisher: ci.yml on yanga-project/yanga-core

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 Pingdom Monitoring Sentry Error logging StatusPage Status page