From Fedora Project Wiki

Workflow for a typical package update

0. Update your local source area. Use 'cvs update' in the branch you will be updating, and also make sure and update your ../common/ and ../../common directories so you have the latest Makefile.common changes.

1. Get all your updated files in place for the new version.

a. Update your .spec file for the new version/release.

b. Make sure to Add a changelog entry.

c. Download and place the new source in your working directory.

2. Test locally using 'make mockbuild' or 'make i386' or 'make x86_64' or 'make ppc'

3. Update your sources in the lookaside cache with:

new-sources FILES="yournewtarball.tar.gz"

This will upload your source file, and update your .cvsignore and sources files.

4. Run a diff to make sure your spec changes make sense:

run 'cvs diff yourpackage.spec' to make sure your changes make sense against the version thats in CVS already.

5. Check in your changes:

a. Commit your changes to CVS with 'cvs commit source .cvsignore yourpackage.spec'

b. Make sure and enter some information about the checkin.

6. Tag your files:

a. Tag your files with 'make tag'

b. If you get an error with your tag see the UsingCvsFaq link below.

7. Request a build of your package:

a. 'make build' in the branch directory you are working in should do the right thing on all branches. In FC-5 and FC-6 it will use plague-client, in F-7 and devel it will use koji.

b. With plague builds your job will be queued and run in the background.

c. With koji builds your job will be started and monitored in the forground. You can control-c this monitoring at any time and your job will continue.

d. If your build fails you will get an email with links to the build logs, go back to step 1 and fix the problems.

8. For FC-5 and FC-6 you are done. Your packages should be pushed out with the next update push.

9. For F-7, you will need to use the bodhi tool to manage your update:

a. Login with your Fedora Account System login/password at:

b. Click on "New update" and fill in info about your package. Use the full name-version-release.

c. This will move your update to "Pending". If it looks good, use the "push" button to move it to the Testing.

d. Wait for feedback or testers to comment, or time to pass, then use the "push" button to move it to "Stable updates".

10. For devel, you are done. Your package will be in the next rawhide push.