Download package/artifacts versions associated with different metadata, e.g. V x.x.x+1

I am trying to get the correct artifacts files into an airgapped environment. We have a local registry installed; using this registry, we can Pkg.add packages from the registry into various environments, which works fine so long as the relevant artifacts are available.

Outside the airgap, one way to obtain these artifacts is to set the depot path,

DEPOT_PATH[1] = "some folder to dump packages into"

then, for each package for which we need an artifacts file, to call

Pkg.add(Pkg.PackageSpec(;name="Glib_jll", version="2.74.0+1"))

where the version number is determined by the relevant Project.toml in the airgap. Go to the artifacts folder in “some folder to dump packages into”. It’s filled with folders named by hashes. Copy these into user folders in the airgap.

This works – except when the version number violates rules for PackageSpec.

PackageSpec does not allow the above semantic versioning – the ‘+’ sign throws an error “Invalid base 10 digit”, even though the package’s Project.toml specifies the version this way. Likewise, x.x.x-DEV will not work. The current version might be 2.74.0+2, so whatever is downloaded will not be what is specified by the project.toml.

My questions are:
(1) is there a way to force the download of a package version with non-base 10 digits?
(2) if not, these artifacts can presumably be downloaded from Github. In this case, how do I determine the correct hash to use for the folder name?


airgaps are no fun.