gitpython-developers / gitdb

IO of git-style object databases
http://gitdb.readthedocs.org
Other
212 stars 65 forks source link

gitdb2 4.0.2 requires gitdb 4.0.1 for its installation #86

Closed andy-maier closed 1 year ago

andy-maier commented 1 year ago

The issue is that gitdb2 4.0.2 requires gitdb 4.0.1 for its installation. That is defined in the install_requires argument of its setup.py file (from the downloaded tarball of gitdb2 4.0.2 on Pypi):

from setuptools import setup

setup(
    name="gitdb2",
    version="4.0.2",
    author="Sebastian Thiel",
    author_email="byronimo@gmail.com",
    description="A mirror package for gitdb",
    long_description="This is a mirror package for `gitdb <https://pypi.org/project/gitdb/>`_. Consider installing it directly instead.",
    url="https://github.com/gitpython-developers/gitdb",
    install_requires=["gitdb>=4.0.1"],    # line with the problem
)

This causes the following failure when installing gitdb2 on Python 2.7:

ERROR: Could not find a version that satisfies the requirement gitdb>=4.0.1 (from gitdb2>=2.0.0->-r dev-requirements.txt (line 338)) (from versions: 0.5.0, 0.5.1, 0.5.2, 0.5.3, 0.5.4, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.6.4)

A second issue is that gitdb2 4.0.2 no longer defines its supported Python versions. Up to gitdb2 version 3.0.3, the supported Python versions were properly specified.

A circumvention for users is to exclude gitdb2==4.0.2 (hoping that a future version of gitdb2 will fix that).

Harmon758 commented 1 year ago

Please see the pinned issue, #59. As indicated by the descriptions, gitdb2 is now intentionally a mirror of gitdb, which probably should be installed directly instead. Requiring gitdb is the sole purpose of the mirror package, and deferring to gitdb for the supported Python versions is intentional, so that any updates to that in future versions of gitdb don't require additional gitdb2 releases.

andy-maier commented 1 year ago

The gitdb2 package 4.0.2 is still broken for Python 2.7, since it installs on Python 2.7 due to the missing python_requires, and the gitdb version 4.0.1 it requires does not support Python 2.7.

If you had just not released gitdb2 4.0.2, everything would have been fine with gitdb2. You could fix that by adding a python_requires>=3.4 to gitdb2

We are pinning gitdb2 to <4.0 to circumvent the issue.

Harmon758 commented 1 year ago

Again, it is not broken. It is working as intended, which is as a mirror package that installs gitdb.

andy-maier commented 1 year ago

It is broken for Python 2.7 users. If you don't believe that, try it yourself.

Harmon758 commented 1 year ago

gitdb2 3.0.0 dropped support for Python 2.7 when it reached EOL over three years ago. gitdb2 4.0.2 itself was also released over three years ago, so I'm not sure why you're encountering this now, but Python 2.7 support is not something that will be reintroduced.

You really shouldn't be using Python 2.7 anymore, but if you need to, pinning gitdb2 to <3 is the way to do so, as it was when gitdb2 3.0.0 was released.

If you had just not released gitdb2 4.0.2, everything would have been fine with gitdb2.

Again, please refer to the pinned issue, #59. If gitdb2 had not been changed to a mirror package, it would be a dead package with no new releases to match gitdb. This was done as a major version release though, so a breaking change should definitely not be unexpected.

You could fix that by adding a python_requires>=3.4 to gitdb2

No, a new release with that addition would not resolve your issue of gitdb2 no longer supporting Python 2.7. pip would simply resolve back to 4.0.2 and show you the same error.

Even if that weren't the case, as a mirror package, the new release itself would misleadingly advertise support for Python 3.4, 3.5, 3.6, and newer, even when gitdb no longer supports those Python versions.

Again, as I said:

deferring to gitdb for the supported Python versions is intentional, so that any updates to that in future versions of gitdb don't require additional gitdb2 releases.