[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: