Skip to content

Pin neon-iris, multi-arch Docker, bump to Python 3.11#54

Merged
NeonDaniel merged 4 commits into
NeonGeckoCom:devfrom
mikejgray:fix/multiarch-and-iris-pin
May 13, 2026
Merged

Pin neon-iris, multi-arch Docker, bump to Python 3.11#54
NeonDaniel merged 4 commits into
NeonGeckoCom:devfrom
mikejgray:fix/multiarch-and-iris-pin

Conversation

@mikejgray
Copy link
Copy Markdown
Contributor

@mikejgray mikejgray commented May 13, 2026

Summary

  • Pin neon-iris>=0.1.1a15 so containers ship the timing-safety fix (iris commit a835b70). Pre-fix iris crashes the neon_response_handler consumer with TypeError: unsupported operand type(s) for -: 'float' and 'NoneType' whenever Core sends a message with timing.response_sent = None, which kills the Node response path. The current :dev image (sha256:ead9e98…) ships neon-iris==0.1.1a10 and has this bug.
  • Cap ovos-utils<0.8.5 — 0.8.5 removed ovos_utils.signal, which neon_utils.file_utils still imports at runtime. Matches the pin already applied in neon-iris.
  • Multi-arch Docker — add platforms: linux/amd64,linux/arm64 to all three Docker publish workflows so the image is usable natively on Apple Silicon Neon Hubs (no Rosetta).
  • Bump base image and CI to Python 3.11 — Python 3.9 reached EOL in October 2025. The 3.9-era pip (23.0.1) also fails to resolve the updated 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

  • Image builds locally on ARM64 (docker buildx build --platform linux/arm64)
  • Resulting image contains neon-iris==0.1.1a20, neon-utils==1.14.1a1, ovos-utils==0.8.4, neon-mq-connector==0.10.1a1
  • handle_neon_response in the built image uses the safe or recv_time fallback
  • End-to-end test on Apple Silicon Neon Hub: Node app sends utterance → STT transcribes → HANA returns response → Node speaks reply (previously timed out at "Thinking…")
  • CI build succeeds on dev push
  • Published :dev manifest lists both linux/amd64 and linux/arm64

mikejgray added 2 commits May 12, 2026 22:13
…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.
@mikejgray mikejgray changed the title Pin neon-iris to fix Node response handler crash + multi-arch Docker builds Pin neon-iris, multi-arch Docker, bump to Python 3.11 May 13, 2026
@mikejgray mikejgray requested a review from NeonDaniel May 13, 2026 03:42
Copy link
Copy Markdown
Member

@NeonDaniel NeonDaniel left a comment

Choose a reason for hiding this comment

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

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?

Comment thread requirements/requirements.txt Outdated
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.
@mikejgray mikejgray requested a review from NeonDaniel May 13, 2026 23:55
@NeonDaniel NeonDaniel merged commit 290a6be into NeonGeckoCom:dev May 13, 2026
5 checks passed
@mikejgray mikejgray deleted the fix/multiarch-and-iris-pin branch May 13, 2026 23:58
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