On 28 March 2013 17:12, Paul Sokolovsky paul.sokolovsky@linaro.org wrote:
Hello,
I recently got
https://blueprints.launchpad.net/linaro-infrastructure-misc/+spec/rebasing-t... to verify current state of affairs with repo handling of SHA revisions for commits which have underlying tags. The blueprints contains full details, let me in this report mail cover just we most important bits.
- We have been having problem with repositories used in Android
releases being rebased later for a long time.
- Trying to resolve that, we established policy that any revision used
in a release must be tagged, to make sure that exact revision stays across rebases.
- That didn't really work well with "repo" tool from ~1.5yr ago,
because it did not fetch tags by default, so rebased revisions were still unreachable.
- We did our patching to repo and submitted it to Google, which then
was lost in great kernel.org demise of 2011, and later they rejected it telling they'd do it in different way.
- Fast forward to modern time, I verified that repo v1.12.2 works as
expected wrt to fetching commits by SHA revs, if they have underlying tag, so we're covered for policy of p.2.
- However, few repos were found to still be rebased without tagging
release revisions. To address that, following options are proposed:
a) Disallow to use SHA revs in release manifests. Granted, that would make more effort to do a release then just get pinned manifest of some build, but may improve release process by prompting to ensure that releases are made from Android Team managed mirrors of repositories, and that all such repositories are tagged in consistent manner (which how upstream does it).
To make this happen we should make sure that any repository that get into Android manifest are mirrored in android.git.linaro.org for us to create tags. Here are the number of projects we pull in from external git repository: 15 - git.linaro.org 6 - linaro-private.git.linaro.org 1 - github 1 - igloocommunity
Is it possible to have restricted gits in a.g.l.o similar to linaro-private.git.linaro.org ?
b) Verify that each SHA has underlying tag. A bit more challenging technically (i.e. possibility for unexpected behavior), and misses the chance to move release process to a new level, but should be still doable.
Can we do something smart here ? Can the git repository be configured in such a way that we mirror the external repositories and during syncing up with the mirror we create a tag (if it doesn't exist ) after syncing from these upstream git.
Note that both choices preserve ability to rebase repositories, which is considered an important developers' right ;-).
-- Best Regards, Paul
Linaro.org | Open source software for ARM SoCs Follow Linaro: http://www.facebook.com/pages/Linaro http://twitter.com/#%21/linaroorg - http://www.linaro.org/linaro-blog
linaro-android mailing list linaro-android@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-android