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, 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
  • switch environment-specific settings with named profiles
  • inspect the resolved config 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

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 deploy --target pypi --dry-run

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

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.0.tar.gz (63.0 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.0-py3-none-any.whl (47.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: foga-0.3.0.tar.gz
  • Upload date:
  • Size: 63.0 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.0.tar.gz
Algorithm Hash digest
SHA256 5dfb38e4531626aa0f60f3ee3a13b43f6874351f41a63a85f6f999eaaa8d8123
MD5 f89e67c98cb7930bf605ae95b4a00fc9
BLAKE2b-256 2c706d5a44ab6b34a03ae87a87d62cd8f61d34c586d85d4e7b7d0a36a06b5eef

See more details on using hashes here.

Provenance

The following attestation bundles were made for foga-0.3.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: foga-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 47.3 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4900ae6ddc1f382282d7ee724391e9b787d7c54d4d3126dc894bb489fc924b2c
MD5 9e82896e0f2346e9cfe6855862e80624
BLAKE2b-256 e16c96d4150068b7622ba340f67849cf0dcfd6c5d0827a4ed4fd14018e283710

See more details on using hashes here.

Provenance

The following attestation bundles were made for foga-0.3.0-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