Bug 237237 - databases/py-redis: Update to 3.2.1
Summary: databases/py-redis: Update to 3.2.1
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Kubilay Kocak
URL: https://github.com/andymccurdy/redis-...
Keywords:
: 239176 (view as bug list)
Depends on: 234090
Blocks: 237238
  Show dependency treegraph
 
Reported: 2019-04-12 22:20 UTC by Po-Chuan Hsieh
Modified: 2019-09-30 10:41 UTC (History)
10 users (show)

See Also:
koobs: maintainer-feedback+
koobs: maintainer-feedback+


Attachments
patch (1.16 KB, patch)
2019-04-12 22:57 UTC, Po-Chuan Hsieh
koobs: maintainer-approval-
Details | Diff
repocopy-py-redis-TO-py-redis2.patch (2.86 KB, patch)
2019-09-03 22:22 UTC, Kai Knoblich
koobs: maintainer-approval+
Details | Diff
redis-3.2.1.diff (1.79 KB, patch)
2019-09-30 08:52 UTC, Kubilay Kocak
koobs: maintainer-approval+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Po-Chuan Hsieh freebsd_committer freebsd_triage 2019-04-12 22:20:40 UTC
Update to 3.2.1

- Change MASTER_SITES from GitHub to CHEESESHOP

Changes:        https://github.com/andymccurdy/redis-py/blob/master/CHANGES
Comment 1 Po-Chuan Hsieh freebsd_committer freebsd_triage 2019-04-12 22:57:42 UTC
Created attachment 203626 [details]
patch
Comment 2 Kubilay Kocak freebsd_committer freebsd_triage 2019-04-14 04:21:29 UTC
3.0.0 introduced backward incompatible changes. databases/py-redis need to be checked for version/API compatibility
Comment 3 Kubilay Kocak freebsd_committer freebsd_triage 2019-04-14 04:26:45 UTC
Correction: databases/py-redis *dependent ports* need to be checked for version/API compatibility
Comment 4 Kubilay Kocak freebsd_committer freebsd_triage 2019-04-14 04:40:29 UTC
After updating TEST_DEPENDS and modifying (do-)test target:

390 passed, 27 skipped, 1 warnings in 20.34 seconds
Comment 5 Kai Knoblich freebsd_committer freebsd_triage 2019-04-30 07:44:24 UTC
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.
Comment 6 Kubilay Kocak freebsd_committer freebsd_triage 2019-04-30 08:14:31 UTC
(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.
Comment 7 Kai Knoblich freebsd_committer freebsd_triage 2019-04-30 08:57:56 UTC
(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.
Comment 8 Kai Knoblich freebsd_committer freebsd_triage 2019-04-30 08:58:40 UTC
Small correction for one port:

devel/py-cachecontrol -> www/py-cachecontrol
Comment 9 Kubilay Kocak freebsd_committer freebsd_triage 2019-05-05 03:21:05 UTC
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.
Comment 10 Kubilay Kocak freebsd_committer freebsd_triage 2019-05-05 04:25:36 UTC
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
Comment 11 Kai Knoblich freebsd_committer freebsd_triage 2019-06-20 23:10:30 UTC
There is already a PR for the updating of net/py-kombu. The attached patch needs to be updated.
Comment 12 wen 2019-06-20 23:54:52 UTC
(In reply to Kai Knoblich from comment #11)
net/py-kombu had been updated to 4.6.3 now.
Comment 13 Kai Knoblich freebsd_committer freebsd_triage 2019-06-21 10:22:21 UTC
(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
Comment 14 Kubilay Kocak freebsd_committer freebsd_triage 2019-07-13 18:29:16 UTC
*** Bug 239176 has been marked as a duplicate of this bug. ***
Comment 15 Kai Knoblich freebsd_committer freebsd_triage 2019-08-22 11:39:12 UTC
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.
Comment 16 Po-Chuan Hsieh freebsd_committer freebsd_triage 2019-09-03 18:27:41 UTC
(In reply to Kai Knoblich from comment #15)

It looks good to me for keeping a legacy version for py-eventlib and py-rb.
Comment 17 Kai Knoblich freebsd_committer freebsd_triage 2019-09-03 22:22:36 UTC
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.
Comment 18 Po-Chuan Hsieh freebsd_committer freebsd_triage 2019-09-14 21:05:36 UTC
(In reply to Kai Knoblich from comment #17)

Thanks. LGTM.
Comment 19 Kubilay Kocak freebsd_committer freebsd_triage 2019-09-15 02:18:21 UTC
Will re-review / QA with Kai
Comment 20 Kubilay Kocak freebsd_committer freebsd_triage 2019-09-30 06:44:09 UTC
^Triage: sunpoet ack'd in comment 16 and comment 18
Comment 21 Kubilay Kocak freebsd_committer freebsd_triage 2019-09-30 06:47:04 UTC
^Triage: Don't need olgeni's feedback, OBE by bug 234090 closing by wen@
Comment 22 Kubilay Kocak freebsd_committer freebsd_triage 2019-09-30 07:03:26 UTC
Comment on attachment 203626 [details]
patch

Further changes are required in the port, which I have in WIP.

Obsolete accordingly
Comment 23 Kubilay Kocak freebsd_committer freebsd_triage 2019-09-30 08:52:32 UTC
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 24 Kubilay Kocak freebsd_committer freebsd_triage 2019-09-30 08:57:41 UTC
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.
Comment 25 commit-hook freebsd_committer freebsd_triage 2019-09-30 09:37:00 UTC
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
Comment 26 commit-hook freebsd_committer freebsd_triage 2019-09-30 09:43:02 UTC
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
Comment 27 commit-hook freebsd_committer freebsd_triage 2019-09-30 10:20:07 UTC
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
Comment 28 Kai Knoblich freebsd_committer freebsd_triage 2019-09-30 10:41:07 UTC
All required changes have been committed, thanks to everyone!