- Notifications
You must be signed in to change notification settings - Fork35
Releases: postgrespro/testgres
1.11.0
Compare
Testgres 1.11.0 Release Notes
1. Important Changes
1.1. Removal oftestgres.OsOperations::db_connect
method (#237)
Thedb_connect
method has been removed from theOsOperations
interface as it was not fitting with the OS-specific functionality it was intended for.
1.2. Replacement oftestgres.helpers.port_manager.PortManager
(#234)
The oldPortManager
class has been replaced by the newtestgres.port_manager.PortManager
interface. The functionalities of the oldPortManager
are now in thetestgres.utils.internal__reserve_port
function.
1.3.PostgresNode
property changes (#234)
PostgresNode::name
,PostgresNode::host
,PostgresNode::port
,PostgresNode::ssh_key
, andPostgresNode::os_ops
are now read-only properties. These properties cannot be modified after the creation of aPostgresNode
object.- Modifying a node's port now requires recreating the
PostgresNode
object due to potential complexities in synchronizing configurations across PostgreSQL instances.
1.4. NewPostgresNode
parameters (#234,ac0a2bb)
port_manager
andos_ops
parameters have been added to thePostgresNode
constructor. These parameters allow explicit control over the port reservation and the OS operations used by the node.
2. New Features
2.1. Newtestgres.port_manager.PortManager
Interface (#234)
A new interface for reserving and releasing ports, used byPostgresNode
to manage port assignments correctly on both local and remote systems. Two implementations are available:
PortManager__ThisHost
(for local systems)PortManager__Generic
(for both local and remote systems)
2.2.PostgresNode::clone_with_new_name_and_base_dir
Method (ac0a2bb)
New method to clone aPostgresNode
with a new name and base directory. This method is now used inNodeBackup::spawn_primary
for better node cloning.
2.3.OsOperations::is_free_port
Method (#234)
A new method added toOsOperations
to check if a port is free. This method is used in the newPortManager__Generic
class.
2.4. Support for Environment Variables inOsOperations::execute_command
(#239)
You can now pass environment variables through the newexec_env
parameter when using theexecute_command
method ofOsOperations
. This feature has been added toPostgresNode::start
andPostgresNode::slow_start
.
3. Updates and Changes
3.1.PostgresNode::start
Does Not Calllogging.error
Anymore (b917141)
ThePostgresNode::start
method no longer logs errors before raising exceptions. This change improves the handling of errors and avoids misclassification of errors as they are now left for the client to handle.
3.2.RemoteOperations::exec_command
Updates (#185,#187)
- Explicit enumeration of supported
cmd
parameter types. - Explicitly transfers language environment variables (
LANG
,LC_*
, etc.) during SSH command execution.
3.3.PostgresNode::pid
Improved (#199)
Now usespg_ctl
to handlepid
property more reliably.
3.4. Refactoring ofOsOperations::execute_command
(#203)
Improved error handling and the way results are processed. The function now only checks the exit code for errors and allows the caller to manage expected errors.
4. Bug Fixes
4.1.OsOperations::cwd
Bug Fix (#182)
The implementation ofcwd
now works correctly with local systems.
4.2. Fixes inOsOperations::write
Method (#183)
Bug fixes and data preparation improvements for both local and remote operations.
4.3. Fixes inPostgresNode::start
Method (50fc4c5)
Corrected an issue in the warning message generation when starting a node.
4.4.RemoteOperations::mktemp
Fix (#202)
The call tomktemp
now correctly uses the-t
option to return the full path instead of just a name.
4.5. Fix forRemoteOperations::listdir
(#217)
Improved handling of directory listings, especially for paths with spaces.
5. Other Changes
5.1. New CI Verifications
- Support for multiple Python versions (3.8 - 3.12).
- Tests on multiple Linux distributions (Ubuntu 2024.04, AltLinux 10/11).
5.2. Migration topytest
Tests have been migrated fromunittest
topytest
for better flexibility and efficiency.
5.3. Global Test Refactoring
New unified tests forLocalOperations
andRemoteOperations
.
5.4. Experimental Logging Feature
A newconftest.py
allows logging test results for further processing of errors and warnings within a single test.
Full Changelog:1.10.5 → 1.11.0
Contributors
Assets2
Uh oh!
There was an error while loading.Please reload this page.
1.10.5
Compare
What's Changed
- Fixed a problem from 1.10.4 with socket directory by@dmitry-lipetsk in#180
Full Changelog:1.10.4...1.10.5
Assets2
Uh oh!
There was an error while loading.Please reload this page.
1.10.4
Compare
Testgres 1.10.4 Release Notes
🚀 Key Improvements
- Better Port Management: Improved handling of port numbers to reduce conflicts and errors.#165@dmitry-lipetsk
- More Reliable Error Handling:
RemoteOperations::exec_command
no longer raises exceptions whenexpect_error=True
. [#160] (#160)@dmitry-lipetsk- Fix for Windows: Improved error handling and port management.#172@dmitry-lipetsk
🔧 Bug Fixes & Enhancements
- Database Connection Fix:
PSQL
now explicitly passes the database name using-d <dbname>
.#168@dmitry-lipetsk - SSH Command Fix: Corrected SSH command execution in
RemoteOperations::execute
.#169@dmitry-lipetsk - Remote Operations Updates:
- Added new methods:
read_binary
,get_file_size
.#170@dmitry-lipetsk
- Added new methods:
- File Operations Enhancements:
OsOps::read
methods now correctly handle text mode.#171OsOps::read_binary
now supports offsets.#173@dmitry-lipetsk
- Backup Testing Support: Added
check backup-source
to help testpg_probackup3
.#176@egarbuz
🛠 Refactoring & Code Cleanup
- Refactored Node Management:
PostgresNode::start
refactored for better reliability.#174@dmitry-lipetskNode.start
improved.#167@dmitry-lipetskPortManager::find_free_port
updated for efficiency.#178@dmitry-lipetsk
- Command Execution Improvements:
LocalOperations::_run_command
refactored.#158@dmitry-lipetskNodeApp::make_simple
now usestempfile.gettempdir
.#157@dmitry-lipetsk
🎉 New Contributors
- @dmitry-lipetsk made their first contribution! 🎉#157
📌Full Changelog:1.10.3 → 1.10.4
Assets2
Uh oh!
There was an error while loading.Please reload this page.
1.10.3
Compare
What's Changed
- Fix test test_child_pids for PostgreSql 15 and higher by@demonolock in#146
- Add PG_PROBACKUP_WAL_TREE_ENABLED env param by@dura0ok in#143
- Fix typos by@kianmeng in#152
- Refinement of the run function in app.py by@MakSl in#148
- Fix broken pipe from gdb after killing process by@MetalDream666 in#151
New Contributors
Full Changelog:1.10.2...1.10.3
Assets2
Uh oh!
There was an error while loading.Please reload this page.
1.10.2
177724b
Compare
What's Changed
- Add an SSH port parameter by@asavchkov in#131
- Pass a DB port to NodeApp by@asavchkov in#132
- Make use of the default SSH user by@asavchkov in#133
- Fix node cleanup by@demonolock in#135
- Update log level TRACE insted of VERBOSE by@egarbuz in#138
- Fix logger by@demonolock in#140
- Add force node stopping using SIGKILL by@demonolock in#139
- fix locale warning by@dura0ok in#141
New Contributors
Full Changelog:1.10.1...1.10.2
Assets2
Uh oh!
There was an error while loading.Please reload this page.
1.10.1
Compare
What's Changed
- Adding port and database name into params list for add-instance command by@egarbuz in#118
- Fix error 'Is another postmaster already running on port XXX' in node by@MetalDream666 in#120
- Value pg_probackup major_version added to the class Init by@egarbuz in#119
- Add options to command pg_basebackup by@demonolock in#121
- Add pgbench_with_wait function by@demonolock in#122
- Add options to pg_upgrade by@fabriziomello in#125
- Added command execution time measurement in pg_probackup run by@MakSl in#123
- Add parsing backup_id in run app.py by@demonolock in#126
New Contributors
- @egarbuz made their first contribution in#118
- @fabriziomello made their first contribution in#125
- @MakSl made their first contribution in#123
Full Changelog:1.10.0...1.10.1
Assets2
Uh oh!
There was an error while loading.Please reload this page.
1.10.0
356cd52
Compare
What's Changed
- Add pg_upgrade option by@demonolock (#97)
This function allows upgrade PostgreSQL versions. - Remove unnecessary output by@homper (#88)
- Fix get_pg_version for Linux Mint by@demonolock (#101)
- Set default test locale to en by@Ogurezzz (#107)
This change aims to standardize test outputs. - Fix Error during executing query by@z-kasymalieva (#110)
Resolved an issue related to executing queries within the framework, particularly when executing commands that do not produce row output, which previously resulted in errors. - Run the archive command through exec by@asavchkov (#113)
If the PostgreSQL archive command is run through the dash shell the shell produces a core dump upon receiving a SIGQUIT during the PostgreSQL server shutdown. This change replaces the dash process with pg_probackup to avoid the production of a core dump.
New Contributors
- @homper made their first contribution in#88
- @z-kasymalieva made their first contribution in#105
- @Ogurezzz made their first contribution in#107
Full Changelog:1.9.3...1.10.0
Assets2
Uh oh!
There was an error while loading.Please reload this page.
1.9.3
1a2f6da
Compare
- Fixed a problem on MacOS with command --version
- Fixed problems on Windows
Assets2
Uh oh!
There was an error while loading.Please reload this page.
1.9.2
Compare
- Removed sshtunnel and fabric libraries usage
Assets2
Uh oh!
There was an error while loading.Please reload this page.
1.9.1
ad40c0f
Compare
- Removed paramiko library usage
Assets2
Uh oh!
There was an error while loading.Please reload this page.