mirror of
https://github.com/hanzo-ml/trainer.git
synced 2026-09-24 00:31:34 +00:00
* 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]>
95 lines
3.1 KiB
Markdown
95 lines
3.1 KiB
Markdown
# Trainer
|
|
|
|
Distributed model training operator (PyTorch, TensorFlow, MPI, XGBoost).
|
|
|
|
A brand-neutral fork in the [hanzo-ml](https://github.com/hanzo-ml)
|
|
organization — the open-source ML lifecycle estate. Branding is
|
|
consumed at runtime from a brand package via the
|
|
[`@<org>/brand`](#brand-package) 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 URL
|
|
- `jwksUrl` — JWKS endpoint
|
|
- `tenantClaim` — JWT claim with the org/tenant ID (default `org_id`)
|
|
- `tenantHeader` — HTTP header that propagates the validated tenant
|
|
ID (default `X-Org-Id`)
|
|
|
|
The tenant ID scopes all storage, queries, and resource ownership.
|
|
Cross-tenant access is forbidden by default.
|
|
|
|
## Quick start (reseller deployment)
|
|
|
|
```bash
|
|
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`](https://github.com/hanzoai/operator).
|
|
See [HIP-0109](https://github.com/hanzoai/HIPs/blob/main/HIPs/hip-0109-hanzo-ml-cloud-toolkit.md)
|
|
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.
|
|
|
|
```bash
|
|
gh api -X POST /repos/hanzo-ml/trainer/merge-upstream \
|
|
-f branch=master
|
|
```
|
|
|
|
See [UPSTREAM_README.md](./UPSTREAM_README.md) for the original
|
|
project documentation.
|
|
|
|
## License
|
|
|
|
Apache-2.0. See [NOTICE](./NOTICE) for attribution.
|
|
|
|
## See also
|
|
|
|
- [DESIGN.md](./DESIGN.md) — design system reference (mirrors the brand
|
|
package's design spec)
|
|
- [BRAND.md](./BRAND.md) — brand package contract and reseller guide
|
|
- [MULTI_TENANT.md](./MULTI_TENANT.md) — tenant isolation contract
|
|
- [HANZO_CHANGES.md](./HANZO_CHANGES.md) — divergence from upstream
|
|
- [HIP-0109 Hanzo ML Cloud Toolkit](https://github.com/hanzoai/HIPs/blob/main/HIPs/hip-0109-hanzo-ml-cloud-toolkit.md)
|