1
1
Fork 0
mirror of https://github.com/pypa/pip synced 2023-12-13 21:30:23 +01:00

Add 3.11 to CI (#11550)

This commit is contained in:
Tzu-ping Chung 2022-10-29 00:37:04 +08:00 committed by GitHub
parent 8f34d86a1e
commit d6e333fb63
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 50 additions and 102 deletions

View file

@ -26,8 +26,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- run: pip install nox
- run: nox -s docs
@ -60,8 +62,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: Set up git credentials
run: |
git config --global user.email "pypa-dev@googlegroups.com"
@ -82,8 +86,10 @@ jobs:
github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.x"
- run: pip install nox
- run: nox -s vendoring
@ -103,14 +109,15 @@ jobs:
matrix:
os: [Ubuntu, MacOS]
python:
- 3.7
- 3.8
- 3.9
- "3.7"
- "3.8"
- "3.9"
- "3.10"
- "3.11"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
@ -151,16 +158,17 @@ jobs:
matrix:
os: [Windows]
python:
- 3.7
- "3.7"
# Commented out, since Windows tests are expensively slow.
# - 3.8
# - 3.9
- "3.10"
# - "3.8"
# - "3.9"
# - "3.10"
- "3.11"
group: [1, 2]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
@ -221,8 +229,8 @@ jobs:
github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.10"
@ -240,41 +248,6 @@ jobs:
--durations=5
--use-zipapp
# TODO: Remove this when we add Python 3.11 to CI.
tests-importlib-metadata:
name: tests for importlib.metadata backend
runs-on: ubuntu-latest
env:
_PIP_USE_IMPORTLIB_METADATA: 'true'
needs: [packaging, determine-changes]
if: >-
needs.determine-changes.outputs.tests == 'true' ||
github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.10'
- name: Install Ubuntu dependencies
run: sudo apt-get install bzr
- run: pip install nox
- name: Run unit tests
run: >-
nox -s test-3.10 --
-m unit
--verbose --numprocesses auto --showlocals
- name: Run integration tests
run: >-
nox -s test-3.10 --
-m integration
--verbose --numprocesses auto --showlocals
--durations=5
check: # This job does nothing and is only used for the branch protection
if: always()
@ -285,7 +258,6 @@ jobs:
- tests-unix
- tests-windows
- tests-zipapp
- tests-importlib-metadata
- vendoring
runs-on: ubuntu-latest

View file

@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
# `towncrier check` runs `git diff --name-only origin/main...`, which
# needs a non-shallow clone.

View file

@ -66,7 +66,7 @@ def should_update_common_wheels() -> bool:
# -----------------------------------------------------------------------------
# Development Commands
# -----------------------------------------------------------------------------
@nox.session(python=["3.7", "3.8", "3.9", "3.10", "pypy3"])
@nox.session(python=["3.7", "3.8", "3.9", "3.10", "3.11", "pypy3"])
def test(session: nox.Session) -> None:
# Get the common wheels.
if should_update_common_wheels():

View file

@ -287,7 +287,6 @@ class Tests_UserSite:
assert isdir(dist_info_folder)
assert isdir(initools_folder)
@pytest.mark.network
def test_install_user_in_global_virtualenv_with_conflict_fails(
self, script: PipTestEnvironment
) -> None:
@ -295,27 +294,37 @@ class Tests_UserSite:
Test user install in --system-site-packages virtualenv with conflict in
site fails.
"""
create_basic_wheel_for_package(script, "pkg", "0.1")
create_basic_wheel_for_package(script, "pkg", "0.2")
script.pip("install", "INITools==0.2")
script.pip(
"install",
"--no-cache-dir",
"--no-index",
"--find-links",
script.scratch_path,
"pkg==0.2",
)
result2 = script.pip(
"install",
"--no-cache-dir",
"--no-index",
"--find-links",
script.scratch_path,
"--user",
"INITools==0.1",
"pkg==0.1",
expect_error=True,
)
resultp = script.run(
"python",
"-c",
"import pkg_resources; print(pkg_resources.get_distribution"
"('initools').location)",
"from pip._internal.metadata import get_default_environment; "
"print(get_default_environment().get_distribution('pkg').location)",
)
dist_location = resultp.stdout.strip()
assert (
"Will not install to the user site because it will lack sys.path "
"precedence to {name} in {location}".format(
name="INITools",
location=dist_location,
)
in result2.stderr
)
f"Will not install to the user site because it will lack sys.path "
f"precedence to pkg in {dist_location}"
) in result2.stderr

View file

@ -91,39 +91,6 @@ def test_new_resolver_install_user_conflict_in_user_site(
result.did_not_create(base_2_dist_info)
@pytest.mark.usefixtures("enable_user_site")
def test_new_resolver_install_user_in_virtualenv_with_conflict_fails(
script: PipTestEnvironment,
) -> None:
create_basic_wheel_for_package(script, "base", "1.0.0")
create_basic_wheel_for_package(script, "base", "2.0.0")
script.pip(
"install",
"--no-cache-dir",
"--no-index",
"--find-links",
script.scratch_path,
"base==2.0.0",
)
result = script.pip(
"install",
"--no-cache-dir",
"--no-index",
"--find-links",
script.scratch_path,
"--user",
"base==1.0.0",
expect_error=True,
)
error_message = (
"Will not install to the user site because it will lack sys.path "
"precedence to base in {}"
).format(os.path.normcase(script.site_packages_path))
assert error_message in result.stderr
@pytest.fixture()
def patch_dist_in_site_packages(virtualenv: VirtualEnvironment) -> None:
# Since the tests are run from a virtualenv, and to avoid the "Will not