docs(fern): add local library autodocs without Fern auth#2102
Conversation
Add a nemo-curator-local path-based library entry for Docker-based generation via --local, pin CI to the git-based nemo-curator library, and bump the Fern CLI pin to 5.50.4. Signed-off-by: Lawrence Lane <llane@nvidia.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Pin docs-generate-library to the git-based nemo-curator entry and add docs-generate-library-local for unauthenticated Docker-based generation. Signed-off-by: Lawrence Lane <llane@nvidia.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Greptile SummaryThis PR introduces a
Confidence Score: 4/5Safe to merge for the documentation and dev-workflow changes; the one unverified path is whether The changes are well-scoped docs and tooling additions. The explicit
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
subgraph LocalDev["Local Development (no auth)"]
A["npm run generate:library:local"] --> B["fern docs md generate --local --library nemo-curator-local"]
B --> C["Docker: fernapi/fern-python-library-docs-parser"]
C --> D["input.path: ../nemo_curator"]
D --> E["Output: Full-Library-Reference/ (fewer pages, beta)"]
end
subgraph FullLocal["Local Full Reference (auth required)"]
F["npm run generate:library"] --> G["fern docs md generate --library nemo-curator"]
G --> H["Cloud Fern parser (FERN_TOKEN)"]
H --> I["input.git: github.com/NVIDIA-NeMo/Curator"]
I --> J["Output: Full-Library-Reference/ (424 pages)"]
end
subgraph CI["CI / Publish Workflows"]
K["Push docs/v* tag OR PR"] --> L["fern docs md generate --library nemo-curator"]
L --> M["Cloud Fern parser (DOCS_FERN_TOKEN secret)"]
M --> N["input.git: github.com/NVIDIA-NeMo/Curator"]
N --> O["Output: Full-Library-Reference/"]
O --> P["fern generate --docs / --preview"]
P --> Q["Published or Preview site"]
end
E -.->|same gitignored folder| O
J -.->|same gitignored folder| O
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
subgraph LocalDev["Local Development (no auth)"]
A["npm run generate:library:local"] --> B["fern docs md generate --local --library nemo-curator-local"]
B --> C["Docker: fernapi/fern-python-library-docs-parser"]
C --> D["input.path: ../nemo_curator"]
D --> E["Output: Full-Library-Reference/ (fewer pages, beta)"]
end
subgraph FullLocal["Local Full Reference (auth required)"]
F["npm run generate:library"] --> G["fern docs md generate --library nemo-curator"]
G --> H["Cloud Fern parser (FERN_TOKEN)"]
H --> I["input.git: github.com/NVIDIA-NeMo/Curator"]
I --> J["Output: Full-Library-Reference/ (424 pages)"]
end
subgraph CI["CI / Publish Workflows"]
K["Push docs/v* tag OR PR"] --> L["fern docs md generate --library nemo-curator"]
L --> M["Cloud Fern parser (DOCS_FERN_TOKEN secret)"]
M --> N["input.git: github.com/NVIDIA-NeMo/Curator"]
N --> O["Output: Full-Library-Reference/"]
O --> P["fern generate --docs / --preview"]
P --> Q["Published or Preview site"]
end
E -.->|same gitignored folder| O
J -.->|same gitignored folder| O
|
| nemo-curator-local: | ||
| input: | ||
| path: ../nemo_curator | ||
| output: | ||
| path: ./product-docs/nemo-curator/Full-Library-Reference | ||
| lang: python |
There was a problem hiding this comment.
Shared output path produces silently smaller reference on local machines
Both nemo-curator and nemo-curator-local write to the same Full-Library-Reference/ directory. Running generate:library:local after generate:library overwrites the full 424-page set with the beta Docker-parsed subset. A developer iterating locally may not notice the missing pages until they compare output sizes. The docs call this out, but a runtime guard — even just an echo warning — in the Makefile/npm script that the local flow produces fewer pages and overwrites any previous full generation would prevent confusion.
Description
Adds a
nemo-curator-localpath-based library entry so contributors can runnpm run generate:library:local(Fern--local) without Fern login, using Docker to parse../nemo_curatorlocally. CI and publish/preview workflows are pinned to--library nemo-curatorso the git-based remote generation path is unchanged. Also bumps the Fern CLI pin to 5.50.4 and documents both flows infern/README.md,fern/AUTODOCS_GUIDE.md, and the docs agent skill.Usage
Checklist
Made with Cursor