workshop proposal: QA uploads
Γεια χαρά,
Δυστυχώς δεν θα είμαι στο συνέδριο (είμαι λίγο μακρυά) αλλά εφόσον βλέπω ότι
υπάρχει ενδιαφέρον, ετοίμασα ένα hands-on οδηγό για ετοιμασία QA uploads
(επισύναπτόμενο ένα πρώτο draft). Είναι ένας πρακτικός μπούσουλας για να
ξεκινήσει κανείς αλλά με πολλές απαιτήσεις από τον αναγνώστη :)
Για να λειτουργήσει θα πρέπει αυτοί που ενδιαφέρονται να ξεκινήσουν την
προετοιμασία πολύ πριν το workshop, κ να υπάρχει τουλάχιστον ένα άτομο στο
workshop που να μπορεί να απαντήσει σε όσους «κολλάνε» σε non-trivial
προβλήματα.
Ιδανικά οι ενδιαφερόμενοι θα ξεκινούσαν τώρα κ θα ανέφεραν την πρόοδό τους κ
τα προβλήματα που αντιμετωπίζουν στη λίστα ;)
-S
disclaimer: I'm not a DD :)
qa uploads primer
0. assumptions
- you are familiar with shell scripting
- you have access to an up-to-date debian unstable installation
- you have a gpg private/public key pair
- you know how to look up man pages, docs, and find and install packages, and
generally get things done despite underspecified instructions ;)
1. preparation
- read or skim through the table of contents of the ``Debian new maintainer's
guide'' (so that you know where to lookup things you might need)
- install (and become aware of the purpose of) the packages listed in section
1.1 of the above guide (Overview of Debian Maintainer Tools)
- read section 6 of the debian developer's reference (Best Packaging
Practices); this is NOT optional
2. getting started with a package
- find a reasonably healthy orphaned package (henceforth called $PACKAGE)
- choose one that has at least a few tens of installations
and no severe/critical/grave bugs in http://bugs.debian.org/$PACKAGE)
- an orphaned package has its Maintainer set to
``Debian QA Group <packages@qa.debian.org>''
- conveniently, you can find all orphaned packages along with their popcon
(popularity stats) in
http://qa.debian.org/developer.php?login=packages@qa.debian.org
- look up the package's open bugs and lintian warnings
(http://lintian.debian.org/full/packages%40qa.debian.org.html#$PACKAGE)
- asses whether you can make a valuable contribution (if not, look for another
package)
- get it's source (apt-get source $PACKAGE)
- cd ${PACKAGE}-x.y.z
3. carrying out the actual update
- in the simplest case, you'll just have to bump up the Standards-Version in
the control file to the current debian-policy version
- the current policy version is in /usr/share/doc/debian-policy/policy.txt.gz
- to see what changes between consecutive versions of the policy, lookup
/usr/share/doc/debian-policy/upgrading-checklist.txt.gz)
- you might have to do a change to fix a lintian warning (see lintian url
above for descriptions of lintian tags)
- it's okay to edit directly anything under debian/* to fix things
- it's NOT okay to edit any upstream file; for that, you'll have to use a
patch management system (such as quilt; see brief guide below)
- once you're done, run ``dch -i'' (opens up debian/changelog with $EDITOR
where you describe what changes you've made (you DID read section 6.3 of the
developer's reference, right?)
- the first entry in debian changelog should be ``QA upload''
- if the package is team-maintained (see the Maintainer field in
debian/control, you might have to commit your changes to the team's
repository; but this shouldn't be the case because we said that you'd work
on an orphaned package ;)
4. building the new upload files (.dsc and .diff)
- in ${PACKAGE}-x.y.z, run ``dpkg-build''
- while still testing the package build with ``dpkg-build -us -uc'' to avoid
having to sign the package every time, but DO sign the final build
- repeat steps 3-4 until the build works; to cleanup intermediate files run
``fakeroot make -f debian/rules clean''
5. test the new package for policy violations
- when you build successfully, you should have a .dsc and a .diff.gz at the
parent directory of ${PACKAGE}-x.y.z, and one or more .deb files
- check the .deb files with ``lintian -Ivi *deb''; do any requires changes to
fix any reported issues (you may ignore messages up to warning level, but
fix them if you can)
- did I mention lintian? it's a great way to check for policy violations!
read /usr/share/doc/lintian/lintian.html/index.html
- check that your newly-built .deb installs, uninstalls, and re-installs
without problems (you did choose a non-critical package, so this should be
okay even if your package is horribly broken)
- if you have modified the package's dependencies, use pbuilder to confirm
that the package builds successfully (ie, pulls all required dependencies)
in a minimal debian installation:
- prepare a pbuilder installation with ``sudo pbduilder --create''
- in the ${PACKAGE}-x.y.z directory, run ``pdebuild'' (which basically runs
dpkg-build in a minimal debian installation)
6. get your package into the unstable archive
- you need a DD to sponsor your package
- please don't even bother if you haven't checked it with lintian, and fixed
any reported errors, or else you'll just waste people's time
- sign up to http://mentors.debian.net and upload you package there (you'll
have to find out how to use dput)
- Request For Sponsoring in debian-mentors@lists.debian.org; set the email's
subject to ``RFS: $PACKAGE (QA upload)''
- follow up on any comments people might give; repeat steps 3-6 if necessary
- well done, you've made a contribution to debian :)
(TODO: a one min guide to quilt)
References
http://people.debian.org/~mpalmer/debian-mentors_FAQ.html
http://wiki.debian.org/HowToPackageForDebian
Reply to: