FS#62658 - [bzr] Consider replacing/superseding with Breeze 3.0

Attached to Project: Arch Linux
Opened by Emil (xexaxo) - Friday, 17 May 2019, 13:43 GMT
Last edited by freswa (frederik) - Thursday, 13 February 2020, 12:39 GMT
Task Type General Gripe
Category Packages: Extra
Status Closed
Assigned To Maxime Gauduin (Alucryd)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 4
Private No

Details

Description:

Bazaar written in python2, with the latter EOL in 2020. Breezy is a re-brand/re-write that supports python3.
Breezy 3.0 was released earlier this month [1], which is python2+3 compatible.

As a starting point we could use the AUR package [2], plus we should consider adding an alias/symlink for backwards compatibility.

From the announcement:
- bzr <> brz can be aliased as they are command-line compatible
- some plugins are now built-in - notably fastimport

Analysis of the bzr Required-by list, please double-check:

bzr-fastimport
- Kill/replace with the built-in

devtools
flatpak-builder
qtcreator (optional)
- Safe: Uses the brz command directly

etckeeper (optional)
- Safe: ToConfirm: Uses python2 solely for bzr. Temporary disable bzr if the python plugin interface is incompatible?

zim (optional)
- Safe: ToConfirm: Uses the brz command directly

cairo-dock (make)
chinese-calendar (make)
deepin-api (make)
etckeeper (make)
gloobus-preview (make)
gsettings-qt (make)
livewallpaper (make)
midori (make)
prometheus (make)
dep (check)
- Safe: ToConfirm: Uses the brz command directly

[1] https://www.breezy-vcs.org/3.0.0.html
[2] https://aur.archlinux.org/packages/breezy/
This task depends upon

Closed by  freswa (frederik)
Thursday, 13 February 2020, 12:39 GMT
Reason for closing:  Fixed
Additional comments about closing:  breezy 3.0.2.3
Comment by Matt Kunkel (pilotmattk) - Saturday, 12 October 2019, 04:14 GMT
Is Arch going to deprecate python2? Fedora is making this move ahead of Arch... This should probably be changed from general gripe to some other status.
Comment by Maxime Gauduin (Alucryd) - Thursday, 17 October 2019, 06:00 GMT
We've been planning for the python2 eol for a while, so yes, this will become higher on our todo list as the deadline approaches.
Comment by loqs (loqs) - Thursday, 14 November 2019, 00:43 GMT
etckeeper needs a patch to add breezy support https://src.fedoraproject.org/rpms/etckeeper/blob/master/f/etckeeper-add-breezy-python3-plugin.patch

With a symlink from brz to bzr chinese-calendar, gsettings-qt and livewallpaper build succesfully from bzr repositories in a clean chroot.

cairo-dock, deepin-api, gloobus-preview, midori, prometheus all built with the bzr dependency removed in a clean chroot.
Comment by Emil (xexaxo) - Tuesday, 21 January 2020, 12:01 GMT
Looking at  FS#65002  - things seems to be stuck in a limbo/loop.
The bzr/breeze change depends on etckeeper while the etckeeper change depends on bzr/breeze.

Perhaps something like the following could work:
- disable bzr for etckeeper, roll new package
- introduce breeze package, which provides bzr
- apply python(3) patch for etckeeper, (opt) depend on breeze, enable bzr/breeze integration
Comment by Emil (xexaxo) - Tuesday, 21 January 2020, 13:31 GMT
Note: breeze 3.0.2 brings python 3.8 support, as listed in the release notes

https://code.breezy-vcs.org/breezy/trunk/view/head:/doc/en/release-notes/brz-3.0.txt
Comment by tinywrkb (tinywrkb) - Tuesday, 04 February 2020, 12:39 GMT
Now that breezy is in Extra then maybe for the meantime create a breezy-comapt package so users can switch to it and report back?

```
pkgname=breezy-compat
pkgver=1
pkgrel=1
pkgdesc='symlink for replacing bzr with breezy'
arch=(any)
license=(GPL)
depends=(breezy)
conflicts=(bzr)
provides=(bzr)

package() {
cd ${pkgdir}
mkdir -p usr/bin
ln -sr usr/bin/brz usr/bin/bzr
}
```
Comment by Maxime Gauduin (Alucryd) - Tuesday, 04 February 2020, 12:44 GMT
No need for a compat package, I've already added a symlink in the breezy package, just need to push it to testing with a conflicts/replaces with bzr.
Comment by Emil (xexaxo) - Friday, 07 February 2020, 13:52 GMT
Indeed, a compat package is not needed - simple `ln -s brz "${pkgdir}"/usr/bin/bzr` + provides=(bzr) is enough.
With conflicts and replaces to ensure a) the symlink does not clash with the original bzr and b) we get stable update path, respectively.

Thanks for the work everyone.
Comment by bide taggle (bidetaggle) - Sunday, 09 February 2020, 09:02 GMT
Hello,

I updated my system and said yes to the question `Replace bzr with extra/breezy? [Y/n]`.
I'm using oh-my-zsh that show me the current git branch when I'm in a git repository and this appeared in all of my local repos: `master ● bzr@59 ✚` in an orange color that usually means that I have made changes. This should only prompt `master` in green since I didn't make any changes. The most annoying thing is that now there is a delay for whatever command I type in (like `ls`) for example before giving me back the control. I even got stuck by going in one of the repositories. When I `cd repo`, press enter, I just wait forever without a new line coming to type a new command, even ctrl+c doesn't make it.

I finally downgraded it by installing the old bzr in pacman cache.

Thanks for reading, I hope my testimony can help
Comment by Maxime Gauduin (Alucryd) - Sunday, 09 February 2020, 11:01 GMT
Not sure why oh-my-zsh would use breezy instead of git for git repositories (even if breezy does support git repos). Is your oh-my-zsh up-to-date? Not experiencing any issue here with prezto. I guess the answer is yes, but does it also happen if you remove breezy (and bzr) altogether?
Comment by bide taggle (bidetaggle) - Sunday, 09 February 2020, 20:05 GMT
I use to use git, apparently it's related to bzr or breezy but I don't know much about it. As I understand, bzr was already installed on my computer, I simply answered "yes" to `Replace bzr with extra/breezy? [Y/n]` when upgrading my packages. I downgraded with `pacman -U /var/cache/pacman/pkg/bzr-2.7.0-3-x86_64.pkg.tar.xz` (which removed breezy) and everything went back to normal.

I use to say `yes` when oh-my-zsh prompt to ask me if I want to update it, then I guess it is up-to-date, how is it possible to know the version that I'm running? I can't find on google
Comment by Maxime Gauduin (Alucryd) - Sunday, 09 February 2020, 21:41 GMT
Well this is confirmed upstream, a workaround is to remove the prompt_bzr routine from your theme. https://github.com/ohmyzsh/ohmyzsh/issues/8237 You can also remove breezy if you don't deal with bzr repositories at all.

I believe ohmyzsh shouldn't run bzr status inside git repositories, prezto doesn't for one. Also bzr status in a git project is really long the first time here, but a lot snappier afterwards.
Comment by Emil (xexaxo) - Tuesday, 11 February 2020, 13:19 GMT
My 2cents fwiw.

High-lighting the bug in the upstream issue, is the way forward.
This way they can prioritise and address it... or better yet one could send them a fix ;-)

Working around the bug in each distribution is a non-brainer IMHO.

Loading...