January 24, 2013

Queue jobs change

Bugify runs potentially slow tasks as a job (asynchronously).  We do this to prevent holding up the interface, so we can keep Bugify feeling snappy (a slow SMTP server would make the interface grind to a halt if we were sending lots of email notifications inline).

Up until now, we were using PHP-CLI to run these tasks.  This works fantastically for most people, but every now and then it causes a major headache for a new customer.  Some web hosts have the PHP-CLI binary installed in an odd place, and Bugify has trouble figuring out where it is.  PHP (when running as an Apache module, or PHP-CGI) knows nothing about the PHP-CLI binary, so we can’t ask PHP where it lives, and we need to know the full path to the PHP-CLI binary in order to use it (otherwise PHP-CGI might run the script and cause all sorts of havoc).  So, after a lot of pain trying to make working with PHP-CLI work for everyone, we have decided to change tactics.

From the next version of Bugify, queue jobs will be run using an Ajax request.  3 seconds after loading any page in Bugify (after logging in), the queue will be run.  10 seconds later (and every 10 seconds after that) the queue will be run again.  Only a small number of jobs will be run per Ajax request, so if the jobs aren’t cleared in the first run, they will be processed in the next.  This has been working very well for us, and you shouldn’t notice any difference.

Some of you may have realised that this isn’t going to work for API requests – there is no Ajax involved.  The way we’re dealing with this is to give you the option of manually triggering the queue (by a new API method), or having the queue tasks run inline (as part of the API request).  By default, the queue will be run inline, but you can change it in settings.

The slowest queue task is usually sending notification emails.  For small teams where a change may only generate a few email notifications, the API requests should still be very snappy (even when running queue tasks inline).  If a change generally sends notification emails to more than 10 people, you might want to look at using the new API method to trigger the queue, rather than allowing the queue to run inline.  When the update is released, we’ll also update the API Explorer so you can see how the new method works.

January 21, 2013

Bugify in other languages

We have customers in 67 different countries now!  And, not everyone speaks English as their first language, so it’d be remiss if we neglected to provide Bugify in other languages.  So, we’re working hard on making Bugify translatable, and almost have the English language file finished.

We’ve had a few offers from customers to help provide a translation in their language which we really appreciate, and we’d love it if some other customers were willing to help provide a translation in their language.  If you think you might have time to translate Bugify from English into your language, please get in touch.  Ideally, someone would go through the English language strings and provide a quick translation, then someone else whose native tongue is the same will go through and make sure it all makes sense – the more eyes on it the better.

January 19, 2013

Bugify version 1.4.678 – Maintenance release 3

This is a general maintenance release, but includes mostly new (small-ish) features. We’re working hard on localisation support and the ability to “tag” issues – these will be coming in the next releases.  We’re also still working on Windows support (Mac support is now included).

  • Added support for running on Mac systems (using Apache).
  • Beta support for running in a sub-folder.
  • Made it possible to allow browser to save username/password.
  • Loading latest issue comments via ajax.
  • Added settings ui for changing SMTP settings.
  • Added ui for viewing logs.
  • Logging all commit messages.
  • Logging the update process.
  • Logging emails sent.
  • Logging auth actions.
  • Added ability to save filters as favourites (which are shown in the menu).
  • Added ability to re-activate archived milestones.
  • Added CSRF protection to new issue form.
  • Added support for project categories in search panel.
  • Added support for choosing pagination page size (and saving your preference).
  • Focus cursor on first input text box when popup box is shown.
  • Added some search filter suggestions.
  • Attempts to keep same category when changing project for an issue.

Fixes:

  • Fixed bug with cURL options showing an error.
  • Fixing some issues with javascript timers.
  • Fixed issue with “Any” states in saved filters.
  • Changed permission recommendations in install script.
  • Fixed bug where issue in archived milestone would show that it’s not in a milestone.
  • Messages no longer slide down.