diff --git a/src/workerd/api/pyodide/pyodide.c++ b/src/workerd/api/pyodide/pyodide.c++ index 475df58f7cf..32dd0d92337 100644 --- a/src/workerd/api/pyodide/pyodide.c++ +++ b/src/workerd/api/pyodide/pyodide.c++ @@ -400,8 +400,9 @@ kj::Array ArtifactBundler::getSnapshotImports() { return result.releaseAsArray(); } -jsg::Ref makePyodideMetadataReader( - Worker::Reader conf, const PythonConfig& pythonConfig) { +jsg::Ref makePyodideMetadataReader(Worker::Reader conf, + const PythonConfig& pythonConfig, + PythonSnapshotRelease::Reader pythonRelease) { auto modules = conf.getModules(); auto mainModule = kj::str(modules.begin()->getName()); int numFiles = 0; @@ -451,13 +452,14 @@ jsg::Ref makePyodideMetadataReader( bool createSnapshot = pythonConfig.createSnapshot; bool createBaselineSnapshot = pythonConfig.createBaselineSnapshot; bool snapshotToDisk = createSnapshot || createBaselineSnapshot; + // clang-format off return jsg::alloc( kj::mv(mainModule), names.finish(), contents.finish(), requirements.finish(), - kj::str("20240829.4"), // TODO: hardcoded version + kj::str(pythonRelease.getPackages()), true /* isWorkerd */, false /* isTracing */, snapshotToDisk, diff --git a/src/workerd/api/pyodide/pyodide.h b/src/workerd/api/pyodide/pyodide.h index 78a1c81fb75..f403ef7b684 100644 --- a/src/workerd/api/pyodide/pyodide.h +++ b/src/workerd/api/pyodide/pyodide.h @@ -420,8 +420,9 @@ class SetupEmscripten: public jsg::Object { using Worker = server::config::Worker; -jsg::Ref makePyodideMetadataReader( - Worker::Reader conf, const PythonConfig& pythonConfig); +jsg::Ref makePyodideMetadataReader(Worker::Reader conf, + const PythonConfig& pythonConfig, + PythonSnapshotRelease::Reader pythonRelease); bool hasPythonModules(capnp::List::Reader modules); diff --git a/src/workerd/io/compatibility-date.capnp b/src/workerd/io/compatibility-date.capnp index ed76ba371ae..3572bf2aa5e 100644 --- a/src/workerd/io/compatibility-date.capnp +++ b/src/workerd/io/compatibility-date.capnp @@ -430,7 +430,7 @@ struct CompatibilityFlags @0x8f8c1b68151b6cef { pythonWorkers @43 :Bool $compatEnableFlag("python_workers") $pythonSnapshotRelease(pyodide = "0.26.0a2", pyodideRevision = "2024-03-01", - packages = "2024-03-01", backport = 13, + packages = "20240829.4", backport = 13, baselineSnapshotHash = "d13ce2f4a0ade2e09047b469874dacf4d071ed3558fec4c26f8d0b99d95f77b5") $impliedByAfterDate(name = "pythonWorkersDevPyodide", date = "2000-01-01"); # Enables Python Workers. Access to this flag is not restricted, instead bundles containing @@ -583,7 +583,7 @@ struct CompatibilityFlags @0x8f8c1b68151b6cef { pythonWorkersDevPyodide @58 :Bool $compatEnableFlag("python_workers_development") $pythonSnapshotRelease(pyodide = "dev", pyodideRevision = "dev", - packages = "2024-03-01", backport = 0, + packages = "20240829.4", backport = 0, baselineSnapshotHash = "92859211804cd350f9e14010afad86e584bdd017dc7acfd94709a87f3220afae") $experimental; # Enables Python Workers and uses the bundle from the Pyodide source directory directly. For testing only. diff --git a/src/workerd/server/workerd-api.c++ b/src/workerd/server/workerd-api.c++ index dc930e91105..3f1580599b5 100644 --- a/src/workerd/server/workerd-api.c++ +++ b/src/workerd/server/workerd-api.c++ @@ -559,7 +559,8 @@ void WorkerdApi::compileModules(jsg::Lock& lockParam, // Inject metadata that the entrypoint module will read. modules->addBuiltinModule("pyodide-internal:runtime-generated/metadata", - makePyodideMetadataReader(conf, impl->pythonConfig), jsg::ModuleRegistry::Type::INTERNAL); + makePyodideMetadataReader(conf, impl->pythonConfig), jsg::ModuleRegistry::Type::INTERNAL, + pythonRelease); // Inject packages tar file if (featureFlags.getPythonExternalPackages()) {