diff --git a/content/shared/v3-core-enterprise-release-notes/_index.md b/content/shared/v3-core-enterprise-release-notes/_index.md index ff46e3d03..f3f59bf05 100644 --- a/content/shared/v3-core-enterprise-release-notes/_index.md +++ b/content/shared/v3-core-enterprise-release-notes/_index.md @@ -5,6 +5,56 @@ > All updates to Core are automatically included in Enterprise. > The Enterprise sections below only list updates exclusive to Enterprise. +## v3.2.0 {date="2025-06-25"} +**Core**: revision 1ca3168bee + +**Enterprise**: revision 1ca3168bee + +### Core + +#### Features + +- **Hard delete for databases and tables**: Permanently delete databases and tables, enabling complete removal of data structures for compliance and storage management ([#26553](https://github.com/influxdata/influxdb/pull/26553)) +- **AWS credentials auto-reload**: Support dynamic reloading of ephemeral AWS credentials from files, improving security and reliability when using AWS services ([#26537](https://github.com/influxdata/influxdb/pull/26537)) +- **Database retention period support**: Add retention period support for databases via CLI commands (`create database` and `update database` commands) and HTTP APIs ([#26520](https://github.com/influxdata/influxdb/pull/26520)) +- **Configurable lookback duration**: Users can specify lookback duration for PersistedFiles buffer, providing better control over query performance ([#26528](https://github.com/influxdata/influxdb/pull/26528)) +- **WAL replay concurrency control**: Add concurrency limits for WAL (Write-Ahead Log) replay to improve startup performance and resource management ([#26483](https://github.com/influxdata/influxdb/pull/26483)) +- **Enhanced write path**: Separate write path executor with unbounded memory for improved write performance ([#26455](https://github.com/influxdata/influxdb/pull/26455)) + +#### Bug Fixes + +- **WAL corruption handling**: Handle corrupt WAL files during replay without panic, improving data recovery and system resilience ([#26556](https://github.com/influxdata/influxdb/pull/26556)) +- **Database naming validation**: Disallow underscores in database names when created via API to ensure consistency ([#26507](https://github.com/influxdata/influxdb/pull/26507)) +- **Object store cleanup**: Automatic intermediate directory cleanup for file object store, preventing storage bloat ([#26480](https://github.com/influxdata/influxdb/pull/26480)) + +#### Additional Updates + +- Track generation 1 duration in catalog for better performance monitoring ([#26508](https://github.com/influxdata/influxdb/pull/26508)) +- Add retention period support to the catalog ([#26479](https://github.com/influxdata/influxdb/pull/26479)) +- Update help text for improved user experience ([#26509](https://github.com/influxdata/influxdb/pull/26509)) + +### Enterprise + +All Core updates are included in Enterprise. Additional Enterprise-specific features and fixes: + +#### Features + +- **License management improvements**: + - New `influxdb3 show license` command to display current license information +- **Table-level retention period support**: Add retention period support for individual tables in addition to database-level retention, providing granular data lifecycle management + - New CLI commands: `create table --retention-period` and `update table --retention-period` + - Set or clear table-specific retention policies independent of database settings +- **Compaction improvements**: + - Address compactor restart issues for better reliability + - Track compacted generation durations in catalog for monitoring + - Disable parquet cache for ingest mode to optimize memory usage + +#### Bug Fixes + +- **Query optimization**: Correctly partition query chunks into generations for improved performance +- **Data integrity**: Don't delete generation 1 files as part of compaction process +- **License handling**: Trim whitespace from license file contents after reading to prevent validation issues + ## v3.1.0 {date="2025-05-29"} **Core**: revision 482dd8aac580c04f37e8713a8fffae89ae8bc264 diff --git a/helper-scripts/generate-release-notes.sh b/helper-scripts/generate-release-notes.sh new file mode 100755 index 000000000..58f34212e --- /dev/null +++ b/helper-scripts/generate-release-notes.sh @@ -0,0 +1,135 @@ +#!/bin/bash + +# Script to generate release notes for InfluxDB v3.x releases +# Usage: ./generate-release-notes.sh + +set -e + +# Default values +REPO_PATH="${3:-/Users/ja/Documents/github/influxdb}" +FROM_VERSION="${1:-v3.1.0}" +TO_VERSION="${2:-v3.2.0}" + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[0;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +echo -e "${BLUE}Generating release notes for ${TO_VERSION}${NC}" +echo -e "Repository: ${REPO_PATH}" +echo -e "From: ${FROM_VERSION} To: ${TO_VERSION}\n" + +# Function to extract PR number from commit message +extract_pr_number() { + echo "$1" | grep -oE '#[0-9]+' | head -1 | sed 's/#//' +} + +# Get the release date +RELEASE_DATE=$(git -C "$REPO_PATH" log -1 --format=%ai "$TO_VERSION" | cut -d' ' -f1) +echo -e "${GREEN}Release Date: ${RELEASE_DATE}${NC}\n" + +# Collect commits by category +echo -e "${YELLOW}Analyzing commits...${NC}" + +# Features +echo -e "\n${GREEN}Features:${NC}" +FEATURES=$(git -C "$REPO_PATH" log --format="%h %s" "${FROM_VERSION}..${TO_VERSION}" | grep -E "^[a-f0-9]+ feat:" | sed 's/^[a-f0-9]* feat: //') + +# Fixes +echo -e "\n${GREEN}Bug Fixes:${NC}" +FIXES=$(git -C "$REPO_PATH" log --format="%h %s" "${FROM_VERSION}..${TO_VERSION}" | grep -E "^[a-f0-9]+ fix:" | sed 's/^[a-f0-9]* fix: //') + +# Breaking changes +echo -e "\n${GREEN}Breaking Changes:${NC}" +BREAKING=$(git -C "$REPO_PATH" log --format="%h %s" "${FROM_VERSION}..${TO_VERSION}" | grep -iE "^[a-f0-9]+ .*(BREAKING|breaking change)" | sed 's/^[a-f0-9]* //') + +# Performance improvements +echo -e "\n${GREEN}Performance:${NC}" +PERF=$(git -C "$REPO_PATH" log --format="%h %s" "${FROM_VERSION}..${TO_VERSION}" | grep -E "^[a-f0-9]+ perf:" | sed 's/^[a-f0-9]* perf: //') + +# Generate markdown output +OUTPUT_FILE="release-notes-${TO_VERSION}.md" +cat > "$OUTPUT_FILE" << EOF +## ${TO_VERSION} {date="${RELEASE_DATE}"} + +### Features + +EOF + +# Add features +if [ -n "$FEATURES" ]; then + while IFS= read -r line; do + PR=$(extract_pr_number "$line") + # Clean up the commit message + CLEAN_LINE=$(echo "$line" | sed -E 's/ \(#[0-9]+\)$//') + if [ -n "$PR" ]; then + echo "- $CLEAN_LINE ([#$PR](https://github.com/influxdata/influxdb/pull/$PR))" >> "$OUTPUT_FILE" + else + echo "- $CLEAN_LINE" >> "$OUTPUT_FILE" + fi + done <<< "$FEATURES" +else + echo "- No new features in this release" >> "$OUTPUT_FILE" +fi + +# Add bug fixes +cat >> "$OUTPUT_FILE" << EOF + +### Bug Fixes + +EOF + +if [ -n "$FIXES" ]; then + while IFS= read -r line; do + PR=$(extract_pr_number "$line") + CLEAN_LINE=$(echo "$line" | sed -E 's/ \(#[0-9]+\)$//') + if [ -n "$PR" ]; then + echo "- $CLEAN_LINE ([#$PR](https://github.com/influxdata/influxdb/pull/$PR))" >> "$OUTPUT_FILE" + else + echo "- $CLEAN_LINE" >> "$OUTPUT_FILE" + fi + done <<< "$FIXES" +else + echo "- No bug fixes in this release" >> "$OUTPUT_FILE" +fi + +# Add breaking changes if any +if [ -n "$BREAKING" ]; then + cat >> "$OUTPUT_FILE" << EOF + +### Breaking Changes + +EOF + while IFS= read -r line; do + PR=$(extract_pr_number "$line") + CLEAN_LINE=$(echo "$line" | sed -E 's/ \(#[0-9]+\)$//') + if [ -n "$PR" ]; then + echo "- $CLEAN_LINE ([#$PR](https://github.com/influxdata/influxdb/pull/$PR))" >> "$OUTPUT_FILE" + else + echo "- $CLEAN_LINE" >> "$OUTPUT_FILE" + fi + done <<< "$BREAKING" +fi + +# Add performance improvements if any +if [ -n "$PERF" ]; then + cat >> "$OUTPUT_FILE" << EOF + +### Performance Improvements + +EOF + while IFS= read -r line; do + PR=$(extract_pr_number "$line") + CLEAN_LINE=$(echo "$line" | sed -E 's/ \(#[0-9]+\)$//') + if [ -n "$PR" ]; then + echo "- $CLEAN_LINE ([#$PR](https://github.com/influxdata/influxdb/pull/$PR))" >> "$OUTPUT_FILE" + else + echo "- $CLEAN_LINE" >> "$OUTPUT_FILE" + fi + done <<< "$PERF" +fi + +echo -e "\n${GREEN}Release notes generated in: ${OUTPUT_FILE}${NC}" +echo -e "${YELLOW}Please review and edit the generated notes before adding to documentation.${NC}" \ No newline at end of file