Blog

Traq 3.8.0 released

Traq 3.8.0 has been released.

This release makes improvements for use on newer versions of PHP, has a redesigned header and uses Vue.js for the ticket listing.

The new ticket listing page is much faster to interact with and filter as all changes happen client-side with API calls.

Traq 3.8.0 requirements

Traq 3.8 is shaping up to be a large update with many improvements to the entire stack.

The required PHP version for Traq 3.8 is PHP 8.0.2 or later, making Traq 3.7 the last version to support PHP7.

Traq 3.7.3 released

Traq v3.7.3 has been released with improved support for PHP versions 7.x and 8.x.

Many of the fixes were backported from Traq v3.8 which is nearing completion with a vastly improved UI.

Progress update for 3.8

The UI refresh in Traq 3.8 is coming along nicely, and today the ticket details page was completed.

The page was built using Alpine.js to manage the editing of the ticket description and toggling tasks.

file

Not everything needs to be built in Vue.js. Going forward, the simpler tasks can be handled with Alpine and the more complex stuff, such as the ticket listing, will be handled with Vue.

Traq 3 and PHP 8

I've been working on improving support for PHP 7/8 while working on Traq 3.8.

I'm happy to announce that I will be back-porting all these improvements to Traq 3.7 over the next few days with another Traq 3.7 release shortly after.

Improvements to Traq 3

I've finally been able to start working on Traq again and now that 3.7.2 has been released I've started making some significant improvements, starting with Traq 3.8 the UI will be using Vue.js to vastly improve performance.

I've already made progress on the Ticket Listing page, below is a screenshot of the tick filter component build in Vue.js. Managing filters can now be done without a single page reload.

file

Along with ticket filters, the column section has also been updated.

file

You may have noticed the new design changes coming in with these new components, the plan is implement these changes everywhere.

Discord

I’ve gone ahead and set up a Discord server to replace the old, outdated forum.

You can access it via https://discord.gg/EsJM4xMs4p.

The Discord is set up for support, discussing development and contributing.

Traq 3.7.2 released

Traq 3.7.2 has been released, admittedly late. This release addresses issues with PHP7.

With that news, I’d like to announce development on Traq 3.8, which will focus on updating most of the UI to Vue.js along with some updated interface elements.

Traq 4.0 Installer

The new installer for Traq 4.0 is just about.

The new installer works a little different from the 3.0 installer. Before running the installer you first need to fill in your configuration info into a .env file.

When running the installer it will check file and directory permissions and the database connection and set up the administrator account.

file

One final thing missing the requirements checker to ensure the minimum PHP version and required extensions are installed.

Traq 3.7.2 development update

For the first time is a very long time Traq 3.7.x has gotten a few updates and a release will be available soon.

This release takes care of a few issues with Traq 3.7.x running on PHP 7.x and restores the private tickets feature that was dropped off some time ago.

Big differences between Traq 3.x and 4.x

As I've been rewriting Traq 4.x I've made some pretty big changes and figured it would be best to talk about them and explain them.

Permissions

The permissions system in Traq has changed quite a bit since the original release. Traq 3.x has the most complex permission system with layers of inheritance:

  • Default Group permissions
  • Default Project Role permissions
  • Project Group permissions
  • Project Role Permissions

This system uses every layer, it checks what permission you had at the project role level, then up to the project group level, then to the defaults. You could define one or two different permissions while the rest are inherited from the layers above. This was a great system but has a great complexity and maintenance cost for both the development and management perspective.

When starting from scratch I took the opportunity to design the system to be just as flexible but with less complexity and reduce the layers of inheritance. We still have the same four layers, the defaults and then the actual group or role permissions but the inheritance is gone.

If you don't have a project role, your group projects are used, if your group has no permissions set for the project, the defaults are used. You must now define the entire group or roles permissions at once.

This new system makes the permission system less complex and easier to maintain. You no longer need to worry about changing a default permission and affecting all projects, groups or roles.

Ticket properties

There are a lot of ticket properties that can be merged or dropped completely. Take Priority and Severity for example, a single field can handle both, if it's severe its high priority. But people do have high priority but low severity issues.

This is where the ticket labels/tags come in, you can set your ticket to be high priority and have a label of "blocking" for example. It allows for easier marking of tickets that are severe, non-severe, aesthetic only.

Now that we have labels/tags, we can easily merge other fields into it, such as Components. You would now simply create your ticket and assign the "ticket creation" label if it were related to ticket creation or "ticket updating" if it were related to updating tickets instead of having to constantly create new components for what may be only one or two tickets.

The interface

The interface for Traq 4.x is one of the biggest changes. Not just the design. There are a lot of pages that are being dropped in favour of bringing project management forward. For example, the Roadmap page is where you would go to manage milestones instead of the Project Administration section.

I've gone with a customised Boodstrap theme and will be mixing in some Vue.js components for a few of the more complex pages, the Ticket Listing is one page that will be using Vue.js.

Traq 4.0 Progressing

The Traq 4.0 rewrite is progressing well and is very close to it's first alpha release.

Below is a screenshot of the new Roadmap page displaying the new progress bars reflecting the Completed, Started and Incomplete ticket statuses.

file

Traq 4.0 development update

Development on Traq 4.0 has been progressing well. Projects, Milestones and Tickets can be created and updated.

The permissions system has been redesigned and is much simpler than before and makes use of Laravels Auth features.

Here is a preview of the current state of the new ticket display page.

New Traq 4.0 Ticket page

Traq 4.0 Re-development

The development on Traq 4.0 has been very slow. Recently I started thinking of how to speed it up and get it back on track. I've decided to re-start the development of Traq 4.0 with an already established framework, this will greatly increase the speed of development.

I have chosen to go with the Laravel framework as it fit into the requirements I have set for Traq.

I'm going to take this chance to also simplify the UI and back-end end code-feateures (API's for example), most of the Admin and Project Settings pages will be rolled into the front-end.

Here's a small preview of the work-in-progress Roadmap page:

New Traq 4.0 Roadmap page

Traq 3.7.1 released

It's been just over a year since Traq 3.7 released, not many issues were reported. Any issues that were reported are fixed in this release of Traq 3.7.1

If any issues are still present or there are new ones, please report them to the issue tracker for Traq 3.7.2.

Traq 3.7.0 released

It's been a while since Traq 3.6 was released, and is on record as being the longest running release with zero bugs reported. I am happy to release Traq 3.7.

Changes in Traq v3.7.0 include:

  • Ticket time management
  • Password migration prompt

When logging in to Traq 3.7, any user that has a SHA1 hashed password will be prompted update their password which will then be encrypted with bcrypt.

This is due to support for SHA1 passwords being dropped in Traq 4.1 and any user with a SHA1 hashed password after that will need to go through the password reset process before they can login.

It's time for some documentation

The documentation for Traq 3.x is pretty basic, this however won't be the case for Traq 4.0.

The documentation for Traq 4.0 has already been started and by the time there is a stable release of 4.0, the documentation should be quite extensive.