Exaile recently switched from Bazaar to Git. Dustin Spicuzza, who has been leading the Exaile project recently,
initiated this plan and the rest of the team were in full agreement. But why did we switch? Put simply, it was
because all of us prefer Git to Bazaar. However, that’s an oversimplification of my stance on the whole DVCS thing.
After the BitKeeper debacle, distributed version control system became the hottest buzzword around, and in
a short while the three major contenders became obvious: Bazaar, Git, and Mercurial. At the time I already had
experience with SVK (a semi-DVCS that extends Subversion), which I had used on Ruby.NET and Exaile, but when Adam
moved Exaile to Bazaar, I went all-in on Bazaar.
I loved nearly everything about Bazaar, and I instantly “got” it. This was in contrast to Mercurial, which I gave
up trying to understand, and to Git, which I wouldn’t have started using if I didn’t have to use it at work. I
really wanted Bazaar to be popular. I still agree with the general sentiment that it has excellent
usability, especially compared to Git.
But its modest popularity crashed under Git’s dominance; Git was getting all the attention and all the improvements
while Bazaar stagnated. Bazaar’s biggest promise from the start, that it would eventually be optimised for speed,
either came too late or never materialised—I still don’t know which. Its code documentation languished, and I had
to go digging around just to write a simple commit bot.
During casual chat among the active developers at #exaile, we found that our collective knowledge of Bazaar had
deteriorated so much that we couldn’t remember how to perform some relatively simple operations. We decided to move
on. Right now most of our services have moved to GitHub. We’re still keeping the Launchpad site to refer to old
bugs and for the web translation service (the latter is not available on GitHub).
Note: I wrote this article in full in 2014 but only decided to publish it in 2019, by which time
it was obviously not timely anymore. It still expresses my thoughts quite well, so I’m publishing it belatedly, but
backdated in order to not confuse people.
I was browsing the xfce4-dev mailing list when I stumbled on a request for comment by Steve Dodier-Lazaro (who I
knew in the past through the #exaile IRC room) on his
article regarding the design of authorisation UIs.
The article covers a lot of ground, from current issues plaguing these UIs (in Windows UAC dialog, gksu, etc.), to
the types of operations in Wayland that are planned to require authorisation, to brainstorming ideas for moving
forward. A lot of issues are still unsolved and I suspect will be years away from being solved, but I’m glad that
people are talking about them. The article also calls for further academic research on fixing these issues.
The next version of Exaile, which was to be version 0.3.3, will be version 3.3.0. We feel that the 0.x versioning
was more confusing than actually useful or representative of the development process; in addition, the new
versioning avoids long version numbers like 0.3.2.1.
In related news, Exaile 3.3.0 is going to be released soon. The RC is already out; please help us test it and iron
out last-minute bugs.
If you’re compiling a piece of code and getting an error message saying something about PUSHL or “invalid suffix
for PUSH”, it means you’re feeding x86 assembly code to an x86_64 assembler.
Possible causes:
-
The code you’re trying to compile really does contain x86 assembly, perhaps inlined from C, but you’re targeting
x86_64.
-
Your toolchain somehow contains a mix of x86 compiler and x86_64 assembler. Try cleaning up your PATH.
If you’ve been using Exaile’s Shoutcast plugin, you would have realised that it
hasn’t been working for a while now. This is due to a
change in the SHOUTcast directory API.
However, SHOUTcast directory support is not coming back. The VLC developers
explain in detail the problems that also prevent us from
complying with SHOUTcast’s terms of service. The specific wording in the terms makes me believe that we will never
see an acceptable solution, and that makes the issue of fixing the plugin a moot point. Following what VLC and
Amarok have
done, we have removed SHOUTcast directory support from Exaile.
Note, however, that Shoutcast/Icecast streams still work as long as you know the stream URI. It’s
just the directory that is not working; for the time being, you can use the
Icecast Web-based directory for this purpose.
In the future, we would love to switch to the Icecast directory, but their documentation seems
a bit sketchy. If you would like to help with this, feel free to contact us through IRC or at the
wishlist report. There is an
Amarok script that you may be able to use as reference.
Meanwhile, I have removed the Shoutcast plugin from Exaile’s list of installed plugins. The outdated code is still
in the source tree, but it will not be installed by our makefile.
[Update: I am was working on an Icecast directory plugin. It’s literally half-working (I can
get genres but not individual stations, still figuring out why). For this plugin I’m screen-scraping the website
because the actual YP directory seems to be incomplete.]
[Update 2: I’ve stopped working on the plugin for now as I’m occupied with something. Apparently there’s a working
Icecast plugin in the bugtracker somewhere; I haven’t tested it.]