Pin neon-iris, multi-arch Docker, bump to Python 3.11#54
Merged
NeonDaniel merged 4 commits intoMay 13, 2026
Conversation
…uilds - neon-iris >=0.1.1a15 pulls timing-safety fix that prevents neon_response_handler consumer from crashing with TypeError on messages where timing.response_sent is explicitly None - ovos-utils <0.8.5 avoids the signal module removal that breaks neon_utils.file_utils.ensure_directory_exists at runtime - Multi-arch Docker (amd64 + arm64) so the published image runs natively on Apple Silicon Neon Hubs instead of under Rosetta
- Dockerfile base image: python:3.9-slim -> python:3.11-slim Python 3.9 reached EOL in October 2025. The 3.9-era pip (23.0.1) also fails to resolve the updated neon-iris/neon-utils chain (transitive [sentry] extras + alpha versions), where modern pip on 3.11 resolves it cleanly. - unit_tests.yml: drop 3.9 from matrix, add 3.12, bump py_build_tests to 3.11 to match the new runtime floor.
NeonDaniel
reviewed
May 13, 2026
Member
NeonDaniel
left a comment
There was a problem hiding this comment.
This upper pin shouldn't be necessary since the latest neon-utils alpha release specifically addressed that module import; is there another import error somewhere?
neon-utils 1.14.1a1 already replaced the broken ovos_utils.signal import with ovos_utils.file_utils, so the <0.8.5 cap isn't doing work in this repo. Per @NeonDaniel review on NeonGeckoCom#54.
NeonDaniel
approved these changes
May 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
neon-iris>=0.1.1a15so containers ship the timing-safety fix (iris commita835b70). Pre-fix iris crashes theneon_response_handlerconsumer withTypeError: unsupported operand type(s) for -: 'float' and 'NoneType'whenever Core sends a message withtiming.response_sent = None, which kills the Node response path. The current:devimage (sha256:ead9e98…) shipsneon-iris==0.1.1a10and has this bug.ovos-utils<0.8.5— 0.8.5 removedovos_utils.signal, whichneon_utils.file_utilsstill imports at runtime. Matches the pin already applied in neon-iris.platforms: linux/amd64,linux/arm64to all three Docker publish workflows so the image is usable natively on Apple Silicon Neon Hubs (no Rosetta).neon-iris[websocket]→neon-utils[sentry]chain (alpha versions + transitive extras), where pip on 3.11 resolves it cleanly. CI matrix updated to 3.10 / 3.11.Test plan
docker buildx build --platform linux/arm64)neon-iris==0.1.1a20,neon-utils==1.14.1a1,ovos-utils==0.8.4,neon-mq-connector==0.10.1a1handle_neon_responsein the built image uses the safeor recv_timefallback:devmanifest lists bothlinux/amd64andlinux/arm64