We are no strangers to hacking at stuff here in the lab and we love building useful tools and add-ons using our own APIs. In that long running
tradition, I wanted to announce a little pet project I started a few days ago.
fixx Django Middleware (I know it's original) is the aptly named
middleware app for people who run Django sites/applications. It provides an exception handler in the middleware that allows you to log exceptions
that occur in your Django instance directly to your fixx instance encouraging pro-active problem solving than waiting for visitors to report
bugs in your Django site/app.
The middleware component does required fixx 1.8+ to work with.
You can grab a copy of the code which is licensed under the BSD
license and is free for you to modify.
Why not take a look at some of these other API-enabled tools/add-ons for fixx we are working on and even see if you can contribute?
I decided that since I’m quite familiar with git, that it shouldn’t take too long to adapt the previous Subversion to fixx hook script to play nicely with git. You can find it here
The instructions for using this script to post your commit logs/messages to fixx are very much the same as that highlighted in the previous article. Just make sure to place this in the .git/hooks/post-commit of your repository and your good to go(after chmod’ing it ofcourse).
Next on the list – mercurial integration, so watch this space…
Since publishing the fixx api in January, we have received a number of requests for source control integration. As a result I’ve gone ahead and created a nice script to get the ball rolling on this front, to be ran as part of the post commit hook. A post commit hook is a script that is ran after checking in some new code to your SCM repository. Lifted directly from the svnbook itself:
Most people use this hook to send out descriptive emails about the commit or to notify some other tool (such as an issue tracker) that a commit has happened.
This opens up the opportunity for us to latch onto the post commit hook whenever we commit new code into our repository, and feed the recently changed knowledge into fixx using our api. This has a number of advantages, as it means that fixing bugs and your SCM system are no longer disjointed processes.
I bet you’ve done the equivalent of this before svn commit -m ''. Well now that commit message gets logged in fixx for everyone to see. Therefore it’s worth getting into the good practice of inputting descriptive commit messages.
If you think about regression bugs this is also ideal as you can see all the files that were changed/added in originally “fixing” that issue. This is just one of many reasons consolidating your SCM with fixx has value and is beneficial to your workflow.
Here at hedgehog lab we primarily use Subversion as our source control system for most projects, and this script in particular is tailored to work with Subversion through the magic that is svnlook. But I’m confident that this can be easily adapted to fit whatever SCM your currently using.
Note: For this script to work properly the only prerequisites are that you have a copy of fixx running, and both Subversion and Ruby installed.
Basically the script looks for the issue id, prefixed by a hashtag as part of the commit message in order to log the changes in this revision in fixx.
So if I committed some CSS changes to improve the rendering of fixx, my commit could go something like this:
svn commit -m '#12 Dashboard CSS Tweaks'
A new comment would be created under issue 12, with the following content.
Just to point out that the #issueId can be placed anywhere in the commit message, though if one is not present, it won’t be logged in fixx.
Since we want to bridge the gap between SCM and fixx completely, we have also roadmapped in new api functionality, so other options will be able to be supplied with the commit message to create, resolve and close issues in fixx sometime in the near future.
Instructions on how to go about using the script can be found within the script itself, which you can find here so enjoy!
With the release of fixx 1.6 we also published a basic REST API so you tech heads can create mashups to interface with fixx for your bug tracking needs. To get the ball rolling, Mark decided to go ahead and create a time-tracking widget using Adobe Air.
What's really nifty about Adobe Air is that it's completely cross platform, so whatever flavour of Operating System your currently rolling with, Marks widget will work fine with it.
Since we're all about Open-Source here at the lab, that's exactly what we decided to do with it, as "fixx-track" can be downloaded here, so give it a try for yourself...I'm sure you'll be impressed! Alternatively, go one better and extend it to meet your workflows.
Just to make clear this isn't an official release from hedgehog lab, as you can read Mark's experiences creating fixx track on his blog. It's more an opportunity to stress the cool things you can do with our fixx API, and we hope that this release will create some motivation for the programmers out there, to see the potential behind this opportunity. We'll even showcase your work on our site if we think it's good! Why don't you download a copy of fixx to play about with our uber API to see what you're made of.
We at hedgehog lab love testing, infact our flagship bug tracking product, is geared toward tracking those bugs and delivering better software.
Well now there is an awesome test management suite on the block called testuff, which executes manual software tests and reports the flaws found in these tests. To boot testuff can output these results directly into fixx and other bug trackers!
From their site,
Testuff is an on-demand service for managing and executing manual software tests and for reporting defects. It is a test management suite that includes management for various test stuff: cases, runs, defects and more.
What's unique about testuff is the ability to attach video footage of each test and attach it to bug reports in order to quickly replicate and highlight the problem within your software to developers. Isn't that cool!
Yay! It's finally here. I am excited to report that we have just released fixx 1.6, which has some exciting features that you have been requesting.
The highlights of this release are,
The REST API is finally here. It is limited but a great start. You can access the documentation for the API by upgrading to 1.6 and going to /api.jsp in your fixx installation. If you would like to see specific functionality in the API please request it.
We, here at the lab, appreciate the value of letting the user hack out their own solutions to problems that they may have stumbled upon that don't fit our vision. There's barely a day goes by that you won't hear Mark suggest a rubbish new feature, get instantly shot down, and then insist that he'll write a Greasemonkey script for that functionality anyway.
With this in mind, the fixx team have always maintained that there will be a fixx API, so that developers may adapt fixx to meet their bug tracking needs. While still in relatively early stages, that API is coming together and you can check out the progress in the beta by going to any issues screen and appending .xml or .json to the URI (/issues.json, for example). This was still mostly unusable (unless you want to jump through some pretty hefty hoops), until recently when Sarat committed a change to allow basic HTTP authentication. This change is not available to the masses yet, however, to show off its potential usefulness, I've put together a quick shell one-liner to get the number of issues assigned to me:
curl -u user:password http://SERVER/issues.xml?qAssignedTo=19 | xmlstarlet sel -t -v "count(//issue)"
Which when fed into conky, an ace Linux desktop text rendering app, leaves you with a widget that looks a bit like this:
Useless? yes. Limited? Of course. But if this divvy can use it, you won't have any trouble whatsoever.
Here at hedgehog lab, we love to tinker with our API's, mashing them with other services and technologies, however, as hard working chums always committed to the job, we rarely have the time to do such things.
This is why we love it when our customers play about with our API's and create some great services. Recently, Radosław Szalski created an awesome Git post-commit hook in python, using our API. The project is published up to Gist for anyone to use as they see fit.
Radosław had this to say:
"
Ever since I started using GIT and Fixx was searching for a way to even
further streamline my workflow. Unfortunately most of the hooks I've found
were only posting comments to issues. Why stop there, when Fixx's API has so
much more to offer ?
I love robustness and automation, so I created something that suited my
needs. I chose Python, because I wanted to learn it for a long time. The API
itself, thanks to RESTful architecture, is extremely easy to use.
As for the future, I am considering adding support for timelogs. That's the
only feature I am thinking of - I don't want to make it too complicated. As
I am actively learning the language, I will probably upgrade it with some of
the Pythonic goodness."