magogi/prod/: mgf-fedres-0.5.0 metadata and description

Simple index Newer version available

The federation-resources spine: the fed-resources/ convention, schemas, the manifest + sync engine, the SourceProvider seam, live NDJSON + run-records, and the fedres CLI — the shared core for mgf-fed-web and mgf-test-web. Sibling of mgf-common under the mgf.* namespace.

author Bassam Alsanie, mgf-fedres contributors
classifiers
  • Development Status :: 2 - Pre-Alpha
  • Intended Audience :: Developers
  • License :: OSI Approved :: Apache Software License
  • Operating System :: OS Independent
  • Programming Language :: Python :: 3
  • Programming Language :: Python :: 3.11
  • Programming Language :: Python :: 3.12
  • Programming Language :: Python :: 3.13
  • Typing :: Typed
description_content_type text/markdown
keywords cli, fed-resources, federation, magogi, provenance, sync
license Apache-2.0
license_file
  • LICENSE
  • NOTICE
project_urls
  • Homepage, https://codeberg.org/magogi-admin/mgf-fedres
  • Issues, https://codeberg.org/magogi-admin/mgf-fedres/issues
  • Changelog, https://codeberg.org/magogi-admin/mgf-fedres/src/branch/main/CHANGELOG.md
requires_dist
  • jsonschema>=4.18
  • import-linter>=2.0; extra == 'dev'
  • mgf-standard<0.2,>=0.1.6; extra == 'dev'
  • mgf-test-supervisor<0.2,>=0.1.3; extra == 'dev'
  • mypy>=1.10; extra == 'dev'
  • pytest-cov>=5.0; extra == 'dev'
  • pytest-timeout<3,>=2.3; extra == 'dev'
  • pytest>=8.0; extra == 'dev'
  • ruff<0.16,>=0.4; extra == 'dev'
  • mgf-common[standards]<1.0,>=0.47; extra == 'standards'
requires_python >=3.11

Because this project isn't in the mirror_whitelist, no releases from root/pypi are included.

File Tox results History
mgf_fedres-0.5.0-py3-none-any.whl
Size
60 KB
Type
Python Wheel
Python
3
mgf_fedres-0.5.0.tar.gz
Size
236 KB
Type
Source

mgf-fedres

The federation-resources spine — the shared core that both mgf-fed-web (the federation dashboard) and mgf-test-web / ProofWarden (the testing & CI authority console) build on. Part of the Magogi Foundation federation, under the mgf.* namespace.

mgf-brand-web 0.2        CSS tokens + the operator-instrument layer
        |
mgf-fedres   <-- you are here   the shared spine
        |   schemas (all, incl. test_*) + version-aware reader + validator
        |   manifest + sha256 + canonical-JSON
        |   sync engine: shallow (manifest) + deep (regenerate -> diff, non-mutating)
        |   SourceProvider seam: DiskProvider (now) / PackageProvider (later)
        |   live/ NDJSON reader+writer + run-record writer
        |   the `fedres` CLI: status / check / generate / run --trace / tail + the gate
        |
        |-------------------------> mgf-fed-web   (federation console)
        +--> mgf-test-web           (warden + testctl in base; [web] = ProofWarden console)

What this provides

The family-adapter seam (CIR-26)

The Class-P projectors (architecture, federation) read a family registry. A second family whose registry has the same shape as MGF's just registers a registry adapter (register_registry_adapter(...) + [projectors.*] registry_adapter = "<name>"). A family whose projection differs more deeply — different layer semantics, a different graph mode — needs a whole new projector body, and points a slot at it through the supported override seam:

The Sooth family is the first consumer of this seam: its adapters read SOOTH_LIBRARIES.json (a repos[] / ring shape) and project a ring-*-layered graph, reaching the stock CLI through MGF_FEDRES_PROJECTORS instead of an import-order wrapper. The end-to-end contract is pinned by tests/test_projectors.py::test_sooth_shape_adapter_end_to_end_through_the_cli_env_hook.

Where a projector's inputs come from (and why it matters)

generated/ is byte-pinned and freshness-gated, so every input a projector reads is part of that gate. An input that moves without the project moving turns the project's fedres check RED through no change of its own. Both reference projectors have been walked back off such an input, one at a time:

[projectors.federation] coupling_source selects the manifest reader: auto (default — pyproject.toml, then build.zig.zon), pyproject, zig, or none. A project whose declared source is missing is a loud failure; there is deliberately no fall-back to the registry, because a silent one would re-open this exact coupling for the repos nobody checks. none states "this project declares no coupling" in a committed, reviewable line. register_coupling_reader(name, fn) mirrors register_registry_adapter for a family that declares dependencies in some other manifest.

Status

Built and tested (pre-alpha). The spine is implemented: the engine (the generate → sync cycle), the fedres CLI (status / check / generate / run --trace / tail / session-close), the reference projectors, and the schema set + version-aware validator all ship under src/mgf/fedres/, with passing tests under tests/. Pre-alpha means the 0.1 contracts may still move — not that there is nothing to run.

The end-to-end plan and the authoritative specs, briefs, and reference wireframes for the two consuming webs live in docs/planning/ — their planning status is genuine:

License

Apache-2.0 © The Magogi Foundation