Skip to content

Commit e71bd65

Browse files
authored
refresh release process (#2109)
* refresh release process * missing assembler step * jan feedback * Apply suggestions from code review * clarity * alerting window * fixed incorrect steps
1 parent e5d1be7 commit e71bd65

File tree

3 files changed

+101
-17
lines changed

3 files changed

+101
-17
lines changed

docs/configure/site/legacy-url-mappings.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ en/elasticsearch/reference/:
1616
## Structure
1717
1818
`stack anchor`
19-
: Defines a reusable list of version strings for "stack" projects, e.g., [ '9.0+', '8.18', ... ].
19+
: Defines a reusable list of version strings for "stack" projects, e.g., [ '8.18', ... ].
2020

2121
`mappings`
2222
: A YAML mapping where each key is a legacy documentation URL path (like `en/apm/agent/java/`), and each value is a mapping with:

docs/contribute/branching-strategy.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ After it has been established that a repository should publish from a version br
4646
* Otherwise, keeping it set to `main` is also an option since this is where the content is initially developed and merged. This is the default.
4747
4. In the assembler PR, add the `ci` label. After CI runs, confirm that the intended version branches are publishing to the link service. When links are being published as intended, they can be found at the following URL, where `repo` is your repo name and `branch` is your newly configured branch:
4848

49-
```text
50-
elastic-docs-link-index.s3.us-east-2.amazonaws.com/elastic/<repo>/<branch>/links.json
51-
```
49+
```text
50+
elastic-docs-link-index.s3.us-east-2.amazonaws.com/elastic/<repo>/<branch>/links.json
51+
```
5252
5. Rerun the `validate-assembler` check on the PR.
5353
6. After checks pass and the docs engineering team approves, you can merge the PR.
5454

docs/contribute/release-new-version.md

Lines changed: 97 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,34 @@ navigation_title: Release a new docs version
66

77
When a new version of the Elastic Stack (or another versioned product) is released, the docs site must be updated to recognize it. This process primarily involves updating version metadata in the shared site configuration.
88

9-
Follow these steps to release a new documentation version.
9+
## Who needs to be involved
1010

11-
:::::{stepper}
11+
Generally, each release requires the following people:
1212

13-
::::{step} Update `versions.yml`
13+
* A member of the **docs team** to perform release prep
14+
* A member of the **docs engineering** team to support publishing those changes to staging and prod.
15+
16+
Before you start your release, you should identify who from each of these teams will facilitate the release.
17+
18+
## Release process
19+
20+
Follow these steps to release a new documentation version. There are two phases to releasing a new version:
21+
22+
* **Release prep**: Prepare the relevant docs-builder changes. This can be done anytime before release day, and can be performed by any member of the docs team.
23+
* **Release day activities**: Merge your changes and push them to our staging and production environments. These steps must be performed on release day, and require support from docs engineering.
24+
25+
26+
### Release prep
27+
28+
Anytime before release day, you can prepare the release-related changes. These changes can be bundled into a single PR.
29+
30+
Do not merge these changes until release day.
31+
32+
:::::{stepper}
33+
34+
::::{step} [docs-builder PR] Update `versions.yml`
35+
36+
_This action can be performed by any member of the docs team. It's also [automated](https://github.com/elastic/docs-builder/actions/workflows/updatecli.yml) for many products._
1437

1538
The `versions.yml` file defines the **base** (minimum) and **current** (latest) versions of each versioned product family.
1639

@@ -26,11 +49,42 @@ versioning_systems:
2649
- Update the `current` version to reflect the newly released version.
2750
- Only update the `base` version if you're dropping support for an older version.
2851

29-
Refer to [`versions.yml`](../configure/site/versions.md) for more information.
52+
Refer to [`versions.yml`](/configure/site/versions.md) for more information.
3053

3154
::::
3255

33-
::::{step} (Optional) Update legacy URL mappings
56+
::::{step} [docs-builder PR] (Optional) Bump the version branch
57+
_This action can be performed by any member of the docs team._
58+
59+
If you use the [tagged branching strategy](/contribute/branching-strategy.md), and your release corresponds with a new branch in the repository that holds your documentation, then you also need to bump the `current` and `next` branch in the docs configuration.
60+
61+
This step is not always required, depending on your branching strategy. For example, if you only have branches for major versions of your product (e.g. 1 and 2), and you're already publishing your docs from the `1` branch, then you don't need to bump the version branch to release version 1.2 or 1.2.3 of your documentation.
62+
63+
1. In `assembler.yml`, specifying the new `current` and `next` branches for your repository:
64+
65+
```yml
66+
your-product:
67+
current: 1.1
68+
next: 1.2
69+
```
70+
71+
Some people use `main` or `master` for their `next` branch. In this case, the `next` value doesn't need to be changed.
72+
73+
2. Tag the PR with the `ci` label. After CI runs, confirm that the intended version branches are publishing to the link service. When links are being published as intended, they can be found at the following URL, where repo is your repo name and branch is your newly configured branch:
74+
75+
```
76+
elastic-docs-link-index.s3.us-east-2.amazonaws.com/elastic/<repo>/<branch>/links.json
77+
```
78+
79+
3. Rerun the `validate-assembler` check on the PR.
80+
81+
82+
[Learn more about changing the published branch](/contribute/branching-strategy.md#how-to-change-the-published-branch).
83+
::::
84+
85+
::::{step} [docs-builder PR] (Optional) Update legacy URL mappings
86+
87+
_This action can be performed by any member of the docs team._
3488

3589
If you're releasing a version older than the current `base`, or restoring support for a previously removed version, you may need to update the `legacy-url-mappings.yml` file.
3690

@@ -39,21 +93,50 @@ This file maps legacy URL paths (like `en/elasticsearch/reference/`) to the list
3993
For example, to release the 8.19 version of the Elastic Stack, update the `stack` versions array to include the new version number:
4094

4195
```yml
42-
- stack: &stack [ '9.0+', '8.19', '8.18', '8.17', ... ]
96+
- stack: &stack [ '8.19', '8.18', '8.17', ... ]
4397
```
4498

45-
:::{important}
46-
The first version in the `mappings` list is treated as the "current" version in documentation version dropdown.
47-
:::
48-
4999
See [`legacy-url-mappings.yml`](../configure/site/legacy-url-mappings.md) for more information.
50100

51101
::::
52102

53-
::::{step} Release a new version of docs-builder
103+
:::::
104+
105+
### Release day activities
106+
107+
Merge your changes and push them to our staging and production environments on release day.
108+
109+
:::::{stepper}
110+
111+
::::{step} [docs-builder PR] Merge the config change
112+
113+
Merge the `versions.yml` changes and any assembler and legacy URL mapping changes. Anyone from the docs team can merge the PR, but it must be approved by docs engineering or docs tech leads.
114+
115+
Optionally, docs engineering or docs tech leads can invoke the [Synchronize version & config updates](https://github.com/elastic/docs-internal-workflows/actions/workflows/update-assembler-version.yml) action manually on `docs-internal-workflows`, which opens two configuration update PRs: `staging` and `prod`.
116+
117+
This action also runs on a cron job, but can be triggered manually if the change is time-sensitive.
118+
::::
119+
120+
::::{step} Merge the config change to staging
121+
122+
_This action must be performed by docs engineering._
123+
124+
1. Approve and merge [the `staging` configuration update PR](https://github.com/elastic/docs-internal-workflows/pulls).
125+
2. Optionally, manually [invoke the release automation to staging](https://github.com/elastic/docs-internal-workflows/actions/workflows/assembler-build.staging.yml).
126+
127+
This action also runs on a cron job, but can be triggered manually if the change is time-sensitive.
128+
129+
Before you merge the config change to prod in the next step, make sure that the workflow run is green and wait for 10 to 15 minutes for any alerts to be raised.
130+
131+
::::
132+
133+
::::{step} Merge the config change to prod and release to production
134+
135+
_This action must be performed by docs engineering._
54136

55-
Version updates and content set additions require a release of docs-builder.
56-
Contact the Docs Eng team for assistance.
137+
1. Approve and merge [the `prod` configuration update PR](https://github.com/elastic/docs-internal-workflows/pulls).
138+
2. Manually [invoke the release automation to production](https://github.com/elastic/docs-internal-workflows/actions/workflows/assembler-build.prod.yml). Monitor it to make sure that it's green.
139+
3. Let the requester or docs release coordinator know the docs have been updated.
57140

58141
::::
59142

@@ -64,3 +147,4 @@ Cumulative documentation relies on version metadata through `applies_to` blocks,
64147
Check the built output to ensure `applies_to` changes are correctly rendering.
65148

66149
::::
150+
:::::

0 commit comments

Comments
 (0)