Releases: postgrespro/testgres
1.13.6
1.13.5
1.13.4
What's Changed
Full Changelog: 1.13.3...1.13.4
1.13.3
This is a release to fix a problem with Astra Linux 1.7. It has an old python version 3.7.3.
What's Changed
- Min python is 3.7.3 (#332)
Full Changelog: 1.13.2...1.13.3
1.13.2
Main
This release updates version of testgres.os_ops to 2.0.1 to fix a problem with exec_env in RemoteOperation::exec_command.
What's Changed
- testgres.os_ops 2.0.1 is used (#324, #331)
PostgresNodeLogReader::_collect_logsis corrected (typing) (#325)PostgresNode::startandstart2are updated (#326)- CI: GitHub Action is used (#320)
- CI: Execution of all the tests on altlinux 10/11 (#322)
Full Changelog: 1.13.1...1.13.2
1.13.1 [hot fix]
This is a hot fix release.
Changes
- PostgresNode::start does not pass parameters into start2 (b4b5146)
Full Changelog: 1.13.0...1.13.1
1.13.0
Main
This release contains important changes that may be incompatible with your existing code.
Please read this release notes and test v1.13.0 before using it in your production environment.
- PostgresNode::is_started is RO-property now and is not used to ignore secondary attempts to start/stop node.
- PostgresNode::start (and slow_start) does not allow second attempt to run node and will fail
- PostgresNode::stop does not allow second attempt to stop node and will fail
- PostgresNode::kill fails when node is not running
- PostgresNode::child_processes fails when node is not running
- PostgresNode::slow_start will try to stop node if node is strted but an "ready" state is not reached
- Exception classes now have an explicit construtor and RO-properties
- CatchUpException inherits TestgresException but not QueryException
- TimeoutException was renamed with QueryTimeoutException. TimeoutException now is an alias of QueryTimeoutException.
What's Changed
- New utility get_pg_node_state is added (#301)
- ProcessProxy is updated (RO, typing, asserts) (#304)
- PostgresNode::child_processes works on a running node only (#303)
- [typing] PostgresNode: pid, auxiliary_pids, auxiliary_processes (#306)
- pyproject.toml is used (#307, #309)
- [CI] Verification on python 3.14 is added (#308)
- PostgresNode::is_started is read-only and is not used internally (#305)
- Exception classes are updated (sync with testgres.common 1.0.0) (#310, #312)
- PostgresNode::slow_start and tests are updated (#313)
- PostgresNode::start2 is added (#314)
- CI: Usage of pg8000 in tests is added (#316)
- PostgresNode::table_checksum is corrected (#317)
- Custom options paramater was added to pg_dump (#302)
Full Changelog: 1.12.2...1.13.0
1.12.2
What's Changed
- testgres.os_ops 1.0.0 is used (#298)
- PostgresNode uses kill and path_exists from OsOperations (#299)
Full Changelog: 1.12.1...1.12.2
1.12.1
Overview
This update improves an usage of os_ops.kill function. This is required for future changes.
What's Changed
- cleanup: node._try_shutdown should not pass expect_error to os_ops.kill (#297)
Full Changelog: 1.12.0...1.12.1
1.12.0
Overview
Testgres 1.12.0 introduces a modular architecture, splitting the codebase into three specialized packages while maintaining full backward compatibility.
Breaking Changes
This release is fully backward compatible. Installing testgres will automatically install all required components.
To avoid any problem with upgrade of exists installation of testgres, it is recommended to specify the option "--force-reinstall" options during setup of new version.
New Architecture
Package Structure
Testgres has been reorganized into three packages:
-
testgres - Main package with full PostgreSQL testing functionality
- Repository: https://github.com/postgrespro/testgres
- Package: https://pypi.org/project/testgres/
-
testgres.os_ops - Operating system operations (NEW)
- Repository: https://github.com/postgrespro/testgres.os_ops
- Package: https://pypi.org/project/testgres.os-ops/
- Can be installed independently if you only need OS functionality
-
testgres.common - Base structures and exception classes (NEW)
- Repository: https://github.com/postgrespro/testgres.common
- Package: https://pypi.org/project/testgres.common/
- Shared foundation for testgres and testgres.os_ops
Migration Guide
No action required. Update testgres as usual:
pip install --upgrade testgresAll satellite packages will be installed automatically, and your existing code will work without modifications.
For new users needing only OS operations:
pip install testgres.os-opsBug Fixes
-
Fixed critical bug in LocalOperations::rmdirs (#287)
- Resolved directory removal issues in LocalOperations
- PR: #288 by @dmitry-lipetsk
-
Fixed typo in exceptions module
- PR: #290 by @ProjectMutilation
Improvements
Documentation
- Refreshed README and RST documentation
- Updated documentation to reflect new architecture
- PR: #291 by @mikhail-marutyan
CI/CD Enhancements
-
Added Python 3.12 and 3.13 support
- CI now tests against Python 3.12 and 3.13
- PR: #293 by @dmitry-lipetsk
-
Added PostgreSQL 18 support
- CI now tests against PostgreSQL 18
- PR: #294 by @dmitry-lipetsk
Testing
This release has been thoroughly tested in production environments and works as expected with the new modular structure.
New Contributors
Welcome to our new contributors! 🎉
- @ProjectMutilation made their first contribution in #290
- @mikhail-marutyan made their first contribution in #291
Future Plans
- testgres.postgres-configuration integration
- Planning to integrate the testgres.postgres-configuration package into testgres core
- This will provide enhanced PostgreSQL configuration management capabilities
Notes
- Satellite package names (testgres.os_ops, testgres.common) may be revised in future releases based on community feedback
- If you encounter any issues with the new structure or have suggestions for improvement, please open an issue
Full Changelog
For a complete list of changes, see: 1.11.1...1.12.0
Version: 1.12.0
Supported Python Versions: 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13
Supported PostgreSQL Versions: 10 - 18