Requirements

The main requirements for a tool to help the handling of muti-repos are:

  • Platform independent: it must support Linux, Windows, and macOS

  • Solve the issue of commit dependencies across git repositories, especially in the context of CI

  • Efficient: the tool should minimize the time needed for getting the source since it can be a sizeable percentage of the time spent by a CI engine

  • Fast execution: the time spent to run a CI is precious

  • Have a certain level of compatibility with existing tools solving similar issues, i.e., Google repo tool

  • Has own manifest format for supporting new functionalities but supports conversion from and towards other manifest formats

  • Built as a library to allow scripting extension, easy inclusion in other tools

  • Built as a modular SW, not created as a single executable

  • Decent amount of unit tests

  • Self-contained: not relying on and using other command-line tools, i.e., git