The Zyxist Diaries A programmer's voice from Poland

21Feb/100

InDefero – PHP alternative to Trac

Trac is one of the most popular open-source project management tools. It provides an integrated Subversion viewer, bug tracker and wiki system. In other words everything we need. However, Trac is not perfect. It does not support any other version control system without an external plugin, the wiki syntax is considered as a nightmare for some people, and there may be a problem with hosting – it is written in Python.

Python itself is a nice programming language, but the practice shows that finding a suitable Python hosting can be troublesome. Furthermore, if someone does not know Python, he might have a problem with installation and configuration. Eventually, we might not want to install yet another programming language to our hosting server, especially if everything else is written in PHP. There are some good alternatives to Trac. Ruby users may be interested in Redmine, but a common question was what in case of PHP? I've done some googling recently and found a nice-looking project called InDefero.

InDefero features

InDefero is written entirely with PHP 5 and Pluf framework. It provides a couple of interesting features:

  • Integrated version control system browser with SVN, Git and Mercurial support.
  • Diff tool.
  • Code review and patch repository.
  • Wiki pages.
  • Download pages.
  • Integrated issue tracker.
  • Markdown text formatting (my favourite).
  • Support for private projects.
  • Access rights management.
  • SVN/Git/Mercurial management.
  • E-mail notifications, watch list and many other personalization tools.
  • and many, many more...

InDefero is being developed by Céondo Ltd. which provides various InDefero hostings. However, we do not have to buy an official hosting. If we own a web server, we can simply download the source code and install it on our machine, as the project is distributed under GNU GPL terms.

My first impression

So far, I have installed InDefero on my local computer to test it. The installation procedure is quite long and a bit scary. We must install Pluf framework, then ensure that PEAR works correctly and is accessible by PHP scripts, perform database migrations and so on, but I did not have any problems with it. The installation procedure is clearly described on the wiki and if we simply follow the instructions, we should be successful.

Generally speaking, I'm impressed. The application layout is enjoyable and does not frighten. Actually, it resembles Google Code both in the general structure and in the typography issues. We begin with creating a project. The process is rather straightforward. We choose the name, provide the source code repository information and define the project members. Of course, the further configuration provides many more details. We can change the default issue types, wiki page labels, user permissions and e-mail notifications.

The interface makes use of AJAX and JavaScript. We can see it in the issue tracker and the process of creating a ticket. Contrary to the classic systems, we do not have here lots of select lists, but rather simple text fields entitled "Labels". We can write there everything we want, creating a necessary label on the fly. At the same time, InDefero displays a list of suggestions and predefined labels based on what we have written so far. It is up to us whether we follow them or not. Similar approach can be found on wiki and download pages.

Wiki pages are formatted with Markdown syntax. Markdown format is intended to be as easy-to-read and easy-to-write as is feasible. It was originally designed by John Gruber and later ported to a wide variety of programming languages and tools. The syntax itself is based on conventions found in various plain text README documents - it is so intuitive and natural that I'm using it everywhere: from websites, through articles to ordinary text files which can be reformatted to HTML in any moment. InDefero provides an extended version of Markdown known as PHP Markdown Extra created by Michel Fortin which provides some extra formatting rules such as tables.

Conclusion

I must admit that InDefero has made a big impression on me. I'm very surprised that this software is rather unknown among many PHP developers and I hope this post will help making it more popular, because it's definitely worth it. Below, you can find some useful links:

Comments (0) Trackbacks (0)

No comments yet.


Leave a comment


No trackbacks yet.