Skip to main content

Shared preset-backed automation core for the unu product family

Project description

unuforge

Shared preset-backed automation core for the unu product family.

Scope

unuforge owns:

  • preset schema and normalization
  • machine-facing CLI
  • profile/action dispatch contracts
  • host adapter integration

unuforge does not own:

  • product-specific manifests
  • product-specific test/deploy scripts
  • business-domain logic
  • host runtime internals

Local Development

unuforge assumes Python 3.11+.

Source-based usage remains the contributor workflow. Run commands from this checkout or an equivalent local clone:

PYTHONPATH=src python3 -m unittest discover -s tests
PYTHONPATH=src python3 -m unuforge.cli --help

Build and Verify Local Artifacts

Build standard local distribution artifacts from the repo root:

python3 scripts/build_distribution.py --out-dir dist --json

That command produces both:

  • a wheel under dist/*.whl
  • a source distribution under dist/*.tar.gz

You can then install the wheel into a virtual environment and verify the installed console entrypoint:

python3 -m pip install dist/unuforge-0.1.0-py3-none-any.whl
unuforge --help

Install a Published Release

Once a tagged release has been published, the intended official external install contract for unuforge is the versioned PyPI package. External consumers should install a tagged release rather than depending on a source checkout.

python3 -m pip install unuforge==0.1.0
unuforge --help

Release Overview

Contributors should continue to use source-based execution from the repository checkout. The published PyPI version is the supported interface for external consumers, and GitHub Releases are the tagged source record with the built artifacts attached for that release.

Maintainer release steps and publishing requirements live in docs/releasing.md.

Verification

These commands are the recommended repo-local verification path:

PYTHONPATH=src python3 -m unittest discover -s tests
PYTHONPATH=src python3 -m unittest tests.test_distribution -v
python3 scripts/build_distribution.py --out-dir dist --json
PYTHONPATH=src python3 -m unuforge.cli preset inspect --preset fixtures/presets/v2-sample.json --json
PYTHONPATH=src python3 -m unuforge.cli profiles list --preset fixtures/presets/v2-sample.json --json
PYTHONPATH=src:tests python3 -m unuforge.cli profiles run sample.profile --preset fixtures/presets/v2-sample.json --host-adapter stub_host --dry-run --json -- --flag
PYTHONPATH=src:tests python3 -m unuforge.cli actions run promote --preset fixtures/presets/v2-sample.json --host-adapter stub_host --dry-run --json -- --with-web

The stub_host adapter used above lives in tests/stub_host.py and exists only to validate the dispatch contract locally.

Host Integration Model

unuforge is a machine-facing thin core. It loads a host adapter module named by --host-adapter and delegates execution-specific behavior to that host.

The host module is expected to export HOST, and that object is expected to implement the profile/action build and run hooks consumed by the CLI. This keeps runtime internals in the host repository while unuforge stays focused on preset loading, normalization, surface lookup, and dispatch plumbing.

Current Consumption Mode

unuforge is now package-ready, and published releases are expected to follow the PyPI contract described above.

In practice this means:

  • downstream repos may continue to use sibling-path or other external-first source checkout layouts
  • downstream repos can also validate local package installation from artifacts built by this repo
  • this repository remains the thin-core truth source
  • GitHub Releases carry the tagged source snapshot and the release artifacts

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

unuforge-0.1.0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

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

unuforge-0.1.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file unuforge-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for unuforge-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d3158e28fbd89e941f501c65641384586f3768b6ab640caf03f9ba7b6fa8689a
MD5 ddc3a5482fea95a17998e0b5007c8630
BLAKE2b-256 896114ea7b6acb3ef56e7e499a6da5cca362b690615f449d11d7c603dac595a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for unuforge-0.1.0.tar.gz:

Publisher: release.yml on unundoTeam/unuforge

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

File details

Details for the file unuforge-0.1.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for unuforge-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f7a7b752aa8d715b68be0998a80ddd2345ed292d5525b941669b63313a0020b9
MD5 11d6b51d1e94361a7e8df9648dbd6ece
BLAKE2b-256 1d72f2510d68c1a70f4b888948d222eecf866d0eb9b57a80f8491e28cc164dc4

See more details on using hashes here.

Provenance

The following attestation bundles were made for unuforge-0.1.0-py3-none-any.whl:

Publisher: release.yml on unundoTeam/unuforge

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