I deleted the last post about the release manager because due to the high number of changes I made it was soon out of date. So let's get back to the topic again. I'll split it up into two posts: this one which is for users and packagers mostly, and another one directed to developers or, more precisely, maintainers.
Let's start with a simple question (with a long answer): what am I talking about and what is this release manager anyway?
First, a bit of background. At Xfce, we are currently working on improving our infrastructure. We are about to switch to git and along with that, our repository layout will change. Xfce and goodie repositories will no longer be found in separate locations. We thought it would be nice to implement the same layout in other places as well, like Bugzilla and our download archive.
Nick went ahead and enabled so-called bugzilla classifications and used those to resemble the repository layout on bugzilla.xfce.org.
That still left us with separate download archives for core Xfce, goodies and other stuff. For goodies, we had a very simple release manager web application written in PHP that uploaded tarballs to
http://goodies.xfce.org/releases/ and was able to send release announcements to mailing lists. The design however was very limited. For Xfce releases we had nothing like that. Uploading and copying tarballs around manually for each release was what we had to do.
And this is where the new all-in-one release manager comes into play. It's called Moka, it is written in Ruby using Sinatra, ERB and JSON and the source code can be found here.
For you as a user or packager, it does two things:
- it uploads all (core and goodies) tarballs to http://archive.xfce.org which uses the same layout as our future git repositories and bugzilla
- it pushes release announcements out to mailinglists, Atom feeds, identi.ca and Twitter.
The layout is described in the archive reorganization section of this mail. It contains releases of all projects, be they goodies, core components or something else. Again, we use classifications like
core to add semantics the archive layout.
All tarballs are accompanied by an MD5 and SHA1 checksum file. In the future, we're hoping to also support PGP signing of tarballs. So, for the 0.4.0 release of terminal, you'll get these three files:
If you download one of the checksum files along with the tarball you can verify the download went fine with
md5sum -c Terminal-0.4.0.tar.bz2.md5 or
sha1sum -c Terminal-0.4.0.tar.bz2.sha1.
Release announcements are sent to different mailinglists (almost always to email@example.com, so you're on the safe side subscribing to that one), identi.ca/xfce and twitter.com/xfceofficial.
The status updates on identi.ca/xfce and twitter.com/xfceofficial use the following format:
terminal 0.4.0 released! http://releases.xfce.org/feeds/project/terminal !Xfce
Atom feeds for all projects are available on http://releases.xfce.org/feeds/project/. There also is a dedicated feed for bundle releases of Xfce core components available on http://releases.xfce.org/feeds/collection/xfce. These feeds provide more information about the releases than the posts on identi.ca or Twitter do. There's no central feed for all releases yet, but you can as well subscribe to the feeds offered to you by identi.ca or Twitter.
Mailinglist announcements and feed posts use the same format. Here's a good example for a project release announcement:
xfce4-power-manager 0.8.3 is now available for download from
SHA1 checksum: 2d531b9fc2afec3cff034e1acfc331051d8bf47a
MD5 checksum: 0db6b6f5b13c8b0829c6a07b7dfdc980
What is xfce4-power-manager?
This software is a power manager for the Xfce desktop, Xfce power
manager manages the power sources on the computer and the devices that
can be controlled to reduce their power consumption (such as LCD
brightness level, monitor sleep, CPU frequency scaling). In addition,
xfce4-power-manager provides a set of freedesktop-compliant DBus
interfaces to inform other applications about current power level so
that they can adjust their power consumption, and it provides the
inhibit interface which allows applications to prevent automatic sleep
actions via the power manager; as an example, the operating system’s
package manager should make use of this interface while it is performing
Release notes for 0.8.3
- Provides more standard org.fd.PowerManagement DBus methods and signal
- Make it possible to compile without network manager support.
- Add never show icon to the system tray configuration (bug #5613).
- Fix a typo that prevents from getting the correct critical
configuration (bug #5619).
- Use Gtk as a popup indicator to show the brightness level as the cairo
seems to be
problematic on some hardware. (bug #5544 #5632).
- Better alignement in the interface file, worked by Josef Havran.
This is what the new release manager does for you. I think or rather hope that it provides an efficient way to to keep you posted about what's going on. And hopefully, all of you enjoy our efforts to unify our infrastructure and by that make things more transparent. As always, if you have any ideas for improvements, let us know!