Re: [RFC] UnitTestFrameworkPkg cmocka submodule alternatives


Laszlo Ersek
 

On 12/16/20 19:45, Michael D Kinney wrote:
Hello,

We have had at least three incidents in the last year where the link to the
cmocka submodule in the UnitTestFrameworkPkg has not been available, and this
impacted the EDK II CI system. The following submodule link is the one that
is not reliable:

https://git.cryptomilk.org/projects/cmocka.git

We have identified two potential mirrors of this repo:

https://github.com/neverware-mirrors/cmocka.git
https://gitlab.com/cmocka/cmocka.git

The following patch provided a temporary fix for the EDK II CI agents, but
does not help other consumers of the edk2 repository.

https://github.com/tianocore/edk2/commit/be746104d1766a8c363e74d6063144657820d688

I have seen one suggestion that TianoCore create its own
mirror of cmocka. This does require monitoring and maintenance
by the TianoCore community. I would prefer to use a well
maintained mirror in github as long as we do not observe any
issues with the support of that mirror.

I propose we update the submodule in the UnitTestFrameworkPkg
to use the https://github.com/neverware-mirrors/cmocka.git mirror.
By using a mirror in github, we remove one external dependency.

Please provide feedback and comments on this proposal. If there
are no objections, then we will proceed with a patch review for
this update.
We could create our own fork under the <https://github.com/tianocore>
organization.

It does not require much extra maintenance or monitoring, in my opinion.
We only need to advance our fork to the actual master HEAD when we
intend to advance our submodule reference in edk2 as well. As long as
the submodule reference in edk2 does not move, the actual master HEAD of
the cmocka project may very well be ahead of our fork (mirror), without
causing issues.

I don't know who or what the <https://github.com/neverware-mirrors>
organization is, and I'd prefer not fetching code from them automatically.

Thanks
Laszlo

Join rfc@edk2.groups.io to automatically receive all group messages.