From 42889025407d21e80e0b955eabc3f0b8751bdc0d Mon Sep 17 00:00:00 2001 From: Manuel Cillero Date: Wed, 6 Aug 2025 01:54:47 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Corrige=20edici=C3=B3n=20de=20CH?= =?UTF-8?q?ANGELOG=20y=20nuevas=20versiones?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cargo/release.toml | 22 +-------------------- tools/changelog.sh | 47 +++++++++++++++++++++++---------------------- tools/release.sh | 4 ++-- 3 files changed, 27 insertions(+), 46 deletions(-) diff --git a/.cargo/release.toml b/.cargo/release.toml index 9c07379..b0ab938 100644 --- a/.cargo/release.toml +++ b/.cargo/release.toml @@ -13,33 +13,13 @@ push = true # Publica en crates.io (puedes desactivarlo para pruebas) publish = true -# Actualiza todos los dependientes internos -update-dependencies = true - # Solo permite publicar estos crates (los que forman parte del workspace) allow-branch = ["main"] consolidate-commits = false -consolidate-pushes = true # Mensaje personalizado para el commit de versión pre-release-commit-message = "🔖 Prepara publicación de {{crate_name}} {{version}}" -[workspace] -# Lista de crates que se pueden publicar dentro del workspace -# Puedes añadir extensiones más adelante -allow-publish = [ - "pagetop", - "pagetop-build", - "pagetop-macros" -] - -# Opcional: ordena la publicación de dependencias internas -publish-order = [ - "pagetop-build", - "pagetop-macros", - "pagetop" -] - pre-release-hook = [ - "./tools/changelog.sh", "{{crate_name}}", "{{version}}", "--stage" + "sh", "-c", "ROOT=$(git rev-parse --show-toplevel) && \"$ROOT/tools/changelog.sh\" {{crate_name}} {{version}} --stage" ] diff --git a/tools/changelog.sh b/tools/changelog.sh index 19cbed9..59f0469 100755 --- a/tools/changelog.sh +++ b/tools/changelog.sh @@ -35,20 +35,20 @@ cd "$(dirname "$0")/.." || exit 1 # Determina ruta del archivo y ámbito de los archivos afectados para el crate # ------------------------------------------------------------------------------ case "$CRATE" in - pagetop) - CHANGELOG_FILE="CHANGELOG.md" - PATH_FLAGS=( - --exclude-path "helpers/pagetop-macros/**/*" - --exclude-path "helpers/pagetop-build/**/*" - ) + pagetop-build) + CHANGELOG_FILE="helpers/pagetop-build/CHANGELOG.md" + PATH_FLAGS=(--include-path "helpers/pagetop-build/**/*") ;; pagetop-macros) CHANGELOG_FILE="helpers/pagetop-macros/CHANGELOG.md" PATH_FLAGS=(--include-path "helpers/pagetop-macros/**/*") ;; - pagetop-build) - CHANGELOG_FILE="helpers/pagetop-build/CHANGELOG.md" - PATH_FLAGS=(--include-path "helpers/pagetop-build/**/*") + pagetop) + CHANGELOG_FILE="CHANGELOG.md" + PATH_FLAGS=( + --exclude-path "helpers/pagetop-build/**/*" + --exclude-path "helpers/pagetop-macros/**/*" + ) ;; *) echo "Error: unsupported crate '$CRATE'" >&2 @@ -56,23 +56,24 @@ case "$CRATE" in ;; esac -# ------------------------------------------------------------------------------ -# Obtiene la última etiqueta del crate -# ------------------------------------------------------------------------------ -LAST_TAG="$(git tag --list "${CRATE}-v*" --sort=-v:refname | head -n 1)" - -if [[ -n "$LAST_TAG" ]]; then - echo "Generating CHANGELOG for '$CRATE' from last tag '$LAST_TAG'" - CLIFF_ARGS=(--unreleased --tag "$VERSION") -else - echo "Generating initial CHANGELOG for '$CRATE'" - CLIFF_ARGS=(--tag "$VERSION") -fi - # ------------------------------------------------------------------------------ # Genera el CHANGELOG para el crate correspondiente # ------------------------------------------------------------------------------ -git-cliff --config "$CLIFF_CONFIG" "${PATH_FLAGS[@]}" "${CLIFF_ARGS[@]}" -o "$CHANGELOG_FILE" -u +COMMON_ARGS=( + --config "$CLIFF_CONFIG" + "${PATH_FLAGS[@]}" + --tag-pattern "^${CRATE}-v" + --tag "$VERSION" + -o "$CHANGELOG_FILE" +) +LAST_TAG="$(git tag --list "${CRATE}-v*" --sort=-v:refname | head -n 1)" +if [[ -n "$LAST_TAG" ]]; then + echo "Generating CHANGELOG for '$CRATE' from tag '$LAST_TAG'" + git-cliff --unreleased "${COMMON_ARGS[@]}" +else + echo "Generating initial CHANGELOG for '$CRATE'" + git-cliff "${COMMON_ARGS[@]}" +fi echo "CHANGELOG generated at '$CHANGELOG_FILE'" # Pregunta por la revisión del archivo de cambios generado diff --git a/tools/release.sh b/tools/release.sh index 082869f..bb09241 100755 --- a/tools/release.sh +++ b/tools/release.sh @@ -40,9 +40,9 @@ cd "$(dirname "$0")/.." || exit 1 # ------------------------------------------------------------------------------ if [[ "$EXECUTE" != "--execute" ]]; then echo "Running dry-run (default mode). Add --execute to publish" - CARGO_RELEASE_CONFIG="$CONFIG" cargo release --package "$CRATE" "$LEVEL" + cargo release --config "$CONFIG" --package "$CRATE" "$LEVEL" else echo "Releasing $CRATE ($LEVEL)…" - CARGO_RELEASE_CONFIG="$CONFIG" cargo release --package "$CRATE" "$LEVEL" --execute + cargo release --config "$CONFIG" --package "$CRATE" "$LEVEL" --execute echo "Release completed." fi