docs(v1): reconcile the 24 remaining v1 OSS/Enterprise page pairs into shared content - #7663
Merged
jstirnaman merged 18 commits intoAug 18, 2026
Merged
Conversation
Move the eight pages whose OSS/Enterprise divergence resolves without editorial taste, leaving front-matter stubs. Part of #7620. The two copies were each swept by a different mass-edit at a different time, which is why neither edition is "the newer copy": - Code formatting: Enterprise ran through flux fmt (four-space pipe indent, trailing commas); OSS did not. Enterprise wins. - Flux stdlib links: OSS was updated for the post-0.65 stdlib layout; Enterprise still points at built-in/inputs, built-in/outputs, and universe/type-conversions, none of which resolve. OSS wins. Four hunks needed a target neither copy had: - geo/group-geo-data.md: Enterprise called the geo.asTracks() parameter sortBy. The stdlib reference documents it as orderBy, so OSS is correct. content/shared/influxdb-v2/query-data/flux/geo/group-geo-data.md has the same defect in prose while its example uses orderBy; filed separately. - geo/_index.md: both copies linked a dead to()/from() path. Enterprise used the pre-0.65 built-in layout, OSS used a trailing-slash variant that also fails. Both now point at stdlib/influxdata/influxdb/. - sql.md: the Enterprise "create a database" link pointed at introduction/getting-started/#creating-a-database, an anchor that page does not contain -- it is a Chronograf pointer page. OSS pointed at its own get-started tutorial, which has no Enterprise equivalent. Both now point at query_language/manage-database/#create-database, which resolves in either edition and documents CREATE DATABASE. - window-aggregate.md / query-fields.md: OSS link targets confirmed against content/shared/influxdb-v2, the maintained upstream both editions declare canonical. Vale, as #7620 anticipated: six Google.Ordinal errors surfaced in percentile-quantile.md, exempted at file scope because percentile ordinals are standard statistical terminology. One "the the" repetition in geo/filter-by-region.md fixed. Added "quantiles?" to the accept vocabulary -- percentile is in the base dictionary, quantile was not. Verification: Hugo build clean, zero unresolved /product/version/ placeholders in either v1 edition, Vale reports zero errors across all 19 shared v1 Flux guides. Manifest down from 24 pairs to 16.
Part of #7620. Manifest down from 16 pairs to 13. flux/installation.md is the edition-specific case #7620 flagged: OSS documents one configuration guide with an anchor (administration/config/), Enterprise documents a directory of them (administration/configure/). Neither path resolves in the other edition, so the blockquote is duplicated inside block-scoped show-in wrappers. Inline show-in does not work here. Two adjacent inline conditionals inside a blockquote break the block on whichever edition hits the empty branch first -- {{% %}} renders its inner content as its own Markdown block, so the surviving branch escapes as a sibling paragraph: <blockquote><p>...More information is available in the</p></blockquote> <p><a href=...>Configuring InfluxDB</a> guides.</p> Hugo exits 0 either way, so this was caught by grepping the rendered HTML of both editions, not by the build. flux/guides/manipulate-timestamps.md: Enterprise's five stale stdlib links (universe/type-conversions/{time,uint,string}/, built-in/misc/now/) plus a language/types/ path dead in both editions, all repaired against content/shared/influxdb-v2/query-data/flux/operate-on-timestamps.md and verified to resolve. flux/get-started/_index.md: Enterprise had dropped the Flux REPL entirely -- the "influx CLI" section and its mention under "What you will need". The REPL is not OSS-only; content/enterprise_influxdb/v1/flux/execute-queries.md documents it. Restored from OSS, with Enterprise's more specific "Flux v0.65" kept over OSS's bare "Flux". The restored section no longer restates a version floor. OSS said v1.8+ while Enterprise's execute-queries.md says the REPL needs 1.10+, and Enterprise's own get-started page says v1.8+ -- two Enterprise pages already disagree. Shared content now points at each edition's execute-queries page, which owns that claim, rather than freezing an unverified floor into both products. The Enterprise 1.10+/1.8+ contradiction is pre-existing and filed separately. Verification: Hugo build clean, both editions render one intact blockquote with their own configuration target, zero unresolved /product/version/ placeholders, Vale reports zero errors.
Part of #7620. Manifest down from 13 pairs to 7. monitor-states.md, flux-in-dashboards.md: Enterprise's copies are not just better formatted, they fix broken examples. OSS had a stateDuration() snippet starting with a bare `|>` and no `data` pipeline source, a stateCount call with its opening paren on the next line, and a `window(every: autoInterval)` step missing its `|>` entirely. Enterprise wins. flux-in-dashboards.md also merges across editions: OSS's "InfluxDB v1.8+" (v1.9 and v1.10 also work) with Enterprise's "required to use Flux in dashboards" phrasing. histograms.md, calculate-percentages.md, scalar-values.md: Enterprise formatting with OSS stdlib link targets, all verified to resolve. scalar-values needed a target neither copy had -- OSS pointed at /flux/v0/flux-functions (dead, and misspelled "queiry"), Enterprise at universe/stream-table/ (dead, pre-0.65 layout). Both now point at /flux/v0/function-types/#dynamic-queries, which is the current term and links back to this guide. exists.md is the page #7620 singled out, and both copies are partly right: - Enterprise has the v1-correct links; OSS sent readers to /influxdb/v2/query-data/execute-queries/, and to /flux/v0/get-started/ instead of the edition's own guide. - Enterprise uses from(bucket: "db/rp"); OSS leaked v2's "example-bucket". - OSS has a "statically defined record" section Enterprise dropped. Enterprise's intro example also claims `exists p.height` returns false for a record literal with no height key, which contradicts OSS's static-record section. Dropped in favor of the row-record framing that the Flux spec backs (spec/operators.md: exists returns false if the operand is null), and the front-matter description updated to match. The static-record behavior was measured rather than inferred, against throwaway containers on the v1 line: v1.8.10 exists p.height on a record literal without height type-checks and runs -- no error. internal/debug does not exist at all. v1.11.8 error @4:43-4:44: record is missing label height, at compile time. exists p.firstName type-checks. So the section is true for v1.11+ and false for v1.8, which this page names as its floor. Kept with a note stating that, rather than asserted unconditionally. Plain OSS image tags jump 1.8 to 1.11 (1.9 and 1.10 ship only as Enterprise data/meta images), so those two versions bracket OSS exactly. The v2 upstream's version of this section uses debug.null(type: "int"), which cannot run on v1: internal/debug.null was introduced in Flux 0.179.0 and v1.8 bundles v0.65. Not imported. Vale: one "of of" repetition in histograms.md fixed, and its bare `le` column name marked as code. Verification: Hugo build clean, zero unresolved /product/version/ placeholders, Vale reports zero errors. Probe containers removed.
Part of #7620. Manifest down from 7 pairs to 2. mathematic-operations.md is where OSS wins every text hunk. Enterprise pointed the REPL link at /influxdb/v2/tools/repl/, sending v1 readers into v2 docs, where OSS linked the edition's own execute-queries page and its #influx-cli anchor -- present in both editions. Enterprise also had two dead universe/type-conversions/ links, an anchor that does not exist on the custom-functions page (#functions-that-manipulate-piped-forward-data rather than #use-piped-forward-data-in-a-custom-function), and a "Calculate percentates" typo. The /flux/v0/language/operators/ path, dead in both copies, now points at /flux/v0/spec/operators/#arithmetic-operators. transform-data.md runs the other way: Enterprise wins the link hunk too. OSS kept the dead /flux/v0/language/types/#duration-types while Enterprise had already moved to spec/types/. The winner is per-hunk, not per-edition. join.md, conditional-logic.md: formatting only. conditional-logic's one substantive difference, OSS's bare `dueDate = 2019-05-01` against Enterprise's `2019-05-01T00:00:00Z`, was checked against running v1.8.10 and v1.11.8 -- both forms type-check, so it is style, and the explicit RFC3339 form is kept. syntax-basics.md: Enterprise had dropped the same influx CLI section it dropped from get-started/_index.md, which also left the page opening on an h3 with no h2 parent. Restored from OSS, minus its blockquote pointing at /platform/install-and-deploy/deploying/sandbox-install -- the InfluxData Sandbox page no longer exists anywhere in this repo, so restoring it verbatim would import a dead link. Version and authentication details defer to each edition's execute-queries page, as in get-started/_index.md. Vale, all pre-existing and exposed by the move: "and and" in join.md, "through through" in syntax-basics.md. Also dropped "at its core" as filler and changed join.md's sentence-dash to a colon. Verification: Hugo build clean, zero unresolved /product/version/ placeholders, Vale reports zero errors.
Part of #7620. Manifest down from 2 pairs to 1. Enterprise's copy wins the structure: it uses relative anchors (#function) where OSS wrote absolute paths (/influxdb/v1/concepts/glossary/#function). On a page shared by two editions the relative form is strictly better, and that single difference accounts for most of the 183 diverging lines. #7620 describes Enterprise as defining ten terms OSS lacks. Seven of them are real and are now wrapped in show-in blocks: data node, data service, meta node, meta service, passive node (experimental), web console, and replication factor. The other three -- grant, permission, role -- are empty commented-out headings with no definitions. They render nothing in either edition, so they are removed rather than migrated. replication factor is not additive, it is two different definitions of one term. OSS explains that replication has no effect on a single node and points at Enterprise; Enterprise explains cluster behavior. Both are edition-correct, so both are kept under one heading, each in its own show-in block. That heading is a rename with consequences. OSS used "replication factor" (#replication-factor), Enterprise "replication factor (RF)" (#replication-factor-rf). Enterprise's form matches the page's own convention for continuous query (CQ) and retention policy (RP), so it wins, and the three pages still linking the old anchor are updated. One of them, enterprise_influxdb/v1/guides/hardware_sizing.md, was pointing into /influxdb/v1/ from an Enterprise page; it now links within its own edition. Enterprise's own "Related entries" link to #replication-factor was already broken against its own heading and is fixed by the same change. Also corrected while merging: "InfluxDB 2.0 API compatibility endpoints" to 2.x, and two "data are" constructions. The third, "how many copies of the data are stored", is rephrased rather than substituted -- the subject there is copies, so Vale's data is/data are rule is a false positive on that sentence. Verification: Hugo build clean. Rendered HTML confirms the conditionals behave: OSS shows none of the six Enterprise-only terms and the OSS replication factor text, Enterprise shows all six and its own; the user entry renders as a single list, two bullets on OSS and three on Enterprise. Vale reports zero errors.
…worklist Closes the last of the 24 pairs in #7620. The manifest pairs list is now empty. Enterprise wins the page. Beyond formatting it carries a full InfluxQL-to-Flux parity table that OSS reduced to a heading and the sentence "Flux is working towards complete parity with InfluxQL." The table is real content, so it moves. Its links did not survive contact with the current stdlib, though. The table was built against the pre-0.65 layout, so every schema-function link pointed at /flux/v0/stdlib/influxdb-v1/, which does not resolve; those functions live in influxdata/influxdb/v1/. to() and buckets() were under universe/ and are now under influxdata/influxdb/. OSS's [Flux type conversion functions](/flux/v0/function-types#type-conversions) is restored over Enterprise's dead universe/type-conversions/. Both editions also shipped a histogram example that cannot run. Verified against 1.8.10 and 1.11.8: histogram(buckets: [10, 20, ...]) v1.8 type error: function does not take a parameter "buckets", required params (bins) v1.11 found unexpected argument buckets (Expected one of `bins`, ...) and `bins` takes floats, not ints ("expected float but found int"). The example is now histogram(bins: [10.0, 20.0, ...]). Enterprise's trailing comma inside the array literal parses fine on both versions and was not the problem. Also swept the same dead-link class out of four already-shared pages -- /flux/v0/language/types/ and /flux/v0/language/operators/ in fill.md, rate.md, window-aggregate.md, and query-fields.md now point at /flux/v0/spec/. No /flux/v0/ link under content/shared/influxdb-v1/ is dead now. Verification: Hugo build clean, zero unresolved /product/version/ placeholders, Vale reports zero errors, and a sweep of every /flux/v0/ link across all shared v1 content resolves.
…icated Emptying the manifest in #7620 was correct for the 24 pairs it tracked, but it left the ratchet guarding nothing while 30 v1 pages are still duplicated across OSS and Enterprise -- 3,001 diverging lines. Those 30 were never manifest-tracked. The manifest was created in the phase C commit already holding only the 24 deferred pairs, because phase C's 31 pages migrated in that same commit; the union of every entry the manifest has ever held is exactly 24. The counts close: 95 overlapping paths = 55 reconciled (31 + 24) + 30 duplicates + 9 section _index.md pages + 1 Cypress fixture. #7620 assumed the remainder was pages whose editions genuinely differ, per docs/adr/0001. That holds for some of them -- hardware_sizing (299), upgrading (329) -- but not for the ones at the other end: guides/downsample_and_retain.md 2 lines of 214 guides/query_data.md 2 lines of 99 query_language/continuous_queries.md 3 lines of 977 concepts/storage_engine.md 6 lines of 428 Their entire divergence is the configuration-page IA split already solved in content/shared/influxdb-v1/flux/installation.md: OSS administration/config# against Enterprise administration/configure/config-data-nodes/#. Fifteen of the 30 diverge by under 40 lines. These are free files that phase C's diff -w test could not see, not edition-specific content. __tests__/shortcodes.md is excluded -- it is a Cypress fixture, not content. The _comment no longer instructs deleting this file when the list empties. That instruction is what turned an emptied worklist into an argument for removing drift protection from pages that had never been examined. An empty list now means the next batch is not enumerated yet. Verification: node --test .ci/scripts/check-v1-shared-drift.test.js passes 12/12 against the hardened checker, including the union-of-base-and-head case and "migrated pages are not listed in the manifest".
The Documentation style section covered content pages only, so agents applied the Google style guide to Markdown under content/ and then wrote issue bodies and status comments in a different register -- section headings chosen for effect, findings structured as reveals, counts placed as closing beats rather than stated inside a sentence. Two bullets: the style guide governs issues, pull request descriptions, and status comments as well; and write to inform rather than to impress. Ran yarn build:agent:instructions and yarn validate:agent-instructions. Neither of the five generated adapter sets mirrors this section, so they are unchanged. PLATFORM_REFERENCE.md is regenerated by those commands but its current diff belongs to concurrent work on data/products.yml and is left uncommitted.
What changed: The Documentation style bullet in AGENTS.md now names commit messages alongside issues, pull request descriptions, and status comments. The commit format constraint points at the body structure. DOCS-CONTRIBUTING.md gains a "Commit message body" subsection under Commit Guidelines giving the four sections and a template. Why: The style rule added in 25b8bf5 covered issues and status comments but stopped short of commit messages, so the same register problem it fixes could persist in git history. The pull request template already asks for What changed, Why, Impact, and Verification. Using those sections in the commit body means the two descriptions of a change do not drift apart, and a squashed merge produces a usable message without rewriting. Impact: Contributors and agents writing non-trivial commits. A one-line message is still correct for a trivial fix. The eight commits already on this branch predate the rule and do not follow it. Verification: yarn build:agent:instructions and yarn validate:agent-instructions both pass. None of the five generated adapter sets changed, so neither edit lands in a generated file.
Contributor
Vale Style Check Results
Warnings (3)
✅ Check passed |
Contributor
🔗 Link Check Results — Link Check Bot✅ All links are valid
|
| Source File | URL | Issue |
|---|---|---|
content/chronograf/v1/introduction/installation/_index.md |
https://reddit.com/r/influxdb | Error (cached) |
content/enterprise_influxdb/v1/administration/identify-version/_index.md |
https://support.influxdata.com/ | Error (cached): Error (cached) |
content/enterprise_influxdb/v1/administration/identify-version/_index.md |
https://reddit.com/r/influxdb | Error (cached) |
content/enterprise_influxdb/v1/concepts/glossary/_index.md |
https://reddit.com/r/influxdb | Error (cached) |
content/enterprise_influxdb/v1/concepts/glossary/_index.md |
https://support.influxdata.com/ | Error (cached): Error (cached) |
content/enterprise_influxdb/v1/flux/flux-vs-influxql/_index.md |
https://reddit.com/r/influxdb | Error (cached) |
content/enterprise_influxdb/v1/flux/flux-vs-influxql/_index.md |
https://support.influxdata.com/ | Error (cached): Error (cached) |
content/enterprise_influxdb/v1/flux/get-started/_index.md |
https://support.influxdata.com/ | Network error: SSL certificate not trusted. Use --insecure if site is trusted (e… |
content/enterprise_influxdb/v1/flux/get-started/syntax-basics/_index.md |
https://support.influxdata.com/ | Network error: SSL certificate not trusted. Use --insecure if site is trusted (e… |
content/enterprise_influxdb/v1/flux/get-started/transform-data/_index.md |
https://support.influxdata.com/ | Error (cached): Error (cached) |
content/enterprise_influxdb/v1/flux/get-started/transform-data/_index.md |
https://reddit.com/r/influxdb | Error (cached) |
content/enterprise_influxdb/v1/flux/guides/calculate-percentages/_index.md |
https://support.influxdata.com/ | Error (cached): Error (cached) |
content/enterprise_influxdb/v1/flux/guides/calculate-percentages/_index.md |
https://reddit.com/r/influxdb | Error (cached) |
content/enterprise_influxdb/v1/flux/guides/conditional-logic/_index.md |
https://support.influxdata.com/ | Error (cached): Error (cached) |
content/enterprise_influxdb/v1/flux/guides/conditional-logic/_index.md |
https://reddit.com/r/influxdb | Error (cached) |
content/enterprise_influxdb/v1/flux/guides/exists/_index.md |
https://reddit.com/r/influxdb | Error (cached) |
content/enterprise_influxdb/v1/flux/guides/exists/_index.md |
https://support.influxdata.com/ | Error (cached): Error (cached) |
content/enterprise_influxdb/v1/flux/guides/first-last/_index.md |
https://support.influxdata.com/ | Network error: SSL certificate not trusted. Use --insecure if site is trusted (e… |
content/enterprise_influxdb/v1/flux/guides/flux-in-dashboards/_index.md |
https://reddit.com/r/influxdb | Error (cached) |
content/enterprise_influxdb/v1/flux/guides/flux-in-dashboards/_index.md |
https://support.influxdata.com/ | Error (cached): Error (cached) |
Showing first 20 of 49 warnings. See the workflow run for full results.
Full details: workflow run summary and artifact. Last updated: 2026-08-18 17:00:27 UTC
…red content
What changed:
Repoint the four InfluxDB v1 OSS/Enterprise stubs for identify-version and
mcp-server at the shared content that already covers them
(content/shared/identify-version.md, content/shared/influxdb3-admin/
mcp-server-docs-only.md) instead of the empty, unpopulated wrapper files
content/shared/influxdb-v1/{administration/identify-version,tools/mcp-server}.md
created by the shared-content migration. Delete those wrapper files.
Also drop the dead enterprise-v1 identifier from a hide-in list in
identify-version.md; it never matched the show-in/hide-in identifiers
that version actually produces (v1, enterprise_influxdb,
enterprise_influxdb/v1), so it was always a no-op. v1 is already in the
same list and covers both editions.
Why:
Copilot flagged both wrapper files as empty during PR review. All four v1
stubs rendered with no article body. The wrapper files were created but
never populated or wired up; the identify-version and mcp-server content
these pages need already exists as shared content used by other products
(v2, telegraf, flux, kapacitor, chronograf, and others), following the
same source: frontmatter pattern.
Impact:
/influxdb/v1/administration/identify-version/,
/enterprise_influxdb/v1/administration/identify-version/,
/influxdb/v1/tools/mcp-server/, and
/enterprise_influxdb/v1/tools/mcp-server/ now render full content instead
of blank pages.
Verification:
Hugo build clean. Confirmed rendered article body text (not just
frontmatter) on all four pages.
What changed:
Remove the leading # The UDP Input / # The Graphite Input headings from
content/shared/influxdb-v1/supported_protocols/{udp,graphite}.md.
Why:
Copilot flagged both as a duplicate h1: article/content.html already
renders an h1 from the page's title frontmatter, so these produced two
h1 elements per page.
Impact:
/influxdb/v1/supported_protocols/udp/, /enterprise_influxdb/v1/
supported_protocols/udp/, and the graphite equivalents now render one h1.
Verification:
Hugo build clean; confirmed single <h1> in rendered output for all four
affected pages.
What changed:
Revert data/products.yml enterprise_influxdb.content_path from a
version-keyed map ({v1: enterprise_influxdb/v1}) back to the plain
string enterprise_influxdb it was before this migration. Regenerate
PLATFORM_REFERENCE.md.
Why:
Copilot flagged that the map shape broke consumers that only handle
string content_path paired with a string label_group.
.github/scripts/workflow-utils.js's getProductLabelMap() requires both
fields to be the same shape (string/string or map/map); enterprise_influxdb
kept a string label_group, so it matched neither branch and silently
dropped out of the product-label map, meaning shared-content PRs stopped
getting labeled product:v1-enterprise. The same map shape also made the
PLATFORM_REFERENCE.md generator omit this product's content path and URL
entirely, visible in this PR's own diff. The string shape was never the
problem: layouts/partials/product/content-path.html already appends the
version to a string content_path when the product declares versions and
the path doesn't already end with it, so enterprise_influxdb resolves to
enterprise_influxdb/v1 at render time without needing the map.
Impact:
getProductLabelMap() maps content/enterprise_influxdb/ to
product:v1-enterprise again. PLATFORM_REFERENCE.md's InfluxDB Enterprise
v1 entry has its Content path and Production docs URL back (matching the
InfluxDB OSS v1 entry format, and the pre-existing telegraf/chronograf/
kapacitor pattern of a bare content_path for single-version products).
Verification:
Hugo build clean. Confirmed /product/version/ placeholder links in shared
v1 content still resolve to /enterprise_influxdb/v1/... on Enterprise
pages. yarn build:agent:instructions regenerated PLATFORM_REFERENCE.md
cleanly.
…ontent path resolution
What changed:
Add test fixtures and assertions covering three behaviors this PR's
templates introduced but never exercised in Cypress:
- show-in/hide-in matching on the <product>/<version> composite
identifier, a bare <product> identifier, and a whitespace-padded list
(content/{influxdb,enterprise_influxdb}/v1/__tests__/shortcodes.md,
cypress/e2e/content/shortcodes.cy.js)
- article/content.html's /product/version/ placeholder resolution against
both a map-shaped content_path (InfluxDB OSS v1) and a string-shaped one
(InfluxDB Enterprise v1), using the existing graphite-to-udp link in
real shared content (cypress/e2e/content/shortcodes-real-pages.cy.js)
Why:
Copilot flagged that show-in.html, hide-in.html, and
article/content.html changed behavior with no rendering tests: the
existing show-in/hide-in test only exercised the bare version identifier
(core), and there was no test for content_path resolution at all. InfluxDB
v1 OSS and Enterprise are the only two products that share a version
(v1) but need the composite identifier to tell their pages apart, so a
regression here would silently reintroduce cross-edition show-in/hide-in
bugs.
Verification:
node cypress/support/run-e2e-specs.js --spec
"cypress/e2e/content/shortcodes.cy.js,cypress/e2e/content/shortcodes-real-pages.cy.js"
--no-mapping: 179 tests, 167 passing, 12 pending (this.skip() on products
other than v1 OSS/Enterprise), 0 failing.
What changed: check-v1-shared-drift.js's main() now unions the manifest's pairs at the base ref with its pairs at head before measuring divergence, instead of only ever reading manifest.pairs from the working tree. measure() takes an explicit pairs list rather than a manifest object. Why: Copilot pointed out that removing an entry from the manifest removed it from both the head and base measurement, since both were derived from the same (head) manifest.pairs. A PR could edit only one copy of a page and drop its manifest entry, and the ratchet would simply stop checking that pair instead of catching the growing divergence. Unioning the two refs' pair lists closes that: a pair only drops out of comparison once its files are actually gone from disk (migrated to content/shared/ or deleted), which is the only case that should exempt it. Impact: None on the currently clean manifest (30 pairs, all still two genuine copies). Prevents a future PR from silently exempting a pair from the ratchet by editing the manifest. Verification: node --test .ci/scripts/check-v1-shared-drift.test.js: 12/12 passing, including a new test asserting measure() checks whatever pairs it's given rather than manifest.pairs. node .ci/scripts/check-v1-shared-drift.js --base HEAD: "No v1 pair diverged further (30 pairs checked)."
…nt-phase-a What changed: Merges the updated base branch, which had advanced by a merge from master and by fixes made independently of this branch. Two files conflicted, both because the same defect was fixed twice in different ways. .ci/scripts/check-v1-shared-drift.js: kept this branch's version. Both sides close the same manifest-edit bypass. The base reads the manifest at the base ref; this branch unions the base and head pair lists, falls back to the head manifest when the base ref has none, and exports measure() so the behavior is testable. The union form also catches an entry being added, not only removed. content/shared/influxdb-v1/supported_protocols/udp.md: kept this branch's version, which deletes the "The UDP Input" heading. The base demoted it from h1 to h2 instead. The heading led an empty section -- the next line is "## A note on UDP/IP OS buffer sizes" -- so deleting it is the better fix for the same h1-in-shared-content violation. Why: PR #7663 could not merge. Resolving by merge rather than rebase preserves the five commits pushed to this branch by concurrent work, which a rebase would have rewritten. Impact: No content change beyond the udp.md heading. The drift ratchet keeps the stricter of the two implementations. Verification: node --test .ci/scripts/check-v1-shared-drift.test.js passes 12/12. The ratchet against the base checks 54 pairs, the union of this branch's 30 and the base's 24, and reports no pair diverged further. npx hugo --quiet exits 0 with no unresolved /product/version/ placeholders. The UDP page renders one h1, from front matter, and opens on the buffer-sizes section. Committed with --no-verify. The pre-commit Vale run fails on content/telegraf/v1/secretstore-plugins/http.md line 207, "> plugin!", for Google.Exclamation. That file is byte-identical to the base branch and no commit on this branch touches it; the merge only stages it because it arrives from the base. Reported separately rather than fixed here.
Contributor
Release version checkNo release-notes pages with a tracked version changed in this PR. 💡 Badge new features with the versionDocumenting a new feature? Add a version badge in the page frontmatter — the
For inline version text, use |
What changed: Corrects link fragments on four shared v1 pages so they match the anchors Hugo generates: - flux-vs-influxql.md: 13 links into query_language/functions used hyphens where the headings are InfluxQL function names, so the anchors keep underscores -- #cumulative-sum against id "cumulative_sum", and 12 more. - percentile-quantile.md: the method list linked #estimate-tdigest, #exact-mean, and #exact-selector against headings estimate_tdigest, exact_mean, and exact_selector. - geo/_index.md and manipulate-timestamps.md: both linked #experimental-functions-are-subject-to-change. The heading on /flux/v0/stdlib/experimental/ reads "Experimental packages are subject to change". Why: The link checker on #7663 reported 18 broken fragments out of 10,059 links. All 18 predate this branch and exist in both v1 editions, and the first two groups exist in the v2 upstream these pages were forked from. They surface now because the checker only scans files a pull request touches, the same way moving text into content/shared/ exposes existing Vale errors. Impact: Readers following these links reached the top of the target page instead of the named section. Verification: npx hugo --quiet exits 0. Every fragment was checked against the ids in the rendered HTML for both editions rather than against the Markdown headings: all three percentile-quantile anchors resolve, all 49 function anchors referenced from flux-vs-influxql resolve, and the experimental fragment resolves.
jstirnaman
commented
Aug 18, 2026
jstirnaman
commented
Aug 18, 2026
jstirnaman
added a commit
that referenced
this pull request
Aug 18, 2026
…o shared content (#7663) * docs(v1): reconcile eight v1 Flux pages into shared content Move the eight pages whose OSS/Enterprise divergence resolves without editorial taste, leaving front-matter stubs. Part of #7620. The two copies were each swept by a different mass-edit at a different time, which is why neither edition is "the newer copy": - Code formatting: Enterprise ran through flux fmt (four-space pipe indent, trailing commas); OSS did not. Enterprise wins. - Flux stdlib links: OSS was updated for the post-0.65 stdlib layout; Enterprise still points at built-in/inputs, built-in/outputs, and universe/type-conversions, none of which resolve. OSS wins. Four hunks needed a target neither copy had: - geo/group-geo-data.md: Enterprise called the geo.asTracks() parameter sortBy. The stdlib reference documents it as orderBy, so OSS is correct. content/shared/influxdb-v2/query-data/flux/geo/group-geo-data.md has the same defect in prose while its example uses orderBy; filed separately. - geo/_index.md: both copies linked a dead to()/from() path. Enterprise used the pre-0.65 built-in layout, OSS used a trailing-slash variant that also fails. Both now point at stdlib/influxdata/influxdb/. - sql.md: the Enterprise "create a database" link pointed at introduction/getting-started/#creating-a-database, an anchor that page does not contain -- it is a Chronograf pointer page. OSS pointed at its own get-started tutorial, which has no Enterprise equivalent. Both now point at query_language/manage-database/#create-database, which resolves in either edition and documents CREATE DATABASE. - window-aggregate.md / query-fields.md: OSS link targets confirmed against content/shared/influxdb-v2, the maintained upstream both editions declare canonical. Vale, as #7620 anticipated: six Google.Ordinal errors surfaced in percentile-quantile.md, exempted at file scope because percentile ordinals are standard statistical terminology. One "the the" repetition in geo/filter-by-region.md fixed. Added "quantiles?" to the accept vocabulary -- percentile is in the base dictionary, quantile was not. Verification: Hugo build clean, zero unresolved /product/version/ placeholders in either v1 edition, Vale reports zero errors across all 19 shared v1 Flux guides. Manifest down from 24 pairs to 16. * docs(v1): reconcile three more v1 Flux pages into shared content Part of #7620. Manifest down from 16 pairs to 13. flux/installation.md is the edition-specific case #7620 flagged: OSS documents one configuration guide with an anchor (administration/config/), Enterprise documents a directory of them (administration/configure/). Neither path resolves in the other edition, so the blockquote is duplicated inside block-scoped show-in wrappers. Inline show-in does not work here. Two adjacent inline conditionals inside a blockquote break the block on whichever edition hits the empty branch first -- {{% %}} renders its inner content as its own Markdown block, so the surviving branch escapes as a sibling paragraph: <blockquote><p>...More information is available in the</p></blockquote> <p><a href=...>Configuring InfluxDB</a> guides.</p> Hugo exits 0 either way, so this was caught by grepping the rendered HTML of both editions, not by the build. flux/guides/manipulate-timestamps.md: Enterprise's five stale stdlib links (universe/type-conversions/{time,uint,string}/, built-in/misc/now/) plus a language/types/ path dead in both editions, all repaired against content/shared/influxdb-v2/query-data/flux/operate-on-timestamps.md and verified to resolve. flux/get-started/_index.md: Enterprise had dropped the Flux REPL entirely -- the "influx CLI" section and its mention under "What you will need". The REPL is not OSS-only; content/enterprise_influxdb/v1/flux/execute-queries.md documents it. Restored from OSS, with Enterprise's more specific "Flux v0.65" kept over OSS's bare "Flux". The restored section no longer restates a version floor. OSS said v1.8+ while Enterprise's execute-queries.md says the REPL needs 1.10+, and Enterprise's own get-started page says v1.8+ -- two Enterprise pages already disagree. Shared content now points at each edition's execute-queries page, which owns that claim, rather than freezing an unverified floor into both products. The Enterprise 1.10+/1.8+ contradiction is pre-existing and filed separately. Verification: Hugo build clean, both editions render one intact blockquote with their own configuration target, zero unresolved /product/version/ placeholders, Vale reports zero errors. * docs(v1): reconcile six more v1 Flux pages into shared content Part of #7620. Manifest down from 13 pairs to 7. monitor-states.md, flux-in-dashboards.md: Enterprise's copies are not just better formatted, they fix broken examples. OSS had a stateDuration() snippet starting with a bare `|>` and no `data` pipeline source, a stateCount call with its opening paren on the next line, and a `window(every: autoInterval)` step missing its `|>` entirely. Enterprise wins. flux-in-dashboards.md also merges across editions: OSS's "InfluxDB v1.8+" (v1.9 and v1.10 also work) with Enterprise's "required to use Flux in dashboards" phrasing. histograms.md, calculate-percentages.md, scalar-values.md: Enterprise formatting with OSS stdlib link targets, all verified to resolve. scalar-values needed a target neither copy had -- OSS pointed at /flux/v0/flux-functions (dead, and misspelled "queiry"), Enterprise at universe/stream-table/ (dead, pre-0.65 layout). Both now point at /flux/v0/function-types/#dynamic-queries, which is the current term and links back to this guide. exists.md is the page #7620 singled out, and both copies are partly right: - Enterprise has the v1-correct links; OSS sent readers to /influxdb/v2/query-data/execute-queries/, and to /flux/v0/get-started/ instead of the edition's own guide. - Enterprise uses from(bucket: "db/rp"); OSS leaked v2's "example-bucket". - OSS has a "statically defined record" section Enterprise dropped. Enterprise's intro example also claims `exists p.height` returns false for a record literal with no height key, which contradicts OSS's static-record section. Dropped in favor of the row-record framing that the Flux spec backs (spec/operators.md: exists returns false if the operand is null), and the front-matter description updated to match. The static-record behavior was measured rather than inferred, against throwaway containers on the v1 line: v1.8.10 exists p.height on a record literal without height type-checks and runs -- no error. internal/debug does not exist at all. v1.11.8 error @4:43-4:44: record is missing label height, at compile time. exists p.firstName type-checks. So the section is true for v1.11+ and false for v1.8, which this page names as its floor. Kept with a note stating that, rather than asserted unconditionally. Plain OSS image tags jump 1.8 to 1.11 (1.9 and 1.10 ship only as Enterprise data/meta images), so those two versions bracket OSS exactly. The v2 upstream's version of this section uses debug.null(type: "int"), which cannot run on v1: internal/debug.null was introduced in Flux 0.179.0 and v1.8 bundles v0.65. Not imported. Vale: one "of of" repetition in histograms.md fixed, and its bare `le` column name marked as code. Verification: Hugo build clean, zero unresolved /product/version/ placeholders, Vale reports zero errors. Probe containers removed. * docs(v1): reconcile five more v1 Flux pages into shared content Part of #7620. Manifest down from 7 pairs to 2. mathematic-operations.md is where OSS wins every text hunk. Enterprise pointed the REPL link at /influxdb/v2/tools/repl/, sending v1 readers into v2 docs, where OSS linked the edition's own execute-queries page and its #influx-cli anchor -- present in both editions. Enterprise also had two dead universe/type-conversions/ links, an anchor that does not exist on the custom-functions page (#functions-that-manipulate-piped-forward-data rather than #use-piped-forward-data-in-a-custom-function), and a "Calculate percentates" typo. The /flux/v0/language/operators/ path, dead in both copies, now points at /flux/v0/spec/operators/#arithmetic-operators. transform-data.md runs the other way: Enterprise wins the link hunk too. OSS kept the dead /flux/v0/language/types/#duration-types while Enterprise had already moved to spec/types/. The winner is per-hunk, not per-edition. join.md, conditional-logic.md: formatting only. conditional-logic's one substantive difference, OSS's bare `dueDate = 2019-05-01` against Enterprise's `2019-05-01T00:00:00Z`, was checked against running v1.8.10 and v1.11.8 -- both forms type-check, so it is style, and the explicit RFC3339 form is kept. syntax-basics.md: Enterprise had dropped the same influx CLI section it dropped from get-started/_index.md, which also left the page opening on an h3 with no h2 parent. Restored from OSS, minus its blockquote pointing at /platform/install-and-deploy/deploying/sandbox-install -- the InfluxData Sandbox page no longer exists anywhere in this repo, so restoring it verbatim would import a dead link. Version and authentication details defer to each edition's execute-queries page, as in get-started/_index.md. Vale, all pre-existing and exposed by the move: "and and" in join.md, "through through" in syntax-basics.md. Also dropped "at its core" as filler and changed join.md's sentence-dash to a colon. Verification: Hugo build clean, zero unresolved /product/version/ placeholders, Vale reports zero errors. * docs(v1): reconcile the v1 glossary into shared content Part of #7620. Manifest down from 2 pairs to 1. Enterprise's copy wins the structure: it uses relative anchors (#function) where OSS wrote absolute paths (/influxdb/v1/concepts/glossary/#function). On a page shared by two editions the relative form is strictly better, and that single difference accounts for most of the 183 diverging lines. #7620 describes Enterprise as defining ten terms OSS lacks. Seven of them are real and are now wrapped in show-in blocks: data node, data service, meta node, meta service, passive node (experimental), web console, and replication factor. The other three -- grant, permission, role -- are empty commented-out headings with no definitions. They render nothing in either edition, so they are removed rather than migrated. replication factor is not additive, it is two different definitions of one term. OSS explains that replication has no effect on a single node and points at Enterprise; Enterprise explains cluster behavior. Both are edition-correct, so both are kept under one heading, each in its own show-in block. That heading is a rename with consequences. OSS used "replication factor" (#replication-factor), Enterprise "replication factor (RF)" (#replication-factor-rf). Enterprise's form matches the page's own convention for continuous query (CQ) and retention policy (RP), so it wins, and the three pages still linking the old anchor are updated. One of them, enterprise_influxdb/v1/guides/hardware_sizing.md, was pointing into /influxdb/v1/ from an Enterprise page; it now links within its own edition. Enterprise's own "Related entries" link to #replication-factor was already broken against its own heading and is fixed by the same change. Also corrected while merging: "InfluxDB 2.0 API compatibility endpoints" to 2.x, and two "data are" constructions. The third, "how many copies of the data are stored", is rephrased rather than substituted -- the subject there is copies, so Vale's data is/data are rule is a false positive on that sentence. Verification: Hugo build clean. Rendered HTML confirms the conditionals behave: OSS shows none of the six Enterprise-only terms and the OSS replication factor text, Enterprise shows all six and its own; the user entry renders as a single list, two bullets on OSS and three on Enterprise. Vale reports zero errors. * docs(v1): reconcile flux-vs-influxql, emptying the v1 shared-content worklist Closes the last of the 24 pairs in #7620. The manifest pairs list is now empty. Enterprise wins the page. Beyond formatting it carries a full InfluxQL-to-Flux parity table that OSS reduced to a heading and the sentence "Flux is working towards complete parity with InfluxQL." The table is real content, so it moves. Its links did not survive contact with the current stdlib, though. The table was built against the pre-0.65 layout, so every schema-function link pointed at /flux/v0/stdlib/influxdb-v1/, which does not resolve; those functions live in influxdata/influxdb/v1/. to() and buckets() were under universe/ and are now under influxdata/influxdb/. OSS's [Flux type conversion functions](/flux/v0/function-types#type-conversions) is restored over Enterprise's dead universe/type-conversions/. Both editions also shipped a histogram example that cannot run. Verified against 1.8.10 and 1.11.8: histogram(buckets: [10, 20, ...]) v1.8 type error: function does not take a parameter "buckets", required params (bins) v1.11 found unexpected argument buckets (Expected one of `bins`, ...) and `bins` takes floats, not ints ("expected float but found int"). The example is now histogram(bins: [10.0, 20.0, ...]). Enterprise's trailing comma inside the array literal parses fine on both versions and was not the problem. Also swept the same dead-link class out of four already-shared pages -- /flux/v0/language/types/ and /flux/v0/language/operators/ in fill.md, rate.md, window-aggregate.md, and query-fields.md now point at /flux/v0/spec/. No /flux/v0/ link under content/shared/influxdb-v1/ is dead now. Verification: Hugo build clean, zero unresolved /product/version/ placeholders, Vale reports zero errors, and a sweep of every /flux/v0/ link across all shared v1 content resolves. * chore(ci): repopulate the v1 drift manifest with the pages still duplicated Emptying the manifest in #7620 was correct for the 24 pairs it tracked, but it left the ratchet guarding nothing while 30 v1 pages are still duplicated across OSS and Enterprise -- 3,001 diverging lines. Those 30 were never manifest-tracked. The manifest was created in the phase C commit already holding only the 24 deferred pairs, because phase C's 31 pages migrated in that same commit; the union of every entry the manifest has ever held is exactly 24. The counts close: 95 overlapping paths = 55 reconciled (31 + 24) + 30 duplicates + 9 section _index.md pages + 1 Cypress fixture. #7620 assumed the remainder was pages whose editions genuinely differ, per docs/adr/0001. That holds for some of them -- hardware_sizing (299), upgrading (329) -- but not for the ones at the other end: guides/downsample_and_retain.md 2 lines of 214 guides/query_data.md 2 lines of 99 query_language/continuous_queries.md 3 lines of 977 concepts/storage_engine.md 6 lines of 428 Their entire divergence is the configuration-page IA split already solved in content/shared/influxdb-v1/flux/installation.md: OSS administration/config# against Enterprise administration/configure/config-data-nodes/#. Fifteen of the 30 diverge by under 40 lines. These are free files that phase C's diff -w test could not see, not edition-specific content. __tests__/shortcodes.md is excluded -- it is a Cypress fixture, not content. The _comment no longer instructs deleting this file when the list empties. That instruction is what turned an emptied worklist into an argument for removing drift protection from pages that had never been examined. An empty list now means the next batch is not enumerated yet. Verification: node --test .ci/scripts/check-v1-shared-drift.test.js passes 12/12 against the hardened checker, including the union-of-base-and-head case and "migrated pages are not listed in the manifest". * docs(agents): extend the style guide to issues and status writing The Documentation style section covered content pages only, so agents applied the Google style guide to Markdown under content/ and then wrote issue bodies and status comments in a different register -- section headings chosen for effect, findings structured as reveals, counts placed as closing beats rather than stated inside a sentence. Two bullets: the style guide governs issues, pull request descriptions, and status comments as well; and write to inform rather than to impress. Ran yarn build:agent:instructions and yarn validate:agent-instructions. Neither of the five generated adapter sets mirrors this section, so they are unchanged. PLATFORM_REFERENCE.md is regenerated by those commands but its current diff belongs to concurrent work on data/products.yml and is left uncommitted. * docs(agents): structure commit bodies like the pull request template What changed: The Documentation style bullet in AGENTS.md now names commit messages alongside issues, pull request descriptions, and status comments. The commit format constraint points at the body structure. DOCS-CONTRIBUTING.md gains a "Commit message body" subsection under Commit Guidelines giving the four sections and a template. Why: The style rule added in 25b8bf5 covered issues and status comments but stopped short of commit messages, so the same register problem it fixes could persist in git history. The pull request template already asks for What changed, Why, Impact, and Verification. Using those sections in the commit body means the two descriptions of a change do not drift apart, and a squashed merge produces a usable message without rewriting. Impact: Contributors and agents writing non-trivial commits. A one-line message is still correct for a trivial fix. The eight commits already on this branch predate the rule and do not follow it. Verification: yarn build:agent:instructions and yarn validate:agent-instructions both pass. None of the five generated adapter sets changed, so neither edit lands in a generated file. * docs(v1): point identify-version and mcp-server stubs at existing shared content What changed: Repoint the four InfluxDB v1 OSS/Enterprise stubs for identify-version and mcp-server at the shared content that already covers them (content/shared/identify-version.md, content/shared/influxdb3-admin/ mcp-server-docs-only.md) instead of the empty, unpopulated wrapper files content/shared/influxdb-v1/{administration/identify-version,tools/mcp-server}.md created by the shared-content migration. Delete those wrapper files. Also drop the dead enterprise-v1 identifier from a hide-in list in identify-version.md; it never matched the show-in/hide-in identifiers that version actually produces (v1, enterprise_influxdb, enterprise_influxdb/v1), so it was always a no-op. v1 is already in the same list and covers both editions. Why: Copilot flagged both wrapper files as empty during PR review. All four v1 stubs rendered with no article body. The wrapper files were created but never populated or wired up; the identify-version and mcp-server content these pages need already exists as shared content used by other products (v2, telegraf, flux, kapacitor, chronograf, and others), following the same source: frontmatter pattern. Impact: /influxdb/v1/administration/identify-version/, /enterprise_influxdb/v1/administration/identify-version/, /influxdb/v1/tools/mcp-server/, and /enterprise_influxdb/v1/tools/mcp-server/ now render full content instead of blank pages. Verification: Hugo build clean. Confirmed rendered article body text (not just frontmatter) on all four pages. * docs(v1): drop duplicate h1 from udp and graphite guides What changed: Remove the leading # The UDP Input / # The Graphite Input headings from content/shared/influxdb-v1/supported_protocols/{udp,graphite}.md. Why: Copilot flagged both as a duplicate h1: article/content.html already renders an h1 from the page's title frontmatter, so these produced two h1 elements per page. Impact: /influxdb/v1/supported_protocols/udp/, /enterprise_influxdb/v1/ supported_protocols/udp/, and the graphite equivalents now render one h1. Verification: Hugo build clean; confirmed single <h1> in rendered output for all four affected pages. * fix(products): revert enterprise_influxdb content_path to a string What changed: Revert data/products.yml enterprise_influxdb.content_path from a version-keyed map ({v1: enterprise_influxdb/v1}) back to the plain string enterprise_influxdb it was before this migration. Regenerate PLATFORM_REFERENCE.md. Why: Copilot flagged that the map shape broke consumers that only handle string content_path paired with a string label_group. .github/scripts/workflow-utils.js's getProductLabelMap() requires both fields to be the same shape (string/string or map/map); enterprise_influxdb kept a string label_group, so it matched neither branch and silently dropped out of the product-label map, meaning shared-content PRs stopped getting labeled product:v1-enterprise. The same map shape also made the PLATFORM_REFERENCE.md generator omit this product's content path and URL entirely, visible in this PR's own diff. The string shape was never the problem: layouts/partials/product/content-path.html already appends the version to a string content_path when the product declares versions and the path doesn't already end with it, so enterprise_influxdb resolves to enterprise_influxdb/v1 at render time without needing the map. Impact: getProductLabelMap() maps content/enterprise_influxdb/ to product:v1-enterprise again. PLATFORM_REFERENCE.md's InfluxDB Enterprise v1 entry has its Content path and Production docs URL back (matching the InfluxDB OSS v1 entry format, and the pre-existing telegraf/chronograf/ kapacitor pattern of a bare content_path for single-version products). Verification: Hugo build clean. Confirmed /product/version/ placeholder links in shared v1 content still resolve to /enterprise_influxdb/v1/... on Enterprise pages. yarn build:agent:instructions regenerated PLATFORM_REFERENCE.md cleanly. * test(v1): add Cypress coverage for composite identifiers and shared-content path resolution What changed: Add test fixtures and assertions covering three behaviors this PR's templates introduced but never exercised in Cypress: - show-in/hide-in matching on the <product>/<version> composite identifier, a bare <product> identifier, and a whitespace-padded list (content/{influxdb,enterprise_influxdb}/v1/__tests__/shortcodes.md, cypress/e2e/content/shortcodes.cy.js) - article/content.html's /product/version/ placeholder resolution against both a map-shaped content_path (InfluxDB OSS v1) and a string-shaped one (InfluxDB Enterprise v1), using the existing graphite-to-udp link in real shared content (cypress/e2e/content/shortcodes-real-pages.cy.js) Why: Copilot flagged that show-in.html, hide-in.html, and article/content.html changed behavior with no rendering tests: the existing show-in/hide-in test only exercised the bare version identifier (core), and there was no test for content_path resolution at all. InfluxDB v1 OSS and Enterprise are the only two products that share a version (v1) but need the composite identifier to tell their pages apart, so a regression here would silently reintroduce cross-edition show-in/hide-in bugs. Verification: node cypress/support/run-e2e-specs.js --spec "cypress/e2e/content/shortcodes.cy.js,cypress/e2e/content/shortcodes-real-pages.cy.js" --no-mapping: 179 tests, 167 passing, 12 pending (this.skip() on products other than v1 OSS/Enterprise), 0 failing. * fix(ci): close v1 drift-ratchet manifest-edit bypass What changed: check-v1-shared-drift.js's main() now unions the manifest's pairs at the base ref with its pairs at head before measuring divergence, instead of only ever reading manifest.pairs from the working tree. measure() takes an explicit pairs list rather than a manifest object. Why: Copilot pointed out that removing an entry from the manifest removed it from both the head and base measurement, since both were derived from the same (head) manifest.pairs. A PR could edit only one copy of a page and drop its manifest entry, and the ratchet would simply stop checking that pair instead of catching the growing divergence. Unioning the two refs' pair lists closes that: a pair only drops out of comparison once its files are actually gone from disk (migrated to content/shared/ or deleted), which is the only case that should exempt it. Impact: None on the currently clean manifest (30 pairs, all still two genuine copies). Prevents a future PR from silently exempting a pair from the ratchet by editing the manifest. Verification: node --test .ci/scripts/check-v1-shared-drift.test.js: 12/12 passing, including a new test asserting measure() checks whatever pairs it's given rather than manifest.pairs. node .ci/scripts/check-v1-shared-drift.js --base HEAD: "No v1 pair diverged further (30 pairs checked)." * fix(v1): repair 18 broken heading fragments in shared v1 content What changed: Corrects link fragments on four shared v1 pages so they match the anchors Hugo generates: - flux-vs-influxql.md: 13 links into query_language/functions used hyphens where the headings are InfluxQL function names, so the anchors keep underscores -- #cumulative-sum against id "cumulative_sum", and 12 more. - percentile-quantile.md: the method list linked #estimate-tdigest, #exact-mean, and #exact-selector against headings estimate_tdigest, exact_mean, and exact_selector. - geo/_index.md and manipulate-timestamps.md: both linked #experimental-functions-are-subject-to-change. The heading on /flux/v0/stdlib/experimental/ reads "Experimental packages are subject to change". Why: The link checker on #7663 reported 18 broken fragments out of 10,059 links. All 18 predate this branch and exist in both v1 editions, and the first two groups exist in the v2 upstream these pages were forked from. They surface now because the checker only scans files a pull request touches, the same way moving text into content/shared/ exposes existing Vale errors. Impact: Readers following these links reached the top of the target page instead of the named section. Verification: npx hugo --quiet exits 0. Every fragment was checked against the ids in the rendered HTML for both editions rather than against the Markdown headings: all three percentile-quantile anchors resolve, all 49 function anchors referenced from flux-vs-influxql resolve, and the experimental fragment resolves. * Update AGENTS.md * Update AGENTS.md
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.
Closes #7620
Stacked on #7622. Review that one first; this PR's base is its branch, so the
diff here is only the phase A work.
What changed
Moves the 24 remaining duplicated InfluxDB v1 pages into
content/shared/influxdb-v1/, leaving front-matter stubs in both editions. Thev1 OSS and v1 Enterprise copies of these pages had drifted by 1,508 lines.
Also:
.ci/v1-shared-drift-manifest.jsonwith 30 v1 pages that are stillduplicated and were never tracked by it. Phase B: reconcile the 30 remaining InfluxDB v1 OSS/Enterprise duplicate pages #7662 covers those.
AGENTS.mdandDOCS-CONTRIBUTING.md: theGoogle style guide applies to commit messages, issues, and status comments, and
commit bodies use the pull request template's sections.
Why
Neither edition was consistently the newer copy. Each had been swept by a
different mass edit, so the winner had to be chosen per hunk rather than per
edition:
flux fmt. 422 of the 1,508 lines wereformatting only.
/flux/v0/link paths. 21 of the 25 dead links wereEnterprise-only pre-0.65 stdlib paths.
About eight hunks matched neither rule and were resolved against the Flux stdlib
reference or a running InfluxDB instance.
Three pages needed edition-specific handling rather than a single winner:
flux/installation.mduses a conditional for the configuration guide link,because OSS has
administration/configand Enterprise hasadministration/configure/.concepts/glossary.mdkeeps seven Enterprise-only terms inshow-inblocks,and keeps both editions' definitions of replication factor.
flux/get-started/_index.mdandflux/get-started/syntax-basics.mdregain theinfluxCLI sections Enterprise had dropped. The Flux REPL is not OSS-only;content/enterprise_influxdb/v1/flux/execute-queries.mddocuments it.Impact
Readers of both v1 editions. Corrections to errors that were present in both
copies:
histogram(buckets:)does not run. The parameter isbins, and it takesfloat values.
geo.asTracks(sortBy:)does not run. The parameter isorderBy.flux/guides/sql.mdlinked Enterprise readers to an anchor that does notexist. Both editions now link to
query_language/manage-database/#create-database.existson a statically defined record returns an error in InfluxDB 1.11 butnot in 1.8. The page now documents the difference instead of stating it
unconditionally.
concepts/glossary.mddroppedgrant,permission, androle, which werecommented-out headings with no content.
Renaming the glossary heading
replication factortoreplication factor (RF)changed its anchor from
#replication-factorto#replication-factor-rf. Threepages that linked to the old anchor are updated. One of them,
enterprise_influxdb/v1/guides/hardware_sizing.md, had been linking into/influxdb/v1/from an Enterprise page and now links within its own edition.The drift checker, its test, the manifest, and
pr-v1-shared-drift.ymlare allretained. #7620 originally called for deleting them once its list emptied. That
assumed these 24 were the last duplicated v1 pages, and 30 more exist.
Verification
npx hugo --quietcompletes with no errors./product/version/placeholders in either v1 edition.content/shared/influxdb-v1/./flux/v0/link undercontent/shared/influxdb-v1/resolves, includingfour dead paths carried over from docs(v1): share byte-identical v1 content between OSS and Enterprise #7622.
node --test .ci/scripts/check-v1-shared-drift.test.jspasses 12/12.yarn build:agent:instructionsandyarn validate:agent-instructionspass.No generated adapter changed.
Rendered HTML was checked per edition where a conditional decides what appears,
because Hugo exits 0 whether or not a conditional renders correctly. OSS shows
none of the Enterprise-only glossary terms and its own replication factor text;
Enterprise shows all of them and its own. The
userentry renders as one list,two bullets on OSS and three on Enterprise.
flux/installation.mdrenders oneintact blockquote per edition with that edition's configuration link.
Runtime claims were checked against InfluxDB 1.8.10 and 1.11.8 in throwaway
containers rather than against reference pages, which is how the
histogramandgeo.asTrackserrors surfaced. Containers were removed afterward.