📜 ⬆️ ⬇️

Comparison of development environments, build and upgrade of operating systems and applications

The Penguin Software specialists analyzed the five assembly environments: Open Build Service, Koji, Launchpad, ABF-ROSA, Sisyphus. The first three are the largest assembly systems used in major global projects such as openSUSE, Meego (OBS), Fedora / RedHat (Koji), Ubuntu (Launchpad), ROSA ABF and Sisyphus - the assembly systems developed and used by Russian companies ROSA and ALT Linux respectively.

The main tasks that the development and assembly environment solves:
- simplification of joint work on the distribution of a large number of developers;
- ensuring the safety and control of changes in software;
- providing third-party developers a convenient opportunity to create software that is compatible with this distribution;
- improving the quality of the developed distribution / software due to automated testing;
- assembly of binary packages with their automatic placement.

This leads to the following requirements imposed on the build environment:
- the presence of a developed interface that includes a web interface, a command line interface (cli) and an interface for external software (usually XML-RPC or REST);
- the ability to build under different hardware architectures;
- the ability to simultaneously support multiple distributions (or at least different versions of the distribution);
- availability of version control systems, logging, authorization and access control delimitation;
- the possibility of automatic reassembly of dependencies;
- assembly in an isolated environment;
- scalability of the build environment;
- the ability to create personal additions to the repository (personal repositories) that are compatible with the distribution;
- the ability to create specialized distributions (including certain software);
- the possibility of automated testing.
')
Summary characteristics of assembly systems (in the appendix ).

Findings:
- there is no ideal and universal assembly environment in nature;
- there is no direct and obvious relationship between the quality of the build environment and the "success" of the distribution (for example, in the Ubuntu build environment there are no automatic reassembly of dependencies, but the system is one of the most popular and high-quality);
- You can not rely on any one build environment.

Source: https://habr.com/ru/post/140872/


All Articles