pin python-ldap
SUMMARY
Pin python-ldap. they just relased a new version that does not work with python3,8
need to pin python-ldap. they just released a new version and it does not work with 3.8
[wheelhouse: st2] [19:03:31] Processing /tmp/wheelhouse/idna-3.11-py3-none-any.whl
[wheelhouse: st2] [19:03:31] File was already downloaded /tmp/wheelhouse/idna-3.11-py3-none-any.whl
[wheelhouse: st2] [19:03:31] Collecting repoze.lru>=0.3
[wheelhouse: st2] [19:03:31] Using cached repoze.lru-0.7-py3-none-any.whl (10 kB)
[wheelhouse: st2] [19:03:31] Collecting python-ldap<3.5.0,>=3.4.0
[wheelhouse: st2] [19:03:31] Using cached python_ldap-3.4.5.tar.gz (388 kB)
[wheelhouse: st2] [19:03:31] Installing build dependencies: started
[wheelhouse: st2] [19:03:35] Installing build dependencies: finished with status 'done'
[wheelhouse: st2] [19:03:35] Getting requirements to build wheel: started
[wheelhouse: st2] [19:03:35] Getting requirements to build wheel: finished with status 'done'
[wheelhouse: st2] [19:03:35] Installing backend dependencies: started
[wheelhouse: st2] [19:03:36] Installing backend dependencies: finished with status 'done'
[wheelhouse: st2] [19:03:36] Preparing wheel metadata: started
[wheelhouse: st2] [19:03:36] Preparing wheel metadata: finished with status 'done'
[wheelhouse: st2] [19:03:36] WARNING: Generating metadata for package python-ldap produced metadata for project name unknown. Fix your #egg=python-ldap fragments.
[wheelhouse: st2] [19:03:36] ERROR: Exception:
[wheelhouse: st2] [19:03:36] Traceback (most recent call last):
[wheelhouse: st2] [19:03:36] File "/usr/local/lib/python3.8/dist-packages/pip/_internal/cli/base_command.py", line 224, in _main
[wheelhouse: st2] [19:03:36] status = self.run(options, args)
[wheelhouse: st2] [19:03:36] File "/usr/local/lib/python3.8/dist-packages/pip/_internal/cli/req_command.py", line 180, in wrapper
[wheelhouse: st2] [19:03:36] return func(self, options, args)
[wheelhouse: st2] [19:03:36] File "/usr/local/lib/python3.8/dist-packages/pip/_internal/commands/wheel.py", line 154, in run
[wheelhouse: st2] [19:03:36] requirement_set = resolver.resolve(
[wheelhouse: st2] [19:03:36] File "/usr/local/lib/python3.8/dist-packages/pip/_internal/resolution/legacy/resolver.py", line 180, in resolve
[wheelhouse: st2] [19:03:36] discovered_reqs.extend(self._resolve_one(requirement_set, req))
[wheelhouse: st2] [19:03:36] File "/usr/local/lib/python3.8/dist-packages/pip/_internal/resolution/legacy/resolver.py", line 419, in _resolve_one
[wheelhouse: st2] [19:03:36] assert req_to_install.user_supplied
Good catch. Digging into the python-ldap history a bit:
3.4.5 includes some CVE fixes and makes reconnect handling more reliable, so if we can make it work, that would be good.
https://github.com/python-ldap/python-ldap/releases/tag/python-ldap-3.4.5
During release (from the 3.4 branch), it looks like they disabled CI for python 3.6 and 3.7 even though the package metadata still claims compatibility.
https://github.com/python-ldap/python-ldap/commit/bf666e918615b00dbcd1bbe71542522eedfdffc1
But, the python 3.8 CI passed for them: https://github.com/python-ldap/python-ldap/actions/runs/18417030679/job/52483057490 https://github.com/python-ldap/python-ldap/actions/runs/18417030652/job/52483057627
Version 4.0 (on branch main), which hasn't been released yet, "deprecates" support for python 3.6-3.8, removing CI for those python versions.
https://github.com/python-ldap/python-ldap/pull/583
The lockfile has python-ldap 3.4.4, so pinning the dep is also a good fix.
Next up, figure out why 3.4.5 compile is failing. https://github.com/python-ldap/python-ldap/compare/python-ldap-3.4.4...python-ldap-3.4.5
Looks like they switched from setup.py to pyproject.toml which requires "newer" setuptools. So, what version of setuptools is CircleCI using? https://github.com/python-ldap/python-ldap/pull/589
The makefile has pip 25.0.1, so why is the failed CircleCI build using pip 20.3.3?! That could mess it up.
[wheelhouse : st2] [19:03:36] WARNING: You are using pip v ersion 20.3.3; however, version 25.0.1 is available .
https://github.com/StackStorm/st2-packages/blob/ef64ba1ac2ca81fb38b24fcfcc2f7fbabccf53be/packages/st2/debian/rules#L14
PIP_VERSION = 20.3.3
Which should be updated by: https://github.com/StackStorm/st2/blob/240315e6c357147999a5374f8a27bf3ada988ff9/.circleci/config.yml#L161
So why isn't that change propagating to the later steps?
I wasted far too much time trying to follow the path through layers of circleci config, makefiles, docker-compose, docker entry points, ruby weirdness.
@guzzijones would you be willing to create a PR in st2-packages that updates PIP_VERSION? Hopefully that fixes the current breakage where pip can't find the package name because it is in pyprojects.toml instead of setup.py.
i will work on it Monday.