Repository navigation
Major features of this stable release are:
-
Infrastructure & CI
- Switched tests and workflows to ubuntu-latest due to 20.04 deprecation.
- Updated Go version to 1.24 and refreshed linters (golangci-lint v2.0+).
- Multiple dependency upgrades (Azure SDK, OAuth2, crypto, JWT, gRPC, pgx, compress, etc.).
-
PostgreSQL / Greenplum / Cloudberry
- Added DIRECT-IO Reader for PostgreSQL.
- New commands for continuous recovery in GPDB/CBDB.
- Fixes for WAL page size, block size, checksums, and Cloudberry test stability.
- Support for xid64 patch page layout.
-
Redis
- Enhanced support for sharded Redis backups/restores: slots info, hostname/config parsing, validation fixes.
-
MongoDB
- Introduced partial restore and partial oplog replay.
- Improved metadata handling and collection in separate goroutines.
- Dropped tests for deprecated Mongo versions.
-
MySQL
- Added binlog-list command and reconnection to binlog server.
- Expanded unit tests for metadata fetch/set.
-
Storage Backends
- New implementation for Alibaba Cloud OSS with multipart upload support.
- Fixes for S3 client headers, batch deletion, SSE-C bug, and versioning behavior.
- Added S3_DELETE_BATCH_SIZE and none compression method.
-
Exporter & Monitoring
- Created Prometheus exporter with improved metrics (backup size, reduced binary size, better scrape intervals).
- Performance optimizations in WAL-G exporter.
-
Other Fixes
- Improved error handling (e.g., corrupted WAL metadata, connection refused).
- Added retries for restore point creation.
- Various test workflow improvements and cleanup.
What's Changed
- Refactor: Move CheckArchiveCommand from "connect.go" to queryRunner by @boosterKRD in wal-g#1882
- CI: switch unit tests to ubuntu-latest by @chipitsine in wal-g#1965
- Linters update to v2.0 by @debebantur in wal-g#1955
- Add config option WALG_FORCE_WAL_DELTA by @fanfuxiaoran in wal-g#1940
- Switch to container due to Ubuntu 20.04 deprecation on GitHub (fix the worflow release.yml) by @boosterKRD in wal-g#1970
- switch docker tests to ubuntu-latest by @chipitsine in wal-g#1973
- Disable WALG_FORCE_WAL_DELTA in tests by @fanfuxiaoran in wal-g#1975
- update azure sdk by @serprex in wal-g#1982
- Disable HTTP keepalive in endpoint requests by @EinKrebs in wal-g#1976
- golangci-lint 2.1 by @serprex in wal-g#1981
- add slots info for sharded Redis restore by @kronwerk in wal-g#1989
- some fixes for slot collection by @kronwerk in wal-g#1992
- fix Redis slots data paths by @kronwerk in wal-g#1994
- Added retries for restore point creation by @debebantur in wal-g#2000
- Added PGAPPNAME to allowed settings by @debebantur in wal-g#2002
- wal-verify flags with specified lsn and timeline to check by @instahipsta14 in wal-g#2001
- Fix failed restore gp cbdb by @Mulily0513 in wal-g#1974
- DIRECT-IO Reader for PostgreSQL by @vadv in wal-g#2003
- add slots info for sharded rdb backups also by @kronwerk in wal-g#2007
- Fix WalPageSize and BlockSize for gp and cloudberry by @fanfuxiaoran in wal-g#1968
- drop 4.2 and 5.0 mongo_features tests due to deprecated versions by @NotAmigo in wal-g#2009
- add partially restore to mongodb by @NotAmigo in wal-g#1995
- add sharded redis hostname parsing options by @kronwerk in wal-g#2014
- add redis sharded config parsing options by @kronwerk in wal-g#2015
- fix slots validation for redis sharded backups by @kronwerk in wal-g#2016
- update golang.org/x/oauth2 to v0.27.0 by @chipitsine in wal-g#2017
- Add
HandleDetailedBackupListtable output unit-tests by @BasedDepartment1 in wal-g#2013 - etcd: Delete target backup by @diPhantxm in wal-g#2018
- Update go version to 1.24 by @ostinru in wal-g#2025
- feat: add alicloud OSS storage implementation by @imrenagi in wal-g#2022
- Move copy composer file upload logic to its own method to create a different scope and avoid race condition by @dkhorasanizadeh in wal-g#2020
- Fix the issue where a corrupted WAL metadata file caused failure in pushing WALs by @dkhorasanizadeh in wal-g#2021
- fix: remove warning when alicloud oss valid configurations are present by @imrenagi in wal-g#2028
- Fix greenplum_path.sh usage for Cloudberry by @ostinru in wal-g#2029
- Fix WALG_FAILOVER_STORAGES_CHECK unknown setting warning by @de1ayer in wal-g#2019
- Update partial restore for mongodb by @NotAmigo in wal-g#2026
- tests: rebuild docker image for pg_storage_ssh_* test as well by @chipitsine in wal-g#2030
- Fix GPDB/CBDB/etcd build by @ostinru in wal-g#2033
- Feat: Add new commands to support gpdb/cbdb continuous recovery by @Mulily0513 in wal-g#1998
- remove debug prints by @NotAmigo in wal-g#2032
- Check for pageHeader.isNew before pageHeader.isValid by @bonnefoa in wal-g#2037
- build & release: pick only one tag if there are multiple by @chipitsine in wal-g#2006
- tests: mute ubuntu 20.04 EOL on mariadb setup by @chipitsine in wal-g#2039
- fix: HTTP-headers sent by S3 client by @ostinru in wal-g#2036
- Support the xid64 patch's page layout. by @e-voro in wal-g#2040
- feat: use multipart upload for alicloud oss by @imrenagi in wal-g#2043
- fix cross building of sql server by @chipitsine in wal-g#2046
- Fix cloudberry test by pinning Cloudberry 2.0 as stable version we support by @ostinru in wal-g#2045
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in wal-g#2048
- CI: add sql server cross build by @chipitsine in wal-g#2047
- Add binlog-list command for mysql by @zkramorev in wal-g#2051
- download MongoDB backup metadata only if at least one of white or black lists are specified by @NotAmigo in wal-g#2053
- Added gcflags to enable debugging for build by @debebantur in wal-g#2052
- Bump gopkg.in/yaml.v3 from 3.0.0 to 3.0.1 in /internal/tools by @dependabot[bot] in wal-g#2054
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in wal-g#2055
- add flag to count journal info by @kronwerk in wal-g#2049
- Bump actions/setup-go from 5 to 6 by @dependabot[bot] in wal-g#2059
- do not delete key from tarfileset if file has been already found by @NotAmigo in wal-g#2057
- Use cast to convert config values by @NikkoFox in wal-g#2034
- Add 'connection refused' to ShouldRetry by @ostinru in wal-g#2061
- Separate metadata MongoDB operations to goroutine && add mechanism of metadata collectiong by @NotAmigo in wal-g#2060
- fix: defer to delete temporary directory by @imrenagi in wal-g#2066
- Greenplum follow-primary: use absolute path to pg_ctl by @ostinru in wal-g#2063
- Create prometheus exporter by @dementii-priadko in wal-g#2064
- Greenplum follow-primary: print missing WAL file names by @ostinru in wal-g#2070
- tests: do not use MONGO_MAJOR anymore by @chipitsine in wal-g#2058
- tests: migrate from "bitnami" to "bitnamilegacy" by @chipitsine in wal-g#2076
- cleanup: do not install "pinentry-qt" to pg test container by @chipitsine in wal-g#2078
- do not use deprecated "-d" flag in "go get" by @chipitsine in wal-g#2079
- PostgreSQL & Greenplum: Reduce memory usage by @ostinru in wal-g#2056
- sequential test workflow: allow manual execution in forks by @chipitsine in wal-g#2077
- prepare test scripts for Postgresql > 10 by @chipitsine in wal-g#2080
- added GODEBUG to known settings by @debebantur in wal-g#2082
- Partial oplog replay by @NotAmigo in wal-g#2069
- preparation for Postgres > 10 by @chipitsine in wal-g#2084
- tests: run workflows on any branch by @chipitsine in wal-g#2083
- tests: drop /tmp/scripts/wait_while_pg_not_ready.sh wherever possible by @chipitsine in wal-g#2085
- Reduce walg-exporter binary size by removing wal-g dependency by @jorsol in wal-g#2088
- fix: Added missing backup size metrics for pg exporter by @kadaffy in wal-g#2089
- fix: use 30 as SIGUSR1 on windows by @joekiller in wal-g#2092
- Add MySQL GenericMetaFetcher Fetch tests by @saneczkab in wal-g#2091
- Add noname0443 to mysql CODEOWNERS by @ostinru in wal-g#2093
- Fix incorrect json when running wal-g backup-list --json against empty storage by @Endevir in wal-g#2095
- fix: rename walg_backup_count to walg_backups by @jorsol in wal-g#2099
- Mongo s3 replica catch up by @NotAmigo in wal-g#2087
- Update github.com/golang-jwt/jwt/v4 to resolve a vuln by @KrisKennawayDD in wal-g#2108
- Update github.com/ulikunitz/xz to resolve a vuln by @KrisKennawayDD in wal-g#2106
- Update google.golang.org/grpc to resolve a vuln by @KrisKennawayDD in wal-g#2107
- Add MySQL GenericMetaSetter SetUserData tests by @maksimzaitsevV in wal-g#2096
- Bump golangci/golangci-lint-action from 8.0.0 to 9.0.0 by @dependabot[bot] in wal-g#2105
- Bump golang.org/x/crypto from 0.43.0 to 0.45.0 in /cmd/pg/exporter by @dependabot[bot] in wal-g#2116
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in wal-g#2118
- Bump golangci/golangci-lint-action from 9.0.0 to 9.1.0 by @dependabot[bot] in wal-g#2117
- Fix partial filter and add debug prints for filters by @NotAmigo in wal-g#2119
- Update github.com/ProtonMail/go-crypto to latest version to resolve a vuln in github.com/cloudflare/circl by @KrisKennawayDD in wal-g#2111
- tests: unleash the power of "prepare_config", pg by @chipitsine in wal-g#2104
- perf: reduce command executions and requests in WAL-G exporter by @jorsol in wal-g#2100
- Have CompressAndEncrypt's errors wrap the root cause by @sixcorners in wal-g#2114
- feat: allow configuration of S3_ENABLE_VERSIONING by @jorsol in wal-g#2123
- Add: a reconnection to the binlog server by @zkramorev in wal-g#2075
- Docs: Mention Cloudberry in our README by @ostinru in wal-g#2126
- Update github.com/greenplum-db/gp-common-go-libs to remove dependency on vulnerable github.com/jackc/pgx@v3.6.0+incompatible by @KrisKennawayDD in wal-g#2110
- Add term to last opTime in catch up and minvalid edit to restore by @NotAmigo in wal-g#2131
- Bump golangci/golangci-lint-action from 9.1.0 to 9.2.0 by @dependabot[bot] in wal-g#2133
- Update golang.org/x/crypto by @KrisKennawayDD in wal-g#2129
- Fix mariadb tests by @ostinru in wal-g#2136
- Fix PG and GP checksums by @x4m in wal-g#2135
- Bump actions/cache from 4 to 5 by @dependabot[bot] in wal-g#2138
- Fix tablespace restore-spec by @NikkoFox in wal-g#2139
- fix primitive timestamps for catch-up values by @NotAmigo in wal-g#2142
- fix(s3): exclude deleted objects from ListFolder when versioning is enabled by @oleksiytsyban in wal-g#2132
- refactor: update walg-exporter metrics and improve scrape intervals by @jorsol in wal-g#2145
- Bump github.com/sirupsen/logrus from 1.8.1 to 1.8.3 in /internal/tools by @dependabot[bot] in wal-g#2127
- do not run "apt search" during orioledb docker image build by @chipitsine in wal-g#2149
- fix(deps): upgraded github.com/jackc/pgx/v5 v5.7.2 => v5.8.0 by @jorsol in wal-g#2152
- fix(deps): upgraded github.com/klauspost/compress v1.17.8 => v1.18.2 by @jorsol in wal-g#2151
- tests: unpin openstackswift/saio by @chipitsine in wal-g#2153
- Fix backup with SSE-C bug by @saneczkab in wal-g#2146
- Fix batch deletion in s3 by @debebantur in wal-g#2154
- Add test for walparser.ExtractLocationsFromWalFile() by @den-ibr in wal-g#2109
- Add S3_DELETE_BATCH_SIZE by @debebantur in wal-g#2155
- Add 'none' compression method by @den-ibr in wal-g#2156
- github release machinery: refactor & add ubuntu-24.04-arm64 by @chipitsine in wal-g#2140
- Fix object deletion, testing, and building on windows by @joekiller in wal-g#2102
New Contributors
- @fanfuxiaoran made their first contribution in wal-g#1940
- @instahipsta14 made their first contribution in wal-g#2001
- @Mulily0513 made their first contribution in wal-g#1974
- @vadv made their first contribution in wal-g#2003
- @BasedDepartment1 made their first contribution in wal-g#2013
- @imrenagi made their first contribution in wal-g#2022
- @dkhorasanizadeh made their first contribution in wal-g#2020
- @de1ayer made their first contribution in wal-g#2019
- @bonnefoa made their first contribution in wal-g#2037
- @e-voro made their first contribution in wal-g#2040
- @zkramorev made their first contribution in wal-g#2051
- @NikkoFox made their first contribution in wal-g#2034
- @dementii-priadko made their first contribution in wal-g#2064
- @kadaffy made their first contribution in wal-g#2089
- @joekiller made their first contribution in wal-g#2092
- @saneczkab made their first contribution in wal-g#2091
- @Endevir made their first contribution in wal-g#2095
- @KrisKennawayDD made their first contribution in wal-g#2108
- @maksimzaitsevV made their first contribution in wal-g#2096
- @sixcorners made their first contribution in wal-g#2114
- @oleksiytsyban made their first contribution in wal-g#2132
- @den-ibr made their first contribution in wal-g#2109
Full Changelog: wal-g/wal-g@v3.0.6...v3.0.8