Brand new i-systems release has been recently launched. The changelog consists of 38 records, including 11 updates of features such as coupons, remarketing, payments and auctions. The major change introduced in our latest software update has been the migration to the Git revision control system.
Release adjusted to the Git revision control system
All the development works has been executed on the basis of Bazaar revision control system so far. However there were some deficiencies, such as: a kind of archaic solutions, and, the most troublesome, lack of development and adjustment to the changing systems and environment. While creating over a dozen releases during the year, as well as systems of increasing structure, this problem seem to grow bigger with every update of i-systems software. IT team had to create their own solutions in Bazaar very often.
In the long-term perspective it appears to be very ineffective. Therefore all the versions from level 4.1 and upward will function based on Git revision control system. Current release is a key to the transition process, because it identified and solved all the problems and discrepancies between Bazaar and Git. This above mentioned discrepancies concerned among others: adding new scripts, refactoring autoload, and adjusting components to the corresponding location in the project tree.
Revision control system is responsible for tracking changes in files and code. It also enables reestablishment of any previous version during the process of creating eCommerce software. What is more, there is a possibility to compare this versions and find out who implemented those changes, when did it happen, and what are the specific changes implemented. This is a key factor considering system development, and it is very helpful in case of large projects and teams. Git system is a response to challenges that IT teams have to face while working on developed projects. Git is disturbed, fast, it protects against repository errors and eliminates all the CVS errors. Among its specific advantages there are possibilities to:
– track project development from the beginning to the current state;
– reestablish any previous version;
– track changes in code in offline mode;
– maintain every repository as a separate branch, what is very helpful in case of projects with above 900 branches;
– merge changes introduced by different people in different time;
– build branches, to allow parallel work of several programmers on several solutions without blocking and interfering each other;
– make the revision control system work faster (easy to notice on large projects);
– merge from any place in the project to any other place;
– save a complete change view, in opposition to other revision control systems, where only particular changes could have been saved.
Adjusting release to the Git revision control system is a part of long-term development plan of i-systems software.
From continuous delivery…
The vision of the i-systems software development assumes faster growth, as well as more effective adjustment to the market demands and to the dedicated customer demands. Therefore, introducing Git revision control system will allow more effective transition to the continuous delivery model. Continuous delivery is a process of automatic code implementation for the testing environment, where it can be a subject of other tests and where other functionalities can be created, until the desired result is obtained. After a completion of series of tests, the product is being transferred to the “production line”, which means that functionalities tested are being applied into production server.
Of course, despite increased automation, all the decisions are to be made by the team. An intense process of software development has no impact on stability and safety of the projects. Continuous delivery method is being applied in aviation, banking and medical industry. It is assumed that NASA applies this method in case of space probes. Only after passing all the tests and being approved by the team, the software can be used by the customers.
With the automation of the routine tasks and quick feedback, continuous delivery process improves satisfaction level of the programmers as well.
…to continuous integrations
In the long-term perspective all the changes have to result in continuous integration of the i-systems software. Continuous integration is characterized by a systematic addition of current changes in the code to the main repository. A frequency of the changes mentioned can reach the amount of even several times a day. However, the optimal frequency, taking i-systems into the consideration, is smaller. The most important advantages of the continuous integration are: increased efficiency when combining work during projects, the ability to detect any possible errors and constant access to the latest code version. In practice, continuous integration provides a set of tools for the programmers, which compiles code, creates build, performs automatic tests and other static code analysis.
All the changes in the process of software development will be implemented gradually, and will be practically invisible for the i-systems customers – what changes is only an organization of the part of IT team itself.