Deveo has been around soon nearly four years. We have come a long way building a software production platform that suits the enterprise needs, but still provides simple solutions for the daily needs of software developers. One of the most important aspect as well as differentiating factor for Deveo has been its web user interface. We have always received exceptionally good feedback about how Deveo looks and feels, and we have kept it as one of our key things to concentrate on.
With Deveo 3.0.0 we are bringing five major enhancements to the platform:
- Fully rewritten web client.
- Background service upgrades for most of the tools in the underlying technology stack.
- Code review functionality for Git repositories.
- Wiki enhancements.
- Issue tracking enhancements.
1. New web client
Deveo 3.0.0 contains fully rewritten web client that is built on top of EmberJS framework. We started building a new web client already back in summer 2014, but the switch to Ember meant we had to rewrite most if not all of our client side code. Luckily the changes only needed to be done in the client side, after all Deveo has been designed and developed from grounds up using API first approach. This meant that we could utilize the same APIs that are publicly available to our end users, and the same APIs were used to implement the earlier web client. We could also do the development of the new web client in parallel with daily feature development for the old web client.
Doing the rewrite in parallel with developing new features had its ills however. We had to simultaneously introduce new features at constant pace to the old web client, while taking a new framework into use. Our initial approach was to run the new and old web client technologies side-by-side. However this proved to be a cumbersome approach, which we buried quite fast. Finally, couple of months back, we decided to take a huge leap and push the new web client forward to replace the existing client entirely. This meant that we could finally get rid of the ballast of the old client, and end the racing between developing new features with old technology, and implementing the same features again with the new technology.
From now on, the EmberJS based web client allows us to implement new features with faster pace. It also provides many things out of the box that we would have had to implement with inelegant solutions ourselves. Basing the development on a framework that improves constantly over time and is supported by a large community is also a benefit we felt was important. Also last, but not least, writing the web client from scratch with new technology allowed us to implement existing functionalities more elegantly than they were implemented before.
2. Background service upgrades
Bumping the major version number up a notch was a great time to introduce upgrades to the underlying infrastructure below Deveo. We upgraded most of our background services to the latest versions to ensure that we can develop the whole platform forward. Naturally the background service upgrades also affect positively to performance as well as security, so it's a all around win-win situation. The full list of background services that were upgraded can be found from the release notes.
3. Code reviews for Git repositories
With Deveo 3.0.0 the largest new feature is the ability to conduct code reviews in Git repositories. Conducting code reviews has been requested heavily from us, and naturally we wanted to deliver the most efficient solution, but also take into account simplicity. As Deveo supports Git, Mercurial and Subversion as version control systems, we needed to create a solution that allows us to implement the same seamless experience for doing code reviews with each of the version control systems in the future.
The code reviews works in Deveo and Git using feature branches. You may create a review request between any two branches in a Git repository, conduct the review, and finally merge the changes to the target branch. During the review the code can be commented line-by-line basis. Alternatively comments can be left to the review itself to give more general feedback. Using code reviews in combination with protected branches allows creation of workflows that ensure each change that goes to the production is reviewed before merging it.
The code review functionality is a huge concept. It relates not only to development tools, but also to process related matters as well. We will thus cover the code review more in-depth in another blog post. We have also already started implementing enhancements to the code review functionality such as reviewers, voting and CI integration. These enhancements give even more robust control over the review process in the future.
4. Wiki enhancements
Idea behind Deveo Wiki is to offer a easy to use, flexible and clear way to share project related documentation. Deveo Wiki has proven its worth for small scale project documentation. As projects get larger, the Wiki also needs to support the growing needs. With Deveo 3.0.0 the improvements we made to the Wiki relate to the overall usability and scalability of the solution.
Wiki page URLs
This is an example of a pre Deveo 3.0.0 Wiki page URL:
https://app.deveo.com/deveo/wiki/overview/testing/repositories/wiki/commits/master/paths/cGFnZXMlMkZIb21lLm1k/. You can't really understand what page the URL is referencing. With the Deveo 3.0.0, the URLs are simplified and made more readable to humans. This makes sharing of Deveo Wiki links much more convenient and informative. As an example, the URL to the page in the previous example would be
Wiki page linking inside markdown
Similarly as the page names got prettified, we wanted to improve the experience of editing the Wiki pages. Before Deveo 3.0.0, if you wanted to link a Wiki page to another, you needed to use the linking functionality in the side menu, and the added link looked something like this in the markdown:
[page name](/wiki/overview/testing/repositories/wiki/commits/master/paths/cGFnZXMlMkZmZHNhLm1k/). We improved the links by introducing a custom link format. The new format allows users to bypass the attach menu entirely, and simply write the page name in a given format
[Home](wiki-page:Home). This makes reading the markdown formatted text better experience overall, as well as makes editing more efficient.
Wiki attachments linking
At this point you can probably already guess what happened to Attachment links. That's right, they are more human readable as well. So instead of attaching a picture with this beast
![attachment.jpg](/wiki/overview/testing/repositories/wiki/commits/master/paths/YXR0YWNobWVudHMlMkZmcmVlLWRvd25sb2FkLXdhbGxwYXBlci1vZi1mcmllbmRzaGlwLmpwZw==/), you can simply now type
![attachment.jpg](wiki-attachment:attachment.jpg), or use the side links menu for added convenience.
5. Issue tracking improvements
Deveo's aim is to provide a full stack of tools for software development teams in a consolidated package. One of the regularly used tools in software development is issue tracking. With Deveo 3.0.0 we have improved our issue tracking by streamlining the URLs. The major enhancement in Deveo 3.0.0 was to make the filtering parameters part of the URL. This allows users to save queries for later use. Having the filtering parameters in the URL also allows sharing them with others, which in turn increases collaboration.
As we have now got a major version released with a lot of enhancements, and lot of rewriting, you should stay tuned for more frequent releases in the future. Some things worth mentioning that are coming relatively shortly are multi site replication, shared bot accounts, custom hooks and better notifications scheme. We will open each of the functionality more throughly once we have them out.