Bug 2267060

Summary: docopt: consider switching to docopt-ng
Product: [Fedora] Fedora Reporter: Zbigniew Jędrzejewski-Szmek <zbyszek>
Component: python-docoptAssignee: Carl George 🤠 <carl>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: carl, felix, ian.s.mcinerney, mhroncok, msivak, python-packagers-sig, sgallagh
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard: FailedQA
Fixed In Version: python-docopt-0.9.0-1.fc41 python-docopt-0.6.2-1.fc41 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-03-06 22:11:20 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2268249    
Bug Blocks: 2268066, 2268067, 2268072, 2268075, 2268085, 2268086, 2268087, 2268088, 2268089, 2268090, 2268091, 2268093, 2268094, 2268096, 2268097, 2268098, 2268101, 2268102, 2268103, 2268104    

Description Zbigniew Jędrzejewski-Szmek 2024-02-29 13:33:11 UTC
> docopt/docopt is vastly outdated and has known bugs that are not
> getting fixed, one should switch to jazzband/docopt-ng, which is
> actively maintained.

This package hasn't been updated in a few years, so we should consider
doing the switch. 'dnf5 repoquery --whatrequires python3-docopt' lists
~two dozen packages, so we need some version of docopt.

Reproducible: Always

Comment 1 Fedora Update System 2024-03-02 02:13:23 UTC
FEDORA-2024-dfe5bbd416 (python-docopt-0.9.0-1.fc41) has been submitted as an update to Fedora 41.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-dfe5bbd416

Comment 2 Fedora Update System 2024-03-02 02:17:20 UTC
FEDORA-2024-dfe5bbd416 (python-docopt-0.9.0-1.fc41) has been pushed to the Fedora 41 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 3 Brian Lane 2024-03-05 22:07:13 UTC
Note that this may break installing packages that depend on it, like python-coveralls which expects python3.12dist(docopt) to be provided instead of python3.12dist(docopt-ng). I've fixed this in python-coveralls-3.3.1-10.fc41

Comment 4 Fedora Update System 2024-03-05 22:11:57 UTC
FEDORA-2024-32ece25f93 (python-coveralls-3.3.1-10.fc41) has been submitted as an update to Fedora 41.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-32ece25f93

Comment 5 Fedora Update System 2024-03-05 22:14:16 UTC
FEDORA-2024-32ece25f93 (python-coveralls-3.3.1-10.fc41) has been pushed to the Fedora 41 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 6 Miro Hrončok 2024-03-06 09:26:05 UTC
This has indeed regressed.

It's not possible to just switch pypi projects packages as python3-docopt, they have different metadata.


$ repoquery --repo=rawhide --provides python3-docopt
...
python3.12dist(docopt-ng) = 0.9
python3dist(docopt-ng) = 0.9


$ repoquery -q --repo=rawhide --whatrequires 'python3.12dist(docopt)'
adb-enhanced-0:2.5.14-8.fc40.noarch
docker-compose-0:1.29.2-12.fc40.noarch
mackup-0:0.8.32-11.fc40.noarch
protonvpn-cli-0:2.2.11-11.fc40.noarch
python3-bioread-0:3.0.1-4.fc40.noarch
python3-coveralls-0:3.3.1-9.fc40.noarch
python3-doxytag2zealdb-0:0.3.1-11.fc40.noarch
python3-hdfs-0:2.7.3-2.fc41.noarch
python3-kiwi-0:9.25.21-5.fc41.noarch
python3-kiwi-boxed-plugin-0:0.2.32-1.fc41.noarch
python3-liquidctl-0:1.13.0-4.fc41.noarch
python3-num2words-0:0.5.13-5.fc40.noarch
python3-odml-0:1.5.4-3.fc40.noarch
python3-pykwalify-0:1.8.0-9.fc40.noarch
python3-pytest-watch-0:4.2.0-19.fc40.noarch
python3-stomppy-0:8.1.0-5.fc40.noarch
python3-udiskie-0:2.5.2-1.fc40.noarch
python3-vconnector-0:0.6.0-14.fc40.noarch
python3-vevents-0:0.1.0-0.16.20149631git3ff37a2.fc40.noarch
python3-vpoller-0:0.7.3-22.fc40.noarch
teampulls-0:0.2.2-14.fc40.noarch
xortool-0:0.99-14.fc40.noarch


$ repoquery -q --repo=rawhide-source --whatrequires 'python3dist(docopt)'
kiwi-0:9.25.21-5.fc41.src
kiwi-boxed-plugin-0:0.2.32-1.fc41.src
liquidctl-0:1.13.0-4.fc41.src
python-bioread-0:3.0.1-4.fc40.src
python-doxytag2zealdb-0:0.3.1-11.fc40.src
python-hdfs-0:2.7.3-2.fc41.src
python-jedi-0:0.19.1-3.fc40.src
python-num2words-0:0.5.13-5.fc40.src
python-odml-0:1.5.4-3.fc40.src
python-parso-0:0.8.3-9.fc40.src
python-pykwalify-0:1.8.0-9.fc40.src
stomppy-0:8.1.0-5.fc40.src
udiskie-0:2.5.2-1.fc40.src

Comment 7 Ian McInerney 2024-03-06 13:07:45 UTC
Yes, this is now causing FTI against packages on F41, such as python-doxytag2zealdb: https://bugzilla.redhat.com/show_bug.cgi?id=2268087.

Comment 8 Felix Kaechele 2024-03-06 14:55:27 UTC
If the new upstream being used is intended as a drop-in replacement could this package maybe also provide python3.12dist(docopt) in that case?

I'm happy to also send a patch upstream for pykwalify to use docopt-ng instead.

Comment 9 Carl George 🤠 2024-03-06 16:24:29 UTC
Sorry about the trouble here folks.  I didn't fully think through the possible effects of this change.  I'm going to create a python-docopt-ng package, and revert the change in python-docopt with an epoch.

Comment 10 Zbigniew Jędrzejewski-Szmek 2024-03-06 17:30:55 UTC
Hmm, I really think we should massage the metadata to provide the old Provides.
If we add a new package, then we'll have to massage all the dependent packages,
one by one, to use the new project. It seems much better to switch them to the
new code automatically.

Comment 11 Carl George 🤠 2024-03-06 19:51:29 UTC
I would rather let other packages switch their dependency to docopt-ng on their schedule (or rather their upstreams' schedule), rather than forcing a mad rush to do it all at once.  It's mostly a drop in replacement, but there are a few removals.  I thought this would be ok for rawhide, but that combined with the metadata problem makes me leary.

https://github.com/jazzband/docopt-ng/blob/0.9.0/CHANGELOG.md

I plan to post about this on the devel mailing list to give packagers a heads up to work with their upstreams to do the docopt -> docopt-ng switch.  It may also be a good idea to official deprecate python-docopt so new packages can't depend on it.

I've posted a new package review for python-docopt-ng in bug 2268249.

Comment 12 Carl George 🤠 2024-03-06 19:59:01 UTC
PR to revert python-docopt to the old upstream.

https://src.fedoraproject.org/rpms/python-docopt/pull-request/7

Comment 13 Fedora Update System 2024-03-06 21:49:54 UTC
FEDORA-2024-2d72fabcb6 (python-docopt-0.6.2-1.fc41) has been submitted as an update to Fedora 41.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-2d72fabcb6

Comment 14 Fedora Update System 2024-03-06 22:11:20 UTC
FEDORA-2024-2d72fabcb6 (python-docopt-0.6.2-1.fc41) has been pushed to the Fedora 41 stable repository.
If problem still persists, please make note of it in this bug report.