script with the following improvements:
1. Renamed output formats:
- standard → integrated: All repositories' changes are
integrated together
- core-enterprise → separated: Primary repository
first, then secondary repositories
2. Generalized the separated format:
- Configurable primary repository (by name or index)
- Customizable section labels and headers
- Flexible template system for different products
3. Enhanced configuration system:
- Per-repository PR link settings
- Full template customization for separated format
- Support for configuration files
4. Created example configurations:
- config/influxdb3-core-enterprise.json: For InfluxDB 3
Core/Enterprise releases
- config/influxdb-v2.json: For InfluxDB v2 releases
- config/influxdb3-clustered.json: For Clustered
(Kubernetes operator) releases
5. Updated documentation:
- Explained both output formats clearly
- Added configuration options documentation
- Included example configurations usage
The script now provides a flexible system that can handle
various release note formats for different InfluxData
products while maintaining the specific requirements like
excluding PR links for influxdb_pro but including them
for influxdb.
|
||
|---|---|---|
| .. | ||
| config | ||
| lib | ||
| README.md | ||
| core-enterprise-config.json | ||
| generate-release-notes.js | ||
| generate-release-notes.md | ||
| update-product-version.sh | ||
| validate-tags.js | ||
README.md
Common Helper Scripts
This directory contains scripts that are shared across all InfluxDB documentation products.
Scripts
generate-release-notes.sh
Generates release notes by analyzing git commits between two versions across multiple repositories.
Usage:
./generate-release-notes.sh [options] <from_version> <to_version> <primary_repo> [additional_repos...]
Options:
--no-fetch- Skip fetching latest commits from remote--pull- Pull latest changes (use with caution)
Example:
# Generate release notes for v3.2.0
./generate-release-notes.sh v3.1.0 v3.2.0 ~/repos/influxdb ~/repos/influxdb_iox
# Skip fetch for faster local testing
./generate-release-notes.sh --no-fetch v3.1.0 v3.2.0 ~/repos/influxdb
Output:
- Creates
release-notes-<version>.mdin current directory - Includes sections for Features, Bug Fixes, Breaking Changes, Performance, and API changes
update-product-version.sh
Updates product version information in documentation configuration files.
Usage:
./update-product-version.sh --product <product> --version <version>
Supported Products:
core- InfluxDB 3 Coreenterprise- InfluxDB 3 Enterpriseclustered- InfluxDB 3 Clusteredcloud-dedicated- InfluxDB 3 Cloud Dedicatedcloud-serverless- InfluxDB Cloud Serverless
Example:
# Update Core to version 3.2.1
./update-product-version.sh --product core --version 3.2.1
# Update Clustered to version 2024.1
./update-product-version.sh --product clustered --version 2024.1
What it updates:
data/products.yml- Main product version configuration- Docker Compose example files
- Installation instructions
- Download links
Library Functions
lib/docker-utils.sh
Shared Docker utility functions used by other scripts.
Available Functions:
check_docker_running()- Verify Docker daemon is runningcontainer_exists()- Check if a container existscontainer_running()- Check if a container is runningpull_image()- Pull Docker image with retry logicload_auth_token()- Load authentication tokens from secret files
Usage in scripts:
source "$(dirname "$0")/../common/lib/docker-utils.sh"
if container_running "influxdb3-core"; then
echo "Container is running"
fi
Integration with GitHub Actions
These scripts are designed to work in both local development and CI/CD environments:
Local Development:
- Assumes Docker Desktop or Docker Engine installed
- Uses local file paths for repositories
- Can work with running containers
GitHub Actions:
- Automatically detects CI environment
- Uses workspace paths
- Handles authentication via secrets
Best Practices
- Error Handling: All scripts use
set -eto exit on errors - Logging: Color-coded output for better readability
- Validation: Input validation before processing
- Idempotency: Scripts can be run multiple times safely
- Documentation: Comprehensive help text in each script
Adding New Common Scripts
When adding scripts to this directory:
- Ensure they are truly product-agnostic
- Follow existing naming conventions
- Add comprehensive documentation
- Include error handling and validation
- Update this README
- Test with all supported products