Build AI with anyone. On data that can't move. SDK for the tracebloc collaborative AI workspace.
Project description
tracebloc
Build AI with anyone. On data that can't move.
tracebloc is a collaborative AI workspace you deploy on your own infrastructure. Invite researchers, partners, vendors, or your own teams to train, fine-tune, and benchmark models on your private data — without the data ever leaving your environment.
Install
Pick the extra for your ML framework — the default install contains the core SDK only (~140 MB, ~30 sec) instead of every framework (~8 GB).
pip install "tracebloc[pytorch]" # most users (incl. the HuggingFace stack)
pip install "tracebloc[tensorflow]" # TensorFlow
pip install "tracebloc[sklearn]" # scikit-learn only
pip install "tracebloc[xgboost]" # or [catboost] / [lightgbm]
pip install "tracebloc[lifelines]" # or [scikit-survival]
pip install "tracebloc[all]" # everything
Requires Python 3.11 or 3.12.
Upgrading from an earlier version? See MIGRATION.md.
Quick Start
from tracebloc import User
# 1. Log in to your workspace
user = User()
user.login()
# 2. Upload your model to a use case
user.upload_model(model_name="my_model")
# 3. Link your model to the dataset — returns a training-plan facade
training_plan = user.link_model_dataset(dataset_id="<your-dataset-id>")
# 4. Start training
training_plan.start()
For a full walkthrough, open the Quickstart Notebook on Google Colab.
Supported Frameworks
| Framework | Use Cases |
|---|---|
| PyTorch | Image classification, object detection, semantic segmentation, tabular, text classification, time series, keypoint detection, survival analysis |
| TensorFlow | Image classification, tabular classification |
| scikit-learn | Tabular classification, tabular regression |
| XGBoost | Tabular classification, tabular regression |
| CatBoost | Tabular classification, tabular regression |
| LightGBM | Tabular classification, tabular regression |
| lifelines | Survival analysis (time-to-event) |
| scikit-survival | Survival analysis (time-to-event) |
How It Works
- Deploy a tracebloc workspace on any machine or Kubernetes cluster
- Define a use case — select datasets, set evaluation metrics
- Invite anyone — researchers, partners, your own teams across locations
- Build — contributors train models inside your environment using this SDK
- Compare — every submission benchmarked under identical conditions on one leaderboard
Local development setup
To work on the tracebloc SDK and test changes with the "start-training" Jupyter Notebook (also running locally), clone the start-training repository and set up a virtual environment using a Python version compatible with TensorFlow (ideally 3.11 or 3.12).
Set up virtual environment:
python3.12 -m venv {venv_location}
source {venv_location}/bin/activate
pip install jupyter
Or with Pyenv:
pyenv virtualenv 3.12 start-training
pyenv activate start-training
pip install jupyter
Register the venv as a Jupyter kernel so the notebook uses it:
python -m ipykernel install --user --name=start-training --display-name "start-training"
Option 1: Editable install (recommended for iterating on source)
pip install -e {path_to}/tracebloc-py-package
Source changes are picked up immediately — no reinstall needed. Best for day-to-day development.
Option 2: Local install (non-editable)
pip install {path_to}/tracebloc-py-package
Installs a snapshot into site-packages. You must re-run this command after every change. Useful for verifying the package works when installed normally.
Option 3: Install from a built distribution
Build a wheel or sdist first, then install it:
cd {path_to}/tracebloc-py-package
python -m build
cd {path_to}/start-training
pip install {path_to}/tracebloc-py-package/dist/tracebloc-*.whl
Use this to catch packaging issues (missing files, incorrect metadata, incomplete install_requires) before publishing to PyPI.
Switching between options
pip install on the same package name replaces the previous installation automatically. To remove the package entirely:
pip uninstall tracebloc -y
Running the notebook
jupyter notebook notebooks/traceblocTrainingGuide.ipynb
Select the "start-training" kernel if it isn't already selected.
Note: skip the !pip install tracebloc[pytorch] cell in the notebook — the package is already installed locally via one of the options above.
Releasing
Maintainer-only. Skip this section unless you're cutting a new tracebloc release.
Releases are tag-driven: pushing a tag matching v*.*.* on develop
triggers .github/workflows/publish-release.yml, which validates the
build matrix, publishes to TestPyPI, verifies the install, then waits
for a manual approval before publishing to PyPI.
End-to-end shape: validate matrix → TestPyPI → verify-from-TestPyPI → manual approval → PyPI (~20 min wall-clock with a hold at the approval gate).
Pre-flight (one-time per repo)
These are configured once and stay good. Sanity-check them before the first release on a new repo:
- GitHub secrets in repo settings:
TEST_PYPI_API_TOKEN— used by the publish-testpypi stagePYPI_API_TOKEN— used by the publish-pypi stage
- GitHub environment
production-pypiexists with required reviewers configured. The publish-pypi job uses this environment to force a manual approval gate before the PyPI upload.
Step 0 — Optional dry-run (first-ever tag pipeline run)
Tag a release candidate first to exercise the pipeline without publishing to production PyPI — deny the approval gate to stop just before the PyPI upload:
git checkout develop && git pull --ff-only
git tag v0.X.YrcN && git push origin v0.X.YrcN
Skip this step on subsequent releases once the pipeline is known good.
Step 1 — Tag the real release
git checkout develop
git pull --ff-only
# Confirm pyproject.toml version matches the tag you're about to push
# (the workflow's verify-tag-matches-version step fails otherwise).
grep "^version" pyproject.toml
git tag v0.X.Y
git push origin v0.X.Y
Step 2 — Watch the workflow
gh run watch
gh run list --workflow=publish-release.yml --limit 5
Stages:
- validate — Py 3.9–3.12 × 7 extras matrix; ~10–15 min
- publish-testpypi — builds + uploads to TestPyPI; ~2 min
- verify-testpypi — installs from TestPyPI; ~3 min (includes a 60s sleep for indexing)
- publish-pypi — paused for approval
Step 3 — Approve the production publish
GitHub: Actions → workflow run → publish-pypi job → Review deployments → production-pypi → Approve.
Once approved, the PyPI upload runs (~1 min). Verify:
pip index versions tracebloc # should show the new version
Step 4 — Same-day cross-repo coordination
Once the version is live on PyPI:
tracebloc/start-training— bump the notebook pin if the release ships user-facing API changes; flip the coordination PR from draft → ready-for-review; merge.tracebloc/docs(Mintlify) — install command + API example updates as a same-day PR.tracebloc/tracebloc-website-main— homepage quickstart snippet PR if relevant.
Skip 2 and 3 for quiet patch releases with no doc-visible surface.
Step 5 — Post-release
- Update
CHANGELOG.md: change## [0.X.Y] — Unreleased→## [0.X.Y] — YYYY-MM-DD. One-line follow-up commit ondevelop. - Close any stale test-trigger PRs if still open.
- Announce per team norms.
Links
License
MIT
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 tracebloc-0.11.0.tar.gz.
File metadata
- Download URL: tracebloc-0.11.0.tar.gz
- Upload date:
- Size: 244.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a3f120cb6aa4154bdcb2b84d405dd5e05ab2ceef20f8f57d8e8211cd149949b
|
|
| MD5 |
7f3d1610db96ccf301d3ba39a376f6fc
|
|
| BLAKE2b-256 |
296eb5c2bbd835216e4e7e8b1b36aa346bb343bdedd46bd262d4a610caa31a7b
|
File details
Details for the file tracebloc-0.11.0-py3-none-any.whl.
File metadata
- Download URL: tracebloc-0.11.0-py3-none-any.whl
- Upload date:
- Size: 323.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6158529b92ecfd3f6fde24c94e768a096acbb29cdafc12bf8ef32e17f0f51f1e
|
|
| MD5 |
b31af1efa34ebf9d0fad16acb3652aea
|
|
| BLAKE2b-256 |
ed6f87225c705025665fa85c21d01dc046373f1c173b0a984b05ea05bbdde25b
|