Skip to main content

Unified developer CLI for Python packages with C and C++ bindings.

Project description

foga

foga is a Python package and CLI for developers maintaining Python packages with C or C++ bindings. It replaces ad-hoc repository scripts with a single YAML configuration file that drives build, test, docs, format, lint, install, deploy, inspect, and cleanup workflows.

What foga does

  • build Python packages and C++ artifacts from one config file
  • run Python and C++ test workflows through one CLI
  • run Python and C++ format and lint workflows through one CLI
  • generate Python and C++ documentation through one CLI
  • install local packages and external dependencies through one CLI
  • switch environment-specific settings with named profiles
  • inspect the resolved config and planned commands before running anything
  • keep escape hatches explicit through structured hooks

Install

pip install foga

Minimal example

project:
  name: demo

build:
  python:
    backend: python-build

test:
  runners:
    unit:
      backend: pytest
      path: tests

For runnable examples that build up gradually, start with examples/tutorial/ or the Examples guide. Each tutorial README lists the local prerequisites, and this repository also includes examples/tutorial/run-example.py if you want to run the tutorials with only Docker and Python instead of installing the example-specific tools locally.

Quick start

foga validate
foga inspect
foga build --dry-run
foga test --dry-run
foga docs --dry-run
foga format --dry-run
foga lint --dry-run
foga install --dry-run
foga deploy --target pypi --dry-run

Python lint targets can use ruff-check or pylint, and C++ lint targets can use clang-tidy.

build.cpp supports both cmake and meson backends for C++ builds, while build.python uses python-build for packaging workflows.

Documentation

Start with:

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

foga-0.3.5.tar.gz (141.5 kB view details)

Uploaded Source

Built Distribution

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

foga-0.3.5-py3-none-any.whl (54.9 kB view details)

Uploaded Python 3

File details

Details for the file foga-0.3.5.tar.gz.

File metadata

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

File hashes

Hashes for foga-0.3.5.tar.gz
Algorithm Hash digest
SHA256 9715e4e316887aeaa0762fe429e945f999bfa703865c78e911b34ee95bc1a5d3
MD5 781eac1e529ee1e55fbb7fd58ece23bd
BLAKE2b-256 71f2a262fa1a7465677df062c795a983583027997a94ed02a99bcc2ea48230b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for foga-0.3.5.tar.gz:

Publisher: publish.yml on fedluc/foga

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

File details

Details for the file foga-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: foga-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 54.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for foga-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 8e00e3e6d97d95b947f33f30d3e39ab538a8225c12f807d03ec6f6906408f763
MD5 2efd19faa14a5bd0ac7cd439175fd17b
BLAKE2b-256 b7ec700cc8a05a43037004a37a12f359e57ecae7c7849fe203751654222c7fb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for foga-0.3.5-py3-none-any.whl:

Publisher: publish.yml on fedluc/foga

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