Update to 3.2.1 - Change MASTER_SITES from GitHub to CHEESESHOP Changes: https://github.com/andymccurdy/redis-py/blob/master/CHANGES
Created attachment 203626 [details] patch
3.0.0 introduced backward incompatible changes. databases/py-redis need to be checked for version/API compatibility
Correction: databases/py-redis *dependent ports* need to be checked for version/API compatibility
After updating TEST_DEPENDS and modifying (do-)test target: 390 passed, 27 skipped, 1 warnings in 20.34 seconds
Hi, there's an actual list of ports that have dependencies on databases/py-redis: databases/py-fakeredis: N/A (noted as "redis" in setup.py) databases/py-rb: >=2.6 (setup.py) devel/py-eventlib: >=2.7.1 (requirements.txt) devel/py-rq: >=2.7.0 (setup.py) graphics/py-sorl-thumbnail: N/A (noted as "redis" in README and setup.cfg (testenv)) net/py-kombu: >=2.8.0 (extra/requirements/extras/redis.txt) devel/py-cachecontrol: >=2.10.5 (setup.py) www/py-django-cacheops: >=2.9.1 (setup.py) www/py-django-constance: N/A (noted as "redis" in setup.py) www/py-django-redis: >=2.10.0 (setup.py) Maybe it helps in the further progress of this PR.
(In reply to Kai Knoblich from comment #5) It does. This was the big piece of QA that needed to be done, so thank you for helping me Kai. I assume from the list that none were "max pinned" with "<X" versions, is this correct? That is not to say that they 'wont' fail at runtime given API changes, but evaluating setup.py:*_requires in dependents is the best we can do without test target support in everything.
(In reply to Kubilay Kocak from comment #6) No problem and your assumption is correct: None of the given dependencies is pinned with "<". Indeed, there's still the risk that something might fail at runtime.
Small correction for one port: devel/py-cachecontrol -> www/py-cachecontrol
django-redis is incompatible with redis-py >= 3 https://github.com/niwinz/django-redis/issues/342 https://github.com/niwinz/django-redis/commit/f139a880066d822bf2fa9df5f062a470a5f36305 Fixed in 4.10.0 (www/py-django-redis is at 4.10.0) setup.py:*_requires aren't going to be sufficient to guarantee no runtime failures unfortunately. Need to check dependents for updates fixing API compatibility before landing this.
Summary: kombu needs >= 4.4.0 update (olgeni) rb: Needs deprecation or BROKEN with redis > 3.0.0 update (this bug) (sunpoet) eventlib: eeds deprecation or BROKEN with redis > 3.0.0 update (this bug) (sunpoet) CC all dependent port maintainers for QA details below... fakeredis: OK - 3.2.* support added in 1.0.3. 3.0.x in 1.0 (cc rene) https://github.com/jamesls/fakeredis/pull/236 https://github.com/jamesls/fakeredis/blob/1.0.3/README.rst rb: Probably NOT OK - No updates since 20171011 (sunpoet) eventlib: Probably NOT ok - Port is latest version (0.1.5)> Last release 20131002 (sunpoet) rq: Requires redis >= 3.0.0 (this bug blocks 237238) (cc skreuzer) sorl-thumbnail: Probably OK (cc ports@caomhin) Port is 12.4.1, upstream is 12.5.0 - Appears to test latest redis (no max pin) in tox.ini kombu: NOT OK - Upstream is 4.5.0, port is 4.1.0 (cc: olgeni) 4.4.0 changelog: Revert celery/kombu#954. Instead bump the required redis-py dependency to 3.2.0 to include this fix andymccurdy/redis-py@4e1e748. 4.2.2 changelog: Support both Redis client version 2.x and version 3.x. cachecontrol: OK - Port is 0.12.5, Upstream is 0.12.5 (cc yuri) tests latest redis (no max pin), in tox.ini. "redis==3.2.0" from Travis CI log django-cacheops: Probably OK - Upstream is 4.1, Port is 4.1 (cc kai) Travis CI tests "redis==3.2.1". Build is failing django-constance: OK. Upstream is 2.4.0, Port is 2.4.0 (cc ultima) Travis tests with redis==3.2.1 django-redis: Probably OK Upstream is 4.10.0, Port is 4.10.0 (sunpoet) Changelog: 4.10.0: - Add support for redis-py 3.0. tox.ini pins: redis2: redis>=2.10.0,<3.0.0 for one set of envs Travis Ci build with redis==3.2.1 passes but one failure
There is already a PR for the updating of net/py-kombu. The attached patch needs to be updated.
(In reply to Kai Knoblich from comment #11) net/py-kombu had been updated to 4.6.3 now.
(In reply to wen from comment #12) That was quick, many thanks! Maybe that PR can be closed then? (In reply to Kubilay Kocak from comment #10) At the moment there are only two ports that need to be handled before databases/py-redis can be updated: - devel/py-eventlib - databases/py-rb
*** Bug 239176 has been marked as a duplicate of this bug. ***
Maybe it makes sense to repocopy databases/py-redis to databases/py-redis2 ? So the repocopied port can be used for devel/py-eventlib and databases/py-rb for a while and databases/py-redis can be upgraded to the 3.x branch.
(In reply to Kai Knoblich from comment #15) It looks good to me for keeping a legacy version for py-eventlib and py-rb.
Created attachment 207170 [details] repocopy-py-redis-TO-py-redis2.patch Attached is an additional patch that should make the update of databases/py-redis to the 3.x release possible. It does following: - Repocopies databases/py-redis to databases/py-redis2 - Hooks the repocopied port to the build - Adjusts the RUN_DEPENDS for databases/py-rb and devel/py-eventlib and bumps the PORTREVISION of each (In reply to Sunpoet Po-Chuan Hsieh from comment #16) Thanks, that additional patch contains the modifications/bumps for the both ports you maintain.
(In reply to Kai Knoblich from comment #17) Thanks. LGTM.
Will re-review / QA with Kai
^Triage: sunpoet ack'd in comment 16 and comment 18
^Triage: Don't need olgeni's feedback, OBE by bug 234090 closing by wen@
Comment on attachment 203626 [details] patch Further changes are required in the port, which I have in WIP. Obsolete accordingly
Created attachment 207955 [details] redis-3.2.1.diff databases/py-redis: Update to 3.2.1 PR: 237237 Submitted by: koobs (maintainer) Approved by: koobs (maintainer)
Comment on attachment 207170 [details] repocopy-py-redis-TO-py-redis2.patch Approved by: koobs (maintainer) Since I remain the maintainer of the copied (new) port, approve accordingly.
A commit references this bug: Author: kai Date: Mon Sep 30 09:36:12 UTC 2019 New revision: 513337 URL: https://svnweb.freebsd.org/changeset/ports/513337 Log: [NEW PORT]: databases/py-redis2 Repocopy databases/py-redis to databases/py-redis2 to have the latest version of the 2.x release branch for a while. Use it also as a fallback if some consumers have issues with the upcoming update of databases/py-redis to the 3.x release. PR: 237237 Approved by: koobs (maintainer) Changes: head/databases/Makefile head/databases/py-redis/Makefile head/databases/py-redis2/ head/databases/py-redis2/Makefile
A commit references this bug: Author: kai Date: Mon Sep 30 09:42:51 UTC 2019 New revision: 513339 URL: https://svnweb.freebsd.org/changeset/ports/513339 Log: databases/py-rb, devel/py-eventlib: Use py-redis2 instead py-redis Change RUN_DEPENDS to devel/py-redis2 as preparation for the upcoming update of databases/py-redis to 3.x as both ports aren't compatible with the newer py-redis version. PR: 237237 Approved by: sunpoet (maintainer) Changes: head/databases/py-rb/Makefile head/devel/py-eventlib/Makefile
A commit references this bug: Author: kai Date: Mon Sep 30 10:20:00 UTC 2019 New revision: 513343 URL: https://svnweb.freebsd.org/changeset/ports/513343 Log: databases/py-redis: Update to 3.2.1 * Switch MASTER_SITES back to PyPI as it's the preferred way for Python ports and all relevant files are supplied with the sdist. * Sort variables according to the PHB by moving the OPTIONS block further down. Changelog: https://github.com/andymccurdy/redis-py/blob/3.2.1/CHANGES Info about backwards incompatible changes since 3.0.0: https://github.com/andymccurdy/redis-py/blob/3.2.1/CHANGES#L72 PR: 237237 Submitted by: koobs (maintainer) Reported by: sunpoet Approved by: koobs (maintainer) Changes: head/databases/py-redis/Makefile head/databases/py-redis/distinfo
All required changes have been committed, thanks to everyone!