Bug 1737937 - bzr depends on Python 2
Summary: bzr depends on Python 2
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: bzr
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Orphan Owner
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1752859 1752872 1753195 1753633 1754964
Blocks: F31_PY2REMOVAL 1738966 1741027 1749118
TreeView+ depends on / blocked
 
Reported: 2019-08-06 11:45 UTC by Lumír Balhar
Modified: 2019-10-24 19:35 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-10-24 19:35:52 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Spec file for breezy, a replacement of bzr (4.74 KB, text/plain)
2019-09-04 11:43 UTC, Miro Hrončok
no flags Details

Description Lumír Balhar 2019-08-06 11:45:11 UTC
Python 2.7 will reach end-of-life in January 2020, over 9 years after it was released. This falls within the Fedora 31 lifetime.
Packages that depend on Python 2 are being switched to Python 3 or removed from Fedora: https://fedoraproject.org/wiki/Changes/F31_Mass_Python_2_Package_Removal#Information_on_Remaining_Packages
Python 2 will be retired in Fedora 32: https://fedoraproject.org/wiki/Changes/RetirePython2

To help planning, we'd like to know the plans for bzr's future. Specifically:


- What is the reason for the Python2 dependency? (Is it software written in Python, or does it just provide Python bindings, or use Python in the build system or test runner?) 

- What are the upstream/community plans/timelines regarding Python 3?

- What is the guidance for porting to Python 3? (Assuming that there is someone who generally knows how to port to Python 3, but doesn't know anything about the particular package, what are the next steps to take?)


This bug is filed semi-automatically, and might not have all the context specific to bzr.
If you need anything from us, or something is unclear, please mention it here.

Thank you.

Comment 1 Villy Kruse 2019-08-12 09:33:20 UTC
It looks like the "breezy" project is the way forward.

https://en.wikipedia.org/wiki/Breezy_(software)

https://www.breezy-vcs.org/

https://www.phoronix.com/scan.php?page=news_item&px=GNU-Bazaar-Breezy

It is claimed that breezy works with Python3; I have not tested or verified this.

Comment 2 Ben Cotton 2019-08-13 17:05:00 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to 31.

Comment 3 Lumír Balhar 2019-08-19 11:31:48 UTC
Do you have a plan to package breezy as a replacement of bzr package? Or is it fully compatible so the new package is not needed?

Comment 4 Lumír Balhar 2019-08-26 13:53:21 UTC
What is the plan? Can I help you somehow?

Comment 5 Paul Howarth 2019-08-30 08:33:33 UTC
Since the recent retirement of python-pwntools and dpm-contrib-admintools, bzr is now the last remaining dependent package of python2-paramiko, which is already uninstallable in rawhide due to the removal of python2-ipaddress. I would like to drop the python2-paramiko package from both f31 and rawhide. I'll do rawhide today as that won't make anything any more broken. Obviously I'd like to do f31 before its release. Any comments/objections?

Comment 6 Paul Howarth 2019-09-02 10:31:57 UTC
OK, so python2-ipaddress came back but I'd still like to drop python2-paramiko. Holding off for now though.

Comment 8 Paul Howarth 2019-09-03 19:38:56 UTC
Miro, thanks for that. I'll bear that in mind if this package lingers around much longer.

Comment 9 Miro Hrončok 2019-09-04 09:33:57 UTC
https://bugs.launchpad.net/bzr/+bug/1696545 

Jelmer Vernooij (jelmer) wrote on 2018-09-14: Full Python 3 support has now landed in trunk.

Comment 10 Miro Hrončok 2019-09-04 10:23:06 UTC
I'm looking into packaging brz (breezy), but I have no interest in maintaining it.

Comment 11 Miro Hrončok 2019-09-04 11:43:16 UTC
Created attachment 1611475 [details]
Spec file for breezy, a replacement of bzr

Here is a spec file for breeze. It needs python3-sphinx-epytext (not yet packaged, i can do that if needed), but otherwise appears to work. I don't have any bzr projects, so I have not done much testing.

Anybody interested in maintaining breeze?

Comment 12 Miro Hrončok 2019-09-04 11:46:02 UTC
Maybe you, Petr? You seem to be the latest maintainer who committed to bzr (arguably not recently).

Comment 13 Miro Hrončok 2019-09-04 12:03:21 UTC
I've asked on the devel mailing list for volunteers: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/OUMBR2LWRMWWXRWU4S4DREVHNVKYQGJV/

Comment 14 Petr Stodulka 2019-09-04 12:53:42 UTC
Hi guys. I apologize for my late response. I wanted already remove myself from maintainers of this rpm but the system doesn't allow me to do that as I am not admin of this component - just committer (isn't that bug?). To be honest, I am not interested about bzr and related rpms. I plan to orphan some additional rpms - git-remote-bzr especially. I am now spending all my extra free time I can around mercurial, so I cannot do anything here anyway.

Comment 15 Miro Hrončok 2019-09-04 12:58:29 UTC
(In reply to pstodulk from comment #14)
> Hi guys. I apologize for my late response. I wanted already remove myself
> from maintainers of this rpm but the system doesn't allow me to do that as I
> am not admin of this component - just committer (isn't that bug?).

See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/7NLZTF4GUFBYXCFCQVFJWIXGHSQ44EDR/

I can remove you, shall I?

Comment 16 Petr Stodulka 2019-09-04 13:12:30 UTC
Yes, remove me please. Thanks for that and for the info.

Comment 17 Villy Kruse 2019-09-05 05:20:21 UTC
(In reply to pstodulk from comment #14)
> Hi guys. I apologize for my late response. I wanted already remove myself
> from maintainers of this rpm but the system doesn't allow me to do that as I
> am not admin of this component - just committer (isn't that bug?). To be
> honest, I am not interested about bzr and related rpms. I plan to orphan
> some additional rpms - git-remote-bzr especially. I am now spending all my
> extra free time I can around mercurial, so I cannot do anything here anyway.

The breezy package provides a git-remote-bzr implementation.

Comment 18 Marcel Plch 2019-09-11 13:30:59 UTC
I have taken a look at the spec and successfully attempted to build it in a rawhide container.
As I already maintain bzr in RHEL, I think it would be quite logical for me to take the new brz package in Fedora.

I have tested breezy against the official bazaar repository and checking out into a branch gives this error:

[root@b396e406a2ce bzr]# brz branch lp:bzr bzr.dev
brz: ERROR: launchpadlib is required for Launchpad API access. Please install the launchpadlib package.

Can be reproduced as follows:
$ bzr init-repo bzr
$ cd bzr
$ bzr branch lp:bzr bzr.dev

Should I start with packaging python3-sphinx-epytext?

Comment 19 Miro Hrončok 2019-09-11 13:54:54 UTC
And apparently also https://pypi.org/project/launchpadlib/

Comment 20 Villy Kruse 2019-09-11 14:42:00 UTC
(In reply to Marcel Plch from comment #18)
> I have taken a look at the spec and successfully attempted to build it in a
> rawhide container.
> As I already maintain bzr in RHEL, I think it would be quite logical for me
> to take the new brz package in Fedora.
> 
> I have tested breezy against the official bazaar repository and checking out
> into a branch gives this error:
> 
> [root@b396e406a2ce bzr]# brz branch lp:bzr bzr.dev
> brz: ERROR: launchpadlib is required for Launchpad API access. Please
> install the launchpadlib package.
> 
> Can be reproduced as follows:
> $ bzr init-repo bzr
> $ cd bzr
> $ bzr branch lp:bzr bzr.dev
> 
> Should I start with packaging python3-sphinx-epytext?

You could try install launchpadlib using pip3 and see which other dependencies it drags in.  And then take it from there.

more launchpadlib-1.10.7-py3.7.egg-info/requires.txt
::::::::::::::
launchpadlib-1.10.7-py3.7.egg-info/requires.txt
::::::::::::::
httplib2
keyring
lazr.restfulclient>=0.9.19
lazr.uri
setuptools
testresources
wadllib

Comment 21 Miro Hrončok 2019-09-12 09:17:01 UTC
wadllib is only used in launchpadlib.testing (Testing API allows fake data to be used in unit tests.)
testresources is only used in launchpadlib.tests (actual tests)

Comment 22 Lumír Balhar 2019-09-19 12:09:16 UTC
All new packages approved.

Comment 23 Miro Hrončok 2019-09-19 14:09:15 UTC
$ bzr branch lp:bzr bzr.dev
You have not informed bzr of your Launchpad ID, and you must do this to
write to Launchpad or access private data.  See "bzr help launchpad-login".
brz: ERROR: The branch lp:bzr has no revision None.


I have checked and it should proceed https://stackoverflow.com/questions/21146888/how-can-i-clone-a-public-launchpad-repository-without-login

Not sure what does the "brz: ERROR: The branch lp:bzr has no revision None" mean. I've only found https://bugs.launchpad.net/bzr/+bug/578005 so far :(

Comment 24 Miro Hrončok 2019-09-19 14:16:12 UTC
$ bzr init-repo brz
Shared repository with trees (format: 2a)
Location:
  shared repository: brz
$ cd brz/
$ bzr branch lp:brz brz.dev
You have not informed bzr of your Launchpad ID, and you must do this to
write to Launchpad or access private data.  See "bzr help launchpad-login".
(shows progressbar for a while)
brz: ERROR: The branch lp:brz has no revision None.

Comment 25 Miro Hrončok 2019-09-19 14:35:19 UTC
I've reproduced the problem with pip-installed breezy as well, reported upstream: https://bugs.launchpad.net/brz/+bug/1844684

Comment 26 Villy Kruse 2019-09-19 15:23:57 UTC
(In reply to Miro Hrončok from comment #24)
> $ bzr init-repo brz
> Shared repository with trees (format: 2a)
> Location:
>   shared repository: brz
> $ cd brz/
> $ bzr branch lp:brz brz.dev
> You have not informed bzr of your Launchpad ID, and you must do this to
> write to Launchpad or access private data.  See "bzr help launchpad-login".
> (shows progressbar for a while)
> brz: ERROR: The branch lp:brz has no revision None.



Should be "brz branch lp:bzr" 

"brz" is the breezy command and "bzr" is the bazaar command.

[vek@mybox xxx]$ brz branch lp:bzr
You have not informed bzr of your Launchpad ID, and you must do this to
write to Launchpad or access private data.  See "bzr help launchpad-login".
Branched 6622 revisions.

Comment 27 Miro Hrončok 2019-09-19 15:44:49 UTC
The specfile attached adds a backwards compatibility symbolic link, so both bzr and brz means breezy.


Where is your example from? Does it run on Python 3.8?

Comment 28 Villy Kruse 2019-09-19 15:49:09 UTC
(In reply to Miro Hrončok from comment #27)
> The specfile attached adds a backwards compatibility symbolic link, so both
> bzr and brz means breezy.
> 
> 
> Where is your example from? Does it run on Python 3.8?

No; 3.7 on Fedora 30.

"brz branch lp:brz" works as well, by the way.

Comment 29 Miro Hrončok 2019-10-24 19:35:52 UTC
Automation has figured out the package is retired in rawhide.

If you like it to be unretired, please open a ticket at https://pagure.io/releng/new_issue?template=package_unretirement


Note You need to log in before you can comment on or make changes to this bug.