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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3158e28fbd89e941f501c65641384586f3768b6ab640caf03f9ba7b6fa8689a
|
|
| MD5 |
ddc3a5482fea95a17998e0b5007c8630
|
|
| BLAKE2b-256 |
896114ea7b6acb3ef56e7e499a6da5cca362b690615f449d11d7c603dac595a2
|
Provenance
The following attestation bundles were made for unuforge-0.1.0.tar.gz:
Publisher:
release.yml on unundoTeam/unuforge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
unuforge-0.1.0.tar.gz -
Subject digest:
d3158e28fbd89e941f501c65641384586f3768b6ab640caf03f9ba7b6fa8689a - Sigstore transparency entry: 1134652686
- Sigstore integration time:
-
Permalink:
unundoTeam/unuforge@421e01414fcdaaed4a00a80b15a88fe2f8eae6b0 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/unundoTeam
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@421e01414fcdaaed4a00a80b15a88fe2f8eae6b0 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7a7b752aa8d715b68be0998a80ddd2345ed292d5525b941669b63313a0020b9
|
|
| MD5 |
11d6b51d1e94361a7e8df9648dbd6ece
|
|
| BLAKE2b-256 |
1d72f2510d68c1a70f4b888948d222eecf866d0eb9b57a80f8491e28cc164dc4
|
Provenance
The following attestation bundles were made for unuforge-0.1.0-py3-none-any.whl:
Publisher:
release.yml on unundoTeam/unuforge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
unuforge-0.1.0-py3-none-any.whl -
Subject digest:
f7a7b752aa8d715b68be0998a80ddd2345ed292d5525b941669b63313a0020b9 - Sigstore transparency entry: 1134652714
- Sigstore integration time:
-
Permalink:
unundoTeam/unuforge@421e01414fcdaaed4a00a80b15a88fe2f8eae6b0 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/unundoTeam
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@421e01414fcdaaed4a00a80b15a88fe2f8eae6b0 -
Trigger Event:
push
-
Statement type: