Skip to content

docs: add website docs and sync-docs-action setup - #52

Merged
mmanciop merged 10 commits into
mainfrom
docs/website-sync
Aug 6, 2026
Merged

docs: add website docs and sync-docs-action setup#52
mmanciop merged 10 commits into
mainfrom
docs/website-sync

Conversation

@mmanciop

@mmanciop mmanciop commented Aug 5, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds seven Markdown documentation pages under `docs/` covering: overview, getting started, configuration, auto instrumentation, resource detection, Kubernetes injection, and OTLP exporters.
  • Adds `.github/workflows/sync-docs.yml` and `.github/workflows/sync-docs/transformations.yaml` to sync those pages to the Dash0 website via `dash0hq/sync-docs-action` (pinned to v0.4.0 / `3fbe55fe`).
  • Adds `CLAUDE.md` with agentic maintenance instructions mapping each doc file to its authoritative source.

How the sync works

  • Dry-run triggers automatically on every PR that touches `docs/` — catches drift without touching the website.
  • Full sync is triggered via `workflow_dispatch` (dry-run unchecked) or `workflow_call` from a release workflow. It opens a PR in `dash0hq/dash0-website` creating `dash0/opentelemetry/distributions/python/nav.json` and all content pages.

Secrets required before full sync can run

  • SYNC_DOCUMENTATION_TARGET_REPOSITORY — target website repo (`dash0hq/dash0-website`)
  • SYNC_DOCUMENTATION_TARGET_DIRECTORY — content root in target repo (`src/app/(core)/docs/content`)
  • DASH0_WEBSITE_SYNC_TOKEN — PAT with contents:write + pull-requests:write on dash0hq/dash0-website

Dependency

The dash0-website PR #681 (OpenTelemetry distributions nav setup) must be merged first so the "OpenTelemetry" sidebar section exists before the Python content lands.

@mmanciop
mmanciop requested a review from a team as a code owner August 5, 2026 10:53
Adds seven Markdown documentation pages covering the distribution's key
topics (overview, getting started, configuration, auto-instrumentation,
resource detection, Kubernetes injection, and OTLP exporters), along
with the GitHub Actions workflow and transformations.yaml that sync
them to the Dash0 website via dash0hq/sync-docs-action.

Also adds CLAUDE.md with agentic maintenance instructions that describe
which source files are authoritative for each doc page, when to update
them, and how to keep the transformations.yaml in sync.
@mmanciop
mmanciop force-pushed the docs/website-sync branch from 119b200 to 6b6da66 Compare August 5, 2026 10:54
@mmanciop
mmanciop marked this pull request as draft August 5, 2026 10:55
…ture

Updates the sync-docs-action nav block so the generated python/nav.json
uses parentPath "Dash0 Distributions" (which is now established by the
foundational distributions/nav.json in the website) and title "Python"
rather than "Distributions". This keeps distribution-specific nav.json
files focused only on their own pages.
@mmanciop
mmanciop marked this pull request as ready for review August 5, 2026 11:36
Comment thread .github/workflows/sync-docs/transformations.yaml
Comment thread .github/workflows/sync-docs/transformations.yaml Outdated
Comment thread docs/overview.md Outdated
Comment thread docs/exporters.md
Comment thread docs/exporters.md Outdated
ocelotl and others added 8 commits August 5, 2026 14:01
…nsformation

Move the relative-link rewrite off the single kubernetes-injection.md entry
and into the common section so every current and future doc cross-reference
is handled by one mechanism. Uses required: false because the common block
runs against every file and most have no cross-reference to rewrite.
CLAUDE.md forbids em-dashes in the website docs. Replace the paired
em-dashes in overview.md and kubernetes-injection.md with commas (splitting
overview's opening into two sentences), and switch the excluded-package list
in auto-instrumentation.md to colon separators. Table default-column cells in
configuration.md are left as-is (placeholder, not prose).
The mixed-protocol endpoint rewriting was documented in both configuration.md
and exporters.md. Per CLAUDE.md's source-of-truth mapping, port-rewriting
logic belongs to exporters.md, so drop the duplicate here. The 'custom ports
are never rewritten' behavior remains noted in the OTEL_EXPORTER_OTLP_<SIGNAL>_ENDPOINT
table row.
The runnable send-to-Dash0 snippet was identical to the one in
getting-started.md. Per CLAUDE.md, quick-start commands belong in
getting-started.md, so remove the copy here. The header semantics remain
documented in configuration.md's OTEL_EXPORTER_OTLP_HEADERS row.
The sync-docs-action coverage check failed because docs/brainstorms/
and docs/plans/ match coverage.include but have no files: entry. These
are internal planning docs, not website content, so list them under
coverage.ignore (exact source-relative paths, as the action requires).
The "This page is auto-generated from …" note was visible to readers on
the website and felt noise rather than signal. Remove the prepend
transformation so synced pages open directly with their content.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…or docs

auto-instrumentation.md:
- Wrap every library table in <div class="two-col-lib-table"> so the
  Library column is fixed at 200 px and Instrumentation package takes
  the remaining width (requires matching CSS in the website)
- Turn every instrumentation package name into a PyPI link
- Link propagators and excluded packages (opentelemetry-propagator-aws-xray,
  opentelemetry-propagator-b3, opentelemetry-exporter-prometheus, etc.)

exporters.md:
- Link dash0-opentelemetry-pyproto, the two pyproto exporter packages,
  and the upstream opentelemetry-exporter-otlp-proto-{http,grpc} packages

resource-detection.md:
- Add note after the Kubernetes detector that other k8s.* attributes
  (namespace, node, deployment) require the k8sattributesprocessor and
  link to the Dash0 Operator and best-practices guide
- Rewrite "Using detectors explicitly": clarify that OTEL_EXPERIMENTAL_
  RESOURCE_DETECTORS is only needed with OTEL_CONFIG_FILE declarative
  config, explain that the SDK always appends service_instance + otel
  so built-in attributes are never displaced, and that all three Dash0
  detectors must be listed explicitly in the declarative config path

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@mmanciop
mmanciop merged commit 5de1e52 into main Aug 6, 2026
10 checks passed
@mmanciop
mmanciop deleted the docs/website-sync branch August 6, 2026 09:11
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.

2 participants