Autodeb

autodeb

Introduction


Autodeb is a work-in-progress service developed in the context of a Google Summer of Code project. The main goals of the service are to automate building, testing and distributing Debian packages.

The service focuses on two main use cases:

1. Generate and distribute backports and packages for new upstream versions automatically

Autodeb will periodically attempt to update all packages in the Debian archive to new upstream versions when they are available. It will also try to backport all packages in the archive to previous Debian versions. Resulting packages will be distributed and the build logs will be made available. We hope that the resulting information will be useful to package maintainers. The resulting builds could also be used by Debian users so that they are left with a deb-based alternative when there are no packages for their needs in Debian itself.

2. Enable Debian package maintainers to test their packages (and their reverse dependencies) before each upload

Autodeb will empower Debian package maintainers by giving them easy access to thorough testing before every upload. It will run tests that are not often run due to lack of time or resources. Autodeb will provide a dput-comptatible API. Instead of uploading your packages directly to the ftp-master upload queue, you may upload your source packages to Autodeb where they will be built on all release architectures. Autopkgtests will also be ran on all resulting deb packages and their reverse dependencies. Optionally, the upload will be forwarded to the ftp-master queue if all tests succeed.

For more information on the project, refer to the original announcement or to the salsa.debian.org project page.

Getting started with the service


1. Associating a PGP key to your account

To get started with using Autodeb, the first thing that you need to do is log into the service and associate a PGP key with your account. This is done from the pgp-keys page.

2. Adding autodeb to your dput configuration

This server has a REST API that can be very useful if you want to build automated tools to interact with it. However, it also accepts uploads via dput. You can add autodeb to your configured dput hosts by adding the following lines to ~/.dput.cf:


[autodeb]
fqdn = auto.debian.net
incoming = /upload
method = https
allowed_distributions = .

3. Uploading a package

Before you upload a package, you should know that autodeb only accepts signed source uploads. Anything other than that will be rejected with an error message.

You may upload a package to autodeb with the following command:

    $ dput autodeb <package.changes>

Note that neither dput nor dput-ng display http error messages, they only display the error code. Autodeb always tries to return a 4XX error code when there is something wrong with the upload. If your uploads yields a 5XX code, it might be a good idea to get in touch with us so that we can fix the bug.

If your upload was rejected, you can obtain the error message by re-uploading the failed file with curl:

    $ FILE=<filename> ; curl -w "\n" -X PUT -T $FILE https://auto.debian.net/upload/$FILE

4. Obtaining logs

Now that you have completed an upload, it will be visible in the uploads page with a dget-compatible .dsc link. A build job will also be created and it will be visible in the jobs page. As soon as the job is completed by one of the autodeb workers, the logs will be available for download.

What's next


In the future, Autodeb will:

  • generate autopkgtests jobs for both the uploaded package
  • generate autopkgtests jobs for the package's dependencies
  • host the resulting .debs
  • provide a range of controls for the build environment
  • automatically backport and/or update packages from the Debian archive to new upstream versions