The aim of this article is to collect the needed steps/tips (a little more than what's in the DSA email) once you finally reach the state of DD. A similar collection is DebianServiceForDD.

This article should probably be merged into a new section in the first chapter of the developers-reference.

Initial Steps

So first go and update your information at

Then, a really nice feature is using ssh key authentication, as written at and

Then update your DEBEMAIL shell variable, and all other configuration files where your previous email address was written (to name one, ~/.reportbugrc)

DDPO Pages

All your previous uploads are under a DDPO page (let's take the example from my own) but now you (probably) start using your account for future upload (like me).

Since uploading just to change the email address is damn wrong, it would be helpful to merge the old account into the new one.

Currently there is a way, described on DDPO main page: send an email to and issue a subscribe <source package name> [<section>] command (even more in the same email).

As explained in this bug 499638 (where I asked to provide a way to do it a single command), there is another way: keep looking at the old DDPO page but adding the address as uploader, to show packages sponsored by that id.

Maybe, the best solution is to use names instead of emails, Sandro Tosi, that groups up all the info for that guy (of course if you don't have an homonyms ;) )


All the bugs you submitted were filed with a different address, you can use the link on the BTS page to see them and use bts submitter <bugnr> ! commands to change the bugsubmitter (on unarchived bugs) when you changed the DEBEMAIL shell variable.

If you want to change the bugsubmitter and owner of all bugs in a list of e-mails, archived and unarchived, you can use this shell script:


# export
# ./bts-submitter ... | mail

set -e

for field in submitter owner
    for email in $@
        echo "# bugs with $field $email"
        for bug in `bts select $field:$email`
            echo $field $bug !
echo thanks

GPG Key Sign Offering

Consider adding yourself to Debian GPG Signing Coordination page, so that other in need for a sign on their key by a DD could leverage your brand new status :)


Account migration

Start looking at this faq and request a password for your new account.

Then "Request to join", with your new account, all your previous teams (except collab-maint where all DD have write access by default) and remove the old account from all the team/mailing list/notification you're subscribed (the small trash icon next to team name on the home page). When you're done, ask the alioth admins to remove your unused -guest account.

VCS Update

If you have chosen to use a proper setup, there is not much to do here at all. You just edit your ~/.ssh/config file to replace the User entry for alioth to change it to read myuser instead of myuser-guest. The entry propably should look similar to this after your change:

User myuser

If you on the other hand have chosen to put the user into the checkout URL, feel encouraged to switch to using a single-point to store the username for the hosts instead of duplicating it loads of time, making it a maintenance hell.


I have checked out many packages with ssh+svn://<user>, so how I have to change that username. For svn you can use:

svn switch --relocate <current URL> <new URL>

so, just to automate it a little use this (to be run in the working dir):

URL=$(svn info | awk '/URL/{ print $2 }') ; svn switch --relocate $URL $(echo $URL | sed 's/myuser-guest@//')

that parse the URL from the svn info command and switch to a new one (you might need to change the sed command to adapt to your needs). A real example:

$ svn info | grep URL
URL: svn+ssh://

$ URL=$(svn info | awk '/URL/{ print $2 }') ; svn switch --relocate $URL $(echo $URL | sed 's/morph-guest@//')

$ svn info | grep URL
URL: svn+ssh://

If you use SVK, you can use

svk mirror --list
svk mirror --relocate //mirror/$repo svn+ssh://<user>$repo


For example, I worked on libpqxx with my jackyf-guest account. A replacement procedure follows:

$ git remote -v
origin  ssh://
$ git remote rm origin
$ git remote add origin ssh://


For example, I worked on webwml with my user-guest account and now my DD account is user. A replacement procedure follows, from the root of your CVS local copy:

$  find . -path '*/CVS/Root' -exec sed -i 's/user-guest/user/' '{}' \;

E-Mail Setup in General

Many DDs prefer to use their address when communicating with or via Debian or derivatives. Some mail programs allow to automate this:


Use send-hooks in your .muttrc:

# Default value to reset the value on the next mail
send-hook . 'my_hdr From: Axel Beckert <>'
send-hook . 'unmy_hdr Organization'
send-hook . 'set signature="~/.mutt/signatures/default"'

# Use address when sending to Debian or Ubuntu related addresses
send-hook '~C "@(.*\.)?(debian|ubuntu|launchpad)\."' 'my_hdr From: Axel Beckert <>'
send-hook '~C "@(.*\.)?(debian|ubuntu|launchpad)\."' 'my_hdr Organization: The Debian Project'
send-hook '~C "@(.*\.)?(debian|ubuntu|launchpad)\."' 'set signature="~/.mutt/signatures/debian"'

That way your address is always used if one of the recipients' e-mail address (including the BTS) contain the strings debian, ubuntu or launchpad (followed by a dot).


Being a Debian contributor confers certain benefits when dealing with several external organisations. You may want to use those benefits.