Through Debian

Generally, if you are publishing free and open source software going through Debian first is the best path. This way ensures that your package will have a dedicated maintainer. It also will reach the largest number of users as it will be available in not just Debian and Ubuntu but all of their derivatives as well. Some useful links for requesting/providing new packages in Debian:

REVU - a web-based tool to which Ubuntu contributors can upload new packages for review by Ubuntu Developers for inclusion into Ubuntu.

Sponsorship Process - After entering Ubuntu, you can maintain your package through the sponsorship process.

Personal Package Archives

Beyond the official Ubuntu and Debian channels, Launchpad offers you the ability to distribute Debian packages directly to your users through its Personal Package Archives or PPAs for short. One particularly useful aspect of a PPA is that you can provide daily builds of your software for testing purposes.

Unless your package does something specially for Ubuntu that Debian can't benefit from, please go through the debian route. You're more likely to get a sponsor from #debian-python than #debian-mentors, however you should follow both's policies, etc.
–
UmangJul 29 '10 at 6:18

Background

Ubuntu doesn't allow upload of binary packages, but only source packages which are build by build servers.

Getting your packages directly in Ubuntu repositories is not so easy. It is recommended to have it first in Debian and get it synced from there. So for now you can put it there in your PPA. You can create a PPA with your Launchpad account.

Uploading to PPA

If you used debuild to build the package, then your work is a bit more easier. debuild generates many files including .dsc and .changes

You might have used .dsc file with pbuilder-dist to create the deb file, so now all you need to do is to publish it to a PPA for now. Use

dput ppa:yourlaunchpadusername/ppaname foo.changes

You will need to sign the package before upload with the same key as you have uploaded in your Launchpad Account

Pushing in Debian/Ubuntu

The pushing of your package in Ubuntu/Debian repositories includes a review from the maintainer and the ftp masters at Debian. The license has to be very clear with no ambiguity. You might need a sponsor for uploading to Debian

Filing an ITP

When the package is available in experimental/unstable then you can use requestsync tool to file a sync request on LP. For getting requestsync working you need to run manage-credentials to login to Launchpad

While getting into the default Ubuntu repositories is hard and might not be right for your project (At least yet), you can set up a project in Launchpad and set up a PPA there so they can install it via PPA. More on that in the Launchpad help sections, particularly here.

You can wait for some time because the Ubuntu devs have set up a new repository for Ubuntu 10.10 called extras.ubuntu.com for application developers to submit packages.The app will have to pass through application review first though.