Skip to content

Commit

Permalink
Add 3.11 to CI (#11550)
Browse files Browse the repository at this point in the history
  • Loading branch information
uranusjr committed Oct 28, 2022
1 parent 8f34d86 commit d6e333f
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 102 deletions.
82 changes: 27 additions & 55 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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"
Expand All @@ -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
Expand All @@ -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 }}

Expand Down Expand Up @@ -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 }}

Expand Down Expand Up @@ -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"

Expand All @@ -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()

Expand All @@ -285,7 +258,6 @@ jobs:
- tests-unix
- tests-windows
- tests-zipapp
- tests-importlib-metadata
- vendoring

runs-on: ubuntu-latest
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/news-file.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -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():
Expand Down
33 changes: 21 additions & 12 deletions tests/functional/test_install_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -287,35 +287,44 @@ def test_install_user_conflict_in_globalsite_and_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:
"""
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
33 changes: 0 additions & 33 deletions tests/functional/test_new_resolver_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit d6e333f

Please sign in to comment.