diff --git a/.buildkite/build_pipeline.yml b/.buildkite/build_pipeline.yml index 1e96c9afcfc43..d32f46908350d 100644 --- a/.buildkite/build_pipeline.yml +++ b/.buildkite/build_pipeline.yml @@ -36,7 +36,7 @@ steps: agents: provider: "gcp" image: family/docs-ubuntu-2204 - diskSizeGb: 150 + diskSizeGb: 200 machineType: ${BUILD_MACHINE_TYPE} concurrency_group: build-docs-${BUILDKITE_BRANCH} concurrency: 1 diff --git a/.buildkite/build_pr_pipeline.yml b/.buildkite/build_pr_pipeline.yml index 3df10f379e55e..e076d526e2885 100644 --- a/.buildkite/build_pr_pipeline.yml +++ b/.buildkite/build_pr_pipeline.yml @@ -25,25 +25,5 @@ steps: agents: provider: "gcp" image: family/docs-ubuntu-2204 - diskSizeGb: 150 + diskSizeGb: 200 machineType: ${BUILD_MACHINE_TYPE} - - key: "teardown" - label: "teardown" - command: | - status_state=failure - if [ $$(buildkite-agent step get "outcome" --step "build-pr") == "passed" ]; then - status_state=success - fi - export status_state - curl -s -L \ - -X POST \ - -H "Accept: application/vnd.github+json" \ - -H "Authorization: Bearer $${VAULT_GITHUB_TOKEN}" \ - -H "X-GitHub-Api-Version: 2022-11-28" \ - "https://api.github.com/repos/${GITHUB_PR_BASE_OWNER}/${GITHUB_PR_BASE_REPO}/statuses/${GITHUB_PR_TRIGGERED_SHA}" \ - -d '{"state":"'$$status_state'","target_url":"'$BUILDKITE_BUILD_URL'","description":"Build finished","context":"buildkite/'$BUILDKITE_PIPELINE_SLUG'"}' - depends_on: - - step: "build-pr" - allow_failure: true - plugins: - - 'uber-workflow/run-without-clone': diff --git a/.buildkite/hooks/pre-command b/.buildkite/hooks/pre-command index f7be59739f3de..645b58606a700 100755 --- a/.buildkite/hooks/pre-command +++ b/.buildkite/hooks/pre-command @@ -24,10 +24,20 @@ function retry { export BUILD_MACHINE_TYPE="n2-standard-4" +function configure_elasticmachine_ssh_key { + # Temporary workaround until we can move to HTTPS auth. + # Fetch SSH keys while the job Vault token is still valid. + mkdir -p "$HOME/.ssh" + retry 5 vault read -field=private-key secret/ci/elastic-docs/elasticmachine-ssh-key > "$HOME/.ssh/id_rsa" + retry 5 vault read -field=public-key secret/ci/elastic-docs/elasticmachine-ssh-key > "$HOME/.ssh/id_rsa.pub" + chmod 600 "$HOME/.ssh/id_rsa" +} + # Secrets must be redacted # https://buildkite.com/docs/pipelines/managing-log-output#redacted-environment-variables if [[ "$BUILDKITE_PIPELINE_SLUG" == "docs-build-pr" ]];then export BUILDKITE_API_TOKEN=$(retry 5 vault kv get -field=value secret/ci/elastic-docs/buildkite_token) + configure_elasticmachine_ssh_key if [[ ${GITHUB_PR_BASE_REPO:="unset"} == "docs" ]]; then # Docs PR require a full rebuild - so let's boost the builds so they don't take 2 hours export BUILD_MACHINE_TYPE="n2-highcpu-32" @@ -35,7 +45,12 @@ if [[ "$BUILDKITE_PIPELINE_SLUG" == "docs-build-pr" ]];then elif [[ "$BUILDKITE_PIPELINE_SLUG" == "docs-build" ]];then export BUILD_MACHINE_TYPE="n2-highcpu-32" export BUILDKITE_API_TOKEN=$(retry 5 vault kv get -field=value secret/ci/elastic-docs/buildkite_token) + configure_elasticmachine_ssh_key elif [[ "$BUILDKITE_PIPELINE_SLUG" == "docs-build-air-gapped" ]] && [[ "$BUILDKITE_STEP_KEY" == "publish-air-gapped-doc" ]]; then export DOCKER_USERNAME=$(retry 5 vault kv get -field=username secret/ci/elastic-docs/docker.elastic.co) export DOCKER_PASSWORD=$(retry 5 vault kv get -field=password secret/ci/elastic-docs/docker.elastic.co) fi + +if [[ "$BUILDKITE_PIPELINE_SLUG" == "docs-build-pr" ]] && [[ "$BUILDKITE_STEP_KEY" == "build-pr" ]]; then + "${BUILDKITE_BUILD_CHECKOUT_PATH}/.buildkite/scripts/build_pr_commit_status.sh" pending || true +fi diff --git a/.buildkite/hooks/pre-exit b/.buildkite/hooks/pre-exit new file mode 100755 index 0000000000000..0f784b64dee21 --- /dev/null +++ b/.buildkite/hooks/pre-exit @@ -0,0 +1,11 @@ +#!/bin/bash + +set -euo pipefail + +if [[ "$BUILDKITE_PIPELINE_SLUG" == "docs-build-pr" ]] && [[ "$BUILDKITE_STEP_KEY" == "build-pr" ]]; then + status_state=failure + if [[ "${BUILDKITE_COMMAND_EXIT_STATUS:-1}" -eq 0 ]]; then + status_state=success + fi + "${BUILDKITE_BUILD_CHECKOUT_PATH}/.buildkite/scripts/build_pr_commit_status.sh" "$status_state" || true +fi diff --git a/.buildkite/pull-requests.org-wide.json b/.buildkite/pull-requests.org-wide.json index 29fe92e4ed5a7..9c77344dcc229 100644 --- a/.buildkite/pull-requests.org-wide.json +++ b/.buildkite/pull-requests.org-wide.json @@ -9,11 +9,11 @@ "admin", "write" ], - "allowed_list": ["github-actions[bot]", "renovate[bot]", "mergify[bot]", "dependabot[bot]", "elastic-renovate-prod[bot]", "elastic-observability-automation[bot]"], + "allowed_list": ["github-actions[bot]", "renovate[bot]", "mergify[bot]", "dependabot[bot]", "elastic-renovate-prod[bot]", "elastic-observability-automation[bot]", "elastic-vault-github-plugin-prod[bot]"], "build_on_commit": true, "build_on_comment": true, - "trigger_comment_regex": "run docs-build ?(?rebuild)? ?(?warnlinkcheck)? ?(?skiplinkcheck)?", - "always_trigger_comment_regex": "buildkite test this ?(?rebuild)? ?(?warnlinkcheck)? ?(?skiplinkcheck)?", + "trigger_comment_regex": "^run docs-build ?(?rebuild)? ?(?warnlinkcheck)? ?(?skiplinkcheck)?\\s*?$", + "always_trigger_comment_regex": "^buildkite test this ?(?rebuild)? ?(?warnlinkcheck)? ?(?skiplinkcheck)?\\s*?$", "skip_ci_labels": [ "skip docs-build" ], @@ -91,8 +91,9 @@ "allowed_list": ["github-actions[bot]", "renovate[bot]", "mergify[bot]"], "build_on_commit": true, "build_on_comment": true, - "trigger_comment_regex": "run docs-build ?(?rebuild)? ?(?warnlinkcheck)? ?(?skiplinkcheck)?", - "always_trigger_comment_regex": "buildkite test this ?(?rebuild)? ?(?warnlinkcheck)? ?(?skiplinkcheck)?", + "ignore_pipeline_branch_filters": true, + "trigger_comment_regex": "^run docs-build ?(?rebuild)? ?(?warnlinkcheck)? ?(?skiplinkcheck)?\\s*?$", + "always_trigger_comment_regex": "^buildkite test this ?(?rebuild)? ?(?warnlinkcheck)? ?(?skiplinkcheck)?\\s*?$", "skip_ci_labels": [ "skip docs-build" ], @@ -113,8 +114,8 @@ "allowed_list": ["github-actions[bot]", "renovate[bot]", "mergify[bot]"], "build_on_commit": true, "build_on_comment": true, - "trigger_comment_regex": "run docs-test", - "always_trigger_comment_regex": "run docs-test", + "trigger_comment_regex": "^run docs-test\\s*?$", + "always_trigger_comment_regex": "^run docs-test\\s*?$", "skip_ci_labels": [], "skip_ci_on_only_changed": [], "always_require_ci_on_changed": [], diff --git a/.buildkite/scripts/build.sh b/.buildkite/scripts/build.sh index d3cf3171599ac..a147e4b9bd5e6 100755 --- a/.buildkite/scripts/build.sh +++ b/.buildkite/scripts/build.sh @@ -31,11 +31,8 @@ fi # The docs build can use the ssh agent's authentication socket # but can't use ssh keys directly so we start an ssh-agent. -# Temporary workaround until we can move to HTTPS auth -vault read -field=private-key secret/ci/elastic-docs/elasticmachine-ssh-key > "$HOME/.ssh/id_rsa" -vault read -field=public-key secret/ci/elastic-docs/elasticmachine-ssh-key > "$HOME/.ssh/id_rsa.pub" +# SSH keys are fetched from Vault in .buildkite/hooks/pre-command. ssh-keyscan github.com >> "$HOME/.ssh/known_hosts" -chmod 600 "$HOME/.ssh/id_rsa" ssh-agent bash -c " ssh-add && diff --git a/.buildkite/scripts/build_pr.sh b/.buildkite/scripts/build_pr.sh index 506a5a6d0ee11..84545533d8a61 100755 --- a/.buildkite/scripts/build_pr.sh +++ b/.buildkite/scripts/build_pr.sh @@ -2,6 +2,9 @@ set -euo pipefail set +x +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +DOCS_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)" + # This script should only be invoked by the Buildkite PR bot if [ -z ${GITHUB_PR_TARGET_BRANCH+set} ] || [ -z ${GITHUB_PR_NUMBER+set} ] || [ -z ${GITHUB_PR_BASE_REPO+set} ];then echo "One of the following env. variable GITHUB_PR_TARGET_BRANCH, GITHUB_PR_NUMBER, GITHUB_PR_BASE_REPO is missing - exiting." @@ -41,6 +44,34 @@ buildkite-agent \ if [[ "${GITHUB_PR_BASE_REPO}" != 'docs' ]]; then + # main/master are hardcoded to always skip the build, without needing conf.yaml/YAML at all: + # we no longer build legacy AsciiDoc docs against these branches. + if [[ "${GITHUB_PR_TARGET_BRANCH}" == "main" || "${GITHUB_PR_TARGET_BRANCH}" == "master" ]]; then + echo "Target branch '${GITHUB_PR_TARGET_BRANCH}' is main/master — skipping build (reporting success)." + exit 0 + fi + + # legacy_branches.pl needs YAML.pm on the host agent (not the Docker build + # image). Install it when missing so a stale docs-ubuntu image does not + # fail open and force a full clone/build for non-legacy branches. + if ! perl -MYAML -e1 >/dev/null 2>&1; then + echo "Perl YAML module missing on agent; installing libyaml-perl" + sudo apt-get update -qq + sudo apt-get install -y -qq libyaml-perl + fi + + # Build only if conf.yaml lists the target branch as a legacy AsciiDoc branch + # for this repo — otherwise skip but report success, since docs-build-pr is a + # required check and we want it green rather than failing or left pending. + # The helper exits non-zero only when conf.yaml itself couldn't be read (e.g. + # the perl YAML module is missing), which short-circuits the condition below + # so we fail open and build as today, rather than silently going green. + if legacy_branches=$(perl "${SCRIPT_DIR}/legacy_branches.pl" "$GITHUB_PR_BASE_REPO") \ + && ! grep -qxF "${GITHUB_PR_TARGET_BRANCH}" <<< "${legacy_branches}"; then + echo "Target branch '${GITHUB_PR_TARGET_BRANCH}' is not a legacy AsciiDoc branch in conf.yaml for ${GITHUB_PR_BASE_REPO} — skipping build (reporting success)." + exit 0 + fi + # Buildkite PR bot for repositories other than the `elastic/docs` repo are configured to # always checkout the master branch of the `elastic/docs` repo (where the build logic resides). # We first need to checkout the product repo / branch in a sub directory, that we'll reference @@ -199,9 +230,19 @@ if [[ "${GITHUB_PR_BASE_REPO}" != 'docs' ]]; then docs_diff=$(git diff --stat "origin/$GITHUB_PR_TARGET_BRANCH"...HEAD -- ./docs/en ./docs/kr ./docs/jp) ;; - # All other repos will always build + # Repos without a specialized arm: derive doc paths from conf.yaml *) - docs_diff="always build" + git fetch origin "$GITHUB_PR_TARGET_BRANCH" + if docs_paths=$(perl "${SCRIPT_DIR}/docs_paths.pl" "$GITHUB_PR_BASE_REPO" "${DOCS_ROOT}/conf.yaml" 2>/dev/null); then + if [[ -z "$docs_paths" ]]; then + docs_diff="" + else + mapfile -t paths <<< "$docs_paths" + docs_diff=$(git diff --stat "origin/$GITHUB_PR_TARGET_BRANCH"...HEAD -- "${paths[@]}") + fi + else + docs_diff="always build" + fi ;; esac @@ -247,11 +288,8 @@ build_cmd="./build_docs --all \ echo "The following build command will be used" echo $build_cmd -# Temporary workaround until we can move to HTTPS auth -vault read -field=private-key secret/ci/elastic-docs/elasticmachine-ssh-key > "$HOME/.ssh/id_rsa" -vault read -field=public-key secret/ci/elastic-docs/elasticmachine-ssh-key > "$HOME/.ssh/id_rsa.pub" +# SSH keys are fetched from Vault in .buildkite/hooks/pre-command. ssh-keyscan github.com >> "$HOME/.ssh/known_hosts" -chmod 600 "$HOME/.ssh/id_rsa" # Kick off the build ssh-agent bash -c "ssh-add && $build_cmd" diff --git a/.buildkite/scripts/build_pr_commit_status.sh b/.buildkite/scripts/build_pr_commit_status.sh new file mode 100755 index 0000000000000..619d1166bde4c --- /dev/null +++ b/.buildkite/scripts/build_pr_commit_status.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +set -euo pipefail + +# This script should only be invoked for builds triggered by the Buildkite PR bot +if [ -z ${GITHUB_PR_BASE_OWNER+set} ] || [ -z ${GITHUB_PR_BASE_REPO+set} ] || [ -z ${GITHUB_PR_TRIGGERED_SHA+set} ]; then + exit 0 +fi + +status_state=$1 +description='' + +case $status_state in + pending) + description='Build started';; + success|failure|error) + description='Build finished';; + *) + echo "Invalid state $status_state" + exit 1;; +esac + +githubPublishStatus="https://api.github.com/repos/${GITHUB_PR_BASE_OWNER}/${GITHUB_PR_BASE_REPO}/statuses/${GITHUB_PR_TRIGGERED_SHA}" +data='{"state":"'$status_state'","target_url":"'$BUILDKITE_BUILD_URL'","description":"'$description'","context":"buildkite/'$BUILDKITE_PIPELINE_SLUG'"}' + +echo "Setting commit status: buildkite/${BUILDKITE_PIPELINE_SLUG} - ${status_state}" +curl -s -L \ + -X POST \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer ${VAULT_GITHUB_TOKEN}" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + "${githubPublishStatus}" \ + -d "${data}" diff --git a/.buildkite/scripts/docs_paths.pl b/.buildkite/scripts/docs_paths.pl new file mode 100755 index 0000000000000..bd96f20844c85 --- /dev/null +++ b/.buildkite/scripts/docs_paths.pl @@ -0,0 +1,76 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use YAML qw(LoadFile); + +# Usage: docs_paths.pl [conf.yaml] +# Prints one git-diff path per line from conf.yaml sources for the repo. +# +# Exit 0: conf.yaml was read successfully. Output is empty if the repo is not +# in conf.yaml or has no source paths. +# Exit 1: conf.yaml couldn't be loaded (e.g. missing YAML module, parse error) +# — caller should build as today (fail open), since we can't tell. + +my ( $github_repo, $conf_path ) = @ARGV; +$conf_path //= 'conf.yaml'; + +die "Usage: $0 [conf.yaml]\n" unless defined $github_repo; + +my $conf = eval { LoadFile($conf_path) }; +if ($@) { + warn "Failed to load $conf_path: $@\n"; + exit 1; +} + +# Sources in conf.yaml reference the conf key (e.g. "esf"), which for most repos +# is already the GitHub repo name but for some (e.g. "elastic-serverless-forwarder") +# differs from it. Try the GitHub name as a conf key directly first, then fall back +# to matching it against each repo's URL basename. +my $conf_key = exists $conf->{repos}{$github_repo} ? $github_repo : undef; +unless ( defined $conf_key ) { + while ( my ( $key, $url ) = each %{ $conf->{repos} } ) { + ( my $name = $url ) =~ s{.*/|\.git$}{}g; # URL -> repo name (strip path and .git) + if ( $name eq $github_repo ) { + $conf_key = $key; + last; + } + } +} + +unless ( defined $conf_key ) { + exit 0; # repo not in conf — no doc paths, caller should skip +} + +my %paths; +walk_entries( $conf->{contents}, $conf_key, \%paths ); + +print "$_\n" for sort keys %paths; +exit 0; + + +sub walk_entries { + my ( $entries, $conf_key, $paths ) = @_; + for my $entry (@$entries) { + if ( $entry->{sections} ) { + walk_entries( $entry->{sections}, $conf_key, $paths ); + } else { + collect_source_paths( $entry, $conf_key, $paths ); + } + } +} + +sub collect_source_paths { + my ( $book, $conf_key, $paths ) = @_; + for my $source ( @{ $book->{sources} // [] } ) { + next unless ( $source->{repo} // '' ) eq $conf_key; + my $path = normalize_path( $source->{path} ); + $paths->{$path} = 1 if defined $path && length $path; + } +} + +sub normalize_path { + my ($path) = @_; + return unless defined $path; + $path =~ s{^/}{}; # strip leading slash for git diff + return $path; +} diff --git a/.buildkite/scripts/docs_paths.t b/.buildkite/scripts/docs_paths.t new file mode 100644 index 0000000000000..6a000a28fddc3 --- /dev/null +++ b/.buildkite/scripts/docs_paths.t @@ -0,0 +1,39 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; +use FindBin qw($RealBin); + +# Regression check for docs_paths.pl's repo-name resolution and path collection. +# Run from the repo root since docs_paths.pl defaults to ./conf.yaml. + +chdir "$RealBin/../.." or die "Can't chdir to repo root: $!"; + +my $conf = 'conf.yaml'; + +sub run { + my ($repo) = @_; + my $out = `perl .buildkite/scripts/docs_paths.pl @{[quotemeta $repo]} $conf 2>/dev/null`; + return ( $? >> 8, $out ); +} + +{ + my ( $exit, $out ) = run('kibana'); + is( $exit, 0, 'kibana: exits 0' ); + like( $out, qr{docs/}, 'kibana: includes docs/' ); + like( $out, qr{:\(glob\).*asciidoc}, 'kibana: includes a glob asciidoc pathspec' ); +} + +{ + my ( $exit, $out ) = run('elastic-serverless-forwarder'); + is( $exit, 0, 'elastic-serverless-forwarder: exits 0' ); + like( $out, qr{docs/en}, 'elastic-serverless-forwarder: resolves via URL basename to docs/en' ); +} + +{ + my ( $exit, $out ) = run('some-repo-not-in-conf-yaml'); + is( $exit, 0, 'unknown repo: exits 0' ); + is( $out, '', 'unknown repo: no doc paths' ); +} + +done_testing(); diff --git a/.buildkite/scripts/legacy_branches.pl b/.buildkite/scripts/legacy_branches.pl new file mode 100755 index 0000000000000..e89723462f223 --- /dev/null +++ b/.buildkite/scripts/legacy_branches.pl @@ -0,0 +1,88 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use YAML qw(LoadFile); + +# Usage: legacy_branches.pl +# Prints one legacy (AsciiDoc) branch per line that the given repo still carries in conf.yaml. +# +# Exit 0: conf.yaml was read successfully. The list is empty if the repo is +# fully migrated to docs-builder or isn't in conf.yaml at all — either +# way it has no legacy branches, so the caller should skip the build. +# Exit 1: conf.yaml couldn't be loaded (e.g. missing YAML module, parse error) +# — caller should build as today (fail open), since we can't tell. + +my ($github_repo) = @ARGV + or die "Usage: $0 \n"; + +# conf.yaml lives in the repo root, which is also the working directory when +# build_pr.sh runs — same assumption used by build_docs.pl (see build_docs.pl:964). +my $conf = eval { LoadFile('conf.yaml') }; +if ($@) { + warn "Failed to load conf.yaml: $@\n"; + exit 1; +} + +# Sources in conf.yaml reference the conf key (e.g. "esf"), which for most repos +# is already the GitHub repo name but for some (e.g. "elastic-serverless-forwarder") +# differs from it. Try the GitHub name as a conf key directly first, then fall back +# to matching it against each repo's URL basename. +my $conf_key = exists $conf->{repos}{$github_repo} ? $github_repo : undef; +unless ( defined $conf_key ) { + while ( my ( $key, $url ) = each %{ $conf->{repos} } ) { + ( my $name = $url ) =~ s{.*/|\.git$}{}g; # URL -> repo name (strip path and .git) + if ( $name eq $github_repo ) { + $conf_key = $key; + last; + } + } +} + +unless ( defined $conf_key ) { + exit 0; # repo not in conf — no legacy branches, caller should skip +} + +# Walk conf.yaml contents and collect every git branch for which this repo still +# appears as a source, using the same branch-resolution rules as the build itself +# (ES::Book:104-109 + ES::BranchTracker:63): +# - git branch = LHS of each branches entry (scalar or single-key hash) +# - map_branches{book_branch} applied to get the actual git branch in the source repo +# - branches in exclude_branches skipped +my %branches; +walk_entries( $conf->{contents}, $conf_key, \%branches ); + +print "$_\n" for sort keys %branches; +exit 0; + + +sub walk_entries { + my ( $entries, $conf_key, $branches ) = @_; + for my $entry (@$entries) { + if ( $entry->{sections} ) { + walk_entries( $entry->{sections}, $conf_key, $branches ); + } else { + collect_book_branches( $entry, $conf_key, $branches ); + } + } +} + +sub collect_book_branches { + my ( $book, $conf_key, $branches ) = @_; + my $branch_list = $book->{branches} or return; + my $sources = $book->{sources} or return; + + my @matching = grep { ( $_->{repo} // '' ) eq $conf_key } @$sources; + return unless @matching; + + for my $source (@matching) { + my $map = $source->{map_branches} // {}; + my %excl = map { $_ => 1 } @{ $source->{exclude_branches} // [] }; + + for my $entry (@$branch_list) { + # Each entry is a scalar or a single-key hash { book_branch => display_title } + my ($branch) = ref $entry eq 'HASH' ? keys %$entry : ($entry); + next if $excl{$branch}; + $branches->{ $map->{$branch} // $branch } = 1; + } + } +} diff --git a/.buildkite/scripts/legacy_branches.t b/.buildkite/scripts/legacy_branches.t new file mode 100755 index 0000000000000..f143dd574bb64 --- /dev/null +++ b/.buildkite/scripts/legacy_branches.t @@ -0,0 +1,39 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; +use FindBin qw($RealBin); + +# Regression check for legacy_branches.pl's repo-name resolution: it must +# handle both a GitHub repo name that already matches a conf.yaml key +# directly (e.g. "esf" itself) and one that only matches via a source repo's +# URL basename (e.g. "elastic-serverless-forwarder" -> "esf"). Run from the +# repo root since legacy_branches.pl reads ./conf.yaml relative to cwd. + +chdir "$RealBin/../.." or die "Can't chdir to repo root: $!"; + +sub run { + my ($repo) = @_; + my $out = `perl .buildkite/scripts/legacy_branches.pl @{[quotemeta $repo]} 2>/dev/null`; + return ( $? >> 8, $out ); +} + +for my $repo (qw(kibana-cn swiftype esf elastic-serverless-forwarder)) { + my ( $exit, $out ) = run($repo); + is( $exit, 0, "$repo: exits 0" ); + isnt( $out, '', "$repo: has at least one legacy branch (conf key resolved)" ); +} + +{ + my ( $exit, $out ) = run('kibana'); + is( $exit, 0, 'kibana: exits 0' ); + isnt( $out, '', 'kibana: has at least one legacy branch' ); + like( $out, qr{^8\.19$}m, 'kibana: includes 8.19 legacy branch' ); + unlike( $out, qr{^9\.}m, 'kibana: has no 9.x legacy branches' ); +} + +my ( $exit, $out ) = run('some-repo-not-in-conf-yaml'); +is( $exit, 0, 'unknown repo: exits 0' ); +is( $out, '', 'unknown repo: no legacy branches' ); + +done_testing(); diff --git a/.docker/apt/keys/yarn.gpg b/.docker/apt/keys/yarn.gpg index 3ea6b9adc70d1..eeb898d80297c 100644 --- a/.docker/apt/keys/yarn.gpg +++ b/.docker/apt/keys/yarn.gpg @@ -1,220 +1,16 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -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 -=e4wy ------END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mDMEaXpj0BYJKwYBBAHaRw8BAQdAwGyeCSTYStlwsa6UqBUbwNBt6/OChW1Yd5UQ +ZSBfIo60I1lhcm4gUGFja2FnaW5nICgyMDI2KSA8eWFybkBkYW4uY3g+iI0EExYK +ADUCGwMCF4AWIQRO+BUPTy195E8d/wu0KHnMazjhGAUCaXpj9QMLCQgEFQoJCAUW +AgMBAAIeBQAKCRC0KHnMazjhGI+PAP9/RethU7WKc7rpXMChZTsP2K+SS1amLmTE +S1AjOhYncwEA1GEwkTnvdjZ5wjHzEoPlBwSldfeGe1tjjyCcLDtPtwG4MwRpemRz +FgkrBgEEAdpHDwEBB0AuAR1W6iEp8IZurRTTI4EfWbxE3VUfkBUVm3IyUg2Dboj1 +BBgWCgAmFiEETvgVD08tfeRPHf8LtCh5zGs44RgFAml6ZHMCGwIFCQeEzgAAgQkQ +tCh5zGs44Rh2IAQZFgoAHRYhBP98tWZ7VCCSCEu9xWLVT9QAP2UlBQJpemRzAAoJ +EGLVT9QAP2UlMsYA/18AOfbemgoy1NLDaLYIfu2vf2miVnPszmmMmK6TEJvwAQCR ++Mh3MuKInPY+/HVenyCnxEc4utAt8yljWTzXo+/tBzKTAQD2XT6tc4eknyeoZWMw +t4VaOv5ygSKcnFfi/84WZm1mFQD/VYXBA2pLP5W6o7NKfPaXCRbhn4dsubvYo4V/ +s/jmAAc= +=qQN5 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/.docker/install_packages.sh b/.docker/install_packages.sh new file mode 100644 index 0000000000000..3118a83e99b57 --- /dev/null +++ b/.docker/install_packages.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +MAX_ATTEMPTS=5 +WAIT_TIME=10 +RETRY_COUNT=0 + +# Check if any package names were provided +if [ $# -eq 0 ]; then + echo "Error: install_packages requires at least one package name." >&2 + exit 1 +fi + +# Loop for retry attempts +while [ $RETRY_COUNT -lt $MAX_ATTEMPTS ]; do + echo "Attempt $((RETRY_COUNT + 1)) of $MAX_ATTEMPTS: Running install_packages $@" + + # Execute the actual install command + install_packages "$@" + + # Check the exit status of the previous command + if [ $? -eq 0 ]; then + echo "Packages installed successfully." + exit 0 # Success, exit the function + else + RETRY_COUNT=$((RETRY_COUNT + 1)) + if [ $RETRY_COUNT -lt $MAX_ATTEMPTS ]; then + echo "Installation failed. Retrying in $WAIT_TIME seconds..." + sleep $WAIT_TIME + fi + fi +done + +echo "ERROR: Package installation failed after $MAX_ATTEMPTS attempts." >&2 +exit 1 diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 571b7f096c9f1..0eb669fea5524 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1,11 @@ -* @elastic/docs-repo-owners +# Docs Eng owns the codebase +* @elastic/docs-engineering + +#Readme changes must be approved by writers +*.asciidoc @elastic/docs-repo-owners + +# Writers and Docs Eng share ownership of config files +/extra/ @elastic/docs-engineering @elastic/docs-repo-owners +‎/resources/asciidoctor/lib/chunker/v3-mapping.json‎ @elastic/docs-engineering @elastic/docs-repo-owners +/shared/ @elastic/docs-engineering @elastic/docs-repo-owners +*.yaml @elastic/docs-engineering @elastic/docs-repo-owners diff --git a/.github/workflows/patch-release-version-bump.yml b/.github/workflows/patch-release-version-bump.yml index 7625e7b4f27e6..030aafc28548e 100644 --- a/.github/workflows/patch-release-version-bump.yml +++ b/.github/workflows/patch-release-version-bump.yml @@ -15,9 +15,14 @@ on: description: 'Patch version (new)' options: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25'] +permissions: {} + jobs: create-pull-request: runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write steps: - name: Check out repository code uses: actions/checkout@v4 diff --git a/.gitignore b/.gitignore index f62a2b023b0f0..48076a7c7c51f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ .gradle bin +.idea +.parcel-cache .includepath .ignorepath .settings diff --git a/.rubocop.yml b/.rubocop.yml index 86a27b026501d..bcfa3d2459f7f 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -5,7 +5,7 @@ require: AllCops: TargetRubyVersion: 2.3 - CacheRootDirectory: .rubocop_cache + CacheRootDirectory: /tmp/rubocop_cache MaxFilesInCache: 1000 Style/ReturnNil: diff --git a/Dockerfile b/Dockerfile index ecc1e8cdf477a..6414aebe3bafb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,14 +10,23 @@ # and takes longer to build but that is worth it. FROM bitnami/minideb:buster AS base +RUN echo "deb http://archive.debian.org/debian/ buster main" > /etc/apt/sources.list && \ + echo "deb http://archive.debian.org/debian-security/ buster/updates main" >> /etc/apt/sources.list + # TODO install_packages calls apt-get update and then nukes the list files after. We should avoid multiple calls to apt-get update..... # We could probably fix this by running the update and installs ourself with `RUN --mount type=cache` but that is "experimental" +COPY --chmod=755 .docker/install_packages.sh /usr/local/bin/ + +# Fix for Debian Buster EOL - point to archive repositories +RUN sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list && \ + sed -i 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list && \ + sed -i '/buster-updates/d' /etc/apt/sources.list -RUN install_packages apt-transport-https gnupg2 ca-certificates +RUN install_packages.sh apt-transport-https gnupg2 ca-certificates COPY .docker/apt/keys/nodesource.gpg / RUN apt-key add /nodesource.gpg COPY .docker/apt/sources.list.d/nodesource.list /etc/apt/sources.list.d/ -RUN install_packages \ +RUN install_packages.sh \ build-essential python2 \ # needed for compiling native modules on ARM nodejs ruby \ @@ -35,7 +44,7 @@ ENV LC_ALL en_US.UTF-8 FROM base AS ruby_deps -RUN install_packages \ +RUN install_packages.sh \ bundler \ # Fetches ruby dependencies ruby-dev make cmake gcc libc-dev patch @@ -53,7 +62,7 @@ FROM base AS node_deps COPY .docker/apt/keys/yarn.gpg / RUN apt-key add /yarn.gpg COPY .docker/apt/sources.list.d/yarn.list /etc/apt/sources.list.d/ -RUN install_packages yarn=1.22.19-1 +RUN install_packages.sh yarn=1.22.19-1 COPY package.json / COPY yarn.lock / ENV YARN_CACHE_FOLDER=/tmp/.yarn-cache @@ -66,7 +75,7 @@ RUN yarn install --frozen-lockfile --production # Dockerfiles to make the images to serve previews and air gapped docs. FROM base AS build LABEL MAINTAINERS="Nik Everett " -RUN install_packages \ +RUN install_packages.sh \ git \ # Clone source repositories and commit to destination repositories libnss-wrapper \ @@ -102,7 +111,7 @@ RUN rm -rf /var/log/nginx && rm -rf /run/nginx ##### Everything below this run tests FROM base AS py_test # There's not a published wheel for yamale, so we need setuptools and wheel -RUN install_packages python3 python3-pip python3-setuptools python3-wheel python3-dev libxml2-dev libxslt-dev zlib1g-dev +RUN install_packages.sh python3 python3-pip python3-setuptools python3-wheel python3-dev libxml2-dev libxslt-dev zlib1g-dev RUN pip3 install \ beautifulsoup4==4.8.1 \ lxml==4.4.2 \ @@ -123,4 +132,4 @@ COPY --from=ruby_test /usr/local/bin/rspec /usr/local/bin/rspec COPY --from=ruby_test /usr/local/bin/rubocop /usr/local/bin/rubocop FROM py_test AS diff_tool -RUN install_packages git +RUN install_packages.sh git diff --git a/README.asciidoc b/README.asciidoc index b0ebc68c53f8c..7988e1f8edc00 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -1,5 +1,11 @@ = Docs HOWTO +[IMPORTANT] +==== +This repo pertains to the asciidoc system used for pre-9.0 Elastic docs. +To build the markdown docs for versions 9.0+, refer to https://elastic.github.io/docs-builder/contribute/locally/. +==== + include::{docs-root}/shared/versions/stack/current.asciidoc[] include::{docs-root}/shared/attributes.asciidoc[] diff --git a/air_gapped/Dockerfile b/air_gapped/Dockerfile index 928e47915d0f5..49cd44929fe1e 100644 --- a/air_gapped/Dockerfile +++ b/air_gapped/Dockerfile @@ -1,5 +1,14 @@ -FROM docker.elastic.co/docs/preview:latest +FROM cgr.dev/chainguard/wolfi-base +RUN apk update && apk add nodejs git npm + +WORKDIR /app COPY air_gapped/work/target_repo.git /docs_build/.repos/target_repo.git +COPY --chown=node:node preview /app/preview/ +COPY --chown=node:node template /app/template/ +COPY --chown=node:node preview/package.json /app/package.json +WORKDIR /app +RUN npm install + +ENTRYPOINT ["node", "preview/cli.js", "git", "/docs_build/.repos/target_repo.git"] -CMD ["/docs_build/build_docs.pl", "--in_standard_docker", "--gapped", "--preview"] diff --git a/air_gapped/Dockerfile.dockerignore b/air_gapped/Dockerfile.dockerignore index 62451d99eef45..e3d5422f647c5 100644 --- a/air_gapped/Dockerfile.dockerignore +++ b/air_gapped/Dockerfile.dockerignore @@ -1,2 +1,4 @@ * !air_gapped +!preview +!template \ No newline at end of file diff --git a/air_gapped/build.sh b/air_gapped/build.sh index bb91a39fc704e..d222ace5e1b67 100755 --- a/air_gapped/build.sh +++ b/air_gapped/build.sh @@ -19,6 +19,7 @@ mkdir air_gapped/work git clone --reference ~/.git-references/built-docs.git --dissociate \ --depth 2 --branch master --bare \ git@github.com:elastic/built-docs.git air_gapped/work/target_repo.git + GIT_DIR=air_gapped/work/target_repo.git git fetch # Build the images diff --git a/air_gapped/build_bk.sh b/air_gapped/build_bk.sh index 313a5519df922..38bfd69dbb2c8 100644 --- a/air_gapped/build_bk.sh +++ b/air_gapped/build_bk.sh @@ -15,6 +15,7 @@ mkdir air_gapped/work git clone --reference /opt/git-mirrors/built-docs.git --dissociate \ --depth 2 --branch master --bare \ git@github.com:elastic/built-docs.git air_gapped/work/target_repo.git + GIT_DIR=air_gapped/work/target_repo.git git fetch # Build the images diff --git a/air_gapped/test.sh b/air_gapped/test.sh index a7cf7015f0514..89e7451725f56 100755 --- a/air_gapped/test.sh +++ b/air_gapped/test.sh @@ -10,10 +10,8 @@ set -e cd $(git rev-parse --show-toplevel) source ./air_gapped/build.sh -id=$(docker run --rm \ - --publish 8000:8000/tcp \ - -d \ - $AIR_GAPPED) +id=$(docker run --rm --publish 8000:8000/tcp -d $AIR_GAPPED) + echo "Started the air gapped docs. Some useful commands:" echo " docker kill $id" echo " docker logs -tf $id" diff --git a/build_docs b/build_docs index 94c8860b3a849..505f7dac9dc1c 100755 --- a/build_docs +++ b/build_docs @@ -17,7 +17,7 @@ import errno import logging -from os import environ, getgid, getuid +from os import environ, getgid, getuid, makedirs from os.path import basename, dirname, exists, expanduser, isdir from os.path import join, normpath, realpath import re @@ -556,6 +556,9 @@ def standard_docker_args(): docker_args.extend(['--user', '%d:%d' % (uid, getgid())]) # Mount the docs build code so we can run it! docker_args.extend(['-v', '%s:/docs_build:cached' % DIR]) + # Shadow .buildkite/hooks with an empty tmpfs so any code running inside + # the container cannot plant Buildkite hooks that execute on the host. + docker_args.extend(['--tmpfs', '/docs_build/.buildkite/hooks']) # Seccomp adds a *devestating* performance overhead if you happen # to have it installed. docker_args.extend(['--security-opt', 'seccomp=unconfined']) diff --git a/build_docs.pl b/build_docs.pl index 41bf827149da2..a972cd9b06537 100755 --- a/build_docs.pl +++ b/build_docs.pl @@ -413,12 +413,7 @@ sub check_kibana_links { $branch = "main" } else { - if ($version eq "8.x") { - $branch = "8.19" - } - else { - $branch = $version - } + $branch = $version } # $branch = $version eq "master" ? "main" : $version; say " Branch: $branch, Version: $version"; diff --git a/catalog-info.yaml b/catalog-info.yaml index 615223d4aae5a..92e517548867d 100644 --- a/catalog-info.yaml +++ b/catalog-info.yaml @@ -28,7 +28,7 @@ spec: periodic_docs_build: branch: "master" message: "Build the docs every 30 minutes" - cronline: "*/30 * * * *" + cronline: "0 */3 * * *" teams: docs-build-guild: access_level: MANAGE_BUILD_AND_READ diff --git a/conf.yaml b/conf.yaml index 772e9337285eb..e5d92fe8e9135 100644 --- a/conf.yaml +++ b/conf.yaml @@ -80,8 +80,8 @@ contents_title: Elastic Docs # : & # The keys don't really matter, but by convention the are the same as the variable. variables: - stackcurrent: &stackcurrent 8.18 - stacklive: &stacklive [ 8.18 ] + stackcurrent: &stackcurrent 8.19 + stacklive: &stacklive [ 8.19 ] cloudSaasCurrent: &cloudSaasCurrent ms-122 @@ -178,7 +178,7 @@ contents: - title: Elasticsearch Guide prefix: en/elasticsearch/reference current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 2.4, 2.3, 2.2, 2.1, 2.0, 1.7, 1.6, 1.5, 1.4, 1.3, 0.90 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 2.4, 2.3, 2.2, 2.1, 2.0, 1.7, 1.6, 1.5, 1.4, 1.3, 0.90 ] live: *stacklive index: docs/reference/index.x.asciidoc chunk: 1 @@ -290,7 +290,7 @@ contents: index: enterprise-search-docs/index.asciidoc private: 1 current: *stackcurrent - branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7 ] live: *stacklive chunk: 1 tags: Enterprise Search/Guide @@ -307,7 +307,7 @@ contents: index: workplace-search-docs/index.asciidoc private: 1 current: *stackcurrent - branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6 ] live: *stacklive chunk: 1 tags: Workplace Search/Guide @@ -324,7 +324,7 @@ contents: index: app-search-docs/index.asciidoc private: 1 current: *stackcurrent - branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7 ] live: *stacklive chunk: 1 tags: App Search/Guide @@ -344,7 +344,7 @@ contents: private: 1 single: 1 current: *stackcurrent - branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] live: *stacklive index: client-docs/app-search-javascript/index.asciidoc tags: App Search Clients/JavaScript @@ -361,7 +361,7 @@ contents: private: 1 single: 1 current: *stackcurrent - branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] live: *stacklive index: client-docs/app-search-node/index.asciidoc tags: App Search Clients/Node.js @@ -376,7 +376,7 @@ contents: - title: Enterprise Search Node.js client prefix: enterprise-search-node current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6 ] live: [ *stackcurrent ] index: packages/enterprise-search/docs/index.asciidoc tags: Enterprise Search Clients/Node.js @@ -391,7 +391,7 @@ contents: - title: Enterprise Search PHP client prefix: php current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] live: *stacklive index: docs/guide/index.asciidoc tags: Enterprise Search Clients/PHP @@ -406,7 +406,7 @@ contents: - title: Enterprise Search Python client prefix: python current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11 ] live: *stacklive index: docs/guide/index.asciidoc tags: Enterprise Search Clients/Python @@ -421,7 +421,7 @@ contents: - title: Enterprise Search Ruby client prefix: ruby current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11 ] live: *stacklive index: docs/guide/index.asciidoc tags: Enterprise Search Clients/Ruby @@ -438,7 +438,7 @@ contents: private: 1 single: 1 current: *stackcurrent - branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] live: *stacklive index: client-docs/workplace-search-node/index.asciidoc tags: Workplace Search Clients/Node.js @@ -455,7 +455,7 @@ contents: - title: Observability prefix: en/observability current: *stackcurrent - branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9 ] live: *stacklive index: docs/en/observability/index.asciidoc chunk: 4 @@ -472,27 +472,18 @@ contents: repo: apm-server path: docs exclude_branches: [ 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - map_branches: - 8.x: 8.19 - - repo: apm-server path: changelogs exclude_branches: [ 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - map_branches: - 8.x: 8.19 - repo: apm-server path: CHANGELOG.asciidoc exclude_branches: [ 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - map_branches: - 8.x: 8.19 - repo: beats path: libbeat/docs exclude_branches: [ 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - map_branches: - 8.x: 8.19 - repo: docs path: shared/versions/stack/{version}.asciidoc @@ -508,7 +499,7 @@ contents: toc_extra: extra/apm_guide_landing.html index: docs/en/apm-server/integrations-index.asciidoc current: *stackcurrent - branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] live: *stacklive chunk: 2 tags: APM Guide @@ -522,23 +513,15 @@ contents: repo: apm-server path: changelogs exclude_branches: [ 6.0 ] - map_branches: - 8.x: 8.19 - repo: apm-server path: docs/data - map_branches: - 8.x: 8.19 - repo: apm-server path: docs/spec - map_branches: - 8.x: 8.19 - repo: apm-server path: CHANGELOG.asciidoc - map_branches: - 8.x: 8.19 - repo: ingest-docs path: docs/en @@ -988,7 +971,7 @@ contents: - title: Elastic Security prefix: en/security current: *stackcurrent - branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8 ] live: *stacklive index: docs/index.asciidoc chunk: 1 @@ -1013,7 +996,7 @@ contents: prefix: en/starting-with-the-elasticsearch-platform-and-its-solutions current: *stackcurrent index: welcome-to-elastic/index.asciidoc - branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 7.17 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 7.17 ] live: [ *stackcurrent ] chunk: 1 tags: Elastic/Starting with the Elasticsearch Platform and its Solutions @@ -1057,7 +1040,7 @@ contents: - title: Java Client prefix: java-api-client current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] live: *stacklive index: docs/index.asciidoc chunk: 1 @@ -1079,7 +1062,7 @@ contents: - title: JavaScript Client prefix: javascript-api current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 6.x, 5.x ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 6.x, 5.x ] live: *stacklive index: docs/index.asciidoc chunk: 1 @@ -1092,7 +1075,7 @@ contents: - title: Ruby Client prefix: ruby-api current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] live: *stacklive index: docs/index.asciidoc chunk: 1 @@ -1105,7 +1088,7 @@ contents: - title: Go Client prefix: go-api current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] live: *stacklive index: .doc/index.asciidoc chunk: 1 @@ -1118,7 +1101,7 @@ contents: - title: .NET Clients prefix: net-api current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 6.x, 5.x, 2.x, 1.x ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 6.x, 5.x, 2.x, 1.x ] live: *stacklive index: docs/index.asciidoc tags: Clients/.Net @@ -1134,7 +1117,7 @@ contents: - title: PHP Client prefix: php-api current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.x, 6.x, 5.x, 2.x, 1.x, 0.4 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.x, 6.x, 5.x, 2.x, 1.x, 0.4 ] live: *stacklive index: docs/index.asciidoc chunk: 1 @@ -1163,7 +1146,7 @@ contents: - title: Python Client prefix: python-api current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16 ] live: *stacklive index: docs/guide/index.asciidoc chunk: 1 @@ -1189,7 +1172,7 @@ contents: - title: Rust Client prefix: rust-api current: 8.18 - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0 ] live: [ 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0 ] index: docs/index.asciidoc chunk: 1 @@ -1289,7 +1272,7 @@ contents: - title: Elasticsearch for Apache Hadoop and Spark prefix: en/elasticsearch/hadoop current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 2.4, 2.3, 2.2, 2.1, 2.0 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 2.4, 2.3, 2.2, 2.1, 2.0 ] live: *stacklive index: docs/src/reference/asciidoc/index.adoc tags: Elasticsearch/Apache Hadoop @@ -1303,7 +1286,7 @@ contents: index: esre-docs/index.asciidoc private: 1 current: *stackcurrent - branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8 ] live: [ 8.10 ] chunk: 1 tags: ESRE/Guide @@ -1334,10 +1317,10 @@ contents: path: shared/attributes.asciidoc - title: Installation and Upgrade Guide prefix: en/elastic-stack - current: 8.17 + current: 8.18 index: docs/en/install-upgrade/index.asciidoc - branches: [ 9.0, 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - live: [ 9.0, 8.17, 7.17 ] + branches: [ 9.0, 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] + live: [ 9.0, 8.18, 7.17 ] chunk: 1 tags: Elastic Stack/Installation and Upgrade subject: Elastic Stack @@ -1349,52 +1332,38 @@ contents: repo: apm-server path: changelogs exclude_branches: [ 9.0, 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.5, 8.4, 8.3, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - map_branches: - 8.x: 8.19 - repo: apm-server path: docs/ exclude_branches: [ 9.0, 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - map_branches: - 8.x: 8.19 - repo: beats path: libbeat/docs exclude_branches: [ 9.0, 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - map_branches: - 8.x: 8.19 - repo: elasticsearch path: docs/ exclude_branches: [ 9.0 ] - map_branches: - 8.x: 8.19 - repo: elasticsearch-hadoop path: docs/src/reference/asciidoc - exclude_branches: [ 9.0, 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - map_branches: - 8.x: 8.19 + exclude_branches: [ 9.0, 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - repo: security-docs path: docs/ - exclude_branches: [ 9.0, 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] + exclude_branches: [ 9.0, 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - repo: kibana path: docs/ exclude_branches: [ 9.0, 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - map_branches: - 8.x: 8.19 - repo: logstash path: docs/ - exclude_branches: [ 9.0, 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - map_branches: - 8.x: 8.19 + exclude_branches: [ 9.0, 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - repo: observability-docs path: docs/en/observability - exclude_branches: [ 9.0, 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] + exclude_branches: [ 9.0, 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - repo: docs path: shared/versions/stack/{version}.asciidoc @@ -1410,7 +1379,7 @@ contents: - title: Kibana Guide prefix: en/kibana current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 4.6, 4.5, 4.4, 4.3, 4.2, 4.1, 4.0, 3.0 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 4.6, 4.5, 4.4, 4.3, 4.2, 4.1, 4.0, 3.0 ] live: *stacklive index: docs/index.x.asciidoc chunk: 1 @@ -1459,7 +1428,7 @@ contents: prefix: en/machine-learning current: *stackcurrent index: docs/en/stack/ml/index.asciidoc - branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3 ] live: *stacklive chunk: 1 tags: Elastic Stack/Machine Learning @@ -1471,8 +1440,6 @@ contents: - repo: elasticsearch path: docs - map_branches: - 8.x: 8.19 - repo: docs path: shared/versions/stack/{version}.asciidoc @@ -1485,7 +1452,7 @@ contents: - title: Painless Scripting Language prefix: en/elasticsearch/painless current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5] live: *stacklive index: docs/painless/index.asciidoc chunk: 1 @@ -1511,7 +1478,7 @@ contents: repo: elasticsearch current: *stackcurrent index: docs/plugins/index.asciidoc - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 2.4, 2.3, 2.2, 2.1, 2.0, 1.7 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 2.4, 2.3, 2.2, 2.1, 2.0, 1.7 ] live: *stacklive chunk: 2 tags: Elasticsearch/Plugins @@ -1564,7 +1531,7 @@ contents: prefix: en/ingest current: *stackcurrent index: docs/en/ingest-arch/index.asciidoc - branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9 ] live: [ *stackcurrent ] chunk: 1 tags: Ingest/Reference @@ -1579,7 +1546,7 @@ contents: - title: Fleet and Elastic Agent Guide prefix: en/fleet current: *stackcurrent - branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8 ] live: *stacklive index: docs/en/ingest-management/index.asciidoc chunk: 2 @@ -1603,12 +1570,10 @@ contents: repo: apm-server path: docs exclude_branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] - map_branches: - 8.x: 8.19 - title: Logstash Reference prefix: en/logstash current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 2.4, 2.3, 2.2, 2.1, 2.0, 1.5 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 2.4, 2.3, 2.2, 2.1, 2.0, 1.5 ] live: *stacklive index: docs/index.x.asciidoc chunk: 1 @@ -1639,11 +1604,11 @@ contents: - repo: docs path: shared/attributes62.asciidoc - exclude_branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 5.4, 5.3, 5.2, 5.1, 5.0, 2.4, 2.3, 2.2, 2.1, 2.0, 1.5 ] + exclude_branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 5.4, 5.3, 5.2, 5.1, 5.0, 2.4, 2.3, 2.2, 2.1, 2.0, 1.5 ] - repo: docs path: shared/legacy-attrs.asciidoc - exclude_branches: [ 8.x, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 2.4, 2.3, 2.2, 2.1, 2.0] + exclude_branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 2.4, 2.3, 2.2, 2.1, 2.0] - title: Logstash Versioned Plugin Reference prefix: en/logstash-versioned-plugins current: versioned_plugin_docs @@ -1679,7 +1644,7 @@ contents: prefix: en/beats/loggingplugin current: *stackcurrent index: x-pack/dockerlogbeat/docs/index.asciidoc - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6 ] chunk: 1 tags: Elastic Logging Plugin/Reference respect_edit_url_overrides: true @@ -1749,7 +1714,7 @@ contents: prefix: en/beats/auditbeat index: auditbeat/docs/index.asciidoc current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0 ] live: *stacklive chunk: 1 tags: Auditbeat/Reference @@ -1806,7 +1771,7 @@ contents: prefix: en/beats/devguide index: docs/devguide/index.asciidoc current: 8.18 - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0 ] live: *stacklive chunk: 1 tags: Devguide/Reference @@ -1837,7 +1802,7 @@ contents: prefix: en/beats/libbeat index: libbeat/docs/index.asciidoc current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 1.3, 1.2, 1.1, 1.0.1] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 1.3, 1.2, 1.1, 1.0.1] live: *stacklive chunk: 1 tags: Libbeat/Reference @@ -1862,7 +1827,7 @@ contents: prefix: en/beats/filebeat index: filebeat/docs/index.asciidoc current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 1.3, 1.2, 1.1, 1.0.1] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 1.3, 1.2, 1.1, 1.0.1] live: *stacklive chunk: 1 tags: Filebeat/Reference @@ -1917,7 +1882,7 @@ contents: prefix: en/beats/heartbeat current: *stackcurrent index: heartbeat/docs/index.asciidoc - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2 ] live: *stacklive chunk: 1 tags: Heartbeat/Reference @@ -1964,7 +1929,7 @@ contents: prefix: en/beats/metricbeat index: metricbeat/docs/index.asciidoc current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0 ] live: *stacklive chunk: 1 tags: Metricbeat/Reference @@ -2021,7 +1986,7 @@ contents: prefix: en/beats/packetbeat index: packetbeat/docs/index.asciidoc current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 1.3, 1.2, 1.1, 1.0.1] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 1.3, 1.2, 1.1, 1.0.1] live: *stacklive chunk: 1 tags: Packetbeat/Reference @@ -2064,7 +2029,7 @@ contents: prefix: en/beats/winlogbeat index: winlogbeat/docs/index.asciidoc current: *stackcurrent - branches: [ { 8.19: 8.x }, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 1.3, 1.2, 1.1 ] + branches: [ 8.19, 8.18, 8.17, 8.16, 8.15, 8.14, 8.13, 8.12, 8.11, 8.10, 8.9, 8.8, 8.7, 8.6, 8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.17, 7.16, 7.15, 7.14, 7.13, 7.12, 7.11, 7.10, 7.9, 7.8, 7.7, 7.6, 7.5, 7.4, 7.3, 7.2, 7.1, 7.0, 6.8, 6.7, 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0, 1.3, 1.2, 1.1 ] live: *stacklive chunk: 1 tags: Winlogbeat/Reference diff --git a/extra/docs_landing.html b/extra/docs_landing.html index a19bf90b7177a..1644901c02903 100644 --- a/extra/docs_landing.html +++ b/extra/docs_landing.html @@ -446,11 +446,21 @@
- You are viewing the previous version of Elastic docs. To view the current docs, go to elastic.co/docs. + You are viewing previous versions of the Elastic Docs. To view the latest versions, go to elastic.co/docs.
+
+
+

+ Welcome to the docs that cover all changes in Elastic Stack 8.19 and earlier. + To view the docs for the latest Elastic product versions, including Elastic Stack 9.1 and Elastic Cloud Serverless, + go to elastic.co/docs. +

+
+
+