X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=developers-reference.sgml;h=07cc7af3b37b9c351e465de252049262df5896bc;hb=0e19fc5f70adb46cda4893c755890ff9944c0f21;hp=e0c4089c8b99294fbae48fa7b22ccc95a352c229;hpb=123b502a4b557b0a1aa3b127c9bec0ba6cfec749;p=developers-reference.git diff --git a/developers-reference.sgml b/developers-reference.sgml index e0c4089..07cc7af 100644 --- a/developers-reference.sgml +++ b/developers-reference.sgml @@ -6,7 +6,7 @@ %commondata; - + + Architecture-independent data +

+ It is not uncommon to have a large amount of architecture-independent + data packaged with a program. For example, collection of icons, + wallpapers or other graphic files, or audio files. If the size of + this data is negligible compared to the size of the remainder of the + package, you can keep it all in the same package. + +

+ However, if the size of the data is considerable, consider splitting + it out into a separate, architecture-independent package + ("_all.deb"). By doing this, you avoid needless duplication of the + same data into eleven or more .debs per each architecture. While + this adds some extra overhead into the Packages files, it can save a + lot of disk space on Debian mirrors, and it also reduces processing + time of Lintian or Linda when run over the entire Debian archive. + + + + + + Best practices for debian/changelog +

+The following practices supplement the .

+ + + Writing useful changelog entries +

+The changelog entry for a package revision documents changes in that +revision, and only them. Concentrate on describing changes you did since +the last version that are worth mentioning. +

+Focus on what was changed; who, how and when are usually less +important. Having said that, remember to politely attribute people who have +provided notable help in making the package (e.g. those who have sent in +patches). +

+There's no need to elaborate the trivial and obvious changes. You can also +aggregate several such changes in one entry. However, don't be overly terse +if you have undertaken a major change. Be especially clear if there are +changes that affect the behaviour of the program -- and for further +explanations, use the README.Debian file. +

+Use common English language, one which the majority of viewers can +understand. Avoid abbreviations, "tech-speak" and jargon when explaining +changes that close bugs, especially if the said bugs were filed by users +that did not strike you as particularly techically savvy. Also, be polite, +don't swear. +

+It is customary to prefix changelog entries with the names of the files that +were changed. There's no need to explicitely list each and every last one of +the changed files, especially if the change was small or repetitive -- use +wildcard characters wisely. +

+When referring to bugs, don't assume anything -- say what the problem was, +how it was fixed, and append the "closes: #nnnnn" string. +See for more information. + + + Common misconceptions about changelog entries +

+The changelog entries should not document generic packaging +issues ("Hey, if you're looking for foo.conf, it's in /etc/blah/."), since +administrators and users are supposed to be at least remotely acquainted +with how such things are generally arranged on Debian systems. Do, however, +mention if you change the location of a configuration file. +

+The only bugs closed with a changelog entry should be those that are +actually fixed in the same package revision. Closing bugs unrelated bugs in +the changelog is considered very bad practice. See . +

+The changelog entries should not be used for random +discussion with bug reporters ("I don't see segfaults when starting foo +with option bar; send in more info.") or pleas for help ("The bug list +on this package is huge, please lend me a hand."). Such things usually +won't be noticed by their target audience, but will on the other hand +annoy people who wish to read information about actual changes in the +package. Please see for more information on +how to use the bug tracking system. +

+It is an old tradition to acknowledge bugs fixed in non-maintainer uploads +in the first changelog entry of the real maintainer. You don't have to +follow it, though: if you are certain that you will include the changes from +the NMU in your next release, you can simply close the bugs the normal way. +It's usually polite to note that the bugs were fixed by another developer. +

+Changelogs shouldn't include general statements on life, the universe and +everything ("Sorry this upload took me so long, but I caught the flu."). +Exceptions can be made if the comment is funny ;-) Obviously, this is +subjective, so it's likely best if it's kept out of technical documentation +such as changelogs. + + + Common errors in changelog entries +

+ + * Fixed all outstanding bugs. + +

+This doesn't tell readers anything too useful, obviously. Don't do that(TM). + + + * Applied patch from Jane Random. + +

+What was the patch about? + + + * Late night install target overhaul. + +

+Overhaul which accomplished...? Is the mention of late night supposed to +remind us that we shouldn't trust that code? + + + * Fix vsync FU w/ ancient CRTs. + +

+Too many acronyms, and it's not overly clear what the fuckup (oops, +a curse word!) was actually about, or how it was fixed. + + + * This is not a bug. Closes: #nnnnnn + +

+First of all, there's absolutely no need to upload the package to convey +this information. Use the bug tracking system! Secondly, there's no +explanation as to why the report is not a bug. + + + * Has been fixed for ages, but I forgot to close. Closes: #54321 + +

+If for some reason you didn't mention the bug number in a previous changelog +entry, there's no problem, just close the bug normally in the BTS. There's +no need to touch the changelog file, presuming the description of the fix is +already in (this applies to the fixes by the upstream authors/maintainers as +well, you don't have to track bugs that they fixed ages ago in your +changelog). + + + * Closes: #12345, #12346, #15432 + +

+Where's the description?! If you can't think of a descriptive message, start +by inserting the title of each different bug. @@ -3747,8 +3904,33 @@ packages at . Those reports contain the latest lintian but has a different set of checks. Its written in Python rather than Perl.

+ + + debdiff +

+debdiff (from the devscripts package) +compares file lists and control files of two packages. It is a simple +regression test, as it will help you notice if the number of binary +packages has changed since the last upload, or if something's changed +in the control file. Of course, some of the changes it reports will be +all right, but it can help you prevent various accidents. +

+You can run it over a pair of binary packages: + +debdiff package_1-1_arch.deb package_2-1_arch.deb + +

+Or even a pair of changes files: + +debdiff package_1-1_arch.changes package_2-1_arch.changes + +

+For more information please see . + + + Helpers for debian/rules

@@ -3997,6 +4179,29 @@ directory of your package. For instance, when editing debian/changelog, there are handy functions for finalizing a version and listing the package's current bugs.

+ + + dpkg-depcheck +

+dpkg-depcheck (from the devscripts package) +runs a command under strace to determine all the packages that +were used by the said command. +

+For Debian packages, this is useful when you have to compose a +Build-Depends line for your new package: running the build +process through dpkg-depcheck will provide you with a +good first approximation of the build-dependencies. For example: + +dpkg-depcheck -b debian/rules build + +

+dpkg-depcheck can also be used to check for run-time +dependencies, especially if your package uses exec(2) to run other +programs. +

+For more information please see . + +