Skip to content

Maintenance - #11

Merged
h4l merged 15 commits into
mainfrom
maintenance
Sep 27, 2025
Merged

Maintenance#11
h4l merged 15 commits into
mainfrom
maintenance

Conversation

@h4l

@h4l h4l commented Sep 27, 2025

Copy link
Copy Markdown
Owner

General maintenance.

  • Update dependencies
  • drop Python 3.9 support (in preparation for it going out of support at the start of Oct)
    • Remove python code compatibility for 3.9
  • support node 24 and deno 2 echoservers for integration test v8 round-tripping

h4l added 15 commits September 27, 2025 14:00
3.9 is EOL in a few days, 3.10 is the new min version.
It was marked as returning `BufferT | ViewT` but only BufferT was bound
in the method's context, ViewT seems like a mistake that is not valid
and could never be returned.
Some ignored type errors are no longer errors, some correct things are
now errors and need ignoring.
Ruff and mypy complain about Generic not being the last base class of
JSArrayBuffer.
Mypy was inferring the return type of read_js_array_buffer as ABC
instead of the union of the 3 arguments. (ABC is a base class of all 3
arguments passed at at the call site.) Separating the 3 arguments into
3 separate type vars seems to help it keep the 3 types distinct rather
than resolve the common ancestor.

Additionally, mypy also seems to need an explicit subscript to declare
the generic type of `JSArrayBuffer[ReadableBinary]`, even though
`ReadableBinary` *is* the default type of the typevar, so this shouldn't
be necessary.
Because we're not using mypy's `python_version` option to run on a
single version, I think it makes sense to run mypy with all versions.
We use quite a bit of conditional typing, and these conditional types
could be wrong on one branch but not another.
It now builds a node 24 and deno 2 image, and uses the latest dnt to
build the npm package from the deno package src.
We now support running the integration test echoserver for node 24 and
deno 2 using `--profile=unstable` compose option.

They're not enabled by default, because integration tests are failing
against them (we don't yet support node's buffer view extension encoding
for float 16 views).

To support a dynamic number of echoservers, the integration_test service
no longer explicitly uses depends_on to list echoserver services.
Instead, we use `--wait` when starting echoservers in CI to ensure
they're healthy before running the tests.
@h4l
h4l merged commit fbbbd28 into main Sep 27, 2025
20 checks passed
@h4l
h4l deleted the maintenance branch September 27, 2025 14:18
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.

1 participant