From owner-freebsd-bugbusters@FreeBSD.ORG Fri May 9 11:14:05 2003 Return-Path: Delivered-To: freebsd-bugbusters@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6EE8E37B401; Fri, 9 May 2003 11:14:05 -0700 (PDT) Received: from mail.soaustin.net (mail.soaustin.net [207.200.4.66]) by mx1.FreeBSD.org (Postfix) with ESMTP id 497C543F75; Fri, 9 May 2003 11:14:02 -0700 (PDT) (envelope-from linimon@lonesome.com) Received: from lonesome.lonesome.com (cs242746-11.austin.rr.com [24.27.46.11]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mail.soaustin.net (Postfix) with ESMTP id 189C21435F; Fri, 9 May 2003 13:14:00 -0500 (CDT) From: Mark Linimon Organization: Lonesome Dove Computing Services To: freebsd-bugbusters@freebsd.org Date: Fri, 9 May 2003 13:17:33 -0500 User-Agent: KMail/1.5 References: <200305081851.41118.linimon@lonesome.com> <20030509091007.A15769@abigail.blackend.org> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200305091317.33765.linimon@lonesome.com> cc: Marc Fonvieille Subject: Re: RFC: additions to the article "problem-reports" X-BeenThere: freebsd-bugbusters@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Coordination of the Problem Report handling effort. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 May 2003 18:14:05 -0000 Earlier I posted a suggested patch to /usr/doc/en_US.ISO8859-1/articles/problem-reports/article.sgml to the freebsd-doc newsgroup. DES suggested that -bugbusters would be a more appropriate place for the discussion, so I've moved it here. For those that didn't see the initial posting, here's the executive summary: I'm working on a tool to allow querying of a database populated with (portname X build environment X build error X Problem Report X CVS status). In doing this I've wound up looking at a _lot_ of badly-written PRs, and have tried to come up with suggestions on upgrading the howto. Several people have already sent suggestions, almost all of which I've adopted. In this, version 0.2 of my suggested changes, I've also added more text and links, and better-integrated my own suggestions with the existing text by removing redundancies. I've also tried to minimize the size of the diff by fixing whitespace, although there are significant whitespace problems in the original that I've left alone. I'm not too married to the exact text and format of any of these changes, but think some expansion along this order is needed. The one thing I noticed that isn't really touched on is the diff -u thing. Is it true that -u is the _only_ preferred way? Should I also include the trick of diff -ruN as the "preferred" way of dealing with creating diffs that include new files? How about, do people have a preference in the root directory that diff files are created in? Well in any case here's the current diff for people to take a whack at. Mark Linimon --- article.sgml.dist Thu May 8 17:16:29 2003 +++ article.sgml Fri May 9 12:56:50 2003 @@ -63,10 +63,11 @@ engender a problem report. Of course, nobody is perfect, and there will be times when you are convinced you have found a bug in a program when in fact you have misunderstood the syntax for - a command or made a typo in a configuration file (though that in - itself may sometimes be indicative of poor documentation or poor - error handling in the application). There are still many cases - where submitting a problem report is clearly not the right + a command or made a typographical error in a configuration file + (though that in itself may sometimes be indicative of poor + documentation or poor error handling in the application). There + are still many cases where submitting a problem report is clearly + not the right course of action, and will only serve to frustrate you and the developers. Conversely, there are cases where it might be appropriate to submit a problem report about something else than @@ -130,7 +131,15 @@ - The FAQ. + The FreeBSD + Frequently Asked Questions (FAQ) list. This document + attempts to provide answers for a wide range of questions, such + as those concerning + hardware compatibility, + + user applications, and + + kernel configuration. @@ -155,10 +164,22 @@ - Finally, the FreeBSD PR database. Unless your problem + Next, the searchable + + FreeBSD PR database (GNATS). Unless your problem is recent or obscure, there is a fair chance it has already been reported. + + + Finally, if you are upgrading from one version to + another—especially if you are upgrading to the + -current branch—you should + carefully study the contents of + + /usr/src/UPDATING which contains many pieces of + vital information. + Next, you need to make sure your problem report goes to the @@ -187,10 +208,134 @@ Now that you have decided that your issue merits a problem report, and that it is a FreeBSD problem, it is time to write - the actual problem report. Make sure your VISUAL + the actual problem report. Before we get into the mechanics + of the program used to generate and submit PRs, here are some + tips and tricks to help make sure that your PR will be most + effective. + +
+ Tips and tricks for writing a good Problem Report + + + + Do not leave the Synopsis line empty. + The PRs go both onto a mailing list that goes all over + the world (where the Synopsis is used for the + Subject: line), but also into a database. + Anyone who comes along later and browses the database by + synopsis, and finds a PR with a blank subject line, tends just + to skip over it. Remember that PRs stay in this database + until they are closed by someone; an anonymous one will + usually just disappear in the noise. + + + + Avoid using a weak Synopsis line. + You should not assume that anyone reading your PR has + any context for your submission, so the more you provide, + the better. For instance, what part of the system + does the problem apply to? Do you only see the problem + while installing, or while running? To illustrate, + instead of Synopsis: portupgrade is + broken, see how much more informative this seems: + Synopsis: port sysutils/portupgrade coredumps on + -current. (In the case of ports, it is especially + helpful to have both the category and portname in + the Synopsis line.) + + + + If you have a patch, say so. + A PR with a patch included is much more likely to be + looked at than one without. If you are including one, + put the string [patch] at the + beginning of the Synopsis. (Although it is not mandatory + to use that exact string, by convention, that is the one + that is used.) + + + + If you are a maintainer, say so. + If you are maintaining a part of the source code (for instance, + a port), you might consider adding the string + [maintainer update] at the beginning + of your synopsis line. + + + + Be specific. + The more information you supply about what problem you + are having, the better your chance of getting a response. + You should include such things as what version you are + running (there is a place to put that, see below); + which architecture you are running on; + whether you are running from a release CDROM, or from + a system maintained by &man.cvsup.1; (and, if so, how + recently you updated); and, if a kernel problem, + if you have read src/UPDATING + (someone is guaranteed to ask). You do not necessarily + have to provide your kernel configuration, which ports + you have available, and a core dump (including these + by default only tends to fill up the database), but you + should be prepared to make them available, either + privately or publicly, if so asked. + + + + Avoid vague requests for features. + PRs of the form "someone should really implement something + that does so-and-so" are less likely to get results than + very specific requests. Remember, the source is available + to everyone, so if you want a feature, the best way to + ensure it being included is to get to work! Also consider + the fact that many things like this would make a better + topic for discussion on freebsd-questions + than an entry in the PR database, as discussed above. + + + + Make sure no one else has already submitted + a similar PR. + Although this has already been mentioned above, it bears + repeating here. It only take a minute or two to use the + + web-based search engine. (Of course, everyone is + guilty of forgetting to do this now and then.) + + + + Avoid controversial requests. + If your PR addresses an area that has been controversial + in the past, you should probably be prepared to not only + offer patches, but also justification for why the patches + are "The Right Thing To Do". As noted above, a careful + + search of the mailing lists is always good preparation. + + + + + Be polite. + Almost anyone who would potentially work on your PR is + a volunteer. No one likes to be told that they have to + do something when they are already doing it for some + motivation other than monetary gain. This is a good + thing to keep in mind at all times on Open Source + projects. + + + +
+ +
+ Before you begin + + Before running the &man.send-pr.1; program, + make sure your VISUAL (or EDITOR if VISUAL is not set) - environment variable is set to something sensible, and run - &man.send-pr.1;. + environment variable is set to something sensible. +
Attaching patches or files @@ -209,18 +354,24 @@ If you attach a patch, make sure you use the or option to - &man.diff.1; to create a context or unified diff, and make + &man.diff.1; to create a context or unified diff (unified is + preferred), and make sure to specify the exact CVS revision numbers of the files you modified so the developers who read your report will be able to apply them easily. - Note that while including small patches in a PR is - generally all right, particularly when they fix the problem - described in the PR, large patches and especially new code + If you attach a patch inline, instead of as an attachment, + note that the most common problem by far is the tendency of some + email programs to render tabs as spaces, which will completely + ruin anything intended to be part of a Makefile. + + Also note that while including small patches in a PR is + generally all right—particularly when they fix the problem + described in the PR—large patches and especially new code which may require substantial review before committing should be placed on a web or ftp server, and the URL should be included in the PR instead of the patch. Patches in email - tend to get mangled, especially when Gnats is involved, and + tend to get mangled, especially when GNATS is involved, and the larger the patch, the harder it will be for interested parties to unmangle it. Also, posting a patch on the web allows you to modify it without having to resubmit the entire @@ -235,8 +386,9 @@
Filling out the template - The template consists of a list of fields, some of which - are pre-filled, and some of which have comments explaining + When you run &man.send-pr.1;, you are presented with a + template. The template consists of a list of fields, some of + which are pre-filled, and some of which have comments explaining their purpose or listing acceptable values. Do not worry about the comments; they will be removed automatically if you do not modify them or remove them yourself. @@ -263,7 +415,8 @@ Originator: This is normally - prefilled with the gecos field of the currently logged-in + prefilled with the gecos field of the + currently logged-in user. Please specify your real name, optionally followed by your email address in angle brackets. @@ -276,7 +429,7 @@ Confidential: This is prefilled - to no, changing it makes no sense as + to no, and changing it makes no sense as there is no such thing as a confidential FreeBSD problem report—the PR database is distributed worldwide by CVSup. @@ -287,11 +440,12 @@ short and accurate description of the problem. The synopsis is used as the subject of the problem report email, and is used in problem report listings and - summaries; problem reports with obscure synopses tend to - get ignored. + summaries. - If your problem report includes a patch, please have - the synopsis start with [PATCH]. + As noted above, if your problem report includes a patch, + please have the synopsis start with [patch]; + if you are a maintainer, you may consider adding + [maintainer update]. @@ -368,7 +522,8 @@ misc: anything that does not fit - in any of the other categories. + in any of the other categories. (Note that it is + easy for things to get lost in this category). From owner-freebsd-bugbusters@FreeBSD.ORG Sat May 10 07:03:01 2003 Return-Path: Delivered-To: freebsd-bugbusters@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7F2E537B401; Sat, 10 May 2003 07:03:01 -0700 (PDT) Received: from thalia.otenet.gr (thalia.otenet.gr [195.170.0.8]) by mx1.FreeBSD.org (Postfix) with ESMTP id 70F0D43F85; Sat, 10 May 2003 07:03:00 -0700 (PDT) (envelope-from keramida@FreeBSD.org) Received: from gothmog.gr (patr530-a123.otenet.gr [212.205.215.123]) by thalia.otenet.gr (8.12.9/8.12.9) with ESMTP id h4AE2sRU004684; Sat, 10 May 2003 17:02:56 +0300 (EEST) Received: from gothmog.gr (gothmog [127.0.0.1]) by gothmog.gr (8.12.9/8.12.9) with ESMTP id h4AE2sC7065704; Sat, 10 May 2003 17:02:54 +0300 (EEST) (envelope-from keramida@FreeBSD.org) Received: (from giorgos@localhost) by gothmog.gr (8.12.9/8.12.9/Submit) id h4AE2kSn065703; Sat, 10 May 2003 17:02:46 +0300 (EEST) (envelope-from keramida@FreeBSD.org) Date: Sat, 10 May 2003 17:02:46 +0300 From: Giorgos Keramidas To: Mark Linimon Message-ID: <20030510140246.GB61367@gothmog.gr> References: <200305081851.41118.linimon@lonesome.com> <20030509091007.A15769@abigail.blackend.org> <200305091317.33765.linimon@lonesome.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200305091317.33765.linimon@lonesome.com> cc: freebsd-bugbusters@FreeBSD.org cc: Marc Fonvieille Subject: Re: RFC: additions to the article "problem-reports" X-BeenThere: freebsd-bugbusters@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Coordination of the Problem Report handling effort. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 10 May 2003 14:03:01 -0000 On 2003-05-09 13:17, Mark Linimon wrote: > Earlier I posted a suggested patch to > /usr/doc/en_US.ISO8859-1/articles/problem-reports/article.sgml > to the freebsd-doc newsgroup. DES suggested that -bugbusters > would be a more appropriate place for the discussion, so I've > moved it here. I noticed that. I just had no time to write a good reply to you (at least, as good as the marvellous work you did so far) until now. > In doing this I've wound up looking at a _lot_ of badly-written PRs, > and have tried to come up with suggestions on upgrading the howto. Thanks :) > The one thing I noticed that isn't really touched on is the diff -u > thing. Is it true that -u is the _only_ preferred way? Yes. As long as you remember not to fill long lines or reindent text like you did here: > - a command or made a typo in a configuration file (though that in > - itself may sometimes be indicative of poor documentation or poor > - error handling in the application). There are still many cases > - where submitting a problem report is clearly not the right > + a command or made a typographical error in a configuration file > + (though that in itself may sometimes be indicative of poor > + documentation or poor error handling in the application). There > + are still many cases where submitting a problem report is clearly > + not the right This could have been a lot easier to read as a diff had you written it as: : @@ -63,10 +63,10 @@ : engender a problem report. Of course, nobody is perfect, and : there will be times when you are convinced you have found a bug : in a program when in fact you have misunderstood the syntax for : - a command or made a typo in a configuration file (though that in : + a command or made a typographical error in a configuration file (though that in : itself may sometimes be indicative of poor documentation or poor : error handling in the application). There are still many cases : - where submitting a problem report is clearly not the right : + where submitting a problem report is clearly not the right : course of action, and will only serve to frustrate you and the : developers. Conversely, there are cases where it might be : appropriate to submit a problem report about something else than In my local version of this I've changed this to the simpler diff version. It's ok to let lines grow a bit horizontally if it makes it a lot easier to read diffs. We can wrap the long lines in a separate commit later on, after a lot of changes like this have slipped in, to amortise the cost stylistic changes have to the CVS tree along a series of "content update" changes. > + > + Be specific. > + [...] You do not necessarily > + have to provide your kernel configuration, which ports > + you have available, and a core dump (including these > + by default only tends to fill up the database), but you > + should be prepared to make them available, either > + privately or publicly, if so asked. > + Right. For this sentence alone, I owe you a beer or something! > + > + Make sure no one else has already submitted > + a similar PR. > + Although this has already been mentioned above, it bears > + repeating here. It only take a minute or two to use the > + > + web-based search engine. (Of course, everyone is > + guilty of forgetting to do this now and then.) > + I tend to prefer versions that look good both in print and in HTML. This part (and similar elements) I rewrote as: Make sure no one else has already submitted a similar PR. Although this has already been mentioned above, it bears repeating here. It only take a minute or two to use the web-based search engine at . (Of course, everyone is guilty of forgetting to do this now and then.) This way the URL appears both in the HTML version of the document (without having to click on it), and is also rendered in nice format in our text, ps, pdf and other non-hypertext formats :) That's all. I've committed a slightly modified version of this already. Minor changes like "..." -> ... and other stuff aren't worth the bandwidth of all list members. Great work! Thank you Mark :-) - Giorgos