Many developers use some type of distributed revision control system (DRCS) which allows numerous programmers to work on the same software project. Bazaar is a popular DRCS that works with Launchpad - a site that hosts open-source Linux software. However, some programmers have difficulties setting up a Bazaar and Launchpad project, and the documentation on the Internet seems poor or complicated. This tutorial should change all of that. I will use my newest project as the example for this tutorial. The first step requires the programmer to make a folder containing their code. For example, I made a folder titled "DOSEMU"; inside are miscellaneous files and backups. The main source code folder is "trunk". This folder contains my latest developmental code. Next, we need to install Bazaar and Bazaar-Explorer by typing the below command. Bazaar (bzr) is the command-line system and Bazaar-Explorer is the graphical user interface. Allow the below command to install any needed dependencies. Code: sudo apt-get install bzr bzr-explorer While that installs, now is a good time to sign up for a Launchpad account. Go to https://launchpad.net/ and click the "Log in/Register". This step is easy and self-explanatory. Once you have created a Launchpad account and installed Bazaar, the project can be prepared for Launchpad. Open Bazaar-Explorer and click "Start a new project". Next, click the icon "Initialize". This will bring up a window to create the Bazaar branch. Browse for your project; select your "trunk" folder. Next, select the branch type. I chose "Plain branch", but your needs may differ from mine. Once finished, click "Okay". Below are the branches to choose from and their definitions. Colocated branches - Create a working tree at location pointing to a trunk branch in an embedded shared repository. Feature branches - Create a shared repository at location then create a trunk branch inside that repository. Plain branch - Create a plain branch at location. If inside a shared repository, revisions will be stored there. Otherwise the revisions will be stored in the branch. Shared repository - Create a repository at location. Branches created under the repository will use it for storing revisions. CITE: The definitions above are from http://doc.bazaar.canonical.com/explorer/en/visual-tour-windows.html Now, the main window will change. To add the files to the current revision, click the blue plus-sign. This causes a window to pop up with all of the projects files in the trunk folder. If all of the files are there, confirm the selection. The files will now be added to the current revision. The main window will refresh displaying the added files. This is the perfect time to setup the project on Launchpad. Go to https://launchpad.net/projects/ new after you have logged into Launchpad. Answer the questions for your project and click continue. If you get an error, the problem answer will be marked and the rest of the data will remain in the boxes. The next window will display a list of projects that appear similar to yours. The page asks if your project is a duplicate of any of them. If not, or you if you want to make an existing project different from the current, continue on. Next, fill out more information about your project. It is best that you fully understand what the different licenses mean. View this link (http://opensource.org/licenses/category) for information on a particular license. After all of that is complete, your project page has been made. On the right, you will see links under "Configuration Process". Click each one and answer the question on each one page at a time from top to bottom. The bug track is the website or service that keeps track of bugs and allows users to report issues. The answers forum is the place where users can ask questions about the software. The translation settings control where and who can perform translations for the project. Switch over to Bazaar-Explorer and click "Commit". In the window that pops up, type a message for your commit. Developers usually type messages like "Bug fixes include" or "Added feature X". For a first commit, you could type "The first commit of project X.". Once finished, click commit. Then, switch over to a terminal in your projects main folder (the one containing trunk) and type "bzr update". Next, go back to your Launchpad project. The last link under "Configuration Process" is "Configure project branch". On this page, you will see a command in the form "bzr push lp:~USERNAME/PROJECT/trunk". Paste the given command into the terminal and hit enter. Once complete, click the "choose" link next to the branch box on that same Launchpad page. Type your projects address in the form lp:~USERNAME/PROJECT/trunk replacing USERNAME and PROJECT with the correct data in the open pop-up window. Click the magnifying glass and select your project below if found. Congratulations, as long as everything went well, your project is now on Launchpad. However, there is still more to do (mostly optional configuration). On the main page, you can change many settings. Configure Branding - Change the logo/icon/symbol of the project. Programming Languages - List the languages used in your software. Maintainer – The main administrator/boss/leader of project. Driver – Manages bugs and blueprints Change Details – Information displayed at the top of the main project screen about your hosted software. Announcements - RSS feeds concerning your project. To create a release for download, gzip the files in the trunk folder. Move the tarball up one directory from trunk or to your designated release folder of choice. In a terminal that is in the same directory as the tarball, type "gpg --armor --sign --detach-sig ./YOUR_TARBALL.EXTENSION". Next, on your projects main Launchpad page, click "trunk", then scroll down and select "Create Release". In the new window, click "Create Milestone" and fill out the questions. If you are releasing the downloadable file today, then for "target date" enter today's date. When finished with the pop-up box, fill in the other data and press the "Create Release" button. Next, click on your release version and scroll down to upload the tarball and ASC file (optional) you have created. NOTE: To create the ASC file, you must have a valid GPG/PGP key. Creating one is beyond the scope of this tutorial. After all of these tasks are complete, your project is fully setup and you are ready to host your project.