diff --git a/src/workerd/io/compatibility-date.capnp b/src/workerd/io/compatibility-date.capnp index f33139d0752..37b38af50bb 100644 --- a/src/workerd/io/compatibility-date.capnp +++ b/src/workerd/io/compatibility-date.capnp @@ -673,4 +673,11 @@ struct CompatibilityFlags @0x8f8c1b68151b6cef { tailWorkerUserSpans @69 :Bool $compatEnableFlag("tail_worker_user_spans") $experimental; + + pythonWorkers20241218 @70 :Bool + $compatEnableFlag("python_workers_20241218") + $experimental + $pythonSnapshotRelease(pyodide = "0.26.4", pyodideRevision = "2024-12-18", + packages = "2024-12-18", backport = 0, + baselineSnapshotHash = "TODO"); } diff --git a/src/workerd/server/tests/python/BUILD.bazel b/src/workerd/server/tests/python/BUILD.bazel index 47db26c9de4..451c0fc43f5 100644 --- a/src/workerd/server/tests/python/BUILD.bazel +++ b/src/workerd/server/tests/python/BUILD.bazel @@ -36,4 +36,11 @@ py_wd_test( ], ) -gen_import_tests(PYODIDE_IMPORTS_TO_TEST) +gen_import_tests( + PYODIDE_IMPORTS_TO_TEST, + # TODO: Micropip version mismatch for 0.26.4 + pkg_python_versions = {"micropip": [ + "0.26.0a2", + "development", + ]}, +) diff --git a/src/workerd/server/tests/python/import_tests.bzl b/src/workerd/server/tests/python/import_tests.bzl index 5409cd1d624..d17f30c7899 100644 --- a/src/workerd/server/tests/python/import_tests.bzl +++ b/src/workerd/server/tests/python/import_tests.bzl @@ -32,7 +32,7 @@ def generate_wd_test_file(requirement): return WD_FILE_TEMPLATE.format(requirement, requirement) # to_test is a dictionary from library name to list of imports -def gen_import_tests(to_test): +def gen_import_tests(to_test, pkg_python_versions = {}): for lib in to_test.keys(): prefix = "import/" + lib worker_py_fname = prefix + "/worker.py" @@ -52,6 +52,7 @@ def gen_import_tests(to_test): name = prefix, directory = lib, src = wd_test_fname, + python_flags = pkg_python_versions.get(lib, "all"), args = ["--experimental", "--pyodide-package-disk-cache-dir", "../all_pyodide_wheels"], data = [worker_py_fname, "@all_pyodide_wheels//:whls"], size = "enormous", diff --git a/src/workerd/server/tests/python/py_wd_test.bzl b/src/workerd/server/tests/python/py_wd_test.bzl index 1c78d3daf04..7e6b9ca872a 100644 --- a/src/workerd/server/tests/python/py_wd_test.bzl +++ b/src/workerd/server/tests/python/py_wd_test.bzl @@ -2,7 +2,8 @@ load("@bazel_skylib//rules:expand_template.bzl", "expand_template") load("//:build/wd_test.bzl", "wd_test") FEATURE_FLAGS = { - "0.26.0a2": ["python_workers"], + "0.26.0a2": [], + "0.26.4": ["python_workers_20241218"], "development": ["python_workers_development"], } @@ -37,7 +38,8 @@ def py_wd_test( name_flag = name + "_" + python_flag templated_src = name_flag.replace("/", "-") + "@template" templated_src = "/".join(src.split("/")[:-1] + [templated_src]) - feature_flags_txt = ",".join(['"{}"'.format(flag) for flag in FEATURE_FLAGS[python_flag]]) + flags = FEATURE_FLAGS[python_flag] + ["python_workers"] + feature_flags_txt = ",".join(['"{}"'.format(flag) for flag in flags]) expand_template( name = name_flag + "@rule", out = templated_src,