docs(frameworks): correct TensorFlow support claims (backend#2298) - #135
Conversation
TensorFlow is retired: new TF model uploads are rejected (backend#2427), while existing TF experiments remain readable (RFC-BACKEND-2232, D3). Remove TensorFlow from the supported-upload framework lists, drop the [tensorflow] install extra, and reframe the remaining TF-specific reference material as deprecated/read-only for existing experiments. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 53dbe03. Configure here.
…end#2298) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
LukasWodka
left a comment
There was a problem hiding this comment.
Bugbot's sync-destination finding is real — I measured it rather than agreeing with it
Two of the eight files are sync destinations, so editing them here is restating what upstream declares, and the next sync overwrites it. Confirmed on both ends:
.github/sync-sources.yml
tracebloc-package → repo: tracebloc/tracebloc-py-package ref: develop src: README.md
dest: tools-help/tracebloc.mdx
start-training → repo: tracebloc/start-training ref: main src: README.md
dest: join-use-case/start-training.mdx
And the upstream sources still advertise it — not inferred, read from the refs the mapping names:
tracebloc-py-package @ develop README.md
:14 pip install "tracebloc[tensorflow]" # TensorFlow
:52 | **TensorFlow** | Image classification, tabular classification |
:71 …a Python version compatible with TensorFlow (ideally 3.11 or 3.12)
start-training @ main README.md
:25 # pip install "tracebloc[tensorflow]>=0.8.1" # TensorFlow
Three things worth adding to Bugbot's version.
1. It isn't "the next sync" — it's within a day, unattended. sync-docs.yml runs on repository_dispatch and schedule: cron "0 6 * * *". So the two pages revert on the next daily run after merge whether or not anyone touches the upstream repos. Six files stay fixed, two quietly un-fix themselves, and the PR reads as complete in the meantime.
2. The start-training half has a longer pole than it looks. That mapping reads ref: main, but the repo's default branch is develop and the branch model is develop → staging → main. So an upstream fix doesn't propagate when it merges — it propagates when the release train promotes it to main. Until then the daily sync keeps pulling the stale main README. Worth knowing before someone opens the upstream PR and assumes the docs follow within a day.
3. The check that exists here can't see this class, and this repo already knows it cares. sdk-extras-check.yml asserts every documented pip install "tracebloc[…]" names an extra that really exists in the resolved release — its own header cites backend#1858, where [boosting] and [survival] were documented for eight releases after removal. But it's one-directional: it validates documented→exists, so it stays green both when docs stop advertising an extra the SDK still ships and when a sync puts the claim back. The failure mode this PR runs into is the mirror of the one that workflow was built for.
The shape that can't regress: drop tools-help/tracebloc.mdx and join-use-case/start-training.mdx from this PR, fix the two upstream READMEs, and let the sync carry it down. The remaining six files then land clean and nothing self-reverts. That also keeps the sync's own contract intact — a destination edited by hand is a destination that will disagree with its source forever.
The six files that do stick are well done, and I checked them against what actually shipped rather than against the description.
Every page keeps a consistent, accurate <Note>: uploads rejected, existing experiments readable, PyTorch/sklearn for new work. That matches backend#2427 as merged — I reviewed and approved that guard, and it rejects on the file-detected framework at both write entry points while leaving every read path alone. So the docs claim and the code agree, which is the thing most likely to be wrong in a deprecation PR and isn't here.
Keeping hyperparameters.mdx / model-optimization.mdx / how-training-works.mdx as read-only reference behind a deprecation note, rather than deleting them, is the right call and the one RFC-BACKEND-2232 D3 implies: those experiments remain readable, so their documentation has to remain too. Deleting it would have made the platform's own history undocumented.
Retargeting from #134 to develop was also correct — the docs repo's front-door gate routes main through the release train.
Not approving: Bugbot's thread is open and the finding is sound, so it's the author's to clear. Once those two files are out of the diff, this is an approve from me.
LukasWodka
left a comment
There was a problem hiding this comment.
Approving — e2476767 takes the right fix, and I checked it's a clean revert rather than a reshuffle
Gate: 10/10 checks pass, MERGEABLE, Bugbot's thread resolved, no standing change-request.
The delta between 53dbe03a and e2476767 is exactly the two sync destinations coming back out and nothing else:
join-use-case/start-training.mdx | 1 +
tools-help/tracebloc.mdx | 5 +----
So the six docs-native pages are byte-identical to what I read last pass, and the diff is now the set of files this repo actually owns. That's the version that can't silently un-fix itself on the 06:00 sync — editing a destination would have disagreed with its source forever, and the daily cron would have won.
Re-confirming the substance, since dropping files can quietly break the pages that remain: each of the six still carries its <Note>, the framing is accurate against backend#2427 as merged (uploads rejected on the file-detected framework at both write entry points, every read path untouched), and keeping hyperparameters.mdx / model-optimization.mdx / how-training-works.mdx as read-only reference behind a deprecation note is what D3 implies — those experiments stay readable, so their documentation has to as well.
The follow-up this now depends on, so it doesn't get lost. Until the two upstream READMEs are fixed and synced, the published docs are internally inconsistent: six pages say TensorFlow is deprecated while tools-help/tracebloc.mdx:20 and join-use-case/start-training.mdx:46 still show
# pip install "tracebloc[tensorflow]>=0.18.1"
It's a commented-out line in an install snippet rather than an active recommendation, so the inconsistency is mild and the tradeoff is clearly the right way round — a temporary stale comment beats a correction that reverts itself. But it needs the two upstream PRs to actually happen:
tracebloc/tracebloc-py-package@develop— README:14install line,:52framework table row,:71the TF-version note. Private repo.tracebloc/start-training@main— README:25. Note the ref:sync-sources.ymlreads this one atmain, notdevelop, so a merge todevelopwon't propagate; it lands in the docs when the release train promotes it. Worth knowing so nobody waits a day for a sync that can't happen yet.
Worth a line on backend#2298 naming both, since #2298 closes with this PR and the remaining half lives in two other repos.
saadqbal
left a comment
There was a problem hiding this comment.
Checked the claims against the shipped code rather than the PR body — the wording tracks
common/constants.py:TENSORFLOW_UPLOAD_REJECTED_MESSAGE on develop (landed in backend#2427),
including "existing TensorFlow experiments remain readable", and sklearn is a real
FRAMEWORK_CHOICES entry, so the substitutions in overview/tracebloc.mdx and faqs.mdx are accurate.
Swept the branch for TF claims left standing: everything remaining in how-training-works.mdx,
hyperparameters.mdx and model-optimization.mdx sits under one of the notes this PR adds
(page-level, plus the section notes on Tensorflow mandatory variables and formats 3–4), and no
other page or docs.json still advertises it. Keeping the TF reference material as read-only
history rather than deleting it is the right call under D3.
Good handling of the Bugbot sync catch too — reverting the two synced pages and doing the
[tensorflow] extra in tracebloc-py-package#440 / start-training#69 is the only version that
survives the next sync, and Refs rather than Closes on #2298 is correct while those two are open.

TensorFlow is retired. New TF model uploads are now rejected (backend#2427, merged); existing/historical TF experiments remain readable (RFC-BACKEND-2232, D3). The public docs still advertised TensorFlow as a supported upload framework — this corrects that.
Retargeted to
develop(supersedes #134, which was opened againstmain— the docs repo's front-door gate routesmainthrough the release train, not direct PRs).What changed (6 docs-native pages)
overview/tracebloc.mdx,join-use-case/overview.mdx,tools-help/faqs.mdx, and the per-task "Frameworks:" lines injoin-use-case/how-training-works.mdx.hyperparameters.mdx,how-training-works.mdx) as deprecated / read-only for existing experiments via page-level notes — the detail stays accurate for the historical experiments that remain readable (D3), rather than being deleted.Synced pages handled at source (Bugbot catch)
tools-help/tracebloc.mdxandjoin-use-case/start-training.mdxare sync destinations (docs.github/sync-sources.yml), so their TF edits are made in the source repos instead — otherwise the next sync reverts them:tools-help/tracebloc.mdx)join-use-case/start-training.mdx)Refs tracebloc/backend#2298 (this PR + the two source PRs together complete #2298; closing #2298 manually once all three land + sync).
— drafted with Claude Code