* feat(release): Add workflows for automated release process and version checks Signed-off-by: milinddethe15 <[email protected]> feat(release): Implement automated release process with changelog generation Signed-off-by: milinddethe15 <[email protected]> fix lint Signed-off-by: milinddethe15 <[email protected]> enhance tag validation and branch creation Signed-off-by: milinddethe15 <[email protected]> fix: Add 'area/release' to ignored labels in PR title check Signed-off-by: milinddethe15 <[email protected]> feat(release): Enhance release workflows with manual trigger and image build steps Signed-off-by: milinddethe15 <[email protected]> feat(release): Add PyPI API token for publishing packages Signed-off-by: milinddethe15 <[email protected]> feat(release): Update concurrency settings in publish-helm-charts workflow and upgrade git-cliff-action version Signed-off-by: milinddethe15 <[email protected]> feat(release): Update git-cliff-action args to include --unreleased option Signed-off-by: milinddethe15 <[email protected]> refactor: reorganize release workflow to generate changelog before GitHub release Signed-off-by: milinddethe15 <[email protected]> feat(release): Update GitHub release action to remove changelog prepending and simplify release name Signed-off-by: milinddethe15 <[email protected]> feat(release): Refactor GitHub release job to integrate changelog generation and simplify workflow Signed-off-by: milinddethe15 <[email protected]> feat(release): create_branch_and_tag job to create_branch and streamline tagging process Signed-off-by: milinddethe15 <[email protected]> rebase commit Signed-off-by: krishna-kg732 <[email protected]> fix: update release branch naming to use major.minor version format Signed-off-by: milinddethe15 <[email protected]> fix endline Signed-off-by: milinddethe15 <[email protected]> feat(release): update README with upstream tag fetching instructions Signed-off-by: milinddethe15 <[email protected]> Release v2.2.2 Signed-off-by: krishna-kg732 <[email protected]> Revert "Release v2.2.2" chore: configure TestPyPI publishing for fork testing feat: split changelog by release line Signed-off-by: Krishna Gupta <[email protected]> chore:removed the monoloith CHANGELOG.md Signed-off-by: Krishna Gupta <[email protected]> chore: capitalize Changelog file name Signed-off-by: krishna-kg732 <[email protected]> chore: revert fork testing config Signed-off-by: krishna-kg732 <[email protected]> chore:latest minor release support updated Signed-off-by: Krishna Gupta <[email protected]> chore:resolve changelog casing conflict and restore correct file Signed-off-by: Krishna Gupta <[email protected]> chore: resolve git casing conflict Signed-off-by: Krishna Gupta <[email protected]> feat: split changelog by release line Signed-off-by: Krishna Gupta <[email protected]> chore: capitalize Changelog file name Signed-off-by: krishna-kg732 <[email protected]> chore:latest minor release support updated Signed-off-by: Krishna Gupta <[email protected]> chore: remove duplicate lowercase changelog file Signed-off-by: krishna-kg732 <[email protected]> * Chore:remove the Test release changeLog update Signed-off-by: krishna-kg732 <[email protected]> * Potential fix for pull request finding (fix by copilot) Signed-off-by: Krishna Gupta <[email protected]> * chore:address review comments Signed-off-by: Krishna Gupta <[email protected]> * chore:run pip-compile Signed-off-by: Krishna Gupta <[email protected]> * chore: address review Signed-off-by: Krishna Gupta <[email protected]> * fix(release): wait for artifact publishing before GitHub release Signed-off-by: Krishna Gupta <[email protected]> * refactor(release): delete release.sh, inline make release, and move asset updates to release workflow Signed-off-by: Krishna Gupta <[email protected]> * chore(ci): align release workflow and cliff.toml with SDK conventions Signed-off-by: Krishna Gupta <[email protected]> * chore: sync requirements lockfiles Signed-off-by: Krishna Gupta <[email protected]> * chore: added a new create_tag job and rebased to pass ci Signed-off-by: Krishna Gupta <[email protected]> * chore: regenerate lockfiles with Python 3.12 to fix CI Signed-off-by: Krishna Gupta <[email protected]> * chore: retrigger CI Signed-off-by: Krishna Gupta <[email protected]> * chore : address PR review Signed-off-by: Krishna Gupta <[email protected]> --------- Signed-off-by: krishna-kg732 <[email protected]> Signed-off-by: Krishna Gupta <[email protected]> Co-authored-by: milinddethe15 <[email protected]> Co-authored-by: Hanzo Dev <[email protected]>
3.1 KiB
Trainer
Distributed model training operator (PyTorch, TensorFlow, MPI, XGBoost).
A brand-neutral fork in the hanzo-ml
organization — the open-source ML lifecycle estate. Branding is
consumed at runtime from a brand package via the
@<org>/brand contract; the same code deploys under
any white-label brand with zero source changes.
Brand package
This fork imports brand configuration from a runtime brand package
following the contract used across the open-source ML estate. Set
BRAND_PACKAGE to the npm package name; the fork's frontend (where
applicable) calls loadBrand() at boot to hydrate the singleton from
that package's brand.json.
Available brand packages:
| Package | Brand |
|---|---|
@hanzo/brand |
default / Hanzo AI |
@luxfi/brand |
Lux Finance |
@zooai/brand |
Zoo Labs |
@osage/brand |
Osage |
@parsdao/brand |
Pars DAO |
@cyrusdao/brand |
Cyrus DAO |
@migaprotocol/brand |
Miga Protocol |
@vccross/brand |
VC Cross |
@mlc/brand |
MLC |
@zenlm/brand |
Zen LM |
Or any custom reseller package conforming to the same schema.
Multi-tenant via IAM
Every request carries a JWT. The brand package's iam block specifies:
issuer— JWT issuer URLjwksUrl— JWKS endpointtenantClaim— JWT claim with the org/tenant ID (defaultorg_id)tenantHeader— HTTP header that propagates the validated tenant ID (defaultX-Org-Id)
The tenant ID scopes all storage, queries, and resource ownership. Cross-tenant access is forbidden by default.
Quick start (reseller deployment)
export BRAND_PACKAGE="@<your-org>/brand" # e.g. @luxfi/brand
The frontend (this fork's case: pipelines ships the React DAG UI;
the other 7 are read-only reference forks) loads the brand at boot.
The backend reads the brand package's iam block for JWKS + tenant
configuration.
Role
Read-only reference for the Rust operator's TrainingJob reconciler.
The canonical control plane for the ML lifecycle estate is the Rust
operator at hanzoai/operator.
See HIP-0109
for the lifecycle CRD set.
Upstream sync
This fork stays current with upstream via the GitHub merge-upstream API. No upstream code is modified in this fork; only the 5 markdown files at root are added.
gh api -X POST /repos/hanzo-ml/trainer/merge-upstream \
-f branch=master
See UPSTREAM_README.md for the original project documentation.
License
Apache-2.0. See NOTICE for attribution.
See also
- DESIGN.md — design system reference (mirrors the brand package's design spec)
- BRAND.md — brand package contract and reseller guide
- MULTI_TENANT.md — tenant isolation contract
- HANZO_CHANGES.md — divergence from upstream
- HIP-0109 Hanzo ML Cloud Toolkit