@@ -81,8 +81,10 @@ mutable struct Worker <: AbstractWorker
8181 current_message_id:: MsgID
8282 expected_replies:: Dict{MsgID,Channel{WorkerResult}}
8383
84+ manifest_file:: String
85+
8486 function Worker (; exe = Base. julia_cmd ()[1 ], env = String[], exeflags = [])
85- proc, port, manifest_error = mktempdir () do temp_dir
87+ proc, port, manifest_error, manifest_file = mktempdir () do temp_dir
8688 # The `errors.log` file is used by the worker process to pass back
8789 # any errors that occur during startup. This is used instead of
8890 # capturing the process's `stderr` via a pipe since we only need to
@@ -118,7 +120,7 @@ mutable struct Worker <: AbstractWorker
118120 # the worker is connected to the socket and if there is a mismatch
119121 # we call `stop` to gracefully close the worker. We cannot
120122 # gracefully close it until that point.
121- manifest_error =
123+ manifest_file, manifest_error =
122124 _validate_worker_process_manifest (metadata_toml_file, errors_log_file)
123125
124126 if port === nothing
@@ -160,7 +162,7 @@ mutable struct Worker <: AbstractWorker
160162 end
161163 end
162164
163- return proc, port, manifest_error
165+ return proc, port, manifest_error, manifest_file
164166 end
165167
166168 # Connect
@@ -178,6 +180,7 @@ mutable struct Worker <: AbstractWorker
178180 socket,
179181 MsgID (0 ),
180182 Dict {MsgID,Channel{WorkerResult}} (),
183+ manifest_file,
181184 ),
182185 )
183186 atexit (() -> stop (w))
@@ -218,14 +221,15 @@ function _validate_worker_process_manifest(
218221
219222 # When there is no manifest file yet then we don't need to report any
220223 # issues since there will be no resolver issues.
221- isfile (manifest_toml_file) || return nothing
224+ isfile (manifest_toml_file) || return " " , nothing
222225
223226 manifest = TOML. parsefile (manifest_toml_file)
224227 expected_julia_version = get (manifest, " julia_version" , " " )
228+ project_hash = get (manifest, " project_hash" , " " )
225229
226230 # The older manifest format does not include the `julia_version`. For these
227231 # ones, just skip the check. To revisit if we encounter issues with this.
228- isempty (expected_julia_version) && return nothing
232+ isempty (expected_julia_version) && return project_hash, nothing
229233
230234 if ! _compare_versions (actual_julia_version, expected_julia_version)
231235 message = """
@@ -246,8 +250,9 @@ function _validate_worker_process_manifest(
246250 message *= " \n ERROR: $error_output "
247251 end
248252
249- return message
253+ return project_hash, message
250254 end
255+ return project_hash, nothing
251256end
252257
253258# This check needs to happen on the worker process since the hashing of the
0 commit comments