To upload a package correctly, do the following:

* Ensure that your build environment is set up correctly to avoid .svn
  directories being included in your uploads.
  The following settings in your configuration should do this (assuming
  'debuild' is used to build the package):
  - ~/.bashrc:
    export DH_ALWAYS_EXCLUDE=CVS:.svn
  - ~/.devscripts:
    DEBUILD_DPKG_BUILDPACKAGE_OPTS="-i -I"
    DEBUILD_PRESERVE_ENVVARS=DH_ALWAYS_EXCLUDE
    # You may also want to add this setting if you work on D-I components
    # for which you're not an uploader.
    DEBCHANGE_AUTO_NMU=no
   
  If you use pdebuild from pbuilder the following settings should be used:
  - ~/.pbuilderrc
    export DH_ALWAYS_EXCLUDE=CVS:.svn
    DEBBUILDOPTS="-i -I"

* Update from Subversion:
  svn up

* Check that you don't have any uncommitted changes or files that do not
  belong in the package:
  svn st

* Update the translator info in debian/changelog by copying and pasting
  the output (if any) of the following command:
  scripts/l10n/output-l10n-changes -d .
  Take care that you preserve the UTF-8 encoding of the changes!

* Change the distribution to unstable:
  dch -r

* Build:
  debuild

* Check the resulting package:
  debc, debdiff, etc.

* Commit and tag the release:
  debcommit --release

Since many packages in d-i only contain shell scripts and the like, you can
build them even if they aren't for your normal host architecture: just pass
-a<architecture> to most of the devscripts commands (debuild, debsign, debc,
and debrelease, but not debcommit and not necessarily debdiff). Be careful
not to do this for packages containing compiled C code; if you do this by
accident, you'll get a "binary-from-other-architecture" warning from
Lintian.
