<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Allenap on Launchpad Blog</title>
    <link>https://blog.launchpad.net/authors/allenap/</link>
    <description>News and updates from the Launchpad team</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 19 Mar 2010 14:15:31 +0000</lastBuildDate>
    <atom:link href="https://blog.launchpad.net/feed/authors/allenap/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Launchpad&#39;s Bug Watch system and other animals</title>
      <link>https://blog.launchpad.net/bug-tracking/launchpads-bug-watch-system-and-other-animals/</link>
      <pubDate>Fri, 19 Mar 2010 14:15:31 +0000</pubDate>
      <dc:creator>Gavin Panella</dc:creator>
      <guid isPermaLink="false">https://blog.launchpad.net/?p=1443</guid>
      <description>&lt;p&gt;Launchpad has a feature where it periodically checks the status of remote bugs (as in, bugs recorded in another bug tracker, like &lt;a href=&#34;http://code.djangoproject.com/ticket/12720&#34;&gt;bug 12720 in Django&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;When someone links a bug on Launchpad with a remote bug it&amp;rsquo;s called a bug watch. All the bug watches for a bug appear in the Launchpad bug page in an area called &amp;ldquo;Remote bug watches&amp;rdquo;. Check out &lt;a href=&#34;https://bugs.launchpad.net/bugs/513719&#34;&gt;bug 513719&lt;/a&gt; to see a bug watch for bug 12720 in Django.&lt;/p&gt;
&lt;p&gt;If the remote bug tracker has been set as the bug tracker for a project in Launchpad, bug tasks for that project can be linked to a specific remote bug too. When the status of the remote bug changes, Launchpad changes the status of the bug task to match, and sends out email to subscribers, the same as if the status had been changed in Launchpad. See the Django bug task in bug 513719 for an example.&lt;/p&gt;
&lt;p&gt;Going further, comments can be synchronized too, in both directions. Recent versions of Bugzilla have this capability built in, but older versions can be supported with a &lt;a href=&#34;https://help.launchpad.net/Bugs/BugzillaPlugin&#34;&gt;plugin&lt;/a&gt;. There&amp;rsquo;s also a &lt;a href=&#34;https://help.launchpad.net/Bugs/TracPlugin&#34;&gt;plugin&lt;/a&gt; for Trac.&lt;/p&gt;
&lt;p&gt;This is all very nifty stuff, but it suffers because it doesn&amp;rsquo;t work very well! Yet.&lt;/p&gt;
&lt;h3 id=&#34;part-of-this-is-down-to-complexity&#34;&gt;Part of this is down to complexity&lt;/h3&gt;
&lt;p&gt;We support 7 different remote bug tracker types: Debian Bugs, Trac, Bugzilla, Mantis, RT (Request Tracker), Roundup and SourceForge.&lt;/p&gt;
&lt;p&gt;We try to support a range of versions for each of these trackers, and a range of different access methods.&lt;/p&gt;
&lt;p&gt;For example, with Bugzilla, we support old (v2) installations, more recent (v3) ones, recent ones with the Launchpad plugin, and very recent ones with the API built-in. And we support Issuezilla, a variant of Bugzilla.&lt;/p&gt;
&lt;p&gt;We try to work around many idiosyncrasies and customizations in the remote systems.&lt;/p&gt;
&lt;p&gt;With Mantis, for example, sometimes we need to log in anonymously before we can download bug statuses. Some Mantis installations allow us to download status information in CSV form, in a batch, but not all. If not, we screen-scrape the individual bug pages. Even if we get CSV, it&amp;rsquo;s often slightly corrupt, so we try and correct for that where we can.&lt;/p&gt;
&lt;p&gt;Then there are simply hundreds of things that are beyond our control that Launchpad must cope with and move on, like HTTP errors, errors without correct HTTP codes, slow responses, unrecognized responses, and so forth. We check about 7k remote bugs every day (we aim to do more than 30k a day, but we&amp;rsquo;re not there yet) so there are a huge number of errors to sift through. It&amp;rsquo;s a big task to figure out if each problem is transient, a problem in Launchpad, or a remote problem, never mind actually fixing it!&lt;/p&gt;
&lt;p&gt;We must also be gentle with the remote systems, and not issue too many requests in a short time, or otherwise make unreasonably large demands on them. We must be nice.&lt;/p&gt;
&lt;h3 id=&#34;part-of-it-is-down-to-the-development-of-the-code-base&#34;&gt;Part of it is down to the development of the code base&lt;/h3&gt;
&lt;p&gt;The bug watch code in Launchpad is a bit creaky. Originally it was designed to run in a single thread in a single process. This means that one badly performing bug tracker can starve the whole system of updates.&lt;/p&gt;
&lt;p&gt;In the past we&amp;rsquo;ve tried to alleviate this by choosing the bug watches to check more carefully, or by batching requests, but this has not been enough for a some time.&lt;/p&gt;
&lt;p&gt;Also, while we do record a lot of information about errors, it is still a Herculean task to constantly monitor the errors coming out of the system.&lt;/p&gt;
&lt;p&gt;We also can&amp;rsquo;t test or do QA against other people&amp;rsquo;s systems. For testing we must use test doubles to simulate the behaviour of remote systems, but this can get confusing. For QA, sometimes we must test against remote systems. This is acceptable for testing the status fetching code, but not for comment synchronization.&lt;/p&gt;
&lt;p&gt;However, we have not had the time available to give the bug watch system a big overhaul, only to make small improvements and bug fixes. For a long time it&amp;rsquo;s needed some big changes to make it work with the volumes of work it&amp;rsquo;s expected to cope with.&lt;/p&gt;
&lt;h3 id=&#34;fixing-it&#34;&gt;Fixing it&lt;/h3&gt;
&lt;p&gt;We&amp;rsquo;re trying to fix these issues now.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ve made checkwatches - the program that drives the bug watch machinery - run multi-threaded. This works, but it hammers our database, so we need to figure out how to alleviate that next.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ve started the work to move the code base over to using Twisted. This is a better model for managing a lot of concurrent network activity. As more and more bug watches are registered with Launchpad, we&amp;rsquo;re going to need it.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re going to keep more history of success and failure in the database, so that checkwatches can throttle back checks for remote bugs that persistently error. This is really important because it will reduce the work that checkwatches needs to do each day. It will also, we hope, reduce the deluge of errors to a more manageable stream, so that we&amp;rsquo;re better able to spot genuine bugs that need our attention. Lastly, we hope to display this information on the web pages so that users can help to diagnose problems themselves.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re getting some more infrastructure in place, so that we can develop and QA against real installations of Bugzilla, Trac, et al.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re also fixing up as many bugs in checkwatches as we can.&lt;/p&gt;
&lt;h3 id=&#34;who-are-we&#34;&gt;Who are we?&lt;/h3&gt;
&lt;p&gt;Abel Deuring, Graham Binns and Gavin Panella. We&amp;rsquo;re meeting up next week in Norwich, England for a sprint, a culmination of a couple of months of dedicated effort on the bug watch system.&lt;/p&gt;
&lt;p&gt;Deryck Hodge is also coordinating with the Canonical IS team to deliver the QA infrastructure.&lt;/p&gt;
&lt;p&gt;For all of us, the aim is to get checkwatches to work reliably, even if it&amp;rsquo;s not the most efficient or elegant system inside. We also want future development to be more sustainable than it has been in the past.&lt;/p&gt;
&lt;p&gt;We want users to be able to rely on this feature.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Commenting on questions</title>
      <link>https://blog.launchpad.net/cool-new-stuff/commenting-on-questions/</link>
      <pubDate>Fri, 30 Oct 2009 15:58:06 +0000</pubDate>
      <dc:creator>Gavin Panella</dc:creator>
      <guid isPermaLink="false">https://blog.launchpad.net/?p=1145</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re using &lt;a href=&#34;https://edge.launchpad.net/&#34;&gt;edge&lt;/a&gt;, you can now &lt;em&gt;just&lt;/em&gt; comment on a question in Launchpad. For all questions on &lt;a href=&#34;https://answers.launchpad.net/&#34;&gt;Answers&lt;/a&gt;, the &amp;ldquo;Just Add a Comment&amp;rdquo; button is now always visible.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.launchpad.net/images/external/help.launchpad.net/BlogImages/just-add-a-comment.png&#34; alt=&#34;The new buttons!&#34;&gt;&lt;/p&gt;
&lt;p&gt;Previously, you might have only seen &amp;ldquo;Add Answer&amp;rdquo; and &amp;ldquo;Add Information Request&amp;rdquo; (or others; the exact buttons vary), both of which add a comment &lt;strong&gt;and&lt;/strong&gt; cause the question status to change. But often, for example,  all you want to do is clarify an earlier comment, add some detail, or give a progress update. For that, &amp;ldquo;Just Add a Comment&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s been put at the rightmost position of all the buttons because we think it should be the least used option. Normally it&amp;rsquo;s appropriate to use one of the other buttons to move the workflow forward.&lt;/p&gt;
&lt;p&gt;The button will land in production with the 3.1.10 release next week.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Extra options when filing bugs</title>
      <link>https://blog.launchpad.net/cool-new-stuff/extra-options-when-filing-bugs/</link>
      <pubDate>Fri, 26 Jun 2009 09:07:59 +0000</pubDate>
      <dc:creator>Gavin Panella</dc:creator>
      <guid isPermaLink="false">https://blog.launchpad.net/?p=833</guid>
      <description>&lt;p&gt;You may have noticed that we introduced some useful new options when filing bugs. These are especially useful to anyone who files lots of bugs.&lt;/p&gt;
&lt;h3 id=&#34;something-for-everyone&#34;&gt;Something for everyone.&lt;/h3&gt;
&lt;p&gt;Everyone can now set tags when filing a bug. Previously, only people going via the advanced bug filing page would have the option.&lt;/p&gt;
&lt;p&gt;One caveat: the tag field is not yet wired up with the magical tag auto-completer that you can use on the bug page itself, but &lt;a href=&#34;https://bugs.launchpad.net/malone/+bug/378234&#34;&gt;that&amp;rsquo;s coming&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;something-for-bug-supervisors&#34;&gt;Something for bug supervisors.&lt;/h3&gt;
&lt;p&gt;If you&amp;rsquo;re filing a bug against a project for which you&amp;rsquo;re a &lt;a href=&#34;https://help.launchpad.net/Bugs/YourProject&#34;&gt;bug supervisor&lt;/a&gt;, some additional fields appear in the new &lt;em&gt;Extra options&lt;/em&gt; area (which is collapsed by default, but can be expanded by clicking on it). There are options to let you to set the initial status, the importance and the milestone of the bug, and also assign it directly to someone to work on.&lt;/p&gt;
&lt;p&gt;If you have any problems with these new features, please &lt;a href=&#34;https://launchpad.net/malone/+filebug&#34;&gt;file bugs against Launchpad Bugs&lt;/a&gt;, or talk to the &lt;a href=&#34;https://help.launchpad.net/HelpRotation&#34;&gt;help contact&lt;/a&gt; in &lt;code&gt;#launchpad&lt;/code&gt; on &lt;code&gt;freenode&lt;/code&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Searching bugs with tags now with wings!</title>
      <link>https://blog.launchpad.net/bug-tracking/searching-bugs-with-tags-now-with-wings/</link>
      <pubDate>Wed, 24 Jun 2009 09:30:06 +0000</pubDate>
      <dc:creator>Gavin Panella</dc:creator>
      <guid isPermaLink="false">https://blog.launchpad.net/?p=797</guid>
      <description>&lt;p&gt;Even if you&amp;rsquo;ve been living on Earth, you could be forgiven for not knowing about the richer tag syntax in the advanced bug search (e.g. in &lt;a href=&#34;https://bugs.launchpad.net/ubuntu/+bugs?advanced=1&#34; title=&#34;Do and advanced search for bugs in Ubuntu&#34;&gt;Bugs in Ubuntu: Advanced search&lt;/a&gt;), frankly because it&amp;rsquo;s very new and it&amp;rsquo;s not mentioned anywhere in the UI (yet). There are two additions to the syntax that a handful of hardcore Launchpadders have been yearning after for some time.&lt;/p&gt;
&lt;p&gt;First up, you can search for bugs with any tag, doesn&amp;rsquo;t matter which, and for bugs with no tags. To search for the presence of one or more tags, use &amp;ldquo;&lt;strong&gt;*&lt;/strong&gt;&amp;rdquo; (asterisk) in the query, and to search for the complete absence of tags, use &amp;ldquo;&lt;strong&gt;-*&lt;/strong&gt;&amp;rdquo; (minus asterisk).&lt;/p&gt;
&lt;p&gt;Secondly, you can search for the absence of a specific tag. Simply prefix the tag with a minus, e.g. &amp;ldquo;-toaster&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;You can combine these new forms as well. For example, to search for bugs with no tags at all or with no &lt;em&gt;crumpet&lt;/em&gt; tag, you could search for &amp;ldquo;&lt;strong&gt;-* -crumpet&lt;/strong&gt;&amp;rdquo;, making sure the Any radio button is selected. Everybody needs crumpets!&lt;/p&gt;
&lt;p&gt;Have fun!&lt;/p&gt;
&lt;p&gt;If you run into any problems, please &lt;a href=&#34;https://bugs.launchpad.net/malone/+filebug&#34; title=&#34;File a bug in Malone&#34;&gt;report the bug in Malone&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
