Skip to content

docs: migrate SDK page to tracebloc 0.8.x#39

Merged
saadqbal merged 4 commits into
developfrom
rename/tracebloc-0.8.x
May 13, 2026
Merged

docs: migrate SDK page to tracebloc 0.8.x#39
saadqbal merged 4 commits into
developfrom
rename/tracebloc-0.8.x

Conversation

@saadqbal
Copy link
Copy Markdown
Contributor

@saadqbal saadqbal commented May 13, 2026

Summary

  • Rename tools-help/tracebloc-package.mdxtools-help/tracebloc.mdx. Rewrite content for the canonical tracebloc name, snake_case API (post-SDK.2), and >=0.8.0 install pin.
  • docs.json:
    • Nav entry → new slug.
    • Add /tools-help/tracebloc-package/tools-help/tracebloc redirect so old inbound links don't 404.
    • Existing legacy redirects with destination /tools-help/tracebloc-package updated to the new slug.
  • Internal cross-links in faqs.mdx and key-terms.mdx → new slug.
  • join-use-case/start-training.mdx install snippet → new name + pin.

Companion to:

Closes #38.

Test plan

  • Mintlify preview builds without warnings.
  • /tools-help/tracebloc renders the new page.
  • /tools-help/tracebloc-package 308-redirects to /tools-help/tracebloc (old inbound link preserved).
  • Nav sidebar shows "tracebloc Python SDK" in the Tools & Help section.

🤖 Generated with Claude Code


Note

Low Risk
Low risk docs-only change that updates slugs, redirects, and code snippets; main risk is broken navigation/links if redirects or references are missed.

Overview
Updates the Python SDK documentation to the renamed tracebloc package (from tracebloc_package), including new install instructions pinned to >=0.8.1 and updated snake_case API examples.

Renames the Tools & Help page to tools-help/tracebloc, updates navigation and internal cross-links, and adds/adjusts redirects so legacy tracebloc-package URLs continue to resolve. Also refreshes Join-a-Use-Case docs snippets to use training_plan and the updated user.upload_model / link_model_dataset call patterns.

Reviewed by Cursor Bugbot for commit 81acf20. Bugbot is set up for automated code reviews on this repo. Configure here.

@mintlify
Copy link
Copy Markdown
Contributor

mintlify Bot commented May 13, 2026

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
tracebloc 🟢 Ready View Preview May 13, 2026, 10:09 AM

💡 Tip: Enable Workflows to automatically generate PRs for you.

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit d5da9e1. Configure here.

Comment thread tools-help/tracebloc.mdx
@saadqbal
Copy link
Copy Markdown
Contributor Author

Adding one more commit (fc4b9c2) — expands the PR to also fix the camelCase API surface in the three customer-facing pages that still showed it.

This is the same 0.7.0 / SDK.2 migration that landed in tracebloc-py-package/MIGRATION.md but never made it into Mintlify. Same scope shape as the rest of this PR (docs catch-up to where the SDK already is), so folding it in here rather than as a separate ticket.

What changed (just the SDK example pages)

  • join-use-case/start-training.mdx
  • join-use-case/hyperparameters.mdx
  • join-use-case/model-optimization.mdx

Method renames

Old (still works, emits DeprecationWarning) New
uploadModel(path) upload_model(model_name=path)
linkModelDataset(id) link_model_dataset(dataset_id=id)
getTrainingPlan() get_training_plan()
experimentName(...) experiment_name(...)
learningRate(...) learning_rate(...)
lossFunction(...) loss_function(...)
layersFreeze(...) layers_freeze(...)
earlystopCallback(...) early_stop_callback(...)
reducelrCallback(...) reduce_lr_callback(...)
modelCheckpointCallback(...) model_checkpoint_callback(...)
terminateOnNaNCallback() terminate_on_nan_callback()
trainingClasses(...) training_classes(...)
dataType(...) data_type(...)

Also: local variable trainingObjecttraining_plan to match the canonical sample workflow in tracebloc/tracebloc-py-package's CLAUDE.md.

Kwargs note

model_name and dataset_id aren't aliased in 0.8.x — passing modelname= or datasetId= raises TypeError. Docs now use the explicit kwarg form to steer users to the safe spelling.

@saadqbal
Copy link
Copy Markdown
Contributor Author

Bugbot pass on eefc578:

# Issue Severity Status
1 sync-sources.yml still points dest: tools-help/tracebloc-package.mdx after the file rename (bugbot) High Fixed — repointed to tools-help/tracebloc.mdx

Why this matters

.github/workflows/sync-docs.yml runs daily on a cron + on repository_dispatch from source repos. It reads sync-sources.yml and writes upstream content into each dest. With the old path:

  • The daily cron would have either recreated an orphan tools-help/tracebloc-package.mdx (not in the nav after this PR's docs.json change), or
  • failed outright, silently preventing further README → docs page syncs.

What I didn't change

The mapping id: tracebloc-package stays the same — that's a dispatch slug, not a content path. The comment in sync-sources.yml notes it's used in the source repo's notify workflow; renaming it would require a coordinated change there. Grep on tracebloc/tracebloc-py-package finds no such workflow today, but leaving the id stable keeps the option open without breaking anything.

Audit

$ grep -rn "tracebloc-package\.mdx\|tracebloc_package\.mdx" \
    --include="*.yml" --include="*.yaml" --include="*.md" \
    --include="*.mdx" --include="*.json" .
# (no output — no remaining orphan path references)

saadqbal and others added 4 commits May 13, 2026 16:33
The SDK was renamed in tracebloc/tracebloc-py-package#135. `tracebloc==0.8.1`
is live on PyPI. Migrating Mintlify docs to the canonical name.

- Rename `tools-help/tracebloc-package.mdx` -> `tools-help/tracebloc.mdx`.
- Rewrite the page: `tracebloc` install + import, snake_case API
  (post-SDK.2), historical Note about the rename, link to redirect
  package on PyPI.
- Bump install pin to `>=0.8.0` (was `>=0.6.32`); add per-extra
  install options.
- `docs.json`:
  - Nav: `tools-help/tracebloc-package` -> `tools-help/tracebloc`.
  - Add `/tools-help/tracebloc-package` -> `/tools-help/tracebloc`
    redirect to preserve old inbound links.
  - Existing redirects pointing at `/tools-help/tracebloc-package`
    now point at `/tools-help/tracebloc`.
- Internal cross-links in faqs.mdx + key-terms.mdx -> new URL.
- `join-use-case/start-training.mdx` install snippet -> new name + pin.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The 0.7.0 SDK.2 release renamed the public Python API to PEP 8 /
snake_case. The old camelCase forms still work via deprecation
aliases (with DeprecationWarning) but new examples should use the
canonical names.

Updates the three customer-facing pages that still showed the
camelCase API:

- `join-use-case/start-training.mdx` — the main walk-through.
- `join-use-case/hyperparameters.mdx` — the full reference table.
- `join-use-case/model-optimization.mdx` — pretrained-weights upload.

Method renames applied (per tracebloc-py-package/MIGRATION.md):
- `uploadModel` -> `upload_model` (+ `model_name=` kwarg)
- `linkModelDataset` -> `link_model_dataset` (+ `dataset_id=` kwarg)
- `getTrainingPlan` -> `get_training_plan`
- `experimentName` -> `experiment_name`
- `learningRate` -> `learning_rate`
- `lossFunction` -> `loss_function`
- `layersFreeze` -> `layers_freeze`
- `earlystopCallback` -> `early_stop_callback`
- `reducelrCallback` -> `reduce_lr_callback`
- `modelCheckpointCallback` -> `model_checkpoint_callback`
- `terminateOnNaNCallback` -> `terminate_on_nan_callback`
- `trainingClasses` -> `training_classes`
- `dataType` -> `data_type`

The `model_name` and `dataset_id` keyword names are no longer aliased
in 0.8.x — passing positional args still works, but the kwargs
`modelname=` / `datasetId=` raise TypeError, so the docs use the
explicit kwarg form everyone should adopt.

Also renames the local variable `trainingObject` -> `training_plan`
throughout, matching the canonical sample workflow in tracebloc's
project CLAUDE.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
`tools-help/tracebloc-package.mdx` was renamed to `tools-help/tracebloc.mdx`
earlier in this PR, but the daily `sync-docs.yml` cron reads
`.github/sync-sources.yml` and would have either recreated the old
orphan path or failed outright — silently preventing upstream README
edits from reaching the new page.

Repointing the dest at `tools-help/tracebloc.mdx` keeps the upstream
README -> docs page sync working. The mapping `id` stays
`tracebloc-package` (it's a slug used for dispatch; changing it would
need a coordinated edit in the upstream notify workflow, which doesn't
exist yet — scope creep here).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@saadqbal saadqbal merged commit 97ba9ce into develop May 13, 2026
4 checks passed
saadqbal added a commit that referenced this pull request May 13, 2026
* docs: consolidate Docker build into single multi-arch command (#35)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: remove open-source client claim from how-training-works (#36)

* docs: remove open-source client claim from how-training-works

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: say "contact us" instead of "open a support ticket"

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Asad Iqbal (Saadi) <asad.dsoft@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: add automated upstream sync workflow (#27)

* docs: add automated upstream sync workflow

Adds a Claude-powered workflow that syncs docs pages with upstream README
changes from five source repos (tracebloc-py-package, client, start-training,
data-ingestors, model-zoo). Source repos fire repository_dispatch on push;
this repo's workflow fetches the upstream file, has Claude rewrite the target
.mdx in docs voice, and opens a PR.

- .github/sync-sources.yml: mapping of upstream files to docs pages
- .github/workflows/sync-docs.yml: dispatch + manual + cron-driven sync job
- .github/notify-docs.workflow-template.yml: template for source repos

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix: address bugbot issues in sync workflow

- Pass ANTHROPIC_API_KEY as anthropic_api_key input to claude-code-action
  instead of env var (action reads via core.getInput, not env).
- Move sync cache from .sync-cache/ to /tmp/sync-cache/ so untracked
  cache files are not picked up by create-pull-request.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: address remaining bugbot issues in sync workflow

- Add concurrency group so overlapping cron/dispatch/manual runs
  serialize instead of racing on the docs/sync-upstream branch
  (would otherwise fail with "failed to push some refs" and drop
  changes from the losing run).
- Pin yq to v4.44.3 instead of latest for deterministic builds.
- Restrict create-pull-request add-paths to **/*.mdx so stray edits
  outside docs pages cannot be staged into the sync PR.
- Note in the notify template that branches may need adjusting for
  repos using master (e.g. data-ingestors).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: accumulate sync runs onto existing PR branch

Previously each run checked out the default branch fresh and force-pushed
only the dispatched source's diff to docs/sync-upstream, silently
overwriting any earlier dispatched sources' pending changes.

Now the workflow:
- Checks if docs/sync-upstream exists on the remote; if so, checks it
  out so prior accumulated changes are part of the working tree.
- Resolves the default branch dynamically and passes it to peter-evans
  as the explicit base so the PR continues targeting the right branch
  even after we switched off it.

Result: sequential dispatches for different sources combine into one
PR instead of clobbering each other.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: read sync-sources.yml from base branch, not stale sync branch

After the previous fix switched the working tree to docs/sync-upstream
to accumulate changes, all subsequent reads of .github/sync-sources.yml
were coming from the (potentially stale) sync branch instead of the
base branch. If a new source were added or an instruction edited on
main while a sync PR was pending, the workflow would silently use the
outdated config.

Snapshot the mapping to /tmp/sync-sources.yml before any branch switch,
and point both the yq filter step and the Claude prompt at the snapshot.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Asad Iqbal <asad.dsoft@gmail.com>

* docs: migrate join-use-case API examples to snake_case (tracebloc_package 0.7.0) (#14)

Sync hyperparameters and start-training pages with the legacy
tracebloc/documentation repo:

- Rename camelCase API methods to snake_case: upload_model,
  link_model_dataset, experiment_name, get_training_plan,
  learning_rate, loss_function, layers_freeze, early_stop_callback,
  reduce_lr_callback, model_checkpoint_callback,
  terminate_on_nan_callback, training_classes, data_type
- Rename trainingObject → training
- Update terminate-on-NaN description (any NaN loss)
- Use pip optional-extras syntax: tracebloc_package[pytorch|tensorflow|sklearn|all]

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: migrate SDK page to tracebloc 0.8.x (#39)

* docs: migrate SDK page to tracebloc 0.8.x (closes #38)

The SDK was renamed in tracebloc/tracebloc-py-package#135. `tracebloc==0.8.1`
is live on PyPI. Migrating Mintlify docs to the canonical name.

- Rename `tools-help/tracebloc-package.mdx` -> `tools-help/tracebloc.mdx`.
- Rewrite the page: `tracebloc` install + import, snake_case API
  (post-SDK.2), historical Note about the rename, link to redirect
  package on PyPI.
- Bump install pin to `>=0.8.0` (was `>=0.6.32`); add per-extra
  install options.
- `docs.json`:
  - Nav: `tools-help/tracebloc-package` -> `tools-help/tracebloc`.
  - Add `/tools-help/tracebloc-package` -> `/tools-help/tracebloc`
    redirect to preserve old inbound links.
  - Existing redirects pointing at `/tools-help/tracebloc-package`
    now point at `/tools-help/tracebloc`.
- Internal cross-links in faqs.mdx + key-terms.mdx -> new URL.
- `join-use-case/start-training.mdx` install snippet -> new name + pin.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* docs: bump install pin to 0.8.1 (latest)

* docs: migrate SDK examples to snake_case API (post-SDK.2)

The 0.7.0 SDK.2 release renamed the public Python API to PEP 8 /
snake_case. The old camelCase forms still work via deprecation
aliases (with DeprecationWarning) but new examples should use the
canonical names.

Updates the three customer-facing pages that still showed the
camelCase API:

- `join-use-case/start-training.mdx` — the main walk-through.
- `join-use-case/hyperparameters.mdx` — the full reference table.
- `join-use-case/model-optimization.mdx` — pretrained-weights upload.

Method renames applied (per tracebloc-py-package/MIGRATION.md):
- `uploadModel` -> `upload_model` (+ `model_name=` kwarg)
- `linkModelDataset` -> `link_model_dataset` (+ `dataset_id=` kwarg)
- `getTrainingPlan` -> `get_training_plan`
- `experimentName` -> `experiment_name`
- `learningRate` -> `learning_rate`
- `lossFunction` -> `loss_function`
- `layersFreeze` -> `layers_freeze`
- `earlystopCallback` -> `early_stop_callback`
- `reducelrCallback` -> `reduce_lr_callback`
- `modelCheckpointCallback` -> `model_checkpoint_callback`
- `terminateOnNaNCallback` -> `terminate_on_nan_callback`
- `trainingClasses` -> `training_classes`
- `dataType` -> `data_type`

The `model_name` and `dataset_id` keyword names are no longer aliased
in 0.8.x — passing positional args still works, but the kwargs
`modelname=` / `datasetId=` raise TypeError, so the docs use the
explicit kwarg form everyone should adopt.

Also renames the local variable `trainingObject` -> `training_plan`
throughout, matching the canonical sample workflow in tracebloc's
project CLAUDE.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(ci): update sync-sources.yml dest after file rename (bugbot)

`tools-help/tracebloc-package.mdx` was renamed to `tools-help/tracebloc.mdx`
earlier in this PR, but the daily `sync-docs.yml` cron reads
`.github/sync-sources.yml` and would have either recreated the old
orphan path or failed outright — silently preventing upstream README
edits from reaching the new page.

Repointing the dest at `tools-help/tracebloc.mdx` keeps the upstream
README -> docs page sync working. The mapping `id` stays
`tracebloc-package` (it's a slug used for dispatch; changing it would
need a coordinated edit in the upstream notify workflow, which doesn't
exist yet — scope creep here).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>

* fix(ci): correct upstream refs in sync-sources.yml

Three entries pointed at `main` branches that do not exist in the
upstream repos, which would cause the sync fetch step to 404:
- tracebloc-py-package → develop (default; `main` does not exist; per
  the SDK repo's CLAUDE.md, develop is the canonical source of truth)
- data-ingestors → master (default branch)
- model-zoo → master (default branch)

Verified against the GitHub API for each repo. The `Readme.md` casing
flagged by bugbot is correct as-is: data-ingestors actually ships
`Readme.md` (mixed case), so the bugbot suggestion would have broken
the fetch — left unchanged.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(ci): pass source_id to yq via strenv() to avoid query injection

Bugbot flagged the previous `yq ".sources[] | select(.id == \"$target\")"`
pattern as shell-injectable. The specific RCE described doesn't
actually trigger — `DISPATCH_ID` / `INPUT_ID` are routed through
`env:` (Actions best practice) and bash does not re-tokenize
variable values inside double quotes, so `$()`, backticks, and `;`
in the value remain literal.

However, a `"` in the value would still terminate the yq string
literal at the yq parser level and could yield a malformed query or
unintended filter. Routing the value through `strenv(TARGET)` keeps
it entirely out of the yq expression syntax — defense in depth at
zero cost.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Asad Iqbal (Saadi) <asad.dsoft@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate to tracebloc 0.8.x: rename SDK page + URL + install snippets

3 participants