New Buildsystem and CI/CD

A GSoC project by Avinal Kumar


Time spent:


Meetings: 0 1

  • Discussing and collaborating with fellow participants and getting familiar with the FOSSology community and projects.
  • Since CMake is new for our FOSSology community, I will learn and bring in the resources so that people get comfortable with it before the coding period starts.
  • Going through the codebase and plan strategies for the migration, his includes identification of various types, segregation of libraries, executables, and dependencies.


Meetings: 2

  • Plan the priority order of migration, and create lists for all different configuration
  • Create CMake configuration for libraries.
  • There are approximately 8 libraries, since configuration are not that complex, it should take no longer than 1 week of time to complete


Meetings: 3 4

  • If libraries are complete, migrate the agents one by one, since FOSSOlogy is based on a modular architecture, many agents can be independently migrated.
  • There are some 27 agents, 2 agents per day should take 2 weeks of time, hence I have merged these weeks.
  • Time may vary for different agents to be migrated to CMake but on average this should take 2 weeks of time.


Meetings: 5 6

  • By now all the agents and libraries are migrated and now the top-level CMakeLists.txt should be created. Since this file will be complex and will need all the child configuration to work the testing and completion should approximately take 1 week of time.
  • This week will also check the overall gains in terms of performance and stability of the new build system.
  • This is also the minimum requirement for the build system to be said working and to add more configurations.


Meetings: 7

  • This week will continue the development of the Top-level CMake configuration.
  • More configuration will be added for Install, Test, Uninstall, Package
  • If completed, testing will start and will continue for the next week

First EvaluationCompleted
First Evaluation Report

  • The build system is a very crucial element of the project, hence it must be tested thoroughly before final rolling.
  • This week I will continue the development of all required configuration and testing of the new Build System.
  • By the end of this week the new build system will be able to properly build the project and use the configurations, this also marks the end of the first phase and first evaluation.


Meetings: 8

  • With all the build system working, this week will be used to migrate the CI from Travis to GitHub Actions starting with the C/C++ agent’s test
  • Now the C++ agent tests will be executed using the new Build System
  • If completed then the PHPUnit test migration will start.


Meetings: 9

  • Complete the PHPUnit CI migration
  • Add Docker tests
  • Start implementing source install test CI


Meetings: 10

  • Complete Source Install CI
  • Start implementing workflow caching
  • Fixing bugs and clearing backlogs


Meetings: 11

  • Checking the build system
  • Checking the CI/CD
  • Completing reports and documentation
  • Update the existing documentation and readme for the new build system and CI


Code and report submission: Final Evaluation Report