Drop Python 2.6 and 3.3 support (#133)
* Don't test on EOL Python 2.6 * Remove unnecessary positional formatters for Python 2.7+ * Remove branch restriction to test feature branches * Leave PyPy compatibility at 2.6+ * Don't test on EOL Python 3.3 * Don't test feature branches
This commit is contained in:
parent
c3490542ae
commit
1a4de7ad56
@ -1,22 +1,21 @@
|
||||
def configs = [
|
||||
[
|
||||
label: 'windows',
|
||||
versions: ['py26', 'py27', 'py34', 'py35', 'py36'],
|
||||
versions: ['py27', 'py34', 'py35', 'py36'],
|
||||
],
|
||||
[
|
||||
label: 'windows64',
|
||||
versions: ['py26', 'py27', 'py34', 'py35', 'py36'],
|
||||
versions: ['py27', 'py34', 'py35', 'py36'],
|
||||
],
|
||||
[
|
||||
label: 'sierra',
|
||||
versions: ['py26', 'py27', 'py34', 'py35', 'py36'],
|
||||
versions: ['py27', 'py34', 'py35', 'py36'],
|
||||
],
|
||||
[
|
||||
label: 'docker',
|
||||
imageName: 'quay.io/pypa/manylinux1_x86_64',
|
||||
versions: [
|
||||
'cp26-cp26m', 'cp26-cp26mu',
|
||||
'cp27-cp27m', 'cp27-cp27mu', 'cp33-cp33m',
|
||||
'cp27-cp27m', 'cp27-cp27mu',
|
||||
'cp34-cp34m', 'cp35-cp35m', 'cp36-cp36m'
|
||||
],
|
||||
],
|
||||
@ -24,8 +23,7 @@ def configs = [
|
||||
label: 'docker',
|
||||
imageName: 'quay.io/pypa/manylinux1_i686',
|
||||
versions: [
|
||||
'cp26-cp26m', 'cp26-cp26mu',
|
||||
'cp27-cp27m', 'cp27-cp27mu', 'cp33-cp33m',
|
||||
'cp27-cp27m', 'cp27-cp27mu',
|
||||
'cp34-cp34m', 'cp35-cp35m', 'cp36-cp36m'
|
||||
],
|
||||
],
|
||||
@ -37,9 +35,7 @@ def build(version, label, imageName) {
|
||||
timeout(time: 30, unit: 'MINUTES') {
|
||||
if (label.contains("windows")) {
|
||||
def pythonPath = [
|
||||
py26: "C:\\Python26\\python.exe",
|
||||
py27: "C:\\Python27\\python.exe",
|
||||
py33: "C:\\Python33\\python.exe",
|
||||
py34: "C:\\Python34\\python.exe",
|
||||
py35: "C:\\Python35\\python.exe",
|
||||
py36: "C:\\Python36\\python.exe"
|
||||
@ -58,7 +54,6 @@ def build(version, label, imageName) {
|
||||
"""
|
||||
} else if (label.contains("sierra")) {
|
||||
def pythonPath = [
|
||||
py26: "/usr/bin/python2.6",
|
||||
py27: "/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7",
|
||||
py34: "/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4",
|
||||
py35: "/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5",
|
||||
|
||||
@ -4,12 +4,8 @@ sudo: false
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- python: 2.6
|
||||
env: TOXENV=py26 CC=gcc
|
||||
- python: 2.7
|
||||
env: TOXENV=py27 CC=gcc
|
||||
- python: 3.3
|
||||
env: TOXENV=py33 CC=gcc
|
||||
- python: 3.4
|
||||
env: TOXENV=py34 CC=gcc
|
||||
- python: 3.5
|
||||
@ -18,12 +14,8 @@ matrix:
|
||||
env: TOXENV=py36 CC=gcc
|
||||
- python: pypy
|
||||
env: TOXENV=pypy CC=gcc
|
||||
- python: 2.6
|
||||
env: TOXENV=py26 CC=clang
|
||||
- python: 2.7
|
||||
env: TOXENV=py27 CC=clang
|
||||
- python: 3.3
|
||||
env: TOXENV=py33 CC=clang
|
||||
- python: 3.4
|
||||
env: TOXENV=py34 CC=clang
|
||||
- python: 3.5
|
||||
|
||||
4
Jenkinsfile
vendored
4
Jenkinsfile
vendored
@ -1,11 +1,11 @@
|
||||
def configs = [
|
||||
[
|
||||
label: 'windows',
|
||||
toxenvs: ['py26', 'py27', 'py33', 'py34', 'py35', 'py36'],
|
||||
toxenvs: ['py27', 'py34', 'py35', 'py36'],
|
||||
],
|
||||
[
|
||||
label: 'windows64',
|
||||
toxenvs: ['py26', 'py27', 'py33', 'py34', 'py35', 'py36'],
|
||||
toxenvs: ['py27', 'py34', 'py35', 'py36'],
|
||||
],
|
||||
[
|
||||
label: 'freebsd11',
|
||||
|
||||
@ -163,7 +163,7 @@ Compatibility
|
||||
-------------
|
||||
|
||||
This library should be compatible with py-bcrypt and it will run on Python
|
||||
2.6+, 3.3+, and PyPy 2.6+.
|
||||
2.7, 3.4+, and PyPy 2.6+.
|
||||
|
||||
C Code
|
||||
------
|
||||
|
||||
2
setup.py
2
setup.py
@ -224,10 +224,8 @@ setup(
|
||||
"Programming Language :: Python :: Implementation :: CPython",
|
||||
"Programming Language :: Python :: Implementation :: PyPy",
|
||||
"Programming Language :: Python :: 2",
|
||||
"Programming Language :: Python :: 2.6",
|
||||
"Programming Language :: Python :: 2.7",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.3",
|
||||
"Programming Language :: Python :: 3.4",
|
||||
"Programming Language :: Python :: 3.5",
|
||||
"Programming Language :: Python :: 3.6",
|
||||
|
||||
18
tasks.py
18
tasks.py
@ -21,7 +21,7 @@ def wait_for_build_completed(session):
|
||||
time.sleep(20)
|
||||
while True:
|
||||
response = session.get(
|
||||
"{0}/lastBuild/api/json/".format(JENKINS_URL),
|
||||
"{}/lastBuild/api/json/".format(JENKINS_URL),
|
||||
headers={
|
||||
"Accept": "application/json",
|
||||
}
|
||||
@ -35,7 +35,7 @@ def wait_for_build_completed(session):
|
||||
|
||||
def download_artifacts(session):
|
||||
response = session.get(
|
||||
"{0}/lastBuild/api/json/".format(JENKINS_URL),
|
||||
"{}/lastBuild/api/json/".format(JENKINS_URL),
|
||||
headers={
|
||||
"Accept": "application/json"
|
||||
}
|
||||
@ -50,7 +50,7 @@ def download_artifacts(session):
|
||||
for run in response.json()["runs"]:
|
||||
if run["number"] != last_build_number:
|
||||
print(
|
||||
"Skipping {0} as it is not from the latest build ({1})".format(
|
||||
"Skipping {} as it is not from the latest build ({})".format(
|
||||
run["url"], last_build_number
|
||||
)
|
||||
)
|
||||
@ -65,11 +65,11 @@ def download_artifacts(session):
|
||||
response.raise_for_status()
|
||||
for artifact in response.json()["artifacts"]:
|
||||
response = session.get(
|
||||
"{0}artifact/{1}".format(run["url"], artifact["relativePath"]),
|
||||
"{}artifact/{}".format(run["url"], artifact["relativePath"]),
|
||||
stream=True
|
||||
)
|
||||
assert response.headers["content-length"]
|
||||
print("Downloading {0}".format(artifact["fileName"]))
|
||||
print("Downloading {}".format(artifact["fileName"]))
|
||||
bar = ProgressBar(
|
||||
expected_size=int(response.headers["content-length"]),
|
||||
filled_char="="
|
||||
@ -102,19 +102,19 @@ def release(version):
|
||||
invoke.run("python setup.py sdist")
|
||||
|
||||
invoke.run(
|
||||
"twine upload -s dist/bcrypt-{0}*".format(version)
|
||||
"twine upload -s dist/bcrypt-{}*".format(version)
|
||||
)
|
||||
|
||||
session = requests.Session()
|
||||
|
||||
token = getpass.getpass("Input the Jenkins token: ")
|
||||
response = session.post(
|
||||
"{0}/build?token={1}".format(JENKINS_URL, token),
|
||||
"{}/build?token={}".format(JENKINS_URL, token),
|
||||
params={
|
||||
"cause": "Building wheels for {0}".format(version)
|
||||
"cause": "Building wheels for {}".format(version)
|
||||
}
|
||||
)
|
||||
response.raise_for_status()
|
||||
wait_for_build_completed(session)
|
||||
paths = download_artifacts(session)
|
||||
invoke.run("twine upload {0}".format(" ".join(paths)))
|
||||
invoke.run("twine upload {}".format(" ".join(paths)))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user