blob: 053a33d32e5bfa44e82896974ca4a07a352a2c05 [file] [log] [blame]
<?xml version="1.0"?>
<!--
Copyright 2004 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- $Id$ -->
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
<document>
<header>
<title>Jakarta Tapestry - Reporting Problems</title>
</header>
<body>
<p>
So, you've hit a problem with Tapestry and you want help, what do you do? You may need help, and we (the Tapestry
community) want to help you, but the first step is to make sure you really have a problem.
</p>
<section><title>Things To Check First</title>
<p>
Has your environment changed recently? Did you change JDKs, operating systems, application servers or change to a new
version of Tapestry? The most common cause of problems is Java's special version of <i>DLL hell</i>: conflicting versions
of the same JAR file on the classpath. Perhaps you upgraded to a new version of Tapestry and some of the old JAR files
are still hanging around. Perhaps an innocuous change to your build file no longer builds your WAR files correctly.
Take a moment to check the classpath.
</p>
</section>
<section><title>Search For The Answer</title>
<p>
New users often hit the same problems; likely, your problem has been reported and solved already.
Check the online documentation: there's a <link href="site:faq">Frequently Asked Questions list</link>
to check, and more information on the <link href="site:wiki">Wiki</link>. A quick check at
<link href="http://www.google.com">Google</link> is also worthwhile (the mailing list discussions are mirrored
in many places).
</p>
</section>
<section><title>Post Your Question</title>
<p>
Next, you want to <link href="http://www.catb.org/~esr/faqs/smart-questions.html">learn how to ask questions properly</link>.
This is <em>very important</em> -- volunteers are taking time off from thier own jobs, or own spare time, to answer <em>your</em> question.
<em>You aren't owed anything.</em> Questions get answered if they are easy or if they are interesting. Questions that are lacking in detail are easier to ignore
than to work on. Questions that are antagonistic get ignored. Questions that have been covered to death in
the <link href="site:doc">documentation</link>,
the <link href="site:faq">FAQ</link>, the
<link href="site:wiki">Wiki</link> or
<a href="http://www.manning.com/lewisship/">The Book</a> will likely be ignored.
</p>
<p>
Subscribe to the Tapestry user mailing list (tapestry-user@jakarta.apache.org) and post your message there <em>and only there</em>.
Sending mail directly to a Tapestry developer will, at most, result in a curt reminder to use the user mailing list.
</p>
<p>
Tapestry provides a <em>wealth</em> of information when errors occur. Don't just say "it broke": <em>cut and past the exception report</em> into your message.
If there's no error message or exception report, tell us <em>exactly</em> what behavior occured, and <em>exactly</em> what behavior you expected.
</p>
<p>
We'll need to know your environment:
<ul>
<li>Tapestry version</li>
<li>JDK version</li>
<li>Operating System</li>
<li>Application Server</li>
</ul>
</p>
<p>
Finally, for most non-trivial problems, we'll need to know what was in your HTML template and page (or component)
specification, and probably your Java class as well. For the best, and fastest,
response, post as much of this as possible.
</p>
</section>
<section>
<title>Problem Resolution</title>
<p>
In farily rare cases, you may have uncovered an actual problem. In other cases, we (the Tapestry developers)
may discuss an improvement to the framework to address your situtation. In <em>either case</em>, it is incumbent
upon you to add a bug or improvement request into the
<a href="http://jakarta.apache.org/site/bugs.html">Bugzilla</a> issue tracking system. If it doesn't go into Bugzilla,
its very unlikely that anything further will happen. Think of this tiny effort as
your payment for all the free software and support we've provided you with.
</p>
</section>
<section>
<title>Submitting Patches</title>
<p>
If you have a bug you want fixed, you may want to fix it yourself! This is an excellent opportunity to
get more involved in Tapestry and the Tapestry community. Creating a patch and getting it applied are two different things, however.
</p>
<p>
Don't post your patch to the mailing list ... there's any number of reasons that attachments will be lost or deleted.
Find (or create) a Bugzilla issue and add the patch as a Bugzilla attachment.
</p>
<p>
A patch is <em>not</em> an updated file: a patch is a difference file, usually generated with the <code>cvs diff</code> command.
The easier you make it for us, the more likely it is that your patch will be applied.
<ul>
<li>A single patch (covering multiple files) is easier than a scattering of individual patches</li>
<li>A real patch (generated by CVS) is <em>vastly</em> preferable
to attaching changed source files</li>
<li>A patch generated at the project root is preferable to lower-level patches (it takes the guesswork out of applying the patch).</li>
</ul>
</p>
</section>
</body>
</document>