
The most important rule, though, is please browse the rest of this page before sending a bug report. It is much easier for both of us if we understand what is expected.
Before I can fix an error, I need to understand what the problem is. Try to explain what is wrong and why you think it is wrong. Please try to include samples that demonstrate the problem. Include a description of what Icarus PAL does that is wrong, and what you expect should happen. If the problem is with one of the commands, please include in your report the command line flags you used. (This last step is often overlooked, and sometimes important.)
Report bugs to me at <ipal-bugs@icarus.com>, the geda-dev mailing list or the owner/maintainer of the component. If you send your report to ipal-bugs, the report will be entered into the bug management system. This is not a slight to you, I will respond to you personally. The advantage to you of using the trouble reporting system is that your report will be archived, indexed and tracked. This makes it easier for me to keep track of things. The URL for the bug tracking system is <http://www.icarus.com/cgi-bin/ipal-bugs>.
So now what sorts of problems might you report? Let's see...
If you think the library is crashing your program, I will need different information. Basically, I require whatever is needed for me to reproduce the problem. This may include some source code, input files, and information about your platform.
In other words, make clear what Icarus PAL is doing wrong, and send tests that I can easily use.
So when you send a test case, ask yourself "Can poor overworked Steve invoke the error without any code other then what is included?" And while we are at it, please place a copyright notice in your test program and include a GPL license statement if you can. (See COPYRIGHT ISSUES below.)
I prefer context diffs as emitted by diff from GNU diffutils. Human beings can read such things, and they are resilient to changing originals. A good set of flags to diff are ``diff -cNB''. With such diffs, I can look at the changes you are offering and probably tell at a glance that they are plausible. Then I can use patch(1) to apply them. Or I can apply them by hand.
I find replacement files particularly inconvenient. Replacement files do not clearly highlight what they change, and they are particularly difficult to merge with local changes to the file. Please, if your changes are restricted to a single file, it is easy for you to use the diff command on that file, and diffs of this form are infinitely easier for me to accept, approve and apply.
Now that you have the perfect patch, please tell me what this patch is supposed to accomplish, and if appropriate include a test program that demonstrates the efficacy of the patch. (If I have no idea what the patch is for, I will ask for clarification before applying it.) The test program may well find its way into the regression test suite, so include copyright notices.
I must insist that any copyright material submitted for inclusion include the GPL license notice as shown in the rest of the source.
And this of course brings up the issue of copyright status of test programs sent as bug reports. Basically, I presume when sample code is sent as part of a bug report that you are granting me license to redistribute it (properly attributed, of course) in a test suite or other forum. In particular, code that might reveal trade secrets and intellectual property should not be sent to me. If you are reporting a problem you are encountering in such code, try making a contrived example that does the trick. Just realize that I signed no non-disclosure agreements, so am not bound to non-disclosure.
$Id: bugs.html,v 1.7 2000/09/17 18:14:43 steve Exp $