Skip to content

Commit 820d3cc

Browse files
committed
Revert "Remove support for Python 3.5" - fix CI for now.
This reverts commit 45d1cd5. See #1201 which will hopefully help to get a proper fix soon.
1 parent 4d86d88 commit 820d3cc

File tree

7 files changed

+45
-9
lines changed

7 files changed

+45
-9
lines changed

.appveyor.yml

+27-2
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,29 @@ environment:
66
CYGWIN64_GIT_PATH: "C:\\cygwin64\\bin;%GIT_DAEMON_PATH%"
77

88
matrix:
9+
- PYTHON: "C:\\Python34-x64"
10+
PYTHON_VERSION: "3.4"
11+
GIT_PATH: "%GIT_DAEMON_PATH%"
12+
- PYTHON: "C:\\Python35-x64"
13+
PYTHON_VERSION: "3.5"
14+
GIT_PATH: "%GIT_DAEMON_PATH%"
915
- PYTHON: "C:\\Python36-x64"
1016
PYTHON_VERSION: "3.6"
1117
GIT_PATH: "%GIT_DAEMON_PATH%"
1218
- PYTHON: "C:\\Python37-x64"
1319
PYTHON_VERSION: "3.7"
1420
GIT_PATH: "%GIT_DAEMON_PATH%"
21+
- PYTHON: "C:\\Miniconda35-x64"
22+
PYTHON_VERSION: "3.5"
23+
IS_CONDA: "yes"
24+
MAYFAIL: "yes"
25+
GIT_PATH: "%GIT_DAEMON_PATH%"
26+
## Cygwin
27+
- PYTHON: "C:\\Python35-x64"
28+
PYTHON_VERSION: "3.5"
29+
IS_CYGWIN: "yes"
30+
MAYFAIL: "yes"
31+
GIT_PATH: "%CYGWIN64_GIT_PATH%"
1532

1633
matrix:
1734
allow_failures:
@@ -59,10 +76,18 @@ install:
5976
build: false
6077

6178
test_script:
62-
- nosetests -v
79+
- IF "%IS_CYGWIN%" == "yes" (
80+
nosetests -v
81+
) ELSE (
82+
IF "%PYTHON_VERSION%" == "3.5" (
83+
nosetests -v --with-coverage
84+
) ELSE (
85+
nosetests -v
86+
)
87+
)
6388

6489
on_success:
65-
- IF "%PYTHON_VERSION%" == "3.6" IF NOT "%IS_CYGWIN%" == "yes" (codecov)
90+
- IF "%PYTHON_VERSION%" == "3.5" IF NOT "%IS_CYGWIN%" == "yes" (codecov)
6691

6792
# Enable this to be able to login to the build worker. You can use the
6893
# `remmina` program in Ubuntu, use the login information that the line below

.github/workflows/pythonpackage.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ubuntu-latest
1616
strategy:
1717
matrix:
18-
python-version: [3.6, 3.7, 3.8, 3.9]
18+
python-version: [3.5, 3.6, 3.7, 3.8, 3.9]
1919

2020
steps:
2121
- uses: actions/checkout@v2
@@ -61,4 +61,4 @@ jobs:
6161
run: |
6262
set -x
6363
pip install -r doc/requirements.txt
64-
make -C doc html
64+
make -C doc html

.travis.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# UNUSED, only for reference. If adjustments are needed, please see github actions
22
language: python
33
python:
4+
- "3.4"
5+
- "3.5"
46
- "3.6"
57
- "3.7"
68
- "3.8"
@@ -36,7 +38,7 @@ script:
3638
- ulimit -n
3739
- coverage run --omit="test/*" -m unittest --buffer
3840
- coverage report
39-
- if [ "$TRAVIS_PYTHON_VERSION" == '3.6' ]; then cd doc && make html; fi
41+
- if [ "$TRAVIS_PYTHON_VERSION" == '3.5' ]; then cd doc && make html; fi
4042
- if [ "$TRAVIS_PYTHON_VERSION" == '3.6' ]; then flake8 --ignore=W293,E265,E266,W503,W504,E731; fi
4143
after_success:
4244
- codecov

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ If it is not in your `PATH`, you can help GitPython find it by setting
3434
the `GIT_PYTHON_GIT_EXECUTABLE=<path/to/git>` environment variable.
3535

3636
* Git (1.7.x or newer)
37-
* Python >= 3.6
37+
* Python >= 3.5
3838

3939
The list of dependencies are listed in `./requirements.txt` and `./test-requirements.txt`.
4040
The installer takes care of installing them for you.

doc/source/intro.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ The object database implementation is optimized for handling large quantities of
1313
Requirements
1414
============
1515

16-
* `Python`_ >= 3.6
16+
* `Python`_ >= 3.5
1717
* `Git`_ 1.7.0 or newer
1818
It should also work with older versions, but it may be that some operations
1919
involving remotes will not work as expected.

git/cmd.py

+9
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
import subprocess
1818
import sys
1919
import threading
20+
from collections import OrderedDict
2021
from textwrap import dedent
22+
import warnings
2123

2224
from git.compat import (
2325
defenc,
@@ -1003,6 +1005,13 @@ def transform_kwarg(self, name: str, value: Any, split_single_char_options: bool
10031005

10041006
def transform_kwargs(self, split_single_char_options: bool = True, **kwargs: Any) -> List[str]:
10051007
"""Transforms Python style kwargs into git command line options."""
1008+
# Python 3.6 preserves the order of kwargs and thus has a stable
1009+
# order. For older versions sort the kwargs by the key to get a stable
1010+
# order.
1011+
if sys.version_info[:2] < (3, 6):
1012+
kwargs = OrderedDict(sorted(kwargs.items(), key=lambda x: x[0]))
1013+
warnings.warn("Python 3.5 support is deprecated and will be removed 2021-09-05.\n" +
1014+
"It does not preserve the order for key-word arguments and enforce lexical sorting instead.")
10061015
args = []
10071016
for k, v in kwargs.items():
10081017
if isinstance(v, (list, tuple)):

setup.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def build_py_modules(basedir, excludes=[]):
9999
include_package_data=True,
100100
py_modules=build_py_modules("./git", excludes=["git.ext.*"]),
101101
package_dir={'git': 'git'},
102-
python_requires='>=3.6',
102+
python_requires='>=3.5',
103103
install_requires=requirements,
104104
tests_require=requirements + test_requirements,
105105
zip_safe=False,
@@ -127,6 +127,6 @@ def build_py_modules(basedir, excludes=[]):
127127
"Programming Language :: Python :: 3.6",
128128
"Programming Language :: Python :: 3.7",
129129
"Programming Language :: Python :: 3.8",
130-
"Programming Language :: Python :: 3.9"
130+
"Programming Language :: Python :: 3.9"
131131
]
132132
)

0 commit comments

Comments
 (0)