blob: 1f668efe8d9f46aebbe6555389052d3c669b534f [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta charset="utf-8">
<title>Report a bug | Apache Wicket</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon" />
<link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
</head>
<body class="">
<div class="header default">
<div class="l-container">
<nav class="mainmenu">
<ul>
<!-- /start/quickstart.html || /help/reportabug -->
<li class=""><a href="/start/quickstart.html">Quick Start</a></li>
<!-- /start/download.html || /help/reportabug -->
<li class=""><a href="/start/download.html">Download</a></li>
<!-- /learn || /help/reportabug -->
<li class=""><a href="/learn">Documentation</a></li>
<!-- /help || /help/reportabug -->
<li class=""><a href="/help">Support</a></li>
<!-- /contribute || /help/reportabug -->
<li class=""><a href="/contribute">Contribute</a></li>
<!-- /community || /help/reportabug -->
<li class=""><a href="/community">Community</a></li>
<!-- /apache || /help/reportabug -->
<li class=""><a href="/apache">Apache</a></li>
</ul>
</nav>
<div class="logo">
<a href="/"><img src="/img/logo-apachewicket.svg" alt="Apache Wicket"></a>
</div>
</div>
</div>
<main>
<div class="l-container">
<header class="l-full preamble">
<h1>Report a bug</h1>
</header>
<section class="toc left">
<div id="toc" class="toc"><div id="toc-title"><h2>Table of Contents</h2></div><ul><li class="toc--level-1 toc--section-1"><a href="#build-a-quickstart"><span class="toc-number">1</span> <span class="toc-text">Build a Quickstart</span></a></li><li class="toc--level-1 toc--section-2"><a href="#submit-a-patch"><span class="toc-number">2</span> <span class="toc-text">Submit a patch</span></a><ul><li class="toc--level-2 toc--section-3"><a href="#setting-up"><span class="toc-number">2.1</span> <span class="toc-text">Setting up</span></a></li><li class="toc--level-2 toc--section-4"><a href="#checking-out-wicket-from-subversion"><span class="toc-number">2.2</span> <span class="toc-text">Checking out Wicket from Subversion</span></a></li><li class="toc--level-2 toc--section-5"><a href="#kick-the-tires"><span class="toc-number">2.3</span> <span class="toc-text">Kick the tires</span></a></li><li class="toc--level-2 toc--section-6"><a href="#proving-a-bug-exists"><span class="toc-number">2.4</span> <span class="toc-text">Proving a bug exists</span></a></li><li class="toc--level-2 toc--section-7"><a href="#submitting-a-patch"><span class="toc-number">2.5</span> <span class="toc-text">Submitting a patch</span></a></li></ul></li></ul></div>
</section>
<section>
<p>Wicket manages bug reports via the <a href="http://issues.apache.org/jira/browse/WICKET">Apache Jira site</a></p>
<p>It requires you to register with the site, to avoid spamming, and attribute
credit where its due. It’s relatively painless. Much harder is writing a
clear and concise bug report.</p>
<p>Etiquette for a bug report is:</p>
<ol>
<li><strong>Always search for an existing bug report about the issue before adding
your own.</strong> This can be tricky, but several duplicate bug reports just
cause an administration headache for developers. If in doubt you can
always post the details of the bug to the <a href="email.html">mailing list</a>, and
wait to be asked to submit a bug report by a dev. But the jira search
functionality is pretty good, so do have go.</li>
<li><strong>Be clear and concise in your language.</strong> Wording a short but useful
summary, with a description that contains all the steps leading up to the
error plus any extra circumstantial evidence, is not always easy, but its
vital to getting the issue resolved, and really valuable.</li>
<li><strong>Watch the bug.</strong> The developers may ask you for more information via the
issue comments, so its good practices to check in on the issue whilst its
still open.</li>
<li><strong>Don’t be shy of maintaining the issue.</strong> If you find its a duplicate of
some other issue that was reported before yours, then mark it as a
duplicate, and watch the original. If you get more info on the bug, add it
as a comment. If it doesnt get noticed by a dev, try submitting a
quickstart or better still a patch. Ask for it to be reviewed via the
mailing list.</li>
</ol>
<p>You will be rewarded with <a href="https://issues.apache.org/jira/secure/ConfigureReport.jspa?versionId=-1&amp;issueStatus=all&amp;selectedProjectId=12310561&amp;reportKey=com.sourcelabs.jira.plugin.report.contributions%3Acontributionreport&amp;Next=Next">subtle kudos</a>
and the bug is much more likely to be fixed promptly.</p>
<h2 id="build-a-quickstart">Build a Quickstart</h2>
<p>See <a href="/start/quickstart.html">getting started</a> for a good introduction to
building a barebone Wicket project from one command. There is even a tool to
let you customise the command for your project.</p>
<p>Or you can watch Al Maw’s excellent
<a href="http://herebebeasties.com/2007-10-07/wicket-quickstart">screencast</a> covering
the whole process of installing and running Maven, and getting your Eclipse
workspace set up.</p>
<p>The Maven command provided there is the quickest way to get a working Wicket
project that you can use to clearly demonstrate a bug.</p>
<p>Once you have an example that shows the minimum conditions under which the
issue occurs, then you can zip up the project and attach it to the relevant
issue.</p>
<p>When a Wicket dev <a href="https://issues.apache.org/jira/browse/WICKET-497?focusedCommentId=12521870&amp;page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12521870">asks you to submit a quickstart</a>,
that is what they mean.</p>
<p>That is far more useful than posting reams of your application code and
telling everyone it doesn’t work. The former will help diagnose the problem,
the latter will mainly get you abused on the mailing list.</p>
<h2 id="submit-a-patch">Submit a patch</h2>
<p>This is the most involved, but the most rewarding route ;-).
In a nutshell this involves:</p>
<ul>
<li>Checking out the Wicket source code from the Subversion repository.</li>
<li>Building it via mvn or IDE plugin.</li>
<li>Proving the bug exists, either via a Quickstart, or writing a unit test.</li>
<li>Submitting your fix as a Subversion patch file.</li>
</ul>
<p>This guide will outline how to do it with Eclipse + Subclipse + m2eclipse.
If you prefer the command line, then start here: <a href="/contribute/build.html">building from source</a>
If you can provide a walk through for your IDE of choice then please do add it.</p>
<h3 id="setting-up">Setting up</h3>
<p>Using an Eclipse 3.4.x flavour of your choice add install the following plugins</p>
<ul>
<li><a href="http://subclipse.tigris.org/">Subclipse for accessing Subversion</a> - Eclipse update site URL http://subclipse.tigris.org/update_1.6.x</li>
<li><a href="http://m2eclipse.sonatype.org/">m2eclipse for maven support</a> - Eclipse update site: http://m2eclipse.sonatype.org/update/</li>
</ul>
<p>I usually install the entire Subclipse plugin, and all of m2eclipse except the Project configurators unless I am using a J2EE version of Eclipse.
I had a spurious error when adding the m2eclipse update site, “No repository found at http://www.md.pp.ru/~eu/12/” but it didn’t cause any problems with the install.</p>
<h3 id="checking-out-wicket-from-subversion">Checking out Wicket from Subversion</h3>
<ul>
<li>
<p><strong>Add the Wicket Subversion repository</strong> - Navigate to Window &gt; Show
Perspective &gt; Other… &gt; SVN Repository Exploring (eclipse uses the term
perspective to mean a collection of views, and a view is one single panel
with some specific function like the navigator view or the editor view) In
the SVN Repositories tab on the left, right click &gt; New &gt; Repository
Location… and paste in the repository url:
http://svn.apache.org/repos/asf/wicket</p>
</li>
<li><strong>Checkout the code</strong> - Click on the new Repository and navigate to: trunk
<blockquote>
<p>right click &gt; checkout as maven project. Some serious churning will now
occur as you download of Wicket source, and then maven crawls the internet
for all the required libraries. Seriously, go for a stroll in the sunshine;
the checkout and build took about 6minutes on my machine, and thats without
maven needing to download anything.</p>
</blockquote>
</li>
<li><strong>Building Wicket</strong> - All that waiting wasn’t in vain, as you should now
have a fully checked out, dependency managed, built, possibly working,
Wicket code base.</li>
</ul>
<h3 id="kick-the-tires">Kick the tires</h3>
<ul>
<li>Create a Quickstart via the wicket-archetype-quickstart</li>
<li>Navigate to the pom.xml in your Quickstart project.</li>
<li>Set version element to the same value as the one found in the Wicket project pom.xml (e.g. 1.4-SNAPSHOT)</li>
<li>The plugin should automagically resolve the quickstart’s Wicket dependency from the project rather than a .jar</li>
<li>Find WicketApplication.java</li>
<li>Click through to WebApplication class from the extends section of the class definition.</li>
<li>If all is well, you should be taken to the Wicket project .java version of WebApplication rather than a .class file from a .jar</li>
</ul>
<h3 id="proving-a-bug-exists">Proving a bug exists</h3>
<ul>
<li><strong>Writing a unit test with WicketTester</strong></li>
</ul>
<h3 id="submitting-a-patch">Submitting a patch</h3>
<ul>
<li>
<p><strong>Extract your changeset into a patch file</strong> - As we don’t all have commit
access to the svn repository, we need some other way of getting our changes
to the developers. This is done by making an svn patch file, essentially a
plain text diff, with some subversion specific formatting. With the
Subclipse plug-in creating a patch file is as simple as:</p>
<ol>
<li>Right click on the project root (e.g. wicket)</li>
<li>
<blockquote>
<p>Team &gt; Create Patch…</p>
</blockquote>
</li>
<li>Save In File System (and provide a filename, of the form <strong>WICKET-&lt;bug id number&gt;-fix.patch</strong>)</li>
<li>
<blockquote>
<p>Next &gt;</p>
</blockquote>
</li>
<li>Patch Root: Project</li>
<li>Finish, you now have your patch file where you chose to put it in step 3</li>
<li>Attach it to the relevant bug report with any further information you have</li>
</ol>
</li>
</ul>
</section>
</div>
</main>
<footer>
<div class="l-container">
<div class="left">
<img src="/img/asf_logo_url.svg" style="height:90px; float:left; margin-right:10px;">
<div style="margin-top:12px;">Copyright © 2020 — The Apache Software Foundation. Apache Wicket, Wicket, Apache, the Apache feather logo, and the Apache Wicket project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div>
</div>
</div>
</footer>
</body>
</html>