Skip to content
Merged
Changes from 5 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
15988eb
Applies versioning changes to the `applies` page
charlotte-hoblik May 30, 2025
7e59bab
Add information about tagging feature lifecycle and version changes
charlotte-hoblik May 30, 2025
2013c3b
Clarify applies_to usage
charlotte-hoblik May 30, 2025
0726a4a
Cleaning up the document
charlotte-hoblik May 30, 2025
768ef7d
Restructure life-cycles and fix typos
charlotte-hoblik May 30, 2025
83a0f60
Update docs/syntax/applies.md
charlotte-hoblik May 30, 2025
cd3e03e
Update docs/syntax/applies.md
charlotte-hoblik May 30, 2025
b4c261c
Apply review requests
charlotte-hoblik Jun 2, 2025
05e9176
Restructure content
charlotte-hoblik Jun 2, 2025
b23d2cc
Update docs/syntax/applies.md
charlotte-hoblik Jun 2, 2025
6a2ab7d
Update docs/syntax/applies.md
charlotte-hoblik Jun 2, 2025
b67e2cf
Update docs/syntax/applies.md
charlotte-hoblik Jun 2, 2025
ef70953
Fix broken links and move `life cycle` section
charlotte-hoblik Jun 2, 2025
3ac792a
Replace/add applies_to examples
charlotte-hoblik Jun 4, 2025
0703c74
Merge branch 'main' into charlotte-applies-to
charlotte-hoblik Jun 4, 2025
80810d6
Update docs/syntax/applies.md
charlotte-hoblik Jun 13, 2025
b60d997
Apply review suggestion
charlotte-hoblik Jun 16, 2025
3fd6e7d
Merge branch 'main' into charlotte-applies-to
charlotte-hoblik Jun 16, 2025
baf3a86
Fix typos
charlotte-hoblik Jun 16, 2025
b6abc11
Merge branch 'main' into charlotte-applies-to
charlotte-hoblik Jun 17, 2025
7f5c6a3
Fix broken links
charlotte-hoblik Jun 17, 2025
43ea0b8
Update docs/syntax/applies.md
charlotte-hoblik Jun 20, 2025
49d5a86
Update docs/syntax/applies.md
charlotte-hoblik Jun 20, 2025
b1f3f13
Update docs/syntax/applies.md
charlotte-hoblik Jun 20, 2025
87b3a8c
Merge branch 'main' into charlotte-applies-to
charlotte-hoblik Jun 20, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
128 changes: 80 additions & 48 deletions docs/syntax/applies.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@ applies_to:
deployment:
eck: ga 9.0
ess: beta 9.1
ece: discontinued 9.2.0
self: unavailable 9.3.0
ece: deprecated 9.2.0
self: unavailable
serverless:
security: ga 9.0.0
elasticsearch: beta 9.1.0
observability: discontinued 9.2.0
product: planned 9.5, discontinued 9.7
security: unavailable
elasticsearch: beta
observability: deprecated
product: preview 9.5, deprecated 9.7
---

# Applies to

Allows you to annotate a page or section's applicability.
Allows you to annotate a page or section's applicability. The documentation follows a cumulative model: changes across versions are shown on a single page. Use the `applies_to` tag to reflect a feature’s state across versions. For more on the versioning approach, see [Contribution guide](../contribute/index.md).

### Syntax

Expand All @@ -25,45 +25,69 @@ Allows you to annotate a page or section's applicability.

Taking a mandatory [life-cycle](#life-cycle) with an optional version.

#### Life cycle:
#### Life cycle

Both versioned and unversioned products use the same lifecycle tags, but only versioned products can be marked `ga`. Unversioned products are considered `ga` by default and don’t need specification.

* `preview`
* `beta`
* `development`
* `deprecated`
* `planned`
* `discontinued`
* `removed`
* `unavailable`
* `ga`

#### Version

Can be in either `major.minor` or `major.minor.patch` format

#### Examples
Versioned products require a `version` tag to be used with the `lifecycle` tag. See [Syntax](#syntax):

```
planned 9.5, discontinued 9.7
discontinued 9.2.0
all
applies_to:
stack: preview 9.1, ga 9.4
deployment:
ece: deprecated 9.2, removed 9.8
```
Unversioned products use `lifecycle` tags without a version:

`all` means generally available for all active versions

```yaml
```
applies_to:
serverless: all
serverless:
elasticsearch: beta
observability: removed
```

`all` can also be specified at a version level
#### Examples

```yaml
applies_to:
stack: beta all
serverless: beta
```
preview 9.5, ga 9.7
deprecated 9.9.0
unavailable
```

## When to use `applies_to`

The cumulative model used in our documentation means that a single page reflects the state of a feature across versions and deployments. To support this, **version-related changes must be tagged using the `applies_to` key**. Every page must include a [page-level `applies_to`](#page-annotations) tag to clearly define its scope and availability.

Note `all` just means we won't be rendering the version portion in the HTML.
Use version tagging when:
* A feature is introduced (e.g., preview, beta, or ga)
* A feature is deprecated (e.g., deprecated)
* A feature is removed (e.g., removed)

You don’t need version tagging for:
* Typos, formatting, or style changes
* Long-standing features being documented for the first time
* Content updates that don’t reflect a feature lifecycle change

### Combined states
You can specify multiple lifecycle states for the same product, separated by commas. For example:

```
applies_to:
stack: preview 9.1, ga 9.4
```

This shows that the feature was introduced in version 9.1 as a preview and became generally available in 9.4.

## Structured model

Expand Down Expand Up @@ -91,8 +115,16 @@ This allows you to annotate various facets as defined in [](../migration/version

## Page annotations

Using yaml frontmatter pages can explicitly indicate to each deployment targets availability and lifecycle status
All documentation pages **must** include an `applies_to` tag in the YAML frontmatter. Use yaml frontmatter to indicate each deployment targets availability and lifecycle status.

``` yaml
---
applies_to:
product: preview 9.5, ga 9.6
products:
- id: cloud-kubernetes
---
```

```yaml
---
Expand All @@ -101,31 +133,30 @@ applies_to:
deployment:
eck: ga 9.0
ess: beta 9.1
ece: discontinued 9.2.0
self: unavailable 9.3.0
ece: deprecated 9.2.0
self: unavailable
serverless:
security: ga 9.0.0
elasticsearch: beta 9.1.0
observability: discontinued 9.2.0
product: planned 9.5, discontinued 9.7
security: unavailable
elasticsearch: beta
observability: deprecated
product: preview 9.5, deprecated 9.7
---
```


## Section annotation [#sections]

```yaml {applies_to}
stack: ga 9.1
deployment:
eck: ga 9.0
ess: beta 9.1
ece: discontinued 9.2.0
self: unavailable 9.3.0
ece: deprecated 9.2.0
self: unavailable
serverless:
security: ga 9.0.0
elasticsearch: beta 9.1.0
observability: discontinued 9.2.0
product: planned 9.5, discontinued 9.7
security: unavailable
elasticsearch: beta
observability: deprecated
product: preview 9.5, deprecated 9.7
```

A header may be followed by an `{applies_to}` directive which will contextualize the applicability
Expand All @@ -152,7 +183,7 @@ stack: ga 9.1
```
````

This will allow the yaml inside the `{applies-to}` directive to be fully highlighted.
This will allow the yaml inside the `{applies_to}` directive to be fully highlighted.

## Inline Applies To

Expand Down Expand Up @@ -181,8 +212,6 @@ Property {preview}`<version>`
: definition body
```



## Examples

#### Stack only
Expand All @@ -202,21 +231,24 @@ deployment:
#### Deployment only
```yaml {applies_to}
deployment:
ece: discontinued 9.2.0
self: unavailable 9.3.0
ece: deprecated 9.2.0
self: unavailable
```

#### Serverless only
When a change is released in `ga` for unversioned products, it doesn’t need any specific tagging.

```yaml {applies_to}
serverless: ga 9.0.0
serverless:
elasticsearch: preview
```

#### Serverless with project differences
```yaml {applies_to}
serverless:
security: ga 9.0.0
elasticsearch: beta 9.1.0
observability: discontinued 9.2.0
security: unavailable
elasticsearch: beta
observability: deprecated
```
#### Stack with product
```yaml {applies_to}
Expand Down
Loading