Repository navigation
Reorganize tutorial navigation and ownership (docs redesign Step 3) - #5540
Open
chesterxgchen wants to merge 5 commits into
Open
chesterxgchen wants to merge 5 commits into
chesterxgchen wants to merge 5 commits into
Conversation
chesterxgchen
added a commit
to chesterxgchen/NVFlare
that referenced
this pull request
Oct 25, 2026
Signed-off-by: Chester Chen <chesterxgchen@users.noreply.github.com>
Contributor
[Low impact] This PR appears safe to merge; no new actionable issues remain. SummaryThis PR separates onboarding, feature tutorials, runnable examples, and structured training. It also refreshes five notebooks and adds focused regression tests.
Reviews (4) · Last reviewed commit: "Restore the NVFLARE HE extra in the POC ..." · Reviewed by Greptile |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5540 +/- ##
=======================================
Coverage 71.65% 71.65%
=======================================
Files 1048 1048
Lines 112323 112323
=======================================
Hits 80480 80480
Misses 31843 31843
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Implement Step 3 of the documentation redesign proposal (docs/design/documentation_redesign_proposal.md, Section 5.6a): - docs/tutorials.rst: reorganize into current onboarding (Quick Start and Hello World), maintained feature tutorials grouped by outcome, example catalog discovery, and structured training. Label the NVFLARE 2.6 self-paced course and the independently versioned hosted DLI courses. - examples/tutorials/README.md: make it the authoritative feature-notebook index with outcome, prerequisites, expected completion signal, and owning area per notebook, plus a verification record. - docs/examples_tutorials.rst and docs/examples/tutorial_notebooks.rst: convert obsolete overlapping landing pages to compatibility pointers, preserving their URLs and labels. Incorporates the tutorial-page changes drafted in NVIDIA#5328 (outcome grouping, DLI course links, developer portal) so that PR can drop those files. Notebook flows re-verified on main (b329c81), Python 3.14: hello-numpy and hello-pt simulation runs, POC prepare/start, FLARE API admin session, and CLI job export, submit, completion, and result download.
Signed-off-by: Chester Chen <chesterxgchen@users.noreply.github.com>
Signed-off-by: Chester Chen <chesterxgchen@users.noreply.github.com>
Signed-off-by: Chester Chen <chesterxgchen@users.noreply.github.com>
Signed-off-by: Chester Chen <chesterxgchen@users.noreply.github.com>
chesterxgchen
force-pushed
the
docs/tutorial-nav-ownership
branch
from
October 25, 2026 06:54
26424f4 to
0bfce37
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #5539.
Description
Reorganize tutorial navigation so readers can distinguish getting started, learning one feature, finding a runnable example, and following a structured course. This is Step 3 of the documentation redesign and separates tutorial ownership from the README and Quick Start work in #5328.
During review, the scope was expanded to audit and refresh the notebooks in this same PR. Accurate navigation needs to lead to instructions that match the implementation, not just reorganize stale links.
Navigation and ownership
docs/tutorials.rstowns learning-path navigation. Lead with Quick Start and Hello World, then offer focused feature tutorials, the example catalog, and structured training. Group notebooks by outcome: build/test, operate/deploy, and observe/troubleshoot.examples/tutorials/README.mdowns the detailed notebook index. Record each notebook's purpose, prerequisites, completion signal, owning subsystem, and dated verification context. Keep runnable instructions in the notebooks and example READMEs.python job.py. Development-checkout verification is not presented as released-version verification.docs/examples_tutorials.rstanddocs/examples/tutorial_notebooks.rstas compatibility pointers. No notebook is removed or renamed.Notebook audit and fixes
Audited all six feature notebooks against current source and the 2.9 release history. Five needed changes;
nvflare_cli.ipynbwas checked and remains unchanged.treeutility is an OS package, and separate optional Docker/HE setup from the basic flow.The PR now changes four documentation pages, five notebooks, and one test file. It does not change NVFLARE runtime implementation or package dependencies.
Coordination with #5328
Commit
d4a2b6c12removes the overlapping tutorial-page edits from #5328. That PR retains the root README, Quick Start, and overview figure; this PR owns tutorial navigation and the reviewed notebook refresh.Types of changes
Testing
Review-time checks on macOS, Python 3.13.15, using this PR's development checkout based on
b329c8113:python -m pytest -q tests/unit_test/examples/tutorial_notebooks_test.py tests/unit_test/examples/poc_tutorial_commands_test.py tests/unit_test/examples/recipe_export_arguments_test.py tests/unit_test/examples/hello_pt_client_test.py— 44 passed after the startup-abort follow-up../runtest.sh -s --skip-install— Black, isort, flake8, and Agent Skills lint passed using the existing development environment. Black skips notebooks in this environment; notebook syntax was checked separately.nbformatschema validation; 77 code cells compiled after IPython transformation; 46 runnable CLI invocations parsed against the current CLI. Parsing does not execute those commands.FINISHED:COMPLETED.59d709f43, all 13 FLARE API code cells executed against a temporary two-client POC deployment, substituting only its admin-kit location: connect, export, submit, monitor, download, resubmit, abort, delete, and close. The first NumPy job completed; the second was aborted and both were deleted.python examples/tutorials/nvflare_cli_job.py --job-dir <temporary-directory> --num_rounds 2— job export passed.SKIP_API_DOCS=1 sphinx-build -q -b html docs <temporary-directory>— HTML build succeeded with warnings elsewhere in the checkout; no warnings named the changed documentation pages. Used Sphinx directly to avoid reinstalling dependencies or cleaning existing artifacts.git diff --checkpassed. Fresh-context review of the final diff reported no remaining findings.Startup-abort follow-up: four regression cases failed on
59d709f43and pass with the fix. Tests exercise the realSession.abort_job()response-to-exception mapping with mocked transport and time, including retry success, a job that completes during retry, deadline exhaustion, other-job responses, unrelated errors, and authorization failures. The full notebook mock-session test verifies that monitoring, deletion, and session closure still follow a successful retry.python -m pytest -q tests/unit_test/private/fed/server/job_runner_abort_test.py tests/unit_test/integration_test/action_handlers_test.pyalso passed (63 tests). Style and notebook schema/syntax checks were rerun. The final retry-only change was not rerun against a live deployment; the earlier live run aborted before startup and did not exercise this race.Rebase and HE-install correction: rebased onto
upstream/mainata0a35019bwithout conflicts;git range-diffconfirmed that all four existing commit patches were preserved. Restored%pip install "nvflare[HE]"in the POC notebook so TenSEAL versions follow NVFLARE's HE-extra dependency constraints while installation uses the notebook kernel. After rebasing, reran the six test modules listed above together (107 passed),./runtest.sh -s --skip-install, notebook schema/syntax/CLI parsing checks, andgit diff --check; all passed. The HE install itself, live deployments, and HTML build were not rerun for this correction.The README preserves the earlier Linux/Python 3.14 authoring record separately from these review-time checks. Not run: every POC/CLI notebook cell, optional Docker/HE/checkpoint-loading/production deployment sections, execution against released wheels, the full runtime test suite, and API-reference generation. The release comparison was a source audit, not a released-wheel compatibility certification.
Risk
Low, scoped to tutorial navigation and executable teaching examples. Likely failure modes are inaccurate prerequisites, broken links, or example path/import differences across environments. Existing page URLs and labels are preserved; targeted tests and live simulator/POC runs cover the corrected core paths. Optional deployment sections retain environment-specific prerequisites and were not executed. No runtime API, persisted format, or package dependency changes.
How to revert
Revert this PR's documentation, notebook, and test changes. There are no runtime or saved-state migrations. Reverting does not restore the tutorial edits removed from #5328; those would need to be reapplied separately if desired.