mirror of
https://github.com/astral-sh/setup-uv.git
synced 2026-04-21 09:46:11 +00:00
Compare commits
132 Commits
v5.2
...
setup-uv-s
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6db51338cf | ||
|
|
b75a909f75 | ||
|
|
ffff8aa2b5 | ||
|
|
95d0e233fa | ||
|
|
dc724a12b6 | ||
|
|
f67343ac2e | ||
|
|
4dd9f52a47 | ||
|
|
e1e6fe7910 | ||
|
|
b1836110f7 | ||
|
|
557e51de59 | ||
|
|
1b46e13ec8 | ||
|
|
26cf676705 | ||
|
|
4e1e303f7d | ||
|
|
4959332f0f | ||
|
|
adeb28643f | ||
|
|
fce199e243 | ||
|
|
f758a4a1eb | ||
|
|
c0e7e93474 | ||
|
|
fda2399cb3 | ||
|
|
d9e0f98d3f | ||
|
|
e5d42a2b46 | ||
|
|
d664c2a1d1 | ||
|
|
c35b8eac36 | ||
|
|
4109b4033f | ||
|
|
1463845d3c | ||
|
|
ad5ded2d63 | ||
|
|
142240426d | ||
|
|
632449003a | ||
|
|
2a967c9b97 | ||
|
|
43f37368c9 | ||
|
|
4fb0c07c55 | ||
|
|
e92bafb625 | ||
|
|
2c7142f755 | ||
|
|
23482a31a8 | ||
|
|
4ac06a054e | ||
|
|
7edac99f96 | ||
|
|
05273c154d | ||
|
|
de545d4421 | ||
|
|
b75ff7d7b8 | ||
|
|
c893ac1cb2 | ||
|
|
a905f0040b | ||
|
|
d4219d1620 | ||
|
|
aaefb91b77 | ||
|
|
c05b3e180b | ||
|
|
1bf1493664 | ||
|
|
b4c8c41d99 | ||
|
|
8e581f64a9 | ||
|
|
bd01e18f51 | ||
|
|
c6a5ebaafe | ||
|
|
790df8f465 | ||
|
|
445689ea25 | ||
|
|
a02a550bdd | ||
|
|
60cc2b4585 | ||
|
|
7bbb36f434 | ||
|
|
60ecb381b4 | ||
|
|
252c995424 | ||
|
|
477a814f2d | ||
|
|
9b19f8f4b1 | ||
|
|
d44461ea9f | ||
|
|
c19c1b1ffd | ||
|
|
f3121ef80e | ||
|
|
f0ec1fc3b3 | ||
|
|
e3d2ea5ff3 | ||
|
|
b3d7ca7ac0 | ||
|
|
0e0f4bfefa | ||
|
|
71bb8825e4 | ||
|
|
1417e89049 | ||
|
|
1761eea391 | ||
|
|
9864bc9c96 | ||
|
|
0e9cccb4b0 | ||
|
|
b6f9e9c734 | ||
|
|
b87cce2fc5 | ||
|
|
9641fcd493 | ||
|
|
a4f1f549e9 | ||
|
|
023b8ec2bc | ||
|
|
ced7c1dde4 | ||
|
|
41bd088443 | ||
|
|
75567654b6 | ||
|
|
6b9c6063ab | ||
|
|
ef6bcdff59 | ||
|
|
9a311713f4 | ||
|
|
c7f87aa956 | ||
|
|
aadfaf08d6 | ||
|
|
a0f9da6273 | ||
|
|
ec4c691628 | ||
|
|
aa1290542e | ||
|
|
fcaddda076 | ||
|
|
fb3a0a97fa | ||
|
|
d4b2f3b6ec | ||
|
|
594f292eef | ||
|
|
9ad030384d | ||
|
|
9e2c33a082 | ||
|
|
839076380b | ||
|
|
9bf3815166 | ||
|
|
0c5e2b8115 | ||
|
|
794ea9455c | ||
|
|
2d49baf2b6 | ||
|
|
4fa25599ce | ||
|
|
224dce1d79 | ||
|
|
22695119d7 | ||
|
|
bf8ec1ea35 | ||
|
|
1fb7cdfc29 | ||
|
|
57fe17c2c5 | ||
|
|
72002e8b87 | ||
|
|
19df292e24 | ||
|
|
7d9a2d93c4 | ||
|
|
389b596663 | ||
|
|
04c950a723 | ||
|
|
d02c4c2d68 | ||
|
|
a4fd982317 | ||
|
|
a05a582c56 | ||
|
|
0e855c90d0 | ||
|
|
d8a276f11f | ||
|
|
59ae1ec55b | ||
|
|
f94ec6bedd | ||
|
|
0313224678 | ||
|
|
754a7d4c2d | ||
|
|
b498c74bf4 | ||
|
|
b9ef7bd2eb | ||
|
|
1edb52594c | ||
|
|
a4fbf7b827 | ||
|
|
c122541d0b | ||
|
|
7c47ef9ebd | ||
|
|
e2e9087257 | ||
|
|
bb8d247e1a | ||
|
|
1ffa6dc3ad | ||
|
|
ee84cf5cb8 | ||
|
|
f95cd8710c | ||
|
|
61ee7954c6 | ||
|
|
cad8337f4e | ||
|
|
a4c8ae423e | ||
|
|
afa3c8c42b |
0
.git-blame-ignore-revs
Normal file
0
.git-blame-ignore-revs
Normal file
9
.github/actionlint.yaml
vendored
Normal file
9
.github/actionlint.yaml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
self-hosted-runner:
|
||||
# Custom labels of self-hosted or large GitHub hosted runners
|
||||
# so that actionlint knows that they are not a typo
|
||||
labels:
|
||||
- selfhosted-ubuntu-arm64
|
||||
# Configuration variables in array of strings defined in your repository or
|
||||
# organization. `null` means disabling configuration variables check.
|
||||
# Empty array means no configuration variable is allowed.
|
||||
config-variables: null
|
||||
8
.github/python.json
vendored
8
.github/python.json
vendored
@@ -4,13 +4,13 @@
|
||||
"owner": "python",
|
||||
"pattern": [
|
||||
{
|
||||
"regexp": "^\\s*File\\s\\\"(.*)\\\",\\sline\\s(\\d+),\\sin\\s(.*)$",
|
||||
"file": 1,
|
||||
"line": 2
|
||||
"line": 2,
|
||||
"regexp": "^\\s*File\\s\\\"(.*)\\\",\\sline\\s(\\d+),\\sin\\s(.*)$"
|
||||
},
|
||||
{
|
||||
"regexp": "^\\s*raise\\s(.*)\\(\\'(.*)\\'\\)$",
|
||||
"message": 2
|
||||
"message": 2,
|
||||
"regexp": "^\\s*raise\\s(.*)\\(\\'(.*)\\'\\)$"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
2
.github/release-drafter.yml
vendored
2
.github/release-drafter.yml
vendored
@@ -19,7 +19,7 @@ categories:
|
||||
labels:
|
||||
- "maintenance"
|
||||
- "ci"
|
||||
- "update-known-checksums"
|
||||
- "update-known-versions"
|
||||
- title: "📚 Documentation"
|
||||
labels:
|
||||
- "documentation"
|
||||
|
||||
35
.github/scripts/check-all-tests-passed-needs.ts
vendored
Normal file
35
.github/scripts/check-all-tests-passed-needs.ts
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
import * as fs from "node:fs";
|
||||
import * as yaml from "js-yaml";
|
||||
|
||||
interface WorkflowJob {
|
||||
needs?: string[];
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
interface Workflow {
|
||||
jobs: Record<string, WorkflowJob>;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
const workflow = yaml.load(
|
||||
fs.readFileSync("../workflows/test.yml", "utf8"),
|
||||
) as Workflow;
|
||||
const jobs = Object.keys(workflow.jobs);
|
||||
const allTestsPassed = workflow.jobs["all-tests-passed"];
|
||||
const needs: string[] = allTestsPassed.needs || [];
|
||||
|
||||
const expectedNeeds = jobs.filter((j) => j !== "all-tests-passed");
|
||||
const missing = expectedNeeds.filter((j) => !needs.includes(j));
|
||||
|
||||
if (missing.length > 0) {
|
||||
console.error(
|
||||
`Missing jobs in all-tests-passed needs: ${missing.join(", ")}`,
|
||||
);
|
||||
console.info(
|
||||
"Please add the missing jobs to the needs section of all-tests-passed in test.yml.",
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
console.log(
|
||||
"All jobs in test.yml are in the needs section of all-tests-passed.",
|
||||
);
|
||||
49
.github/workflows/check-dist.yml
vendored
49
.github/workflows/check-dist.yml
vendored
@@ -1,49 +0,0 @@
|
||||
# `dist/index.js` is a special file in Actions.
|
||||
# When you reference an action with `uses:` in a workflow,
|
||||
# `index.js` is the code that will run.
|
||||
# For our project, we generate this file through a build process from other source files.
|
||||
# We need to make sure the checked-in `index.js` actually matches what we expect it to be.
|
||||
name: Check dist/
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
check-dist:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Node.js 20
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Rebuild the dist/ directory
|
||||
run: |
|
||||
npm run build
|
||||
npm run package
|
||||
|
||||
- name: Compare the expected and actual dist/ directories
|
||||
run: |
|
||||
if [ "$(git diff --ignore-space-at-eol dist/ | wc -l)" -gt "0" ]; then
|
||||
echo "Detected uncommitted changes after build. See status below:"
|
||||
git diff --text -v
|
||||
exit 1
|
||||
fi
|
||||
id: diff
|
||||
|
||||
# If index.js was different than expected, upload the expected version as an artifact
|
||||
- uses: actions/upload-artifact@v4
|
||||
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
|
||||
with:
|
||||
name: dist
|
||||
path: dist/
|
||||
21
.github/workflows/codeql-analysis.yml
vendored
21
.github/workflows/codeql-analysis.yml
vendored
@@ -12,13 +12,16 @@
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [main]
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [main]
|
||||
schedule:
|
||||
- cron: "31 7 * * 3"
|
||||
branches:
|
||||
- main
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
@@ -38,11 +41,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v3
|
||||
uses: github/codeql-action/init@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
source-root: src
|
||||
@@ -54,7 +59,7 @@ jobs:
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v3
|
||||
uses: github/codeql-action/autobuild@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
@@ -68,4 +73,4 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v3
|
||||
uses: github/codeql-action/analyze@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3
|
||||
|
||||
11
.github/workflows/release-drafter.yml
vendored
11
.github/workflows/release-drafter.yml
vendored
@@ -3,17 +3,22 @@ name: Release Drafter
|
||||
|
||||
# yamllint disable-line rule:truthy
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch:
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
update_release_draft:
|
||||
name: ✏️ Draft release
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-24.04-arm
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: read
|
||||
steps:
|
||||
- name: 🚀 Run Release Drafter
|
||||
uses: release-drafter/release-drafter@v6.1.0
|
||||
uses: release-drafter/release-drafter@b1476f6e6eb133afa41ed8589daba6dc69b4d3f5 # v6.1.0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
43
.github/workflows/test-cache-windows.yml
vendored
43
.github/workflows/test-cache-windows.yml
vendored
@@ -1,43 +0,0 @@
|
||||
name: "test-cache-windows"
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
test-setup-cache:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__\fixtures\uv-project
|
||||
test-restore-cache:
|
||||
runs-on: windows-latest
|
||||
needs: test-setup-cache
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}
|
||||
- name: Cache was hit
|
||||
run: |
|
||||
if ($env:CACHE_HIT -ne "true") {
|
||||
exit 1
|
||||
}
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__\fixtures\uv-project
|
||||
229
.github/workflows/test-cache.yml
vendored
229
.github/workflows/test-cache.yml
vendored
@@ -1,229 +0,0 @@
|
||||
name: "test-cache"
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
test-setup-cache:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
enable-cache: [ "true", "false", "auto" ]
|
||||
os: ["ubuntu-latest", "selfhosted-ubuntu-arm64"]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: ${{ matrix.enable-cache }}
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-${{ matrix.os }}-${{ matrix.enable-cache }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-restore-cache:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
enable-cache: [ "true", "false", "auto" ]
|
||||
os: [ "ubuntu-latest", "selfhosted-ubuntu-arm64" ]
|
||||
needs: test-setup-cache
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: ${{ matrix.enable-cache }}
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-${{ matrix.os }}-${{ matrix.enable-cache }}
|
||||
- name: Cache was hit
|
||||
if: ${{ matrix.enable-cache == 'true' || (matrix.enable-cache == 'auto' && matrix.os == 'ubuntu-latest') }}
|
||||
run: |
|
||||
if [ "$CACHE_HIT" != "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- name: Cache was not hit
|
||||
if: ${{ matrix.enable-cache == 'false' || (matrix.enable-cache == 'auto' && matrix.os == 'selfhosted-ubuntu-arm64') }}
|
||||
run: |
|
||||
if [ "$CACHE_HIT" == "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-setup-cache-requirements-txt:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-requirements-txt
|
||||
- run: |
|
||||
uv venv
|
||||
uv pip install -r requirements.txt
|
||||
working-directory: __tests__/fixtures/requirements-txt-project
|
||||
test-restore-cache-requirements-txt:
|
||||
runs-on: ubuntu-latest
|
||||
needs: test-setup-cache
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-requirements-txt
|
||||
- name: Cache was hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" != "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- run: |
|
||||
uv venv
|
||||
uv pip install -r requirements.txt
|
||||
working-directory: __tests__/fixtures/requirements-txt-project
|
||||
|
||||
test-setup-cache-dependency-glob:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: |
|
||||
__tests__/fixtures/uv-project/uv.lock
|
||||
**/pyproject.toml
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-dependency-glob
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-restore-cache-dependency-glob:
|
||||
runs-on: ubuntu-latest
|
||||
needs: test-setup-cache-dependency-glob
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Change pyproject.toml
|
||||
run: |
|
||||
echo '[tool.uv]' >> __tests__/fixtures/uv-project/pyproject.toml
|
||||
echo 'dev-dependencies = []' >> __tests__/fixtures/uv-project/pyproject.toml
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: |
|
||||
__tests__/fixtures/uv-project/uv.lock
|
||||
**/pyproject.toml
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-dependency-glob
|
||||
ignore-nothing-to-cache: true
|
||||
- name: Cache was not hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" == "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
|
||||
test-setup-cache-local:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
|
||||
cache-local-path: /tmp/uv-cache
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-restore-cache-local:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
needs: test-setup-cache-local
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
|
||||
cache-local-path: /tmp/uv-cache
|
||||
- name: Cache was hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" != "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-tilde-expansion-cache-local-path:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Create cache directory
|
||||
run: mkdir -p ~/uv-cache
|
||||
shell: bash
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
cache-local-path: ~/uv-cache/cache-local-path
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-tilde-expansion-cache-dependency-glob:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Create cache directory
|
||||
run: mkdir -p ~/uv-cache
|
||||
shell: bash
|
||||
- name: Create cache dependency glob file
|
||||
run: touch ~/uv-cache.glob
|
||||
shell: bash
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-local-path: ~/uv-cache/cache-dependency-glob
|
||||
cache-dependency-glob: "~/uv-cache.glob"
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
cleanup-tilde-expansion-tests:
|
||||
needs:
|
||||
- test-tilde-expansion-cache-local-path
|
||||
- test-tilde-expansion-cache-dependency-glob
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- name: Remove cache directory
|
||||
run: rm -rf ~/uv-cache
|
||||
shell: bash
|
||||
- name: Remove cache dependency glob file
|
||||
run: rm -f ~/uv-cache.glob
|
||||
shell: bash
|
||||
|
||||
test-no-python-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Fake pyproject.toml at root
|
||||
run: cp __tests__/fixtures/old-python-constraint-project/pyproject.toml pyproject.toml
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/old-python-constraint-project
|
||||
27
.github/workflows/test-windows.yml
vendored
27
.github/workflows/test-windows.yml
vendored
@@ -1,27 +0,0 @@
|
||||
name: "test-windows"
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
test-default-version:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Should not be on path
|
||||
run: |
|
||||
if (!(Get-Command -Name "uv" -ErrorAction SilentlyContinue)) {
|
||||
exit 0
|
||||
} else {
|
||||
exit 1
|
||||
}
|
||||
- name: Setup uv
|
||||
uses: ./
|
||||
- run: uv sync
|
||||
working-directory: __tests__\fixtures\uv-project
|
||||
749
.github/workflows/test.yml
vendored
749
.github/workflows/test.yml
vendored
@@ -1,6 +1,9 @@
|
||||
name: "test"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
@@ -9,133 +12,275 @@ concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
security-events: write # for zizmor
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Actionlint
|
||||
uses: eifinger/actionlint-action@23c85443d840cd73bbecb9cddfc933cc21649a38 # v1.9.1
|
||||
- name: Run zizmor
|
||||
uses: zizmorcore/zizmor-action@5ca5fc7a4779c5263a3ffa0e1f693009994446d1 # v0.1.2
|
||||
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version: "20"
|
||||
- run: |
|
||||
npm install
|
||||
- run: |
|
||||
npm run all
|
||||
- name: Check all jobs are in all-tests-passed.needs
|
||||
run: |
|
||||
tsc check-all-tests-passed-needs.ts
|
||||
node check-all-tests-passed-needs.js
|
||||
working-directory: .github/scripts
|
||||
- name: Make sure no changes from linters are detected
|
||||
run: |
|
||||
git diff --exit-code
|
||||
git diff --exit-code || (echo "::error::Please run 'npm run all' to fix the issues" && exit 1)
|
||||
|
||||
test-default-version:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, macos-14]
|
||||
os: [ubuntu-latest, macos-latest, macos-14, windows-latest]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install latest version
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
shell: bash
|
||||
- name: Check uv-path is set
|
||||
run: |
|
||||
"${UV_PATH}" --version
|
||||
shell: bash
|
||||
env:
|
||||
UV_PATH: ${{ steps.setup-uv.outputs.uv-path }}
|
||||
- name: Check uvx-path is set
|
||||
run: |
|
||||
"${UVX_PATH}" --version
|
||||
shell: bash
|
||||
env:
|
||||
UVX_PATH: ${{ steps.setup-uv.outputs.uvx-path }}
|
||||
|
||||
test-specific-version:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
uv-version: ["0.3.0", "0.3.2", "0.3", "0.3.x", ">=0.3.0"]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install version ${{ matrix.uv-version }}
|
||||
uses: ./
|
||||
with:
|
||||
version: ${{ matrix.uv-version }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-semver-range:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ ubuntu-latest, selfhosted-ubuntu-arm64 ]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install version 0.3
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
version: "0.3"
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$(uv --version)" != "uv 0.3.5" ]; then
|
||||
echo "Wrong uv version: $(uv --version)"
|
||||
exit 1
|
||||
fi
|
||||
- name: Output has correct version
|
||||
run: |
|
||||
if [ "$UV_VERSION" != "0.3.5" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }}
|
||||
|
||||
test-pep440-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install version 0.4.30
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
version: ">=0.4.25,<0.5"
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$(uv --version)" != "uv 0.4.30" ]; then
|
||||
echo "Wrong uv version: $(uv --version)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
test-pyproject-file-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install version 0.5.14
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
pyproject-file: "__tests__/fixtures/pyproject-toml-project/pyproject.toml"
|
||||
working-directory: "__tests__/fixtures/pyproject-toml-project"
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$UV_VERSION" != "0.5.14" ]; then
|
||||
if [ "$(uv --version)" != "uv 0.5.14" ]; then
|
||||
echo "Wrong uv version: $(uv --version)"
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }}
|
||||
|
||||
test-malformed-pyproject-file-fallback:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install using malformed pyproject.toml
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
working-directory: "__tests__/fixtures/malformed-pyproject-toml-project"
|
||||
- run: uv --help
|
||||
|
||||
test-uv-file-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install version 0.5.15
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
pyproject-file: "__tests__/fixtures/uv-toml-project/pyproject.toml"
|
||||
uv-file: "__tests__/fixtures/uv-toml-project/uv.toml"
|
||||
working-directory: "__tests__/fixtures/uv-toml-project"
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$UV_VERSION" != "0.5.15" ]; then
|
||||
if [ "$(uv --version)" != "uv 0.5.15" ]; then
|
||||
echo "Wrong uv version: $(uv --version)"
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
UV_VERSION: ${{ steps.setup-uv.outputs.uv-version }}
|
||||
|
||||
test-version-file-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install from requirements file
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
version-file: "__tests__/fixtures/uv-in-requirements-txt-project/requirements.txt"
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$(uv --version)" != "uv 0.6.17" ]; then
|
||||
echo "Wrong uv version: $(uv --version)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
test-version-file-hash-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install from requirements file
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
version-file: "__tests__/fixtures/uv-in-requirements-hash-txt-project/requirements.txt"
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$(uv --version)" != "uv 0.8.3" ]; then
|
||||
echo "Wrong uv version: $(uv --version)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
test-tool-versions-file-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install from .tools-versions file
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
version-file: "__tests__/fixtures/.tool-versions"
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$(uv --version)" != "uv 0.5.15" ]; then
|
||||
echo "Wrong uv version: $(uv --version)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
test-checksum:
|
||||
runs-on: ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.inputs.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest]
|
||||
checksum:
|
||||
["4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd"]
|
||||
exclude:
|
||||
- os: macos-latest
|
||||
inputs:
|
||||
- os: ubuntu-latest
|
||||
checksum: "4d9279ad5ca596b1e2d703901d508430eb07564dc4d8837de9e2fca9c90f8ecd"
|
||||
include:
|
||||
- os: macos-latest
|
||||
checksum: "a70cbfbf3bb5c08b2f84963b4f12c94e08fbb2468ba418a3bfe1066fbe9e7218"
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Checksum matches expected
|
||||
uses: ./
|
||||
with:
|
||||
version: "0.3.2"
|
||||
checksum: ${{ matrix.checksum }}
|
||||
checksum: ${{ matrix.inputs.checksum }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-with-explicit-token:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install default version
|
||||
uses: ./
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-uvx:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install default version
|
||||
uses: ./
|
||||
- run: uvx ruff --version
|
||||
|
||||
test-tool-install:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
@@ -148,15 +293,20 @@ jobs:
|
||||
windows-latest,
|
||||
]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install default version
|
||||
uses: ./
|
||||
- run: uv tool install ruff
|
||||
- run: ruff --version
|
||||
|
||||
test-tilde-expansion-tool-dirs:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
@@ -172,13 +322,16 @@ jobs:
|
||||
echo "UV_TOOL_DIR does not contain /home/ubuntu/tool-dir: $UV_TOOL_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
test-python-version:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install latest version
|
||||
uses: ./
|
||||
with:
|
||||
@@ -190,8 +343,25 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
shell: bash
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-activate-environment:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ ubuntu-latest, macos-latest, windows-latest ]
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install latest version
|
||||
uses: ./
|
||||
with:
|
||||
python-version: 3.13.1t
|
||||
activate-environment: true
|
||||
- name: Verify packages can be installed
|
||||
run: uv pip install --python=3.13.1t pip
|
||||
run: uv pip install pip
|
||||
shell: bash
|
||||
- name: Verify python version is correct
|
||||
run: |
|
||||
@@ -201,14 +371,509 @@ jobs:
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
test-malformed-pyproject-file-fallback:
|
||||
test-musl:
|
||||
runs-on: ubuntu-latest
|
||||
container: alpine
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install latest version
|
||||
uses: ./
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-setup-cache:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
enable-cache: [ "true", "false", "auto" ]
|
||||
os: [ "ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest" ]
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: ${{ matrix.enable-cache }}
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-${{ matrix.os }}-${{ matrix.enable-cache }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
shell: bash
|
||||
test-restore-cache:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
enable-cache: [ "true", "false", "auto" ]
|
||||
os: [ "ubuntu-latest", "selfhosted-ubuntu-arm64", "windows-latest" ]
|
||||
needs: test-setup-cache
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: ${{ matrix.enable-cache }}
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-${{ matrix.os }}-${{ matrix.enable-cache }}
|
||||
- name: Cache was hit
|
||||
if: ${{ matrix.enable-cache == 'true' || (matrix.enable-cache == 'auto' && matrix.os == 'ubuntu-latest') }}
|
||||
run: |
|
||||
if [ "$CACHE_HIT" != "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
shell: bash
|
||||
- name: Cache was not hit
|
||||
if: ${{ matrix.enable-cache == 'false' || (matrix.enable-cache == 'auto' && matrix.os == 'selfhosted-ubuntu-arm64') }}
|
||||
run: |
|
||||
if [ "$CACHE_HIT" == "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
shell: bash
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
shell: bash
|
||||
|
||||
test-setup-cache-requirements-txt:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install using malformed pyproject.toml
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-requirements-txt
|
||||
- run: |
|
||||
uv venv
|
||||
uv pip install -r requirements.txt
|
||||
working-directory: __tests__/fixtures/requirements-txt-project
|
||||
test-restore-cache-requirements-txt:
|
||||
runs-on: ubuntu-latest
|
||||
needs: test-setup-cache-requirements-txt
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-requirements-txt
|
||||
- name: Cache was hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" != "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- run: |
|
||||
uv venv
|
||||
uv pip install -r requirements.txt
|
||||
working-directory: __tests__/fixtures/requirements-txt-project
|
||||
|
||||
test-setup-cache-dependency-glob:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: |
|
||||
__tests__/fixtures/uv-project/uv.lock
|
||||
**/pyproject.toml
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-dependency-glob
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-restore-cache-dependency-glob:
|
||||
runs-on: ubuntu-latest
|
||||
needs: test-setup-cache-dependency-glob
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Change pyproject.toml
|
||||
run: |
|
||||
echo '[tool.uv]' >> __tests__/fixtures/uv-project/pyproject.toml
|
||||
echo 'dev-dependencies = []' >> __tests__/fixtures/uv-project/pyproject.toml
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: |
|
||||
__tests__/fixtures/uv-project/uv.lock
|
||||
**/pyproject.toml
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-dependency-glob
|
||||
ignore-nothing-to-cache: true
|
||||
- name: Cache was not hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" == "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
|
||||
test-setup-cache-save-cache-false:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
save-cache: false
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-save-cache-false
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
shell: bash
|
||||
test-restore-cache-save-cache-false:
|
||||
runs-on: ubuntu-latest
|
||||
needs: test-setup-cache-save-cache-false
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-save-cache-false
|
||||
- name: Cache was not hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" == "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
|
||||
test-setup-cache-save-cache-env:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-save-cache-env
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
shell: bash
|
||||
- run: echo "SETUP_UV_SAVE_CACHE=false" >> $GITHUB_ENV
|
||||
test-restore-cache-save-cache-env:
|
||||
runs-on: ubuntu-latest
|
||||
needs: test-setup-cache-save-cache-env
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-save-cache-env
|
||||
- name: Cache was not hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" == "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
|
||||
test-setup-cache-restore-cache-false:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-restore-cache-false
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
shell: bash
|
||||
test-restore-cache-restore-cache-false:
|
||||
runs-on: ubuntu-latest
|
||||
needs: test-setup-cache-restore-cache-false
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
restore-cache: false
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-restore-cache-false
|
||||
- name: Cache was not hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" == "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
|
||||
test-cache-local:
|
||||
strategy:
|
||||
matrix:
|
||||
inputs:
|
||||
- os: ubuntu-latest
|
||||
expected-cache-dir: "/home/runner/work/_temp/setup-uv-cache"
|
||||
- os: windows-latest
|
||||
expected-cache-dir: "D:\\a\\_temp\\setup-uv-cache"
|
||||
- os: selfhosted-ubuntu-arm64
|
||||
expected-cache-dir: "/home/ubuntu/.cache/uv"
|
||||
runs-on: ${{ matrix.inputs.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-cache-local
|
||||
- run: |
|
||||
if [ "$UV_CACHE_DIR" != "${{ matrix.inputs.expected-cache-dir }}" ]; then
|
||||
echo "UV_CACHE_DIR is not set to the expected value: $UV_CACHE_DIR"
|
||||
exit 1
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
test-setup-cache-local:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
|
||||
cache-local-path: /tmp/uv-cache
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
test-restore-cache-local:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
needs: test-setup-cache-local
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Restore with cache
|
||||
id: restore
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: ${{ github.run_id }}-${{ github.run_attempt }}-test-setup-cache-local
|
||||
cache-local-path: /tmp/uv-cache
|
||||
- name: Cache was hit
|
||||
run: |
|
||||
if [ "$CACHE_HIT" != "true" ]; then
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
CACHE_HIT: ${{ steps.restore.outputs.cache-hit }}
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-tilde-expansion-cache-local-path:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Create cache directory
|
||||
run: mkdir -p ~/uv-cache
|
||||
shell: bash
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
cache-local-path: ~/uv-cache/cache-local-path
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
test-tilde-expansion-cache-dependency-glob:
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Create cache directory
|
||||
run: mkdir -p ~/uv-cache
|
||||
shell: bash
|
||||
- name: Create cache dependency glob file
|
||||
run: touch ~/uv-cache.glob
|
||||
shell: bash
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-local-path: ~/uv-cache/cache-dependency-glob
|
||||
cache-dependency-glob: "~/uv-cache.glob"
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
|
||||
cleanup-tilde-expansion-tests:
|
||||
needs:
|
||||
- test-tilde-expansion-cache-local-path
|
||||
- test-tilde-expansion-cache-dependency-glob
|
||||
if: always()
|
||||
runs-on: selfhosted-ubuntu-arm64
|
||||
steps:
|
||||
- name: Remove cache directory
|
||||
run: rm -rf ~/uv-cache
|
||||
shell: bash
|
||||
- name: Remove cache dependency glob file
|
||||
run: rm -f ~/uv-cache.glob
|
||||
shell: bash
|
||||
|
||||
test-no-python-version:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Fake pyproject.toml at root
|
||||
run: cp __tests__/fixtures/old-python-constraint-project/pyproject.toml pyproject.toml
|
||||
- name: Setup with cache
|
||||
uses: ./
|
||||
with:
|
||||
enable-cache: true
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/old-python-constraint-project
|
||||
|
||||
test-custom-manifest-file:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install from custom manifest file
|
||||
uses: ./
|
||||
with:
|
||||
manifest-file: "https://raw.githubusercontent.com/astral-sh/setup-uv/${{ github.ref }}/__tests__/download/custom-manifest.json"
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$(uv --version)" != "uv 0.7.12-alpha.1" ]; then
|
||||
echo "Wrong uv version: $(uv --version)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
test-absolute-path:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Create requirements.txt
|
||||
run: echo "uv==0.6.17" > /tmp/setup-uv-requirements.txt
|
||||
- name: Install from requirements file
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
pyproject-file: "__tests__/fixtures/malformed-pyproject-toml-project/pyproject.toml"
|
||||
- run: uv sync
|
||||
working-directory: __tests__/fixtures/uv-project
|
||||
version-file: "/tmp/setup-uv-requirements.txt"
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$(uv --version)" != "uv 0.6.17" ]; then
|
||||
echo "Wrong uv version: $(uv --version)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
test-relative-path:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: mkdir
|
||||
run: mkdir -p /tmp/setup-uv-test-relative-path
|
||||
- name: Create requirements.txt
|
||||
run: echo "uv==0.6.17" > /tmp/setup-uv-test-relative-path/setup-uv-requirements.txt
|
||||
- name: Install from requirements file
|
||||
id: setup-uv
|
||||
uses: ./
|
||||
with:
|
||||
version-file: "./setup-uv-requirements.txt"
|
||||
working-directory: "/tmp/setup-uv-test-relative-path"
|
||||
cache-dependency-glob: "./setup-uv-requirements.txt"
|
||||
- name: Correct version gets installed
|
||||
run: |
|
||||
if [ "$(uv --version)" != "uv 0.6.17" ]; then
|
||||
echo "Wrong uv version: $(uv --version)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
all-tests-passed:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- lint
|
||||
- test-default-version
|
||||
- test-specific-version
|
||||
- test-semver-range
|
||||
- test-pep440-version
|
||||
- test-pyproject-file-version
|
||||
- test-malformed-pyproject-file-fallback
|
||||
- test-uv-file-version
|
||||
- test-version-file-version
|
||||
- test-version-file-hash-version
|
||||
- test-tool-versions-file-version
|
||||
- test-checksum
|
||||
- test-with-explicit-token
|
||||
- test-uvx
|
||||
- test-tool-install
|
||||
- test-tilde-expansion-tool-dirs
|
||||
- test-python-version
|
||||
- test-activate-environment
|
||||
- test-musl
|
||||
- test-cache-local
|
||||
- test-setup-cache
|
||||
- test-restore-cache
|
||||
- test-setup-cache-requirements-txt
|
||||
- test-restore-cache-requirements-txt
|
||||
- test-setup-cache-dependency-glob
|
||||
- test-restore-cache-dependency-glob
|
||||
- test-setup-cache-save-cache-false
|
||||
- test-restore-cache-save-cache-false
|
||||
- test-setup-cache-restore-cache-false
|
||||
- test-restore-cache-restore-cache-false
|
||||
- test-setup-cache-save-cache-env
|
||||
- test-restore-cache-save-cache-env
|
||||
- test-setup-cache-local
|
||||
- test-restore-cache-local
|
||||
- test-tilde-expansion-cache-local-path
|
||||
- test-tilde-expansion-cache-dependency-glob
|
||||
- cleanup-tilde-expansion-tests
|
||||
- test-no-python-version
|
||||
- test-custom-manifest-file
|
||||
- test-absolute-path
|
||||
- test-relative-path
|
||||
if: always()
|
||||
steps:
|
||||
- name: All tests passed
|
||||
run: |
|
||||
echo "All jobs passed: ${{ !contains(needs.*.result, 'failure') }}"
|
||||
# shellcheck disable=SC2242
|
||||
exit ${{ contains(needs.*.result, 'failure') && 1 || 0 }}
|
||||
|
||||
32
.github/workflows/update-known-checksums.yml
vendored
32
.github/workflows/update-known-checksums.yml
vendored
@@ -1,32 +0,0 @@
|
||||
name: "Update known checksums"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "20"
|
||||
- name: Update known checksums
|
||||
id: update-known-checksums
|
||||
run:
|
||||
node dist/update-known-checksums/index.js
|
||||
src/download/checksum/known-checksums.ts ${{ secrets.GITHUB_TOKEN }}
|
||||
- run: npm install && npm run all
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@67ccf781d68cd99b580ae25a5c18a1cc84ffff1f # v7.0.6
|
||||
with:
|
||||
commit-message: "chore: update known checksums"
|
||||
title:
|
||||
"chore: update known checksums for ${{
|
||||
steps.update-known-checksums.outputs.latest-version }}"
|
||||
body:
|
||||
"chore: update known checksums for ${{
|
||||
steps.update-known-checksums.outputs.latest-version }}"
|
||||
base: main
|
||||
labels: "automated-pr,update-known-checksums"
|
||||
branch: update-known-checksums-pr
|
||||
delete-branch: true
|
||||
51
.github/workflows/update-known-versions.yml
vendored
Normal file
51
.github/workflows/update-known-versions.yml
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
name: "Update known versions"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: "0 4 * * *" # Run every day at 4am UTC
|
||||
repository_dispatch:
|
||||
types: [ pypi_release ]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-24.04-arm
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version: "20"
|
||||
- name: Update known versions
|
||||
id: update-known-versions
|
||||
run:
|
||||
node dist/update-known-versions/index.js
|
||||
src/download/checksum/known-checksums.ts
|
||||
version-manifest.json
|
||||
${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Check for changes
|
||||
id: changes_exist
|
||||
run: |
|
||||
git status --porcelain
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
echo "changes_exist=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "changes_exist=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
- name: Compile changes
|
||||
if: ${{ steps.changes_exist.outputs.changes_exist == 'true' }}
|
||||
run: npm ci && npm run all
|
||||
- name: Commit and push changes
|
||||
if: ${{ steps.changes_exist.outputs.changes_exist == 'true' }}
|
||||
run: |
|
||||
git config user.name "$GITHUB_ACTOR"
|
||||
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||
git add .
|
||||
git commit -m "chore: update known versions for $LATEST_VERSION"
|
||||
git push origin HEAD:refs/heads/main
|
||||
env:
|
||||
LATEST_VERSION: ${{ steps.update-known-versions.outputs.latest-version }}
|
||||
42
.github/workflows/update-major-minor-tags.yml
vendored
42
.github/workflows/update-major-minor-tags.yml
vendored
@@ -1,7 +1,6 @@
|
||||
---
|
||||
name: Update Major Minor Tags
|
||||
|
||||
# yamllint disable-line rule:truthy
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
@@ -9,11 +8,44 @@ on:
|
||||
tags:
|
||||
- "v*.*.*"
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
update_major_minor_tags:
|
||||
name: Make sure major and minor tags are up to date on a patch release
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-24.04-arm
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Run Update semver
|
||||
uses: haya14busa/action-update-semver@v1.2.1
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: true # needed for git push below
|
||||
- name: Update Major Minor Tags
|
||||
run: |
|
||||
set -x
|
||||
|
||||
cd "${GITHUB_WORKSPACE}" || exit
|
||||
|
||||
# Set up variables.
|
||||
TAG="${GITHUB_REF#refs/tags/}" # v1.2.3
|
||||
MINOR="${TAG%.*}" # v1.2
|
||||
MAJOR="${MINOR%.*}" # v1
|
||||
|
||||
if [ "${GITHUB_REF}" = "${TAG}" ]; then
|
||||
echo "This workflow is not triggered by tag push: GITHUB_REF=${GITHUB_REF}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
MESSAGE="Release ${TAG}"
|
||||
|
||||
# Set up Git.
|
||||
git config user.name "${GITHUB_ACTOR}"
|
||||
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
|
||||
|
||||
# Update MAJOR/MINOR tag
|
||||
git tag -fa "${MAJOR}" -m "${MESSAGE}"
|
||||
git tag -fa "${MINOR}" -m "${MESSAGE}"
|
||||
|
||||
# Push
|
||||
git push --force origin "${MINOR}"
|
||||
git push --force origin "${MAJOR}"
|
||||
|
||||
3
.vscode/extensions.json
vendored
Normal file
3
.vscode/extensions.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"recommendations": ["biomejs.biome"]
|
||||
}
|
||||
16
.vscode/settings.json
vendored
Normal file
16
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.action.useSortedAttributes.biome": "explicit",
|
||||
"source.action.useSortedKeys.biome": "explicit",
|
||||
"source.fixAll.biome": "explicit"
|
||||
},
|
||||
"editor.defaultFormatter": "biomejs.biome",
|
||||
"editor.formatOnSave": true,
|
||||
"explorer.excludeGitIgnore": false,
|
||||
"search.defaultViewMode": "list",
|
||||
"search.exclude": {
|
||||
"**/node_modules": true
|
||||
},
|
||||
"typescript.enablePromptUseWorkspaceTsdk": true,
|
||||
"typescript.tsdk": "node_modules/typescript/lib"
|
||||
}
|
||||
301
README.md
301
README.md
@@ -14,12 +14,16 @@ Set up your GitHub Actions workflow with a specific version of [uv](https://docs
|
||||
- [Install a required-version or latest (default)](#install-a-required-version-or-latest-default)
|
||||
- [Install the latest version](#install-the-latest-version)
|
||||
- [Install a specific version](#install-a-specific-version)
|
||||
- [Install a version by supplying a semver range](#install-a-version-by-supplying-a-semver-range)
|
||||
- [Install a required-version](#install-a-required-version)
|
||||
- [Install a version by supplying a semver range or pep440 specifier](#install-a-version-by-supplying-a-semver-range-or-pep440-specifier)
|
||||
- [Install a version defined in a requirements or config file](#install-a-version-defined-in-a-requirements-or-config-file)
|
||||
- [Python version](#python-version)
|
||||
- [Activate environment](#activate-environment)
|
||||
- [Working directory](#working-directory)
|
||||
- [Validate checksum](#validate-checksum)
|
||||
- [Enable Caching](#enable-caching)
|
||||
- [Cache dependency glob](#cache-dependency-glob)
|
||||
- [Restore cache](#restore-cache)
|
||||
- [Save cache](#save-cache)
|
||||
- [Local cache path](#local-cache-path)
|
||||
- [Disable cache pruning](#disable-cache-pruning)
|
||||
- [Ignore nothing to cache](#ignore-nothing-to-cache)
|
||||
@@ -27,6 +31,8 @@ Set up your GitHub Actions workflow with a specific version of [uv](https://docs
|
||||
- [UV_TOOL_DIR](#uv_tool_dir)
|
||||
- [UV_TOOL_BIN_DIR](#uv_tool_bin_dir)
|
||||
- [Tilde Expansion](#tilde-expansion)
|
||||
- [Manifest file](#manifest-file)
|
||||
- [Add problem matchers](#add-problem-matchers)
|
||||
- [How it works](#how-it-works)
|
||||
- [FAQ](#faq)
|
||||
|
||||
@@ -36,7 +42,7 @@ Set up your GitHub Actions workflow with a specific version of [uv](https://docs
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
```
|
||||
|
||||
If you do not specify a version, this action will look for a [required-version](https://docs.astral.sh/uv/reference/settings/#required-version)
|
||||
@@ -49,7 +55,7 @@ For an example workflow, see
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
version: "latest"
|
||||
```
|
||||
@@ -58,62 +64,62 @@ For an example workflow, see
|
||||
|
||||
```yaml
|
||||
- name: Install a specific version of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
version: "0.4.4"
|
||||
```
|
||||
|
||||
### Install a version by supplying a semver range
|
||||
### Install a version by supplying a semver range or pep440 specifier
|
||||
|
||||
You can specify a [semver range](https://github.com/npm/node-semver?tab=readme-ov-file#ranges)
|
||||
or [pep440 specifier](https://peps.python.org/pep-0440/#version-specifiers)
|
||||
to install the latest version that satisfies the range.
|
||||
|
||||
```yaml
|
||||
- name: Install a semver range of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
version: ">=0.4.0"
|
||||
```
|
||||
|
||||
```yaml
|
||||
- name: Pinning a minor version of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
version: "0.4.x"
|
||||
```
|
||||
|
||||
### Install a required-version
|
||||
|
||||
You can specify a [required-version](https://docs.astral.sh/uv/reference/settings/#required-version)
|
||||
in either a `uv.toml` or `pyproject.toml` file:
|
||||
|
||||
```yaml
|
||||
- name: Install required-version defined in uv.toml
|
||||
uses: astral-sh/setup-uv@v5
|
||||
- name: Install a pep440-specifier-satisfying version of uv
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
uv-file: "path/to/uv.toml"
|
||||
version: ">=0.4.25,<0.5"
|
||||
```
|
||||
|
||||
### Install a version defined in a requirements or config file
|
||||
|
||||
You can use the `version-file` input to specify a file that contains the version of uv to install.
|
||||
This can either be a `pyproject.toml` or `uv.toml` file which defines a `required-version` or
|
||||
uv defined as a dependency in `pyproject.toml` or `requirements.txt`.
|
||||
|
||||
[asdf](https://asdf-vm.com/) `.tool-versions` is also supported, but without the `ref` syntax.
|
||||
|
||||
```yaml
|
||||
- name: Install required-version defined in pyproject.toml
|
||||
uses: astral-sh/setup-uv@v5
|
||||
- name: Install uv based on the version defined in pyproject.toml
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
pyproject-file: "path/to/pyproject.toml"
|
||||
version-file: "pyproject.toml"
|
||||
```
|
||||
|
||||
### Python version
|
||||
|
||||
You can use the input `python-version` to
|
||||
|
||||
- set the environment variable `UV_PYTHON` for the rest of your workflow
|
||||
- create a new virtual environment with the specified python version
|
||||
- activate the virtual environment for the rest of your workflow
|
||||
You can use the input `python-version` to set the environment variable `UV_PYTHON` for the rest of your workflow
|
||||
|
||||
This will override any python version specifications in `pyproject.toml` and `.python-version`
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv and set the python version to 3.13t
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
python-version: 3.13t
|
||||
- run: uv pip install --python=3.13t pip
|
||||
@@ -131,13 +137,51 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install the latest version of uv and set the python version
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Test with python ${{ matrix.python-version }}
|
||||
run: uv run --frozen pytest
|
||||
```
|
||||
|
||||
### Activate environment
|
||||
|
||||
You can set `activate-environment` to `true` to automatically activate a venv.
|
||||
This allows directly using it in later steps:
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv and activate the environment
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
activate-environment: true
|
||||
- run: uv pip install pip
|
||||
```
|
||||
|
||||
> [!WARNING]
|
||||
>
|
||||
> Activating the environment adds your dependencies to the `PATH`, which could break some workflows.
|
||||
> For example, if you have a dependency which requires uv, e.g., `hatch`, activating the
|
||||
> environment will shadow the `uv` binary installed by this action and may result in a different uv
|
||||
> version being used.
|
||||
>
|
||||
> We do not recommend using this setting for most use-cases. Instead, use `uv run` to execute
|
||||
> commands in the environment.
|
||||
|
||||
### Working directory
|
||||
|
||||
You can set the working directory with the `working-directory` input.
|
||||
This controls where we look for `pyproject.toml`, `uv.toml` and `.python-version` files
|
||||
which are used to determine the version of uv and python to install.
|
||||
|
||||
It also controls where [the venv gets created](#activate-environment).
|
||||
|
||||
```yaml
|
||||
- name: Install uv based on the config files in the working-directory
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
working-directory: my/subproject/dir
|
||||
```
|
||||
|
||||
### Validate checksum
|
||||
|
||||
You can specify a checksum to validate the downloaded executable. Checksums up to the default version
|
||||
@@ -146,7 +190,7 @@ are automatically verified by this action. The sha256 hashes can be found on the
|
||||
|
||||
```yaml
|
||||
- name: Install a specific version and validate the checksum
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
version: "0.3.1"
|
||||
checksum: "e11b01402ab645392c7ad6044db63d37e4fd1e745e015306993b07695ea5f9f8"
|
||||
@@ -154,8 +198,13 @@ are automatically verified by this action. The sha256 hashes can be found on the
|
||||
|
||||
### Enable caching
|
||||
|
||||
> [!NOTE]
|
||||
> The cache is pruned before it is uploaded to the GitHub Actions cache. This can lead to
|
||||
> a small or empty cache. See [Disable cache pruning](#disable-cache-pruning) for more details.
|
||||
|
||||
If you enable caching, the [uv cache](https://docs.astral.sh/uv/concepts/cache/) will be uploaded to
|
||||
the GitHub Actions cache. This can speed up runs that reuse the cache by several minutes.
|
||||
Caching is enabled by default on GitHub-hosted runners.
|
||||
|
||||
> [!TIP]
|
||||
>
|
||||
@@ -167,7 +216,7 @@ You can optionally define a custom cache key suffix.
|
||||
```yaml
|
||||
- name: Enable caching and define a custom cache key suffix
|
||||
id: setup-uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-suffix: "optional-suffix"
|
||||
@@ -190,16 +239,22 @@ changes. If you use relative paths, they are relative to the repository root.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> You can look up supported patterns [here](https://github.com/actions/toolkit/tree/main/packages/glob#patterns)
|
||||
>
|
||||
> The default is
|
||||
> ```yaml
|
||||
> cache-dependency-glob: |
|
||||
> **/requirements*.txt
|
||||
> **/*requirements*.txt
|
||||
> **/*requirements*.in
|
||||
> **/*constraints*.txt
|
||||
> **/*constraints*.in
|
||||
> **/pyproject.toml
|
||||
> **/uv.lock
|
||||
> ```
|
||||
|
||||
```yaml
|
||||
- name: Define a cache dependency glob
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: "**/pyproject.toml"
|
||||
@@ -207,7 +262,7 @@ changes. If you use relative paths, they are relative to the repository root.
|
||||
|
||||
```yaml
|
||||
- name: Define a list of cache dependency globs
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: |
|
||||
@@ -217,7 +272,7 @@ changes. If you use relative paths, they are relative to the repository root.
|
||||
|
||||
```yaml
|
||||
- name: Define an absolute cache dependency glob
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: "/tmp/my-folder/requirements*.txt"
|
||||
@@ -225,12 +280,39 @@ changes. If you use relative paths, they are relative to the repository root.
|
||||
|
||||
```yaml
|
||||
- name: Never invalidate the cache
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
cache-dependency-glob: ""
|
||||
```
|
||||
|
||||
#### Restore cache
|
||||
|
||||
Restoring an existing cache can be enabled or disabled with the `restore-cache` input.
|
||||
By default, the cache will be restored.
|
||||
|
||||
```yaml
|
||||
- name: Don't restore an existing cache
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
restore-cache: false
|
||||
```
|
||||
|
||||
#### Save cache
|
||||
|
||||
You can also disable saving the cache after the run with the `save-cache` input.
|
||||
This can be useful to save cache storage when you know you will not use the cache of the run again.
|
||||
By default, the cache will be saved.
|
||||
|
||||
```yaml
|
||||
- name: Don't save the cache after the run
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
save-cache: false
|
||||
```
|
||||
|
||||
### Local cache path
|
||||
|
||||
This action controls where uv stores its cache on the runner's filesystem by setting `UV_CACHE_DIR`.
|
||||
@@ -240,7 +322,7 @@ It defaults to `setup-uv-cache` in the `TMP` dir, `D:\a\_temp\uv-tool-dir` on Wi
|
||||
|
||||
```yaml
|
||||
- name: Define a custom uv cache path
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
cache-local-path: "/path/to/cache"
|
||||
```
|
||||
@@ -259,7 +341,7 @@ input.
|
||||
|
||||
```yaml
|
||||
- name: Don't prune the cache before saving it
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
prune-cache: false
|
||||
@@ -272,12 +354,26 @@ If you want to ignore this, set the `ignore-nothing-to-cache` input to `true`.
|
||||
|
||||
```yaml
|
||||
- name: Ignore nothing to cache
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
ignore-nothing-to-cache: true
|
||||
```
|
||||
|
||||
### Ignore empty workdir
|
||||
|
||||
By default, the action will warn if the workdir is empty, because this is usually the case when
|
||||
`actions/checkout` is configured to run after `setup-uv`, which is not supported.
|
||||
|
||||
If you want to ignore this, set the `ignore-empty-workdir` input to `true`.
|
||||
|
||||
```yaml
|
||||
- name: Ignore empty workdir
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
ignore-empty-workdir: true
|
||||
```
|
||||
|
||||
### GitHub authentication token
|
||||
|
||||
This action uses the GitHub API to fetch the uv release artifacts. To avoid hitting the GitHub API
|
||||
@@ -290,7 +386,7 @@ are not sufficient, you can provide a custom GitHub token with the necessary per
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv with a custom GitHub token
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
github-token: ${{ secrets.CUSTOM_GITHUB_TOKEN }}
|
||||
```
|
||||
@@ -308,7 +404,7 @@ input:
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv with a custom tool dir
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
tool-dir: "/path/to/tool/dir"
|
||||
```
|
||||
@@ -327,7 +423,7 @@ If you want to change this behaviour (especially on self-hosted runners) you can
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv with a custom tool bin dir
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
tool-bin-dir: "/path/to/tool-bin/dir"
|
||||
```
|
||||
@@ -336,6 +432,7 @@ If you want to change this behaviour (especially on self-hosted runners) you can
|
||||
|
||||
This action supports expanding the `~` character to the user's home directory for the following inputs:
|
||||
|
||||
- `version-file`
|
||||
- `cache-local-path`
|
||||
- `tool-dir`
|
||||
- `tool-bin-dir`
|
||||
@@ -343,7 +440,7 @@ This action supports expanding the `~` character to the user's home directory fo
|
||||
|
||||
```yaml
|
||||
- name: Expand the tilde character
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
cache-local-path: "~/path/to/cache"
|
||||
tool-dir: "~/path/to/tool/dir"
|
||||
@@ -351,6 +448,59 @@ This action supports expanding the `~` character to the user's home directory fo
|
||||
cache-dependency-glob: "~/my-cache-buster"
|
||||
```
|
||||
|
||||
### Manifest file
|
||||
|
||||
The `manifest-file` input allows you to specify a JSON manifest that lists available uv versions,
|
||||
architectures, and their download URLs. By default, this action uses the manifest file contained
|
||||
in this repository, which is automatically updated with each release of uv.
|
||||
|
||||
The manifest file contains an array of objects, each describing a version,
|
||||
architecture, platform, and the corresponding download URL. For example:
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"version": "0.7.13",
|
||||
"artifactName": "uv-aarch64-apple-darwin.tar.gz",
|
||||
"arch": "aarch64",
|
||||
"platform": "apple-darwin",
|
||||
"downloadUrl": "https://github.com/astral-sh/uv/releases/download/0.7.13/uv-aarch64-apple-darwin.tar.gz"
|
||||
},
|
||||
...
|
||||
]
|
||||
```
|
||||
|
||||
You can supply a custom manifest file URL to define additional versions,
|
||||
architectures, or different download URLs.
|
||||
This is useful if you maintain your own uv builds or want to override the default sources.
|
||||
|
||||
```yaml
|
||||
- name: Use a custom manifest file
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
manifest-file: "https://example.com/my-custom-manifest.json"
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> When you use a custom manifest file and do not set the `version` input, its default value is `latest`.
|
||||
> This means the action will install the latest version available in the custom manifest file.
|
||||
> This is different from the default behavior of installing the latest version from the official uv releases.
|
||||
|
||||
### Add problem matchers
|
||||
|
||||
This action automatically adds
|
||||
[problem matchers](https://github.com/actions/toolkit/blob/main/docs/problem-matchers.md)
|
||||
for python errors.
|
||||
|
||||
You can disable this by setting the `add-problem-matchers` input to `false`.
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv without problem matchers
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
add-problem-matchers: false
|
||||
```
|
||||
|
||||
## How it works
|
||||
|
||||
This action downloads uv from the uv repo's official
|
||||
@@ -358,7 +508,7 @@ This action downloads uv from the uv repo's official
|
||||
[GitHub Actions Toolkit](https://github.com/actions/toolkit) to cache it as a tool to speed up
|
||||
consecutive runs on self-hosted runners.
|
||||
|
||||
The installed version of uv is then added to the runner PATH, enabling subsequent steps to invoke it
|
||||
The installed version of uv is then added to the runner PATH, enabling later steps to invoke it
|
||||
by name (`uv`).
|
||||
|
||||
## FAQ
|
||||
@@ -376,7 +526,7 @@ For example:
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@main
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
- name: Test
|
||||
@@ -388,7 +538,7 @@ To install a specific version of Python, use
|
||||
|
||||
```yaml
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: true
|
||||
- name: Install Python 3.12
|
||||
@@ -407,11 +557,74 @@ output:
|
||||
uses: actions/checkout@main
|
||||
- name: Install the default version of uv
|
||||
id: setup-uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
uses: astral-sh/setup-uv@v6
|
||||
- name: Print the installed version
|
||||
run: echo "Installed uv version is ${{ steps.setup-uv.outputs.uv-version }}"
|
||||
```
|
||||
|
||||
### Should I include the resolution strategy in the cache key?
|
||||
|
||||
**Yes!**
|
||||
|
||||
The cache key gets computed by using the [cache-dependency-glob](#cache-dependency-glob).
|
||||
|
||||
If you
|
||||
have jobs which use the same dependency definitions from `requirements.txt` or
|
||||
`pyproject.toml` but different
|
||||
[resolution strategies](https://docs.astral.sh/uv/concepts/resolution/#resolution-strategy),
|
||||
each job will have different dependencies or dependency versions.
|
||||
But if you do not add the resolution strategy as a [cache-suffix](#enable-caching),
|
||||
they will have the same cache key.
|
||||
|
||||
This means the first job which starts uploading its cache will win and all other job will fail
|
||||
uploading the cache,
|
||||
because they try to upload with the same cache key.
|
||||
|
||||
You might see errors like
|
||||
`Failed to save: Failed to CreateCacheEntry: Received non-retryable error: Failed request: (409) Conflict: cache entry with the same key, version, and scope already exists`
|
||||
|
||||
### Why do I see warnings like `No GitHub Actions cache found for key`
|
||||
|
||||
When a workflow runs for the first time on a branch and has a new cache key, because the
|
||||
[cache-dependency-glob](#cache-dependency-glob) found changed files (changed dependencies),
|
||||
the cache will not be found and the warning `No GitHub Actions cache found for key` will be printed.
|
||||
|
||||
While this might be irritating at first, it is expected behaviour and the cache will be created
|
||||
and reused in later workflows.
|
||||
|
||||
The reason for the warning is, that we have to way to know if this is the first run of a new
|
||||
cache key or the user accidentally misconfigured the [cache-dependency-glob](#cache-dependency-glob)
|
||||
or [cache-suffix](#enable-caching) and the cache never gets used.
|
||||
|
||||
### Do I have to run `actions/checkout` before or after `setup-uv`?
|
||||
|
||||
Some workflows need uv but do not need to access the repository content.
|
||||
|
||||
But **if** you need to access the repository content, you have run `actions/checkout` before running `setup-uv`.
|
||||
Running `actions/checkout` after `setup-uv` **is not supported**.
|
||||
|
||||
### Does `setup-uv` also install my project or its dependencies automatically?
|
||||
|
||||
No, `setup-uv` alone wont install any libraries from your `pyproject.toml` or `requirements.txt`, it only sets up `uv`.
|
||||
You should run `uv sync` or `uv pip install .` separately, or use `uv run ...` to ensure necessary dependencies are installed.
|
||||
|
||||
### Why is a changed cache not detected and not the full cache uploaded?
|
||||
|
||||
When `setup-uv` starts it has to know whether it is better to download an existing cache
|
||||
or start fresh and download every dependency again.
|
||||
It does this by using a combination of hashes calculated on the contents of e.g. `uv.lock`.
|
||||
|
||||
By calculating these hashes and combining them in a key `setup-uv` can check
|
||||
if an uploaded cache exists for this key.
|
||||
If yes (e.g. contents of `uv.lock` did not change since last run) the dependencies in the cache
|
||||
are up to date and the cache will be downloaded and used.
|
||||
|
||||
Details on determining which files will lead to different caches can be read under
|
||||
[cache-dependency-glob](#cache-dependency-glob)
|
||||
|
||||
Some dependencies will never be uploaded to the cache and will be downloaded again on each run
|
||||
as described in [disable-cache-pruning](#disable-cache-pruning)
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
`setup-uv` was initially written and published by [Kevin Stillhammer](https://github.com/eifinger)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { expect, test, it } from "@jest/globals";
|
||||
import { expect, it, test } from "@jest/globals";
|
||||
import {
|
||||
isknownVersion,
|
||||
validateChecksum,
|
||||
@@ -22,12 +22,12 @@ type KnownVersionFixture = { version: string; known: boolean };
|
||||
|
||||
it.each<KnownVersionFixture>([
|
||||
{
|
||||
version: "0.3.0",
|
||||
known: true,
|
||||
version: "0.3.0",
|
||||
},
|
||||
{
|
||||
version: "0.0.15",
|
||||
known: false,
|
||||
version: "0.0.15",
|
||||
},
|
||||
])(
|
||||
"isknownVersion should return $known for version $version",
|
||||
|
||||
9
__tests__/download/custom-manifest.json
Normal file
9
__tests__/download/custom-manifest.json
Normal file
@@ -0,0 +1,9 @@
|
||||
[
|
||||
{
|
||||
"arch": "x86_64",
|
||||
"artifactName": "uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||
"downloadUrl": "https://release.pyx.dev/0.7.12-alpha.1/uv-x86_64-unknown-linux-gnu.tar.gz",
|
||||
"platform": "unknown-linux-gnu",
|
||||
"version": "0.7.12-alpha.1"
|
||||
}
|
||||
]
|
||||
1
__tests__/fixtures/.tool-versions
Normal file
1
__tests__/fixtures/.tool-versions
Normal file
@@ -0,0 +1 @@
|
||||
uv 0.5.15
|
||||
@@ -0,0 +1 @@
|
||||
print("Hello world")
|
||||
@@ -0,0 +1,33 @@
|
||||
# This file was autogenerated by uv via the following command:
|
||||
# uv pip compile --generate-hashes - -o ex-requirements.txt
|
||||
click==8.2.1 \
|
||||
--hash=sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202 \
|
||||
--hash=sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b
|
||||
# via uvicorn
|
||||
h11==0.16.0 \
|
||||
--hash=sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1 \
|
||||
--hash=sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86
|
||||
# via uvicorn
|
||||
uv==0.8.3 \
|
||||
--hash=sha256:1121ad1c9389b865d029385031d3fd7d90d343c92a2149a4d4aa20bf469cb27f \
|
||||
--hash=sha256:17bcdb0615e37cc5f985f7d7546f755ac6343c1dc8bbe876c892437f14f8f904 \
|
||||
--hash=sha256:2ccaae4c749126c99f6404d67a0ae1eae29cbafb05603d09094a775061fdf4e5 \
|
||||
--hash=sha256:2e311c029bff2ca07c6ddf877ccc5935cabb78e09b94b53a849542665b6a6fa1 \
|
||||
--hash=sha256:391c97577048a40fd8c85b370055df6420f26e81df7fa906f0e0ce1aa2af3527 \
|
||||
--hash=sha256:3f904f574dc2d7aa1d96ddf2483480ecd121dc9d060108cadd8bff100b754b64 \
|
||||
--hash=sha256:526f2c3bd6f311ce31f6f7b6b7d818b191f41e76bed3aaab671b716220c02d8f \
|
||||
--hash=sha256:5313ee776ad65731ffa8ac585246f987d3a2bf72e6153c12add1fff22ad6e500 \
|
||||
--hash=sha256:5843cc43bafad05cc710d8e31bd347ee37202462a63d32c30746e9df48cfbda2 \
|
||||
--hash=sha256:76de331a07e5ae9b6490e70a9439a072b91b3167a5684510af10c2752c4ece9a \
|
||||
--hash=sha256:8486f7576d15cc73509f93f47b3190f44701ea36839906369301b58c8604d5db \
|
||||
--hash=sha256:8b16f1bddfdf8f7470924ab34a7b55e4c372d5340c7c1e47e7fc84a743dc541f \
|
||||
--hash=sha256:966ec7d7f57521fef0fee685d71e183c9cafb358ddcfe27519dfeaf40550f247 \
|
||||
--hash=sha256:989898caeb6e972979543b57547d1c28ab8af81ff8fc15921fd354c17d432749 \
|
||||
--hash=sha256:9ce7981f4fbeecf93dc5cf0a5a7915e84956fd99ad3ac977c048fe0cfdb1a17e \
|
||||
--hash=sha256:ad13453ab0a1dfa64a221aac8f52199efdcaa52c97134fffd7bcebed794a6f4b \
|
||||
--hash=sha256:ae7efe91dcfc24126fa91e0fb69a1daf6c0e494a781ba192bb0cc62d7ab623ee \
|
||||
--hash=sha256:daa6e0d657a94f20e962d4a03d833ef7af5c8e51b7c8a2d92ba6cf64a4c07ac1 \
|
||||
--hash=sha256:f1eb7c896fc0d80ed534748aaf46697b6ebc8ce401f1c51666ce0b9923c3db9a
|
||||
uvicorn==0.35.0 \
|
||||
--hash=sha256:197535216b25ff9b785e29a0b79199f55222193d47f820816e7da751e9bc8d4a \
|
||||
--hash=sha256:bc662f087f7cf2ce11a1d7fd70b90c9f98ef2e2831556dd078d131b96cc94a01
|
||||
@@ -0,0 +1 @@
|
||||
print("Hello world")
|
||||
@@ -0,0 +1,2 @@
|
||||
uvicorn==0.35.0
|
||||
uv==0.6.17
|
||||
86
__tests__/utils/inputs.test.ts
Normal file
86
__tests__/utils/inputs.test.ts
Normal file
@@ -0,0 +1,86 @@
|
||||
jest.mock("@actions/core", () => {
|
||||
return {
|
||||
debug: jest.fn(),
|
||||
getBooleanInput: jest.fn(
|
||||
(name: string) => (mockInputs[name] ?? "") === "true",
|
||||
),
|
||||
getInput: jest.fn((name: string) => mockInputs[name] ?? ""),
|
||||
};
|
||||
});
|
||||
|
||||
import {
|
||||
afterEach,
|
||||
beforeEach,
|
||||
describe,
|
||||
expect,
|
||||
it,
|
||||
jest,
|
||||
} from "@jest/globals";
|
||||
|
||||
// Will be mutated per test before (re-)importing the module under test
|
||||
let mockInputs: Record<string, string> = {};
|
||||
const ORIGINAL_HOME = process.env.HOME;
|
||||
|
||||
describe("cacheDependencyGlob", () => {
|
||||
beforeEach(() => {
|
||||
jest.resetModules();
|
||||
mockInputs = {};
|
||||
process.env.HOME = "/home/testuser";
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
process.env.HOME = ORIGINAL_HOME;
|
||||
});
|
||||
|
||||
it("returns empty string when input not provided", async () => {
|
||||
mockInputs["working-directory"] = "/workspace";
|
||||
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||
expect(cacheDependencyGlob).toBe("");
|
||||
});
|
||||
|
||||
it("resolves a single relative path", async () => {
|
||||
mockInputs["working-directory"] = "/workspace";
|
||||
mockInputs["cache-dependency-glob"] = "requirements.txt";
|
||||
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||
expect(cacheDependencyGlob).toBe("/workspace/requirements.txt");
|
||||
});
|
||||
|
||||
it("strips leading ./ from relative path", async () => {
|
||||
mockInputs["working-directory"] = "/workspace";
|
||||
mockInputs["cache-dependency-glob"] = "./uv.lock";
|
||||
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||
expect(cacheDependencyGlob).toBe("/workspace/uv.lock");
|
||||
});
|
||||
|
||||
it("handles multiple lines, trimming whitespace, tilde expansion and absolute paths", async () => {
|
||||
mockInputs["working-directory"] = "/workspace";
|
||||
mockInputs["cache-dependency-glob"] =
|
||||
" ~/.cache/file1\n ./rel/file2 \nfile3.txt";
|
||||
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||
expect(cacheDependencyGlob).toBe(
|
||||
[
|
||||
"/home/testuser/.cache/file1", // expanded tilde, absolute path unchanged
|
||||
"/workspace/rel/file2", // ./ stripped and resolved
|
||||
"/workspace/file3.txt", // relative path resolved
|
||||
].join("\n"),
|
||||
);
|
||||
});
|
||||
|
||||
it("keeps absolute path unchanged in multiline input", async () => {
|
||||
mockInputs["working-directory"] = "/workspace";
|
||||
mockInputs["cache-dependency-glob"] = "/abs/path.lock\nrelative.lock";
|
||||
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||
expect(cacheDependencyGlob).toBe(
|
||||
["/abs/path.lock", "/workspace/relative.lock"].join("\n"),
|
||||
);
|
||||
});
|
||||
|
||||
it("handles exclusions in relative paths correct", async () => {
|
||||
mockInputs["working-directory"] = "/workspace";
|
||||
mockInputs["cache-dependency-glob"] = "!/abs/path.lock\n!relative.lock";
|
||||
const { cacheDependencyGlob } = await import("../../src/utils/inputs");
|
||||
expect(cacheDependencyGlob).toBe(
|
||||
["!/abs/path.lock", "!/workspace/relative.lock"].join("\n"),
|
||||
);
|
||||
});
|
||||
});
|
||||
9
__tests__/version/requirements-file.test.ts
Normal file
9
__tests__/version/requirements-file.test.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import { expect, test } from "@jest/globals";
|
||||
import { getUvVersionFromFile } from "../../src/version/resolve";
|
||||
|
||||
test("ignores dependencies starting with uv", async () => {
|
||||
const parsedVersion = getUvVersionFromFile(
|
||||
"__tests__/fixtures/uv-in-requirements-txt-project/requirements.txt",
|
||||
);
|
||||
expect(parsedVersion).toBe("0.6.17");
|
||||
});
|
||||
9
__tests__/version/requirements-hashes-file.test.ts
Normal file
9
__tests__/version/requirements-hashes-file.test.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import { expect, test } from "@jest/globals";
|
||||
import { getUvVersionFromFile } from "../../src/version/resolve";
|
||||
|
||||
test("ignores dependencies starting with uv", async () => {
|
||||
const parsedVersion = getUvVersionFromFile(
|
||||
"__tests__/fixtures/uv-in-requirements-hash-txt-project/requirements.txt",
|
||||
);
|
||||
expect(parsedVersion).toBe("0.8.3");
|
||||
});
|
||||
115
__tests__/version/tool-versions-file.test.ts
Normal file
115
__tests__/version/tool-versions-file.test.ts
Normal file
@@ -0,0 +1,115 @@
|
||||
jest.mock("node:fs");
|
||||
jest.mock("@actions/core", () => ({
|
||||
warning: jest.fn(),
|
||||
}));
|
||||
|
||||
import fs from "node:fs";
|
||||
import * as core from "@actions/core";
|
||||
import { beforeEach, describe, expect, it, jest } from "@jest/globals";
|
||||
import { getUvVersionFromToolVersions } from "../../src/version/tool-versions-file";
|
||||
|
||||
const mockedFs = fs as jest.Mocked<typeof fs>;
|
||||
const mockedCore = core as jest.Mocked<typeof core>;
|
||||
|
||||
describe("getUvVersionFromToolVersions", () => {
|
||||
beforeEach(() => {
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
it("should return undefined for non-.tool-versions files", () => {
|
||||
const result = getUvVersionFromToolVersions("package.json");
|
||||
expect(result).toBeUndefined();
|
||||
expect(mockedFs.readFileSync).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("should return version for valid uv entry", () => {
|
||||
const fileContent = "python 3.11.0\nuv 0.1.0\nnodejs 18.0.0";
|
||||
mockedFs.readFileSync.mockReturnValue(fileContent);
|
||||
|
||||
const result = getUvVersionFromToolVersions(".tool-versions");
|
||||
|
||||
expect(result).toBe("0.1.0");
|
||||
expect(mockedFs.readFileSync).toHaveBeenCalledWith(
|
||||
".tool-versions",
|
||||
"utf8",
|
||||
);
|
||||
});
|
||||
|
||||
it("should return version for uv entry with v prefix", () => {
|
||||
const fileContent = "uv v0.2.0";
|
||||
mockedFs.readFileSync.mockReturnValue(fileContent);
|
||||
|
||||
const result = getUvVersionFromToolVersions(".tool-versions");
|
||||
|
||||
expect(result).toBe("0.2.0");
|
||||
});
|
||||
|
||||
it("should handle whitespace around uv entry", () => {
|
||||
const fileContent = " uv 0.3.0 ";
|
||||
mockedFs.readFileSync.mockReturnValue(fileContent);
|
||||
|
||||
const result = getUvVersionFromToolVersions(".tool-versions");
|
||||
|
||||
expect(result).toBe("0.3.0");
|
||||
});
|
||||
|
||||
it("should skip commented lines", () => {
|
||||
const fileContent = "# uv 0.1.0\npython 3.11.0\nuv 0.2.0";
|
||||
mockedFs.readFileSync.mockReturnValue(fileContent);
|
||||
|
||||
const result = getUvVersionFromToolVersions(".tool-versions");
|
||||
|
||||
expect(result).toBe("0.2.0");
|
||||
});
|
||||
|
||||
it("should return first matching uv version", () => {
|
||||
const fileContent = "uv 0.1.0\npython 3.11.0\nuv 0.2.0";
|
||||
mockedFs.readFileSync.mockReturnValue(fileContent);
|
||||
|
||||
const result = getUvVersionFromToolVersions(".tool-versions");
|
||||
|
||||
expect(result).toBe("0.1.0");
|
||||
});
|
||||
|
||||
it("should return undefined when no uv entry found", () => {
|
||||
const fileContent = "python 3.11.0\nnodejs 18.0.0";
|
||||
mockedFs.readFileSync.mockReturnValue(fileContent);
|
||||
|
||||
const result = getUvVersionFromToolVersions(".tool-versions");
|
||||
|
||||
expect(result).toBeUndefined();
|
||||
});
|
||||
|
||||
it("should return undefined for empty file", () => {
|
||||
mockedFs.readFileSync.mockReturnValue("");
|
||||
|
||||
const result = getUvVersionFromToolVersions(".tool-versions");
|
||||
|
||||
expect(result).toBeUndefined();
|
||||
});
|
||||
|
||||
it("should warn and return undefined for ref syntax", () => {
|
||||
const fileContent = "uv ref:main";
|
||||
mockedFs.readFileSync.mockReturnValue(fileContent);
|
||||
|
||||
const result = getUvVersionFromToolVersions(".tool-versions");
|
||||
|
||||
expect(result).toBeUndefined();
|
||||
expect(mockedCore.warning).toHaveBeenCalledWith(
|
||||
"The ref syntax of .tool-versions is not supported. Please use a released version instead.",
|
||||
);
|
||||
});
|
||||
|
||||
it("should handle file path with .tool-versions extension", () => {
|
||||
const fileContent = "uv 0.1.0";
|
||||
mockedFs.readFileSync.mockReturnValue(fileContent);
|
||||
|
||||
const result = getUvVersionFromToolVersions("path/to/.tool-versions");
|
||||
|
||||
expect(result).toBe("0.1.0");
|
||||
expect(mockedFs.readFileSync).toHaveBeenCalledWith(
|
||||
"path/to/.tool-versions",
|
||||
"utf8",
|
||||
);
|
||||
});
|
||||
});
|
||||
42
action.yml
42
action.yml
@@ -6,18 +6,25 @@ inputs:
|
||||
version:
|
||||
description: "The version of uv to install e.g., `0.5.0` Defaults to the version in pyproject.toml or 'latest'."
|
||||
default: ""
|
||||
pyproject-file:
|
||||
description: "Path to a pyproject.toml"
|
||||
default: ""
|
||||
uv-file:
|
||||
description: "Path to a uv.toml"
|
||||
version-file:
|
||||
description: "Path to a file containing the version of uv to install. Defaults to searching for uv.toml and if not found pyproject.toml."
|
||||
default: ""
|
||||
python-version:
|
||||
description: "The version of Python to set UV_PYTHON to"
|
||||
required: false
|
||||
activate-environment:
|
||||
description: "Use uv venv to activate a venv ready to be used by later steps. "
|
||||
default: "false"
|
||||
working-directory:
|
||||
description: "The directory to execute all commands in and look for files such as pyproject.toml"
|
||||
default: ${{ github.workspace }}
|
||||
checksum:
|
||||
description: "The checksum of the uv version to install"
|
||||
required: false
|
||||
server-url:
|
||||
description: "(Deprecated) The server url to use when downloading uv"
|
||||
required: false
|
||||
default: "https://github.com"
|
||||
github-token:
|
||||
description:
|
||||
"Used to increase the rate limit when retrieving versions and downloading uv."
|
||||
@@ -31,8 +38,18 @@ inputs:
|
||||
"Glob pattern to match files relative to the repository root to control
|
||||
the cache."
|
||||
default: |
|
||||
**/*requirements*.txt
|
||||
**/*requirements*.in
|
||||
**/*constraints*.txt
|
||||
**/*constraints*.in
|
||||
**/pyproject.toml
|
||||
**/uv.lock
|
||||
**/requirements*.txt
|
||||
restore-cache:
|
||||
description: "Whether to restore the cache if found."
|
||||
default: "true"
|
||||
save-cache:
|
||||
description: "Whether to save the cache after the run."
|
||||
default: "true"
|
||||
cache-suffix:
|
||||
description: "Suffix for the cache key"
|
||||
required: false
|
||||
@@ -45,15 +62,28 @@ inputs:
|
||||
ignore-nothing-to-cache:
|
||||
description: "Ignore when nothing is found to cache."
|
||||
default: "false"
|
||||
ignore-empty-workdir:
|
||||
description: "Ignore when the working directory is empty."
|
||||
default: "false"
|
||||
tool-dir:
|
||||
description: "Custom path to set UV_TOOL_DIR to."
|
||||
required: false
|
||||
tool-bin-dir:
|
||||
description: "Custom path to set UV_TOOL_BIN_DIR to."
|
||||
required: false
|
||||
manifest-file:
|
||||
description: "URL to the manifest file containing available versions and download URLs."
|
||||
required: false
|
||||
add-problem-matchers:
|
||||
description: "Add problem matchers."
|
||||
default: "true"
|
||||
outputs:
|
||||
uv-version:
|
||||
description: "The installed uv version. Useful when using latest."
|
||||
uv-path:
|
||||
description: "The path to the installed uv binary."
|
||||
uvx-path:
|
||||
description: "The path to the installed uvx binary."
|
||||
cache-hit:
|
||||
description: "A boolean value to indicate a cache entry was found"
|
||||
runs:
|
||||
|
||||
39
biome.json
39
biome.json
@@ -1,20 +1,34 @@
|
||||
{
|
||||
"$schema": "https://biomejs.dev/schemas/1.9.2/schema.json",
|
||||
"vcs": {
|
||||
"enabled": true,
|
||||
"clientKind": "git",
|
||||
"useIgnoreFile": false
|
||||
"$schema": "https://biomejs.dev/schemas/2.2.4/schema.json",
|
||||
"assist": {
|
||||
"actions": {
|
||||
"source": {
|
||||
"organizeImports": "on",
|
||||
"useSortedAttributes": "on",
|
||||
"useSortedKeys": "on"
|
||||
}
|
||||
}
|
||||
},
|
||||
"files": {
|
||||
"ignoreUnknown": false,
|
||||
"ignore": ["dist", "lib", "node_modules"]
|
||||
"includes": [
|
||||
"**",
|
||||
"!**/dist",
|
||||
"!**/lib",
|
||||
"!**/node_modules",
|
||||
"!**/package*.json",
|
||||
"!**/known-checksums.*"
|
||||
]
|
||||
},
|
||||
"formatter": {
|
||||
"enabled": true,
|
||||
"indentStyle": "space"
|
||||
},
|
||||
"organizeImports": {
|
||||
"enabled": true
|
||||
"javascript": {
|
||||
"formatter": {
|
||||
"quoteStyle": "double",
|
||||
"trailingCommas": "all"
|
||||
}
|
||||
},
|
||||
"linter": {
|
||||
"enabled": true,
|
||||
@@ -22,10 +36,9 @@
|
||||
"recommended": true
|
||||
}
|
||||
},
|
||||
"javascript": {
|
||||
"formatter": {
|
||||
"quoteStyle": "double",
|
||||
"trailingCommas": "all"
|
||||
}
|
||||
"vcs": {
|
||||
"clientKind": "git",
|
||||
"enabled": true,
|
||||
"useIgnoreFile": false
|
||||
}
|
||||
}
|
||||
|
||||
48962
dist/save-cache/index.js
generated
vendored
48962
dist/save-cache/index.js
generated
vendored
File diff suppressed because one or more lines are too long
67492
dist/setup/index.js
generated
vendored
67492
dist/setup/index.js
generated
vendored
File diff suppressed because one or more lines are too long
42839
dist/update-known-checksums/index.js → dist/update-known-versions/index.js
generated
vendored
42839
dist/update-known-checksums/index.js → dist/update-known-versions/index.js
generated
vendored
File diff suppressed because one or more lines are too long
7907
package-lock.json
generated
7907
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
35
package.json
35
package.json
@@ -6,14 +6,12 @@
|
||||
"main": "dist/index.js",
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"format": "biome format --fix",
|
||||
"format-check": "biome format",
|
||||
"lint": "biome lint --fix",
|
||||
"package": "ncc build -o dist/setup src/setup-uv.ts && ncc build -o dist/save-cache src/save-cache.ts && ncc build -o dist/update-known-checksums src/update-known-checksums.ts",
|
||||
"check": "biome check --write",
|
||||
"package": "ncc build -o dist/setup src/setup-uv.ts && ncc build -o dist/save-cache src/save-cache.ts && ncc build -o dist/update-known-versions src/update-known-versions.ts",
|
||||
"test": "jest",
|
||||
"act": "act pull_request -W .github/workflows/test.yml --container-architecture linux/amd64 -s GITHUB_TOKEN=\"$(gh auth token)\"",
|
||||
"update-known-checksums": "RUNNER_TEMP=known_checksums node dist/update-known-checksums/index.js src/download/checksum/known-checksums.ts \"$(gh auth token)\"",
|
||||
"all": "npm run build && npm run format && npm run lint && npm run package && npm test"
|
||||
"update-known-versions": "RUNNER_TEMP=known_versions node dist/update-known-versions/index.js src/download/checksum/known-versions.ts \"$(gh auth token)\"",
|
||||
"all": "npm run build && npm run check && npm run package && npm test"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -23,25 +21,28 @@
|
||||
"author": "@eifinger",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/cache": "^4.0.0",
|
||||
"@actions/cache": "^4.0.5",
|
||||
"@actions/core": "^1.11.1",
|
||||
"@actions/exec": "^1.1.1",
|
||||
"@actions/glob": "^0.5.0",
|
||||
"@actions/io": "^1.1.3",
|
||||
"@actions/tool-cache": "^2.0.2",
|
||||
"@octokit/core": "^6.1.3",
|
||||
"@octokit/plugin-paginate-rest": "^11.4.0",
|
||||
"@octokit/plugin-rest-endpoint-methods": "^13.3.0",
|
||||
"smol-toml": "^1.3.1"
|
||||
"@octokit/core": "^7.0.3",
|
||||
"@octokit/plugin-paginate-rest": "^13.1.1",
|
||||
"@octokit/plugin-rest-endpoint-methods": "^16.0.0",
|
||||
"@renovatebot/pep440": "^4.2.0",
|
||||
"smol-toml": "^1.4.2",
|
||||
"undici": "^7.16.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "1.9.4",
|
||||
"@types/node": "^22.12.0",
|
||||
"@types/semver": "^7.5.8",
|
||||
"@biomejs/biome": "2.2.4",
|
||||
"@types/js-yaml": "^4.0.9",
|
||||
"@types/node": "^24.3.1",
|
||||
"@types/semver": "^7.7.1",
|
||||
"@vercel/ncc": "^0.38.3",
|
||||
"jest": "^29.7.0",
|
||||
"jest": "^30.1.3",
|
||||
"js-yaml": "^4.1.0",
|
||||
"ts-jest": "^29.2.5",
|
||||
"typescript": "^5.7.3"
|
||||
"ts-jest": "^29.4.1",
|
||||
"typescript": "^5.9.2"
|
||||
}
|
||||
}
|
||||
|
||||
23
src/cache/restore-cache.ts
vendored
23
src/cache/restore-cache.ts
vendored
@@ -1,14 +1,17 @@
|
||||
import * as cache from "@actions/cache";
|
||||
import * as core from "@actions/core";
|
||||
import * as exec from "@actions/exec";
|
||||
import { hashFiles } from "../hash/hash-files";
|
||||
import {
|
||||
cacheDependencyGlob,
|
||||
cacheLocalPath,
|
||||
cacheSuffix,
|
||||
pruneCache,
|
||||
pythonVersion as pythonVersionInput,
|
||||
restoreCache as shouldRestoreCache,
|
||||
workingDirectory,
|
||||
} from "../utils/inputs";
|
||||
import { getArch, getPlatform } from "../utils/platforms";
|
||||
import { hashFiles } from "../hash/hash-files";
|
||||
import * as exec from "@actions/exec";
|
||||
|
||||
export const STATE_CACHE_KEY = "cache-key";
|
||||
export const STATE_CACHE_MATCHED_KEY = "cache-matched-key";
|
||||
@@ -16,6 +19,12 @@ const CACHE_VERSION = "1";
|
||||
|
||||
export async function restoreCache(): Promise<void> {
|
||||
const cacheKey = await computeKeys();
|
||||
core.saveState(STATE_CACHE_KEY, cacheKey);
|
||||
|
||||
if (!shouldRestoreCache) {
|
||||
core.info("restore-cache is false. Skipping restore cache step.");
|
||||
return;
|
||||
}
|
||||
|
||||
let matchedKey: string | undefined;
|
||||
core.info(
|
||||
@@ -30,8 +39,6 @@ export async function restoreCache(): Promise<void> {
|
||||
return;
|
||||
}
|
||||
|
||||
core.saveState(STATE_CACHE_KEY, cacheKey);
|
||||
|
||||
handleMatchResult(matchedKey, cacheKey);
|
||||
}
|
||||
|
||||
@@ -53,7 +60,9 @@ async function computeKeys(): Promise<string> {
|
||||
}
|
||||
const suffix = cacheSuffix ? `-${cacheSuffix}` : "";
|
||||
const pythonVersion = await getPythonVersion();
|
||||
return `setup-uv-${CACHE_VERSION}-${getArch()}-${getPlatform()}-${pythonVersion}${cacheDependencyPathHash}${suffix}`;
|
||||
const platform = await getPlatform();
|
||||
const pruned = pruneCache ? "-pruned" : "";
|
||||
return `setup-uv-${CACHE_VERSION}-${getArch()}-${platform}-${pythonVersion}${pruned}${cacheDependencyPathHash}${suffix}`;
|
||||
}
|
||||
|
||||
async function getPythonVersion(): Promise<string> {
|
||||
@@ -63,16 +72,16 @@ async function getPythonVersion(): Promise<string> {
|
||||
|
||||
let output = "";
|
||||
const options: exec.ExecOptions = {
|
||||
silent: !core.isDebug(),
|
||||
listeners: {
|
||||
stdout: (data: Buffer) => {
|
||||
output += data.toString();
|
||||
},
|
||||
},
|
||||
silent: !core.isDebug(),
|
||||
};
|
||||
|
||||
try {
|
||||
const execArgs = ["python", "find"];
|
||||
const execArgs = ["python", "find", "--directory", workingDirectory];
|
||||
await exec.exec("uv", execArgs, options);
|
||||
const pythonPath = output.trim();
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import * as fs from "node:fs";
|
||||
import * as crypto from "node:crypto";
|
||||
import * as fs from "node:fs";
|
||||
|
||||
import * as core from "@actions/core";
|
||||
import { KNOWN_CHECKSUMS } from "./known-checksums";
|
||||
import type { Architecture, Platform } from "../../utils/platforms";
|
||||
import { KNOWN_CHECKSUMS } from "./known-checksums";
|
||||
|
||||
export async function validateChecksum(
|
||||
checkSum: string | undefined,
|
||||
@@ -12,7 +12,7 @@ export async function validateChecksum(
|
||||
platform: Platform,
|
||||
version: string,
|
||||
): Promise<void> {
|
||||
let isValid: boolean | undefined = undefined;
|
||||
let isValid: boolean | undefined;
|
||||
if (checkSum !== undefined && checkSum !== "") {
|
||||
isValid = await validateFileCheckSum(downloadPath, checkSum);
|
||||
} else {
|
||||
|
||||
@@ -1,5 +1,2275 @@
|
||||
// AUTOGENERATED_DO_NOT_EDIT
|
||||
export const KNOWN_CHECKSUMS: { [key: string]: string } = {
|
||||
"aarch64-apple-darwin-0.8.17":
|
||||
"e4d4859d7726298daa4c12e114f269ff282b2cfc2b415dc0b2ca44ae2dbd358e",
|
||||
"aarch64-pc-windows-msvc-0.8.17":
|
||||
"2396749de576e45a40efa35fe94b3f953c3224c21f75c05772593e085d78e77d",
|
||||
"aarch64-unknown-linux-gnu-0.8.17":
|
||||
"9a20d65b110770bbaa2ee89ed76eb963d8c6a480b9ebef584ea9df2ae85b4f0f",
|
||||
"aarch64-unknown-linux-musl-0.8.17":
|
||||
"bd141b7e263935d14f5725f2a5c1c942fd89642e37683cb904f1984ce7e365f4",
|
||||
"arm-unknown-linux-musleabihf-0.8.17":
|
||||
"9d4ffb6751d65a52f8daf3fd88e331ab989d490a6e336d6a96cac668fce17a65",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.17":
|
||||
"014afffa5621986aefbe8a6d71597eb45b8cd3d4e94f825f34ec49ba4cd0c382",
|
||||
"armv7-unknown-linux-musleabihf-0.8.17":
|
||||
"fb976e7482c4550f38c51c5c23b9dae0322c3173f56436bf9a81252e4b74fcfb",
|
||||
"i686-pc-windows-msvc-0.8.17":
|
||||
"f528893452ca512b555b63267292977d237bd6fbdd967c9be6941a65ebf256f4",
|
||||
"i686-unknown-linux-gnu-0.8.17":
|
||||
"d52438a1588ea7c2332dc4aa8c93eedae344fc435c95491037237c7b4b36eae4",
|
||||
"i686-unknown-linux-musl-0.8.17":
|
||||
"9e10f4c57034e6e98dea48b0f4250a7eff983f1b2947d99ed6605a4eb0ec8d22",
|
||||
"loongarch64-unknown-linux-gnu-0.8.17":
|
||||
"1d02e45dbbcbbaa867afe59fd62b294cba47abf1a76e151e19db03b5dbf1c9c8",
|
||||
"powerpc64-unknown-linux-gnu-0.8.17":
|
||||
"6f448735dfd72e2d5c3e3bb541b388c58cdfcf3a562128d5ac1a5f2be47f95d6",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.17":
|
||||
"e4b28cab21eb990e2bea768bc9f43b61e4fd554552cea8868c855027decef69d",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.17":
|
||||
"f653caa34479d405d290b825a2fe782bb26c55a7bfaa870911b4e18792312d45",
|
||||
"s390x-unknown-linux-gnu-0.8.17":
|
||||
"8fae8182704b4b11316c87d897c3e64f2d3f55ac8c58c482d9bbef9ad611f90c",
|
||||
"x86_64-apple-darwin-0.8.17":
|
||||
"31ed353cfd8e6c962e7c60617bd8a9d6b97b704c1ecb5b5eceaff8c6121b54ac",
|
||||
"x86_64-pc-windows-msvc-0.8.17":
|
||||
"0d051779fbcb173b183efeae1c3e96148764fd82709bbbf0966df3efe48b67c5",
|
||||
"x86_64-unknown-linux-gnu-0.8.17":
|
||||
"920cbcaad514cc185634f6f0dcd71df5e8f4ee4456d440a22e0f8c0f142a8203",
|
||||
"x86_64-unknown-linux-musl-0.8.17":
|
||||
"4057052999a210fe78d93599d2165da9e24c8bbb23370cdd26b66a98ab479203",
|
||||
"aarch64-apple-darwin-0.8.16":
|
||||
"87e4b51b735e8445f6c445c7b4c0398273e40d34cd192bad8158736653600cd6",
|
||||
"aarch64-pc-windows-msvc-0.8.16":
|
||||
"392acca957d8d7cccafbb68ce6c4ba29b2ff00c8b0d4744a2136918d3a7bf765",
|
||||
"aarch64-unknown-linux-gnu-0.8.16":
|
||||
"22a3cbaf87776b73c2657ba5d63f8565c1235b65eaf57dffda66061f7a09913b",
|
||||
"aarch64-unknown-linux-musl-0.8.16":
|
||||
"6bd6a11c384f07353c3c7eec9bde094f89b92a12dc09caea9df40c424afebea5",
|
||||
"arm-unknown-linux-musleabihf-0.8.16":
|
||||
"53c31a6559dc4fb22ce8c56640b00a8404b7e4d55f68b6bb3aa188864e2c3084",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.16":
|
||||
"ada6f393d5e5d9cba5445832ba61e8222859e915e5d77a37f5dd35979f3f18e4",
|
||||
"armv7-unknown-linux-musleabihf-0.8.16":
|
||||
"55690f70f9c61963c0069558e205acda9ff0604a44028226b9a0ec3b847c9125",
|
||||
"i686-pc-windows-msvc-0.8.16":
|
||||
"1e727b8af6c0781bc6eb9a2c34e7ee704070b7a2f122544443418e8be13019ee",
|
||||
"i686-unknown-linux-gnu-0.8.16":
|
||||
"4eaf39134663ef184f684be6f6aa83e971fb36ef7d1c67a5f2196268b61c0579",
|
||||
"i686-unknown-linux-musl-0.8.16":
|
||||
"a179ceba9f2fcca7b46a86b12715e28fb3429ff8193ae839700d534e35e95a45",
|
||||
"loongarch64-unknown-linux-gnu-0.8.16":
|
||||
"600a8be6d2621d654b6665d9a8df9370f4af9c0b6ceb851d1ae0d4b895e8e546",
|
||||
"powerpc64-unknown-linux-gnu-0.8.16":
|
||||
"c86008ef8a3e3730b0e58a168542331960c90a3b043e3853c1941457748595f3",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.16":
|
||||
"91645092447a14c23b47d0f434a787a9555b29e061607d9e60d2d556b831f5aa",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.16":
|
||||
"dbaeff3f0baad73c264c35abd937a231fb6b9d1201b6763d82e39e7516358115",
|
||||
"s390x-unknown-linux-gnu-0.8.16":
|
||||
"e29c330a8956c13acb0f2af7aa650dd5d9ebba6aefdceaea77f689953d140780",
|
||||
"x86_64-apple-darwin-0.8.16":
|
||||
"07491a998fd741090501df9bbfe538f85568901a3a66c9e0368636509158727a",
|
||||
"x86_64-pc-windows-msvc-0.8.16":
|
||||
"97fb93678eca3b4f731ea3879ae2e78787976e03f38c9c6fb744ab28bc3aec1b",
|
||||
"x86_64-unknown-linux-gnu-0.8.16":
|
||||
"fc94e50e8ef93a97d723b83faa42888e7710c4443a5b8a1af3aac2cda5390f3a",
|
||||
"x86_64-unknown-linux-musl-0.8.16":
|
||||
"ee220f112b91b23f641d169ba7a3652c6ab7104e7c666d26104ebd6a2f76be43",
|
||||
"aarch64-apple-darwin-0.8.15":
|
||||
"103367962c5cb00bf7370d84cbaa3fec5a9807be9cc833ea9d8eea400c119fa2",
|
||||
"aarch64-pc-windows-msvc-0.8.15":
|
||||
"16d92f21508c5dbd3374466c2cdad2909959a6d3bd06672b9db023f2a5d7a014",
|
||||
"aarch64-unknown-linux-gnu-0.8.15":
|
||||
"6ede0fefa7db7be3d5d9eda8784a8e43b1cf5410720eb3da60ab1d2f66678e82",
|
||||
"aarch64-unknown-linux-musl-0.8.15":
|
||||
"23ea21a05c62c4c307ce691f29bff2f15c94c4f07f2b83d9b356f0664bc8b3a2",
|
||||
"arm-unknown-linux-musleabihf-0.8.15":
|
||||
"deeac755224244b535c9f654b29aad8a165c94840a520d41e5c697235edd0576",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.15":
|
||||
"07ad33bc28ed276944d069eb714322b24167bfe106b4bded01e272fe245934ba",
|
||||
"armv7-unknown-linux-musleabihf-0.8.15":
|
||||
"0b4f73e084a04828f2431c887c2e3eea590ff06a1dc279e473dd1d94cdc8f25d",
|
||||
"i686-pc-windows-msvc-0.8.15":
|
||||
"34425e7dc7323b98fc844d9223596e9a1d2347e6f85a512221428a455dcbea78",
|
||||
"i686-unknown-linux-gnu-0.8.15":
|
||||
"16230e9b785fccb628e920d0fa1ca59b50b0515b838b2bb80f997bcb7a35f2bb",
|
||||
"i686-unknown-linux-musl-0.8.15":
|
||||
"43d554953beac56a8d8ba23aeb2b0e0e5c43020b074071c15df5d492e46a81f3",
|
||||
"powerpc64-unknown-linux-gnu-0.8.15":
|
||||
"71465b1d08e0a4cb3fcfe02e127104400a85ed00c30ec5f53f8705e71567fb6a",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.15":
|
||||
"54157ee5e01b02b8c89131391d62228787750b556bbdb7d3428a3cdfd1698102",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.15":
|
||||
"faa4a470a26ad0db0dbefc510fac91fa0da4d9cd06ca4f229933f7aac21e46b2",
|
||||
"s390x-unknown-linux-gnu-0.8.15":
|
||||
"0bb022274375745352a748b8332bb170941fe01915a1670c2c6d06d182783437",
|
||||
"x86_64-apple-darwin-0.8.15":
|
||||
"2bbef70982e97dfc36454de173f35ec1a5e83ae11e3885df6a50db3fd76171cb",
|
||||
"x86_64-pc-windows-msvc-0.8.15":
|
||||
"459d95892a5cc5c21779532f4f41b9238594b79e312a5142da2148ecfa10e705",
|
||||
"x86_64-unknown-linux-gnu-0.8.15":
|
||||
"be9878e9d08ebcb621a683aba52e7fb8bbf92b2532e0d759026ffcc067673042",
|
||||
"x86_64-unknown-linux-musl-0.8.15":
|
||||
"d0fec58f3124e05e0a1af0f6541abfce4333253cdaf23c7b6bb2e6128bf138ea",
|
||||
"aarch64-apple-darwin-0.8.14":
|
||||
"281ea18a5778099f7edeee0a7b20671d14918782de153604c939486f2b8a2791",
|
||||
"aarch64-pc-windows-msvc-0.8.14":
|
||||
"d7fef1d1d0b0f8e0aa94391376fe5fb95f0e213ef7ee1c498c287fe0ea76f886",
|
||||
"aarch64-unknown-linux-gnu-0.8.14":
|
||||
"69616218470b2ad053617efb9e7027b1518ea38918d933c2791e113d99cec507",
|
||||
"aarch64-unknown-linux-musl-0.8.14":
|
||||
"d492d433d8ea87a4051c3f071ed04f13f8f001aa782e2e8192eaa5143e9a6f39",
|
||||
"arm-unknown-linux-musleabihf-0.8.14":
|
||||
"ef6a51cc1808de75969e2719420464d494bb5932d18ebf3ac07df7a5ab27b16a",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.14":
|
||||
"75c77b40c39dd526f88f5119d686e44d95c10cece436e4306f0db32b94d91716",
|
||||
"armv7-unknown-linux-musleabihf-0.8.14":
|
||||
"33a15d40d407323a516edabdc4eb33bbefc04e17d40769a04bfc15605d2eee1e",
|
||||
"i686-pc-windows-msvc-0.8.14":
|
||||
"b43c5703cdfb15c019b04cad2ef19034a91e8a0872ae2d674d366dfc0a755124",
|
||||
"i686-unknown-linux-gnu-0.8.14":
|
||||
"d49a796d569b010d43eeb8d9259f1a12fa910176b076c04c13609648973f428e",
|
||||
"i686-unknown-linux-musl-0.8.14":
|
||||
"cee58d8fe55f59a0869039f83875ee44a4a12b3b3f1f1f5a2bdc68968e449f54",
|
||||
"powerpc64-unknown-linux-gnu-0.8.14":
|
||||
"f118e642a7e360384a0277980986cea4857cc2d90364d58865d941c6b8abfcd1",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.14":
|
||||
"c411e63edd125283641420bb4be830872be269451756de2095aebc3ca8b0277a",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.14":
|
||||
"1bb13f9d1a3e55dcea09f3b99b35ec0fbd3428276311b068268b07cd07c5b067",
|
||||
"s390x-unknown-linux-gnu-0.8.14":
|
||||
"8643d6ab3513ab4adc3ffb56c39813651725d047ee6af5de3ae1fd0e4975c364",
|
||||
"x86_64-apple-darwin-0.8.14":
|
||||
"567d98b0c541a68df8aaa2c3214242c4070068b2edaea1be376a4c0fa348bdf1",
|
||||
"x86_64-pc-windows-msvc-0.8.14":
|
||||
"3f68ab95d2856e6b238e0e3f4255a723ccdc2cf1d4b8e53f5a4f5a47b645dc72",
|
||||
"x86_64-unknown-linux-gnu-0.8.14":
|
||||
"954add045f29f93191523175e4aea066996840e86c1b6339dee25f48b15b5ddb",
|
||||
"x86_64-unknown-linux-musl-0.8.14":
|
||||
"e018287fb321c3c633df2b622c2cf53042caa5c4c43a4ca6431bcb38e0685fa4",
|
||||
"aarch64-apple-darwin-0.8.13":
|
||||
"c3eddc0e314abb8588f1cdf312f0b060d79e1906eff8f43b64a05ff5e2727872",
|
||||
"aarch64-pc-windows-msvc-0.8.13":
|
||||
"5b3a80d385d26fb9f63579a0712d020ec413ada38a6900e88fdfd41b58795b7e",
|
||||
"aarch64-unknown-linux-gnu-0.8.13":
|
||||
"3bb77b764618f65a969da063d1c4a507d8de5360ca2858f771cab109fa879a4d",
|
||||
"aarch64-unknown-linux-musl-0.8.13":
|
||||
"40ba6e62de35820e8460eacee2b5b8f4add70a834d3859f7a60cdfc6b19ab599",
|
||||
"arm-unknown-linux-musleabihf-0.8.13":
|
||||
"f108a49a17b0700d7121b0215575f96c46a203774ed80ef40544005d7af74a67",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.13":
|
||||
"730d8ef57f221ecc572d47b227ecbd8261be08157efb351311f7bc1f6c1c944a",
|
||||
"armv7-unknown-linux-musleabihf-0.8.13":
|
||||
"b78dacab7c2fb352301d8997c0c705c3959a4e44d7b3afe670aee2397a2c9ab3",
|
||||
"i686-pc-windows-msvc-0.8.13":
|
||||
"08482edef8b077e12e73f76e6b4bb0300c054b8009cfac5cc354297f47d24623",
|
||||
"i686-unknown-linux-gnu-0.8.13":
|
||||
"0ce384911d4af9007576ceba2557c5d474a953ced34602ee4e09bd888cee13c0",
|
||||
"i686-unknown-linux-musl-0.8.13":
|
||||
"b6462dc8190c7a1eafa74287d8ff213764baa49e098aeeb522fa479d29e1c0bf",
|
||||
"powerpc64-unknown-linux-gnu-0.8.13":
|
||||
"9a8e8a8927df9fa39af79214ab1acfc227dba9d9e690a424cef1dc17296161a8",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.13":
|
||||
"4880a8e2ba5086e7ed4bd3aecfdae5e353da569ddaac02cd3db598b4c8e77193",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.13":
|
||||
"0cd68055cedbc5b1194e7e7ab2b35ac7aa1d835c586fb3778c7acb0e8a8ac822",
|
||||
"s390x-unknown-linux-gnu-0.8.13":
|
||||
"8cc2e70bee35c9e437c2308f130b79acc0d7c43e710296990ed76e702e220912",
|
||||
"x86_64-apple-darwin-0.8.13":
|
||||
"b799253441726351bc60c2e91254a821001e5e2e22a0e2b077d8983f583e8139",
|
||||
"x86_64-pc-windows-msvc-0.8.13":
|
||||
"60870fa18d438737088e533ed06617549e42531c522cc9a8fe4455d8e745dc29",
|
||||
"x86_64-unknown-linux-gnu-0.8.13":
|
||||
"8ca3db7b2a3199171cfc0870be1f819cb853ddcec29a5fa28dae30278922b7ba",
|
||||
"x86_64-unknown-linux-musl-0.8.13":
|
||||
"38ade73396b48fce89d9d1cb8a7e8f02b6e18a2d87467525ee8fb7e09899f70d",
|
||||
"aarch64-apple-darwin-0.8.12":
|
||||
"a3f78d20465c6d18f7072f118ce1c61b164b98698fdc37357e72958c7d1b68fd",
|
||||
"aarch64-pc-windows-msvc-0.8.12":
|
||||
"eb0c7e47411d11cbc3990eef51a5e10215a1fc9d5f5058fd8e952da94be16512",
|
||||
"aarch64-unknown-linux-gnu-0.8.12":
|
||||
"9a8a53df515bd64d423c85ace7ddca08fb9a91d8a115934c4495b5cf74c60ea6",
|
||||
"aarch64-unknown-linux-musl-0.8.12":
|
||||
"de85bafc3e238a4fce87eb6a4e584c9c04721475abb9e5f6fe186bdce650763f",
|
||||
"arm-unknown-linux-musleabihf-0.8.12":
|
||||
"5fe2f13d8c62d410278fbd69b0c1f03be5bd2c40168a98dc8fc82bca64c2eaad",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.12":
|
||||
"6ddde49d5fcc04a90855f31b5cb500146dac23f31d16f6d7fa7da1ae481eab1e",
|
||||
"armv7-unknown-linux-musleabihf-0.8.12":
|
||||
"39b626f438c22a3122546445d581fe02b6fc449649b4890f44791af4f3d3c18b",
|
||||
"i686-pc-windows-msvc-0.8.12":
|
||||
"97e0e04648e48cccdd25210f5eaf6fb2d46f1a198983b7de10613faf1629663d",
|
||||
"i686-unknown-linux-gnu-0.8.12":
|
||||
"74484899512bb91ed4bd64d117284c20912c39c600cc775d6ef1bf278d6c2a94",
|
||||
"i686-unknown-linux-musl-0.8.12":
|
||||
"b1e303c231068a3a419b12d3ba4dc852931740ab3ad691c7a87309327eac732f",
|
||||
"powerpc64-unknown-linux-gnu-0.8.12":
|
||||
"455bd841952724bff1f45dad91555ce2a33c837cc8d734ca39afaa0ac3c8385d",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.12":
|
||||
"30f1191e997d8d2845b27f57ce30e8d3643994161b7d099caf81fde22d723fa6",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.12":
|
||||
"1e9e7ca966999161ef5174d28a18777d2a143c081a63d455f5b7fd5a1513d2e7",
|
||||
"s390x-unknown-linux-gnu-0.8.12":
|
||||
"55ec25ef06c1e0c095f2baa1a12ce38879db8db99a4b046286a9573dd3c605d5",
|
||||
"x86_64-apple-darwin-0.8.12":
|
||||
"467b462e854bc750fcad8e3ad35e2aca0d301c9287f2365afad8c17b7672b6a8",
|
||||
"x86_64-pc-windows-msvc-0.8.12":
|
||||
"3fb92ce0860db7cb094ddeeb1ac521532fdd3e61d0a130f7bbc6be54caca7c2e",
|
||||
"x86_64-unknown-linux-gnu-0.8.12":
|
||||
"f976ebdc612e71209f46664ab6c0325fa0090059b4474e047edd39eb9395373b",
|
||||
"x86_64-unknown-linux-musl-0.8.12":
|
||||
"fa682c444b8a57a0984129d0989801fb0406f9238a57df76fdde063c6b2339c2",
|
||||
"aarch64-apple-darwin-0.8.11":
|
||||
"c9e74f779a65798057bca2ff328d5c9952f458391e220c3d3216d7a03a338d9f",
|
||||
"aarch64-pc-windows-msvc-0.8.11":
|
||||
"09c6cc8c511d166dc12c9e56ce06c92de928a2e5bad14fc079654901dc8ea114",
|
||||
"aarch64-unknown-linux-gnu-0.8.11":
|
||||
"472dbebd1369049e58d3bbeaae663b212e691676cfd15d799e4faca616d37264",
|
||||
"aarch64-unknown-linux-musl-0.8.11":
|
||||
"1c6045bec4d5ca17777dd271401a0407c5acad79f74fd38f35c31ca64c689808",
|
||||
"arm-unknown-linux-musleabihf-0.8.11":
|
||||
"84da6bfdf9ee693c7278770e1d16d0d5e3ba5ea8f913d7fed13e9854aad95e31",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.11":
|
||||
"a27bb0ae23d0584f1a6a7f851362cb52687bbd22ecce37cc80f3eeca0925dac4",
|
||||
"armv7-unknown-linux-musleabihf-0.8.11":
|
||||
"29605e9724eb7c68bc67892b4d8bcc28d03c1cb1125cb3dd783e81dd61cc15b5",
|
||||
"i686-pc-windows-msvc-0.8.11":
|
||||
"17e45a6afa19443a9749668540a033e9fedd3d6bec1ad8952d10da1f40ed9e92",
|
||||
"i686-unknown-linux-gnu-0.8.11":
|
||||
"85fb818676480ac0cc0f7219e4fd96667d851790c4dd054dc84f304128d88817",
|
||||
"i686-unknown-linux-musl-0.8.11":
|
||||
"194bc103af40c2a15b0a2e86e5eaad53a5219243df8e296d98e9c6269f67e0b3",
|
||||
"powerpc64-unknown-linux-gnu-0.8.11":
|
||||
"fde3e344ee3ef3eabc4803a27a05f06b082819d09153ec126b09f93882e54082",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.11":
|
||||
"a1de2c76674c5566e27f8a5b8868b4f416ec659ad657aa87ccc2d17f9cfeaac5",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.11":
|
||||
"c068fe0b27b7b91d79c3505fcca16ea8dc2df499e6420877bd5cf75b26f5304f",
|
||||
"s390x-unknown-linux-gnu-0.8.11":
|
||||
"e4d8ee92b9e20a7713cf7a9f7d7b288d9d726e7e96d874aaa20e3acc1d408287",
|
||||
"x86_64-apple-darwin-0.8.11":
|
||||
"7ed76b0cc314fa0cb6dd7ae99379efd3cf8fc14d71af8d71b0b5238582c7958d",
|
||||
"x86_64-pc-windows-msvc-0.8.11":
|
||||
"3e802b69307b10f228c8f1d096bd5721ac37a133bf33672f9fcc46a58dd5c920",
|
||||
"x86_64-unknown-linux-gnu-0.8.11":
|
||||
"0c6078318332c100d7d9988ea99144b534e40adef2958aa314a9f7c7b8516ed7",
|
||||
"x86_64-unknown-linux-musl-0.8.11":
|
||||
"0c66f4d06a4f933bddf75d4ad64e0e2d717f015ba1876c51e32ff293c84f57d5",
|
||||
"aarch64-apple-darwin-0.8.10":
|
||||
"5200278ae00b5c0822a7db7a99376b2167e8e9391b29c3de22f9e4fdebc9c0e8",
|
||||
"aarch64-pc-windows-msvc-0.8.10":
|
||||
"c51b02188c312baef71187273afa625576101e5680739eab83b1b09ca5d2f3a8",
|
||||
"aarch64-unknown-linux-gnu-0.8.10":
|
||||
"de60f5e3d69b54e6196fb8937fef4feb15e239f0fd14278e77e44dbb353214ae",
|
||||
"aarch64-unknown-linux-musl-0.8.10":
|
||||
"704f202ca92386eaa095706ec7e26c4f052f7e17721767d4ee18c676565c51b1",
|
||||
"arm-unknown-linux-musleabihf-0.8.10":
|
||||
"51d1244dd7f23d8aa021fa4d2a662a3727b27241e0ceb6f11820cb495611965f",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.10":
|
||||
"ce22ffada0356570f63ad0aae096226f1c45c3d561023b3fb2b1f0936f2b804c",
|
||||
"armv7-unknown-linux-musleabihf-0.8.10":
|
||||
"9ee0a14ec4fa263095bae4da329602f7735d914db4ad59079b47d714bfb95409",
|
||||
"i686-pc-windows-msvc-0.8.10":
|
||||
"e62a2549135b4b9474c18e7bc9f0937837012dd9039f6b4b2c109a1cf99ad925",
|
||||
"i686-unknown-linux-gnu-0.8.10":
|
||||
"cdd36af87ca53ec6b8cc4507e85c9ca54c40fd77613633a1095a1a2f317a0563",
|
||||
"i686-unknown-linux-musl-0.8.10":
|
||||
"658f14b093e3bf4ffcad645fe27d7aa2f8f18a6f625a22a246288c6368a4d88f",
|
||||
"powerpc64-unknown-linux-gnu-0.8.10":
|
||||
"f16d77cfca0dfca2bcef7cc556e0316ba5fdc61b1c3387d60b7c40e12f6617dd",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.10":
|
||||
"00bc1b47078520c588dbd383700d35c786ac2fa3e53c9fca51c5410581f8c87e",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.10":
|
||||
"db605bb442563f0494c174be639b9d80fcc4e27e360a31ad2675005ea1a1e3ab",
|
||||
"s390x-unknown-linux-gnu-0.8.10":
|
||||
"83ca774828d652ce9dd1d6e2619e66c471e2cb236754783019b9ae0f4da72718",
|
||||
"x86_64-apple-darwin-0.8.10":
|
||||
"3b935381af9124a5d5da48235e149f5f0662f2717e75782d1b843d39d9265d6d",
|
||||
"x86_64-pc-windows-msvc-0.8.10":
|
||||
"37fcd011fd22b2a569f7e583a924af2d624d99445f669752923a2fd3841f8e3d",
|
||||
"x86_64-unknown-linux-gnu-0.8.10":
|
||||
"2c4392591fe9469d006452ef22f32712f35087d87fb1764ec03e23544eb8770d",
|
||||
"x86_64-unknown-linux-musl-0.8.10":
|
||||
"4031c6f7ac3890f29c72e0ea655add58b8fa1c678d20afcf57efa51e57751732",
|
||||
"aarch64-apple-darwin-0.8.9":
|
||||
"c233bee389c15fdef09a6028db61cc54a12e6171f27d6d9c018eedca5bbbd011",
|
||||
"aarch64-pc-windows-msvc-0.8.9":
|
||||
"7dc9b954e236f842c2120bdb50307f23104ca20a52896c7ae0ea0100904b2aed",
|
||||
"aarch64-unknown-linux-gnu-0.8.9":
|
||||
"03108a851cb87ce44069767e0ae7907d9a31180bdd64913852fcde25848d84f2",
|
||||
"aarch64-unknown-linux-musl-0.8.9":
|
||||
"fb1f2800bfd0bc9a121269e276653899c726d81cd08d6299f0fb34b4b0d61fcf",
|
||||
"arm-unknown-linux-musleabihf-0.8.9":
|
||||
"9a73ca16557efd21d4dad17759261c6f93eb4079a95bb39c578998ad787ee871",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.9":
|
||||
"a6be2240c8bf070baaed8ee0a9071fe5f33b2fad55f67d39fcdc8ea720ff668a",
|
||||
"armv7-unknown-linux-musleabihf-0.8.9":
|
||||
"758bf39e33d3162fe6ec7bd5f359cc78daf8ce46b2300dec6c31f37b705521f9",
|
||||
"i686-pc-windows-msvc-0.8.9":
|
||||
"25988dae5e7698de1a6ff4bf08ed336d138710ee52f52de60859b99acf2bc96b",
|
||||
"i686-unknown-linux-gnu-0.8.9":
|
||||
"02a140e4d0af8d469ec088eff51ed9b232c76cfa02d4df0b84b7567c2d6ab95e",
|
||||
"i686-unknown-linux-musl-0.8.9":
|
||||
"99fa13e9079901365277b9b409a2892afe2efb0260f940388cadb2d56d706766",
|
||||
"powerpc64-unknown-linux-gnu-0.8.9":
|
||||
"604102c2bf07fbb3cc26bcb6b95e60cac55d74b4e21f1cee4b2d5f58930aa5cf",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.9":
|
||||
"8ab18629d8a71a4188761e4e2b0eca0970690f13c85697ad232fe8b22e8d5a99",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.9":
|
||||
"757944803901c5ca4049147e28e429e34c04d5ac5fe78728396ec4b810063b00",
|
||||
"s390x-unknown-linux-gnu-0.8.9":
|
||||
"b78f56186edfed8f117ed1fa09fc59ad9932864ae4e655ae61f3e205846c7ced",
|
||||
"x86_64-apple-darwin-0.8.9":
|
||||
"27fe8645c2599b672c3a6c865131a3d916eed9a3ba7cff5a0b863e01a473df66",
|
||||
"x86_64-pc-windows-msvc-0.8.9":
|
||||
"b08d68a0d86e4d0d1b5fa439ffa73ac90df2305c595f617ba9d9b5e8740a8efb",
|
||||
"x86_64-unknown-linux-gnu-0.8.9":
|
||||
"1056ab7c04bf9030dc0623c260fae0b414675775f333f318918000f667da6ee1",
|
||||
"x86_64-unknown-linux-musl-0.8.9":
|
||||
"6bb907345f9100978d3529c8a5b2cbb4e831080909c51a5bff714b491251303e",
|
||||
"aarch64-apple-darwin-0.8.8":
|
||||
"9de9365997d7579d27cdbc132883343b3c47add16804f11be679375037dec33a",
|
||||
"aarch64-pc-windows-msvc-0.8.8":
|
||||
"3029df83f2b40d2fa0cc896aed8a157afd02e8ce767064d80923e166e46b75ce",
|
||||
"aarch64-unknown-linux-gnu-0.8.8":
|
||||
"4e144807bef9a3b6f44fd5e4084d5010738787745c07e09dee4f008e8bee17a8",
|
||||
"aarch64-unknown-linux-musl-0.8.8":
|
||||
"fb7785d31a64f416ef67292ba3717781ef4eb1d6f93b6e30715d9127e862de2b",
|
||||
"arm-unknown-linux-musleabihf-0.8.8":
|
||||
"fb8ea8fa543322b4901b5acc585e1373dafd996d9aadce7d0c00c00ad36f2cdd",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.8":
|
||||
"684538c1aa5da718abb86b0f5a3c5d2eb05a11520e5c87a2b75050751adcc8c6",
|
||||
"armv7-unknown-linux-musleabihf-0.8.8":
|
||||
"c5eebbf9ae549ca45f563a9a9770c1534854a5c4056acac0ab3779b9e1f24d75",
|
||||
"i686-pc-windows-msvc-0.8.8":
|
||||
"9ec9bf63460e0625cd941a5bbe0775b99c33def5a2f1fe6cbc9e99e167fea33e",
|
||||
"i686-unknown-linux-gnu-0.8.8":
|
||||
"d934b2f6c892a25d928cdc2dfd42b3e925011992603879d2035bc7b15a236c35",
|
||||
"i686-unknown-linux-musl-0.8.8":
|
||||
"a5b258ee1f686bb58f912ce8c5def3531e0e4cd2bcfe3ee332bfaf3b35e674e0",
|
||||
"powerpc64-unknown-linux-gnu-0.8.8":
|
||||
"23dc87674b030bf4d7f4f1cd1b903d18ccaec43af0373d62e309ee79cbe2c2f8",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.8":
|
||||
"6a72bb057073ca989690882ac0ae70e6825151e0d2d52d37540be2dd41d70b56",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.8":
|
||||
"f107450c910336bfc636208d4d0430a8a6581d98824a4deee5715ac72b73c97a",
|
||||
"s390x-unknown-linux-gnu-0.8.8":
|
||||
"5aafe51b39dc715c887d6c1960d82659fa18a7505d0050e6eba36ae5956e4c96",
|
||||
"x86_64-apple-darwin-0.8.8":
|
||||
"3346a3d4a45d7457dafadcc1715e8e529e5b65c27aaba2417db4b0b32a8cbac6",
|
||||
"x86_64-pc-windows-msvc-0.8.8":
|
||||
"ac76b826e5ba70c7a041e9ee344cbcba2919cdd3010fff7f1a83b7864911633e",
|
||||
"x86_64-unknown-linux-gnu-0.8.8":
|
||||
"ecc2e39de86afea661c145f33f6a89a45b1d2427d51a22b458e2c64238794180",
|
||||
"x86_64-unknown-linux-musl-0.8.8":
|
||||
"80ee2bde42e1cc39c59ae8a3a20f5b73127b90ece009ef7bdd13ab189ff0c353",
|
||||
"aarch64-apple-darwin-0.8.7":
|
||||
"d1f056d2d04b07a69d2be6ed7eb07ece12dda26570a9af316309787865eba374",
|
||||
"aarch64-pc-windows-msvc-0.8.7":
|
||||
"5e0fdc7ebe4f237fa1b24a95116243e6c5fb52e0601aed3b7ca24b6a76b6c2ec",
|
||||
"aarch64-unknown-linux-gnu-0.8.7":
|
||||
"405965165e6c5a782d9b69e1a641a491533cec80390b0bfbe95eedcf5cdc5078",
|
||||
"aarch64-unknown-linux-musl-0.8.7":
|
||||
"70fa63fca7c7b1ccb5a96b8b5691f8dee2f2caeb61fcf6a110227e3f55fcf94c",
|
||||
"arm-unknown-linux-musleabihf-0.8.7":
|
||||
"172e93344f2aaee552e606150a1d9bd8de2df2716c81ecc332904e4b2713b964",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.7":
|
||||
"3277a9db5244767ed6e8848e487377dea69b67e0a196886696263ddbc5681daf",
|
||||
"armv7-unknown-linux-musleabihf-0.8.7":
|
||||
"3170d7251d8d2ab40c86a1b20221d6486baf5f52e7069525893cf20481cc8281",
|
||||
"i686-pc-windows-msvc-0.8.7":
|
||||
"f97b09e12f10e8e77b1519124f1f16720bbd64bc0436cad0868f4a2927a7a0e0",
|
||||
"i686-unknown-linux-gnu-0.8.7":
|
||||
"0e88d6a9f088f6632026d7009559d519598876db8b46540dcc6ff015bbf16b85",
|
||||
"i686-unknown-linux-musl-0.8.7":
|
||||
"1ab32b294aa94846ee9d1c2597ea8f617aade1e7faf2c8e460d5414d87dd8a58",
|
||||
"powerpc64-unknown-linux-gnu-0.8.7":
|
||||
"52fe0acf3cb57ee33407c1a2d25e66ec08ac6c4a259e016a54ea34cfe749f148",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.7":
|
||||
"ad8d7a098c7f1603adb55bf794a6ba952c715d5d05112482a6c9a9b63d04fef8",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.7":
|
||||
"f6bea3521a2d5b1593cb8f18d54237d0ae3b388cbd2cce83c1dcd4b512dde1a6",
|
||||
"s390x-unknown-linux-gnu-0.8.7":
|
||||
"ee877021eb1862d9d0cc37697267a01cfdae307c6a8bf7ece27ae92b330fd2d9",
|
||||
"x86_64-apple-darwin-0.8.7":
|
||||
"dca85ae222d59ddbd83f61355561d3183cce9d23eb5931c41646499f43cb2b93",
|
||||
"x86_64-pc-windows-msvc-0.8.7":
|
||||
"0baf6d021ca283df5e5c768ff51281043fefc889ac14aff8ce58189453166eef",
|
||||
"x86_64-unknown-linux-gnu-0.8.7":
|
||||
"060f68b7e86fee70ed19b852934ce6f05bb15d42894ce4a26c34a18b4c3cd511",
|
||||
"x86_64-unknown-linux-musl-0.8.7":
|
||||
"b1283a1b42f81dc79c2e58eb77a41e21fd4c59344d3d19e72810ab031ba93771",
|
||||
"aarch64-apple-darwin-0.8.6":
|
||||
"15269226c753f01137b5a35c79e59ab46d8aab25a242641fdc4003a6d0a831ff",
|
||||
"aarch64-pc-windows-msvc-0.8.6":
|
||||
"a2891f1f1c56e717115579da655951007e2e5e498535b473d9f7cbffe7369e1a",
|
||||
"aarch64-unknown-linux-gnu-0.8.6":
|
||||
"6fd314ca589788265ff99ec754bd2fa2a5d090ef592ddbbe8ded6b141615a491",
|
||||
"aarch64-unknown-linux-musl-0.8.6":
|
||||
"d78076c7e0dfcd3580736c11e009ef856bd13015f00406e3ded1fc895e2104ba",
|
||||
"arm-unknown-linux-musleabihf-0.8.6":
|
||||
"87d33a579cc2ee986e3163bb5de1791c6052ef8716d5fb8d8bf73aa2e5f1bf66",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.6":
|
||||
"4139d74dfe3192bc71dacd3cf0cdf6a006d121db2c4d841e08f369761baaf00e",
|
||||
"armv7-unknown-linux-musleabihf-0.8.6":
|
||||
"5d4d117cebddc7dbdbf6e1410c65868f113a75700acac77eed28dfdc0411c113",
|
||||
"i686-pc-windows-msvc-0.8.6":
|
||||
"4eaa185b61f9cfe73ab7534de7282e51cc0f6bf47361429bdcbb6a5f3264f6e4",
|
||||
"i686-unknown-linux-gnu-0.8.6":
|
||||
"7fb9324cfb0c57a9b9145e73598794c7bc4df01f50730bd926d4ab10d4fc59ff",
|
||||
"i686-unknown-linux-musl-0.8.6":
|
||||
"3c2e2d69e8da093df76ffffa9758669c33ae47624f73d06ec2a83a363f17fbd4",
|
||||
"powerpc64-unknown-linux-gnu-0.8.6":
|
||||
"264dbfddd58cdbd35b33ea24dd802a3409eae1d4516d057bdff88df2e257eaa2",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.6":
|
||||
"d34c6d7df2ed9e9739bc0313875e602a943b17fccbf1127f824a5ff9a3253bb5",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.6":
|
||||
"6bcd5a72977a4362f042cc2568960b5a42c1f13240ada6b1cce6aa2f6d6a3e42",
|
||||
"s390x-unknown-linux-gnu-0.8.6":
|
||||
"8b4372280249038ea5824937d6e1ca7e2192061bd38f3362200133ff55cbb9c3",
|
||||
"x86_64-apple-darwin-0.8.6":
|
||||
"4b1da363d8913a85a4a40df6620ae800b16c62beb54f60b1d336432644cb12bb",
|
||||
"x86_64-pc-windows-msvc-0.8.6":
|
||||
"f7ed402ea1e4d7fb2b2490e1a097e9849bfdaaa689521d290bdce5478db0428f",
|
||||
"x86_64-unknown-linux-gnu-0.8.6":
|
||||
"5429c9b96cab65198c2e5bfe83e933329aa16303a0369d5beedc71785a4a2f36",
|
||||
"x86_64-unknown-linux-musl-0.8.6":
|
||||
"0d89cffae3ad1c4ae2d4da06f71ad4539974185a31f7c196a6151b400bf84039",
|
||||
"aarch64-apple-darwin-0.8.5":
|
||||
"467e875ac84ac2155f048b56e33741d7dee6f02369048d5b6c05b74b745411e2",
|
||||
"aarch64-pc-windows-msvc-0.8.5":
|
||||
"8d3dda6ff64065e65b49ecd42018a885c0f20e6967af950ef121f976d73e72db",
|
||||
"aarch64-unknown-linux-gnu-0.8.5":
|
||||
"db05450c7c1e9dd51eeaf4b59c3bc3721bd9146e7ad95e87f5736d45c4037ae0",
|
||||
"aarch64-unknown-linux-musl-0.8.5":
|
||||
"400771c1136c9d5cf624bb1695b08d46a4e4e0fc2c9b8897e7be950ac5e00ae0",
|
||||
"arm-unknown-linux-musleabihf-0.8.5":
|
||||
"7dcd2a34735d2871714ee4993cf0227492c860ab089691a30f6a65d48ec469b6",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.5":
|
||||
"0032fa90b0a74559ac965538178499de6b396ec7ff9b8d8134f442d2d3079f8a",
|
||||
"armv7-unknown-linux-musleabihf-0.8.5":
|
||||
"daab0e8f9b563dcbd6bc6ac517a5f9ebe1b1dca9671011d40012c73f0cde8cd0",
|
||||
"i686-pc-windows-msvc-0.8.5":
|
||||
"2c133809d2839eac93341a14df6fb16bf834ae3c7582f069cf24ccc60cf367f7",
|
||||
"i686-unknown-linux-gnu-0.8.5":
|
||||
"6c6b88bf178f5bd508523457a589e09c885deb57983f8d73dfdd43794d6decfb",
|
||||
"i686-unknown-linux-musl-0.8.5":
|
||||
"5968f60135941a2bcca742bf44854bbbe8adfba4d0a170f5991d95572c0e4d26",
|
||||
"powerpc64-unknown-linux-gnu-0.8.5":
|
||||
"a4e7b7dca6386b8623c12581ecb606b31a9df53ca8acbbb14dec5ceaa23c1603",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.5":
|
||||
"1d521c56d8ee83b90f15350f1cebb506e2441e574b27acdbdfce8449ddbfa1c3",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.5":
|
||||
"ca7536b206090982e6f90d566bc441598a6aaad4cfc885618f12051c51a0e454",
|
||||
"s390x-unknown-linux-gnu-0.8.5":
|
||||
"92fd077879ea943775bebf49d3515b5da8a237bcb9a975b2476183946b6ed017",
|
||||
"x86_64-apple-darwin-0.8.5":
|
||||
"9ee5b34975ab4659345fc96cc08098d7ec871cdfa969a5774894bcaebdaf3b58",
|
||||
"x86_64-pc-windows-msvc-0.8.5":
|
||||
"898049e2db4a92e59bf1da7e14cad9b5afadb7d0cf9dd55a5274825290f7ba6d",
|
||||
"x86_64-unknown-linux-gnu-0.8.5":
|
||||
"9db7e7db3cf98ddb57954bfb72c9ba4b8a4514b910e666e3c57e8b4e83a0d630",
|
||||
"x86_64-unknown-linux-musl-0.8.5":
|
||||
"64aec5c2fa8255d19ff20480afb6445e29be94628c58a429c131f5c60bd990b5",
|
||||
"aarch64-apple-darwin-0.8.4":
|
||||
"ef6785df8c23232ce6209c04acefd0c0d2ffb3a3ba0eef16422bdfe99a059105",
|
||||
"aarch64-pc-windows-msvc-0.8.4":
|
||||
"34cdff9ed7e1ffece93a895e65377a0ea4f186eb6785ead045280be59edabf19",
|
||||
"aarch64-unknown-linux-gnu-0.8.4":
|
||||
"d42742a28ce161e72cce45c8c5621ee23317e30d461f595c382acf0f9b331f20",
|
||||
"aarch64-unknown-linux-musl-0.8.4":
|
||||
"d194e457ba2c9f4e737ee9919c66465e0297d956b6c7121b61d37b98e15a694c",
|
||||
"arm-unknown-linux-musleabihf-0.8.4":
|
||||
"cfd9d5c2d5bc462308c54e4224cb4102819cfc230cd7a75dcf5cd345969ab732",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.4":
|
||||
"234358eb9384c6392678d392ab0835daf500a71b6d78b5b33f10793c2c695d05",
|
||||
"armv7-unknown-linux-musleabihf-0.8.4":
|
||||
"65408f9aab2895faa1c523a064eef01f2d5cea4686ceb704217d8ece03a69a8c",
|
||||
"i686-pc-windows-msvc-0.8.4":
|
||||
"fc4fca95757e78fa4a782ae7f5cba4f52137df49b737cec0a6ad8092ca829151",
|
||||
"i686-unknown-linux-gnu-0.8.4":
|
||||
"d43485d5531529c4a57bf9b504e9ac1609a4467d220a268c38464d83d6df08b6",
|
||||
"i686-unknown-linux-musl-0.8.4":
|
||||
"cd4e9127d6562f0817060aa9c1b396afc7db31cdf48b73ecc347bd6f4f77f075",
|
||||
"powerpc64-unknown-linux-gnu-0.8.4":
|
||||
"3083419366b512e89e53f7e73c48ca15e28daa1ec674f5ef6492d06b0834e62d",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.4":
|
||||
"1e1164b8b2bfcd09daf5b32bada5fdc08b81d384bebd9707691cc48561749a27",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.4":
|
||||
"0b4e5e41b4c2836e6d8c1b4eb5151a0ea775908bc892ba62a8126fcdd7b06914",
|
||||
"s390x-unknown-linux-gnu-0.8.4":
|
||||
"28aefb0bac0349aa3f218cfa43ce50793f81c6948d01e2e4b97ea5421a2734ab",
|
||||
"x86_64-apple-darwin-0.8.4":
|
||||
"14e5309f182d1a92cf6c82f5891a0a0dc1cd5d46627171eaa1e84fa2b7e0afc3",
|
||||
"x86_64-pc-windows-msvc-0.8.4":
|
||||
"817c50c80229f88de9699626ee3774c0cceed86099663e8fb00c5ffae7ea911c",
|
||||
"x86_64-unknown-linux-gnu-0.8.4":
|
||||
"eb61d39fdc6ea21a6d00a24b50376102168240849c5022d3eba331f972ba3934",
|
||||
"x86_64-unknown-linux-musl-0.8.4":
|
||||
"4e16694fcc20a94136af70fb1449e8817150896af0339b6b28dfb6d006cd8116",
|
||||
"aarch64-apple-darwin-0.8.3":
|
||||
"9ebfe9f3b51187932ef97270b689da48261acacadd6ea7018d2cc62719c86ffe",
|
||||
"aarch64-pc-windows-msvc-0.8.3":
|
||||
"6e0692b817c5d6cfddad13ad177e866e36d95e8d32b4a296a49d937fdcda18d3",
|
||||
"aarch64-unknown-linux-gnu-0.8.3":
|
||||
"e82b5a3eb19e5087a6ea92800b0402f60378bd395e3483acd0b46124128ab71f",
|
||||
"aarch64-unknown-linux-musl-0.8.3":
|
||||
"05707835aadb8d0dfacf64a50dc31eb77fb11d1773b13ddd78d2404d43be3b7f",
|
||||
"arm-unknown-linux-musleabihf-0.8.3":
|
||||
"63f09a167470e40f5a7afce7ba726fa31d700042107215a8f46572a617b2ba64",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.3":
|
||||
"ca3ab5110a248febf3af56ca8e417add5a164228d8861d2f6439d6c77654ad24",
|
||||
"armv7-unknown-linux-musleabihf-0.8.3":
|
||||
"79b9f2f8abf64b93aaf48f87b159bc34e73b92428c6424a9e633f481449bc8be",
|
||||
"i686-pc-windows-msvc-0.8.3":
|
||||
"5d272849a94b7ad36711f336d745e08ed3732042fc51f5c7f28bfc4e95463615",
|
||||
"i686-unknown-linux-gnu-0.8.3":
|
||||
"5ca9dcdd8aba4c59266536c00453f3815ccf4852a1bef78f181f4ae43726e742",
|
||||
"i686-unknown-linux-musl-0.8.3":
|
||||
"7a7eb903b673c0a0fa8282e12d2130fb63c1f0e574b1b8eb24ac63503db5db9e",
|
||||
"powerpc64-unknown-linux-gnu-0.8.3":
|
||||
"ad94079c0aa352730e5656246ecb8fd6cb5c7c1bbcc100954020f32128d6b0de",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.3":
|
||||
"27ccd00f3c617b59d6977e48612dc5fe49d15c1181bf995863350e78002e54ac",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.3":
|
||||
"897257393ca612058bb22691fab3a45480d3f7fc1df5bb968696576d7d98d6c1",
|
||||
"s390x-unknown-linux-gnu-0.8.3":
|
||||
"d148aebfc019aa14c686713fb0a391bb700290ecdf2903c2fdab0009182d880b",
|
||||
"x86_64-apple-darwin-0.8.3":
|
||||
"77eac9622f76ad89a8c59b31a96277aa61eb290d2949c69ab2061076471aeda2",
|
||||
"x86_64-pc-windows-msvc-0.8.3":
|
||||
"4ca84e28b08f48255f95156c5987d61a5e4c51a43372708bc6d84e994eeb7bdb",
|
||||
"x86_64-unknown-linux-gnu-0.8.3":
|
||||
"427c27ed5f87bf91aa045cf459ea34d348ed6377c62c3c054f1b4046b2f83fe2",
|
||||
"x86_64-unknown-linux-musl-0.8.3":
|
||||
"bfbe34caae328355b720ad0f667be99990b1b93721c8cb726e4a502796eb6d68",
|
||||
"aarch64-apple-darwin-0.8.2":
|
||||
"954d24634d5f37fa26c7af75eb79893d11623fc81b4de4b82d60d1ade4bfca22",
|
||||
"aarch64-pc-windows-msvc-0.8.2":
|
||||
"0e1e80ca0d6faab2c716ac7b73214c6df7a37dc0a45998d5f7d6e73339db8e48",
|
||||
"aarch64-unknown-linux-gnu-0.8.2":
|
||||
"27da35ef54e9131c2e305de67dd59a07c19257882c6b1f3cf4d8d5fbb8eaf4ca",
|
||||
"aarch64-unknown-linux-musl-0.8.2":
|
||||
"725237095ea91ad4fe54b1a047138194bdef428002709e0ae9dfea33b66e1c8a",
|
||||
"arm-unknown-linux-musleabihf-0.8.2":
|
||||
"ea523b34d5c96b32f1f68a51b690774f7822474a355fd74973a089ba2002e82a",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.2":
|
||||
"8fcbdce85af3b62b8625e780c0065ccd35aab830fcd380c2bb5a03e2174861b0",
|
||||
"armv7-unknown-linux-musleabihf-0.8.2":
|
||||
"d433a35cd4e0b9ed8163b42b69d050954b77163765e5c25ac21aa08da2117ad3",
|
||||
"i686-pc-windows-msvc-0.8.2":
|
||||
"d862eaf046abe9143b3e172137cb50657920d324cb3e00be78d22aba4478d7f8",
|
||||
"i686-unknown-linux-gnu-0.8.2":
|
||||
"fc0baebac65fba4865c23f0ec31722750543c5f5320d7c52221b0565065520ce",
|
||||
"i686-unknown-linux-musl-0.8.2":
|
||||
"fff6ad20fbcf808089823161a303ab32bfbec31b0af73c3d5717fe8b80aa8a81",
|
||||
"powerpc64-unknown-linux-gnu-0.8.2":
|
||||
"d0cfde8f85eeeb7baabbca6ad7e66fba0bfb2e6145a95fb9fc97d82d153d08c8",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.2":
|
||||
"f44b3870a323ba5dbd189c46ef10e565f9ba94c1f675b1daf8d1deab7cda92fb",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.2":
|
||||
"87e97d546129846a2ee73516fa71770ee787ee62121ebfc5c3db682ae0f54cf1",
|
||||
"s390x-unknown-linux-gnu-0.8.2":
|
||||
"de324cd0b04162e25fd1dc2332b05e556978fec4bfcc3fbea6565e8276caac53",
|
||||
"x86_64-apple-darwin-0.8.2":
|
||||
"ae755df53c8c2c1f3dfbee6e3d2e00be0dfbc9c9b4bdffdb040b96f43678b7ce",
|
||||
"x86_64-pc-windows-msvc-0.8.2":
|
||||
"503a430df36957f851daedaed707a2ab69ed21a48bd499c2f0f7253ad5ba983f",
|
||||
"x86_64-unknown-linux-gnu-0.8.2":
|
||||
"6dcb28a541868a455aefb2e8d4a1283dd6bf888605a2db710f0530cec888b0ad",
|
||||
"x86_64-unknown-linux-musl-0.8.2":
|
||||
"2df1c90246ac03b237f997dce0a31a757523a6aaa9a15b26996a9851dc08ad3c",
|
||||
"aarch64-apple-darwin-0.8.1":
|
||||
"4dd195318b0ca893f9e51bd243441016fcf721dfc2c29f86ab7de74c1c216e53",
|
||||
"aarch64-pc-windows-msvc-0.8.1":
|
||||
"759b952f7ee0f2a556f6470ea48a2a87508f9a5cbd3624c881875c93748389af",
|
||||
"aarch64-unknown-linux-gnu-0.8.1":
|
||||
"0604abcd1a9232022f1b093874e6303d2725512f2e9fc324f0ac49a30d1b2de6",
|
||||
"aarch64-unknown-linux-musl-0.8.1":
|
||||
"4b87748593ca3fd060b96599494d5bad6e172455208c3d6a0f4d36cc89a435f9",
|
||||
"arm-unknown-linux-musleabihf-0.8.1":
|
||||
"6903a6c4ac2f00548a0164ff53ba1898be2e48449071c90bdf38811537ef47d2",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.1":
|
||||
"179e0c81217d97eecba4c75566404edf947614f72b0be8b5c975b60b7d973282",
|
||||
"armv7-unknown-linux-musleabihf-0.8.1":
|
||||
"f62be877927f3a5e6ee99e352e73af8e1735e4251bb8cf11424f79b560616b20",
|
||||
"i686-pc-windows-msvc-0.8.1":
|
||||
"87107714fee0e0b137360b8b5f2425d5994655c58f2743fac5203c5d5cbf2f7e",
|
||||
"i686-unknown-linux-gnu-0.8.1":
|
||||
"1689bb02d731cd4e0ad6e9fb384c937d5ea38246f80c4a3f86bd9bf30c395490",
|
||||
"i686-unknown-linux-musl-0.8.1":
|
||||
"9a39a92210752fb03436eb9e69a52cade45c6fdad92aca209fef5594df2dded1",
|
||||
"powerpc64-unknown-linux-gnu-0.8.1":
|
||||
"5a6bb32ba3f0e26d7a2de90987ba285850a8b405eb402484448c927721fb784d",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.1":
|
||||
"0e7bb9f5c298b9a55e019809fbc7d4a88e491ea7b606cd6b4bbc9ab648904af0",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.1":
|
||||
"5346c2757546b26fc3b738cc021c3c17e372a08b6ee361cde95a88ee1eb87577",
|
||||
"s390x-unknown-linux-gnu-0.8.1":
|
||||
"66108f45f1fe81b7b02c3490debf838a90c818de00dd8c17c45ccad65554f8d7",
|
||||
"x86_64-apple-darwin-0.8.1":
|
||||
"96b3836b7bf97a24ac13a8854f2da7cd3a44993820935b29be964d776e3a3446",
|
||||
"x86_64-pc-windows-msvc-0.8.1":
|
||||
"b161c45b2a7f97400b1005591d782d2c96ea1c4570ac1336cd82a2500dbbed1f",
|
||||
"x86_64-unknown-linux-gnu-0.8.1":
|
||||
"abaeb153d85cf57277945c70fe449f813b14aa1913d1caa50daf333a01b2f317",
|
||||
"x86_64-unknown-linux-musl-0.8.1":
|
||||
"e54c95d4f1420311b7266d57e36304755b24c956a2928f365bb91215e3554c34",
|
||||
"aarch64-apple-darwin-0.8.0":
|
||||
"5a5ca58e3999d4f440632da87a56f7030eaaa3a13d3896561eec5fd51cb9ad45",
|
||||
"aarch64-pc-windows-msvc-0.8.0":
|
||||
"2fc83c9e2de30c1de8e9461188ffdac75ad41ac1e2227fd158d46b6cd09501d3",
|
||||
"aarch64-unknown-linux-gnu-0.8.0":
|
||||
"61f136a187150624c10ec7025137fdf5391ef083a4cab0eba4fbdb2a928de16b",
|
||||
"aarch64-unknown-linux-musl-0.8.0":
|
||||
"c5a7c042e40a9acb693c5ee01f26db047b07e4f3f301470b38ee4a2f3e0e831b",
|
||||
"arm-unknown-linux-musleabihf-0.8.0":
|
||||
"94c54815e371c93ce08ba5d4b95e7d847d11bdc1ba5af5e15656e6d1be521f74",
|
||||
"armv7-unknown-linux-gnueabihf-0.8.0":
|
||||
"57c891ebe985ef1c4e83bbc60b9d2fce40fd6e383db451ac1fc04d60a415022d",
|
||||
"armv7-unknown-linux-musleabihf-0.8.0":
|
||||
"fa8a3f50c1ffeb7013a7fb9d9dbba54ff0a1e5d2c4c758ec6fe785c37426ae7f",
|
||||
"i686-pc-windows-msvc-0.8.0":
|
||||
"cd03e12986765e48297228678dbeada0c284c552884910bcb3f0ea3ceeec8ee4",
|
||||
"i686-unknown-linux-gnu-0.8.0":
|
||||
"ebb52595b6b5a0b6805a50c5d5dc06fd632bbfcce5854228e1e426784e7813b6",
|
||||
"i686-unknown-linux-musl-0.8.0":
|
||||
"b9a44b22bb0605f8413d84a811346696b79e624aed850c0087fbea389074d401",
|
||||
"powerpc64-unknown-linux-gnu-0.8.0":
|
||||
"7b65a08c8ac4a2fae9f466d94e29896fb5f49f92d72a7c6ac315031b94d43857",
|
||||
"powerpc64le-unknown-linux-gnu-0.8.0":
|
||||
"698bc873422f261ec7e9da3ddb3a1b2b2d96be3f4aa6abe566c9d4a315b9d9d4",
|
||||
"riscv64gc-unknown-linux-gnu-0.8.0":
|
||||
"c508d286c64d34933f06e6ce04e2aada129e039692a57f6d8adf0bf9bbb90186",
|
||||
"s390x-unknown-linux-gnu-0.8.0":
|
||||
"756f55e2567585f1e62522b3e25bfae8c1b7f8a856d2e7ec85b48fcf5abbe9a8",
|
||||
"x86_64-apple-darwin-0.8.0":
|
||||
"828917cad79aae8327811c59fcc625ff3861bfe21d2cbb77c206737d41117ff2",
|
||||
"x86_64-pc-windows-msvc-0.8.0":
|
||||
"bad5afed0c18bd7f6c5125f5c7ab89ac830a3db7340c96d50a50527e9880cdfe",
|
||||
"x86_64-unknown-linux-gnu-0.8.0":
|
||||
"a7d74ee5c5ff3069b9d88236a05f293cc4e2809bad872f3a88a384489ba3675e",
|
||||
"x86_64-unknown-linux-musl-0.8.0":
|
||||
"0208cbcb3850bfc69277c9a16c2b0399218b075dc923aca7e4b576ee4228c570",
|
||||
"aarch64-apple-darwin-0.7.22":
|
||||
"707677074a9ae6906d4ccb22089341e3541db78022dc926e985bcc35fbb53a74",
|
||||
"aarch64-pc-windows-msvc-0.7.22":
|
||||
"bcbee39a55eca43ea286cbaa467b083888c7811ab8f47458063bc53331224f4d",
|
||||
"aarch64-unknown-linux-gnu-0.7.22":
|
||||
"d2ee24524f5ed45baceaddebded48493f7dd2692fad8a1d1796c606134c133b7",
|
||||
"aarch64-unknown-linux-musl-0.7.22":
|
||||
"1d524e7d61336ccdc4caa2299df811f318b96d81034ff621b7217d6c440a1702",
|
||||
"arm-unknown-linux-musleabihf-0.7.22":
|
||||
"ad458ba424cbd77f8278b634e9e14a2fea0ba1610b7a51b38e611cd8a8072792",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.22":
|
||||
"3523c1f0396249bc3eae97f15141921108214e4fdce50f153272c79c91d3e737",
|
||||
"armv7-unknown-linux-musleabihf-0.7.22":
|
||||
"b96ec5d9be9527fe3a4e6642e26489cd1b12a8cbd3f2b80145bd61bd4919e188",
|
||||
"i686-pc-windows-msvc-0.7.22":
|
||||
"aca18c571d8bd6d370e0440a16544afde421ea01585721a46d3847c11404fb41",
|
||||
"i686-unknown-linux-gnu-0.7.22":
|
||||
"ea5f6c1460843bd1c391e06d731278707806666438a9389f957e604f60be3eca",
|
||||
"i686-unknown-linux-musl-0.7.22":
|
||||
"e20e7eceb3100bc93ed638d723a5b4f9985dd2650398b3f10b175a93e744c7b7",
|
||||
"powerpc64-unknown-linux-gnu-0.7.22":
|
||||
"7e7281c99a62a729483ea0268511bf9416a97f6256cc9123d7910b42d7c27937",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.22":
|
||||
"0891f6f9fb7099cf35cc6bf4d3e565504ce793466d0a592056703518cb771dcf",
|
||||
"riscv64gc-unknown-linux-gnu-0.7.22":
|
||||
"8bf7e0bff7f1cfa2c8057405c2f5a377c7b864a83dfff8ce045f5773374f7add",
|
||||
"s390x-unknown-linux-gnu-0.7.22":
|
||||
"d7aba1fe8783e39f5f05061fc255a28d98eff0b83600915b606903ee1764b674",
|
||||
"x86_64-apple-darwin-0.7.22":
|
||||
"af8fb83280a000f5864653ca0c9a1f69bbdbc8b2bbfeb2e1d450ce7fd1518ff1",
|
||||
"x86_64-pc-windows-msvc-0.7.22":
|
||||
"ce5c13291643e8306e8d2dbcaf340d36ea985a761a53f2ca0a45e1a8e8936c85",
|
||||
"x86_64-unknown-linux-gnu-0.7.22":
|
||||
"8379e040fa1828e662968edaa3856aaeb6e1a0a0ec76ef8583096be1f72f19d4",
|
||||
"x86_64-unknown-linux-musl-0.7.22":
|
||||
"0508e73f28fa4024c76c4e0a5e347fea6aeb4bead0234618e6cfb76804237259",
|
||||
"aarch64-apple-darwin-0.7.21":
|
||||
"c73af7a4e0bcea9b5b593a0c7e5c025ee78d8be3f7cd60bfeadc8614a16c92ef",
|
||||
"aarch64-pc-windows-msvc-0.7.21":
|
||||
"877454562ba2af12a020652fb8f63d14b6c05aa6d1d3497441822c6c0b198541",
|
||||
"aarch64-unknown-linux-gnu-0.7.21":
|
||||
"1dae18211605b9d00767d913da5108aea50200a88372bf8a2e1f56abdbe509f0",
|
||||
"aarch64-unknown-linux-musl-0.7.21":
|
||||
"6577895c91a6bf6c1fda5f0fdfd07f8ee05f75f24a70a49193f8fb8dcde81fc3",
|
||||
"arm-unknown-linux-musleabihf-0.7.21":
|
||||
"cb175698eeb3abf77c00c4d19e9c5e10ed847f6988769f5b18a5c98c1ebd21ad",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.21":
|
||||
"9c64218ebc2f96520105fddf3b500026a50d9319c7faf4d2221a7113efd96fd7",
|
||||
"armv7-unknown-linux-musleabihf-0.7.21":
|
||||
"9f83f0c4821e572e9289e270e64429495b188e372519ee88524e97b50943e657",
|
||||
"i686-pc-windows-msvc-0.7.21":
|
||||
"aaf3f3bc934616214e1f33ccb22432dc59110211b2b15636d66e8e42e9cf2f6f",
|
||||
"i686-unknown-linux-gnu-0.7.21":
|
||||
"141a4ecfe0bf08e82fe5834a0fd265cf3c27833c1bfbab69344efb1604c2d964",
|
||||
"i686-unknown-linux-musl-0.7.21":
|
||||
"ae1faeda2475f0df8733215133771da58de159d9e7b5a728f30047708e21a724",
|
||||
"powerpc64-unknown-linux-gnu-0.7.21":
|
||||
"bef76b3992d21682dfc82e096d18f449d43a757f28a00a62eb7e05002349f287",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.21":
|
||||
"107c6c5a444c27bf772b1ec233b5b83dffd79348488cccc832dc9c14ee5ddf56",
|
||||
"riscv64gc-unknown-linux-gnu-0.7.21":
|
||||
"c5c160e64809ae29404354e555df7264763f7cf67012ffc1350619cc9d19299b",
|
||||
"s390x-unknown-linux-gnu-0.7.21":
|
||||
"77f3472201867a766e6f2a37ceb2e2f2f78343d3460c2313e3643483c80ecf92",
|
||||
"x86_64-apple-darwin-0.7.21":
|
||||
"f8a9b4f4a80a44653344d36b53e148134176e8f7cc99f8e823676a57c884595e",
|
||||
"x86_64-pc-windows-msvc-0.7.21":
|
||||
"7a4e427ceaf3c7d8437e512cbc25af84796c4079cf842c3349d4b646a9209da5",
|
||||
"x86_64-unknown-linux-gnu-0.7.21":
|
||||
"ca3e8898adfce5fcc891d393a079013fa4bd0d9636cef11aded8a7485bcba312",
|
||||
"x86_64-unknown-linux-musl-0.7.21":
|
||||
"7400debadcd63e530cf58c3cfc71d43d5a1017d2f699be86c6e91d7dc2073c7c",
|
||||
"aarch64-apple-darwin-0.7.20":
|
||||
"69da236af5934209a5c059fff1b2f69068918c423601f42448b1d92336853127",
|
||||
"aarch64-pc-windows-msvc-0.7.20":
|
||||
"34f3720cdd736f034f3b0d1b03d6b74b85d3528ccefd3552b3aadf455f191b2f",
|
||||
"aarch64-unknown-linux-gnu-0.7.20":
|
||||
"675165f879d6833aa313ecb25ac44781e131933a984727e180b3218d2cd6c1e9",
|
||||
"aarch64-unknown-linux-musl-0.7.20":
|
||||
"0f68f4a4583923635e56f7f930526bbbcc14d090f1c1a7ec1d28cc4ddad05279",
|
||||
"arm-unknown-linux-musleabihf-0.7.20":
|
||||
"9d3eb7fd1e3580a40e5d3f25db5d8a0719fb77be1d750b4849f6dbc96885e39f",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.20":
|
||||
"775c3634a1ed7f0c23e5ce8e418acdb394fe87df1ac21af9f274e1e68df0d9b4",
|
||||
"armv7-unknown-linux-musleabihf-0.7.20":
|
||||
"27ac3e7f44c1af5bb9f01560e1848893e09c502a85552521cc9cf0d2cd4322c5",
|
||||
"i686-pc-windows-msvc-0.7.20":
|
||||
"90367e9f5adc46d6effd2b2107bee5f900f959c64898ae3ffb1e28b9519b15e5",
|
||||
"i686-unknown-linux-gnu-0.7.20":
|
||||
"9b53f988b7024728da39fc3e4217bf8cf233d1aa7afda20599dc3acb2049f328",
|
||||
"i686-unknown-linux-musl-0.7.20":
|
||||
"fa3091a175cdba4202367b30bda899bc3ed3b6c2161b7c42500c3bd1b388c3e2",
|
||||
"powerpc64-unknown-linux-gnu-0.7.20":
|
||||
"84b76581c50071a87609d340050b2cd0ba7fad7e929106202d4c99f4c5a41243",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.20":
|
||||
"25082231ee1b479cc9fc486949e3196affda09b82bf0c6b3c8eacde37f56e9db",
|
||||
"riscv64gc-unknown-linux-gnu-0.7.20":
|
||||
"339015c2c934b93355a972c737f649fdf96abb699bebbc1b0955de9e5fff04bb",
|
||||
"s390x-unknown-linux-gnu-0.7.20":
|
||||
"16819d631e56438ea2e58b60bfb99feb8b2b8cdbec73e375e21c6dbe1de8c725",
|
||||
"x86_64-apple-darwin-0.7.20":
|
||||
"0c0edf17aff045bcb9bf89ffa43fefaec2d6585ff69debdb0ade62608f8ff069",
|
||||
"x86_64-pc-windows-msvc-0.7.20":
|
||||
"ddf35e258c32971c00f3f4213cf1b5cf0847a42dac578738cb294d379e4a9f6c",
|
||||
"x86_64-unknown-linux-gnu-0.7.20":
|
||||
"10f204426ff188925d22a53c1d0310d190a8d4d24513712e1b8e2ca9873f0666",
|
||||
"x86_64-unknown-linux-musl-0.7.20":
|
||||
"c8efa6bacde9154aa705feb35985cbc852d75c7d634e8a6867aa2f5571b27a62",
|
||||
"aarch64-apple-darwin-0.7.19":
|
||||
"698d24883fd441960fb4bc153b7030b89517a295502017ff3fdbba2fb0a0aa67",
|
||||
"aarch64-pc-windows-msvc-0.7.19":
|
||||
"c843b95d9bad3e364ead2af00b793d42156cb4f8ac0c2e33bfd2b3e50a0efc86",
|
||||
"aarch64-unknown-linux-gnu-0.7.19":
|
||||
"31b81b4b4ecd51ee4202f1e710fc22b72666f716ffbb825aa397c8246624d60f",
|
||||
"aarch64-unknown-linux-musl-0.7.19":
|
||||
"e83c7c6d86c8e7456078c736a72550ce20222df8083f9317fc58cd49422ce5eb",
|
||||
"arm-unknown-linux-musleabihf-0.7.19":
|
||||
"fe9834d5383feccd095cbfdbc290d7379f64bafc894ae8d8eb0724edfa754853",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.19":
|
||||
"6678e4d1a91349dacd3405b0efa88656d1c8a16fa7ccea822c368039988f8339",
|
||||
"armv7-unknown-linux-musleabihf-0.7.19":
|
||||
"3022a75e757a31978e896e2e3fc2cf2dc966267a8757a270be0b421f541467e4",
|
||||
"i686-pc-windows-msvc-0.7.19":
|
||||
"063829d117c2e42322b0e3a59ee91020dcb1d95522889b903ffad392df197a11",
|
||||
"i686-unknown-linux-gnu-0.7.19":
|
||||
"1785537fc65a35609dc33063b5f1cc85437a08ade4c0a832071c018481afe515",
|
||||
"i686-unknown-linux-musl-0.7.19":
|
||||
"e64bc4f74cee116694ea63ad0722245f62f386de271be1a1c28a6e4fd977326e",
|
||||
"powerpc64-unknown-linux-gnu-0.7.19":
|
||||
"fb8a4a0d20dd3e236a88229e15af89fa3144bd06c4087dbfc7ba8ca691b0a953",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.19":
|
||||
"b335d0593c165fbfcc51915b3eb056f45c5691d06744a5ded7210d789469870a",
|
||||
"riscv64gc-unknown-linux-gnu-0.7.19":
|
||||
"36ccef1387594e8fb212257fbeafa9e260709b363e1b262f43bd5a679134e4ac",
|
||||
"s390x-unknown-linux-gnu-0.7.19":
|
||||
"08ac0245d24ba16bbf224b00e8bc8021d081f9dcfdc61881cb6e4ac83954705a",
|
||||
"x86_64-apple-darwin-0.7.19":
|
||||
"40667bcb615b5af3e373ad611c4a9b95639b97e19b5924a436df8e69ca9331e2",
|
||||
"x86_64-pc-windows-msvc-0.7.19":
|
||||
"3098b38638b271d8b14b81247d6d69bb105807ec9fc5eb85f8cc8b6de5867c86",
|
||||
"x86_64-unknown-linux-gnu-0.7.19":
|
||||
"5ad6f11d5a04cb3af2418666031f20b63190f82032ec5a7f3a174385cc5567e4",
|
||||
"x86_64-unknown-linux-musl-0.7.19":
|
||||
"6236ed00a7442ab2c0f56f807d5a3331f3fb5c7640a357482fbc8492682641b2",
|
||||
"aarch64-apple-darwin-0.7.18":
|
||||
"c33cfaab95da1413a0403f643b7edb1c5af6798d8a2370196a80fc37b894df48",
|
||||
"aarch64-pc-windows-msvc-0.7.18":
|
||||
"c9c78de380e459f8424f648d107d4ab5286273ab19622a5d17796dc6689de453",
|
||||
"aarch64-unknown-linux-gnu-0.7.18":
|
||||
"2af8d0d963f547deba09c52aca79a26113f0ed5c903c101241fedcac90c2d8f4",
|
||||
"aarch64-unknown-linux-musl-0.7.18":
|
||||
"32872da98e5c48945e45406d427b3b4fdc11f04e4b8f297f49f76724894eb61b",
|
||||
"arm-unknown-linux-musleabihf-0.7.18":
|
||||
"c6c9e718aee25142139b25bf6bb5f9566c57812abced3efa71b4677ac3ef1275",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.18":
|
||||
"00cdc4c898a251ea0c12f5db7b22929ff6f73f87a51fc6f874dfb57aecdcc995",
|
||||
"armv7-unknown-linux-musleabihf-0.7.18":
|
||||
"92a07d26943b5e223e941b64fa22e048c13fb6462ccb35f18fe2e212cfdc1c18",
|
||||
"i686-pc-windows-msvc-0.7.18":
|
||||
"4293c65f1fce52bd5396ec4419ce1c76412e276e0f292ec2464c319b7f8d59be",
|
||||
"i686-unknown-linux-gnu-0.7.18":
|
||||
"e5db36cb7b7edbe405c70211802ffe3b161983027f7644ca9ddc9ed5605dd504",
|
||||
"i686-unknown-linux-musl-0.7.18":
|
||||
"5829e240206ca895f8e500e9432dd87553091459a80d2a40c0d144688d443336",
|
||||
"powerpc64-unknown-linux-gnu-0.7.18":
|
||||
"927af365bc8388da27d241149a52ee3b9772db87ebace6fec6b00062aedd4a24",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.18":
|
||||
"dc7ca0bca11efd40a4f85c40e2d83d830dacb7b0f9626bc40360a6697aa035e6",
|
||||
"riscv64gc-unknown-linux-gnu-0.7.18":
|
||||
"2cd75769322d264151e9abc2cf89edd086239afa00c0a1354d52a700657f7deb",
|
||||
"s390x-unknown-linux-gnu-0.7.18":
|
||||
"bc63ad2eefe5278b121a78255e8c488eb69ae29784b69012439ef365701393db",
|
||||
"x86_64-apple-darwin-0.7.18":
|
||||
"7a4a3350224a3a3904589ea306041af68686d72ec4d4b68e34c15d25dfc5cb4a",
|
||||
"x86_64-pc-windows-msvc-0.7.18":
|
||||
"5a5b3ef7c6aee0bb1101ef047f35a0fc7cc82e34eef3286e54c5badd261cb599",
|
||||
"x86_64-unknown-linux-gnu-0.7.18":
|
||||
"bcb8093f59eb08539087faf895ea1e794fe3db395de79eb41ddaa41d8c25adf7",
|
||||
"x86_64-unknown-linux-musl-0.7.18":
|
||||
"c8b51ed978b5f95a7c34dfe39e1dce966f7497fc12179f27507d507d9f3ff40b",
|
||||
"aarch64-apple-darwin-0.7.17":
|
||||
"0777e13ba598ccb9a9f78df209c98922b219a195765b9f1b309457a08cbae43d",
|
||||
"aarch64-pc-windows-msvc-0.7.17":
|
||||
"be0e7263e4106ca73ac72b4f84ae1c203db446d42d764b2b6459bf1d84aa1859",
|
||||
"aarch64-unknown-linux-gnu-0.7.17":
|
||||
"b88fda8f37769d445dd4b433c83490112afa18fc009b75e3cb28412a1d189c53",
|
||||
"aarch64-unknown-linux-musl-0.7.17":
|
||||
"789f3749497181311fbc27d2da322f4f836d814389901e8a7917ee664f500a6b",
|
||||
"arm-unknown-linux-musleabihf-0.7.17":
|
||||
"7f39a83f2cd7925aa25020dce70f9d2617213b710aec1c9fd686c3314ee814a2",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.17":
|
||||
"9a4ee0fe51b07b8badf7ca874b3a065a0d2cf3b04c69aa2c7618c03d6ddd46ce",
|
||||
"armv7-unknown-linux-musleabihf-0.7.17":
|
||||
"6a5d3fa02a7bb5696ac392d6277f29174f27bc38e0100016ee67c55c8a472e3b",
|
||||
"i686-pc-windows-msvc-0.7.17":
|
||||
"45ffa8cd52e6a0764c2bde7c97be840b6c7606f976e6ae51bab394a891653f52",
|
||||
"i686-unknown-linux-gnu-0.7.17":
|
||||
"043897d13541c11c1221761c768d4234b889ce1fa39f1f27a567e11ca2c86233",
|
||||
"i686-unknown-linux-musl-0.7.17":
|
||||
"0d7a846ff1ae9d620243da530adcc468bba4aa317cb3ba4210c724e2ec5734b4",
|
||||
"powerpc64-unknown-linux-gnu-0.7.17":
|
||||
"46331c3771dbc8aaaa4c75421b6195edb763bac5ca4b8d551efd2da013351252",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.17":
|
||||
"9f7e13304c7f3977c2e1eaa068a6beb36e6974a2abcf8cb1b8e0d8b96c251203",
|
||||
"riscv64gc-unknown-linux-gnu-0.7.17":
|
||||
"789fea86b495397c7bd12c92221259f07c78ba738d568757b06500ac94b6ebe8",
|
||||
"s390x-unknown-linux-gnu-0.7.17":
|
||||
"208c6609012ca921aa3ca67d49dde34464e405041b1d8b041c15078687456570",
|
||||
"x86_64-apple-darwin-0.7.17":
|
||||
"c0aff6481443e7dc38c01dfb3535814db42c00ad3ab374e7b4ed4ebb7f5b2237",
|
||||
"x86_64-pc-windows-msvc-0.7.17":
|
||||
"b49d1a02662ac4a490c886fff8a340a4adc32da8d0634fc653a69459d2b5f863",
|
||||
"x86_64-unknown-linux-gnu-0.7.17":
|
||||
"e9bf64a66a318a82d3c37a74c31527df0ac7e7c821a10f5e1032415f000d7d43",
|
||||
"x86_64-unknown-linux-musl-0.7.17":
|
||||
"ffd877241741df0a6436ba6ed0d8cd6573f1f922ede3a967c32c57d2133c72b0",
|
||||
"aarch64-apple-darwin-0.7.16":
|
||||
"a157919a2a615fac5de0fcef5120a63de7e6582fb6e0ae4428238af347ed1054",
|
||||
"aarch64-pc-windows-msvc-0.7.16":
|
||||
"a832dd02c44cd8d373b226ca34128982aca5303dd3b477c90c5a1f83efa874b0",
|
||||
"aarch64-unknown-linux-gnu-0.7.16":
|
||||
"4ff5b8542514b453073cad1dfba08db751ada21981b869c69a2ac29fd639b586",
|
||||
"aarch64-unknown-linux-musl-0.7.16":
|
||||
"c1536a85aa85cae05c51d25b2819c5b9869f67c66c65948aadeb0c38c4bd51b3",
|
||||
"arm-unknown-linux-musleabihf-0.7.16":
|
||||
"20902d98f9a309df2a83ffd31ecfda444dfb75249c2779eedaeed7d73274f34b",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.16":
|
||||
"72afc7e60eff20a1c2181f88c9d96e06553f854192b3a13069aba0f8b045a839",
|
||||
"armv7-unknown-linux-musleabihf-0.7.16":
|
||||
"c0b5300958a489330a9790b701f1491a1bec72e402281cdaf6a2362b51fa4c13",
|
||||
"i686-pc-windows-msvc-0.7.16":
|
||||
"6d4c4de0cc8c88fb7d94138c05091dac6746a7bc9d94b3743e804a485546154b",
|
||||
"i686-unknown-linux-gnu-0.7.16":
|
||||
"ee03aaf5d736524a8b6e74c273d5877be1bb720933cb8f7f5e70b42c70933418",
|
||||
"i686-unknown-linux-musl-0.7.16":
|
||||
"b815f060a689e0fe95ec36498533bb261b92dab5cdb60b02cc19fa30c6cd7e57",
|
||||
"powerpc64-unknown-linux-gnu-0.7.16":
|
||||
"a2b78151e50646b26cacef24de87d625d4b100efe69347c88a8a6d340b0e82cb",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.16":
|
||||
"c231b3880c6584b6fe411b0c7507ed0c091856a64f84720b732ddd39b21b7e6c",
|
||||
"riscv64gc-unknown-linux-gnu-0.7.16":
|
||||
"6be4c3e27989ffd49befc689884b78b55c53c817a27040b8e232edd92185b037",
|
||||
"s390x-unknown-linux-gnu-0.7.16":
|
||||
"f4e1814f2326db1eb0d0d2ea96ee36c361a856e8c9d8d82817936aad9baa4299",
|
||||
"x86_64-apple-darwin-0.7.16":
|
||||
"414cb3c348b0482bc88fdabbc267973a11401e684a78fd471b2c4553fa8b6965",
|
||||
"x86_64-pc-windows-msvc-0.7.16":
|
||||
"409d19c14a9b1ce83bf7331dbda89984802efb3a2fbf9ffdf149b22ab9cf2826",
|
||||
"x86_64-unknown-linux-gnu-0.7.16":
|
||||
"c51f5dc9fd33e789992839d2957d6cfe0b6dce1cd7ec641740af456b12e9d468",
|
||||
"x86_64-unknown-linux-musl-0.7.16":
|
||||
"34c9da84a673e6c06d2e081d72d953f278fe5bb6aba0437210ba62817b340eb7",
|
||||
"aarch64-apple-darwin-0.7.15":
|
||||
"7a20f3d33cbbc75683d66e0562d4bdbd702ca656d7dc1b7be3c592de6a6517b9",
|
||||
"aarch64-pc-windows-msvc-0.7.15":
|
||||
"d15770be109fdde45c60a522fcc97bf19e0d9d9de8a0d2f0dadc772786110123",
|
||||
"aarch64-unknown-linux-gnu-0.7.15":
|
||||
"a8241809c6efcf5ff649d259276dabd297a2c46e9e2f78891a1f9b8ae858e1e8",
|
||||
"aarch64-unknown-linux-musl-0.7.15":
|
||||
"4351c1e2ec13f5eb4da058ac1c39f00ae3042de9d6fdb6480e0170f32813210f",
|
||||
"arm-unknown-linux-musleabihf-0.7.15":
|
||||
"26c7f1baf3f14857d8d5d2df86ea47a3ce5a0e6223c1db9af2a32bb3d216d5f1",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.15":
|
||||
"6609e0f39c958a2b728ffec99ed53741cee92d5db168fb275448216a9e2f5a63",
|
||||
"armv7-unknown-linux-musleabihf-0.7.15":
|
||||
"3a60e3bfc6b927537eff1c6fdb359bdfb5a02a59820bb964e04144d731b12ca9",
|
||||
"i686-pc-windows-msvc-0.7.15":
|
||||
"831ac11382c9ae014f6f5d27506c8977bfba5aa6b104e278d3a87ff4d1e311d3",
|
||||
"i686-unknown-linux-gnu-0.7.15":
|
||||
"8d11cd225843aa7e7b25a5300721d48519a13bc82fc8b7bf63b063b8520b2db6",
|
||||
"i686-unknown-linux-musl-0.7.15":
|
||||
"8640a014e5ef7020b33a8e95fabd5e0c75adf80beeaf265ed50dfe2bee92aeb2",
|
||||
"powerpc64-unknown-linux-gnu-0.7.15":
|
||||
"6a4c0fe1075c4f3b9dfb8d0654a58ca547aaa84f829bc9e1b60a096153d18686",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.15":
|
||||
"81f6d18b857cc3517f249fd7e321b9cad6e6c17bc7d7ad88cefc0c25cca3e486",
|
||||
"riscv64gc-unknown-linux-gnu-0.7.15":
|
||||
"6a0a6ef8fa3d03b6a6cab9185cd84e28c78db1e5736efa711e6f5efa4e6c27e3",
|
||||
"s390x-unknown-linux-gnu-0.7.15":
|
||||
"d5a2343934c7fec124fb0a140b12c4dd30e20c5473e67b11d064f5b6e52eead0",
|
||||
"x86_64-apple-darwin-0.7.15":
|
||||
"4c7c1fe116566b6f8725a3801a33fa5e066b8687643acd73249e5db1351c2103",
|
||||
"x86_64-pc-windows-msvc-0.7.15":
|
||||
"b78c2d265e74b21b1c04b5b4ffd61c5c7b8110f9188e24949ee9f6fd5fbaf0a8",
|
||||
"x86_64-unknown-linux-gnu-0.7.15":
|
||||
"b1dc0892749e93382decbd894755be0ba1535587f0bb8333572b072d1b0f652a",
|
||||
"x86_64-unknown-linux-musl-0.7.15":
|
||||
"c97afc120614c88bd8c13dac2d35015bc59656289633d61bc438e7e680a38710",
|
||||
"aarch64-apple-darwin-0.7.14":
|
||||
"7cb9cb6b3005a16356493887d7e7e297237b754b5753b91e826ada98ab2da172",
|
||||
"aarch64-pc-windows-msvc-0.7.14":
|
||||
"f28f27e529e30e96e7b289b724c8229cfc5ca25312c23bdae089d6998ffd0aae",
|
||||
"aarch64-unknown-linux-gnu-0.7.14":
|
||||
"c0932f428d24d87aaad6a6b7ad48aa09f260d2da5c69e877acd87c3ac90fbbad",
|
||||
"aarch64-unknown-linux-musl-0.7.14":
|
||||
"30e41b1f68b3e57c1375c0b2e7fe932a9eb5487fbcef7c4c7d03def3e05b9f7e",
|
||||
"arm-unknown-linux-musleabihf-0.7.14":
|
||||
"3b494d3d6a892d9c03d1fa6dcec8ac6077653939a6645570ab6f1f40adbd0b3c",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.14":
|
||||
"d5d1f6c49559914678267ce9f3a57528ab45e26e907a816736306b4f10a7b4b8",
|
||||
"armv7-unknown-linux-musleabihf-0.7.14":
|
||||
"0016d3138edc52de9f2f4b0587afb6b579dc3bb3abfe2df151f97cc43a4ab421",
|
||||
"i686-pc-windows-msvc-0.7.14":
|
||||
"42391f3a71229342b17d944e956d116aabc5147b0ed28a26c59601feac1f24cd",
|
||||
"i686-unknown-linux-gnu-0.7.14":
|
||||
"71c358c315da7ddd2de334fe52a54719f9bdac8d6970e7966e2d080ae73ad028",
|
||||
"i686-unknown-linux-musl-0.7.14":
|
||||
"d02de9391fe7b7d7e97dc2fa63a539201a31eb51d2c6a87b7570cf8a5ac22398",
|
||||
"powerpc64-unknown-linux-gnu-0.7.14":
|
||||
"a2a43332f860520f7cd3d32f5a4ed5e0d938cc59e025372f8f1bfe47ea64355a",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.14":
|
||||
"3c545528b601a75baad5e1cc93cbf973123e9e6df6d905b432d91ba9ca769c0b",
|
||||
"riscv64gc-unknown-linux-gnu-0.7.14":
|
||||
"4085fd8d4acb0a50a012fa63ae37e50472bf8742d58f4943529b5b5bda95a1a9",
|
||||
"s390x-unknown-linux-gnu-0.7.14":
|
||||
"b20a69092f3171dd99445fe0d71e3ed3e67ff85346cb0723a43a1b8d55ce0f33",
|
||||
"x86_64-apple-darwin-0.7.14":
|
||||
"352a56bb3823040f19f936dd5e277340cd304da03e5b00c0959800a72a9f55ac",
|
||||
"x86_64-pc-windows-msvc-0.7.14":
|
||||
"f9ac952c69d32b2263ba19ba93d18d9e708dcb9bddb8124555bbda96d6d5168f",
|
||||
"x86_64-unknown-linux-gnu-0.7.14":
|
||||
"2b38641d02bf107c5099f09778fda93bbaa4a4a2ee44ba303a4097102254e5e5",
|
||||
"x86_64-unknown-linux-musl-0.7.14":
|
||||
"8c62a823744630e6cf3fdf0bf38c4fe4558bfcbe082b076a76446a3aab2af5f5",
|
||||
"aarch64-apple-darwin-0.7.13":
|
||||
"721f532b73171586574298d4311a91d5ea2c802ef4db3ebafc434239330090c6",
|
||||
"aarch64-pc-windows-msvc-0.7.13":
|
||||
"bb40708ad549ad6a12209cb139dd751bf0ede41deb679ce7513ce197bd9ef234",
|
||||
"aarch64-unknown-linux-gnu-0.7.13":
|
||||
"0b2ad9fe4295881615295add8cc5daa02549d29cc9a61f0578e397efcf12f08f",
|
||||
"aarch64-unknown-linux-musl-0.7.13":
|
||||
"52baba71881c978d32b7c32216ad0cde4546a4dc62e606c9834ec4616c1610eb",
|
||||
"arm-unknown-linux-musleabihf-0.7.13":
|
||||
"ff2b11fff489301f9d55c851b9ebce7ca5530d743d2c0a3861cc45896715ea9b",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.13":
|
||||
"903350811ee31b2b758c8afb853490c27a34382a535b236739705b104bc13894",
|
||||
"armv7-unknown-linux-musleabihf-0.7.13":
|
||||
"7e3b2aa966c54ced0fcd9febea6b913ee7ea12ee85246513895f199ab13296a8",
|
||||
"i686-pc-windows-msvc-0.7.13":
|
||||
"5cf71014fde208ee0833026b3828007f8eaf514ec003784dc1ae92633877179b",
|
||||
"i686-unknown-linux-gnu-0.7.13":
|
||||
"ff031258ff08b3aca46648398e21fe9679744501e3c9a928c8e42d596a708bbc",
|
||||
"i686-unknown-linux-musl-0.7.13":
|
||||
"41851d695bb5401bce5af81a156d63215087cf8e8e1275e69dd96de4bfa30c26",
|
||||
"powerpc64-unknown-linux-gnu-0.7.13":
|
||||
"02a80ce1436bf673b0d7276bb24dea0bbc70958dc91e5fb04ad37ac515be7424",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.13":
|
||||
"60c8907cce089de97dcce732ae363eda0620f7196c25e8bd539f168b93f9e34c",
|
||||
"riscv64gc-unknown-linux-gnu-0.7.13":
|
||||
"521a5235bc5a053dd7f0221c363544cef6d033064cc9d92dbb4ef19771000052",
|
||||
"s390x-unknown-linux-gnu-0.7.13":
|
||||
"41e4b6093dd408b41dffb4c9e08c4aa31424ee4573ce9c95566c2617f7f2d0c6",
|
||||
"x86_64-apple-darwin-0.7.13":
|
||||
"d785753ac092e25316180626aa691c5dfe1fb075290457ba4fdb72c7c5661321",
|
||||
"x86_64-pc-windows-msvc-0.7.13":
|
||||
"e199b10bef1a7cc540014483e7f60f825a174988f41020e9d2a6b01bd60f0669",
|
||||
"x86_64-unknown-linux-gnu-0.7.13":
|
||||
"909278eb197c5ed0e9b5f16317d1255270d1f9ea4196e7179ce934d48c4c2545",
|
||||
"x86_64-unknown-linux-musl-0.7.13":
|
||||
"560bb64e060354e45138d7dd47c8dd48a4f7a349af5520d29cd3c704e79f286c",
|
||||
"aarch64-apple-darwin-0.7.12":
|
||||
"189108cd026c25d40fb086eaaf320aac52c3f7aab63e185bac51305a1576fc7e",
|
||||
"aarch64-pc-windows-msvc-0.7.12":
|
||||
"fbedfb71356d0e63c86b507cf1434a58406afe6eac77aee9d37b8282d4006e14",
|
||||
"aarch64-unknown-linux-gnu-0.7.12":
|
||||
"23233d2e950ed8187858350da5c6803b14cbbeaef780382093bb2f2bc4ba1200",
|
||||
"aarch64-unknown-linux-musl-0.7.12":
|
||||
"0589f6d27bbbe2e205aa6fc25e4cd28ab97e984cdba20842de8d3a00714e13e9",
|
||||
"arm-unknown-linux-musleabihf-0.7.12":
|
||||
"6996e32ac1c37af33a4c6e40ab0126a82d62ccb94edb164b7dae554be4dd8336",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.12":
|
||||
"aee2dc202deed7e15984d71eb59803111052fbe8c0fb3ffad27ae0a6d290d74f",
|
||||
"armv7-unknown-linux-musleabihf-0.7.12":
|
||||
"87bd7676d31858d9e1937ab69d13e30cc93ebb09fb246dde6a8f183e9570a82c",
|
||||
"i686-pc-windows-msvc-0.7.12":
|
||||
"c7ec71ba64d01ef3cdb89553445de94ab4fd7375c8f2a7068353aec7a3a06342",
|
||||
"i686-unknown-linux-gnu-0.7.12":
|
||||
"d1def68ff10b30327a5cacab497664aaf8338e192ba277b76f45dad63208f2e2",
|
||||
"i686-unknown-linux-musl-0.7.12":
|
||||
"f56a0a9c84b35b7e910c4d628c667b843fb3fa1d9dddb0bbf4bf3f21eeaee07f",
|
||||
"powerpc64-unknown-linux-gnu-0.7.12":
|
||||
"6eafb546d1b8642a5c27e4dfda213659fee41b0fd150b4c33ef96c917e595344",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.12":
|
||||
"0d550348d7a0f54352824cd751dc7baea0c23b17d744a5a7784b6b825e5fc909",
|
||||
"s390x-unknown-linux-gnu-0.7.12":
|
||||
"76f5a2c1c13446233312d140136f3f55fa7c162176327830eb109ccaae6c9cea",
|
||||
"x86_64-apple-darwin-0.7.12":
|
||||
"a338354420dba089218c05d4d585e4bcf174a65fe53260592b2af19ceec85835",
|
||||
"x86_64-pc-windows-msvc-0.7.12":
|
||||
"2cf29c8ffaa2549aa0f86927b2510008e8ca3dcd2100277d86faf437382a371b",
|
||||
"x86_64-unknown-linux-gnu-0.7.12":
|
||||
"735891fb553d0be129f3aa39dc8e9c4c49aaa76ec17f7dfb6a732e79a714873a",
|
||||
"x86_64-unknown-linux-musl-0.7.12":
|
||||
"bb493f1e6ae426c06b5a103cb71aa60c678976d2377f0590644538658656c2a7",
|
||||
"aarch64-apple-darwin-0.7.11":
|
||||
"b5f4cb27a3002d6590c3681377c6d826db0b52e2a9529c7144fcd53fec89ba79",
|
||||
"aarch64-pc-windows-msvc-0.7.11":
|
||||
"856bac93344a6980b2703a4143f26fc042c941b02f11ed21f55ec6be3fdfde87",
|
||||
"aarch64-unknown-linux-gnu-0.7.11":
|
||||
"80cf695c4e10b532e9db3c7fbbcfb0f8356f2e70e7a4a5040e005f0fae70923d",
|
||||
"aarch64-unknown-linux-musl-0.7.11":
|
||||
"2ad20d143c74d7f63d1c99db3999f239f045b7be041e23f6ac8b269c99fa54fe",
|
||||
"arm-unknown-linux-musleabihf-0.7.11":
|
||||
"21fec46f09d96cd9f51378fe01ed050dd2032c1fef823f8bd81fa50a2337bbcc",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.11":
|
||||
"1a75aaff4695c07151d5b9abb50232ea9fb6f5ccc82d4b319abd8796605d9db8",
|
||||
"armv7-unknown-linux-musleabihf-0.7.11":
|
||||
"431b3115ab8fb5e2210d01f29b7901e6eb1174ff65545ec49318d6d4adf4c802",
|
||||
"i686-pc-windows-msvc-0.7.11":
|
||||
"985f5eabf42b8ad0166ae6b9f799564220fa932938a8401c890d5e07321ce7c0",
|
||||
"i686-unknown-linux-gnu-0.7.11":
|
||||
"619e205d56594fc530dbde6c6a543dd094c796791a5e2cfcd3bb70fa5767bf9d",
|
||||
"i686-unknown-linux-musl-0.7.11":
|
||||
"838c6336ba8e88818459b10c3520e83601b9c0a9850a209accef9782c050faad",
|
||||
"powerpc64-unknown-linux-gnu-0.7.11":
|
||||
"769c7f32cbc2ad918ccf9ae661d99a6c0d0fd3a0056691832b4a79049a9d06ec",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.11":
|
||||
"c9bbbcc2d4f11c83e0edbff5868d95f07f81455adb6f2f909cdb9b992928101b",
|
||||
"s390x-unknown-linux-gnu-0.7.11":
|
||||
"0e7b9b27e9fef1b42aa052173a2a47a2ec33bad82425237dfac402b7f69bd073",
|
||||
"x86_64-apple-darwin-0.7.11":
|
||||
"97980b067dc3fea16534371b030eaf38554d701de5058004edcfd542a88a2e84",
|
||||
"x86_64-pc-windows-msvc-0.7.11":
|
||||
"0f4ef69fde75bb8bcfba7ecf0a4134d8875578cd2e98c9fcfc21573e746c70ac",
|
||||
"x86_64-unknown-linux-gnu-0.7.11":
|
||||
"df54b274e99b7ef26030dc21d105ce115bc21a644fc6a321bde9222cb1616de6",
|
||||
"x86_64-unknown-linux-musl-0.7.11":
|
||||
"e4e8948645ebea1950a3c77574ce079dfe1c71547ba5a8a141d6e362fa036684",
|
||||
"aarch64-apple-darwin-0.7.10":
|
||||
"316b80c19832ff4085748c3a20a3e05f36e1d19234e8b9399a6fd1c971241bce",
|
||||
"aarch64-pc-windows-msvc-0.7.10":
|
||||
"1eed0f11bca79403648195f8ce257763d956e861cb73de98c480dae15358bb26",
|
||||
"aarch64-unknown-linux-gnu-0.7.10":
|
||||
"8746acb754807050124c6dbcb05fcad2665a3f0cdb2a0fe9de528bd37b092656",
|
||||
"aarch64-unknown-linux-musl-0.7.10":
|
||||
"f9000f08850a5c575d5fe1ddc2ec928ecc9f287ecdcd9fa1ea4e3f405b23d4a3",
|
||||
"arm-unknown-linux-musleabihf-0.7.10":
|
||||
"657b1b8a534f7fe78e63aff56aac5bbcb21f6254df79825fe204d5c7c1219653",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.10":
|
||||
"1cf4a8f40abbd802a7b44fe9695da356701100d267eb3567c17db27e0a24cf69",
|
||||
"armv7-unknown-linux-musleabihf-0.7.10":
|
||||
"5282b825f469295dc2b88c94eccd375a93135a279b0711cb10e615e7a71a0617",
|
||||
"i686-pc-windows-msvc-0.7.10":
|
||||
"f3c62ff935685d9d4312b82d01ed386493b97c3d22bd434d943fc99ce9aef83a",
|
||||
"i686-unknown-linux-gnu-0.7.10":
|
||||
"24a2a3eb0e89b74de6aac492516303747519439775d22254e838d33410ac27b2",
|
||||
"i686-unknown-linux-musl-0.7.10":
|
||||
"e317d35af60b38ad32935390a83d12adc3ed7ffdbc2ccccd3039bf6cef650eb3",
|
||||
"powerpc64-unknown-linux-gnu-0.7.10":
|
||||
"c1ab41ec53cd720179f3351b61b4ded73ec520804413b75051736829a125e4fe",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.10":
|
||||
"ce2c3fdf177facf6c77c5316bb54b9deaf498bee9f664e01a4030ecf27063ab1",
|
||||
"s390x-unknown-linux-gnu-0.7.10":
|
||||
"b7603e3f4494e9093a86ace1103e3fcfa172a952989f0c7dca6eeac7f77be81f",
|
||||
"x86_64-apple-darwin-0.7.10":
|
||||
"9123e8aa944654404787f80731ec08850c4e9b9129c0d0445c9e41438828b8b8",
|
||||
"x86_64-pc-windows-msvc-0.7.10":
|
||||
"1568a71af55e9d9bc4a050ec79134a342a8a3765a73f6b7ec26490c2814f8797",
|
||||
"x86_64-unknown-linux-gnu-0.7.10":
|
||||
"ff2ef46298963fee8104ccb3c0a4ecbc97c057ac6a0bc5fec7636c855384252e",
|
||||
"x86_64-unknown-linux-musl-0.7.10":
|
||||
"b2cf1f63e83a873652ffef032681bbbe1469e3bab617f7e715e09529c30f5689",
|
||||
"aarch64-apple-darwin-0.7.9":
|
||||
"7a8b716a2b5905fb89512371ce6c6dbc0dd0344185bd1cd93a3fe27516eef7ec",
|
||||
"aarch64-pc-windows-msvc-0.7.9":
|
||||
"63c0990b9c49dc9f9a92aaaa27ba627cbf9cf6b2e42766588ef6f880208893de",
|
||||
"aarch64-unknown-linux-gnu-0.7.9":
|
||||
"23242a8051e2191ed8d61f71a6792f2fc069ef18e6cdf07dedac3d3f648643c5",
|
||||
"aarch64-unknown-linux-musl-0.7.9":
|
||||
"60f30508c9002b2b7af55d70db2741cf7ea24c066ced710ad09681a6d2d19b3a",
|
||||
"arm-unknown-linux-musleabihf-0.7.9":
|
||||
"57d8e43e257f0ccd9df2b8581338c5145b9937aba53e9c9bb81b31044b720c61",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.9":
|
||||
"83353ee7e1724083ea94d7f488fa34c9159995a3996f87017fdf72e422c93242",
|
||||
"armv7-unknown-linux-musleabihf-0.7.9":
|
||||
"b2d8d81bc2abbdd857bad7cd3bf0d36c5155c0681aae8ac9fb8f49d54b95b3f2",
|
||||
"i686-pc-windows-msvc-0.7.9":
|
||||
"b5dc0dc10d9dd0dcf5729a94e98538418760d13877d4d4b1bc4efa9926280e78",
|
||||
"i686-unknown-linux-gnu-0.7.9":
|
||||
"fb8f1a7cb593c819c0fff71afa2dc480237ca80a3f5d8d433c8b51d2ae90ffdf",
|
||||
"i686-unknown-linux-musl-0.7.9":
|
||||
"a77592be13fea81ca42b2b7815784e769e1fd9ff476cfab69f2652823f99c55e",
|
||||
"powerpc64-unknown-linux-gnu-0.7.9":
|
||||
"26fee4867c158c04dd3a51ff9a23b4220a9ba69fae2e71be618d2cfa48164d96",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.9":
|
||||
"d588fbb01cacccb7fd6e0f101d34282ebb0569381f967d332f8072055e39840e",
|
||||
"s390x-unknown-linux-gnu-0.7.9":
|
||||
"d823d68ff662b7e59c6791281427bf1019dae791a964ffae31ae1d2d723dfc08",
|
||||
"x86_64-apple-darwin-0.7.9":
|
||||
"a4c084568850588b77e4a34c21b7df5c8cf9e2160b4d614307ed92fa12411742",
|
||||
"x86_64-pc-windows-msvc-0.7.9":
|
||||
"f91d8a3322a10caf257fd416807bd8d2801285b80b46ee37f2d0c6e426b8822c",
|
||||
"x86_64-unknown-linux-gnu-0.7.9":
|
||||
"b8450a419c0bcc85841bbed8511eb59e2a5683ddd3f813f2b98b97babf6b1b8b",
|
||||
"x86_64-unknown-linux-musl-0.7.9":
|
||||
"95918a1e1faf851a39cad402f1a77318e8fc90b7f829833ebaff27de9722d60e",
|
||||
"aarch64-apple-darwin-0.7.8":
|
||||
"ad6b3825ba277de70b9d0a37055f7d828f3f37416aee1cde65000f330efd4587",
|
||||
"aarch64-pc-windows-msvc-0.7.8":
|
||||
"e43448e5e3267dffb6bbdc30ffa291f8db664d1da9d084c44f99dc568f459e0a",
|
||||
"aarch64-unknown-linux-gnu-0.7.8":
|
||||
"da9e1c97f1452b25c8955127c92da7b68be228ad0b43bf50bba4dadb25c8b337",
|
||||
"aarch64-unknown-linux-musl-0.7.8":
|
||||
"4d18efb46f93fa942dc4c212dea3b6b07e3db62fe57d0c3d08de6bf5d9f9bb51",
|
||||
"arm-unknown-linux-musleabihf-0.7.8":
|
||||
"133b1c3fb850ec496bfb4ef84379bfaeff1d2c322114a0984d8a5c2e10e63028",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.8":
|
||||
"7d61c6e18e81447482dc80c090c65a6615a1232512899943566baf2808ca37bb",
|
||||
"armv7-unknown-linux-musleabihf-0.7.8":
|
||||
"0b6d6afcdb7c78e5df42cb2ab0929d2bec2654a350a8efacc6f95e830a31eb6e",
|
||||
"i686-pc-windows-msvc-0.7.8":
|
||||
"0d4b01372ca972543cd40366bb5480bb457e79dcf45b5f662721d709d6932dbd",
|
||||
"i686-unknown-linux-gnu-0.7.8":
|
||||
"db1c60961aea7a7f8c64a098801e0138e761b7556d1c1691fc4f3f771f0e47ae",
|
||||
"i686-unknown-linux-musl-0.7.8":
|
||||
"b765eb1817bc1d545f4860eff0adeb0c7907ea66be14536653192e588386b308",
|
||||
"powerpc64-unknown-linux-gnu-0.7.8":
|
||||
"2c894b104195ab194af05c6ad756ce8746a349a8620c83888207db5fccf29a8f",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.8":
|
||||
"4b0d93385685f756068f76af1871dcb7cc8f427ab6d650afc07493d06dca71db",
|
||||
"s390x-unknown-linux-gnu-0.7.8":
|
||||
"e58fc9f6d846ccbf50d9bcf27920ff4bc061541df8a6a3aa6f13be24981e0772",
|
||||
"x86_64-apple-darwin-0.7.8":
|
||||
"f046249639014eb70b43cbaf83eb6f56aac724ada354f9b9aad65f9960737920",
|
||||
"x86_64-pc-windows-msvc-0.7.8":
|
||||
"355736ddf9a01ab9da918b35470027c12128d7ed1d7f54f54771507d79529679",
|
||||
"x86_64-unknown-linux-gnu-0.7.8":
|
||||
"285981409c746508c1fd125f66a1ea654e487bf1e4d9f45371a062338f788adb",
|
||||
"x86_64-unknown-linux-musl-0.7.8":
|
||||
"8a707e45e0d1a8bdbc5bd1af0ae7d19ffab55f3722c5e73471039561900e3d48",
|
||||
"aarch64-apple-darwin-0.7.7":
|
||||
"6a06eaa8165d5abd89c3dc37ffbe1db60fcf49a87d7c612bfca7e87a1514695d",
|
||||
"aarch64-pc-windows-msvc-0.7.7":
|
||||
"e86cd59f2569f4bf475e5ad944910142c0ab107ad12613429ad8873a6f41087f",
|
||||
"aarch64-unknown-linux-gnu-0.7.7":
|
||||
"013061d4d33385e9a3fc52df18d22334f20f12616970b0d81583d5125ce8d6fa",
|
||||
"aarch64-unknown-linux-musl-0.7.7":
|
||||
"4014dc9dc024bb5a082f16c54adcd5936d47dae664bafa38453b3017ede41aab",
|
||||
"arm-unknown-linux-musleabihf-0.7.7":
|
||||
"c1dc010e3ab855391f3a6906fcffbeac873d136df2b20cfd998105385444e45c",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.7":
|
||||
"e08406cfcc1ccc0c069d22c91008967f662664abdbf8a15779a1944070e0f5b2",
|
||||
"armv7-unknown-linux-musleabihf-0.7.7":
|
||||
"35379428e6d001e63714449c26c9111d1d5ee6f3b6a95559c724ad57df9d8d17",
|
||||
"i686-pc-windows-msvc-0.7.7":
|
||||
"5e47a44df7707b58884cdf5d30527857ec1bf186e8f200517fd11a572669cacc",
|
||||
"i686-unknown-linux-gnu-0.7.7":
|
||||
"fc782a829cccb0201c4a918d9f5a3a114511d734953f7e5e60aed52951264454",
|
||||
"i686-unknown-linux-musl-0.7.7":
|
||||
"10b852326ee48502d6da26c7fe394345b7ce7ca94d76f293dbe4cde9577c3993",
|
||||
"powerpc64-unknown-linux-gnu-0.7.7":
|
||||
"4b26663e0c21289bd21c05a3ba344e6b069c600e5a6333e660ae16eb38027bd5",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.7":
|
||||
"e691d6a8a8c285cd644cf1f6d47c2568740ddca645c860f9bb23799790b54e56",
|
||||
"s390x-unknown-linux-gnu-0.7.7":
|
||||
"b21953a1c6c5475306e64f9ccf721762d2fc6aa572ee5268ed61a3b1531f06c1",
|
||||
"x86_64-apple-darwin-0.7.7":
|
||||
"4b337495ced2a9797357ee853873c2f5a45cc52f6ed68c9feba3c997443452b0",
|
||||
"x86_64-pc-windows-msvc-0.7.7":
|
||||
"a27a1fdf3f6b850dfb45fb009f7ea0fe3db1a59f692ebdc64c24ff8dbd0467d1",
|
||||
"x86_64-unknown-linux-gnu-0.7.7":
|
||||
"d83e2b9c2b251c93985824d9a12d97f5b036b7a9ff0b7d647c9ca7ae5ff2ae1b",
|
||||
"x86_64-unknown-linux-musl-0.7.7":
|
||||
"3876cafbb6599287a78778d2c265fd2050acfc247409ed677a8583f20385a3ae",
|
||||
"aarch64-apple-darwin-0.7.6":
|
||||
"a0e7c0e44ec4b2743e1c1d1f6edca1418687b05084f48c007c6e1c7d3a35bcd2",
|
||||
"aarch64-pc-windows-msvc-0.7.6":
|
||||
"2ada1290e87144726b6a723b38fd34ce64da5a3fe820a21685564924f894408c",
|
||||
"aarch64-unknown-linux-gnu-0.7.6":
|
||||
"4eae30038653bbec528257054fe07495f20c5d4bc663b630258e87d159e282b6",
|
||||
"aarch64-unknown-linux-musl-0.7.6":
|
||||
"9e59f0753383d6a27404be238360165e415605b1504b209349852a27cc01d48f",
|
||||
"arm-unknown-linux-musleabihf-0.7.6":
|
||||
"b81d59deeba1f92aba48aefce2b364530baa1cb8aa4c59fc2a90c9acf98c9a20",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.6":
|
||||
"e9d1b7d52def14fb1ab8af2fa52963ff8e4323934ec2e78720a94d92261fa9fc",
|
||||
"armv7-unknown-linux-musleabihf-0.7.6":
|
||||
"c525ad0f41c67d944e56362adffcda206aef36f3ed84daf90386fcbfa4a62c66",
|
||||
"i686-pc-windows-msvc-0.7.6":
|
||||
"aca45dbdb75cd2c5fdf70bf5ff436306d476352b135fcab544c4a9759d7d1af8",
|
||||
"i686-unknown-linux-gnu-0.7.6":
|
||||
"71448fddb93306b1b67f0c2e711eb79b6ea33d027212259abd7546a48d15b49f",
|
||||
"i686-unknown-linux-musl-0.7.6":
|
||||
"a641ada8b2ca3ec22c24414c2edef8c01370d7d4ac79998eac091b84f743c476",
|
||||
"powerpc64-unknown-linux-gnu-0.7.6":
|
||||
"9f63727933d11b0157ebc3fd640811c1224fe55215acff24e8ec5747fb4f90fc",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.6":
|
||||
"da746e6e809f32ab9709e45c7d5e7c37901478cc610119c08ae335c43ac089b2",
|
||||
"s390x-unknown-linux-gnu-0.7.6":
|
||||
"a07d4303e97f72312f9db8a1a67bae08f02d883f1879fa917b9ae87aec90d933",
|
||||
"x86_64-apple-darwin-0.7.6":
|
||||
"718cfd68b13a1a642fadc53646742785cd33b2e06124a01454ad358617841852",
|
||||
"x86_64-pc-windows-msvc-0.7.6":
|
||||
"4c81818cc89d75ca54762e2641deebad69c0af6594212a9fb24b9849df8ac413",
|
||||
"x86_64-unknown-linux-gnu-0.7.6":
|
||||
"0c5f0935bba35359150774fc5876d72947b863b8173c94dda776e6d88014a0df",
|
||||
"x86_64-unknown-linux-musl-0.7.6":
|
||||
"be755e8503b7e7174f24ad8cdcadab94f0662fe0b60df4fc35e1ddae48b19f35",
|
||||
"aarch64-apple-darwin-0.7.5":
|
||||
"8d82c7f6fcfd79b142c8845f694c8225dd5b401cd720e8e1e2a35a1c4150f516",
|
||||
"aarch64-pc-windows-msvc-0.7.5":
|
||||
"9ec005bf0b472d47ab730e463cc5a156b18ca9a9a6fe1c72bf18d97384d0b717",
|
||||
"aarch64-unknown-linux-gnu-0.7.5":
|
||||
"715bd03f6b2924b8f742b716d0f4b9d31ccbb1ad4a7f8df4ce2f572efff7f2cb",
|
||||
"aarch64-unknown-linux-musl-0.7.5":
|
||||
"ce23f5e1d22f1cdfc0db4358d3b2642c115ad99d404aef15030af31e39ef3484",
|
||||
"arm-unknown-linux-musleabihf-0.7.5":
|
||||
"2e85c3ba3ba461822940bca197198babcb1a8ce620c3d1c624423e68bba49d43",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.5":
|
||||
"cbd7990fb0d06750f7e966a54dc344396e4d605d029aa94a0cf00d695cb283e9",
|
||||
"armv7-unknown-linux-musleabihf-0.7.5":
|
||||
"96d5eb1246e654f4e2c37542797196d94c0d72fe44e470050a9fbf67e356fb10",
|
||||
"i686-pc-windows-msvc-0.7.5":
|
||||
"84e70b46e0f218db9573b0efce085c13e0e5ce7808b3143b990d1a334e5a8ee6",
|
||||
"i686-unknown-linux-gnu-0.7.5":
|
||||
"20efc06bc129d8757e81fdd00cf828a9c1d928a4a30c8c538c6d1ed219b52c5d",
|
||||
"i686-unknown-linux-musl-0.7.5":
|
||||
"3cc8dbcdb230a6abbaa3cd6b918d6150f747f45f8f96b7399d6258c54fab5867",
|
||||
"powerpc64-unknown-linux-gnu-0.7.5":
|
||||
"dab5571d40ce3347fe295b9afec9f560ad709461883ae604d0de827071b8d2f8",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.5":
|
||||
"4c3843068cd0e1bf9e5f68e5487fba28feef3196c025a1b1eaddd533a52b7bd7",
|
||||
"s390x-unknown-linux-gnu-0.7.5":
|
||||
"1b286e386a4d66dd9393caf78888a881cf63202522a6a88262e551bc7b8b3995",
|
||||
"x86_64-apple-darwin-0.7.5":
|
||||
"751ae339c91a6b8eddb868a64222c2533c722042476e4f28466683ddf96fa488",
|
||||
"x86_64-pc-windows-msvc-0.7.5":
|
||||
"e95cb3789b2f80052c80048ff2865e06eae7512d06d304127898c70c4fd3564f",
|
||||
"x86_64-unknown-linux-gnu-0.7.5":
|
||||
"a3d1964080a855e1f8806975b5fa943376045a64852c06ba80540813aa333305",
|
||||
"x86_64-unknown-linux-musl-0.7.5":
|
||||
"be058167ae65f7a2b56f607b070bd4e93dacd09be52511ccb8ebb10fa132709f",
|
||||
"aarch64-apple-darwin-0.7.4":
|
||||
"1af8c353479890b29b75933706890627555bbc07e12a0117ae62da3ec2ee372e",
|
||||
"aarch64-pc-windows-msvc-0.7.4":
|
||||
"3800868f3cc1509d6ea16036e3268ff45fd22a85c922cf3de4fb9535dbb0099e",
|
||||
"aarch64-unknown-linux-gnu-0.7.4":
|
||||
"c407e4c7431ee6cb28deb842edb49fea1ee3f5674a357f11244bfb0fd57e2ae4",
|
||||
"aarch64-unknown-linux-musl-0.7.4":
|
||||
"ff0d9172d2105da526501e01c38ecf0558ea323cfcd25adff9a89cd7fad5c076",
|
||||
"arm-unknown-linux-musleabihf-0.7.4":
|
||||
"4e6b7d15444ae58bc196ee4e7e6e11b451b4e994c0c73968254d3d4ff1c89bca",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.4":
|
||||
"303bac0f866c450fefe7543297fa87563941f924cb13f007dfe7cc02ac64dcd7",
|
||||
"armv7-unknown-linux-musleabihf-0.7.4":
|
||||
"004e22fe946fabec6b5dff668f4bd8f93569dab30efe0f3d4640f266760744bd",
|
||||
"i686-pc-windows-msvc-0.7.4":
|
||||
"113070d23ba1498cf9fff9ae634893a2a1dce42a0baa617c4a82009f61c71fbc",
|
||||
"i686-unknown-linux-gnu-0.7.4":
|
||||
"19f0f19dfe9d722a2fb89bde4771682cf632182d6204cc4ddb11d700d5b34c07",
|
||||
"i686-unknown-linux-musl-0.7.4":
|
||||
"fe281041401b4140a387f6101e64fcf4abb344791c12398c441c7e339510423d",
|
||||
"powerpc64-unknown-linux-gnu-0.7.4":
|
||||
"ef2320254e52234750d9745e6dc6e3b3c990aa51e506057d0869d4d18b55e5e3",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.4":
|
||||
"e143278764aab89b68c6f55dfdfa4242c8f5d5213880b584880a776a5ca1b0dd",
|
||||
"s390x-unknown-linux-gnu-0.7.4":
|
||||
"14dbae76be8999dcc8336fac1f6f86710e7ce4f4c3e1aec01e7ef7f9a3468811",
|
||||
"x86_64-apple-darwin-0.7.4":
|
||||
"a6c5fd8aa67db03447934b14703a2d7bb04b5e5f7ff45630a749760393c5610f",
|
||||
"x86_64-pc-windows-msvc-0.7.4":
|
||||
"966d0dd8d86f02f94128714180cd5ff42cd2ea9b33b86fc197f25cfa066aaea1",
|
||||
"x86_64-unknown-linux-gnu-0.7.4":
|
||||
"5264d9b2bf021fccbaf6edb97bc17ce4863687745f2443460a8ca71e55891614",
|
||||
"x86_64-unknown-linux-musl-0.7.4":
|
||||
"70083140d9efaf82cbb7ffa6231d5de3536d6497ec84d708afaf9b7e2fffbac2",
|
||||
"aarch64-apple-darwin-0.7.3":
|
||||
"162b328fc63e0075d4267688201de91356e1c1b81db50419fa4466cfe2dfdebc",
|
||||
"aarch64-pc-windows-msvc-0.7.3":
|
||||
"542b318c98b0295dd3d620fbcd63388757f382e14c69c569cb3ce793aa75c975",
|
||||
"aarch64-unknown-linux-gnu-0.7.3":
|
||||
"2c2be8bbb83e9bc722f2013de8bb7506cfe6521d0e30b4ad046849d036b3eea6",
|
||||
"aarch64-unknown-linux-musl-0.7.3":
|
||||
"a3f01c3c993b57fa8d13855c5ba60e3847bda4f8e795a52d52879e242e886604",
|
||||
"arm-unknown-linux-musleabihf-0.7.3":
|
||||
"87f72dc1c3b1b598e08c8efc7f9ab8eca23df8549cf4c1fc27a4a6b2524809c1",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.3":
|
||||
"69f285d861cd1809a4bad0f08c2ea8a77ec17cbe20524a4ebbee4c5a7c868520",
|
||||
"armv7-unknown-linux-musleabihf-0.7.3":
|
||||
"1a0071551cd575bbecef3218fb13bf05ab96ceb71b4b1d13a99b8a4af059f99f",
|
||||
"i686-pc-windows-msvc-0.7.3":
|
||||
"1c9becbc63c15dcf43b09c0ba84e0ba6fa533fa799b7baf57a36363ef42fbc52",
|
||||
"i686-unknown-linux-gnu-0.7.3":
|
||||
"a2b56cb262337380aa02b6d131e973d54090c3e655d3e55385d02850454c24de",
|
||||
"i686-unknown-linux-musl-0.7.3":
|
||||
"d6e846079ef38929206079147448c5683a3018116b2b3e6059cf4c26bcfbb290",
|
||||
"powerpc64-unknown-linux-gnu-0.7.3":
|
||||
"a9b94c618a5d5bc992102733a45759e38db9a9e069830c3e94c744d1bfc33c21",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.3":
|
||||
"782e9c343cb7c219b5514e64a799a8b9fa82585f6176b53ed095dc030a22d993",
|
||||
"s390x-unknown-linux-gnu-0.7.3":
|
||||
"ea803eafd6e3414d3a18aed9257f8ded8f7d1f6f182d2572969c4c487faa1986",
|
||||
"x86_64-apple-darwin-0.7.3":
|
||||
"d676940b51bdd5606b218bc2965fed67731f94ad07926045716acbf78626e09b",
|
||||
"x86_64-pc-windows-msvc-0.7.3":
|
||||
"20d3a420abbf2af9699cd9a02225d9325344046af8deb15563cc451e3c4fd059",
|
||||
"x86_64-unknown-linux-gnu-0.7.3":
|
||||
"17fc118ba4d7e9303f84fcabdc0a593fc3480ba76eb6980668fdbbb96fe88562",
|
||||
"x86_64-unknown-linux-musl-0.7.3":
|
||||
"325143825b88e7b0dadd1a8e8d3cbe4791d3cbbb9e2244350d917803fec8b3d1",
|
||||
"aarch64-apple-darwin-0.7.2":
|
||||
"8edc0bea8a9e35409f970b352036326393e79a6039577d8cc9ef63872c178a99",
|
||||
"aarch64-pc-windows-msvc-0.7.2":
|
||||
"a3d7affcd62e617bd2dd2a91fde679dd8d68a84762c8f3aaac294606ec14ffe5",
|
||||
"aarch64-unknown-linux-gnu-0.7.2":
|
||||
"2872fdf4785666575d129ba90590c44e6508e22584735f3e7e8a30d773dfc3db",
|
||||
"aarch64-unknown-linux-musl-0.7.2":
|
||||
"d5b31df40da794dab943c55e67d14fc111146e185b14a6de6eb749ee264a641c",
|
||||
"arm-unknown-linux-musleabihf-0.7.2":
|
||||
"fd203cef8c6cd775c2a5f7da31f69a72020a6c74b6fb808db3217ab04b70a038",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.2":
|
||||
"b69999c29c759f5a47f71c1f328d6e7c489229efa5ce0e84afce026201730abb",
|
||||
"armv7-unknown-linux-musleabihf-0.7.2":
|
||||
"f98a827e198de2d0a7224ecad87eb64c18c9c0ed4f0c768456e9b48482015d2f",
|
||||
"i686-pc-windows-msvc-0.7.2":
|
||||
"8b06489b2cc8814fc23dae4562c5e7d500e782c2b0d2556529f515a4d1e0b8e3",
|
||||
"i686-unknown-linux-gnu-0.7.2":
|
||||
"36f26a496c6dc53703e070761ef96f07acc88eae868f94c4665f5c17a88d8acf",
|
||||
"i686-unknown-linux-musl-0.7.2":
|
||||
"763bf7cd2119c40858cbd0892fd9b2c7102c79e5c590800b2f8e9c2f427cb7d1",
|
||||
"powerpc64-unknown-linux-gnu-0.7.2":
|
||||
"bd4a42ed0b9ab725f0cb565ae29c338ea6ce0689ddb35da632535a47c891e72f",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.2":
|
||||
"9a598869167b7e56ab971614972a2c486c8137681210094009a6fb61ac36699b",
|
||||
"s390x-unknown-linux-gnu-0.7.2":
|
||||
"7dd2240d60b1628869a2348ca0901cceee572bc20116ab04f9484ea0b6d40813",
|
||||
"x86_64-apple-darwin-0.7.2":
|
||||
"7d30b59d54900c97c492f3c07ff21cc3387a9e5bd8ca6db2d502462eaaeefd68",
|
||||
"x86_64-pc-windows-msvc-0.7.2":
|
||||
"35fd793df52fd13773425c9a97cc94cc13c8ee63abec6380b5083c183c688019",
|
||||
"x86_64-unknown-linux-gnu-0.7.2":
|
||||
"cfaab1b5166a6439ff66f020333d3a12bbdf622deee3b510718283e8f06c9de7",
|
||||
"x86_64-unknown-linux-musl-0.7.2":
|
||||
"dd10babf6c531597d246c97e55e32ca17b44fe251405fe539ec8ea2f22fac2d6",
|
||||
"aarch64-apple-darwin-0.7.1":
|
||||
"236d70d7738a5f41b45253d68665fda039fecee579939921e0795680d300f55f",
|
||||
"aarch64-pc-windows-msvc-0.7.1":
|
||||
"5fdbc703e6f22696ac053811e9750ff3cf50814aabf1792b9bc49f2647b836c6",
|
||||
"aarch64-unknown-linux-gnu-0.7.1":
|
||||
"ee8a98f485a22837be9e95eb55e4cd06db6c8deba94b6a2dd63d828fb5ef4226",
|
||||
"aarch64-unknown-linux-musl-0.7.1":
|
||||
"b65409802669913f5fd49ed6656d45c434aa9273fb864aefa0fbbb685b9834b6",
|
||||
"arm-unknown-linux-musleabihf-0.7.1":
|
||||
"96cfceb7716a9003750111c7f1a62aebccf02e0288f95bc670c69062d2ec6e61",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.1":
|
||||
"f156bdedd8a969dc49a5e01f6b38c7e50a63cf69acf3b5982adfaf232dfcb80f",
|
||||
"armv7-unknown-linux-musleabihf-0.7.1":
|
||||
"ae21a9c0b413976a24c51f095603294ca36da9089813022cb9bae0b84f0be6de",
|
||||
"i686-pc-windows-msvc-0.7.1":
|
||||
"38a98c532e463169e8c4f1ae3649dd500c168f6db687e3b29570930c55ffedf7",
|
||||
"i686-unknown-linux-gnu-0.7.1":
|
||||
"133a41ae763d8474cc4ff8e0c24ab8cdaf422f261cbcc284f4b90b57aa60f3fe",
|
||||
"i686-unknown-linux-musl-0.7.1":
|
||||
"6e55fea1ee9a8c5c1d29b3aeb033a8b01d3895a347b27ee108ba94c53d60cfb7",
|
||||
"powerpc64-unknown-linux-gnu-0.7.1":
|
||||
"cd6714a55577d6eb0ecad313646a4ade3c7a4407e1a2a4703a2fbb83c88681d5",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.1":
|
||||
"a354eda3a43323cf5445cfdf0197ebd4b36e967df9537e97910c47dcd9321aaa",
|
||||
"s390x-unknown-linux-gnu-0.7.1":
|
||||
"59d194c544a8a53186c3da6ac26f90ab0f453fae71fd2e0d4d177a8ed8890abb",
|
||||
"x86_64-apple-darwin-0.7.1":
|
||||
"a81e655cc0b6a5ccf9197f2dc0df513171e68804e498c17076d6e56b41234c5d",
|
||||
"x86_64-pc-windows-msvc-0.7.1":
|
||||
"b4d48072e384014ecd04ec5c544aee523ead1faaebcd428ba5f6abf2836096df",
|
||||
"x86_64-unknown-linux-gnu-0.7.1":
|
||||
"cec71afc57276b1857970d6ec96e110989c3e4ed0d81f0c4c11c1231970b7e56",
|
||||
"x86_64-unknown-linux-musl-0.7.1":
|
||||
"9b714ddf470795d5f1aa5c8111ea153139ae202216ffbe4105fb92f202e0b02b",
|
||||
"aarch64-apple-darwin-0.7.0":
|
||||
"964ebe641b563920e0650a60bf5ac21e6c8c56557704e5ecfaaad7ff62c3a73c",
|
||||
"aarch64-pc-windows-msvc-0.7.0":
|
||||
"c00950aa4b243e1043d1ec651fdfd71e5f4e5b80135b30fcf3b70fc201aeb1c4",
|
||||
"aarch64-unknown-linux-gnu-0.7.0":
|
||||
"540fcb8f2f972c82260a8063a6a4b496d7ff858edc42aa0e2c733a7b55ef8dd8",
|
||||
"aarch64-unknown-linux-musl-0.7.0":
|
||||
"f6367e288617021aba6176945ba20a7f8ea3b22a5f8896314a7d0acb863b533e",
|
||||
"arm-unknown-linux-musleabihf-0.7.0":
|
||||
"6fc85b25a4b3cb27b924e1f3181f96197667b7465fe52bf703afb5539d09c09c",
|
||||
"armv7-unknown-linux-gnueabihf-0.7.0":
|
||||
"035b46fde90a7ee4b48292ff9d116cc771b10d9e955d1979b1a1cd6b3998f602",
|
||||
"armv7-unknown-linux-musleabihf-0.7.0":
|
||||
"5f43390685fbb9f29d6075df1d492f9bf39cabb868bf37e0da3cd925c679b068",
|
||||
"i686-pc-windows-msvc-0.7.0":
|
||||
"f045db339b2acecc790d2071598275086978a99262d9c4b0c52189c26cba68a9",
|
||||
"i686-unknown-linux-gnu-0.7.0":
|
||||
"9936acd12616548a04ce6875aa125ea34f3b288181f2188bfb72d914965680be",
|
||||
"i686-unknown-linux-musl-0.7.0":
|
||||
"bfad15225152d9fa8769731b35dd53e0b39cba045900b6d43f90e655652af5b8",
|
||||
"powerpc64-unknown-linux-gnu-0.7.0":
|
||||
"91cfac9b5a9ba844c3ba90944e00bfb79da2983b7c6306bdb054c75ab3fea0fe",
|
||||
"powerpc64le-unknown-linux-gnu-0.7.0":
|
||||
"d690793c993a1a03049b7e7f3f0e41c94ba2c45b0155bdde917d550ecd4ee02d",
|
||||
"s390x-unknown-linux-gnu-0.7.0":
|
||||
"429ffee0dddd8c0c59e246fb89bef721d1ed22a4c051925d7dfafcfc7dce464f",
|
||||
"x86_64-apple-darwin-0.7.0":
|
||||
"dc5037f3ffbf8074b3ee63de7a73aa57421b0da0837a478e26317424dbab16f3",
|
||||
"x86_64-pc-windows-msvc-0.7.0":
|
||||
"62836c9d6e3f346d06c45fee4109be21ca9d1df8d087472dcc8d51815f182332",
|
||||
"x86_64-unknown-linux-gnu-0.7.0":
|
||||
"ca1e8196672bf04ccb926519f2071208a8d6c0ce02fb65bc7d0a85be1b684b0f",
|
||||
"x86_64-unknown-linux-musl-0.7.0":
|
||||
"08e1bb8fdea2c6d5edbe40ab1651de097b884020056c0925a9973582ff669d04",
|
||||
"aarch64-apple-darwin-0.6.17":
|
||||
"e686c73b9314c77a36a6a4c9f94b07c001f0c9157c50c63c764941141c0d0088",
|
||||
"aarch64-pc-windows-msvc-0.6.17":
|
||||
"3a9468e90df970f75759da6caed7dfde2816e0f3842031235c3835fc0c4e7d09",
|
||||
"aarch64-unknown-linux-gnu-0.6.17":
|
||||
"6fb716c36e8ca9cf98b7cb347b0ced41679145837eb22890ee5fa9d8b68ce9f5",
|
||||
"aarch64-unknown-linux-musl-0.6.17":
|
||||
"98750f5c0cd9eb520799d10649efb18441b616150f07e6c1125f616a3fd137e8",
|
||||
"arm-unknown-linux-musleabihf-0.6.17":
|
||||
"649d8d0f37e8365af5aaa012b09dd083d6e71018e569a4d2e78316d5013f18a7",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.17":
|
||||
"efc12955d7a6120ea0be2de5ee03dbb33d0d7d9de9dbe0dce560514f2ee129d3",
|
||||
"armv7-unknown-linux-musleabihf-0.6.17":
|
||||
"0661d97df8262ef83ccdc6a55ed101abfe8f1cf1ff1be879d9b0d7d1e894c970",
|
||||
"i686-pc-windows-msvc-0.6.17":
|
||||
"56dea6c98e1606e95445e77177d7e3cd49bb3d1a63c81b11fe49bf733adb62a2",
|
||||
"i686-unknown-linux-gnu-0.6.17":
|
||||
"4bc37f8303a4a5aae1c309f08166884027f325b6872c418cfbaa2cf20a2b2ac5",
|
||||
"i686-unknown-linux-musl-0.6.17":
|
||||
"8ec08cca0806a9205ccf5758258c617b57e413b33275bcd861fca363e0eaddf7",
|
||||
"powerpc64-unknown-linux-gnu-0.6.17":
|
||||
"d33b70ab206e1ed0663e755506a11db3776787012bfe9d2b2138a90942f506be",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.17":
|
||||
"cd91a579850fc45d3b786a654a2c0343836f007929b2e35de9606082eec5361f",
|
||||
"s390x-unknown-linux-gnu-0.6.17":
|
||||
"3c753a9d3485bbac23403a0b41a9e70ceeb586f3b4df891ced7ed27d4c6c542b",
|
||||
"x86_64-apple-darwin-0.6.17":
|
||||
"61e9bdc02aacdb994da6ea2a477b11b34c23fc09203237aeee8d3817daab012d",
|
||||
"x86_64-pc-windows-msvc-0.6.17":
|
||||
"32882cf98f646cafca003e7a7c471b7ff4ba977b681c9fa3b12cf908ba64af82",
|
||||
"x86_64-unknown-linux-gnu-0.6.17":
|
||||
"720ec28f7a94aa8cd91d3d57dec1434d64b9ae13d1dd6a25f4c0cdb837ba9cf6",
|
||||
"x86_64-unknown-linux-musl-0.6.17":
|
||||
"28bd6b50be068cc09d8a46b76f8c4b72271d471c6673a5bdb47793622e62224d",
|
||||
"aarch64-apple-darwin-0.6.16":
|
||||
"2b1ea0d5cf27375738f5f0f229587bc3590c0f501cb00bc48133a3d122d28364",
|
||||
"aarch64-pc-windows-msvc-0.6.16":
|
||||
"5abca187b8aecbdffef7547cb39a527168e4cb93d8d2e4ce14271f5831a4d902",
|
||||
"aarch64-unknown-linux-gnu-0.6.16":
|
||||
"a82f96ab5f285825f9acee6ac1563683c4940d80df2f08549cad43d37c7ba4a7",
|
||||
"aarch64-unknown-linux-musl-0.6.16":
|
||||
"ae3f793c62fe6ced80483d6c78cb49f06a01088bc5d86f1446a9b5988b2acecc",
|
||||
"arm-unknown-linux-musleabihf-0.6.16":
|
||||
"91f7f5a4eb97b7983a8e5421d5bfea8802064422ce2f535055f373726eb0aa9a",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.16":
|
||||
"a4ffe043952bf4e757a5ca0f546bb83b055b6ee0646dd5c4f5e5f13dbc5ee8f8",
|
||||
"armv7-unknown-linux-musleabihf-0.6.16":
|
||||
"0237c8d9914e0d9fd2f022d6d5f91ce392d13e0ccbb7fa7ebe601296a67c3d6c",
|
||||
"i686-pc-windows-msvc-0.6.16":
|
||||
"f5c6400f07db2014b2b0c66770e1125fa70efe4dd99cc8351838bed0045c34f8",
|
||||
"i686-unknown-linux-gnu-0.6.16":
|
||||
"f46f89efcc599a6695e8378a1201e62cd4afb9a4438d65a89098ab11201f84ab",
|
||||
"i686-unknown-linux-musl-0.6.16":
|
||||
"afe69380a9d3592a87893d6bdc11ff33e4180b98f1e1fd4e626c0307d7598914",
|
||||
"powerpc64-unknown-linux-gnu-0.6.16":
|
||||
"bf455747580dbbf76cbcf616f67f825c40bd1bdec20c9ff993e03485f9eaad44",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.16":
|
||||
"508ec561b1740a551d2b33e96671e0e8435a1bcc0e97080f3d7ba88a096bd360",
|
||||
"s390x-unknown-linux-gnu-0.6.16":
|
||||
"e25c5527826524f51f114388bff47871bf1ca67badbfd72d45427bdba4b46794",
|
||||
"x86_64-apple-darwin-0.6.16":
|
||||
"ce512b5e40a8ad2916a46df2bdba729d5541e4b3649a09aaddff6e525be012e4",
|
||||
"x86_64-pc-windows-msvc-0.6.16":
|
||||
"f1b4c24ec602b6c0b06b6bc64aa447bbe4cf313e93fbec326741961e80ffa8b7",
|
||||
"x86_64-unknown-linux-gnu-0.6.16":
|
||||
"e9ef28b675df68978a60f87192fb8c730b8bfca9bef42b121686b218ea0f6542",
|
||||
"x86_64-unknown-linux-musl-0.6.16":
|
||||
"25024557931d04cc34f80b818c7547c9c62b762ec6df807e30cb52f383fa2615",
|
||||
"aarch64-apple-darwin-0.6.15":
|
||||
"1c5b25f75c6438b6910dbc4c6903debe53f31ee14aee55d02243dfe7bf7c9f72",
|
||||
"aarch64-pc-windows-msvc-0.6.15":
|
||||
"317fe0b29e647aad1e9f02ffe764dcbbc6e2ef189f018c81b673884173ab98ba",
|
||||
"aarch64-unknown-linux-gnu-0.6.15":
|
||||
"3bf650aec162157b7e01461f41c2a9797366b6043452c6e7035c6c926d0a585b",
|
||||
"aarch64-unknown-linux-musl-0.6.15":
|
||||
"183cebae8c9d91bbd48219f9006a5c0c41c90a075d6724aec53a7ea0503c665a",
|
||||
"arm-unknown-linux-musleabihf-0.6.15":
|
||||
"d83c76e130ffb25fb6a4ba8ea5870207d810190733a14ae87084c63a417912f6",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.15":
|
||||
"d661ec44e5fc7553cd8dd5ad5f48848c5a4d5279ba0df0036c0e2422ec9f312b",
|
||||
"armv7-unknown-linux-musleabihf-0.6.15":
|
||||
"6fc86a829965362f99602c47627b269c9b676731586a60ca5bb9d6069677938d",
|
||||
"i686-pc-windows-msvc-0.6.15":
|
||||
"7f15e3377e94fac882b33465cb8cbb24705f5c8d63d9d65c6f1b0816c1d30a0b",
|
||||
"i686-unknown-linux-gnu-0.6.15":
|
||||
"bfedd03be9f579a9bc10e6c25176017e514cca0500cfb9bba43794387a577661",
|
||||
"i686-unknown-linux-musl-0.6.15":
|
||||
"82bf8666c0a57514af4e5403f162314b710e1682e1065ab71a845ebb5d8db0b7",
|
||||
"powerpc64-unknown-linux-gnu-0.6.15":
|
||||
"6e9795344d61ee9ac497d6e03a447d808f2aab13925f30e44c00638abec57deb",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.15":
|
||||
"e38f13284ed8b645b87ef07c8b549d1f1a5b746aa0411c2115dcd5cda0da13fc",
|
||||
"s390x-unknown-linux-gnu-0.6.15":
|
||||
"416f61249b330ea9735cda0c866c9460f87111bc9d4e040c98916fda6a45be09",
|
||||
"x86_64-apple-darwin-0.6.15":
|
||||
"97adf61511c0f6ea42c090443c38d8d71116b78ae626363f9f149924c91ae886",
|
||||
"x86_64-pc-windows-msvc-0.6.15":
|
||||
"10c75d566db1447f3bdcbcb31d6598e4b5f4ea638be5d8b73a7350929389512b",
|
||||
"x86_64-unknown-linux-gnu-0.6.15":
|
||||
"85d98ef282cdbfcb4020922f0c12421ecca4130f0a4570d3b827a15ffd544acc",
|
||||
"x86_64-unknown-linux-musl-0.6.15":
|
||||
"78289c93836cb32b8b24e3216b5b316e7fdf483365de2fc571844d308387e8a4",
|
||||
"aarch64-apple-darwin-0.6.14":
|
||||
"4ea4731010fbd1bc8e790e07f199f55a5c7c2c732e9b77f85e302b0bee61b756",
|
||||
"aarch64-pc-windows-msvc-0.6.14":
|
||||
"7b0b3367c4060c9b47b961201ceb4252e97496c890ad1bd13c664bf5b0744d57",
|
||||
"aarch64-unknown-linux-gnu-0.6.14":
|
||||
"ea25597354af186bdd55aee0de431e16d45d82951a4f41f065a8e4dc27885265",
|
||||
"aarch64-unknown-linux-musl-0.6.14":
|
||||
"94e22c4be44d205def456427639ca5ca1c1a9e29acc31808a7b28fdd5dcf7f17",
|
||||
"arm-unknown-linux-musleabihf-0.6.14":
|
||||
"de00f51ff804c145f9a0a13ead54e1ed08d317fac690477312cf9430ed43e62e",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.14":
|
||||
"d73b09f23c7056b3b5318edf670ebc8d2eac5adfdd4f4ee46796723298f21e18",
|
||||
"armv7-unknown-linux-musleabihf-0.6.14":
|
||||
"f7844b89c77d1d57ca28a25b6b2e16a5bb3605ccf1dd9dc17ce641a2fa2d8b29",
|
||||
"i686-pc-windows-msvc-0.6.14":
|
||||
"4e9f9ccc229a03d923213b8b4c7b373cd8bb941984f421de17fe9dac3d5491e9",
|
||||
"i686-unknown-linux-gnu-0.6.14":
|
||||
"32c967c3dd80ecc9006a30be1a9c8ec77d63aa8080b78787d4ec0f79db12dbe4",
|
||||
"i686-unknown-linux-musl-0.6.14":
|
||||
"c5a484d15049fd2b8ea9a7bbf0f968614819a7eda769f35c202e01e1904f6458",
|
||||
"powerpc64-unknown-linux-gnu-0.6.14":
|
||||
"79abdc4c6e566e98067dc4b612f1fca5cb384b964553a0b8e0f5c40885ff3db8",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.14":
|
||||
"2eae20cf66ba5de1b7ac180458e4f2a889cd705637626e01c400f73f07dd0491",
|
||||
"s390x-unknown-linux-gnu-0.6.14":
|
||||
"a51f8319b2b334c1392d3927e925b46c62ac584eb35b944d384f0af227cf0f36",
|
||||
"x86_64-apple-darwin-0.6.14":
|
||||
"1d8ecb2eb3b68fb50e4249dc96ac9d2458dc24068848f04f4c5b42af2fd26552",
|
||||
"x86_64-pc-windows-msvc-0.6.14":
|
||||
"93b29fc234758e381df461d7638ff73d0f08bdf3a0dc37923b1ee0b9e442ca3f",
|
||||
"x86_64-unknown-linux-gnu-0.6.14":
|
||||
"0aaf451c391d3913823bfb8ed354b446dcfd0553a32ed8266611e4181c61fd51",
|
||||
"x86_64-unknown-linux-musl-0.6.14":
|
||||
"0cac4df0cb3457b154f2039ae471e89cd4e15f3bd790bbb3cb0b8b40d940b93e",
|
||||
"aarch64-apple-darwin-0.6.13":
|
||||
"0ddb8458634cc3a02799b6da839cb546dff9dabc6f3394912c48dd479016683b",
|
||||
"aarch64-pc-windows-msvc-0.6.13":
|
||||
"3f3d6aa73b4859469fa3ad7efca3e5d0dba1112292c91d5c5f740983f16a8d8a",
|
||||
"aarch64-unknown-linux-gnu-0.6.13":
|
||||
"ac0c723663ff76183077cc9aa91dcd0b5100081d87f93e1ba482930e0a584e90",
|
||||
"aarch64-unknown-linux-musl-0.6.13":
|
||||
"379a5c48f6e3eb32c2d16022c0a4fc10cdfcca3543b75e2e9d819d62fead6a75",
|
||||
"arm-unknown-linux-musleabihf-0.6.13":
|
||||
"ba1f630a299cfdd456b93a8b41e20bd2ad37a86aac884aca4efd722a62a26bb8",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.13":
|
||||
"1d55eb46510db8f169bb9be6fbd3a6ff34aa52340dff5eda0acdcb1b834e8bee",
|
||||
"armv7-unknown-linux-musleabihf-0.6.13":
|
||||
"dc86e9d807ac324eed2e4a73fec341618ea288826a27143b8b695565a35f1b70",
|
||||
"i686-pc-windows-msvc-0.6.13":
|
||||
"08367c3a04cf4da1c3ac6784431421de1efb8584ba68b8017efcd5e889d4a2a2",
|
||||
"i686-unknown-linux-gnu-0.6.13":
|
||||
"2896a75940761a2ce90a8a650da02d6766de0b9990dfa6a99cd94fd3d1e6c530",
|
||||
"i686-unknown-linux-musl-0.6.13":
|
||||
"29e64ef33ff2d7dcbbb3167bc7241de3b9d258fb39a6a992dfc847f1b968d32d",
|
||||
"powerpc64-unknown-linux-gnu-0.6.13":
|
||||
"cdd2ba090ce9e3ed66a94bfe95b45a584bd5b9e45626836993f1279290b1a95e",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.13":
|
||||
"88830c596ef2a875a0c73aefda48e8398fdafe4eb4acecbee0b44a7995e9dc13",
|
||||
"s390x-unknown-linux-gnu-0.6.13":
|
||||
"49e494038871006e36b404f0559f1c831b3e68692986b3c67510a675028c9696",
|
||||
"x86_64-apple-darwin-0.6.13":
|
||||
"ed240854d97f7b234082f5a0ce734869a4310d86d46a819860bbce6d7df8b2eb",
|
||||
"x86_64-pc-windows-msvc-0.6.13":
|
||||
"19bb08768fd3b8664068cc45faa633ee110bfef4215e560bc1e5833b1bc6c30e",
|
||||
"x86_64-unknown-linux-gnu-0.6.13":
|
||||
"f6788fd45a25ea1033a671eaa9ece6c9b004ce5c9cf09552effadde567a7d7a5",
|
||||
"x86_64-unknown-linux-musl-0.6.13":
|
||||
"779560faf6a21b5a6dbc2664c2dfbde2b9387b1f486c9197a9f4d143a3b66875",
|
||||
"aarch64-apple-darwin-0.6.12":
|
||||
"fab8db5b62da1e945524b8d1a9d4946fcc6d9b77ec0cab423d953e82159967ac",
|
||||
"aarch64-pc-windows-msvc-0.6.12":
|
||||
"d72d8cf0633dc40198a868e906442bc6bacfa38c3b807c26bcbf3fc364af5d96",
|
||||
"aarch64-unknown-linux-gnu-0.6.12":
|
||||
"d867553e5ea19f9cea08e564179d909c69ecfce5e7e382099d1844dbf1c9878c",
|
||||
"aarch64-unknown-linux-musl-0.6.12":
|
||||
"e999ae0679bfabe8a1e6343b8b204a531a6c851e315caff9b326f34182884af6",
|
||||
"arm-unknown-linux-musleabihf-0.6.12":
|
||||
"da8d0700ec5e0cb0b2f20cc20834b48d5927197042e49bea5eef7fd139d72fe9",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.12":
|
||||
"b5dedaca5fbb46f412c5426102eec7c9f10003a67dd41b943232e4a2b6a5cc16",
|
||||
"armv7-unknown-linux-musleabihf-0.6.12":
|
||||
"8fb6c1b16f8b3c2aa4073cd02729432f9afd9389f110850aed8228464fa37398",
|
||||
"i686-pc-windows-msvc-0.6.12":
|
||||
"23431d1a798aee234bd7b271bce306fbd760c91d98e19a314ddd890a065aff83",
|
||||
"i686-unknown-linux-gnu-0.6.12":
|
||||
"d0774e847de6c0fe6a9c3aba44b7d400261d01171ae32da60c472eb410691785",
|
||||
"i686-unknown-linux-musl-0.6.12":
|
||||
"02e4503b244cbb18d2fa14b3a7e9433fe437e767ffcbfc39c5f0fdff9b8dd65e",
|
||||
"powerpc64-unknown-linux-gnu-0.6.12":
|
||||
"046b43cf8af74d8892e9559e8b3181ec1e4045a4910a4dfdd00b110694c93188",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.12":
|
||||
"e61ba76fa6dfd6041c985881c024385c31d544d6a182d1a050da7594438f073f",
|
||||
"s390x-unknown-linux-gnu-0.6.12":
|
||||
"6eae67730009eb4f8ad7a4e5733ab69b6c4dcb21b482f4567015e3e6d0729357",
|
||||
"x86_64-apple-darwin-0.6.12":
|
||||
"5b6ee08766de11dc49ee9e292333e8b46ef2ceaaa3ebb0388467e114fca2ed8c",
|
||||
"x86_64-pc-windows-msvc-0.6.12":
|
||||
"30fdf26c209f0cb7c97d3b08a26ab4e78ce5ae0e031b88798cbaccc0f24f452b",
|
||||
"x86_64-unknown-linux-gnu-0.6.12":
|
||||
"eec3ccf53616e00905279a302bc043451bd96ca71a159a2ac3199452ac914c26",
|
||||
"x86_64-unknown-linux-musl-0.6.12":
|
||||
"25f055a556576003fefc0f5fd213bf3c6df1824d4c7fc35e6361fbecc420139f",
|
||||
"aarch64-apple-darwin-0.6.11":
|
||||
"a5b14a92448b908d1a5415f2a49522010fef8972695e2f7bbb4e5c5f88024573",
|
||||
"aarch64-pc-windows-msvc-0.6.11":
|
||||
"858e523d9498a332aab093852c30c524bbd94622137dd6f773d19da14ac920b4",
|
||||
"aarch64-unknown-linux-gnu-0.6.11":
|
||||
"5384098938893f060b8b47e606918c271a419b52eedda1546a4d6febae4b0c06",
|
||||
"aarch64-unknown-linux-musl-0.6.11":
|
||||
"de20c247ef6a6bc0948e611ace3f3f321c098d7bf75b737f169c1db06b4f4d69",
|
||||
"arm-unknown-linux-musleabihf-0.6.11":
|
||||
"76a1558e2cb8d0e5e646a0cf8a204b53d3779221bea3af50b204c8d28532daa7",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.11":
|
||||
"5abacc141dabb6071fcc3a19a301874083c6cc4a36d6eb6b0654a276efbfd33b",
|
||||
"armv7-unknown-linux-musleabihf-0.6.11":
|
||||
"cf05ab1fe44494cc490ec5c29578e200a3c195b395e67fe62d45be9a4c897d06",
|
||||
"i686-pc-windows-msvc-0.6.11":
|
||||
"331e94f1db12fa92266f764f63586d8c18e6cea5d37d430af2eb7673f108e874",
|
||||
"i686-unknown-linux-gnu-0.6.11":
|
||||
"b9d193f28736c3166f533c61fc4a2e8e8a4c7961c6bd46e17c3db66f750ef4b6",
|
||||
"i686-unknown-linux-musl-0.6.11":
|
||||
"dfa735baacc13ba9962fb9b7167599407aa733bfc7853824a785773769c58ed5",
|
||||
"powerpc64-unknown-linux-gnu-0.6.11":
|
||||
"b79060dc0726a1fc8a4458a80fb1ce0489198dd3ad334fe54bb7926e473750ed",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.11":
|
||||
"ebd219d0b5f0a60a584ebb88e1379c616e746cabaaf79608d54be5919d742ee3",
|
||||
"s390x-unknown-linux-gnu-0.6.11":
|
||||
"3b5563127303c16e0531c1fd13356763decc0ea91b860eb5f63c3108a275aa2c",
|
||||
"x86_64-apple-darwin-0.6.11":
|
||||
"099b163ce5098558ccdc1df54bdcf8b02eb11364458095e95f8dd54ff8984d96",
|
||||
"x86_64-pc-windows-msvc-0.6.11":
|
||||
"292ade13fc2e1530d0021ec7fd42526df58a8436974b8a5b829685db856e667e",
|
||||
"x86_64-unknown-linux-gnu-0.6.11":
|
||||
"c19b3be7ac26f8b211f7a5f07f01a77fd4d2b6205ff257790770a585f7f5bda4",
|
||||
"x86_64-unknown-linux-musl-0.6.11":
|
||||
"23aabfa5d0bde26d151eaf31a392595a5c88e74e0bc804351b02fbb0328f8aaa",
|
||||
"aarch64-apple-darwin-0.6.10":
|
||||
"82bf2cb3b34ab504eb08486093c9e97cfaf5299da4d4a60e14b6642a2a2e9b8e",
|
||||
"aarch64-pc-windows-msvc-0.6.10":
|
||||
"afc3c1ed78273843417b781fd30b263ba417dcfd05ef9a65be50eec7aa500f20",
|
||||
"aarch64-unknown-linux-gnu-0.6.10":
|
||||
"527f0adc3bcf841a3a0df0d3fef8db277b8afffac588d80948638719b611a8c2",
|
||||
"aarch64-unknown-linux-musl-0.6.10":
|
||||
"36c36aafdf4b2fb8040d0b8db2eaa4b3f44260a689a6e789bc1cd95689e890bc",
|
||||
"arm-unknown-linux-musleabihf-0.6.10":
|
||||
"abef3136f0da26055368df298f3379bbd0d6776ba7e7a0c12275e403136408d8",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.10":
|
||||
"8b776d606b3b9566ae659ab8b2c767e771f1f3e2e632b4c634ff80b26796795f",
|
||||
"armv7-unknown-linux-musleabihf-0.6.10":
|
||||
"d5af6869e1f69753e9ac2b8bacadd6356f84f373b0f6edfda60dc85c194d3a6b",
|
||||
"i686-pc-windows-msvc-0.6.10":
|
||||
"ff6c580750d6bdbca1cb7c64601ebf0f079cc6d8ab79df6472e5fd61e4f89cf9",
|
||||
"i686-unknown-linux-gnu-0.6.10":
|
||||
"978e8d7b495251d842250045a3f15c59e9fe148d09538aa322d4c045db632cc3",
|
||||
"i686-unknown-linux-musl-0.6.10":
|
||||
"432c0609dec5d196f516639de8845fdf9393b4591978a927f6b2bfa92edd0220",
|
||||
"powerpc64-unknown-linux-gnu-0.6.10":
|
||||
"ec4285062cc4bec8aa7f95efba227c4ee3301503938735902fdd896c3ef8ec7f",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.10":
|
||||
"d1dcbdd11b133bcce003aa48be6710a56f1c938eff496eb021dbeac8c09b5c2d",
|
||||
"s390x-unknown-linux-gnu-0.6.10":
|
||||
"4a68f92213c567a8d2bc22ccc10a328f3dd851967f315c517fc1eb52c8f58ed5",
|
||||
"x86_64-apple-darwin-0.6.10":
|
||||
"ddd27652b1a4053b848e35c348500841a8fde38e8ac2b37233464ab91e8f7788",
|
||||
"x86_64-pc-windows-msvc-0.6.10":
|
||||
"c41c4f34782558d3263f7a51e4efd053bc4d074dc46fefa574c4fdb2ed0a00e1",
|
||||
"x86_64-unknown-linux-gnu-0.6.10":
|
||||
"d58885f055fdb726d12cdd1cc54119432a0e4557c8e8ba04ca1d625058b98832",
|
||||
"x86_64-unknown-linux-musl-0.6.10":
|
||||
"1bdeaa0396405a30c4bff35b2d7c9df832836da50eec132ccc0d92657a336c4c",
|
||||
"aarch64-apple-darwin-0.6.9":
|
||||
"a6841484affb3c123313df98bcd8932208bdfb3d9d90a72aec274e8a696caa88",
|
||||
"aarch64-pc-windows-msvc-0.6.9":
|
||||
"bdb7e5eebaa5bb807f2c665b909dbba4bce6f23adf774134924a4a3c6acd4e72",
|
||||
"aarch64-unknown-linux-gnu-0.6.9":
|
||||
"f5032ad47151c7906c0fb25f7c3b00a85ab0bfed2170cbc444e79c438799095b",
|
||||
"aarch64-unknown-linux-musl-0.6.9":
|
||||
"4de15999c38a0e57a3708eccb1fe3295b3d1c0c69410029b16e5e42452d232a9",
|
||||
"arm-unknown-linux-musleabihf-0.6.9":
|
||||
"1a228a1cc86689894c771d0b4635b74708db416c240cfbdc36ddd87c90ae0eb0",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.9":
|
||||
"a9a307d6b3e6a3500aa0102ff7b03cccebe2a9af40130df97382688574afc637",
|
||||
"armv7-unknown-linux-musleabihf-0.6.9":
|
||||
"2cf77dcd0e73b323c5f10120452f6ef34191cab3bb8061ee01d5e62706af7493",
|
||||
"i686-pc-windows-msvc-0.6.9":
|
||||
"709d6d7e6d0e8244b4d51ac9ef0f373d2ac2cb20570e8bdf71c84ccab8c8cba0",
|
||||
"i686-unknown-linux-gnu-0.6.9":
|
||||
"4000a6fd98af6ed84c9a7c2f06019cab5f4a8cfa4e5a9c37b6984e4c7cae1df2",
|
||||
"i686-unknown-linux-musl-0.6.9":
|
||||
"d227586d574264922f344cf98b0f469335ce52d3443619d15448140b44ff8204",
|
||||
"powerpc64-unknown-linux-gnu-0.6.9":
|
||||
"f12b8dbc8ed1ca24dfadbd3969730ab9c2cf797e117cdb508732f49b9fa4b620",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.9":
|
||||
"451cd936bd35405c1cf2d0b63c975d5490e2646f1516b9bcb27af66688946903",
|
||||
"s390x-unknown-linux-gnu-0.6.9":
|
||||
"e25ec6762b68383abfbecb1ec24c1eda52a64dc67866021280c649ef3813726f",
|
||||
"x86_64-apple-darwin-0.6.9":
|
||||
"96eb2bfbe2bb3b74836aa5d6f563ae21bbb9e071148adfda1e67000735a020a3",
|
||||
"x86_64-pc-windows-msvc-0.6.9":
|
||||
"4d959abc2517c38b5527e3368b6755d66ecbb85679a9b2b34b7a78796c6cf7f8",
|
||||
"x86_64-unknown-linux-gnu-0.6.9":
|
||||
"001b87a0c2ea642a3c75a98c6af3e8528aa473d560e653cf213efcc9aaa4a028",
|
||||
"x86_64-unknown-linux-musl-0.6.9":
|
||||
"2b2914da53f9412a1aad7457cee424680da037e6a49c378365c3b5ff5ef0b926",
|
||||
"aarch64-apple-darwin-0.6.8":
|
||||
"e4f83fc42d9735512198c2d86a6fc136e2f5a2b59b3ccc4f104018ed07465499",
|
||||
"aarch64-pc-windows-msvc-0.6.8":
|
||||
"5619c7fbc026544c8cc77ade994ef79e799fc521a050268172aa47826f364834",
|
||||
"aarch64-unknown-linux-gnu-0.6.8":
|
||||
"3ffcaa4f4dba917fa58484a1c3dcb96a958a4baca0204e9c10a4799f81b9ee2f",
|
||||
"aarch64-unknown-linux-musl-0.6.8":
|
||||
"c1d4504ee47d8577761989c9daa4bbd1b93e5d04056215584a0415ad8738b0f9",
|
||||
"arm-unknown-linux-musleabihf-0.6.8":
|
||||
"7280cb1425787faf335bed8e9f2d575bcb179e1b19489ee7984c546d6ef07fff",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.8":
|
||||
"6753d79f3f8e1556a855912f0f859b039b67e591332f6ee794e2c51f2eda1658",
|
||||
"armv7-unknown-linux-musleabihf-0.6.8":
|
||||
"ba73e8503d3ded103cc1fd946bd307f5b986e096d673296eb616f2edb6cf23aa",
|
||||
"i686-pc-windows-msvc-0.6.8":
|
||||
"c28ab471753368b79887fd5cbd12b002704fa7fb2e96b0f5a98277e4f1d8572a",
|
||||
"i686-unknown-linux-gnu-0.6.8":
|
||||
"df60b14b5b6bf29c75c06d8d04b0dd358070bf91f19c6f23afaf738fd05fa271",
|
||||
"i686-unknown-linux-musl-0.6.8":
|
||||
"b1e92aabb97fa356e8f0d4b61f698e0f372b6a5582df949ffbcc60565e7a9c7a",
|
||||
"powerpc64-unknown-linux-gnu-0.6.8":
|
||||
"a18998d2f8f426b1ccf1f6c7ec279dd35ccc1cbe76d90b185e453e6b199df245",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.8":
|
||||
"0d7460fe945a7ed48a9236d50f683a5eb937f22eaa605f4e6eb6a5f9cdf3676e",
|
||||
"s390x-unknown-linux-gnu-0.6.8":
|
||||
"127a7d547be5029b29532f937822332fed690e135d0a97ec9574d43904a4622a",
|
||||
"x86_64-apple-darwin-0.6.8":
|
||||
"e069e79f6e0c430d7beaca3025b398980357b8b5c6faa7191032e20d5ee75970",
|
||||
"x86_64-pc-windows-msvc-0.6.8":
|
||||
"d31c3d01ca3e1a75e15ed9514c135239770b6b40a99cae716661e28e433aa495",
|
||||
"x86_64-unknown-linux-gnu-0.6.8":
|
||||
"2378ea0122bd56a11ee7ae2ad6116c1f22f4657c03b9efb78ac150236bf7974c",
|
||||
"x86_64-unknown-linux-musl-0.6.8":
|
||||
"58902317e1872994b5e707c3c77f4cbf3010104d4b07990a5110bbc09f3e9b8a",
|
||||
"aarch64-apple-darwin-0.6.7":
|
||||
"1a4d04477893c215e3def30149208fabe58a70d031388684d0125f553e3cd74f",
|
||||
"aarch64-pc-windows-msvc-0.6.7":
|
||||
"1c6de0c79ad35baadb61f6be7a014f3114a320809868b4ccb09c4d16b7118b48",
|
||||
"aarch64-unknown-linux-gnu-0.6.7":
|
||||
"b64c4ec32d55bd8e8b726b3162be0dfb3c117c3ca4cd798862497d33fe68e7b9",
|
||||
"aarch64-unknown-linux-musl-0.6.7":
|
||||
"df9e1b9530ad63085b66936e65cca107acc98197856e2ac22b896b1ab3936ac4",
|
||||
"arm-unknown-linux-musleabihf-0.6.7":
|
||||
"03a4b36d50fe4f0e50845559a524ed75610762072075c411f7ed84479e6c736d",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.7":
|
||||
"a877f7697375f6b19d3b537c5152cbb3d86430120b20d957cfa7c084e6b79d6c",
|
||||
"armv7-unknown-linux-musleabihf-0.6.7":
|
||||
"e337a7dd6b86c842dac78041acfa9d9402662d5a8cede1d0ae694c9c17057162",
|
||||
"i686-pc-windows-msvc-0.6.7":
|
||||
"33002d9f1dab894f48254f43b4b882f6c88078d70ace883ed29fcde82616bbb0",
|
||||
"i686-unknown-linux-gnu-0.6.7":
|
||||
"b5f04a274f96aa41e8094b1c4355632f6caa9dfb7e62a45908950ca1c5d3fb38",
|
||||
"i686-unknown-linux-musl-0.6.7":
|
||||
"bd56de94a3ffac99a06fc0d37e7cb45e1c35ba275924b5ed502da833dc712d12",
|
||||
"powerpc64-unknown-linux-gnu-0.6.7":
|
||||
"57c668908878e1b12c726efc0439cd609697892a22e1e43c0ebb520ef2995a27",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.7":
|
||||
"abe3004c0fc468e89ddcf8490991c7fc83abc9d9f6e6a29c59473541265e8bd5",
|
||||
"s390x-unknown-linux-gnu-0.6.7":
|
||||
"b6c60b7b907f871880a9be43294b02f84be5ec3187b1a16d7705f5beb622e01a",
|
||||
"x86_64-apple-darwin-0.6.7":
|
||||
"680be39f40bf00a8c3a6776e9ddaa9c3c18ef2efbb0c1a9a854b333660ca8678",
|
||||
"x86_64-pc-windows-msvc-0.6.7":
|
||||
"11b902b07e98331cef0d648c182c6aa1f279cde688c4411eb9153dc957d48f90",
|
||||
"x86_64-unknown-linux-gnu-0.6.7":
|
||||
"601c2b1147117c4471a154b4cebbdb31c818105f796d5f8115fe42d2526689c8",
|
||||
"x86_64-unknown-linux-musl-0.6.7":
|
||||
"a31bd6916eff780a7a44c84c194f4f8b70a8250b9175b3839ce2d4403fd735de",
|
||||
"aarch64-apple-darwin-0.6.6":
|
||||
"d0fb047593122746c7529960f8efd5d7d10d2cb230302f71158e9765ad37727b",
|
||||
"aarch64-pc-windows-msvc-0.6.6":
|
||||
"6bb6d5a28e8a181fd5b0046778b97a75c3ec1c5117a058e1961e0f6df9ee2925",
|
||||
"aarch64-unknown-linux-gnu-0.6.6":
|
||||
"37a543598cdb7d8fc9b74e6b1fe1fdf8b9a279c6137c7ff8396a88f69ec7a43c",
|
||||
"aarch64-unknown-linux-musl-0.6.6":
|
||||
"1f11c12ccfb693a6928c097c6b2ae3caa8e073744661795a6c96c5ffa9358f24",
|
||||
"arm-unknown-linux-musleabihf-0.6.6":
|
||||
"6cbd68ca3cef4a9a2f0f5c53492d47596494c82df8f1017df144c37a39d13294",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.6":
|
||||
"97c71ad1f443182b3594ef671624e23f8f7960cb84badbbbda38598457845f83",
|
||||
"armv7-unknown-linux-musleabihf-0.6.6":
|
||||
"bee1941d59c8703fa143e186db1f335324b1922f38201cd52bfdfe1b29062987",
|
||||
"i686-pc-windows-msvc-0.6.6":
|
||||
"2231f24bfe6b8729427a5ecccf0339c5feacf96309f62da51c5077f4cfe8954e",
|
||||
"i686-unknown-linux-gnu-0.6.6":
|
||||
"16667b429a57ee917b10093e81e52956e4c19f9fd73d05dd87c3cbc27779ac7e",
|
||||
"i686-unknown-linux-musl-0.6.6":
|
||||
"96fab088198ef251facccfdf3850139720249f673c937cf6cc21642f54f19894",
|
||||
"powerpc64-unknown-linux-gnu-0.6.6":
|
||||
"564d1207601cdb3a3684f7d3ac31bf40436ac6912df7de340216b30a2e94ca44",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.6":
|
||||
"c2aa7d2686b1f5943a562488153141f9690acfa59d6fdb01a2272019dc4f94dd",
|
||||
"s390x-unknown-linux-gnu-0.6.6":
|
||||
"fe7a1425620325b6063bf8b5c008846bc0ef7c867e7a155049adf5d9c356db2d",
|
||||
"x86_64-apple-darwin-0.6.6":
|
||||
"c584b85e81df8d8ae8142876b80ae977e41c6bba14c57cc1061b6a87f361ad2e",
|
||||
"x86_64-pc-windows-msvc-0.6.6":
|
||||
"72d7866fac1a9f5e895ec632a0b8a98ea59627cb2c3b8e68af4fec899ee4b43b",
|
||||
"x86_64-unknown-linux-gnu-0.6.6":
|
||||
"4c3426c4919d9f44633ab9884827fa1ad64ad8d993516d636eb955a3835c4a8c",
|
||||
"x86_64-unknown-linux-musl-0.6.6":
|
||||
"bcc30541d54156d434a74d6070a44c333263edc65ea423d3039cb8112ed78c95",
|
||||
"aarch64-apple-darwin-0.6.5":
|
||||
"4952c6275778fbc7e5cf6b5739ffd944c47063134d6ea43a7037b0a028ef771e",
|
||||
"aarch64-pc-windows-msvc-0.6.5":
|
||||
"2af20abb3a289d57ae6a8f34ec9f6a60276947fdfb80de6d7304a1b49242cc64",
|
||||
"aarch64-unknown-linux-gnu-0.6.5":
|
||||
"ebf0707ab949b948ad14250ed93f968fec954e20d12ce6bc9fce74b0ce7e4900",
|
||||
"aarch64-unknown-linux-musl-0.6.5":
|
||||
"8e3eae9802c443f87f7519518c9900a323e95a54e47f89433452287d9d2e9d13",
|
||||
"arm-unknown-linux-musleabihf-0.6.5":
|
||||
"85caa3c874d98ae5cb981d13e127602c2063d69874b8fd18ca0d1083805a04b1",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.5":
|
||||
"184051f8cceccaafee109787f5c8f5788ed6e619ad65edc98779a96b3a8782c2",
|
||||
"armv7-unknown-linux-musleabihf-0.6.5":
|
||||
"86c7f7dcd0197c131ecce8f3c34807470753c145e1570cec5f0836e34481af9d",
|
||||
"i686-pc-windows-msvc-0.6.5":
|
||||
"65dac0af6d2f143736e83fe17f5b52546686fa000fb2f1f89dbb26d1c96183db",
|
||||
"i686-unknown-linux-gnu-0.6.5":
|
||||
"beb346c6a869d6e742de8a797fa7c2a489c6cbc3127387e08a9106a944f56dc2",
|
||||
"i686-unknown-linux-musl-0.6.5":
|
||||
"5a254d1f0dc92e00c3f2a9c97f27a1adb1261f841e08f1ed3e4f03dcf45b7c12",
|
||||
"powerpc64-unknown-linux-gnu-0.6.5":
|
||||
"1f8fd8dde91258380dbcd4b9fc65f15a7dc3af6cfffefb9a4f99d32c4c67436d",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.5":
|
||||
"d2b6e19ca7ecd8d7e0d1ddced965aa91a3c822d07a7f7657743945245c1f627a",
|
||||
"s390x-unknown-linux-gnu-0.6.5":
|
||||
"43a3e39f19fd5d098bb8c896b6c0f99a146253c271d78409cf31c2f55f2763d0",
|
||||
"x86_64-apple-darwin-0.6.5":
|
||||
"d336d862694e1c36afea55eb15f5df02aa77c04a168b781df515d641e23285f0",
|
||||
"x86_64-pc-windows-msvc-0.6.5":
|
||||
"a3e9f0913189c38b804bf6bb3d348af305a8ceabc690be92b6e111245a821640",
|
||||
"x86_64-unknown-linux-gnu-0.6.5":
|
||||
"8fc9895719a1291ecd193cb86f9282ff3649cef797d29eacc74c4f573aab1e2f",
|
||||
"x86_64-unknown-linux-musl-0.6.5":
|
||||
"ed4830b7b6293b9413618970b84dad7bc9245f4a7dfa741f943afdb647c196c4",
|
||||
"aarch64-apple-darwin-0.6.4":
|
||||
"1497302e13b33188d6ea4b255520e72f4b9ca9a2c5e9ad30b7bc919e5a0b1071",
|
||||
"aarch64-pc-windows-msvc-0.6.4":
|
||||
"92d18fec3da41dd759ff5c05074445def51d30a325cee0e94d4539fbaabae795",
|
||||
"aarch64-unknown-linux-gnu-0.6.4":
|
||||
"4c78928aa92170bb1c68245da3a5ce0c051e185b7cb6356c33909f94f033ae84",
|
||||
"aarch64-unknown-linux-musl-0.6.4":
|
||||
"fec5583459f22a26eab91aa32cb922cdb7bd72826b3e23c6c164c3814126f462",
|
||||
"arm-unknown-linux-musleabihf-0.6.4":
|
||||
"e9e1ef68e6b316b47a5ee48a48e5b28898a351fb588f0944666b004fa5baed2c",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.4":
|
||||
"65df00771f9d4928853ecb5a627745edc829af3ee1339171c2f53f2afa935323",
|
||||
"armv7-unknown-linux-musleabihf-0.6.4":
|
||||
"f963d53f99ddcf5281b79545cf905dc66a6b25a4a5dcdefaecefd42a63710b88",
|
||||
"i686-pc-windows-msvc-0.6.4":
|
||||
"ecdb47abb3fc29511a2adc9df0407fe604371c6518cd2861235c8aa178928941",
|
||||
"i686-unknown-linux-gnu-0.6.4":
|
||||
"7e8c9c6d1b1c9f43eb50a634742f03c34d87a94d8155d2602f1f23c2c6cbfc22",
|
||||
"i686-unknown-linux-musl-0.6.4":
|
||||
"f3985d87a510c1fded1c8de25c6e70bcc2039e587f17efc5ab328b20c956b224",
|
||||
"powerpc64-unknown-linux-gnu-0.6.4":
|
||||
"81d3430b221d57070af86cdd868d766316266515fa49aa61c660ff1d61e5fa78",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.4":
|
||||
"c8aba58a91854645ee41deeb9b0223c5218231c4d03b5b9cbe17f2ddd2f62358",
|
||||
"s390x-unknown-linux-gnu-0.6.4":
|
||||
"a73197566e1b706a6ca0427556b6d4732185eb6d621f0730d70c165ee5b1395e",
|
||||
"x86_64-apple-darwin-0.6.4":
|
||||
"af09c768697edd009ac1af66eaea35bbd29f145bd9c2c02b8f93309e23670b4f",
|
||||
"x86_64-pc-windows-msvc-0.6.4":
|
||||
"4526b772f5d9b0afdd61a780ab649730d125e0a56348daa7463ee44c0c5e5762",
|
||||
"x86_64-unknown-linux-gnu-0.6.4":
|
||||
"ed38cde84d822c1878c484e560e28c157a1c025204151efa60aa46831500f4d6",
|
||||
"x86_64-unknown-linux-musl-0.6.4":
|
||||
"1b04edff73d7d7f837b9d6a36a556fe2feb59cc9f747c4fcd01f76c886dd3579",
|
||||
"aarch64-apple-darwin-0.6.3":
|
||||
"51b84818bbfe08358a298ba3389c6d448d3ddc0f2601a2d63c5a62cb7b704062",
|
||||
"aarch64-pc-windows-msvc-0.6.3":
|
||||
"ec3561ca86328aa351919de2d5208f6761a58d42a2e0e50e1d1d80d10039756a",
|
||||
"aarch64-unknown-linux-gnu-0.6.3":
|
||||
"447726788204106ffd8ecc59396fccc75fae7aca998555265b5ea6950b00160c",
|
||||
"aarch64-unknown-linux-musl-0.6.3":
|
||||
"2bb44c9fb8a13e244d502a577d6c32669b680941c996c35524817971e6e56460",
|
||||
"arm-unknown-linux-musleabihf-0.6.3":
|
||||
"d1e508cdbb4b479c496d6a50febe4b0f0159ef1d0693d09d274c119471545aea",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.3":
|
||||
"d067b079991909b3f76279c048c57470aaa2d0fcf1ce3307b7f15fec88b7a99d",
|
||||
"armv7-unknown-linux-musleabihf-0.6.3":
|
||||
"82c7b7aca1855f285db509ae3c957f9b1ca5e3eaa77ecbd80da8349fe0a6491e",
|
||||
"i686-pc-windows-msvc-0.6.3":
|
||||
"83173da302701020c44cefdab5d127e5cde9e4333ca7e7cbefc03e39908b7a39",
|
||||
"i686-unknown-linux-gnu-0.6.3":
|
||||
"7c044bd2db0690cce49b0613abf01daaeb6fb829737ef9ec7978191f218e1542",
|
||||
"i686-unknown-linux-musl-0.6.3":
|
||||
"a3401dd97c1ee55c1def00c5b98419087da2fd0ce81a74df1cf268a95b338998",
|
||||
"powerpc64-unknown-linux-gnu-0.6.3":
|
||||
"6023103b5d761da0e06c70a95197476796ba68ed3f6849529c89d603609a82d5",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.3":
|
||||
"e41eec560bd166f5bd155772ef120ec7220a80dcb4b70e71d8f4781276c5d102",
|
||||
"s390x-unknown-linux-gnu-0.6.3":
|
||||
"2c3c03d95c20adb2e521efaeddf6f9947c427c5e8140e38585595f3c947cebed",
|
||||
"x86_64-apple-darwin-0.6.3":
|
||||
"a675d2d0fcf533f89f4b584bfa8ee3173a1ffbc87d9d1d48fcc3abb8c55d946d",
|
||||
"x86_64-pc-windows-msvc-0.6.3":
|
||||
"40b50b3da3cf74dc5717802acd076b4669b6d7d2c91c4482875b4e5e46c62ba3",
|
||||
"x86_64-unknown-linux-gnu-0.6.3":
|
||||
"b7a37a33d62cb7672716c695226450231e8c02a8eb2b468fa61cd28a8f86eab2",
|
||||
"x86_64-unknown-linux-musl-0.6.3":
|
||||
"7c77a5bc7c5fc56becf266c2ea8dae1e0fd4f9fe2c510110d097ad9066cacfb1",
|
||||
"aarch64-apple-darwin-0.6.2":
|
||||
"4af802a1216053650dd82eee85ea4241994f432937d41c8b0bc90f2639e6ae14",
|
||||
"aarch64-pc-windows-msvc-0.6.2":
|
||||
"02299bd78e4fbd2850532710c52a92368601f77654e3c6c342c651d75e6ca1f6",
|
||||
"aarch64-unknown-linux-gnu-0.6.2":
|
||||
"ca4c08724764a2b6c8f2173c4e3ca9dcde0d9d328e73b4d725cfb6b17a925eed",
|
||||
"aarch64-unknown-linux-musl-0.6.2":
|
||||
"9a90ef4761d75ee1a5158cc2fbd787c78dcfb1c12532a00a3c13b915db720c2e",
|
||||
"arm-unknown-linux-musleabihf-0.6.2":
|
||||
"f3643b8b67d6f711876a5682d4607b4a31e6e2935b4ccb35d7a98ec067b944d9",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.2":
|
||||
"79a0df9c7e1df089722ff5338c7766e2437a2d3e40b4e232c72be4a4e9e3a7b9",
|
||||
"armv7-unknown-linux-musleabihf-0.6.2":
|
||||
"6aff9c4d54a1466be66234a754181f6e48501ac206d02dd5cf5e81df4c9efbfd",
|
||||
"i686-pc-windows-msvc-0.6.2":
|
||||
"29e46887292d4d645cb941731bfbc688fc1689255f9898b25e6b1c96bf1b954c",
|
||||
"i686-unknown-linux-gnu-0.6.2":
|
||||
"66301b549ea0e8e6960dc6d1eb7b9dcf5fc8d8913f2bb480434918af25f1c6c4",
|
||||
"i686-unknown-linux-musl-0.6.2":
|
||||
"b85ec115f14ca15418db3540c597e13a970546df49a85c1905c16286b86eb471",
|
||||
"powerpc64-unknown-linux-gnu-0.6.2":
|
||||
"de17553549280fd877452dd1f7f9d0a604e3544bfad007b8ec0b9943f103796f",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.2":
|
||||
"f341fd4874d2d007135626a0657d1478f331a78991d8a1a06aaa0d52fbe16183",
|
||||
"s390x-unknown-linux-gnu-0.6.2":
|
||||
"17fd89bd8de75da9c91baf918b8079c1f1f92bb6a398f0cfbc5ddefe0c7f0ee5",
|
||||
"x86_64-apple-darwin-0.6.2":
|
||||
"2b9e78b2562aea93f13e42df1177cb07c59a4d4f1c8ff8907d0c31f3a5e5e8db",
|
||||
"x86_64-pc-windows-msvc-0.6.2":
|
||||
"5f33c3cc5c183775cc51b3e661a0d2ce31142d32a50406a67c7ad0321fc841d9",
|
||||
"x86_64-unknown-linux-gnu-0.6.2":
|
||||
"37ea31f099678a3bee56f8a757d73551aad43f8025d377a8dde80dd946c1b7f2",
|
||||
"x86_64-unknown-linux-musl-0.6.2":
|
||||
"fcd01693df76379be5bc325efa43c644cf0704a2e720ccd6695f41ded09934d7",
|
||||
"aarch64-apple-darwin-0.6.1":
|
||||
"90e10cc7f26cbaf3eaa867cf99344ffd550e942fd4b660e88f2f91c23022dc5a",
|
||||
"aarch64-pc-windows-msvc-0.6.1":
|
||||
"a9bce4582ec8dcc93e19e94b4d7ab653b378a68da1a7e72f5ea82ddd2d42fb44",
|
||||
"aarch64-unknown-linux-gnu-0.6.1":
|
||||
"f355989fb5ecf47c9f9087a0b21e2ee7d7c802bc3d0cf6edae07560d4297751f",
|
||||
"aarch64-unknown-linux-musl-0.6.1":
|
||||
"6455886f9aef3392df0af630dee9df892787fdffda0f0800245f86a735bd810d",
|
||||
"arm-unknown-linux-musleabihf-0.6.1":
|
||||
"4bbd397391134dbfedebb938d40845573eafe6dfd1e8e1882e89c21de702104e",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.1":
|
||||
"811e19387997ac14f1b775c3e975a7d560c93f866eb5fd2955132f9718445a0a",
|
||||
"armv7-unknown-linux-musleabihf-0.6.1":
|
||||
"a2022883913d55c0913001869f64208b8b3244ec6286c9e097ad9563b9f747b9",
|
||||
"i686-pc-windows-msvc-0.6.1":
|
||||
"920e08d6d649a414981c2c1814746fcb0a10f25e2c65e359abf534212e1f0c8c",
|
||||
"i686-unknown-linux-gnu-0.6.1":
|
||||
"943a9a4637151d9f950de65725b28f0dfe3f73e7ad5b2b9ab35392cbc44b3cec",
|
||||
"i686-unknown-linux-musl-0.6.1":
|
||||
"63d269c67e7da4f645cd6be593b55e2f0e84a9bb7cf2d45faca791c27c5f9f66",
|
||||
"powerpc64-unknown-linux-gnu-0.6.1":
|
||||
"8775b00b1c44a7400e8a8d5238efc5ecc636f62ed8e865bd612486c67c6272b3",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.1":
|
||||
"becf4913112c475b2713df01a8c0536b38dc2c48f04b1d603cd6f0a74f88caa2",
|
||||
"s390x-unknown-linux-gnu-0.6.1":
|
||||
"ee687d56ba1e359a7a2e20e301b992b83882df5ffb1409d301e1b0d21b3fa16a",
|
||||
"x86_64-apple-darwin-0.6.1":
|
||||
"d8609b53f280d5e784a7586bf7a3fd90c557656af109cee8572b24a0c1443191",
|
||||
"x86_64-pc-windows-msvc-0.6.1":
|
||||
"32de1730597db0a7c5f34e2257ab491b660374b22c016c3d9a59ae279d837697",
|
||||
"x86_64-unknown-linux-gnu-0.6.1":
|
||||
"0dcad9831d3f10f3bc4dcd7678948dfc74c0b3ab3f07aa684eb9e5135b971a58",
|
||||
"x86_64-unknown-linux-musl-0.6.1":
|
||||
"143dba84867f72107048e1f95be8f894d59f456e018a34276d9d2d6bacdf8f99",
|
||||
"aarch64-apple-darwin-0.6.0":
|
||||
"ff4f1ec24a3adb3dd251f9523e4b7a7cba379e9896ae6ed1efa163fcdcd6af8a",
|
||||
"aarch64-pc-windows-msvc-0.6.0":
|
||||
"c29a1bfcc3070a3a4834b9aa8e290f25e82e7b2a1d25cdbae3418fb8b72c2b0b",
|
||||
"aarch64-unknown-linux-gnu-0.6.0":
|
||||
"47fa7ada7352f69a5efd19628b86b83c0bbda34541de3a4254ba75a188414953",
|
||||
"aarch64-unknown-linux-musl-0.6.0":
|
||||
"92b105bb9253a6123a0f8a8412aec9d05b162bf529cbe60fcad75a71a9a43d3f",
|
||||
"arm-unknown-linux-musleabihf-0.6.0":
|
||||
"a36895e6bde3bb0a74f2d61230332bd8f2cb60984e86bbbc69e9b2e742e1b971",
|
||||
"armv7-unknown-linux-gnueabihf-0.6.0":
|
||||
"01cbd440e41eb9fff4e372a534706156fefefe34ac44d6eb9b8abc7d5739b0fd",
|
||||
"armv7-unknown-linux-musleabihf-0.6.0":
|
||||
"62424a2b18a7b4a7cd62912d7cd952a74f755e6b46e46c9bae6029f4b3f2f2cf",
|
||||
"i686-pc-windows-msvc-0.6.0":
|
||||
"40422491d697c2da3f30c2b00b5fbfbe5075e33dd64956137959a6536b851213",
|
||||
"i686-unknown-linux-gnu-0.6.0":
|
||||
"22ee5cacb0139b065e219e43db84f4f21ea2a316f7341b245786d2f3e748488d",
|
||||
"i686-unknown-linux-musl-0.6.0":
|
||||
"1ab5f3ea0e809c5390dbda97558d4176efcbe7e3eb5166eb2c61a41991d7c4f9",
|
||||
"powerpc64-unknown-linux-gnu-0.6.0":
|
||||
"b99ba184663eecbd1197d60c3120b5451879009b69e900eed83b8dd5f9b568ec",
|
||||
"powerpc64le-unknown-linux-gnu-0.6.0":
|
||||
"d782751a6ec8a0775aa57087275225b6562a115004c1f41935bec1609765508d",
|
||||
"s390x-unknown-linux-gnu-0.6.0":
|
||||
"664f4165767a0cd808d1784d1d70243da4789024ec5cd779a861201b54a479b7",
|
||||
"x86_64-apple-darwin-0.6.0":
|
||||
"530ef3b6f563448e8e017a8cd6693d6c72c146fb0a3c43440bb0e93fcf36264f",
|
||||
"x86_64-pc-windows-msvc-0.6.0":
|
||||
"65836dae55d3a63e5fc1d51ae52e6ea175aaab1c82c4a6660d46462b27d19c2a",
|
||||
"x86_64-unknown-linux-gnu-0.6.0":
|
||||
"1a26ce241f7ff1f52634d869f86db533fffba21e528597029ee9d1423bf3df18",
|
||||
"x86_64-unknown-linux-musl-0.6.0":
|
||||
"ac2331cda152aa71fed700c7b1ceec4a0662185e65f544b3c3a607be53f856f0",
|
||||
"aarch64-apple-darwin-0.5.31":
|
||||
"396c9bd6acd98466fdb585da2ed040eecea15228e580d4bd649c09215b490bf9",
|
||||
"aarch64-pc-windows-msvc-0.5.31":
|
||||
"e1c862e67f03f11ff5d359d4b1afa9f624bd52489d09ffb6efcc1c5c743674bc",
|
||||
"aarch64-unknown-linux-gnu-0.5.31":
|
||||
"e7f358efb0718bd8f98dc0c29fd0902323b590381ca765537063a2ca23ed34c7",
|
||||
"aarch64-unknown-linux-musl-0.5.31":
|
||||
"7a49b56be133a756b8ef589beef33f70176a7ce796e118de2911bdae0ffb9a56",
|
||||
"arm-unknown-linux-musleabihf-0.5.31":
|
||||
"2ad1f334295c3ce92c5fd7c3fa9121ffd4569b6db1846c1ecbb6a2007041d09f",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.31":
|
||||
"78270187aebe5f37fdff184f65e8aa537fd9a06cb5d5119f59c6dd7badcf95ef",
|
||||
"armv7-unknown-linux-musleabihf-0.5.31":
|
||||
"329dba251b81dcc840f261148d6466442b23bad54d75f1a21d5005c9c4d04aa0",
|
||||
"i686-pc-windows-msvc-0.5.31":
|
||||
"3860cbf6115f7af85cdf9e83ba1a9ee2bc6cf4da750825014a999738ba6950dd",
|
||||
"i686-unknown-linux-gnu-0.5.31":
|
||||
"4347e44f076448a8b37140a762845d65831819c21f1b6b1da4706640b82d3e4a",
|
||||
"i686-unknown-linux-musl-0.5.31":
|
||||
"54365460d1dbed67a6106ece17ec50900f1209ec1543172364696e7694c7b64c",
|
||||
"powerpc64-unknown-linux-gnu-0.5.31":
|
||||
"1263a21ef5f72d48d03b7051b69102d7addcb647af2e5182b5e6c5313d8ffd48",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.31":
|
||||
"e292dc0a7b23fab01bbf2b6fdddf8bb0c531805b1dbc3905637af70a88ff1f5f",
|
||||
"s390x-unknown-linux-gnu-0.5.31":
|
||||
"66232646bd15a38cf6877c6af6bf8668fadb2af910d7cf7a1159885487a15e70",
|
||||
"x86_64-apple-darwin-0.5.31":
|
||||
"5316b82da14fab9a76b3521c901e7c0a7d641fb9d28eb07874e26a00b0ac2725",
|
||||
"x86_64-pc-windows-msvc-0.5.31":
|
||||
"1ad54dace424c259b603ecd36262cb235af2bc8d6f280e24063d57919545f593",
|
||||
"x86_64-unknown-linux-gnu-0.5.31":
|
||||
"017ce7ed02c967f1b0489f09162e19ee3df4586a44e681211d16206e007fce62",
|
||||
"x86_64-unknown-linux-musl-0.5.31":
|
||||
"b0642eedb1704371f0cf533e2103ebcaebed59e043c71a70c8fa4a971d2032ab",
|
||||
"aarch64-apple-darwin-0.5.30":
|
||||
"654c3e010c9c53b024fa752d08b949e0f80f10ec4e3a1acea9437a1d127a1053",
|
||||
"aarch64-pc-windows-msvc-0.5.30":
|
||||
"aa5331546935864fe0c627fc22f4ffc60cd2d24ec17900780e95e11436d544a8",
|
||||
"aarch64-unknown-linux-gnu-0.5.30":
|
||||
"d1ea4a2299768b2c8263db0abd8ea0de3b8052a34a51f5cf73094051456d4de2",
|
||||
"aarch64-unknown-linux-musl-0.5.30":
|
||||
"e9b51e591a852a5bc432df3411acaf2c03efd5c8a1ea4280e356881a0c689d31",
|
||||
"arm-unknown-linux-musleabihf-0.5.30":
|
||||
"d143460c27df2b8bcafe8a548eb90fb8000a97921754f13a45cb675d04d366f8",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.30":
|
||||
"3d1953151a534e0cbe3c2094e5165a419e75f1ae32444748c5cd69bcfb9906c0",
|
||||
"armv7-unknown-linux-musleabihf-0.5.30":
|
||||
"4ef3aee22dc8feb9665df4339d4689c1262a26d36d34c7c543e0caa31eb8f45b",
|
||||
"i686-pc-windows-msvc-0.5.30":
|
||||
"3389683ab13451b628cfd95ca5bf56fd7137300af5903180d60eed35c4cbfb82",
|
||||
"i686-unknown-linux-gnu-0.5.30":
|
||||
"3ebb74ae2326030c93972f4c1b5e77a17b29bd191349b6244e41e70bb98d8507",
|
||||
"i686-unknown-linux-musl-0.5.30":
|
||||
"bc590e89243cf7688709ba39822d0acaee394dc0b4781eef044af411e6ac26af",
|
||||
"powerpc64-unknown-linux-gnu-0.5.30":
|
||||
"e289eae011dec0fa5d00133c17efde5e427237e876bfb0e1e27146e45959fc26",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.30":
|
||||
"b10ba261377f89e598322f3329beeada6b868119581e2a7294e7585351d3733f",
|
||||
"s390x-unknown-linux-gnu-0.5.30":
|
||||
"7341e6d62b0e02fbd33fe6ce0158e9f68617f43e5ec42fc6904d246bda5f6d34",
|
||||
"x86_64-apple-darwin-0.5.30":
|
||||
"42c4a5d3611928613342958652ab16943d05980b1ab5057bb47e4283ef7e890d",
|
||||
"x86_64-pc-windows-msvc-0.5.30":
|
||||
"43d6b97d2e283f6509a9199fd32411d67a64d5b5dca3e6e63e45ec2faec68f73",
|
||||
"x86_64-unknown-linux-gnu-0.5.30":
|
||||
"9d82816c14c44054f0c679f2bcaecfd910c75f207e08874085cb27b482f17776",
|
||||
"x86_64-unknown-linux-musl-0.5.30":
|
||||
"7cc79871e5fcd2678474d756bfc32c6c3d28e136963dda10902c516fab67fa2d",
|
||||
"aarch64-apple-darwin-0.5.29":
|
||||
"c89e96bde40402cc4db2f59bcb886882ab69e557235279283a2db9dea61135c3",
|
||||
"aarch64-pc-windows-msvc-0.5.29":
|
||||
"172509e9824b925082612f19ab0e030e08108033d7e5c10e67ede69b3bf290d8",
|
||||
"aarch64-unknown-linux-gnu-0.5.29":
|
||||
"d1f716e8362d7da654a154b8331054a987c1fc16562bd719190a42458e945785",
|
||||
"aarch64-unknown-linux-musl-0.5.29":
|
||||
"3f2d03e62b951a3e46e9c1cfae3091235c05ff274c7163162b8726fb56133219",
|
||||
"arm-unknown-linux-musleabihf-0.5.29":
|
||||
"5ee7d5e95f93434845c1e14740c5e957f8747b751af054996f45a9095426a496",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.29":
|
||||
"98b88f2bc2905241ff460529a9d24cdaa70e8b31c573ba07240eb4a163e7fa3d",
|
||||
"armv7-unknown-linux-musleabihf-0.5.29":
|
||||
"95f148fb44c71f817d0f9c7e14591f1364c7da62a3cb9d353a0e45b4332031d3",
|
||||
"i686-pc-windows-msvc-0.5.29":
|
||||
"e35c4bba6af151e3a952629c7054b0f6d901c83aa7a3a21aedc3880424790294",
|
||||
"i686-unknown-linux-gnu-0.5.29":
|
||||
"9e81a4f621500d161ae810a7f68a25a8bfc141d172267a36c19cf491c5bf8fa7",
|
||||
"i686-unknown-linux-musl-0.5.29":
|
||||
"07b4f43a4c561120cd5951c5aa49ad0aa2a1c1ebce870f533f06fa0e0a8ece4f",
|
||||
"powerpc64-unknown-linux-gnu-0.5.29":
|
||||
"0eae3ece0811815cbed9619995486a2d4ba4df47abe3f7fcc27153eff9c5a655",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.29":
|
||||
"0e38436e4068eec23498f88a5c1b721411986e6a983f243680a60b716b7c301c",
|
||||
"s390x-unknown-linux-gnu-0.5.29":
|
||||
"6a42886dd10c6437a1a56982cd0c116d063f05483aa7db1cc0343f705ef96f91",
|
||||
"x86_64-apple-darwin-0.5.29":
|
||||
"2f13ef5a82b91ba137fd6441f478c406a0a8b0df41e9573d1e61551a1de5a3a2",
|
||||
"x86_64-pc-windows-msvc-0.5.29":
|
||||
"2453b17df889822a5b8dcd3467dd6b75a410d61f5e6504362e3852fb3175c19c",
|
||||
"x86_64-unknown-linux-gnu-0.5.29":
|
||||
"46d3fcf04d64be42bded914d648657cd62d968172604e3aaf8386142c09d2317",
|
||||
"x86_64-unknown-linux-musl-0.5.29":
|
||||
"bb06a385a918b7b8d927ef08e283843b66005dfccf0a940bfd0882f22cbc1a7f",
|
||||
"aarch64-apple-darwin-0.5.28":
|
||||
"57cbf655a5bc5c1ffa7315c0b25ff342f44a919fa099311c0d994914011b421e",
|
||||
"aarch64-pc-windows-msvc-0.5.28":
|
||||
"76bb4fe97c78f5de294614cb36294a3204e57117d8ce2f826bf1b8fd28d770ef",
|
||||
"aarch64-unknown-linux-gnu-0.5.28":
|
||||
"fe3c481940c5542d034a863239f23d64ee45abcd636c480c1ea0f34469a66c86",
|
||||
"aarch64-unknown-linux-musl-0.5.28":
|
||||
"d2f622ffbb129c9368a147672e79f9b7c8e33c4ac0bbba6510c7e92d699d7fb3",
|
||||
"arm-unknown-linux-musleabihf-0.5.28":
|
||||
"0bf8b33107e58d15065bce5fd29d24de7b4401ddcaf6791840568876f1247f46",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.28":
|
||||
"6a3ceb156b6ced721792ffa1d9d4fd35a28167960cd5b1847bfd39fd1d2d59bf",
|
||||
"armv7-unknown-linux-musleabihf-0.5.28":
|
||||
"29dec32b29a5f4736f0062ff47aade2c922e08922241783e7af4aba0639658cc",
|
||||
"i686-pc-windows-msvc-0.5.28":
|
||||
"7ff2b7bde705cdca7f6fe6aec9e7047b47e09bf97be9c5ff597ff6e19a369544",
|
||||
"i686-unknown-linux-gnu-0.5.28":
|
||||
"27ff0f4d1ce96b5abe5113e3033e48a16d588c2e855439f0d8fbc59b75c041de",
|
||||
"i686-unknown-linux-musl-0.5.28":
|
||||
"0f72a1c8321d05dbfc3382d28e7bb9f83079198fd5b16c25560b0f66b6a6a8c7",
|
||||
"powerpc64-unknown-linux-gnu-0.5.28":
|
||||
"caf37897a6a3734a706f2d5ffb2c7953f37e903b6a34d02300fbf96f77a44b82",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.28":
|
||||
"74bc6aacea26c67305910bcbe4b6178b96fefe643b2002567cc094ad2c209ef1",
|
||||
"s390x-unknown-linux-gnu-0.5.28":
|
||||
"b3f49b0268ab971ff7f39ca924fb8291ce3d8ffe8f6c0d7ff16bc12055cd1e85",
|
||||
"x86_64-apple-darwin-0.5.28":
|
||||
"36484907ec1988f1553bdc7de659d8bc0b46b8eaca09b0f67359b116caac170d",
|
||||
"x86_64-pc-windows-msvc-0.5.28":
|
||||
"31053741c49624726d5ce8cb1ab8f5fc267ed0333ab8257450bd71a7c2a68d05",
|
||||
"x86_64-unknown-linux-gnu-0.5.28":
|
||||
"1f2a654627e02fed5f8b883592439b842e74d98091bbafe9e71c7101f4f97d74",
|
||||
"x86_64-unknown-linux-musl-0.5.28":
|
||||
"9ca7e51c8ea414aa1a275d12956676da1064e0a1cbf8d5b39b15c45d923a09c3",
|
||||
"aarch64-apple-darwin-0.5.27":
|
||||
"efe367393fc02b8e8609c38bce78d743261d7fc885e5eabfbd08ce881816aea3",
|
||||
"aarch64-pc-windows-msvc-0.5.27":
|
||||
"5b652867d6dc42946953d786aa1e466e9fbcd877a48d4c18f56c26801abb486b",
|
||||
"aarch64-unknown-linux-gnu-0.5.27":
|
||||
"7b8175e7370056efa6e8f4c8fec854f3a026c0ecda628694f5200fdf666167fa",
|
||||
"aarch64-unknown-linux-musl-0.5.27":
|
||||
"5df998660ed17555679c7a6b43b25f1c4d76d76b6062d31491663960804060d5",
|
||||
"arm-unknown-linux-musleabihf-0.5.27":
|
||||
"d80200d7c0c3ef32b2e938872726de29128a3b9bc080038fb3fc6f2eedbf1f34",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.27":
|
||||
"3fa94262b12268c7b9b91ed0ea739752e0c63ef2105396122faa93cd5bbdae8c",
|
||||
"armv7-unknown-linux-musleabihf-0.5.27":
|
||||
"86e688ced31f6322d6b4dc544453ba02021685e553995c2c72eb41f82fd2662b",
|
||||
"i686-pc-windows-msvc-0.5.27":
|
||||
"0158534490ba4b4cf64716116d73220f019688a22a1eba78535d9d95e918ec71",
|
||||
"i686-unknown-linux-gnu-0.5.27":
|
||||
"66b6128cd9b745a312bc81d6d3fedf02850acdf96dfca53ab5a3d11ddb1fe083",
|
||||
"i686-unknown-linux-musl-0.5.27":
|
||||
"8e95b813f804e8670aed79608778582b3f64dcf468ec185e49f5188505c3edf6",
|
||||
"powerpc64-unknown-linux-gnu-0.5.27":
|
||||
"1a129dbc27566be04ce68f5bc10a626954abe7651b35ce73d8a24b2e7a89ffe1",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.27":
|
||||
"b63051bdd5392fa6a3d8d98c661b395c62a2a05a0e96ae877047c4c7be1b92ff",
|
||||
"s390x-unknown-linux-gnu-0.5.27":
|
||||
"07377ed611dbf1548f06b65ad6d2bb84f3ff1ccce936ba972d7b7f5492e47d30",
|
||||
"x86_64-apple-darwin-0.5.27":
|
||||
"a75c9d77c90c4ac367690134cd471108c09b95226c62cd6422ca0db8bbea2197",
|
||||
"x86_64-pc-windows-msvc-0.5.27":
|
||||
"195d43f6578c33838523bf4f3c80d690914496592b2946bda8598b8500e744f6",
|
||||
"x86_64-unknown-linux-gnu-0.5.27":
|
||||
"27261ddf7654d4f34ed4600348415e0c30de2a307cc6eff6a671a849263b2dcf",
|
||||
"x86_64-unknown-linux-musl-0.5.27":
|
||||
"94cb0a392e5cfb82068476462e6c06e19745ea9e74fc828187f6809d97b529b4",
|
||||
"aarch64-apple-darwin-0.5.26":
|
||||
"3b503c630dc65b991502e1d9fe0ffc410ae50c503e8df6d4900f23b9ad436366",
|
||||
"aarch64-pc-windows-msvc-0.5.26":
|
||||
"3319e6f4506fdb2e3d8791bae05995f0aeda947ee87e373c17a699fb39165e3d",
|
||||
"aarch64-unknown-linux-gnu-0.5.26":
|
||||
"6ce061c2f14bf2f0b12c2b7a0f80c65408bf2dcee9743c4fc4ec1f30b85ecb98",
|
||||
"aarch64-unknown-linux-musl-0.5.26":
|
||||
"42ce9a728ecd054268ba5a621002385e79ea10ba4546a8a6a695f430902029f5",
|
||||
"arm-unknown-linux-musleabihf-0.5.26":
|
||||
"87b8a2af3b9784a6b7ab5ddb2fff0c505bbccaae0a457f6b228257ed23adfed0",
|
||||
"armv7-unknown-linux-gnueabihf-0.5.26":
|
||||
"c311f89e6d23a9bd7d2f62e225d6b54a8fc85889f3519219f3308ea7eb687871",
|
||||
"armv7-unknown-linux-musleabihf-0.5.26":
|
||||
"0e4d68538847637c376f51d962796e9336c9ccbcccdfad547e3458cd7cf1a70e",
|
||||
"i686-pc-windows-msvc-0.5.26":
|
||||
"ecf2858d13ba0cbe1b82cc10e9b0538309ee53a7c18f71e8afcc56b1e5e909e0",
|
||||
"i686-unknown-linux-gnu-0.5.26":
|
||||
"833199e00a8187468c49dd315e041dbaf30e6e6340e65dd3df0c5aec8605c3d8",
|
||||
"i686-unknown-linux-musl-0.5.26":
|
||||
"72d4ed889ceac3cf5f7233a7e38eb2dd70a95e36dab0ce9ebed1f6a9a68f19be",
|
||||
"powerpc64-unknown-linux-gnu-0.5.26":
|
||||
"7838adddce0d17aa933cbe843ca673e44eb89de508175cc707473540de6388cd",
|
||||
"powerpc64le-unknown-linux-gnu-0.5.26":
|
||||
"fe1d770840110b59554228b12382881abefc1ab2d2ca009adc1502179422bc0d",
|
||||
"s390x-unknown-linux-gnu-0.5.26":
|
||||
"086c8d03ee4aff702a32d58086accf971ce58a2f000323414935e0f50e816c04",
|
||||
"x86_64-apple-darwin-0.5.26":
|
||||
"7cf20dd534545a74290a244d3e8244d1010ba38d2d5950f504b6c93fab169f57",
|
||||
"x86_64-pc-windows-msvc-0.5.26":
|
||||
"a938eebb7433eb7097ae1cf3d53f9bb083edd4c746045f284a1c8904af1a1a11",
|
||||
"x86_64-unknown-linux-gnu-0.5.26":
|
||||
"555f17717e7663109104b62976e9da6cfda1ad84213407b437fd9c8f573cc0ef",
|
||||
"x86_64-unknown-linux-musl-0.5.26":
|
||||
"6858d7951b9ae20c3955b2b0addbf2f184ab68175d1c659d11e0a14f1472fb81",
|
||||
"aarch64-apple-darwin-0.5.25":
|
||||
"3c29e941d691614bc4eba95629c8f8dee106e5d44d70a03efed66a544588caa1",
|
||||
"aarch64-pc-windows-msvc-0.5.25":
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
import { promises as fs } from "node:fs";
|
||||
import * as path from "node:path";
|
||||
import * as core from "@actions/core";
|
||||
import * as tc from "@actions/tool-cache";
|
||||
import * as path from "node:path";
|
||||
import { promises as fs } from "node:fs";
|
||||
import * as pep440 from "@renovatebot/pep440";
|
||||
import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants";
|
||||
import { Octokit } from "../utils/octokit";
|
||||
import type { Architecture, Platform } from "../utils/platforms";
|
||||
import { validateChecksum } from "./checksum/checksum";
|
||||
import { Octokit } from "@octokit/core";
|
||||
import { paginateRest } from "@octokit/plugin-paginate-rest";
|
||||
import { restEndpointMethods } from "@octokit/plugin-rest-endpoint-methods";
|
||||
|
||||
const PaginatingOctokit = Octokit.plugin(paginateRest, restEndpointMethods);
|
||||
import {
|
||||
getDownloadUrl,
|
||||
getLatestKnownVersion as getLatestVersionInManifest,
|
||||
} from "./version-manifest";
|
||||
|
||||
export function tryGetFromToolCache(
|
||||
arch: Architecture,
|
||||
@@ -23,39 +24,88 @@ export function tryGetFromToolCache(
|
||||
resolvedVersion = version;
|
||||
}
|
||||
const installedPath = tc.find(TOOL_CACHE_NAME, resolvedVersion, arch);
|
||||
return { version: resolvedVersion, installedPath };
|
||||
return { installedPath, version: resolvedVersion };
|
||||
}
|
||||
|
||||
export async function downloadVersion(
|
||||
export async function downloadVersionFromGithub(
|
||||
serverUrl: string,
|
||||
platform: Platform,
|
||||
arch: Architecture,
|
||||
version: string,
|
||||
checkSum: string | undefined,
|
||||
githubToken: string,
|
||||
): Promise<{ version: string; cachedToolDir: string }> {
|
||||
const resolvedVersion = await resolveVersion(version, githubToken);
|
||||
const artifact = `uv-${arch}-${platform}`;
|
||||
let extension = ".tar.gz";
|
||||
if (platform === "pc-windows-msvc") {
|
||||
extension = ".zip";
|
||||
}
|
||||
const downloadUrl = `https://github.com/${OWNER}/${REPO}/releases/download/${resolvedVersion}/${artifact}${extension}`;
|
||||
core.info(`Downloading uv from "${downloadUrl}" ...`);
|
||||
const extension = getExtension(platform);
|
||||
const downloadUrl = `${serverUrl}/${OWNER}/${REPO}/releases/download/${version}/${artifact}${extension}`;
|
||||
return await downloadVersion(
|
||||
downloadUrl,
|
||||
artifact,
|
||||
platform,
|
||||
arch,
|
||||
version,
|
||||
checkSum,
|
||||
githubToken,
|
||||
);
|
||||
}
|
||||
|
||||
export async function downloadVersionFromManifest(
|
||||
manifestUrl: string | undefined,
|
||||
platform: Platform,
|
||||
arch: Architecture,
|
||||
version: string,
|
||||
checkSum: string | undefined,
|
||||
githubToken: string,
|
||||
): Promise<{ version: string; cachedToolDir: string }> {
|
||||
const downloadUrl = await getDownloadUrl(
|
||||
manifestUrl,
|
||||
version,
|
||||
arch,
|
||||
platform,
|
||||
);
|
||||
if (!downloadUrl) {
|
||||
core.info(
|
||||
`manifest-file does not contain version ${version}, arch ${arch}, platform ${platform}. Falling back to GitHub releases.`,
|
||||
);
|
||||
return await downloadVersionFromGithub(
|
||||
"https://github.com",
|
||||
platform,
|
||||
arch,
|
||||
version,
|
||||
checkSum,
|
||||
githubToken,
|
||||
);
|
||||
}
|
||||
return await downloadVersion(
|
||||
downloadUrl,
|
||||
`uv-${arch}-${platform}`,
|
||||
platform,
|
||||
arch,
|
||||
version,
|
||||
checkSum,
|
||||
githubToken,
|
||||
);
|
||||
}
|
||||
|
||||
async function downloadVersion(
|
||||
downloadUrl: string,
|
||||
artifactName: string,
|
||||
platform: Platform,
|
||||
arch: Architecture,
|
||||
version: string,
|
||||
checkSum: string | undefined,
|
||||
githubToken: string,
|
||||
): Promise<{ version: string; cachedToolDir: string }> {
|
||||
core.info(`Downloading uv from "${downloadUrl}" ...`);
|
||||
const downloadPath = await tc.downloadTool(
|
||||
downloadUrl,
|
||||
undefined,
|
||||
githubToken,
|
||||
);
|
||||
await validateChecksum(
|
||||
checkSum,
|
||||
downloadPath,
|
||||
arch,
|
||||
platform,
|
||||
resolvedVersion,
|
||||
);
|
||||
await validateChecksum(checkSum, downloadPath, arch, platform, version);
|
||||
|
||||
let uvDir: string;
|
||||
const extension = getExtension(platform);
|
||||
if (platform === "pc-windows-msvc") {
|
||||
const fullPathWithExtension = `${downloadPath}${extension}`;
|
||||
await fs.copyFile(downloadPath, fullPathWithExtension);
|
||||
@@ -63,40 +113,56 @@ export async function downloadVersion(
|
||||
// On windows extracting the zip does not create an intermediate directory
|
||||
} else {
|
||||
const extractedDir = await tc.extractTar(downloadPath);
|
||||
uvDir = path.join(extractedDir, artifact);
|
||||
uvDir = path.join(extractedDir, artifactName);
|
||||
}
|
||||
const cachedToolDir = await tc.cacheDir(
|
||||
uvDir,
|
||||
TOOL_CACHE_NAME,
|
||||
resolvedVersion,
|
||||
version,
|
||||
arch,
|
||||
);
|
||||
return { version: resolvedVersion, cachedToolDir };
|
||||
return { cachedToolDir, version: version };
|
||||
}
|
||||
|
||||
function getExtension(platform: Platform): string {
|
||||
return platform === "pc-windows-msvc" ? ".zip" : ".tar.gz";
|
||||
}
|
||||
|
||||
export async function resolveVersion(
|
||||
versionInput: string,
|
||||
manifestFile: string | undefined,
|
||||
githubToken: string,
|
||||
): Promise<string> {
|
||||
const version =
|
||||
versionInput === "latest"
|
||||
? await getLatestVersion(githubToken)
|
||||
: versionInput;
|
||||
core.debug(`Resolving version: ${versionInput}`);
|
||||
let version: string;
|
||||
if (manifestFile) {
|
||||
version =
|
||||
versionInput === "latest"
|
||||
? await getLatestVersionInManifest(manifestFile)
|
||||
: versionInput;
|
||||
} else {
|
||||
version =
|
||||
versionInput === "latest"
|
||||
? await getLatestVersion(githubToken)
|
||||
: versionInput;
|
||||
}
|
||||
if (tc.isExplicitVersion(version)) {
|
||||
core.debug(`Version ${version} is an explicit version.`);
|
||||
return version;
|
||||
}
|
||||
const availableVersions = await getAvailableVersions(githubToken);
|
||||
const resolvedVersion = tc.evaluateVersions(availableVersions, version);
|
||||
if (resolvedVersion === "") {
|
||||
core.debug(`Available versions: ${availableVersions}`);
|
||||
const resolvedVersion = maxSatisfying(availableVersions, version);
|
||||
if (resolvedVersion === undefined) {
|
||||
throw new Error(`No version found for ${version}`);
|
||||
}
|
||||
return resolvedVersion;
|
||||
}
|
||||
|
||||
async function getAvailableVersions(githubToken: string): Promise<string[]> {
|
||||
core.info("Getting available versions from GitHub API...");
|
||||
try {
|
||||
const octokit = new PaginatingOctokit({
|
||||
const octokit = new Octokit({
|
||||
auth: githubToken,
|
||||
});
|
||||
return await getReleaseTagNames(octokit);
|
||||
@@ -105,7 +171,7 @@ async function getAvailableVersions(githubToken: string): Promise<string[]> {
|
||||
core.info(
|
||||
"No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.",
|
||||
);
|
||||
const octokit = new PaginatingOctokit();
|
||||
const octokit = new Octokit();
|
||||
return await getReleaseTagNames(octokit);
|
||||
}
|
||||
throw err;
|
||||
@@ -113,17 +179,24 @@ async function getAvailableVersions(githubToken: string): Promise<string[]> {
|
||||
}
|
||||
|
||||
async function getReleaseTagNames(
|
||||
octokit: InstanceType<typeof PaginatingOctokit>,
|
||||
octokit: InstanceType<typeof Octokit>,
|
||||
): Promise<string[]> {
|
||||
const response = await octokit.paginate(octokit.rest.repos.listReleases, {
|
||||
owner: OWNER,
|
||||
repo: REPO,
|
||||
});
|
||||
return response.map((release) => release.tag_name);
|
||||
const releaseTagNames = response.map((release) => release.tag_name);
|
||||
if (releaseTagNames.length === 0) {
|
||||
throw Error(
|
||||
"Github API request failed while getting releases. Check the GitHub status page for outages. Try again later.",
|
||||
);
|
||||
}
|
||||
return releaseTagNames;
|
||||
}
|
||||
|
||||
async function getLatestVersion(githubToken: string) {
|
||||
const octokit = new PaginatingOctokit({
|
||||
core.info("Getting latest version from GitHub API...");
|
||||
const octokit = new Octokit({
|
||||
auth: githubToken,
|
||||
});
|
||||
|
||||
@@ -135,9 +208,12 @@ async function getLatestVersion(githubToken: string) {
|
||||
core.info(
|
||||
"No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.",
|
||||
);
|
||||
const octokit = new PaginatingOctokit();
|
||||
const octokit = new Octokit();
|
||||
latestRelease = await getLatestRelease(octokit);
|
||||
} else {
|
||||
core.error(
|
||||
"Github API request failed while getting latest release. Check the GitHub status page for outages. Try again later.",
|
||||
);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
@@ -145,15 +221,33 @@ async function getLatestVersion(githubToken: string) {
|
||||
if (!latestRelease) {
|
||||
throw new Error("Could not determine latest release.");
|
||||
}
|
||||
core.debug(`Latest version: ${latestRelease.tag_name}`);
|
||||
return latestRelease.tag_name;
|
||||
}
|
||||
|
||||
async function getLatestRelease(
|
||||
octokit: InstanceType<typeof PaginatingOctokit>,
|
||||
) {
|
||||
async function getLatestRelease(octokit: InstanceType<typeof Octokit>) {
|
||||
const { data: latestRelease } = await octokit.rest.repos.getLatestRelease({
|
||||
owner: OWNER,
|
||||
repo: REPO,
|
||||
});
|
||||
return latestRelease;
|
||||
}
|
||||
|
||||
function maxSatisfying(
|
||||
versions: string[],
|
||||
version: string,
|
||||
): string | undefined {
|
||||
const maxSemver = tc.evaluateVersions(versions, version);
|
||||
if (maxSemver !== "") {
|
||||
core.debug(`Found a version that satisfies the semver range: ${maxSemver}`);
|
||||
return maxSemver;
|
||||
}
|
||||
const maxPep440 = pep440.maxSatisfying(versions, version);
|
||||
if (maxPep440 !== null) {
|
||||
core.debug(
|
||||
`Found a version that satisfies the pep440 specifier: ${maxPep440}`,
|
||||
);
|
||||
return maxPep440;
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
91
src/download/version-manifest.ts
Normal file
91
src/download/version-manifest.ts
Normal file
@@ -0,0 +1,91 @@
|
||||
import { promises as fs } from "node:fs";
|
||||
import { join } from "node:path";
|
||||
import * as core from "@actions/core";
|
||||
import * as semver from "semver";
|
||||
import { fetch } from "../utils/fetch";
|
||||
|
||||
const localManifestFile = join(__dirname, "..", "..", "version-manifest.json");
|
||||
|
||||
interface ManifestEntry {
|
||||
version: string;
|
||||
artifactName: string;
|
||||
arch: string;
|
||||
platform: string;
|
||||
downloadUrl: string;
|
||||
}
|
||||
|
||||
export async function getLatestKnownVersion(
|
||||
manifestUrl: string | undefined,
|
||||
): Promise<string> {
|
||||
const manifestEntries = await getManifestEntries(manifestUrl);
|
||||
return manifestEntries.reduce((a, b) =>
|
||||
semver.gt(a.version, b.version) ? a : b,
|
||||
).version;
|
||||
}
|
||||
|
||||
export async function getDownloadUrl(
|
||||
manifestUrl: string | undefined,
|
||||
version: string,
|
||||
arch: string,
|
||||
platform: string,
|
||||
): Promise<string | undefined> {
|
||||
const manifestEntries = await getManifestEntries(manifestUrl);
|
||||
const entry = manifestEntries.find(
|
||||
(entry) =>
|
||||
entry.version === version &&
|
||||
entry.arch === arch &&
|
||||
entry.platform === platform,
|
||||
);
|
||||
return entry ? entry.downloadUrl : undefined;
|
||||
}
|
||||
|
||||
async function getManifestEntries(
|
||||
manifestUrl: string | undefined,
|
||||
): Promise<ManifestEntry[]> {
|
||||
let data: string;
|
||||
if (manifestUrl !== undefined) {
|
||||
core.info(`Fetching manifest-file from: ${manifestUrl}`);
|
||||
const response = await fetch(manifestUrl, {});
|
||||
if (!response.ok) {
|
||||
throw new Error(
|
||||
`Failed to fetch manifest-file: ${response.status} ${response.statusText}`,
|
||||
);
|
||||
}
|
||||
data = await response.text();
|
||||
} else {
|
||||
core.info("manifest-file not provided, reading from local file.");
|
||||
const fileContent = await fs.readFile(localManifestFile);
|
||||
data = fileContent.toString();
|
||||
}
|
||||
|
||||
return JSON.parse(data);
|
||||
}
|
||||
|
||||
export async function updateVersionManifest(
|
||||
manifestUrl: string,
|
||||
downloadUrls: string[],
|
||||
): Promise<void> {
|
||||
const manifest: ManifestEntry[] = [];
|
||||
|
||||
for (const downloadUrl of downloadUrls) {
|
||||
const urlParts = downloadUrl.split("/");
|
||||
const version = urlParts[urlParts.length - 2];
|
||||
const artifactName = urlParts[urlParts.length - 1];
|
||||
if (!artifactName.startsWith("uv-")) {
|
||||
continue;
|
||||
}
|
||||
if (artifactName.startsWith("uv-installer")) {
|
||||
continue;
|
||||
}
|
||||
const artifactParts = artifactName.split(".")[0].split("-");
|
||||
manifest.push({
|
||||
arch: artifactParts[1],
|
||||
artifactName: artifactName,
|
||||
downloadUrl: downloadUrl,
|
||||
platform: artifactName.split(`uv-${artifactParts[1]}-`)[1].split(".")[0],
|
||||
version: version,
|
||||
});
|
||||
}
|
||||
core.debug(`Updating manifest-file: ${JSON.stringify(manifest)}`);
|
||||
await fs.writeFile(manifestUrl, JSON.stringify(manifest));
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
import * as crypto from "node:crypto";
|
||||
import * as core from "@actions/core";
|
||||
import * as fs from "node:fs";
|
||||
import * as stream from "node:stream";
|
||||
import * as util from "node:util";
|
||||
import * as core from "@actions/core";
|
||||
import { create } from "@actions/glob";
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,29 +1,41 @@
|
||||
import * as fs from "node:fs";
|
||||
import * as cache from "@actions/cache";
|
||||
import * as core from "@actions/core";
|
||||
import * as exec from "@actions/exec";
|
||||
import * as fs from "node:fs";
|
||||
import {
|
||||
STATE_CACHE_MATCHED_KEY,
|
||||
STATE_CACHE_KEY,
|
||||
STATE_CACHE_MATCHED_KEY,
|
||||
} from "./cache/restore-cache";
|
||||
import {
|
||||
cacheLocalPath,
|
||||
enableCache,
|
||||
ignoreNothingToCache,
|
||||
pruneCache as shouldPruneCache,
|
||||
saveCache as shouldSaveCache,
|
||||
} from "./utils/inputs";
|
||||
|
||||
export async function run(): Promise<void> {
|
||||
if (!enableCache) {
|
||||
return;
|
||||
}
|
||||
if (!shouldSaveCache) {
|
||||
core.info("save-cache is false. Skipping save cache step.");
|
||||
return;
|
||||
}
|
||||
if (process.env.SETUP_UV_SAVE_CACHE === "false") {
|
||||
core.info(
|
||||
"Environment variable SETUP_UV_SAVE_CACHE is set to false. Skipping save cache step.",
|
||||
);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
if (enableCache) {
|
||||
await saveCache();
|
||||
// node will stay alive if any promises are not resolved,
|
||||
// which is a possibility if HTTP requests are dangling
|
||||
// due to retries or timeouts. We know that if we got here
|
||||
// that all promises that we care about have successfully
|
||||
// resolved, so simply exit with success.
|
||||
process.exit(0);
|
||||
}
|
||||
await saveCache();
|
||||
// node will stay alive if any promises are not resolved,
|
||||
// which is a possibility if HTTP requests are dangling
|
||||
// due to retries or timeouts. We know that if we got here
|
||||
// that all promises that we care about have successfully
|
||||
// resolved, so simply exit with success.
|
||||
process.exit(0);
|
||||
} catch (error) {
|
||||
const err = error as Error;
|
||||
core.setFailed(err.message);
|
||||
|
||||
175
src/setup-uv.ts
175
src/setup-uv.ts
@@ -1,36 +1,42 @@
|
||||
import * as core from "@actions/core";
|
||||
import fs from "node:fs";
|
||||
import * as path from "node:path";
|
||||
import {
|
||||
downloadVersion,
|
||||
tryGetFromToolCache,
|
||||
resolveVersion,
|
||||
} from "./download/download-version";
|
||||
import * as core from "@actions/core";
|
||||
import * as exec from "@actions/exec";
|
||||
import { restoreCache } from "./cache/restore-cache";
|
||||
|
||||
import {
|
||||
downloadVersionFromGithub,
|
||||
downloadVersionFromManifest,
|
||||
resolveVersion,
|
||||
tryGetFromToolCache,
|
||||
} from "./download/download-version";
|
||||
import {
|
||||
activateEnvironment as activateEnvironmentInput,
|
||||
addProblemMatchers,
|
||||
cacheLocalPath,
|
||||
checkSum,
|
||||
enableCache,
|
||||
githubToken,
|
||||
ignoreEmptyWorkdir,
|
||||
manifestFile,
|
||||
pythonVersion,
|
||||
serverUrl,
|
||||
toolBinDir,
|
||||
toolDir,
|
||||
versionFile as versionFileInput,
|
||||
version as versionInput,
|
||||
workingDirectory,
|
||||
} from "./utils/inputs";
|
||||
import {
|
||||
type Architecture,
|
||||
getArch,
|
||||
getPlatform,
|
||||
type Platform,
|
||||
} from "./utils/platforms";
|
||||
import {
|
||||
cacheLocalPath,
|
||||
checkSum,
|
||||
enableCache,
|
||||
githubToken,
|
||||
pyProjectFile,
|
||||
pythonVersion,
|
||||
toolBinDir,
|
||||
toolDir,
|
||||
uvFile,
|
||||
version as versionInput,
|
||||
} from "./utils/inputs";
|
||||
import * as exec from "@actions/exec";
|
||||
import fs from "node:fs";
|
||||
import { getUvVersionFromConfigFile } from "./utils/pyproject";
|
||||
import { getUvVersionFromFile } from "./version/resolve";
|
||||
|
||||
async function run(): Promise<void> {
|
||||
const platform = getPlatform();
|
||||
detectEmptyWorkdir();
|
||||
const platform = await getPlatform();
|
||||
const arch = getArch();
|
||||
|
||||
try {
|
||||
@@ -42,10 +48,11 @@ async function run(): Promise<void> {
|
||||
}
|
||||
const setupResult = await setupUv(platform, arch, checkSum, githubToken);
|
||||
|
||||
addUvToPath(setupResult.uvDir);
|
||||
addToolBinToPath();
|
||||
addUvToPathAndOutput(setupResult.uvDir);
|
||||
setToolDir();
|
||||
await setupPython();
|
||||
setupPython();
|
||||
await activateEnvironment();
|
||||
addMatchers();
|
||||
setCacheDir(cacheLocalPath);
|
||||
|
||||
@@ -61,13 +68,27 @@ async function run(): Promise<void> {
|
||||
}
|
||||
}
|
||||
|
||||
function detectEmptyWorkdir(): void {
|
||||
if (fs.readdirSync(".").length === 0) {
|
||||
if (ignoreEmptyWorkdir) {
|
||||
core.info(
|
||||
"Empty workdir detected. Ignoring because ignore-empty-workdir is enabled",
|
||||
);
|
||||
} else {
|
||||
core.warning(
|
||||
"Empty workdir detected. This may cause unexpected behavior. You can enable ignore-empty-workdir to mute this warning.",
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function setupUv(
|
||||
platform: Platform,
|
||||
arch: Architecture,
|
||||
checkSum: string | undefined,
|
||||
githubToken: string,
|
||||
): Promise<{ uvDir: string; version: string }> {
|
||||
const resolvedVersion = await determineVersion();
|
||||
const resolvedVersion = await determineVersion(manifestFile);
|
||||
const toolCacheResult = tryGetFromToolCache(arch, resolvedVersion);
|
||||
if (toolCacheResult.installedPath) {
|
||||
core.info(`Found uv in tool-cache for ${toolCacheResult.version}`);
|
||||
@@ -77,13 +98,29 @@ async function setupUv(
|
||||
};
|
||||
}
|
||||
|
||||
const downloadVersionResult = await downloadVersion(
|
||||
platform,
|
||||
arch,
|
||||
resolvedVersion,
|
||||
checkSum,
|
||||
githubToken,
|
||||
);
|
||||
let downloadVersionResult: { version: string; cachedToolDir: string };
|
||||
if (serverUrl !== "https://github.com") {
|
||||
core.warning(
|
||||
"The input server-url is deprecated. Please use manifest-file instead.",
|
||||
);
|
||||
downloadVersionResult = await downloadVersionFromGithub(
|
||||
serverUrl,
|
||||
platform,
|
||||
arch,
|
||||
resolvedVersion,
|
||||
checkSum,
|
||||
githubToken,
|
||||
);
|
||||
} else {
|
||||
downloadVersionResult = await downloadVersionFromManifest(
|
||||
manifestFile,
|
||||
platform,
|
||||
arch,
|
||||
resolvedVersion,
|
||||
checkSum,
|
||||
githubToken,
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
uvDir: downloadVersionResult.cachedToolDir,
|
||||
@@ -91,29 +128,42 @@ async function setupUv(
|
||||
};
|
||||
}
|
||||
|
||||
async function determineVersion(): Promise<string> {
|
||||
async function determineVersion(
|
||||
manifestFile: string | undefined,
|
||||
): Promise<string> {
|
||||
if (versionInput !== "") {
|
||||
return await resolveVersion(versionInput, githubToken);
|
||||
return await resolveVersion(versionInput, manifestFile, githubToken);
|
||||
}
|
||||
const configFile = uvFile !== "" ? uvFile : pyProjectFile;
|
||||
if (configFile !== "") {
|
||||
const versionFromConfigFile = getUvVersionFromConfigFile(configFile);
|
||||
if (versionFromConfigFile === undefined) {
|
||||
core.warning(
|
||||
`Could not find required-version under [tool.uv] in ${configFile}. Falling back to latest`,
|
||||
if (versionFileInput !== "") {
|
||||
const versionFromFile = getUvVersionFromFile(versionFileInput);
|
||||
if (versionFromFile === undefined) {
|
||||
throw new Error(
|
||||
`Could not determine uv version from file: ${versionFileInput}`,
|
||||
);
|
||||
}
|
||||
return await resolveVersion(versionFromConfigFile || "latest", githubToken);
|
||||
return await resolveVersion(versionFromFile, manifestFile, githubToken);
|
||||
}
|
||||
if (!fs.existsSync("uv.toml") && !fs.existsSync("pyproject.toml")) {
|
||||
return await resolveVersion("latest", githubToken);
|
||||
const versionFromUvToml = getUvVersionFromFile(
|
||||
`${workingDirectory}${path.sep}uv.toml`,
|
||||
);
|
||||
const versionFromPyproject = getUvVersionFromFile(
|
||||
`${workingDirectory}${path.sep}pyproject.toml`,
|
||||
);
|
||||
if (versionFromUvToml === undefined && versionFromPyproject === undefined) {
|
||||
core.info(
|
||||
"Could not determine uv version from uv.toml or pyproject.toml. Falling back to latest.",
|
||||
);
|
||||
}
|
||||
const versionFile = fs.existsSync("uv.toml") ? "uv.toml" : "pyproject.toml";
|
||||
const versionFromConfigFile = getUvVersionFromConfigFile(versionFile);
|
||||
return await resolveVersion(versionFromConfigFile || "latest", githubToken);
|
||||
return await resolveVersion(
|
||||
versionFromUvToml || versionFromPyproject || "latest",
|
||||
manifestFile,
|
||||
githubToken,
|
||||
);
|
||||
}
|
||||
|
||||
function addUvToPath(cachedPath: string): void {
|
||||
function addUvToPathAndOutput(cachedPath: string): void {
|
||||
core.setOutput("uv-path", `${cachedPath}${path.sep}uv`);
|
||||
core.setOutput("uvx-path", `${cachedPath}${path.sep}uvx`);
|
||||
core.addPath(cachedPath);
|
||||
core.info(`Added ${cachedPath} to the path`);
|
||||
}
|
||||
@@ -145,24 +195,29 @@ function setToolDir(): void {
|
||||
}
|
||||
}
|
||||
|
||||
async function setupPython(): Promise<void> {
|
||||
function setupPython(): void {
|
||||
if (pythonVersion !== "") {
|
||||
core.exportVariable("UV_PYTHON", pythonVersion);
|
||||
core.info(`Set UV_PYTHON to ${pythonVersion}`);
|
||||
const options: exec.ExecOptions = {
|
||||
silent: !core.isDebug(),
|
||||
};
|
||||
const execArgs = ["venv", "--python", pythonVersion];
|
||||
}
|
||||
}
|
||||
|
||||
async function activateEnvironment(): Promise<void> {
|
||||
if (activateEnvironmentInput) {
|
||||
const execArgs = ["venv", ".venv", "--directory", workingDirectory];
|
||||
|
||||
core.info("Activating python venv...");
|
||||
await exec.exec("uv", execArgs, options);
|
||||
await exec.exec("uv", execArgs);
|
||||
|
||||
let venvBinPath = ".venv/bin";
|
||||
let venvBinPath = `${workingDirectory}${path.sep}.venv${path.sep}bin`;
|
||||
if (process.platform === "win32") {
|
||||
venvBinPath = ".venv/Scripts";
|
||||
venvBinPath = `${workingDirectory}${path.sep}.venv${path.sep}Scripts`;
|
||||
}
|
||||
core.addPath(path.resolve(venvBinPath));
|
||||
core.exportVariable("VIRTUAL_ENV", path.resolve(".venv"));
|
||||
core.exportVariable(
|
||||
"VIRTUAL_ENV",
|
||||
path.resolve(`${workingDirectory}${path.sep}.venv`),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,8 +227,10 @@ function setCacheDir(cacheLocalPath: string): void {
|
||||
}
|
||||
|
||||
function addMatchers(): void {
|
||||
const matchersPath = path.join(__dirname, `..${path.sep}..`, ".github");
|
||||
core.info(`##[add-matcher]${path.join(matchersPath, "python.json")}`);
|
||||
if (addProblemMatchers) {
|
||||
const matchersPath = path.join(__dirname, `..${path.sep}..`, ".github");
|
||||
core.info(`##[add-matcher]${path.join(matchersPath, "python.json")}`);
|
||||
}
|
||||
}
|
||||
|
||||
run();
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
import * as semver from "semver";
|
||||
import * as core from "@actions/core";
|
||||
import { Octokit } from "@octokit/core";
|
||||
import { paginateRest } from "@octokit/plugin-paginate-rest";
|
||||
import { restEndpointMethods } from "@octokit/plugin-rest-endpoint-methods";
|
||||
|
||||
import { OWNER, REPO } from "./utils/constants";
|
||||
|
||||
import { updateChecksums } from "./download/checksum/update-known-checksums";
|
||||
|
||||
const PaginatingOctokit = Octokit.plugin(paginateRest, restEndpointMethods);
|
||||
|
||||
async function run(): Promise<void> {
|
||||
const checksumFilePath = process.argv.slice(2)[0];
|
||||
const github_token = process.argv.slice(2)[1];
|
||||
|
||||
const octokit = new PaginatingOctokit({
|
||||
auth: github_token,
|
||||
});
|
||||
|
||||
const response = await octokit.paginate(octokit.rest.repos.listReleases, {
|
||||
owner: OWNER,
|
||||
repo: REPO,
|
||||
});
|
||||
const downloadUrls: string[] = response.flatMap((release) =>
|
||||
release.assets
|
||||
.filter((asset) => asset.name.endsWith(".sha256"))
|
||||
.map((asset) => asset.browser_download_url),
|
||||
);
|
||||
await updateChecksums(checksumFilePath, downloadUrls);
|
||||
|
||||
const latestVersion = response
|
||||
.map((release) => release.tag_name)
|
||||
.sort(semver.rcompare)[0];
|
||||
core.setOutput("latest-version", latestVersion);
|
||||
}
|
||||
|
||||
run();
|
||||
56
src/update-known-versions.ts
Normal file
56
src/update-known-versions.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
import * as core from "@actions/core";
|
||||
import * as semver from "semver";
|
||||
import { updateChecksums } from "./download/checksum/update-known-checksums";
|
||||
import {
|
||||
getLatestKnownVersion,
|
||||
updateVersionManifest,
|
||||
} from "./download/version-manifest";
|
||||
import { OWNER, REPO } from "./utils/constants";
|
||||
import { Octokit } from "./utils/octokit";
|
||||
|
||||
async function run(): Promise<void> {
|
||||
const checksumFilePath = process.argv.slice(2)[0];
|
||||
const versionsManifestFile = process.argv.slice(2)[1];
|
||||
const githubToken = process.argv.slice(2)[2];
|
||||
|
||||
const octokit = new Octokit({
|
||||
auth: githubToken,
|
||||
});
|
||||
|
||||
const { data: latestRelease } = await octokit.rest.repos.getLatestRelease({
|
||||
owner: OWNER,
|
||||
repo: REPO,
|
||||
});
|
||||
|
||||
const latestKnownVersion = await getLatestKnownVersion(undefined);
|
||||
|
||||
if (semver.lte(latestRelease.tag_name, latestKnownVersion)) {
|
||||
core.info(
|
||||
`Latest release (${latestRelease.tag_name}) is not newer than the latest known version (${latestKnownVersion}). Skipping update.`,
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
const releases = await octokit.paginate(octokit.rest.repos.listReleases, {
|
||||
owner: OWNER,
|
||||
repo: REPO,
|
||||
});
|
||||
const checksumDownloadUrls: string[] = releases.flatMap((release) =>
|
||||
release.assets
|
||||
.filter((asset) => asset.name.endsWith(".sha256"))
|
||||
.map((asset) => asset.browser_download_url),
|
||||
);
|
||||
await updateChecksums(checksumFilePath, checksumDownloadUrls);
|
||||
|
||||
const artifactDownloadUrls: string[] = releases.flatMap((release) =>
|
||||
release.assets
|
||||
.filter((asset) => !asset.name.endsWith(".sha256"))
|
||||
.map((asset) => asset.browser_download_url),
|
||||
);
|
||||
|
||||
await updateVersionManifest(versionsManifestFile, artifactDownloadUrls);
|
||||
|
||||
core.setOutput("latest-version", latestRelease.tag_name);
|
||||
}
|
||||
|
||||
run();
|
||||
21
src/utils/fetch.ts
Normal file
21
src/utils/fetch.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import { ProxyAgent, type RequestInit, fetch as undiciFetch } from "undici";
|
||||
|
||||
export function getProxyAgent() {
|
||||
const httpProxy = process.env.HTTP_PROXY || process.env.http_proxy;
|
||||
if (httpProxy) {
|
||||
return new ProxyAgent(httpProxy);
|
||||
}
|
||||
|
||||
const httpsProxy = process.env.HTTPS_PROXY || process.env.https_proxy;
|
||||
if (httpsProxy) {
|
||||
return new ProxyAgent(httpsProxy);
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
export const fetch = async (url: string, opts: RequestInit) =>
|
||||
await undiciFetch(url, {
|
||||
dispatcher: getProxyAgent(),
|
||||
...opts,
|
||||
});
|
||||
@@ -1,21 +1,39 @@
|
||||
import * as core from "@actions/core";
|
||||
import path from "node:path";
|
||||
import * as core from "@actions/core";
|
||||
|
||||
export const workingDirectory = core.getInput("working-directory");
|
||||
export const version = core.getInput("version");
|
||||
export const pyProjectFile = core.getInput("pyproject-file");
|
||||
export const uvFile = core.getInput("uv-file");
|
||||
export const versionFile = getVersionFile();
|
||||
export const pythonVersion = core.getInput("python-version");
|
||||
export const activateEnvironment = core.getBooleanInput("activate-environment");
|
||||
export const checkSum = core.getInput("checksum");
|
||||
export const enableCache = getEnableCache();
|
||||
export const restoreCache = core.getInput("restore-cache") === "true";
|
||||
export const saveCache = core.getInput("save-cache") === "true";
|
||||
export const cacheSuffix = core.getInput("cache-suffix") || "";
|
||||
export const cacheLocalPath = getCacheLocalPath();
|
||||
export const cacheDependencyGlob = core.getInput("cache-dependency-glob");
|
||||
export const cacheDependencyGlob = getCacheDependencyGlob();
|
||||
export const pruneCache = core.getInput("prune-cache") === "true";
|
||||
export const ignoreNothingToCache =
|
||||
core.getInput("ignore-nothing-to-cache") === "true";
|
||||
export const ignoreEmptyWorkdir =
|
||||
core.getInput("ignore-empty-workdir") === "true";
|
||||
export const toolBinDir = getToolBinDir();
|
||||
export const toolDir = getToolDir();
|
||||
export const serverUrl = core.getInput("server-url");
|
||||
export const githubToken = core.getInput("github-token");
|
||||
export const manifestFile = getManifestFile();
|
||||
export const addProblemMatchers =
|
||||
core.getInput("add-problem-matchers") === "true";
|
||||
|
||||
function getVersionFile(): string {
|
||||
const versionFileInput = core.getInput("version-file");
|
||||
if (versionFileInput !== "") {
|
||||
const tildeExpanded = expandTilde(versionFileInput);
|
||||
return resolveRelativePath(tildeExpanded);
|
||||
}
|
||||
return versionFileInput;
|
||||
}
|
||||
|
||||
function getEnableCache(): boolean {
|
||||
const enableCacheInput = core.getInput("enable-cache");
|
||||
@@ -28,7 +46,8 @@ function getEnableCache(): boolean {
|
||||
function getToolBinDir(): string | undefined {
|
||||
const toolBinDirInput = core.getInput("tool-bin-dir");
|
||||
if (toolBinDirInput !== "") {
|
||||
return expandTilde(toolBinDirInput);
|
||||
const tildeExpanded = expandTilde(toolBinDirInput);
|
||||
return resolveRelativePath(tildeExpanded);
|
||||
}
|
||||
if (process.platform === "win32") {
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
@@ -44,7 +63,8 @@ function getToolBinDir(): string | undefined {
|
||||
function getToolDir(): string | undefined {
|
||||
const toolDirInput = core.getInput("tool-dir");
|
||||
if (toolDirInput !== "") {
|
||||
return expandTilde(toolDirInput);
|
||||
const tildeExpanded = expandTilde(toolDirInput);
|
||||
return resolveRelativePath(tildeExpanded);
|
||||
}
|
||||
if (process.platform === "win32") {
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
@@ -60,14 +80,34 @@ function getToolDir(): string | undefined {
|
||||
function getCacheLocalPath(): string {
|
||||
const cacheLocalPathInput = core.getInput("cache-local-path");
|
||||
if (cacheLocalPathInput !== "") {
|
||||
return expandTilde(cacheLocalPathInput);
|
||||
const tildeExpanded = expandTilde(cacheLocalPathInput);
|
||||
return resolveRelativePath(tildeExpanded);
|
||||
}
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
return `${process.env.RUNNER_TEMP}${path.sep}setup-uv-cache`;
|
||||
if (process.env.RUNNER_ENVIRONMENT === "github-hosted") {
|
||||
if (process.env.RUNNER_TEMP !== undefined) {
|
||||
return `${process.env.RUNNER_TEMP}${path.sep}setup-uv-cache`;
|
||||
}
|
||||
throw Error(
|
||||
"Could not determine UV_CACHE_DIR. Please make sure RUNNER_TEMP is set or provide the cache-local-path input",
|
||||
);
|
||||
}
|
||||
throw Error(
|
||||
"Could not determine UV_CACHE_DIR. Please make sure RUNNER_TEMP is set or provide the cache-local-path input",
|
||||
);
|
||||
if (process.platform === "win32") {
|
||||
return `${process.env.APPDATA}${path.sep}uv${path.sep}cache`;
|
||||
}
|
||||
return `${process.env.HOME}${path.sep}.cache${path.sep}uv`;
|
||||
}
|
||||
|
||||
function getCacheDependencyGlob(): string {
|
||||
const cacheDependencyGlobInput = core.getInput("cache-dependency-glob");
|
||||
if (cacheDependencyGlobInput !== "") {
|
||||
return cacheDependencyGlobInput
|
||||
.split("\n")
|
||||
.map((part) => part.trim())
|
||||
.map((part) => expandTilde(part))
|
||||
.map((part) => resolveRelativePath(part))
|
||||
.join("\n");
|
||||
}
|
||||
return cacheDependencyGlobInput;
|
||||
}
|
||||
|
||||
function expandTilde(input: string): string {
|
||||
@@ -76,3 +116,23 @@ function expandTilde(input: string): string {
|
||||
}
|
||||
return input;
|
||||
}
|
||||
|
||||
function resolveRelativePath(inputPath: string): string {
|
||||
const hasNegation = inputPath.startsWith("!");
|
||||
const pathWithoutNegation = hasNegation ? inputPath.substring(1) : inputPath;
|
||||
|
||||
const resolvedPath = path.resolve(workingDirectory, pathWithoutNegation);
|
||||
|
||||
core.debug(
|
||||
`Resolving relative path ${inputPath} to ${hasNegation ? "!" : ""}${resolvedPath}`,
|
||||
);
|
||||
return hasNegation ? `!${resolvedPath}` : resolvedPath;
|
||||
}
|
||||
|
||||
function getManifestFile(): string | undefined {
|
||||
const manifestFileInput = core.getInput("manifest-file");
|
||||
if (manifestFileInput !== "") {
|
||||
return manifestFileInput;
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
38
src/utils/octokit.ts
Normal file
38
src/utils/octokit.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import { Octokit as Core } from "@octokit/core";
|
||||
import type {
|
||||
Constructor,
|
||||
OctokitOptions,
|
||||
} from "@octokit/core/dist-types/types";
|
||||
import {
|
||||
type PaginateInterface,
|
||||
paginateRest,
|
||||
} from "@octokit/plugin-paginate-rest";
|
||||
import { legacyRestEndpointMethods } from "@octokit/plugin-rest-endpoint-methods";
|
||||
import { fetch as customFetch } from "./fetch";
|
||||
|
||||
export type { RestEndpointMethodTypes } from "@octokit/plugin-rest-endpoint-methods";
|
||||
|
||||
const DEFAULTS = {
|
||||
baseUrl: "https://api.github.com",
|
||||
userAgent: "setup-uv",
|
||||
};
|
||||
|
||||
export const Octokit: typeof Core &
|
||||
Constructor<
|
||||
{
|
||||
paginate: PaginateInterface;
|
||||
} & ReturnType<typeof legacyRestEndpointMethods>
|
||||
> = Core.plugin(paginateRest, legacyRestEndpointMethods).defaults(
|
||||
function buildDefaults(options: OctokitOptions): OctokitOptions {
|
||||
return {
|
||||
...DEFAULTS,
|
||||
...options,
|
||||
request: {
|
||||
fetch: customFetch,
|
||||
...options.request,
|
||||
},
|
||||
};
|
||||
},
|
||||
);
|
||||
|
||||
export type Octokit = InstanceType<typeof Octokit>;
|
||||
@@ -1,17 +1,26 @@
|
||||
import * as core from "@actions/core";
|
||||
import * as exec from "@actions/exec";
|
||||
export type Platform =
|
||||
| "unknown-linux-gnu"
|
||||
| "unknown-linux-musl"
|
||||
| "unknown-linux-musleabihf"
|
||||
| "apple-darwin"
|
||||
| "pc-windows-msvc";
|
||||
export type Architecture = "i686" | "x86_64" | "aarch64";
|
||||
export type Architecture =
|
||||
| "i686"
|
||||
| "x86_64"
|
||||
| "aarch64"
|
||||
| "s390x"
|
||||
| "powerpc64le";
|
||||
|
||||
export function getArch(): Architecture | undefined {
|
||||
const arch = process.arch;
|
||||
const archMapping: { [key: string]: Architecture } = {
|
||||
ia32: "i686",
|
||||
x64: "x86_64",
|
||||
arm64: "aarch64",
|
||||
ia32: "i686",
|
||||
ppc64: "powerpc64le",
|
||||
s390x: "s390x",
|
||||
x64: "x86_64",
|
||||
};
|
||||
|
||||
if (arch in archMapping) {
|
||||
@@ -19,15 +28,49 @@ export function getArch(): Architecture | undefined {
|
||||
}
|
||||
}
|
||||
|
||||
export function getPlatform(): Platform | undefined {
|
||||
const platform = process.platform;
|
||||
export async function getPlatform(): Promise<Platform | undefined> {
|
||||
const processPlatform = process.platform;
|
||||
const platformMapping: { [key: string]: Platform } = {
|
||||
linux: "unknown-linux-gnu",
|
||||
darwin: "apple-darwin",
|
||||
linux: "unknown-linux-gnu",
|
||||
win32: "pc-windows-msvc",
|
||||
};
|
||||
|
||||
if (platform in platformMapping) {
|
||||
return platformMapping[platform];
|
||||
if (processPlatform in platformMapping) {
|
||||
const platform = platformMapping[processPlatform];
|
||||
if (platform === "unknown-linux-gnu") {
|
||||
const isMusl = await isMuslOs();
|
||||
return isMusl ? "unknown-linux-musl" : platform;
|
||||
}
|
||||
return platform;
|
||||
}
|
||||
}
|
||||
|
||||
async function isMuslOs(): Promise<boolean> {
|
||||
let stdOutput = "";
|
||||
let errOutput = "";
|
||||
const options: exec.ExecOptions = {
|
||||
ignoreReturnCode: true,
|
||||
listeners: {
|
||||
stderr: (data: Buffer) => {
|
||||
errOutput += data.toString();
|
||||
},
|
||||
stdout: (data: Buffer) => {
|
||||
stdOutput += data.toString();
|
||||
},
|
||||
},
|
||||
silent: !core.isDebug(),
|
||||
};
|
||||
|
||||
try {
|
||||
const execArgs = ["--version"];
|
||||
await exec.exec("ldd", execArgs, options);
|
||||
return stdOutput.includes("musl") || errOutput.includes("musl");
|
||||
} catch (error) {
|
||||
const err = error as Error;
|
||||
core.warning(
|
||||
`Failed to determine glibc or musl. Falling back to glibc. Error: ${err.message}`,
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
import fs from "node:fs";
|
||||
import * as core from "@actions/core";
|
||||
import * as toml from "smol-toml";
|
||||
|
||||
export function getUvVersionFromConfigFile(
|
||||
filePath: string,
|
||||
): string | undefined {
|
||||
if (!fs.existsSync(filePath)) {
|
||||
core.warning(`Could not find file: ${filePath}`);
|
||||
return undefined;
|
||||
}
|
||||
let requiredVersion: string | undefined;
|
||||
try {
|
||||
requiredVersion = getRequiredVersion(filePath);
|
||||
} catch (err) {
|
||||
const message = (err as Error).message;
|
||||
core.warning(`Error while parsing ${filePath}: ${message}`);
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if (requiredVersion?.startsWith("==")) {
|
||||
requiredVersion = requiredVersion.slice(2);
|
||||
}
|
||||
if (requiredVersion !== undefined) {
|
||||
core.info(
|
||||
`Found required-version for uv in ${filePath}: ${requiredVersion}`,
|
||||
);
|
||||
}
|
||||
return requiredVersion;
|
||||
}
|
||||
|
||||
function getRequiredVersion(filePath: string): string | undefined {
|
||||
const fileContent = fs.readFileSync(filePath, "utf-8");
|
||||
|
||||
if (filePath.endsWith("pyproject.toml")) {
|
||||
const tomlContent = toml.parse(fileContent) as {
|
||||
tool?: { uv?: { "required-version"?: string } };
|
||||
};
|
||||
return tomlContent?.tool?.uv?.["required-version"];
|
||||
}
|
||||
const tomlContent = toml.parse(fileContent) as {
|
||||
"required-version"?: string;
|
||||
};
|
||||
return tomlContent["required-version"];
|
||||
}
|
||||
22
src/version/config-file.ts
Normal file
22
src/version/config-file.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import fs from "node:fs";
|
||||
import * as toml from "smol-toml";
|
||||
|
||||
export function getRequiredVersionFromConfigFile(
|
||||
filePath: string,
|
||||
): string | undefined {
|
||||
if (!filePath.endsWith(".toml")) {
|
||||
return undefined;
|
||||
}
|
||||
const fileContent = fs.readFileSync(filePath, "utf-8");
|
||||
|
||||
if (filePath.endsWith("pyproject.toml")) {
|
||||
const tomlContent = toml.parse(fileContent) as {
|
||||
tool?: { uv?: { "required-version"?: string } };
|
||||
};
|
||||
return tomlContent?.tool?.uv?.["required-version"];
|
||||
}
|
||||
const tomlContent = toml.parse(fileContent) as {
|
||||
"required-version"?: string;
|
||||
};
|
||||
return tomlContent["required-version"];
|
||||
}
|
||||
43
src/version/requirements-file.ts
Normal file
43
src/version/requirements-file.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import fs from "node:fs";
|
||||
import * as toml from "smol-toml";
|
||||
|
||||
export function getUvVersionFromRequirementsFile(
|
||||
filePath: string,
|
||||
): string | undefined {
|
||||
const fileContent = fs.readFileSync(filePath, "utf-8");
|
||||
if (filePath.endsWith(".txt")) {
|
||||
return getUvVersionFromAllDependencies(fileContent.split("\n"));
|
||||
}
|
||||
const dependencies = parsePyprojectDependencies(fileContent);
|
||||
return getUvVersionFromAllDependencies(dependencies);
|
||||
}
|
||||
function getUvVersionFromAllDependencies(
|
||||
allDependencies: string[],
|
||||
): string | undefined {
|
||||
return allDependencies
|
||||
.find((dep: string) => dep.match(/^uv[=<>~!]/))
|
||||
?.match(/^uv([=<>~!]+\S*)/)?.[1]
|
||||
.trim();
|
||||
}
|
||||
|
||||
interface Pyproject {
|
||||
project?: {
|
||||
dependencies?: string[];
|
||||
"optional-dependencies"?: Record<string, string[]>;
|
||||
};
|
||||
"dependency-groups"?: Record<string, Array<string | object>>;
|
||||
}
|
||||
|
||||
function parsePyprojectDependencies(pyprojectContent: string): string[] {
|
||||
const pyproject: Pyproject = toml.parse(pyprojectContent);
|
||||
const dependencies: string[] = pyproject?.project?.dependencies || [];
|
||||
const optionalDependencies: string[] = Object.values(
|
||||
pyproject?.project?.["optional-dependencies"] || {},
|
||||
).flat();
|
||||
const devDependencies: string[] = Object.values(
|
||||
pyproject?.["dependency-groups"] || {},
|
||||
)
|
||||
.flat()
|
||||
.filter((item: string | object) => typeof item === "string");
|
||||
return dependencies.concat(optionalDependencies, devDependencies);
|
||||
}
|
||||
34
src/version/resolve.ts
Normal file
34
src/version/resolve.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import fs from "node:fs";
|
||||
import * as core from "@actions/core";
|
||||
import { getRequiredVersionFromConfigFile } from "./config-file";
|
||||
import { getUvVersionFromRequirementsFile } from "./requirements-file";
|
||||
import { getUvVersionFromToolVersions } from "./tool-versions-file";
|
||||
|
||||
export function getUvVersionFromFile(filePath: string): string | undefined {
|
||||
core.info(`Trying to find version for uv in: ${filePath}`);
|
||||
if (!fs.existsSync(filePath)) {
|
||||
core.info(`Could not find file: ${filePath}`);
|
||||
return undefined;
|
||||
}
|
||||
let uvVersion: string | undefined;
|
||||
try {
|
||||
uvVersion = getUvVersionFromToolVersions(filePath);
|
||||
if (uvVersion === undefined) {
|
||||
uvVersion = getRequiredVersionFromConfigFile(filePath);
|
||||
}
|
||||
if (uvVersion === undefined) {
|
||||
uvVersion = getUvVersionFromRequirementsFile(filePath);
|
||||
}
|
||||
} catch (err) {
|
||||
const message = (err as Error).message;
|
||||
core.warning(`Error while parsing ${filePath}: ${message}`);
|
||||
return undefined;
|
||||
}
|
||||
if (uvVersion?.startsWith("==")) {
|
||||
uvVersion = uvVersion.slice(2);
|
||||
}
|
||||
if (uvVersion !== undefined) {
|
||||
core.info(`Found version for uv in ${filePath}: ${uvVersion}`);
|
||||
}
|
||||
return uvVersion;
|
||||
}
|
||||
31
src/version/tool-versions-file.ts
Normal file
31
src/version/tool-versions-file.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import fs from "node:fs";
|
||||
import * as core from "@actions/core";
|
||||
|
||||
export function getUvVersionFromToolVersions(
|
||||
filePath: string,
|
||||
): string | undefined {
|
||||
if (!filePath.endsWith(".tool-versions")) {
|
||||
return undefined;
|
||||
}
|
||||
const fileContents = fs.readFileSync(filePath, "utf8");
|
||||
const lines = fileContents.split("\n");
|
||||
|
||||
for (const line of lines) {
|
||||
// Skip commented lines
|
||||
if (line.trim().startsWith("#")) {
|
||||
continue;
|
||||
}
|
||||
const match = line.match(/^\s*uv\s*v?\s*(?<version>[^\s]+)\s*$/);
|
||||
if (match) {
|
||||
const matchedVersion = match.groups?.version.trim();
|
||||
if (matchedVersion?.startsWith("ref")) {
|
||||
core.warning(
|
||||
"The ref syntax of .tool-versions is not supported. Please use a released version instead.",
|
||||
);
|
||||
return undefined;
|
||||
}
|
||||
return matchedVersion;
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2022" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */,
|
||||
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */,
|
||||
"module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */,
|
||||
"noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */,
|
||||
"outDir": "./lib" /* Redirect output structure to the directory. */,
|
||||
"rootDir": "./src" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */,
|
||||
"strict": true /* Enable all strict type-checking options. */,
|
||||
"noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */,
|
||||
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
|
||||
"target": "ES2022" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
|
||||
},
|
||||
"exclude": ["node_modules", "**/*.test.ts"]
|
||||
}
|
||||
|
||||
25020
version-manifest.json
Normal file
25020
version-manifest.json
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user