Simulation and theoretical calculations are important approaches to support the design, e.g. control system, detector data acquisition, etc. in the engineering design stage. In old-fashioned R&D of scientific software, codes are mostly maintained on private computers, which often lacks version management and security backup mechanism. Bugs and errors in software are hence very difficult to trace. To improve code quality, cost, version control, etc., a source code management platform is developed based on GitLab, which provides the functions of collaborative development, version control, community collaboration, backup, etc..
GitLab is an open source application developed by Ruby on Rails. It development is driven by the community and checked by 700+ contributors. A self-managed distributed Git project warehouse can be quickly realized with GitLab, and public or private projects can be accessed through the Web interface. Similar to GitHub, user can browse the source code, manage defects and comments, track problems, and manage the team's access to the warehouse in Gitlab.
The GitLab architecture is shown in the figure below, in which Nginx is used as a static web server, GitLab Shell is provided for users to execute Git commands, Logrotate tool is used to manage log files, and relational database PostgreSQL is used for data persistence.
GitLab service address:https://git.cts.shanghaitech.edu.cn
Introduction and usage of GitLab is available at https://git.cts.shanghaitech.edu.cn/leilei/gitlab-guide
GitLab client installation tool is available at https://git.cts.shanghaitech.edu.cn/leilei/software-tools
Figure 1 GitLab architecture
Fig. 2 source code control platform of major science center