RSSAmplifier

Blog

Jelmer Vernooij

jelmer.ukRSS feed ↗100 posts

Latest posts

Remove-after Annotations for Debian Files

deb-scrub-obsolete is a tool in the debian-codemods suite that tries to identify and remove cruft automatically. It knows about dummy transitional packages, superseded alternatives, and similar patterns it can detect by querying the archive. But some workarounds are too project-specific for a generic tool to recognise on its own. Developers can leave structured comments in their packaging files…

Inquest, a test result repository in Rust

testrepository For a long time I ve used Robert Collins testrepository ( testr ) to run tests in many of the projects I work on. It s a small, focused tool built around a simple idea: decouple the running of tests from the recording and querying of their results. The way it works is straightforward. A test runner emits a subunit stream — a compact binary protocol for test results — and…

Introducing dissolve: Declarative Deprecations for Python APIs

I ve published a new tool called dissolve . It’s aimed at simplifying how library maintainers communicate API changes — and how users of those libraries can automate code migrations. What is it? dissolve allows library maintainers to annotate deprecated functions using a decorator, and lets library users rewrite old calls in their own codebases using a command-line tool. Example (library…

Transcontinental Race No 9

After cycling the Northcape 4000 (from Italy to northern Norway) last year, I signed up for the transcontinental race this year. The Transcontinental is bikepacking race across Europe, self-routed (but with some mandatory checkpoints), unsupported and with a distance of usually somewhere around 4000 km. The cut-off time is 15 days, with the winner usually taking 7-10 days. This year, the route…

Porting Python projects to Rust

I ve recently been working on porting some of my Python code to rust, both for performance reasons, and because of the strong typing in the language. As a fan of Haskell, I also just really enjoy using the language. Porting any large project to a new language can be a challenge. There is a temptation to do a rewrite from the ground-up in idiomatic rust and using all new fancy features of the…

The Kali Janitor

The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. Kali Linux have been running their own instance of the…

Silver Platter Batch Mode

Background Silver-Platter makes it easier to publish automated changes to repositories. However, in its default mode, the only option for reviewing changes before publishing them is to run in dry-run mode. This can be quite cumbersome if you have a lot of repositories. A new batch mode now makes it possible to generate a large number of changes against different repositories using a script, review…

Detecting Package Transitions

Larger transitions in Debian are usually announced on e.g. debian-devel, but it s harder to track the current status of all transitions. Having done a lot of QA uploads recently, I have on occasion uploaded packages involved in a transition. This can be unhelpful for the people handling the transition, but there s also often not much point in uploading if your uploads are going to get stuck.…

Bye bye Batavus

After almost 20 years of service and upwards of 50.000km traveled, it s finally time to retire my good old Batavus. I bought this bike in 2003 for less than 1000 euros, but it s done surprisingly well. It s been across the continent and back a couple of times. The potholes in England have proved too much though and it s developed a fairly large crack in the front tube.

Personal Streaming Audio Server

For a while now, I ve been looking for a good way to stream music from my home music collection on my phone. There are quite a few options for music servers that support streaming. However, Android apps that can stream music from one of those servers tend to be unmaintained, clunky or slow (or more than one of those). It is possible to use something that runs in a web server, but that means no…

Web Hooks for the Janitor

The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. As covered in my post from last week , the Janitor now…

Thousands of Debian packages updated from their upstream Git repository

The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. Linux distributions like Debian fulfill an important function…

Ognibuild

The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. The FOSS world uses a wide variety of different build tools;…

The upstream ontologist

The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. The upstream ontologist is a project that extracts metadata…

Automatic Fixing of Debian Build Dependencies

The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. In my last blogpost , I introduced the buildlog consultant -…

The Buildlog Consultant

The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. Reading build logs Build logs for Debian packages can be…

Debian Janitor: Hosters used by Debian packages

The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. The Janitor knows how to talk to different hosting platforms.…

Debian Janitor: How to Contribute Lintian-Brush Fixers

The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. lintian-brush can currently fix about 150 different issues…

Debian Janitor: Expanding Into Improving Multi-Arch

The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. As of dpkg 1.16.2 and apt 0.8.13, Debian has full support for…

Debian Janitor: All Packages Processed with Lintian-Brush

The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. On 12 July 2019, the Janitor started fixing lintian issues in…

Debian Janitor: The Slow Trickle from Git Repositories to the Debian Archive

The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. Last week’s blog post documented how there are now over…

Debian Janitor: > 60,000 Lintian Issues Automatically Fixed

The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. Scheduling Lintian Fixes To determine which packages to…

Debian Janitor: 8,200 landed changes landed so far

The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. The bot has been submitting merge requests for about seven…

Improvements to Merge Proposals by the Janitor

The Debian Janitor is an automated system that commits fixes for (minor) issues in Debian packages that can be fixed by software. It gradually started proposing merges in early December. The first set of changes sent out ran lintian-brush on sid packages maintained in Git. This post is part of a series about the progress of the Janitor. Since the original post, merge proposals created by the…

The Debian Janitor

` is a new bot that automatically proposes improvements for Debian packages maintained in Git. --> There are a lot of small changes that can be made to the Debian archive to increase the overall quality. Many of these changes are small and have just minor benefits if they are applied to just a single package. Lintian encourages maintainers to fix these problems by pointing out the common ones.…

Silver Platter

Making changes across the open source ecosystem is very hard; software is hosted on different platforms and in many different version control repositories. Not being able to make bulk changes slows down the rate of progress. For example, instead of being able to actively run a a script that strips out an obsolete header file (say DM -Upload-Allowed ) across all Debian packages, we make the linter…

Breezy evolves

Last month Martin, Vincent and I finally released version 3.0.0 of Breezy , a little over a year after we originally forked Bazaar . When we started working on Breezy, it was mostly as a way to keep Bazaar working going forward - in a world where Python 2 has mostly disappeared in favour of Python 3). Improvements Since then, we have also made other improvements. In addition to Python 3 support,…

Lintian Brush

With Debian packages now widely being maintained in Git repositories, there has been an uptick in the number of bulk changes made to Debian packages. Several maintainers are running commands over many packages (e.g. all packages owned by a specific team) to fix common issues in packages. Examples of changes being made include: Updating the Vcs-Git and Vcs-Browser URLs after migrating from alioth…

Breezy: Forking Bazaar

A couple of months ago, Martin and I announced a friendly fork of Bazaar, named Breezy . It s been 5 years since I wrote a Bazaar retrospective and around 6 since I seriously contributed to the Bazaar codebase. Goals We don t have any grand ambitions for Breezy; the main goal is to keep Bazaar usable going forward. Your open source projects should still be using Git . The main changes we have made…

Xandikos, a lightweight Git-backed CalDAV/CardDAV server

For the last couple of years, I have self-hosted my calendar and address book data. Originally I just kept local calendars and address books in Evolution, but later I moved to a self-hosted CalDAV/CardDAV server and a plethora of clients. CalDAV/CardDAV CalDAV and CardDAV are standards for accessing, managing, and sharing calendaring and addressbook information based on the iCalendar format that…

The Samba Buildfarm

Portability has always been very important to Samba. Nowadays Samba is mostly used on top of Linux, but Tridge developed the early versions of his SMB implementation on a Sun workstation. A few years later, when the project was being picked up, it was ported to Linux and eventually to a large number of other free and non-free Unix-like operating systems. Initially regression testing on different…

Autonomous Shard Distributed Databases

Distributed databases are hard. Distributed databases where you don t have full control over what shards run which version of your software are even harder, because it becomes near impossible to deal with fallout when things go wrong. For lack of a better term (is there one?), I ll refer to these databases as Autonomous Shard Distributed Databases. Distributed version control systems are an…

Using Propellor for configuration management

For a while, I ve been wanting to set up configuration management for my home network. With half a dozen servers, a VPS and a workstation it is not big, but large enough to make it annoying to manually log into each machine for network-wide changes. Most of the servers I have are low-end ARM machines, each responsible for a couple of tasks. Most of my machines run Debian or something derived from…

The state of distributed bug trackers

A whopping 5 years ago, LWN ran a story about distributed bug trackers. This was during the early waves of distributed version control adoption, and so everybody was looking for other things that could benefit from decentralization. TL ; DR : Not much has changed since. The potential benefits of a distributed bug tracker are similar to those of a distributed version control system: ability to fork…

Quantified Self

Dear lazyweb, I ve been reading about what the rest of the world seems to be calling quantified self . In essence, it is tracking of personal data like activity, usually with the goal of data-driven decision making. Or to take a less abstract common example: counting the number of steps you take each day to motivate yourself to take more. I wish it d been given a less annoying woolly name but this…

Porcelain in Dulwich

porcelain is the term that is usually used in the Git world to refer to the user-facing parts. This is opposed to the lower layers: the plumbing. For a long time, I have resisted the idea of including a porcelain layer in Dulwich. The main reason for this is that I don t consider Dulwich a full reimplementation of Git in Python. Rather, it s a library that Python tools can use to interact with…

Book Review: Bazaar Version Control

Packt recently published a book on Version Control using Bazaar written by Janos Gyerik . I was curious what the book was like, and they kindly provided me with a digital copy. The book is split into roughly five sections: an introduction to version control using Bazaar s main commands, an overview of the available workflows, some chapters on the available extensions and integration, some more…

Migrating packaging from Bazaar to Git

A while ago I migrated most of my packages from Bazaar to Git. The rest of the world has decided to use Git for version control, and I don t have enough reason to stubbornly stick with Bazaar and make it harder for myself to collaborate with others. So I m moving away from a workflow I know and have polished over the last few years - including the various bzr plugins and other tools involved.…

Kiln using Dulwich

http://blog.fogcreek.com/kiln-harmony-internals-the-basics/ Nice to see that #Kiln is also using #Dulwich for some of its Git support. Unfortunately I haven t been able to spend as much time on it recently as it deserves (busy changing jobs and countries), but hopefully that will change soon.

OpenChange 2.0 released

Apparently tis the season for major software releases. Julien has just announced the release of OpenChange 2.0, codenamed quadrant . This release fixes a number of important bugs and enables integration with SOGo . With the SOGo backend, it is now possible to set up an Exchange-compatible groupware server that can be accessed from Outlook without the need to connect any connectors. See the release…

Bazaar: A retrospective

For the last 7 years I ve been involved in the Bazaar project. Since I am slowly stepping down, I recently wrote a retrospective on the project as I experienced it for the last 7 years. Thanks to a few kind people for proofreading earlier drafts; if you spot any errors, please let me know in the comments.

Samba 4.0.0, finally

This afternoon we released version 4.0.0 of Samba. This is a significant milestone, and I m very proud of the result. Samba 4 is the first version that can be a domain controller in an Active Directory domain. We embarked on this journey almost a decade ago - the first commit is from August 2003. It s been a long and bumpy ride. I hardly recognize the people in this team photo from 2003 (I m…

Documentation

From LWN s weekly edition: Documentation is the sort of thing that will never be great unless someone from outside contributes it (since the developers can never remember which parts are hard to understand). — Avery Pennarun

Back to blogging

Hello Internet. After a long silence and several fights with Serendipity I am back. The contents from my old Serendipity install have been migrated to restructuredText in pelican . Among other things, this means I can now get rid of the last PHP install I had left on my server.

Last day at Canonical

This Friday will be my last day at Canonical . It has been a lot of fun working here. There is so much I have learned in the last three years. I m going to miss my colleagues. Over the last couple of months I have slowly stepped down from my involvement in Bazaar and the Bazaar packaging in Debian and Ubuntu. I would like to stay involved in Ubuntu, but we will see how that goes. I m taking some…

Summer of Code 2011

The Samba team is once again participating in the Summer of Code this year. This year we have 4 students working on various projects related to Samba. This year I am mentoring Dhananjay Sathe, who is improving the GTK + frontends for Samba . In particular, he is making it possible to manage shares and users of a remote Samba or Windows machine. Dhananjay is also blogging about his progress .

libapache2-mod-bzr

During the last two days I hacked together a Bazaar module for Apache . This module makes it possible to easily enable the Bazaar smart server for Bazaar branches. It also can display a simple placeholder page for Bazaar branches without working tree. It s surprisingly easy to write Apache modules. The main advantage this has over a mod_wsgi / mod_python / mod_fcgi setup is that it doesn t require…

On the way to Samba 4: Part 2

It s been more than a month since the last status update on my Samba 4 work - much more than the two weeks I promised. During the holidays I finally managed to release the new alpha of Samba 4 , as well as releases of some of our companion libraries ( tdb , talloc , tevent and ldb ). The release includes a significant amount of bug fixes and a lot of work towards a properly functioning Active…

On the way to Samba 4: Part 1

After Samba XP 2008 Andrew and I started keeping a wiki page with our bi-weekly goals and achievements for Samba 4. Because planning in a Free Software project is hard (time availability and priorities change over time, and other volunteers are equally unpredictable) we called this our Fantasy Page ; it listed things we wanted to work on next ( fantasies ), but reality being what it is we would…

Mumble and bluetooth

Mumble is an open source, low-latency, high quality voice chat application that we re using at Canonical, and which Samba has recently also adopted. After I busted the cable of my cabled headset and inspired by Matt s post about Mumble and Bluetooth I bought a cheap Nokia Bluetooth headset that works with my laptop as well as my phone. By using BlueMan I even found that the headset worked out of…