From b2de3600ceaa4409f76e46670781b06aeb9d86b7 Mon Sep 17 00:00:00 2001 From: vcerenu Date: Mon, 10 Mar 2025 13:44:19 -0300 Subject: [PATCH 01/11] Bump 4.13.0 version --- .env | 6 +++--- .github/.goss.yaml | 2 +- .../workflows/Procedure_push_docker_images.yml | 8 ++++---- CHANGELOG.md | 18 ++++++++++++++++++ README.md | 1 + VERSION.json | 2 +- build-docker-images/README.md | 4 ++-- build-docker-images/build-images.sh | 4 ++-- .../wazuh-dashboard/config/config.sh | 4 ++-- .../wazuh-indexer/config/config.sh | 4 ++-- indexer-certs-creator/config/entrypoint.sh | 4 ++-- multi-node/docker-compose.yml | 12 ++++++------ single-node/docker-compose.yml | 6 +++--- 13 files changed, 47 insertions(+), 28 deletions(-) diff --git a/.env b/.env index ab08411d..7af5f540 100755 --- a/.env +++ b/.env @@ -1,6 +1,6 @@ -WAZUH_VERSION=4.12.0 -WAZUH_IMAGE_VERSION=4.12.0 +WAZUH_VERSION=4.13.0 +WAZUH_IMAGE_VERSION=4.13.0 WAZUH_TAG_REVISION=1 -FILEBEAT_TEMPLATE_BRANCH=4.12.0 +FILEBEAT_TEMPLATE_BRANCH=4.13.0 WAZUH_FILEBEAT_MODULE=wazuh-filebeat-0.4.tar.gz WAZUH_UI_REVISION=1 diff --git a/.github/.goss.yaml b/.github/.goss.yaml index 86ddceeb..fcdc65e2 100644 --- a/.github/.goss.yaml +++ b/.github/.goss.yaml @@ -56,7 +56,7 @@ package: wazuh-manager: installed: true versions: - - 4.12.0 + - 4.13.0 port: tcp:1514: listening: true diff --git a/.github/workflows/Procedure_push_docker_images.yml b/.github/workflows/Procedure_push_docker_images.yml index d02f14c9..e0cf78af 100644 --- a/.github/workflows/Procedure_push_docker_images.yml +++ b/.github/workflows/Procedure_push_docker_images.yml @@ -6,11 +6,11 @@ on: inputs: image_tag: description: 'Docker image tag' - default: '4.12.0' + default: '4.13.0' required: true docker_reference: description: 'wazuh-docker reference' - default: 'v4.12.0' + default: 'v4.13.0' required: true products: description: 'Comma-separated list of the image names to build and push' @@ -42,12 +42,12 @@ on: inputs: image_tag: description: 'Docker image tag' - default: '4.12.0' + default: '4.13.0' required: true type: string docker_reference: description: 'wazuh-docker reference' - default: 'v4.12.0' + default: 'v4.13.0' required: false type: string products: diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b854b36..201605b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,24 @@ # Change Log All notable changes to this project will be documented in this file. +## [4.13.0] + +### Added + +- None + +### Changed + +- None + +### Fixed + +- None + +### Deleted + +- None + ## [4.12.0] ### Added diff --git a/README.md b/README.md index d5c3ab6a..66d8d9f3 100644 --- a/README.md +++ b/README.md @@ -178,6 +178,7 @@ WAZUH_MONITORING_REPLICAS=0 ## | Wazuh version | ODFE | XPACK | |---------------|---------|--------| +| v4.13.0 | | | | v4.12.0 | | | | v4.11.1 | | | | v4.11.0 | | | diff --git a/VERSION.json b/VERSION.json index 23a3b07a..dfee93c3 100644 --- a/VERSION.json +++ b/VERSION.json @@ -1,4 +1,4 @@ { - "version": "4.12.0", + "version": "4.13.0", "stage": "alpha0" } diff --git a/build-docker-images/README.md b/build-docker-images/README.md index f088f408..a10e1e9b 100644 --- a/build-docker-images/README.md +++ b/build-docker-images/README.md @@ -13,7 +13,7 @@ This script initializes the environment variables needed to build each of the im The script allows you to build images from other versions of Wazuh, to do this you must use the -v or --version argument: ``` -$ build-docker-images/build-images.sh -v 4.12.0 +$ build-docker-images/build-images.sh -v 4.13.0 ``` To get all the available script options use the -h or --help option: @@ -26,7 +26,7 @@ Usage: build-docker-images/build-images.sh [OPTIONS] -d, --dev [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default. -f, --filebeat-module [Optional] Set Filebeat module version. By default 0.4. -r, --revision [Optional] Package revision. By default 1 - -v, --version [Optional] Set the Wazuh version should be builded. By default, 4.12.0. + -v, --version [Optional] Set the Wazuh version should be builded. By default, 4.13.0. -h, --help Show this help. ``` \ No newline at end of file diff --git a/build-docker-images/build-images.sh b/build-docker-images/build-images.sh index d0551e48..7d2e9948 100755 --- a/build-docker-images/build-images.sh +++ b/build-docker-images/build-images.sh @@ -1,4 +1,4 @@ -WAZUH_IMAGE_VERSION=4.12.0 +WAZUH_IMAGE_VERSION=4.13.0 WAZUH_VERSION=$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g') WAZUH_TAG_REVISION=1 WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '["]tag_name["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2- | sed -e 's/\.//g') @@ -12,7 +12,7 @@ IMAGE_VERSION=${WAZUH_IMAGE_VERSION} # License (version 2) as published by the FSF - Free Software # Foundation. -WAZUH_IMAGE_VERSION="4.12.0" +WAZUH_IMAGE_VERSION="4.13.0" WAZUH_TAG_REVISION="1" WAZUH_DEV_STAGE="" FILEBEAT_MODULE_VERSION="0.4" diff --git a/build-docker-images/wazuh-dashboard/config/config.sh b/build-docker-images/wazuh-dashboard/config/config.sh index 947cfea2..92dc9c2e 100644 --- a/build-docker-images/wazuh-dashboard/config/config.sh +++ b/build-docker-images/wazuh-dashboard/config/config.sh @@ -9,8 +9,8 @@ export CONFIG_DIR=${INSTALLATION_DIR}/config ## Variables CERT_TOOL=wazuh-certs-tool.sh -PACKAGES_URL=https://packages.wazuh.com/4.12/ -PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.12/ +PACKAGES_URL=https://packages.wazuh.com/4.13/ +PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.13/ ## Check if the cert tool exists in S3 buckets CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}') diff --git a/build-docker-images/wazuh-indexer/config/config.sh b/build-docker-images/wazuh-indexer/config/config.sh index a8aca7f7..94d55d43 100644 --- a/build-docker-images/wazuh-indexer/config/config.sh +++ b/build-docker-images/wazuh-indexer/config/config.sh @@ -22,8 +22,8 @@ export REPO_DIR=/unattended_installer ## Variables CERT_TOOL=wazuh-certs-tool.sh PASSWORD_TOOL=wazuh-passwords-tool.sh -PACKAGES_URL=https://packages.wazuh.com/4.12/ -PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.12/ +PACKAGES_URL=https://packages.wazuh.com/4.13/ +PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.13/ ## Check if the cert tool exists in S3 buckets CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}') diff --git a/indexer-certs-creator/config/entrypoint.sh b/indexer-certs-creator/config/entrypoint.sh index 562783b1..f9529b89 100644 --- a/indexer-certs-creator/config/entrypoint.sh +++ b/indexer-certs-creator/config/entrypoint.sh @@ -8,8 +8,8 @@ ## Variables CERT_TOOL=wazuh-certs-tool.sh PASSWORD_TOOL=wazuh-passwords-tool.sh -PACKAGES_URL=https://packages.wazuh.com/4.12/ -PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.12/ +PACKAGES_URL=https://packages.wazuh.com/4.13/ +PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.13/ ## Check if the cert tool exists in S3 buckets CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}') diff --git a/multi-node/docker-compose.yml b/multi-node/docker-compose.yml index 2d9ad309..bff74cfd 100644 --- a/multi-node/docker-compose.yml +++ b/multi-node/docker-compose.yml @@ -3,7 +3,7 @@ version: '3.7' services: wazuh.master: - image: wazuh/wazuh-manager:4.12.0 + image: wazuh/wazuh-manager:4.13.0 hostname: wazuh.master restart: always ulimits: @@ -45,7 +45,7 @@ services: - ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf wazuh.worker: - image: wazuh/wazuh-manager:4.12.0 + image: wazuh/wazuh-manager:4.13.0 hostname: wazuh.worker restart: always ulimits: @@ -81,7 +81,7 @@ services: - ./config/wazuh_cluster/wazuh_worker.conf:/wazuh-config-mount/etc/ossec.conf wazuh1.indexer: - image: wazuh/wazuh-indexer:4.12.0 + image: wazuh/wazuh-indexer:4.13.0 hostname: wazuh1.indexer restart: always ports: @@ -107,7 +107,7 @@ services: - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml wazuh2.indexer: - image: wazuh/wazuh-indexer:4.12.0 + image: wazuh/wazuh-indexer:4.13.0 hostname: wazuh2.indexer restart: always environment: @@ -129,7 +129,7 @@ services: - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml wazuh3.indexer: - image: wazuh/wazuh-indexer:4.12.0 + image: wazuh/wazuh-indexer:4.13.0 hostname: wazuh3.indexer restart: always environment: @@ -151,7 +151,7 @@ services: - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml wazuh.dashboard: - image: wazuh/wazuh-dashboard:4.12.0 + image: wazuh/wazuh-dashboard:4.13.0 hostname: wazuh.dashboard restart: always ports: diff --git a/single-node/docker-compose.yml b/single-node/docker-compose.yml index bdcc695c..18befd60 100644 --- a/single-node/docker-compose.yml +++ b/single-node/docker-compose.yml @@ -3,7 +3,7 @@ version: '3.7' services: wazuh.manager: - image: wazuh/wazuh-manager:4.12.0 + image: wazuh/wazuh-manager:4.13.0 hostname: wazuh.manager restart: always ulimits: @@ -46,7 +46,7 @@ services: - ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf wazuh.indexer: - image: wazuh/wazuh-indexer:4.12.0 + image: wazuh/wazuh-indexer:4.13.0 hostname: wazuh.indexer restart: always ports: @@ -71,7 +71,7 @@ services: - ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml wazuh.dashboard: - image: wazuh/wazuh-dashboard:4.12.0 + image: wazuh/wazuh-dashboard:4.13.0 hostname: wazuh.dashboard restart: always ports: From 7f08f4cbffb1944728f2425ee460a826c338e4f5 Mon Sep 17 00:00:00 2001 From: vcerenu Date: Tue, 11 Mar 2025 15:07:14 -0300 Subject: [PATCH 02/11] Modify wazuh-keystore use --- .../wazuh-manager/config/etc/cont-init.d/2-manager | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build-docker-images/wazuh-manager/config/etc/cont-init.d/2-manager b/build-docker-images/wazuh-manager/config/etc/cont-init.d/2-manager index 0bd90fd6..218b34f0 100644 --- a/build-docker-images/wazuh-manager/config/etc/cont-init.d/2-manager +++ b/build-docker-images/wazuh-manager/config/etc/cont-init.d/2-manager @@ -115,8 +115,8 @@ function_entrypoint_scripts() { function_configure_vulnerability_detection() { if [ "$INDEXER_PASSWORD" != "" ]; then >&2 echo "Configuring password." - /var/ossec/bin/wazuh-keystore -f indexer -k username -v $INDEXER_USERNAME - /var/ossec/bin/wazuh-keystore -f indexer -k password -v $INDEXER_PASSWORD + echo '$INDEXER_USERNAME' | /var/ossec/bin/wazuh-keystore -f indexer -k username + echo '$INDEXER_PASSWORD' | /var/ossec/bin/wazuh-keystore -f indexer -k password fi } From 87a3ccd3ee3de17b65e2ad40703485ce38208c1b Mon Sep 17 00:00:00 2001 From: vcerenu Date: Tue, 11 Mar 2025 15:08:41 -0300 Subject: [PATCH 03/11] Add changelog --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 201605b2..caddbbd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,8 @@ All notable changes to this project will be documented in this file. ### Changed -- None +- Modify wazuh-keystore use ([#1750](https://github.com/wazuh/wazuh-docker/pull/1750)) \- (wazuh-keystore) + ### Fixed From 1186c6f9d6f169363c8ab7a0564ed196db7d7e8d Mon Sep 17 00:00:00 2001 From: vcerenu Date: Tue, 11 Mar 2025 15:31:31 -0300 Subject: [PATCH 04/11] Modify wazuh-keystore use --- .../wazuh-manager/config/etc/cont-init.d/2-manager | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build-docker-images/wazuh-manager/config/etc/cont-init.d/2-manager b/build-docker-images/wazuh-manager/config/etc/cont-init.d/2-manager index 218b34f0..ff3e1fdd 100644 --- a/build-docker-images/wazuh-manager/config/etc/cont-init.d/2-manager +++ b/build-docker-images/wazuh-manager/config/etc/cont-init.d/2-manager @@ -115,8 +115,8 @@ function_entrypoint_scripts() { function_configure_vulnerability_detection() { if [ "$INDEXER_PASSWORD" != "" ]; then >&2 echo "Configuring password." - echo '$INDEXER_USERNAME' | /var/ossec/bin/wazuh-keystore -f indexer -k username - echo '$INDEXER_PASSWORD' | /var/ossec/bin/wazuh-keystore -f indexer -k password + echo "$INDEXER_USERNAME" | /var/ossec/bin/wazuh-keystore -f indexer -k username + echo "$INDEXER_PASSWORD" | /var/ossec/bin/wazuh-keystore -f indexer -k password fi } From c1565a55533187adb7043852908e819d3aeb243d Mon Sep 17 00:00:00 2001 From: Jesus Garcia Date: Tue, 18 Mar 2025 11:13:03 -0500 Subject: [PATCH 05/11] Remove 'stable' branch ocurrencies --- .github/workflows/trivy-dashboard.yml | 3 +-- .github/workflows/trivy-indexer.yml | 3 +-- .github/workflows/trivy-manager.yml | 3 +-- CHANGELOG.md | 3 +-- README.md | 3 +-- 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/.github/workflows/trivy-dashboard.yml b/.github/workflows/trivy-dashboard.yml index 4150fa6f..5239d93c 100644 --- a/.github/workflows/trivy-dashboard.yml +++ b/.github/workflows/trivy-dashboard.yml @@ -11,8 +11,7 @@ on: - published pull_request: branches: - - master - - stable + - main schedule: - cron: '34 2 * * 1' workflow_dispatch: diff --git a/.github/workflows/trivy-indexer.yml b/.github/workflows/trivy-indexer.yml index fe41399e..6f69f206 100644 --- a/.github/workflows/trivy-indexer.yml +++ b/.github/workflows/trivy-indexer.yml @@ -11,8 +11,7 @@ on: - published pull_request: branches: - - master - - stable + - main schedule: - cron: '34 2 * * 1' workflow_dispatch: diff --git a/.github/workflows/trivy-manager.yml b/.github/workflows/trivy-manager.yml index 1c8308b3..da75bcc7 100644 --- a/.github/workflows/trivy-manager.yml +++ b/.github/workflows/trivy-manager.yml @@ -11,8 +11,7 @@ on: - published pull_request: branches: - - master - - stable + - main schedule: - cron: '34 2 * * 1' workflow_dispatch: diff --git a/CHANGELOG.md b/CHANGELOG.md index caddbbd9..0e955268 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,14 +11,13 @@ All notable changes to this project will be documented in this file. - Modify wazuh-keystore use ([#1750](https://github.com/wazuh/wazuh-docker/pull/1750)) \- (wazuh-keystore) - ### Fixed - None ### Deleted -- None +- Remove 'stable' branch ocurrencies ([#1757](https://github.com/wazuh/wazuh-docker/pull/1757)) ## [4.12.0] diff --git a/README.md b/README.md index 66d8d9f3..c7c3f0b2 100644 --- a/README.md +++ b/README.md @@ -171,8 +171,7 @@ WAZUH_MONITORING_REPLICAS=0 ## ## Branches -* `master` branch contains the latest code, be aware of possible bugs on this branch. -* `stable` branch corresponds to the last Wazuh stable version. +* `main` branch contains the latest code, be aware of possible bugs on this branch. ## Compatibility Matrix From 51d3d7a946d435e633afea7437673bed32fcbdd2 Mon Sep 17 00:00:00 2001 From: Jesus Garcia Date: Tue, 25 Mar 2025 12:04:22 -0500 Subject: [PATCH 06/11] Remove default docker reference version from workflow --- .github/workflows/Procedure_push_docker_images.yml | 2 -- CHANGELOG.md | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/Procedure_push_docker_images.yml b/.github/workflows/Procedure_push_docker_images.yml index e0cf78af..eccff387 100644 --- a/.github/workflows/Procedure_push_docker_images.yml +++ b/.github/workflows/Procedure_push_docker_images.yml @@ -10,7 +10,6 @@ on: required: true docker_reference: description: 'wazuh-docker reference' - default: 'v4.13.0' required: true products: description: 'Comma-separated list of the image names to build and push' @@ -47,7 +46,6 @@ on: type: string docker_reference: description: 'wazuh-docker reference' - default: 'v4.13.0' required: false type: string products: diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e955268..91268c27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ All notable changes to this project will be documented in this file. ### Deleted +- Remove default docker reference version from workflow ([#1761](https://github.com/wazuh/wazuh-docker/pull/1761)) - Remove 'stable' branch ocurrencies ([#1757](https://github.com/wazuh/wazuh-docker/pull/1757)) ## [4.12.0] From 9b2f667a8e526c60967b8043dcafdebba679a901 Mon Sep 17 00:00:00 2001 From: c-bordon Date: Tue, 15 Apr 2025 12:05:28 -0300 Subject: [PATCH 07/11] Added repository_bumper script --- .gitignore | 3 +- tools/repository_bumper.sh | 145 +++++++++++++++++++++++++++++++++++++ 2 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 tools/repository_bumper.sh diff --git a/.gitignore b/.gitignore index 6d7fadef..31bc423a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ single-node/config/wazuh_indexer_ssl_certs/*.pem single-node/config/wazuh_indexer_ssl_certs/*.key multi-node/config/wazuh_indexer_ssl_certs/*.pem -multi-node/config/wazuh_indexer_ssl_certs/*.key \ No newline at end of file +multi-node/config/wazuh_indexer_ssl_certs/*.key +*.log \ No newline at end of file diff --git a/tools/repository_bumper.sh b/tools/repository_bumper.sh new file mode 100644 index 00000000..ea8b938f --- /dev/null +++ b/tools/repository_bumper.sh @@ -0,0 +1,145 @@ +#!/bin/bash + +# This script is used to update the version of a repository in the specified files. +# It takes a version number as an argument and updates the version in the specified files. +# Usage: ./repository_bumper.sh + +# Global variables +DIR=$(dirname "$(pwd)") +LOG_FILE="${DIR}/tools/repository_bumper_$(date +"%Y-%m-%d_%H-%M-%S-%3N").log" +VERSION="" +STAGE="" +FILES_EDITED=() + +get_old_version_and_stage() { + local VERSION_FILE="../VERSION.json" + + OLD_VERSION=$(jq -r '.version' "${VERSION_FILE}") + OLD_STAGE=$(jq -r '.stage' "${VERSION_FILE}") + echo "Old version: ${OLD_VERSION}" | tee -a "${LOG_FILE}" + echo "Old stage: ${OLD_STAGE}" | tee -a "${LOG_FILE}" +} + +grep_command() { + # This function is used to search for a specific string in the specified directory. + # It takes two arguments: the string to search for and the directory to search in. + # Usage: grep_command + eval grep -Rl "${1}" "${2}" --exclude-dir=".git" --exclude="repository_bumper_*.log" "${3}" +} + +update_version_in_files() { + + local OLD_MAYOR="$(echo "${OLD_VERSION}" | cut -d '.' -f 1)" + local OLD_MINOR="$(echo "${OLD_VERSION}" | cut -d '.' -f 2)" + local OLD_PATCH="$(echo "${OLD_VERSION}" | cut -d '.' -f 3)" + local NEW_MAYOR="$(echo "${VERSION}" | cut -d '.' -f 1)" + local NEW_MINOR="$(echo "${VERSION}" | cut -d '.' -f 2)" + local NEW_PATCH="$(echo "${VERSION}" | cut -d '.' -f 3)" + m_m_p_files=( $(grep_command "${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}" "${DIR}") ) + for file in "${m_m_p_files[@]}"; do + if [[ "${file}" == *"CHANGELOG.md"* ]]; then + sed -i "/^All notable changes to this project will be documented in this file.$/a \\\n## [${VERSION}]\\n\\n### Added\\n\\n- None\\n\\n### Changed\\n\\n- None\\n\\n### Fixed\\n\\n- None\\n\\n### Deleted\\n\\n- None" "${file}" + elif [[ "${file}" == *"README.md"* ]]; then + sed -i "/^| v${OLD_VERSION} | | |/i | v${VERSION} | | |" "${file}" + sed -i "/^| v${OLD_VERSION} | | |/!s/${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}/${NEW_MAYOR}\.${NEW_MINOR}\.${NEW_PATCH}/g" "${file}" + else + sed -i "s/${OLD_VERSION}/${VERSION}/g" "${file}" + fi + if [[ $(git diff --name-only "${file}") ]]; then + FILES_EDITED+=("${file}") + fi + done + m_m_files=( $(grep_command "${OLD_MAYOR}\.${OLD_MINOR}" "${DIR}" --exclude="CHANGELOG.md") ) + for file in "${m_m_files[@]}"; do + sed -i "/^${OLD_MAYOR}\.${OLD_MINOR}./!s/\\b${OLD_MAYOR}\.${OLD_MINOR}\b/${NEW_MAYOR}\.${NEW_MINOR}/g" "${file}" + if [[ $(git diff --name-only "${file}") ]]; then + FILES_EDITED+=("${file}") + fi + done + m_x_files=( $(grep_command "${OLD_MAYOR}\.x" "${DIR}" --exclude="CHANGELOG.md") ) + for file in "${m_x_files[@]}"; do + sed -i "s/\b${OLD_MAYOR}\.x\b/${NEW_MAYOR}\.x/g" "${file}" + if [[ $(git diff --name-only "${file}") ]]; then + FILES_EDITED+=("${file}") + fi + done + mmp_files=( $(grep_command "${OLD_MAYOR}${OLD_MINOR}${OLD_PATCH}" "${DIR}" --exclude="CHANGELOG.md") ) + for file in "${mmp_files[@]}"; do + sed -i "s/\b${OLD_MAYOR}${OLD_MINOR}${OLD_PATCH}\b/${NEW_MAYOR}${NEW_MINOR}${NEW_PATCH}/g" "${file}" + if [[ $(git diff --name-only "${file}") ]]; then + FILES_EDITED+=("${file}") + fi + done +} + +update_stage_in_files() { + local OLD_STAGE="$(echo "${OLD_STAGE}")" + files=( $(grep_command "${OLD_STAGE}" "${DIR}") ) + for file in "${files[@]}"; do + sed -i "s/${OLD_STAGE}/${STAGE}/g" "${file}" + if [[ $(git diff --name-only "${file}") ]]; then + FILES_EDITED+=("${file}") + fi + done +} + +main() { + + echo "Starting repository version bumping process..." | tee -a "${LOG_FILE}" + echo "Log file: ${LOG_FILE}" + # Parse arguments + while [[ $# -gt 0 ]]; do + case $1 in + --version) + VERSION="$2" + shift 2 + ;; + --stage) + STAGE="$2" + shift 2 + ;; + *) + echo "Unknown argument: $1" + exit 1 + ;; + esac + done + + # Validate arguments + if [[ -z "$VERSION" ]]; then + echo "Error: --version argument is required." | tee -a "${LOG_FILE}" + exit 1 + fi + + if [[ -z "$STAGE" ]]; then + echo "Error: --stage argument is required." | tee -a "${LOG_FILE}" + exit 1 + fi + + # Get old version and stage + get_old_version_and_stage + + if [[ "$OLD_VERSION" == "$VERSION" && "$OLD_STAGE" == "$STAGE" ]]; then + echo "Version and stage are already up to date." | tee -a "${LOG_FILE}" + echo "No changes needed." | tee -a "${LOG_FILE}" + exit 0 + fi + if [[ "$OLD_VERSION" != "$VERSION" ]]; then + echo "Updating version from $OLD_VERSION to $VERSION" | tee -a "${LOG_FILE}" + update_version_in_files "$VERSION" + fi + if [[ "$OLD_STAGE" != "$STAGE" ]]; then + echo "Updating stage from $OLD_STAGE to $STAGE" | tee -a "${LOG_FILE}" + update_stage_in_files "$STAGE" + fi + + echo "The following files were edited:" | tee -a "${LOG_FILE}" + for file in $(printf "%s\n" "${FILES_EDITED[@]}" | sort -u); do + echo "${file}" | tee -a "${LOG_FILE}" + done + + echo "Version and stage updated successfully." | tee -a "${LOG_FILE}" +} + +# Call the main method with all arguments +main "$@" From 1445bdc4209ed9a794f04a77e7ed727e0bf41178 Mon Sep 17 00:00:00 2001 From: c-bordon Date: Tue, 15 Apr 2025 14:21:49 -0300 Subject: [PATCH 08/11] Removed mmp version replacement --- tools/repository_bumper.sh | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/tools/repository_bumper.sh b/tools/repository_bumper.sh index ea8b938f..92513718 100644 --- a/tools/repository_bumper.sh +++ b/tools/repository_bumper.sh @@ -43,7 +43,7 @@ update_version_in_files() { sed -i "/^| v${OLD_VERSION} | | |/i | v${VERSION} | | |" "${file}" sed -i "/^| v${OLD_VERSION} | | |/!s/${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}/${NEW_MAYOR}\.${NEW_MINOR}\.${NEW_PATCH}/g" "${file}" else - sed -i "s/${OLD_VERSION}/${VERSION}/g" "${file}" + sed -i "s/${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}/${NEW_MAYOR}\.${NEW_MINOR}\.${NEW_PATCH}/g" "${file}" fi if [[ $(git diff --name-only "${file}") ]]; then FILES_EDITED+=("${file}") @@ -63,18 +63,11 @@ update_version_in_files() { FILES_EDITED+=("${file}") fi done - mmp_files=( $(grep_command "${OLD_MAYOR}${OLD_MINOR}${OLD_PATCH}" "${DIR}" --exclude="CHANGELOG.md") ) - for file in "${mmp_files[@]}"; do - sed -i "s/\b${OLD_MAYOR}${OLD_MINOR}${OLD_PATCH}\b/${NEW_MAYOR}${NEW_MINOR}${NEW_PATCH}/g" "${file}" - if [[ $(git diff --name-only "${file}") ]]; then - FILES_EDITED+=("${file}") - fi - done } update_stage_in_files() { local OLD_STAGE="$(echo "${OLD_STAGE}")" - files=( $(grep_command "${OLD_STAGE}" "${DIR}") ) + files=( $(grep_command "${OLD_STAGE}" "${DIR}" --exclude="README.md") ) for file in "${files[@]}"; do sed -i "s/${OLD_STAGE}/${STAGE}/g" "${file}" if [[ $(git diff --name-only "${file}") ]]; then From e161490f4d17b01b6c25dbe1b5f98c7512eae495 Mon Sep 17 00:00:00 2001 From: c-bordon Date: Tue, 15 Apr 2025 14:37:50 -0300 Subject: [PATCH 09/11] Updated changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5acd3b90..f2b141d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. ### Added -- None +- Added repository_bumper script. ([#1781](https://github.com/wazuh/wazuh-docker/pull/1781)) ### Changed From 2e22add312cfe6f5a29bff57461d278101b94a5b Mon Sep 17 00:00:00 2001 From: c-bordon Date: Tue, 15 Apr 2025 16:37:41 -0300 Subject: [PATCH 10/11] Removed README exception --- README.md | 45 +------------------------------------- tools/repository_bumper.sh | 22 ++++++++++++++----- 2 files changed, 18 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 5fcaf40c..2071f81f 100644 --- a/README.md +++ b/README.md @@ -177,50 +177,7 @@ WAZUH_MONITORING_REPLICAS=0 ## | Wazuh version | ODFE | XPACK | |---------------|---------|--------| -| v4.13.0 | | | -| v4.12.1 | | | -| v4.12.0 | | | -| v4.11.2 | | | -| v4.11.1 | | | -| v4.11.0 | | | -| v4.10.1 | | | -| v4.10.0 | | | -| v4.9.2 | | | -| v4.9.1 | | | -| v4.9.0 | | | -| v4.8.2 | | | -| v4.8.1 | | | -| v4.8.0 | | | -| v4.7.5 | | | -| v4.7.4 | | | -| v4.7.3 | | | -| v4.7.2 | | | -| v4.7.1 | | | -| v4.7.0 | | | -| v4.6.0 | | | -| v4.5.4 | | | -| v4.5.3 | | | -| v4.5.2 | | | -| v4.5.1 | | | -| v4.5.0 | | | -| v4.4.5 | | | -| v4.4.4 | | | -| v4.4.3 | | | -| v4.4.2 | | | -| v4.4.1 | | | -| v4.4.0 | | | -| v4.3.11 | | | -| v4.3.10 | | | -| v4.3.9 | | | -| v4.3.8 | | | -| v4.3.7 | | | -| v4.3.6 | | | -| v4.3.5 | | | -| v4.3.4 | | | -| v4.3.3 | | | -| v4.3.2 | | | -| v4.3.1 | | | -| v4.3.0 | | | +| v4.3.0+ | N/A | N/A | | v4.2.7 | 1.13.2 | 7.11.2 | | v4.2.6 | 1.13.2 | 7.11.2 | | v4.2.5 | 1.13.2 | 7.11.2 | diff --git a/tools/repository_bumper.sh b/tools/repository_bumper.sh index 92513718..48795bfe 100644 --- a/tools/repository_bumper.sh +++ b/tools/repository_bumper.sh @@ -12,7 +12,7 @@ STAGE="" FILES_EDITED=() get_old_version_and_stage() { - local VERSION_FILE="../VERSION.json" + local VERSION_FILE="${DIR}/VERSION.json" OLD_VERSION=$(jq -r '.version' "${VERSION_FILE}") OLD_STAGE=$(jq -r '.stage' "${VERSION_FILE}") @@ -38,10 +38,9 @@ update_version_in_files() { m_m_p_files=( $(grep_command "${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}" "${DIR}") ) for file in "${m_m_p_files[@]}"; do if [[ "${file}" == *"CHANGELOG.md"* ]]; then - sed -i "/^All notable changes to this project will be documented in this file.$/a \\\n## [${VERSION}]\\n\\n### Added\\n\\n- None\\n\\n### Changed\\n\\n- None\\n\\n### Fixed\\n\\n- None\\n\\n### Deleted\\n\\n- None" "${file}" - elif [[ "${file}" == *"README.md"* ]]; then - sed -i "/^| v${OLD_VERSION} | | |/i | v${VERSION} | | |" "${file}" - sed -i "/^| v${OLD_VERSION} | | |/!s/${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}/${NEW_MAYOR}\.${NEW_MINOR}\.${NEW_PATCH}/g" "${file}" + if ! sed -i "/^All notable changes to this project will be documented in this file.$/a \\\n## [${VERSION}]\\n\\n### Added\\n\\n- None\\n\\n### Changed\\n\\n- None\\n\\n### Fixed\\n\\n- None\\n\\n### Deleted\\n\\n- None" "${file}"; then + echo "Error: Failed to update CHANGELOG.md" | tee -a "${LOG_FILE}" + fi else sed -i "s/${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}/${NEW_MAYOR}\.${NEW_MINOR}\.${NEW_PATCH}/g" "${file}" fi @@ -109,6 +108,19 @@ main() { exit 1 fi + # Validate if version is in the correct format + if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "Error: Version must be in the format X.Y.Z (e.g., 1.2.3)." | tee -a "${LOG_FILE}" + exit 1 + fi + + # Validate if stage is in the correct format + STAGE=$(echo "$STAGE" | tr '[:upper:]' '[:lower:]') + if ! [[ "$STAGE" =~ ^(alpha[0-9]*|beta[0-9]*|rc[0-9]*|stable)$ ]]; then + echo "Error: Stage must be one of the following examples: alpha1, beta1, rc1, stable." | tee -a "${LOG_FILE}" + exit 1 + fi + # Get old version and stage get_old_version_and_stage From 4b04578cf5b3f0e084e7f47101106e1c676777df Mon Sep 17 00:00:00 2001 From: c-bordon Date: Tue, 22 Apr 2025 12:08:13 -0300 Subject: [PATCH 11/11] Updated major.minor replacement --- tools/repository_bumper.sh | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tools/repository_bumper.sh b/tools/repository_bumper.sh index 48795bfe..8223e54b 100644 --- a/tools/repository_bumper.sh +++ b/tools/repository_bumper.sh @@ -24,7 +24,7 @@ grep_command() { # This function is used to search for a specific string in the specified directory. # It takes two arguments: the string to search for and the directory to search in. # Usage: grep_command - eval grep -Rl "${1}" "${2}" --exclude-dir=".git" --exclude="repository_bumper_*.log" "${3}" + eval grep -Rl "${1}" "${2}" --exclude-dir=".git" --exclude="repository_bumper_*.log" --exclude="CHANGELOG.md" "${3}" } update_version_in_files() { @@ -37,31 +37,31 @@ update_version_in_files() { local NEW_PATCH="$(echo "${VERSION}" | cut -d '.' -f 3)" m_m_p_files=( $(grep_command "${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}" "${DIR}") ) for file in "${m_m_p_files[@]}"; do - if [[ "${file}" == *"CHANGELOG.md"* ]]; then - if ! sed -i "/^All notable changes to this project will be documented in this file.$/a \\\n## [${VERSION}]\\n\\n### Added\\n\\n- None\\n\\n### Changed\\n\\n- None\\n\\n### Fixed\\n\\n- None\\n\\n### Deleted\\n\\n- None" "${file}"; then - echo "Error: Failed to update CHANGELOG.md" | tee -a "${LOG_FILE}" - fi - else - sed -i "s/${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}/${NEW_MAYOR}\.${NEW_MINOR}\.${NEW_PATCH}/g" "${file}" - fi + sed -i "s/\bv${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}\b/v${NEW_MAYOR}\.${NEW_MINOR}\.${NEW_PATCH}/g; s/\b${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}/${NEW_MAYOR}\.${NEW_MINOR}\.${NEW_PATCH}/g" "${file}" if [[ $(git diff --name-only "${file}") ]]; then FILES_EDITED+=("${file}") fi done - m_m_files=( $(grep_command "${OLD_MAYOR}\.${OLD_MINOR}" "${DIR}" --exclude="CHANGELOG.md") ) + m_m_files=( $(grep_command "${OLD_MAYOR}\.${OLD_MINOR}" "${DIR}") ) for file in "${m_m_files[@]}"; do - sed -i "/^${OLD_MAYOR}\.${OLD_MINOR}./!s/\\b${OLD_MAYOR}\.${OLD_MINOR}\b/${NEW_MAYOR}\.${NEW_MINOR}/g" "${file}" + sed -i -E "/[0-9]+\.[0-9]+\.[0-9]+/! s/(^|[^0-9.])(${OLD_MAYOR}\.${OLD_MINOR})([^0-9.]|$)/\1${NEW_MAYOR}.${NEW_MINOR}\3/g" "$file" if [[ $(git diff --name-only "${file}") ]]; then FILES_EDITED+=("${file}") fi done - m_x_files=( $(grep_command "${OLD_MAYOR}\.x" "${DIR}" --exclude="CHANGELOG.md") ) + m_x_files=( $(grep_command "${OLD_MAYOR}\.x" "${DIR}") ) for file in "${m_x_files[@]}"; do sed -i "s/\b${OLD_MAYOR}\.x\b/${NEW_MAYOR}\.x/g" "${file}" if [[ $(git diff --name-only "${file}") ]]; then FILES_EDITED+=("${file}") fi done + if ! sed -i "/^All notable changes to this project will be documented in this file.$/a \\\n## [${VERSION}]\\n\\n### Added\\n\\n- None\\n\\n### Changed\\n\\n- None\\n\\n### Fixed\\n\\n- None\\n\\n### Deleted\\n\\n- None" "${DIR}/CHANGELOG.md"; then + echo "Error: Failed to update CHANGELOG.md" | tee -a "${LOG_FILE}" + fi + if [[ $(git diff --name-only "${DIR}/CHANGELOG.md") ]]; then + FILES_EDITED+=("${DIR}/CHANGELOG.md") + fi } update_stage_in_files() {