Open-source tools and environment
Most of the software services companies evolve solely in the world of Microsoft Windows ™, and use proprietary tools. Even if it is common, it may be something that does not match your own environment and expectation!
Even if we are comfortable with Windows development tools like Visual Studio or MS compiler, we chose a different approach by using mainly Open source and multi-platform tools, like the GCC compiler or the Git version control system... If you are like us, chances are that we will fit your organization much faster than others, increasing quality and saving time and money over the whole project.
GCC, Gnu Compiler Collection
Multi-platform tools we use
- GCC and G++ compilers on Linux, Windows and Mac
- CMake and CPack building system for all platforms
- CTest and CDash testing systems
- The Git Version Control system
- Redmine project management web server
- VMware Server for OS virtualisation and testing
- Jabber Instant Messaging
GCC is a very high quality portable compiler -- it runs on most platforms available today, and can produce output for many types of processors. In addition to the processors used in personal computers, it also supports microcontrollers, DSPs and 64-bit CPUs.
It can also cross-compile any program, producing executable files for a different system from the one used by GCC itself. This allows software to be compiled for embedded systems which are not capable of running a compiler.
GCC development is guided by the GCC Steering Committee, a group composed of representatives from GCC user communities in industry, research and academia. It is free software, distributed under the GNU General Public License (GNU GPL).
CMake building system
Over the years, we tried and used many different types of building systems. CMake ended up at being by far the best and the most powerful, supporting our strong focus on multi-platform development.
CMake is a cross-platform, open-source build system. It is used to control the software compilation process using simple platform-independent and compiler-independent configuration files.
Using the CPack packaging program, CMake generates packages for all sorts of platforms (debian or rpm packages for Linux, setup and msi files for Windows, dmg and App bundles for MacOSX, etc.)
Please go to http://www.cmake.org/HTML/About.html to learn more about CMake.
See more about CMake and CPack building system
CTest and CDash suite for testing services
At Tegesoft, software quality and testing is not an option and we take it seriously.
Our developers implement unit tests using CTest and track the results with CDash. They depend on CDash to convey the state of software systems, and to continually improve code quality.
CDash is an open source, web-based software testing server.It aggregates, analyzes and displays the results of software testing processes submitted by our development teams, wherever they are.
See more about CTest and CDash
Git fast version control system
Even if we are comfortable with Subversion (SVN), Mercurial (Hg) or even CVS, we still prefer and use Git daily for all our internal projects, and any time we can.
Git is a distributed version control system that does not use a centralized server. It is a free and open-source system designed to handle everything from small to very large projects with speed and efficiency. It runs on all desktop, server and mobile OS.
So it perfectly fits Tegesoft's way of working and philosophy, bringing multi-platform support, letting developers work in a decentralized way (yet we have also a central main server), being fast, powerful at managing branches and variations...
It has been originally developed by Junio Hamano and the famous Linus Torvalds for the Linux kernel development.
See more about the Git version control system
Redmine project management
Redmine is a flexible project management web application, cross-platform and cross-database.
It supports multiple projects, it has a flexible role based access control, a power issue tracking system and supports many additional features via modules (eg. wiki, repository, gantt, planning, ...).
Its perfect integration with all major Version Control Systems (specially git, for us) makes it a tool that perfectly fits in our working environment.
It allows to make projects public or private with fine grained access control. That let us give our customers access to their projects from the Internet, giving them the ability to follow the work in progress and possibly to participate.
Click to see more about Redmine features.
VMware Server
The many different variations of Operating Systems we support require to compile and test our code on different platforms. Just mentioning Windows, there are differences between Windows XP and Windows 7, not to mention the 32bit versus 64bit differences!
To accomplish automatic testing on many target systems we use VMware Server. It runs all target OS in virtual machines that get managed by the build and test system.
In additional, our developers can do manual tests and R&D in a secure virtual machine environment and be able to roll back to a clean state by using the snapshot feature.
