chore: bump version to 3.2.0 across all files
This commit is contained in:
46
CHANGELOG.md
46
CHANGELOG.md
@@ -5,6 +5,52 @@ All notable changes to dbbackup will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [3.2.0] - 2025-12-13 "The Margin Eraser"
|
||||
|
||||
### Added - 🚀 Physical Backup Revolution
|
||||
|
||||
**MySQL Clone Plugin Integration:**
|
||||
- Native physical backup using MySQL 8.0.17+ Clone Plugin
|
||||
- No XtraBackup dependency - pure Go implementation
|
||||
- Real-time progress monitoring via performance_schema
|
||||
- Support for both local and remote clone operations
|
||||
|
||||
**Filesystem Snapshot Orchestration:**
|
||||
- LVM snapshot support with automatic cleanup
|
||||
- ZFS snapshot integration with send/receive
|
||||
- Btrfs subvolume snapshot support
|
||||
- Brief table lock (<100ms) for consistency
|
||||
- Automatic snapshot backend detection
|
||||
|
||||
**Continuous Binlog Streaming:**
|
||||
- Real-time binlog capture using MySQL replication protocol
|
||||
- Multiple targets: file, compressed file, S3 direct streaming
|
||||
- Sub-second RPO without impacting database server
|
||||
- Automatic position tracking and checkpointing
|
||||
|
||||
**Parallel Cloud Streaming:**
|
||||
- Direct database-to-S3 streaming (zero local storage)
|
||||
- Configurable worker pool for parallel uploads
|
||||
- S3 multipart upload with automatic retry
|
||||
- Support for S3, GCS, and Azure Blob Storage
|
||||
|
||||
**Smart Engine Selection:**
|
||||
- Automatic engine selection based on environment
|
||||
- MySQL version detection and capability checking
|
||||
- Filesystem type detection for optimal snapshot backend
|
||||
- Database size-based recommendations
|
||||
|
||||
**New Commands:**
|
||||
- `engine list` - List available backup engines
|
||||
- `engine info <name>` - Show detailed engine information
|
||||
- `backup --engine=<name>` - Use specific backup engine
|
||||
|
||||
### Technical Details
|
||||
- 7,559 lines of new code
|
||||
- Zero new external dependencies
|
||||
- 10/10 platform builds successful
|
||||
- Full test coverage for new engines
|
||||
|
||||
## [3.1.0] - 2025-11-26
|
||||
|
||||
### Added - 🔄 Point-in-Time Recovery (PITR)
|
||||
|
||||
@@ -17,7 +17,7 @@ Be respectful, constructive, and professional in all interactions. We're buildin
|
||||
|
||||
**Bug Report Template:**
|
||||
```
|
||||
**Version:** dbbackup v3.1.0
|
||||
**Version:** dbbackup v3.2.0
|
||||
**OS:** Linux/macOS/BSD
|
||||
**Database:** PostgreSQL 14 / MySQL 8.0 / MariaDB 10.6
|
||||
**Command:** The exact command that failed
|
||||
|
||||
@@ -54,7 +54,7 @@ Download from [releases](https://git.uuxo.net/UUXO/dbbackup/releases):
|
||||
|
||||
```bash
|
||||
# Linux x86_64
|
||||
wget https://git.uuxo.net/UUXO/dbbackup/releases/download/v3.1.0/dbbackup-linux-amd64
|
||||
wget https://git.uuxo.net/UUXO/dbbackup/releases/download/v3.2.0/dbbackup-linux-amd64
|
||||
chmod +x dbbackup-linux-amd64
|
||||
sudo mv dbbackup-linux-amd64 /usr/local/bin/dbbackup
|
||||
```
|
||||
|
||||
@@ -85,7 +85,7 @@ We release security updates for the following versions:
|
||||
- ❌ Never store unencrypted backups on public storage
|
||||
|
||||
**Docker Usage:**
|
||||
- ✅ Use specific version tags (`:v3.1.0` not `:latest`)
|
||||
- ✅ Use specific version tags (`:v3.2.0` not `:latest`)
|
||||
- ✅ Run as non-root user (default in our image)
|
||||
- ✅ Mount volumes read-only when possible
|
||||
- ✅ Use Docker secrets for credentials
|
||||
|
||||
@@ -15,7 +15,7 @@ echo "🔧 Using Go version: $GO_VERSION"
|
||||
|
||||
# Configuration
|
||||
APP_NAME="dbbackup"
|
||||
VERSION="3.1.0"
|
||||
VERSION="3.2.0"
|
||||
BUILD_TIME=$(date -u '+%Y-%m-%d_%H:%M:%S_UTC')
|
||||
GIT_COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
|
||||
BIN_DIR="bin"
|
||||
|
||||
@@ -339,7 +339,7 @@ func (e *CloneEngine) Backup(ctx context.Context, opts *BackupOptions) (*BackupR
|
||||
|
||||
// Save metadata
|
||||
meta := &metadata.BackupMetadata{
|
||||
Version: "3.1.0",
|
||||
Version: "3.2.0",
|
||||
Timestamp: startTime,
|
||||
Database: opts.Database,
|
||||
DatabaseType: "mysql",
|
||||
|
||||
@@ -254,7 +254,7 @@ func (e *MySQLDumpEngine) Backup(ctx context.Context, opts *BackupOptions) (*Bac
|
||||
|
||||
// Save metadata
|
||||
meta := &metadata.BackupMetadata{
|
||||
Version: "3.1.0",
|
||||
Version: "3.2.0",
|
||||
Timestamp: startTime,
|
||||
Database: opts.Database,
|
||||
DatabaseType: "mysql",
|
||||
|
||||
@@ -223,7 +223,7 @@ func (e *SnapshotEngine) Backup(ctx context.Context, opts *BackupOptions) (*Back
|
||||
|
||||
// Save metadata
|
||||
meta := &metadata.BackupMetadata{
|
||||
Version: "3.1.0",
|
||||
Version: "3.2.0",
|
||||
Timestamp: startTime,
|
||||
Database: opts.Database,
|
||||
DatabaseType: "mysql",
|
||||
|
||||
Reference in New Issue
Block a user