chiark / gitweb /
Update explanation of best practice for closing bugs, seems to
[developers-reference.git] / pkgs.dbk
index 3a2813b1ac580331444101bed94de0d7a0afb2d3..d96c0ae8ac6c88d7ee3e124928c656ff5b4cc72a 100644 (file)
--- a/pkgs.dbk
+++ b/pkgs.dbk
@@ -270,7 +270,7 @@ The package build process extracts this information from the first line of the
 </para>
 <para>
 There are several possible values for this field: <literal>stable</literal>,
-<literal>unstable</literal>, <litersl>testing-proposed-updates</literal> and
+<literal>unstable</literal>, <literal>testing-proposed-updates</literal> and
 <literal>experimental</literal>.  Normally, packages are uploaded into
 <literal>unstable</literal>.
 </para>
@@ -662,11 +662,25 @@ procedure</ulink>.
 If the bug is real but it's caused by another package, just reassign the bug to
 the right package.  If you don't know which package it should be reassigned to,
 you should ask for help on <link linkend="irc-channels">IRC</link> or
-on &email-debian-devel;.  Please make sure that the
-maintainer(s) of the package the bug is reassigned to know why you reassigned
-it.
+on &email-debian-devel;.  Please inform the maintainer(s) of the package
+you reassign the bug to, for example by Cc:ing the message that does the
+reassign to <email>packagename@packages.debian.org</email> and explaining
+your reasons in that mail. Please note that a simple reassignment is
+<emphasis>not</emphasis> e-mailed to the maintainers of the package
+being reassigned to, so they won't know about it until they look at
+a bug overview for their packages.
 </para>
 <para>
+If the bug affects the operation of your package, please consider
+cloning the bug and reassigning the clone to the package that really
+causes the behavior. Otherwise, the bug will not be shown in your
+package's bug list, possibly causing users to report the same bug over
+and over again. You should block "your" bug with the reassigned, cloned
+bug to document the relationship.
+</para>
+</listitem>
+<listitem>
+<para>
 Sometimes you also have to adjust the severity of the bug so that it matches
 our definition of the severity.  That's because people tend to inflate the
 severity of bugs to make sure their bugs are fixed quickly.  Some bugs may even
@@ -721,9 +735,9 @@ several developers working on the same package.
 </listitem>
 <listitem>
 <para>
-Once a corrected package is available in the <literal>unstable</literal>
-distribution, you can close the bug.  This can be done automatically, read
-<xref linkend="upload-bugfix"/> .
+Once a corrected package is available in the archive, the bug should be
+closed indicating the version in which it was fixed. This can be done
+automatically, read <xref linkend="upload-bugfix"/>.
 </para>
 </listitem>
 </orderedlist>
@@ -1110,7 +1124,7 @@ uploads as well.
 Unless the upstream source has been uploaded to <literal>security.debian.org
 </literal> before (by a previous security update), build the upload with full
 upstream source (<literal>dpkg-buildpackage -sa</literal>).  If there has been
-a previous upload to </literal>security.debian.org</literal> with the same
+a previous upload to <literal>security.debian.org</literal> with the same
 upstream version, you may upload without upstream source (<literal>
 dpkg-buildpackage -sd</literal>).
 </para>
@@ -1224,14 +1238,36 @@ described in <xref linkend="override-file"/> .
 If for some reason you want to completely remove a package (say, if it is an
 old compatibility library which is no longer required), you need to file a bug
 against <literal>ftp.debian.org</literal> asking that the package be removed;
-as all bugs, this bug should normally have normal severity.  Make sure you
-indicate which distribution the package should be removed from.  Normally, you
-can only have packages removed from <literal>unstable</literal> and
-<literal>experimental</literal>.  Packages are not removed from
+as all bugs, this bug should normally have normal severity.
+The bug title should be in the form <literal>RM: <replaceable>package
+</replaceable> <replaceable>[architecture list]</replaceable> -- 
+<replaceable>reason</replaceable></literal>, where <replaceable>package</replaceable>
+is the package to be removed and <replaceable>reason</replaceable> is a
+short summary of the reason for the removal request. 
+<replaceable>[architecture list]</replaceable> is optional and only needed
+if the removal request only applies to some architectures, not all. Note
+that the <command>reportbug</command> will create a title conforming
+to these rules when you use it to report a bug against the <literal>
+ftp.debian.org</literal> pseudo-package.
+</para>
+
+<para>
+If you want to remove a package you maintain, you should note this in
+the bug title by prepending <literal>ROM</literal> (Request Of Maintainer).
+There are several other standard acronyms used in the reasoning for a package
+removal, see <ulink url="http://&ftp-master-host;/removals.html"></ulink>
+for a complete list. That page also provides a convenient overview of
+pending removal requests.
+</para>
+
+<para>
+Note that removals can only be done for the <literal>unstable
+</literal>, <literal>experimental</literal> and <literal>stable
+</literal> distribution.  Packages are not removed from 
 <literal>testing</literal> directly.  Rather, they will be removed
 automatically after the package has been removed from
-<literal>unstable</literal> and no package in <literal>testing</literal>
-depends on it.
+<literal>unstable</literal> and no package in <literal>testing
+</literal> depends on it.
 </para>
 <para>
 There is one exception when an explicit removal request is not necessary: If a
@@ -1251,7 +1287,12 @@ supersedes the one to be removed.
 <para>
 Usually you only ask for the removal of a package maintained by yourself.  If
 you want to remove another package, you have to get the approval of its
-maintainer.
+maintainer. Should the package be orphaned and thus have no maintainer,
+you should first discuss the removal request on &email-debian-qa;. If
+there is a consensus that the package should be removed, you should
+reassign and retitle the <literal>O:</literal> bug filed against the
+<literal>wnpp</literal> package instead of filing a new bug as
+removal request.
 </para>
 <para>
 Further information relating to these and other package removal related topics
@@ -1266,7 +1307,9 @@ role="package">apt</systemitem> package.  When invoked as <literal>apt-cache
 showpkg <replaceable>package</replaceable></literal>, the program will show
 details for <replaceable>package</replaceable>, including reverse depends.
 Other useful programs include <literal>apt-cache rdepends</literal>,
-<command>apt-rdepends</command> and <command>grep-dctrl</command>.  Removal of
+<command>apt-rdepends</command>, <command>build-rdeps</command> (in the
+<systemitem role="package">devscripts</systemitem> package) and
+<command>grep-dctrl</command>.  Removal of
 orphaned packages is discussed on &email-debian-qa;.
 </para>
 <para>
@@ -1296,14 +1339,20 @@ occur too often anyway.
 <section id="s5.9.3">
 <title>Replacing or renaming packages</title>
 <para>
-When you make a mistake naming your package, you should follow a two-step
-process to rename it.  First, set your <filename>debian/control</filename> file
-to replace and conflict with the obsolete name of the package (see the <ulink
-url="&url-debian-policy;">Debian Policy Manual</ulink> for
-details).  Once you've uploaded the package and the package has moved into the
-archive, file a bug against <literal>ftp.debian.org</literal> asking to remove
-the package with the obsolete name.  Do not forget to properly reassign the
-package's bugs at the same time.
+When the upstream maintainers for one of your packages chose to
+rename their software (or you made a mistake naming your package),
+you should follow a two-step process to rename it. In the first
+step, change the <filename>debian/control</filename> file to
+reflect the new name and to replace, provide and conflict with the
+obsolete package name (see the <ulink url="&url-debian-policy;">
+Debian Policy Manual</ulink> for details).  Please note that you
+should only add a <literal>Provides</literal> relation if all
+packages depending on the obsolete package name continue to work
+after the renaming. Once you've uploaded the package and the package
+has moved into the archive, file a bug against <literal>
+ftp.debian.org</literal> asking to remove the package with the
+obsolete name (see <xref linkend="removing-pkgs"/>).  Do not forget
+to properly reassign the package's bugs at the same time.
 </para>
 <para>
 At other times, you may make a mistake in constructing your package and wish to
@@ -1581,9 +1630,9 @@ source code).
 <para>
 The ``magic'' for a recompilation-only NMU is triggered by using a suffix
 appended to the package version number, following the form <literal>
-b<replaceable>number<replaceable>.
+b<replaceable>number</replaceable></literal>.
 For instance, if the latest version you are recompiling against was version
-<literal>2.9-3<literal>, your binary-only NMU should carry a version of 
+<literal>2.9-3</literal>, your binary-only NMU should carry a version of 
 <literal>2.9-3+b1</literal>.  If the latest version was <literal>3.4+b1
 </literal> (i.e, a native package with a previous recompilation NMU), your
 binary-only NMU should have a version number of <literal>3.4+b2</literal>.
@@ -2192,7 +2241,7 @@ after they have undergone some degree of <literal>testing</literal> in
 They must be in sync on all architectures and mustn't have dependencies that
 make them uninstallable; they also have to have generally no known
 release-critical bugs at the time they're installed into <literal>testing
-<literal>.  This way, <literal>testing</literal> should always be close to
+</literal>.  This way, <literal>testing</literal> should always be close to
 being a release candidate.  Please see below for details.
 </para>
 </section>
@@ -2232,7 +2281,7 @@ available in <literal>unstable</literal>, but not affecting the version in
 <listitem>
 <para>
 It must be available on all architectures on which it has previously been built
-in <literal>unstable</literal>.  <xref linkend="madison"/> may be of interest
+in <literal>unstable</literal>.  <xref linkend="dak ls"/> may be of interest
 to check that information;
 </para>
 </listitem>
@@ -2318,7 +2367,7 @@ Consider this example:
 </informaltable>
 <para>
 The package is out of date on alpha in <literal>unstable</literal>, and will
-not go to <literal>testing. Removing the package would not help at all, the
+not go to <literal>testing</literal>. Removing the package would not help at all, the
 package is still out of date on <literal>alpha</literal>, and will not 
 propagate to testing.
 </para>