diff --git a/.github/workflows/third_party.yml b/.github/workflows/third_party.yml index 4e2e895f..b1a2ae42 100644 --- a/.github/workflows/third_party.yml +++ b/.github/workflows/third_party.yml @@ -50,13 +50,10 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 60 steps: - - name: Setup Python - uses: actions/setup-python@v5 + - name: Install the latest version of uv + uses: astral-sh/setup-uv@7edac99f961f18b581bbd960d59d049f04c0002f # v6.4.1 with: python-version: ${{ matrix.python-version }} - allow-prereleases: true - - name: Install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - name: Checkout pydantic run: git clone --depth=1 https://github.com/pydantic/pydantic.git || git clone --depth=1 https://github.com/pydantic/pydantic.git - name: Checkout typing_extensions @@ -83,12 +80,10 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 60 steps: - - name: Setup Python - uses: actions/setup-python@v5 + - name: Install the latest version of uv + uses: astral-sh/setup-uv@7edac99f961f18b581bbd960d59d049f04c0002f # v6.4.1 with: python-version: ${{ matrix.python-version }} - - name: Install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - name: Checkout typing_inspect run: git clone --depth=1 https://github.com/ilevkivskyi/typing_inspect.git || git clone --depth=1 https://github.com/ilevkivskyi/typing_inspect.git - name: Checkout typing_extensions @@ -100,15 +95,15 @@ jobs: run: | set -x cd typing_inspect - uv pip install --system -r test-requirements.txt --exclude-newer "$(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)" + uv venv .venv + uv pip install -r test-requirements.txt --exclude-newer "$(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)" - name: Install typing_extensions latest - run: uv pip install --system "typing-extensions @ ./typing-extensions-latest" + run: cd typing_inspect; uv pip install "typing-extensions @ ../typing-extensions-latest" - name: List all installed dependencies - run: uv pip freeze + run: cd typing_inspect; uv pip freeze - name: Run typing_inspect tests run: | - cd typing_inspect - pytest + cd typing_inspect; uv run --no-project pytest pycroscope: name: pycroscope tests @@ -120,13 +115,10 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 60 steps: - - name: Setup Python - uses: actions/setup-python@v5 + - name: Install the latest version of uv + uses: astral-sh/setup-uv@7edac99f961f18b581bbd960d59d049f04c0002f # v6.4.1 with: python-version: ${{ matrix.python-version }} - allow-prereleases: true - - name: Install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - name: Check out pycroscope run: git clone --depth=1 https://github.com/JelleZijlstra/pycroscope.git || git clone --depth=1 https://github.com/JelleZijlstra/pycroscope.git - name: Checkout typing_extensions @@ -138,15 +130,15 @@ jobs: run: | set -x cd pycroscope - uv pip install --system 'pycroscope[tests] @ .' --exclude-newer "$(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)" + uv venv .venv + uv pip install 'pycroscope[tests] @ .' --exclude-newer "$(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)" - name: Install typing_extensions latest - run: uv pip install --system "typing-extensions @ ./typing-extensions-latest" + run: cd pycroscope; uv pip install "typing-extensions @ ../typing-extensions-latest" - name: List all installed dependencies - run: uv pip freeze + run: cd pycroscope; uv pip freeze - name: Run pycroscope tests run: | - cd pycroscope - pytest pycroscope/ + cd pycroscope; uv run --no-project pytest pycroscope/ typeguard: name: typeguard tests @@ -158,13 +150,10 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 60 steps: - - name: Setup Python - uses: actions/setup-python@v5 + - name: Install the latest version of uv + uses: astral-sh/setup-uv@7edac99f961f18b581bbd960d59d049f04c0002f # v6.4.1 with: python-version: ${{ matrix.python-version }} - allow-prereleases: true - - name: Install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - name: Check out typeguard run: git clone --depth=1 https://github.com/agronholm/typeguard.git || git clone --depth=1 https://github.com/agronholm/typeguard.git - name: Checkout typing_extensions @@ -176,16 +165,16 @@ jobs: run: | set -x cd typeguard - uv pip install --system "typeguard @ ." --group test --exclude-newer "$(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)" + uv venv .venv + uv pip install "typeguard @ ." --group test --exclude-newer "$(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)" - name: Install typing_extensions latest - run: uv pip install --system "typing-extensions @ ./typing-extensions-latest" + run: cd typeguard; uv pip install "typing-extensions @ ../typing-extensions-latest" - name: List all installed dependencies - run: uv pip freeze + run: cd typeguard; uv pip freeze - name: Run typeguard tests run: | - cd typeguard export PYTHON_COLORS=0 # A test fails if tracebacks are colorized - pytest + cd typeguard; uv run --no-project pytest typed-argument-parser: name: typed-argument-parser tests @@ -197,12 +186,10 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 60 steps: - - name: Setup Python - uses: actions/setup-python@v5 + - name: Install the latest version of uv + uses: astral-sh/setup-uv@7edac99f961f18b581bbd960d59d049f04c0002f # v6.4.1 with: python-version: ${{ matrix.python-version }} - - name: Install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - name: Check out typed-argument-parser run: git clone --depth=1 https://github.com/swansonk14/typed-argument-parser.git || git clone --depth=1 https://github.com/swansonk14/typed-argument-parser.git - name: Checkout typing_extensions @@ -220,16 +207,16 @@ jobs: run: | set -x cd typed-argument-parser - uv pip install --system "typed-argument-parser @ ." --exclude-newer "$(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)" - uv pip install --system pytest --exclude-newer "$(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)" + uv venv .venv + uv pip install "typed-argument-parser @ ." --exclude-newer "$(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)" + uv pip install pytest --exclude-newer "$(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)" - name: Install typing_extensions latest - run: uv pip install --system "typing-extensions @ ./typing-extensions-latest" + run: cd typed-argument-parser; uv pip install "typing-extensions @ ../typing-extensions-latest" - name: List all installed dependencies - run: uv pip freeze + run: cd typed-argument-parser; uv pip freeze - name: Run typed-argument-parser tests run: | - cd typed-argument-parser - pytest + cd typed-argument-parser; uv run --no-project pytest mypy: name: stubtest & mypyc tests @@ -241,13 +228,10 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 60 steps: - - name: Setup Python - uses: actions/setup-python@v5 + - name: Install the latest version of uv + uses: astral-sh/setup-uv@7edac99f961f18b581bbd960d59d049f04c0002f # v6.4.1 with: python-version: ${{ matrix.python-version }} - allow-prereleases: true - - name: Install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - name: Checkout mypy for stubtest and mypyc tests run: git clone --depth=1 https://github.com/python/mypy.git || git clone --depth=1 https://github.com/python/mypy.git - name: Checkout typing_extensions @@ -259,16 +243,16 @@ jobs: run: | set -x cd mypy - uv pip install --system -r test-requirements.txt --exclude-newer "$(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)" - uv pip install --system -e . + uv venv .venv + uv pip install -r test-requirements.txt --exclude-newer "$(git show -s --date=format:'%Y-%m-%dT%H:%M:%SZ' --format=%cd HEAD)" + uv pip install -e . - name: Install typing_extensions latest - run: uv pip install --system "typing-extensions @ ./typing-extensions-latest" + run: cd mypy; uv pip install "typing-extensions @ ../typing-extensions-latest" - name: List all installed dependencies - run: uv pip freeze + run: cd mypy; uv pip freeze - name: Run stubtest & mypyc tests run: | - cd mypy - pytest -n 2 ./mypy/test/teststubtest.py ./mypyc/test/test_run.py ./mypyc/test/test_external.py + cd mypy; uv run --no-project pytest -n 2 ./mypy/test/teststubtest.py ./mypyc/test/test_run.py ./mypyc/test/test_external.py cattrs: name: cattrs tests @@ -280,8 +264,8 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 60 steps: - - name: Setup Python - uses: actions/setup-python@v5 + - name: Install the latest version of uv + uses: astral-sh/setup-uv@7edac99f961f18b581bbd960d59d049f04c0002f # v6.4.1 with: python-version: ${{ matrix.python-version }} - name: Checkout cattrs @@ -291,19 +275,14 @@ jobs: with: path: typing-extensions-latest persist-credentials: false - - name: Install pdm for cattrs - run: pip install pdm - - name: Add latest typing-extensions as a dependency - run: | - cd cattrs - pdm remove typing-extensions - pdm add --dev ../typing-extensions-latest - - name: Install cattrs test dependencies - run: cd cattrs; pdm install --dev -G :all - - name: List all installed dependencies - run: cd cattrs; pdm list -vv - - name: Run cattrs tests - run: cd cattrs; pdm run pytest tests + - name: Add local version of typing_extensions as a dependency + run: cd cattrs; uv add --editable ../typing-extensions-latest + - name: Install test dependencies + run: cd cattrs; uv sync --group test --all-extras + - name: List installed dependencies + run: cd cattrs; uv pip list + - name: Run tests + run: cd cattrs; uv run pytest tests sqlalchemy: name: sqlalchemy tests @@ -320,13 +299,10 @@ jobs: runs-on: ubuntu-22.04 timeout-minutes: 60 steps: - - name: Setup Python - uses: actions/setup-python@v5 + - name: Install the latest version of uv + uses: astral-sh/setup-uv@7edac99f961f18b581bbd960d59d049f04c0002f # v6.4.1 with: python-version: ${{ matrix.python-version }} - allow-prereleases: true - - name: Install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - name: Checkout sqlalchemy run: git clone -b ${{ matrix.checkout-ref }} --depth=1 https://github.com/sqlalchemy/sqlalchemy.git || git clone -b ${{ matrix.checkout-ref }} --depth=1 https://github.com/sqlalchemy/sqlalchemy.git - name: Checkout typing_extensions @@ -334,18 +310,10 @@ jobs: with: path: typing-extensions-latest persist-credentials: false - - name: Install sqlalchemy test dependencies - run: uv pip install --system tox setuptools - - name: List installed dependencies - # Note: tox installs SQLAlchemy and its dependencies in a different isolated - # environment before running the tests. To see the dependencies installed - # in the test environment, look for the line 'freeze> python -m pip freeze --all' - # in the output of the test step below. - run: uv pip list - name: Run sqlalchemy tests run: | cd sqlalchemy - tox -e github-nocext \ + uvx --with setuptools tox -e github-nocext \ --force-dep "typing-extensions @ file://$(pwd)/../typing-extensions-latest" \ -- -q --nomemory --notimingintensive @@ -360,8 +328,8 @@ jobs: matrix: python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" ] steps: - - name: Setup Python - uses: actions/setup-python@v5 + - name: Install the latest version of uv + uses: astral-sh/setup-uv@7edac99f961f18b581bbd960d59d049f04c0002f # v6.4.1 with: python-version: ${{ matrix.python-version }} - name: Checkout litestar @@ -371,8 +339,6 @@ jobs: with: path: typing-extensions-latest persist-credentials: false - - name: Install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - name: Run litestar tests run: uv run --with=../typing-extensions-latest -- python -m pytest tests/unit/test_typing.py tests/unit/test_dto working-directory: litestar