docs: build the published site from develop (#408) - #409
Merged
Conversation
`docs/` lived on two diverging branches: the orphan `docs` branch that GitHub Pages was built from, and the copy on `develop`/`main` that README, CONTRIBUTING, and four modules under `src/agentops/` link to. Every documentation fix therefore needed two pull requests, and the two trees had drifted apart on eight files. This makes `develop` the single source. `develop` is the branch every fix PR squashes into, so a documentation-only change reaches the published site as soon as its PR merges, with no release, tag, or changelog entry required. `main` still receives `docs/` through the normal release merge, so the existing links into the default branch keep resolving. Reconciled the eight files that had diverged, taking whichever version was correct rather than defaulting to one branch: - concepts.md, doctor-explained.md, how-it-works.md: `docs` version, a strict superset. The pre-flight section on `develop` was also factually wrong about when checks run. - release-process.md: `develop` version. Its relative link to `../CONTRIBUTING.md` resolved from the repo root but not from the rendered site, so it is now absolute. - e2e-live-setup.md, ci-github-actions.md, evaluation.md: `docs` version as the base, with the sections that only existed on `develop` ported back in. - tutorial-prompt-agent.md: `docs` version, verified to retain both subsections that looked dropped. Corrected four documentation bugs found by validating the examples against the code rather than by reading them: - evaluation.md documented `privacy.redact_pii`, which is not a field on `TelemetryPrivacyConfig`. Since that model sets `extra="forbid"`, the example failed to load. Replaced with the real `redact_fields` and `max_field_length`. - evaluation.md showed `agentops telemetry import` without `--apply`. That path is a dry run and writes nothing, so the step could not produce the dataset the next step consumed. - evaluation.md described a `replay_url` on imported rows. No such field is emitted. Rewrote the paragraph against the actual `telemetry` block. - tutorial-hosted-agent.md used a placeholder endpoint with no Foundry domain alongside `protocol: responses`. AgentOps classifies endpoints by domain, not path, so that config was rejected outright. The placeholder now carries the real host shape and the constraint is stated. Removed tutorial-hosted-agent-quickstart.md. It covered hosted and HTTP agents in one file; the `docs` branch had already split that into tutorial-hosted-agent.md and tutorial-http-agent.md with better coverage of each. Its five inbound references now point at the correct tutorial. Added tutorial-end-to-end.md to the nav (it was orphaned but referenced from the README and from `checks/errors.py`) and excluded bundles.md, which is marked pre-1.0 historical reference and has no inbound links. Fixed three internal links to files that exist on no branch. The build now passes `mkdocs build --strict` with zero warnings. All 21 complete `agentops.yaml` examples across the docs tree instantiate `AgentOpsConfig` without error. Refs #397, #405, #408
This was referenced Aug 9, 2026
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.
What this changes
docs/currently lives on two diverging branches:docsbranch, which is what GitHub Pages actually builds fromdevelop/main, whichREADME.md,CONTRIBUTING.md, and four modules undersrc/agentops/link intoEvery documentation fix therefore needs two pull requests, and the two trees had drifted apart on eight files. That is issue #408.
This PR makes
developthe single source, and points the Pages build at it.Why
developand notmainmainonly ever receives merges fromrelease/vX.Y.Z. Building the site frommainwould mean a one-character typo fix could not reach the published site without cutting a release, tagging it, and writing a changelog entry.developis the branch every fix PR squashes into. Building fromdevelopmeans a documentation-only PR publishes as soon as it merges. No release, no tag, no changelog.mainstill receivesdocs/through the normal release merge, so every existing link into the default branch keeps resolving. Nothing had to be deleted to make this work.Reconciling the eight diverged files
Taken file by file, on which version was actually correct:
concepts.mddocsdoctor-explained.mddocsdeveloppre-flight section was also factually wrong about when checks run.how-it-works.mddocsrelease-process.mddevelop../CONTRIBUTING.mdlink resolved from the repo root but not from the rendered site, so it is now absolute.e2e-live-setup.mddocs+ portdeveloprestored.ci-github-actions.mddocs+ portdevelop.evaluation.mddocs+ portdevelop.tutorial-prompt-agent.mddocsDocumentation bugs fixed along the way
These were found by running the examples against the code, not by reading them. All four are live on the published site today.
evaluation.mddocumentedprivacy.redact_pii. That field does not exist onTelemetryPrivacyConfig, and the model setsextra="forbid", so the example failed to load. Replaced with the realredact_fieldsandmax_field_length.evaluation.mdshowedagentops telemetry importwithout--apply. Without that flag the command is a dry run and writes nothing, so the step could not produce the dataset the following step consumed.evaluation.mddescribed areplay_urlfield on imported rows. No such field is emitted. Rewrote the paragraph against thetelemetryblock that is actually produced.tutorial-hosted-agent.mdhad a config that cannot load. It paired a placeholder endpoint carrying no Foundry domain withprotocol: responses. AgentOps classifies endpoints by domain, not by path, so a non-Foundry host is restricted tohttp-jsonand the config was rejected. The placeholder now carries the real host shape, and the constraint is stated, because it was documented nowhere.Other cleanup
tutorial-hosted-agent-quickstart.mdis removed. It covered hosted and HTTP agents in one file; thedocsbranch had already split it intotutorial-hosted-agent.mdandtutorial-http-agent.mdwith better coverage of each. All five inbound references now point at the correct one of the two.tutorial-end-to-end.mdis added to the nav. It was orphaned from the site while being referenced from the README and fromsrc/agentops/agent/checks/errors.py.bundles.mdis excluded from the build. It is marked pre-1.0 historical reference and nothing links to it.Three internal links pointed at files that exist on no branch. Fixed.
site/added to.gitignoreso a localmkdocs buildstops showing up as untracked.Workflow change
deploy-docs.ymlnow triggers onpushtodevelop, filtered to the paths that can affect the rendered site, and runsmkdocs build --strictas its own step beforegh-deployso a broken build fails before it publishes. Aconcurrencygroup withcancel-in-progressstops overlapping runs from racing each other ontogh-pages.The
release: publishedtrigger is kept, becausemain.pyresolves the latest release through the GitHub API at build time and the site needs to rebuild when that changes.Verification
mkdocs build --strictagentops.yamlexample instantiated againstAgentOpsConfig.mdlinksdocs/*.mdreferences from outsidedocs/docs.pypi.orgreturning HTTP 429 to this IP, confirmed reachable by handFollow-up
The
releasetrigger resolves its workflow file from the default branch, so it will keep using the olddeploy-docs.ymluntil the next release carries this file tomain. A companion PR targetsmaindirectly with just that file.Once this is merged and the site is confirmed to be serving from
develop, the orphandocsbranch can be deleted. That is a separate, destructive step and is not part of this PR.Refs #397, #405, #408