To trigger a rebuild of the versions.json file and to upload it to S3, you need to manually trigger the CI workflow in this repo.
You can either trigger it through the GitHub UI or via an authenticated HTTP request.
curl \
-u USERNAME:PERSONAL_ACCESS_TOKEN \
-X POST \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/JuliaLang/VersionsJSONUtil.jl/actions/workflows/CI.yml/dispatches \
-d '{"ref":"main"}'Replace USERNAME with your GitHub username, and PERSONAL_ACCESS_TOKEN with a personal access token with repo scope.
Note that it is not possible to restrict personal access tokens to individual repos. The token will have access to all repositories your GH account has access to. Consider using a machine user solely created for this purpose.
For more info, check the GitHub Docs.
- Add the version that introduces the platform to the
download_urlsdictionary intest/runtests.jl. - Add the platform the
julia_platformsinsrc/VersionsJSONUtil.jl. - Add any missing methods such as
tar_osuntil all tests for the new platform pass.
For an example, adding the M1 MacOS binaries takes the following additions:
const download_urls = Dict(
v"1.7.0-beta3" => Dict(
MacOS(:aarch64) => "https://julialang-s3.julialang.org/bin/mac/aarch64/1.7/julia-1.7.0-beta3-macaarch64.dmg",
),
...
)julia_platforms = [
...
MacOS(:aarch64),
...
]and changing tar_os(p::MacOS) from
tar_os(p::MacOS) = "mac$(wordsize(p))"to
function tar_os(p::MacOS)
if arch(p) == :aarch64
return "macaarch$(wordsize(p))"
else
return "mac$(wordsize(p))"
end
end