Skip to content

Add full Python 3.14 compatibility support#699

Open
freyes wants to merge 1 commit into
openstack-charmers:masterfrom
freyes:py314-support
Open

Add full Python 3.14 compatibility support#699
freyes wants to merge 1 commit into
openstack-charmers:masterfrom
freyes:py314-support

Conversation

@freyes

@freyes freyes commented Jun 3, 2026

Copy link
Copy Markdown
Member

Update asyncio loop handling and lifecycle cleanup paths to support Python 3.14 behavior changes.

Changes included:

  • Added safe event-loop helpers in zaza.init to create/reuse local loops when no current loop exists
  • Guarded child-watcher attach/detach usage for runtimes where asyncio.get_child_watcher is unavailable
  • Replaced direct asyncio.get_event_loop().close() calls in lifecycle entry points with zaza.close_local_event_loop()
  • Added explicit py314 tox environment and included it in tox envlist
  • Added Python 3.14 trove classifier in package metadata

Validation:

  • tox -e py3 (Python 3.14.4): 725 passed, 2 skipped
  • tox -e py314: 725 passed, 2 skipped

Assisted-by: GitHub Copilot (GPT-5.3-Codex)

Update asyncio loop handling and lifecycle cleanup paths to support Python 3.14 behavior changes.

Changes included:
- Added safe event-loop helpers in zaza.__init__ to create/reuse local loops when no current loop exists
- Guarded child-watcher attach/detach usage for runtimes where asyncio.get_child_watcher is unavailable
- Replaced direct asyncio.get_event_loop().close() calls in lifecycle entry points with zaza.close_local_event_loop()
- Added explicit py314 tox environment and included it in tox envlist
- Added Python 3.14 trove classifier in package metadata

Validation:
- tox -e py3 (Python 3.14.4): 725 passed, 2 skipped
- tox -e py314: 725 passed, 2 skipped

Assisted-by: GitHub Copilot (GPT-5.3-Codex)
@freyes freyes requested a review from dosaboy June 3, 2026 23:46
@freyes freyes requested review from gboutry and hemanthnakkina June 19, 2026 19:24
Comment thread setup.cfg
Topic :: System :: Installation/Setup
Topic :: System :: Software Distribution
Programming Language :: Python :: 3
Programming Language :: Python :: 3.14

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need this?

Do the changes make this incompatible with earlier supported versions?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants