deepset-ai / FARM

:house_with_garden: Fast & easy transfer learning for NLP. Harvesting language models for the industry. Focus on Question Answering.
https://farm.deepset.ai
Apache License 2.0
1.73k stars 247 forks source link

Current version `0.8.1-snapshot` is not valid according to PEP 440 and causes installation problems #862

Open johann-petrak opened 1 year ago

johann-petrak commented 1 year ago

Not sure why I did not see this before but when I try to do something like pip install -e . from a freshly cloned version, I get these error messages:

  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [74 lines of output]
      running egg_info
      /home/johann/software/anaconda/envs/farm-tools/lib/python3.8/site-packages/setuptools/dist.py:755: SetuptoolsDeprecationWarning: Invalid dash-separated options
      !!

              ********************************************************************************
              Usage of dash-separated 'description-file' will not be supported in future
              versions. Please use the underscore name 'description_file' instead.

              By 2023-Sep-26, you need to update your project and remove deprecated calls
              or your builds will no longer be supported.

              See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
              ********************************************************************************

      !!
        opt = self.warn_dash_deprecation(opt, section)
      /home/johann/software/anaconda/envs/farm-tools/lib/python3.8/site-packages/setuptools/dist.py:520: SetuptoolsDeprecationWarning: Invalid version: '0.8.1-snapshot'.
      !!

              ********************************************************************************
              The version specified is not a valid version according to PEP 440.
              This may not work as expected with newer versions of
              setuptools, pip, and PyPI.

              By 2023-Sep-26, you need to update your project and remove deprecated calls
              or your builds will no longer be supported.

              See https://peps.python.org/pep-0440/ for details.
              ********************************************************************************

      !!
        self._validate_version(self.metadata.version)
      /home/johann/software/anaconda/envs/farm-tools/lib/python3.8/site-packages/setuptools/command/egg_info.py:131: SetuptoolsDeprecationWarning: Invalid version: '0.8.1-snapshot'.
      !!

              ********************************************************************************
              Version '0.8.1-snapshot' is not valid according to PEP 440.

              Please make sure to specify a valid version for your package.
              Also note that future releases of setuptools may halt the build process
              if an invalid version is given.

              By 2023-Sep-26, you need to update your project and remove deprecated calls
              or your builds will no longer be supported.

              See https://peps.python.org/pep-0440/ for details.
              ********************************************************************************

      !!
        return _normalization.best_effort_version(tagged)
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/disk10t1/data/johann/tmp/farm-tools/FARM/setup.py", line 65, in <module>
          setup(
        File "/home/johann/software/anaconda/envs/farm-tools/lib/python3.8/site-packages/setuptools/__init__.py", line 107, in setup
          return distutils.core.setup(**attrs)
        File "/home/johann/software/anaconda/envs/farm-tools/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
        File "/home/johann/software/anaconda/envs/farm-tools/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/home/johann/software/anaconda/envs/farm-tools/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/home/johann/software/anaconda/envs/farm-tools/lib/python3.8/site-packages/setuptools/dist.py", line 1244, in run_command
          super().run_command(command)
        File "/home/johann/software/anaconda/envs/farm-tools/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 987, in run_command
          cmd_obj.ensure_finalized()
        File "/home/johann/software/anaconda/envs/farm-tools/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 111, in ensure_finalized
          self.finalize_options()
        File "/home/johann/software/anaconda/envs/farm-tools/lib/python3.8/site-packages/setuptools/command/egg_info.py", line 219, in finalize_options
          parsed_version = packaging.version.Version(self.egg_version)
        File "/home/johann/software/anaconda/envs/farm-tools/lib/python3.8/site-packages/setuptools/_vendor/packaging/version.py", line 197, in __init__
          raise InvalidVersion(f"Invalid version: '{version}'")
      setuptools.extern.packaging.version.InvalidVersion: Invalid version: '0.8.1-snapshot'
      [end of output]
stale[bot] commented 10 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 21 days if no further activity occurs.

minuenergy commented 2 months ago

same problem. did you fix this??

johann-petrak commented 2 months ago

This specific problem is easy to fix locally, just edit ./farm/_version.py and replace "0.8.1-snapshot" with something that conforms to the Python version number scheme, e.g. "0.8.1.dev1"

However there other problems of this repo due to bit-rot and missing maintenance, e.g. with which package version the installation process wants to pull. To get it to run you may also need to update requirements.txt before doing the installation.