Skip to content

Commit daae935

Browse files
committed
Merge branch 'master' into 3905_Pip_version_check_cache_dir
2 parents 56418c0 + 6020855 commit daae935

File tree

13 files changed

+68
-40
lines changed

13 files changed

+68
-40
lines changed

.github/ISSUE_TEMPLATE.md

-10
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,3 @@
11
* Pip version:
22
* Python version:
33
* Operating system:
4-
5-
### Description:
6-
7-
// REPLACE ME: What are you trying to get done, what has happened, what went wrong, and what did you expect?
8-
9-
### What I've run:
10-
11-
```
12-
// REPLACE ME: Paste a log of command(s) you ran and pip's output, tracebacks, etc, here
13-
```

.github/ISSUE_TEMPLATE/bug-report.md

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
5+
---
6+
7+
**Environment**
8+
9+
* pip version:
10+
* Python version:
11+
* OS:
12+
13+
<!-- Feel free to add more information about your environment here -->
14+
15+
**Description**
16+
<!-- A clear and concise description of what the bug is. -->
17+
18+
**Expected behavior**
19+
<!-- A clear and concise description of what you expected to happen. -->
20+
21+
**How to Reproduce**
22+
<!-- Describe the steps to reproduce this bug. -->
23+
24+
1. Get package from '...'
25+
2. Then run '...'
26+
3. An error occurs.
27+
28+
**Output**
29+
30+
```
31+
Paste the output of the steps above, including the commands themselves and
32+
pip's output/traceback etc.
33+
```
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
5+
---
6+
7+
**What's the problem this feature will solve?**
8+
<!-- A clear and concise description of what the problem is. -->
9+
10+
**Describe the solution you'd like**
11+
<!-- A clear and concise description of what you want to happen. -->
12+
13+
**Alternative Solutions**
14+
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
15+
16+
**Additional context**
17+
<!-- Add any other context, links, etc. about the feature here. -->

appveyor.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
environment:
22
matrix:
3-
# Unit and integration tests.
3+
# Unit and integration tests.
44
- PYTHON: "C:\\Python27"
55
RUN_INTEGRATION_TESTS: "True"
66
- PYTHON: "C:\\Python36-x64"
77
RUN_INTEGRATION_TESTS: "True"
88
# Unit tests only.
99
- PYTHON: "C:\\Python27-x64"
10-
- PYTHON: "C:\\Python33"
11-
- PYTHON: "C:\\Python33-x64"
1210
- PYTHON: "C:\\Python34"
1311
- PYTHON: "C:\\Python34-x64"
1412
- PYTHON: "C:\\Python35"

docs/installing.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ On Windows [4]_::
102102
Python and OS Compatibility
103103
---------------------------
104104

105-
pip works with CPython versions 2.7, 3.3, 3.4, 3.5, 3.6 and also pypy.
105+
pip works with CPython versions 2.7, 3.4, 3.5, 3.6 and also pypy.
106106

107107
This means pip works on the latest patch version of each of these minor
108108
versions. Previous patch versions are supported on a best effort approach.

news/3796.removal

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Dropped support for Python 3.3.

news/5366.bugfix

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Check for file existence and unlink first when clobbering existing files during a wheel install.

setup.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ def find_version(*file_paths):
5151
"Programming Language :: Python :: 2",
5252
"Programming Language :: Python :: 2.7",
5353
"Programming Language :: Python :: 3",
54-
"Programming Language :: Python :: 3.3",
5554
"Programming Language :: Python :: 3.4",
5655
"Programming Language :: Python :: 3.5",
5756
"Programming Language :: Python :: 3.6",
@@ -83,7 +82,7 @@ def find_version(*file_paths):
8382
},
8483
tests_require=tests_require,
8584
zip_safe=False,
86-
python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*',
85+
python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*',
8786
extras_require={
8887
'testing': tests_require,
8988
},

src/pip/_internal/basecommand.py

-9
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import optparse
77
import os
88
import sys
9-
import warnings
109

1110
from pip._internal import cmdoptions
1211
from pip._internal.baseparser import (
@@ -26,7 +25,6 @@
2625
ERROR, PREVIOUS_BUILD_DIR_ERROR, SUCCESS, UNKNOWN_ERROR,
2726
VIRTUALENV_NOT_FOUND,
2827
)
29-
from pip._internal.utils import deprecation
3028
from pip._internal.utils.logging import IndentingFormatter
3129
from pip._internal.utils.misc import get_prog, normalize_path
3230
from pip._internal.utils.outdated import pip_version_check
@@ -198,13 +196,6 @@ def main(self, args):
198196
},
199197
})
200198

201-
if sys.version_info[:2] == (3, 3):
202-
warnings.warn(
203-
"Python 3.3 support has been deprecated and will be dropped "
204-
"in the future. Please upgrade your Python.",
205-
deprecation.RemovedInPip11Warning,
206-
)
207-
208199
# TODO: try to get these passing down from the command?
209200
# without resorting to os.environ to hold these.
210201

src/pip/_internal/wheel.py

+11
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,17 @@ def clobber(source, dest, is_base, fixer=None, filter=None):
285285
# uninstalled.
286286
ensure_dir(destdir)
287287

288+
# copyfile (called below) truncates the destination if it
289+
# exists and then writes the new contents. This is fine in most
290+
# cases, but can cause a segfault if pip has loaded a shared
291+
# object (e.g. from pyopenssl through its vendored urllib3)
292+
# Since the shared object is mmap'd an attempt to call a
293+
# symbol in it will then cause a segfault. Unlinking the file
294+
# allows writing of new contents while allowing the process to
295+
# continue to use the old copy.
296+
if os.path.exists(destfile):
297+
os.unlink(destfile)
298+
288299
# We use copyfile (not move, copy, or copy2) to be extra sure
289300
# that we are not moving directories over (copyfile fails for
290301
# directories) as well as to ensure that we are not copying

tests/functional/test_install.py

+1-11
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,11 @@ def test_pep518_uses_build_env(script, data, original_setuptools):
3232
raise ValueError(original_setuptools)
3333
to_install = data.src.join("pep518-3.0")
3434
for command in ('install', 'wheel'):
35-
kwargs = {}
36-
if sys.version_info[:2] == (3, 3):
37-
# Ignore Python 3.3 deprecation warning...
38-
kwargs['expect_stderr'] = True
3935
script.run(
4036
"python", "-c",
4137
"import pip._internal; pip._internal.main(["
4238
"%r, " "'-f', %r, " "%r, "
4339
"])" % (command, str(data.packages), str(to_install)),
44-
**kwargs
4540
)
4641

4742

@@ -55,16 +50,11 @@ def test_pep518_with_user_pip(script, virtualenv, pip_src, data):
5550
fp.write('raise ImportError\n')
5651
to_install = data.src.join("pep518-3.0")
5752
for command in ('install', 'wheel'):
58-
kwargs = {}
59-
if sys.version_info[:2] == (3, 3):
60-
# Ignore Python 3.3 deprecation warning...
61-
kwargs['expect_stderr'] = True
6253
script.run(
6354
"python", "-c",
6455
"import pip._internal; pip._internal.main(["
6556
"%r, " "'-f', %r, " "%r, "
6657
"])" % (command, str(data.packages), str(to_install)),
67-
**kwargs
6858
)
6959

7060

@@ -76,7 +66,7 @@ def test_pip_second_command_line_interface_works(script, data):
7666
# On old versions of Python, urllib3/requests will raise a warning about
7767
# the lack of an SSLContext.
7868
kwargs = {}
79-
if pyversion_tuple < (2, 7, 9) or pyversion_tuple[:2] == (3, 3):
69+
if pyversion_tuple < (2, 7, 9):
8070
kwargs['expect_stderr'] = True
8171

8272
args = ['pip%s' % pyversion]

tests/lib/__init__.py

-3
Original file line numberDiff line numberDiff line change
@@ -372,9 +372,6 @@ def pip(self, *args, **kwargs):
372372
if (pyversion_tuple < (2, 7, 9) and
373373
args and args[0] in ('search', 'install', 'download')):
374374
kwargs['expect_stderr'] = True
375-
# Python 3.3 is deprecated and we emit a warning on it.
376-
if pyversion_tuple[:2] == (3, 3):
377-
kwargs['expect_stderr'] = True
378375
if kwargs.pop('use_module', False):
379376
exe = 'python'
380377
args = ('-m', 'pip') + args

tox.ini

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[tox]
22
envlist =
33
docs, packaging, lint-py2, lint-py3, mypy,
4-
py27, py33, py34, py35, py36, py37, pypy
4+
py27, py34, py35, py36, py37, pypy
55

66
[testenv]
77
passenv = CI GIT_SSL_CAINFO

0 commit comments

Comments
 (0)