🐛 Corrige edición de CHANGELOG y nuevas versiones

This commit is contained in:
Manuel Cillero 2025-08-06 01:54:47 +02:00
parent fe048f44fa
commit 4288902540
3 changed files with 27 additions and 46 deletions

View file

@ -13,33 +13,13 @@ push = true
# Publica en crates.io (puedes desactivarlo para pruebas) # Publica en crates.io (puedes desactivarlo para pruebas)
publish = true publish = true
# Actualiza todos los dependientes internos
update-dependencies = true
# Solo permite publicar estos crates (los que forman parte del workspace) # Solo permite publicar estos crates (los que forman parte del workspace)
allow-branch = ["main"] allow-branch = ["main"]
consolidate-commits = false consolidate-commits = false
consolidate-pushes = true
# Mensaje personalizado para el commit de versión # Mensaje personalizado para el commit de versión
pre-release-commit-message = "🔖 Prepara publicación de {{crate_name}} {{version}}" 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 = [ 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"
] ]

View file

@ -35,20 +35,20 @@ cd "$(dirname "$0")/.." || exit 1
# Determina ruta del archivo y ámbito de los archivos afectados para el crate # Determina ruta del archivo y ámbito de los archivos afectados para el crate
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
case "$CRATE" in case "$CRATE" in
pagetop) pagetop-build)
CHANGELOG_FILE="CHANGELOG.md" CHANGELOG_FILE="helpers/pagetop-build/CHANGELOG.md"
PATH_FLAGS=( PATH_FLAGS=(--include-path "helpers/pagetop-build/**/*")
--exclude-path "helpers/pagetop-macros/**/*"
--exclude-path "helpers/pagetop-build/**/*"
)
;; ;;
pagetop-macros) pagetop-macros)
CHANGELOG_FILE="helpers/pagetop-macros/CHANGELOG.md" CHANGELOG_FILE="helpers/pagetop-macros/CHANGELOG.md"
PATH_FLAGS=(--include-path "helpers/pagetop-macros/**/*") PATH_FLAGS=(--include-path "helpers/pagetop-macros/**/*")
;; ;;
pagetop-build) pagetop)
CHANGELOG_FILE="helpers/pagetop-build/CHANGELOG.md" CHANGELOG_FILE="CHANGELOG.md"
PATH_FLAGS=(--include-path "helpers/pagetop-build/**/*") PATH_FLAGS=(
--exclude-path "helpers/pagetop-build/**/*"
--exclude-path "helpers/pagetop-macros/**/*"
)
;; ;;
*) *)
echo "Error: unsupported crate '$CRATE'" >&2 echo "Error: unsupported crate '$CRATE'" >&2
@ -56,23 +56,24 @@ case "$CRATE" in
;; ;;
esac 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 # 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'" echo "CHANGELOG generated at '$CHANGELOG_FILE'"
# Pregunta por la revisión del archivo de cambios generado # Pregunta por la revisión del archivo de cambios generado

View file

@ -40,9 +40,9 @@ cd "$(dirname "$0")/.." || exit 1
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
if [[ "$EXECUTE" != "--execute" ]]; then if [[ "$EXECUTE" != "--execute" ]]; then
echo "Running dry-run (default mode). Add --execute to publish" 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 else
echo "Releasing $CRATE ($LEVEL)…" 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." echo "Release completed."
fi fi