Workflow automation in VCS integration

A much requested feature in VCS integration is the ability to close issues using the commit message. We have (finally) implemented this, but as usual, have decided to go a little bit further. In The Bug Genie 3.2, you will optionally be able to use your commit message to navigate through the issue’s workflow, using only basic syntax.

So how does this work?

You may have noticed that incoming emails allows you to navigate through the workflow. We work in a near identical fashion. The difference is how the message is structured.

In incoming emails, you use a syntax similar to this:

resolve issue

This is my comment

The workflow steps and parameters are all on separate rows.

In VCS integration, we don’t have this luxury so we compact everything together:

Fixes issue 1 (resolve issue: resolution=WONTFIX)

Simply place the workflow step in brackets, and if there are parameters for the step, just place them after a ‘: ‘ delimiter. You can also have multiple parameters:

Fixes issue 1 (resolve issue: resolution=WONTFIX status=kittens)

You may also wish to perform multiple transitions at once, this can be done by using a ‘, ‘ delimiter after the parameters. You don’t have to supply parameters either:

Fixes issue 1 (confirm issue, resolve issue: resolution=WONTFIX, reopen issue)

If a workflow step fails, or if it doesn’t exist, you won’t be notified; so while there is no risk of a mistyped commit breaking the commit process, you may want to double check to see if your workflow step was applied.

Similarly to incoming emails, the workflow steps are just as they are in the toolbar when viewing an issue, so there is little to learn.

If you are eager to try this out, this feature will be appearing in our github repository later today. It will also be included in 3.2 beta 3, along with a working module (it has been broken as a result of the database changes).

3.2 improvements

We’re about half-way through the 3.2 development cycle, and it’s starting to become apparent what kind of changes you can expect from the upcoming release. We’ve settled on quite a few features to be included, and even though several of these features haven’t seen any development yet, we’re excited to share with you some of the already completed features and changes. Here are a few highlights of what have been going on in the 3.2 development branch the last few months:

  • Project dashboard reorganization
    We love our project dashboard and project-sections, but there is huge room for improvements. The 3.2 version has seen and is continuously seeing huge improvements and drastic changes in these areas. The main dashboard has already gotten a big facelift, and some of the new functionality we’re working on will have a much more prominent place in this new layout. We don’t want to give it all away just yet, so expect more news related to this 😉
  • Focusing on your projects
    The projects are receiving a lot of love these days. We’re including functionality to better manage your project setup (editions and components); we’ve added support for subprojects to better organize your existing projects; we’re adding much improved release functionality and redesigning the way editions, components and releases work. Project permissions have largely been fixed in our latest releases, but we still have a thorough inspection and fixup planned for project permissions to behave in an expected way and maybe even reduce the complexity.
  • Search improvements
    The main search has also seen some new functionality. You can now sort on the table headers in search results, and you can show / hide columns in the search results to better find the information you need. Also to come is bulk editing functionality, as well as a few other treats.

The list above is far from extensive and far, far from a complete list of changes gone into the 3.2 release. And we still have a lot of stuff on our plates – incoming email support, fully functional LDAP authentication support, support for HTTP auth, bulk editing (as mentioned above), file upload and download functionality for projects and a lot more.

As always, we’re constantly looking for people willing to contribute to the bug genie on a regular or random basis. If you’re familiar with php, html/css or UI / UX design, don’t hesitate to get in touch!

Try out LDAP!

Back when we were developing The Bug Genie 3.1, we promised LDAP support. Sadly we were not able to include it with the final release of 3.1, but the good news is that a testing version of The Bug Genie 3 is now out, with LDAP support included. This is release number 3.1.4, and a beta is available to download today, though we recommend you read the release announcement first (download link included).

On top of LDAP support, this fixed a few other issues with the mailing module (looking at you, guys who wanted delayed mailing!), as well as a few regressions from 3.1.3.

Read on for some important notes and some preliminary documentation. Continue reading “Try out LDAP!”

VCS Integration redux

Following my previous post, all the proposed changes to VCS Integration have been made, and this means some important changes for you upon the release of The Bug Genie 3.2:

  • Upon upgrading, the module will be disabled until you upgrade its database from module config. This will be made clear to you, in the mean time commits can’t be checked in.
  • Your hooks will need reconfiguring. We are now using the project key instead of the project ID, so minor changes to your hooks will be necessary. This is simply a matter of replacing a number with a word, project keys are visible in the projects list in configuration. As a note to those who want to try out the latest code from next, due to an unrelated issue, the direct access method (via tbg_cli) still uses ID-based access, even though it says to use the key.

The upgrade process is necessary due to various database changes we have made. The script will import all your old commits, and set the new settings so that they match the previous configuration. You can, afterwards, go through and alter the projects to take advantage of the new features – such as different access methods for different projects.

The script will import all projects which had VCS Integration enabled beforehand to have it on for issue-affecting commits only, all with the same access method and (if using the HTTP method), the same passkey. The URLs for each project will be imported from the old settings.

Testers wanted! If you want to give this a try, feel free to check out the next branch from github and give it a go! There are probably some loose-ends to tie, so please let us know if you find any problems.

What else is new? Naturally, quite a few problems were found in the main code, which were fixed. One of most note to those of you who use the inbuilt scrum support was a bug where anyone can change the scrum colours. This has now been fixed, and only those who have permission to edit issues can have this magical power.

Coming soon to VCS Integration

For the next release of The Bug Genie 3, there will be some exciting improvements to the VCS Integration module. Here is a taste of what is up to come!

Improved setup and configuration

Setting up the module is a bit confusing at the moment, with project IDs being used which aren’t really visible, as well as it not being clear where the projects are set up. We will be moving the project-specific parts of VCS Integration to project configuration, allowing the access method and passkey to be set on a per-project basis, as well as improving the configuration so that  it is a lot clear what you need to do after typing in the boxes.

Better support for repository browsers

Setting up a repository browser is a bit confusing at the moment, with details split over three boxes, some of which don’t apply in all cases. We will be merging all the boxes into one for each kind of page to be viewed (index page, diff page etc.), with %placeholders% so that it is easier to set up the URLs. This also means that The Bug Genie will support any repository browser under the sun, as long as the fields are inputted correctly.

Better localization

A lot of users have requested that it should be possible to localise the words which The Bug Genie picks up. The pick-up words will now be user customisable, as well as supporting cases where no word is wanted at all. Picking up of issue mentions will become better too thanks to some new API functions.

Not just commits that apply to issues!

VCS Integration will also (optionally) pick up ALL commits. This means on the project commits page, you can see a list of all commits ever made to the repository (since setting up). This isn’t quite inbuilt repository browsing, but it will help with keeping track of things. This will also mean database changes, but an added bonus is users of Gitorious will be able to have commit boxes displayed on their issue, as data will no longer be stored in the database on the basis of file changes – instead commits.

Hopefully this should give you a taste of what is to come. Along with fixing any bugs (there is one with Git we are meaning to look at), this should help improve this slightly unloved feature of The Bug Genie. Thanks to all who have suggested improvements!

LDAP authentication to be released as a separate plugin

Just a little quick note to let you know that we’ve decided to postpone the release of the LDAP authentication module. With a small team of developers, we simply don’t have the manpower to get it finished, and 3.1 needs to be released 😉 We’re still leaving all the work done on the authentication backend in with the 3.1 release – and as soon as the LDAP module is finished, it will be released on our plugins section.

Look out for an RC soon!