Skip to content

Commit 21d3bc9

Browse files
authored
Merge branch 'main' into feature/synthetics
2 parents 4a5d163 + e7b4358 commit 21d3bc9

File tree

58 files changed

+2163
-149
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+2163
-149
lines changed

docs/_docset.yml

Lines changed: 63 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -46,26 +46,19 @@ toc:
4646
- file: branching-strategy.md
4747
- file: add-repo.md
4848
- file: release-new-version.md
49-
- folder: migration
49+
- folder: building-blocks
5050
children:
5151
- file: index.md
52-
- folder: freeze
53-
children:
54-
- file: index.md
55-
- file: gh-action.md
56-
- file: syntax.md
57-
- file: ia.md
58-
- file: versioning.md
59-
- file: engineering.md
60-
- folder: guide
61-
children:
62-
- file: index.md
63-
- file: working-in-docs-content.md
64-
- file: automated.md
65-
- file: tooling.md
66-
- file: move-ref-docs.md
67-
- file: mapping.md
68-
- file: how-to-set-up-docs-previews.md
52+
- file: documentation-set.md
53+
- file: assembled-documentation.md
54+
- file: distributed-documentation.md
55+
- file: link-service.md
56+
- file: link-index.md
57+
- file: link-catalog.md
58+
- file: outbound-cross-links.md
59+
- file: inbound-cross-links.md
60+
- file: documentation-set-navigation.md
61+
- file: global-navigation.md
6962
- folder: configure
7063
children:
7164
- file: index.md
@@ -74,9 +67,9 @@ toc:
7467
- file: index.md
7568
- file: content.md
7669
- file: navigation.md
70+
- file: products.md
7771
- file: versions.md
7872
- file: legacy-url-mappings.md
79-
- file: products.md
8073
- folder: content-set
8174
children:
8275
- file: index.md
@@ -121,6 +114,57 @@ toc:
121114
- file: tabs.md
122115
- file: tagged_regions.md
123116
- file: titles.md
117+
- folder: cli
118+
children:
119+
- file: index.md
120+
- folder: docset
121+
children:
122+
- file: index.md
123+
- file: build.md
124+
- file: diff-validate.md
125+
- file: index-command.md
126+
- file: mv.md
127+
- file: serve.md
128+
- folder: assembler
129+
children:
130+
- file: index.md
131+
- file: assemble.md
132+
- file: assembler-bloom-filter-create.md
133+
- file: assembler-bloom-filter-lookup.md
134+
- file: assembler-build.md
135+
- file: assembler-clone.md
136+
- file: assembler-config-init.md
137+
- file: assembler-content-source-match.md
138+
- file: assembler-content-source-validate.md
139+
- file: assembler-deploy-apply.md
140+
- file: assembler-deploy-plan.md
141+
- file: assembler-deploy-update-redirects.md
142+
- file: assembler-index.md
143+
- file: assembler-navigation-validate.md
144+
- file: assembler-navigation-validate-link-reference.md
145+
- file: assembler-serve.md
146+
- folder: links
147+
children:
148+
- file: index.md
149+
- file: inbound-links-validate.md
150+
- file: inbound-links-validate-all.md
151+
- file: inbound-links-validate-link-reference.md
152+
- folder: migration
153+
children:
154+
- file: index.md
155+
- file: syntax.md
156+
- file: ia.md
157+
- file: versioning.md
158+
- file: engineering.md
159+
- folder: guide
160+
children:
161+
- file: index.md
162+
- file: working-in-docs-content.md
163+
- file: automated.md
164+
- file: tooling.md
165+
- file: move-ref-docs.md
166+
- file: mapping.md
167+
- file: how-to-set-up-docs-previews.md
124168
# nested TOCs are only allowed from docset.yml by default
125169
# to prevent them from being nested deeply arbitrarily
126170
# use max_toc_depth to allow deeper nesting (Expert mode, consult with docs team)

docs/_redirects.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
redirects:
2+
'migration/freeze/gh-action.md' : 'index.md'
3+
'migration/freeze/index.md' : 'index.md'
24
'testing/redirects/4th-page.md': 'testing/redirects/5th-page.md'
35
'testing/redirects/9th-page.md': '!testing/redirects/5th-page.md'
46
'testing/redirects/6th-page.md':
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
---
2+
navigation_title: Assembled documentation
3+
---
4+
5+
# Assembled documentation
6+
7+
Assembled documentation is the product of building many [documentation sets](documentation-set.md) and weaving them into a global navigation to produce the fully assembled documentation site.
8+
9+
## How it works
10+
11+
The assembler:
12+
13+
1. Clones multiple documentation repositories.
14+
2. Reads the [configuration files](../configure/site/index.md) and builds [a global navigation](../configure/site/navigation.md).
15+
3. Builds each documentation set independently using the global configuration and navigation to inform path prefixes.
16+
4. Produces a unified documentation website.
17+
18+
## Configuration
19+
20+
Assembled documentation is configured through the site configuration, which defines:
21+
22+
* [assembler.yml](../configure/site/index.md): Which repositories to include and [their branching strategy](../contribute/branching-strategy.md).
23+
* [navigation.yml](../configure/site/index.md): Navigation and url prefixes for TOC's.
24+
* [versions.yml](../configure/site/versions.md): Defines the various versioning schemes of products/solutions being documented.
25+
* [products.yml](../configure/site/products.md): Defines the product catalog (id, name) and ties it to a specific versioning scheme.
26+
27+
Refer to [Site Configuration](../configure/site/index.md) for details on configuring assembled documentation.
28+
29+
:::{important}
30+
The `docs-builder` command makes no assumptions about how repositories, products, solutions and versions tie into each other.
31+
:::
32+
33+
## Build process
34+
35+
The typical build process for assembled documentation consists of three steps:
36+
37+
1. Clone all configured repositories using `docs-builder assembler clone`.
38+
2. Build all documentation sets using `docs-builder assembler build`.
39+
3. Serve the documentation on http://localhost:4000 using `docs-builder assembler serve`.
40+
41+
This uses the embedded configuration files inside the `docs-builder` binary. To build a specific configuration:
42+
43+
1. Fetch the latest config to `$(pwd)/config` `docs-builder assembler config init --local`.
44+
2. Clone all configured repositories using `docs-builder assembler clone --local`.
45+
3. Build all documentation sets using `docs-builder assembler build --local`.
46+
4. Serve the documentation on http://localhost:4000 using `docs-builder assembler serve`.
47+
48+
## Related concepts
49+
50+
* [Documentation Set](documentation-set.md): The individual units being assembled.
51+
* [Distributed Documentation](distributed-documentation.md): How documentation sets work independently.
52+
* [Link Catalog](link-catalog.md): How the assembler knows what to include.
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
navigation_title: Distributed documentation
3+
---
4+
5+
# Distributed documentation
6+
7+
**Distributed documentation** is the architectural approach that allows repositories to build their own documentation independently.
8+
9+
## Purpose
10+
11+
The separation between building individual documentation sets and assembling them enables distributed builds, where:
12+
13+
* Each repository builds its own documentation independently.
14+
* Builds don't block each other.
15+
* Teams maintain full autonomy over their documentation.
16+
* Cross-repository links are validated without requiring synchronized builds.
17+
18+
## How it works
19+
20+
### Link Index publication
21+
22+
Each time a documentation set is built successfully on its default integration branch, it produces and publishes a `links.json` file ([Link Index](link-index.md)) to a central location ([Link Service](link-service.md)).
23+
24+
This Link Index contains all the linkable resources in that repository at that specific commit.
25+
26+
### Example
27+
28+
For instance, [Elasticsearch's links.json](https://elastic-docs-link-index.s3.us-east-2.amazonaws.com/elastic/elasticsearch/main/links.json) represents all linkable resources in the Elasticsearch repository's main branch.
29+
30+
## Benefits
31+
32+
This distributed approach provides several key advantages:
33+
34+
### Link validation
35+
36+
* **Outbound links**: Validate links to other repositories ahead of time, even during local `docs-builder` builds.
37+
* **Inbound links**: Know when changes to your documentation would break links from other repositories.
38+
39+
### Resilient builds
40+
41+
* **Isolation**: Documentation errors in one repository won't affect builds of other repositories.
42+
* **Fallback mechanism**: When a repository has build failures on its integration branch, the assembler falls back to the last known good commit.
43+
* **Snapshot builds**: Assembled builds only use commits that successfully produced a Link Index.
44+
45+
### Independent iteration
46+
47+
* Teams can iterate on their documentation independently.
48+
* No coordination required for routine updates.
49+
* Faster feedback loops for documentation changes.
50+
51+
## Architecture components
52+
53+
The distributed documentation system relies on several key components:
54+
55+
* [Link Index](link-index.md) - Per-repository file of linkable resources.
56+
* [Link Service](link-service.md) - Central storage for Link Index files.
57+
* [Link Catalog](link-catalog.md) - Catalog of all available Link Index files.
58+
* [Outbound Cross-links](outbound-cross-links.md) - Links from one repository to another.
59+
* [Inbound Cross-links](inbound-cross-links.md) - Links from other repositories to yours.
60+
61+
## Local development
62+
63+
Even during local development, `docs-builder` can access the [Link Service](link-service.md) to validate cross-repository links without requiring you to clone and build all related repositories.

0 commit comments

Comments
 (0)