Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Poetry v2 #11642

Merged
merged 27 commits into from
Mar 3, 2025
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
ddcb164
Use Poetry v2
edgarrmondragon Feb 19, 2025
605dc83
Update another `poetry config` command
edgarrmondragon Feb 19, 2025
f750eff
Fix outdated lockfile
edgarrmondragon Feb 20, 2025
4196b27
Merge branch 'main' into poetry-2
edgarrmondragon Feb 20, 2025
e9b3798
Fix another outdated lockfile
edgarrmondragon Feb 20, 2025
6aa6f68
Fix more outdated lockfiles
edgarrmondragon Feb 20, 2025
0d4b1e1
Fix even more outdated lockfiles
edgarrmondragon Feb 20, 2025
ff1683b
Merge branch 'main' into poetry-2
edgarrmondragon Feb 20, 2025
027bac9
Fix lockfile with missing package version
edgarrmondragon Feb 20, 2025
bfb20a2
Preserve unaffected dep
edgarrmondragon Feb 20, 2025
47359d8
Use new group syntax is `basic_poetry_dependencies.toml`
edgarrmondragon Feb 20, 2025
fc97627
Use non-existent version in lockfile
edgarrmondragon Feb 20, 2025
307876f
Merge branch 'main' into poetry-2
edgarrmondragon Feb 20, 2025
0e9a7de
Revert "Use new group syntax is `basic_poetry_dependencies.toml`"
edgarrmondragon Feb 20, 2025
4a53332
Update `poetry.lock`
edgarrmondragon Feb 20, 2025
bf14b76
Revert "Update `poetry.lock`"
edgarrmondragon Feb 21, 2025
f1f843a
Update `poetry.lock`
edgarrmondragon Feb 21, 2025
f4c3272
Update dev sub-dependency
edgarrmondragon Feb 21, 2025
35683de
Use smoke-test PR branch
edgarrmondragon Feb 21, 2025
ba01a99
Merge branch 'main' into poetry-2
edgarrmondragon Feb 21, 2025
5bb4e2f
Merge branch 'main' into poetry-2
edgarrmondragon Feb 23, 2025
84dc20a
Merge branch 'main' into poetry-2
edgarrmondragon Feb 24, 2025
a46c773
Merge branch 'main' into poetry-2
edgarrmondragon Feb 25, 2025
16fcc8b
Merge branch 'main' into poetry-2
edgarrmondragon Feb 25, 2025
7385d35
Merge branch 'main' into poetry-2
edgarrmondragon Feb 25, 2025
22f981c
Revert "Use smoke-test PR branch"
edgarrmondragon Mar 2, 2025
95d1bf5
Merge branch 'main' into poetry-2
thavaahariharangit Mar 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 10 additions & 5 deletions .github/workflows/smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ concurrency:

env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SMOKE_TEST_BRANCH: main
# TODO: Revert after https://github.com/dependabot/smoke-tests/pull/266 is merged
SMOKE_TEST_NAMESPACE: edgarrmondragon
SMOKE_TEST_BRANCH: poetry-2
jobs:
discover:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -44,7 +46,7 @@ jobs:
cat filtered.json

# Curl the smoke-test tests directory to get a list of tests to run
URL=https://api.github.com/repos/dependabot/smoke-tests/contents/tests?ref=${{ env.SMOKE_TEST_BRANCH }}
URL=https://api.github.com/repos/${{ env.SMOKE_TEST_NAMESPACE }}/smoke-tests/contents/tests?ref=${{ env.SMOKE_TEST_BRANCH }}
curl $URL > tests.json

# Select the names that match smoke-$test*.yaml, where $test is the .text value from filtered.json
Expand Down Expand Up @@ -82,13 +84,16 @@ jobs:
key: ${{ matrix.suite.sha }}-${{ matrix.suite.name }}

- name: Download test
if: steps.cache-smoke-test.outputs.cache-hit != 'true'
# if: steps.cache-smoke-test.outputs.cache-hit != 'true'
run: |
URL=https://api.github.com/repos/dependabot/smoke-tests/contents/tests/${{ matrix.suite.name }}?ref=${{ env.SMOKE_TEST_BRANCH }}
URL=https://api.github.com/repos/${{ env.SMOKE_TEST_NAMESPACE }}/smoke-tests/contents/tests/${{ matrix.suite.name }}?ref=${{ env.SMOKE_TEST_BRANCH }}
curl $(gh api $URL --jq .download_url) -o smoke.yaml

- name: Show Smoke test
run: cat smoke.yaml

- name: Cache Smoke Test
if: steps.cache-smoke-test.outputs.cache-hit != 'true'
# if: steps.cache-smoke-test.outputs.cache-hit != 'true'
uses: actions/cache/save@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
with:
path: smoke.yaml
Expand Down
2 changes: 1 addition & 1 deletion python/helpers/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ flake8==7.1.0
hashin==1.0.3
pipenv==2024.0.2
plette==2.1.0
poetry==1.8.5
poetry==2.1.1
# TODO: Replace 3p package `tomli` with 3.11's new stdlib `tomllib` once we drop support for Python 3.10.
tomli==2.0.1

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ def updated_lockfile_content_for(pyproject_content)
language_version_manager.install_required_python

# use system git instead of the pure Python dulwich
run_poetry_command("pyenv exec poetry config experimental.system-git-client true")
run_poetry_command("pyenv exec poetry config system-git-client true")

run_poetry_update_command

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ def fetch_latest_resolvable_version_string(requirement:)
language_version_manager.install_required_python

# use system git instead of the pure Python dulwich
run_poetry_command("pyenv exec poetry config experimental.system-git-client true")
run_poetry_command("pyenv exec poetry config system-git-client true")

# Shell out to Poetry, which handles everything for us.
run_poetry_update_command
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@
end

describe "a development sub-dependency" do
subject(:dep) { dependencies.find { |d| d.name == "atomicwrites" } }
subject(:dep) { dependencies.find { |d| d.name == "click" } }

its(:subdependency_metadata) do
is_expected.to eq([{ production: false }])
Expand Down
19 changes: 10 additions & 9 deletions python/spec/fixtures/poetry_locks/caret_version.lock
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand.

[[package]]
category = "main"
description = "Python HTTP for Humans."
name = "requests"
version = "1.2.3"
description = "Python HTTP for Humans."
optional = false
platform = "UNKNOWN"
python-versions = "*"
version = "1.2.3"
groups = ["main"]
files = [
{file = "requests-1.2.3.tar.gz", hash = "sha256:156bf3ec27ba9ec7e0cf8fbe02808718099d218de403eb64a714d73ba1a29ab1"},
]

[metadata]
content-hash = "8289fd2c93ad6e51a8a4f52ac2211d4234480e062a998bc4db6dd28c9c78dbe2"
platform = "*"
lock-version = "2.1"
python-versions = "^3.7"

[metadata.hashes]
requests = ["156bf3ec27ba9ec7e0cf8fbe02808718099d218de403eb64a714d73ba1a29ab1"]
content-hash = "196edf6f696bed55fbe36dfc182a9fcd98e68ce770692cbb1dbbe4341f094c2b"
203 changes: 149 additions & 54 deletions python/spec/fixtures/poetry_locks/conflict_at_latest.lock
Original file line number Diff line number Diff line change
@@ -1,100 +1,195 @@
# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand.

[[package]]
category = "dev"
description = "Classes Without Boilerplate"
name = "attrs"
version = "24.2.0"
description = "Classes Without Boilerplate"
optional = false
platform = "*"
python-versions = "*"
version = "18.1.0"
python-versions = ">=3.7"
groups = ["dev"]
files = [
{file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"},
{file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"},
]

[package.dependencies]
importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}

[package.extras]
benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"]
cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"]
dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"]
docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"]
tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\""]

[[package]]
category = "main"
description = "Universal encoding detector for Python 2 and 3"
name = "chardet"
version = "3.0.0"
description = "Universal encoding detector for Python 2 and 3"
optional = false
platform = "*"
python-versions = "*"
version = "3.0.0"
groups = ["main"]
files = [
{file = "chardet-3.0.0-py2.py3-none-any.whl", hash = "sha256:bedd581d3daea4180b3cb555940dcbc89916e7922b070d2a9a37e660791e90a2"},
{file = "chardet-3.0.0.tar.gz", hash = "sha256:171dfc754d56c16b82cf77ac3eee1d42db9bc2f26c2c61c6573426d2a108d9e3"},
]

[[package]]
category = "dev"
description = "Cross-platform colored terminal text."
name = "colorama"
version = "0.4.6"
description = "Cross-platform colored terminal text."
optional = false
platform = "UNKNOWN"
python-versions = "*"
version = "0.3.9"
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
groups = ["dev"]
markers = "sys_platform == \"win32\""
files = [
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
]

[package.requirements]
platform = "win32"
[[package]]
name = "importlib-metadata"
version = "6.7.0"
description = "Read metadata from Python packages"
optional = false
python-versions = ">=3.7"
groups = ["dev"]
markers = "python_version < \"3.8\""
files = [
{file = "importlib_metadata-6.7.0-py3-none-any.whl", hash = "sha256:cb52082e659e97afc5dac71e79de97d8681de3aa07ff18578330904a9d18e5b5"},
{file = "importlib_metadata-6.7.0.tar.gz", hash = "sha256:1aaf550d4f73e5d6783e7acb77aec43d49da8017410afae93822cc9cca98c4d4"},
]

[package.dependencies]
typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
zipp = ">=0.5"

[package.extras]
docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
perf = ["ipython"]
testing = ["flufl.flake8", "importlib-resources (>=1.3) ; python_version < \"3.9\"", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\"", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1) ; platform_python_implementation != \"PyPy\"", "pytest-perf (>=0.9.2)", "pytest-ruff"]

[[package]]
category = "dev"
description = "plugin and hook calling mechanisms for python"
name = "pluggy"
version = "0.6.0"
description = "plugin and hook calling mechanisms for python"
optional = false
platform = "unix"
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "0.6.0"
groups = ["dev"]
files = [
{file = "pluggy-0.6.0-py2-none-any.whl", hash = "sha256:d345c8fe681115900d6da8d048ba67c25df42973bda370783cd58826442dcd7c"},
{file = "pluggy-0.6.0-py3-none-any.whl", hash = "sha256:e160a7fcf25762bb60efc7e171d4497ff1d8d2d75a3d0df7a21b76821ecbf5c5"},
{file = "pluggy-0.6.0.tar.gz", hash = "sha256:7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff"},
]

[[package]]
category = "dev"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
name = "py"
version = "1.11.0"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
optional = false
platform = "unix"
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.5.4"
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
groups = ["dev"]
files = [
{file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"},
{file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"},
]

[[package]]
category = "dev"
description = "pytest: simple powerful testing with Python"
name = "pytest"
version = "3.4.0"
description = "pytest: simple powerful testing with Python"
optional = false
platform = "*"
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "3.4.0"
groups = ["dev"]
files = [
{file = "pytest-3.4.0-py2.py3-none-any.whl", hash = "sha256:95fa025cd6deb5d937e04e368a00552332b58cae23f63b76c8c540ff1733ab6d"},
{file = "pytest-3.4.0.tar.gz", hash = "sha256:6074ea3b9c999bd6d0df5fa9d12dd95ccd23550df2a582f5f5b848331d2e82ca"},
]

[package.dependencies]
attrs = ">=17.2.0"
colorama = {version = "*", markers = "sys_platform == \"win32\""}
pluggy = ">=0.5,<0.7"
py = ">=1.5.0"
setuptools = "*"
six = ">=1.10.0"

[package.dependencies.colorama]
platform = "win32"
version = "*"

[[package]]
category = "main"
description = "Python HTTP for Humans."
name = "requests"
version = "2.6.0"
description = "Python HTTP for Humans."
optional = false
platform = "UNKNOWN"
python-versions = "*"
version = "2.6.0"
groups = ["main"]
files = [
{file = "requests-2.6.0-py2.py3-none-any.whl", hash = "sha256:fdb9af60d47ca57a80df0a213336019a34ff6192d8fff361c349f2c8398fe460"},
{file = "requests-2.6.0.tar.gz", hash = "sha256:1cdbed1f0e236f35ef54e919982c7a338e4fea3786310933d3a7887a04b74d75"},
]

[package.extras]
security = ["ndg-httpsclient", "pyOpenSSL", "pyasn1"]

[[package]]
name = "setuptools"
version = "68.0.0"
description = "Easily download, build, install, upgrade, and uninstall Python packages"
optional = false
python-versions = ">=3.7"
groups = ["dev"]
files = [
{file = "setuptools-68.0.0-py3-none-any.whl", hash = "sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f"},
{file = "setuptools-68.0.0.tar.gz", hash = "sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235"},
]

[package.extras]
docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"]
testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\"", "pytest-checkdocs (>=2.4)", "pytest-cov ; platform_python_implementation != \"PyPy\"", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1) ; platform_python_implementation != \"PyPy\"", "pytest-perf", "pytest-ruff ; sys_platform != \"cygwin\"", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"]

[[package]]
category = "dev"
description = "Python 2 and 3 compatibility utilities"
name = "six"
version = "1.17.0"
description = "Python 2 and 3 compatibility utilities"
optional = false
platform = "*"
python-versions = "*"
version = "1.11.0"
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
groups = ["dev"]
files = [
{file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"},
{file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"},
]

[[package]]
name = "typing-extensions"
version = "4.7.1"
description = "Backported and Experimental Type Hints for Python 3.7+"
optional = false
python-versions = ">=3.7"
groups = ["dev"]
markers = "python_version < \"3.8\""
files = [
{file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"},
{file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"},
]

[[package]]
name = "zipp"
version = "3.15.0"
description = "Backport of pathlib-compatible object wrapper for zip files"
optional = false
python-versions = ">=3.7"
groups = ["dev"]
markers = "python_version < \"3.8\""
files = [
{file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"},
{file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"},
]

[package.extras]
docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\"", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8 ; python_version < \"3.12\"", "pytest-mypy (>=0.9.1) ; platform_python_implementation != \"PyPy\""]

[metadata]
content-hash = "eae25082e355381411c3f71fde8ff26a0d09429d27f4ad6272faea571a2311b5"
platform = "*"
lock-version = "2.1"
python-versions = "^3.7"

[metadata.hashes]
attrs = ["4b90b09eeeb9b88c35bc642cbac057e45a5fd85367b985bd2809c62b7b939265", "e0d0eb91441a3b53dab4d9b743eafc1ac44476296a2053b6ca3af0b139faf87b"]
chardet = ["171dfc754d56c16b82cf77ac3eee1d42db9bc2f26c2c61c6573426d2a108d9e3", "bedd581d3daea4180b3cb555940dcbc89916e7922b070d2a9a37e660791e90a2"]
colorama = ["463f8483208e921368c9f306094eb6f725c6ca42b0f97e313cb5d5512459feda", "48eb22f4f8461b1df5734a074b57042430fb06e1d61bd1e11b078c0fe6d7a1f1"]
pluggy = ["7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff", "d345c8fe681115900d6da8d048ba67c25df42973bda370783cd58826442dcd7c", "e160a7fcf25762bb60efc7e171d4497ff1d8d2d75a3d0df7a21b76821ecbf5c5"]
py = ["3fd59af7435864e1a243790d322d763925431213b6b8529c6ca71081ace3bbf7", "e31fb2767eb657cbde86c454f02e99cb846d3cd9d61b318525140214fdc0e98e"]
pytest = ["6074ea3b9c999bd6d0df5fa9d12dd95ccd23550df2a582f5f5b848331d2e82ca", "95fa025cd6deb5d937e04e368a00552332b58cae23f63b76c8c540ff1733ab6d"]
requests = ["1cdbed1f0e236f35ef54e919982c7a338e4fea3786310933d3a7887a04b74d75", "fdb9af60d47ca57a80df0a213336019a34ff6192d8fff361c349f2c8398fe460"]
six = ["70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9", "832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"]
content-hash = "e6abaf1e98ba633bad9f35d933f115f2701b914b0ea8d02e92b71a492e0f6ea3"
Loading
Loading