I build any version of a release from 8.8.15 to 10.1 and I think I mentioned this before but for zm-build, if someone gives me a version 9.0.0.p40 to build, I don't start with the latest 9.0 tag of zm-build.git but look for p40 and if it isn't there then I start walking backwards until I find the tag which for 9.0.0.p40 was p38 for zm-build. That is how the README.md file told us and I thought it was beneficial to have an independent tool that could generate this given they didn't always keep up the documentation.
Code: Select all
% ./build_zimbra.sh --dry-run --version 9.0.0.p40
#!/bin/sh
git clone --depth 1 --branch "9.0.0.p38" "git@github.com:Zimbra/zm-build.git"
cd zm-build
ENV_CACHE_CLEAR_FLAG=true ./build.pl --ant-options -DskipTests=true --git-default-tag="9.0.0.p40,9.0.0.p39,9.0.0.p38,9.0.0.p37,9.0.0.p36,9.0.0.p34,9.0.0.p33,9.0.0.P33,9.0.0.p32.1,9.0.0.p32,9.0.0.p30,9.0.0.p29,9.0.0.p28,9.0.0.p27,9.0.0.p26,9.0.0.p25,9.0.0.p24.1,9.0.0.p24,9.0.0.p23,9.0.0.p22,9.0.0.p21,9.0.0.p20,9.0.0.p19,9.0.0.p18,9.0.0.p17,9.0.0.p16,9.0.0.p15,9.0.0.p14,9.0.0.p13,9.0.0.p12,9.0.0.p11,9.0.0.p10,9.0.0.p9,9.0.0.p8,9.0.0.p7,9.0.0.p6,9.0.0.p5,9.0.0.p4,9.0.0.p3,9.0.0.p2,9.0.0.p1,9.0.0" --build-release-no="9.0.0" --build-type=FOSS --build-release="KEPLER_T090000p40C090000p38FOSS" --build-thirdparty-server=files.zimbra.com --no-interactive --build-release-candidate=GA
None of this is your problem but I liked your idea of a patched zimbra and wanted to understand how the repositories were cloned and tagged.
One nagging concern is pulling a repository with updated patches that do not have a tag associated with it then we add our tag and now include those patches. You are very careful but it shows how much work might be involved to verify incomplete schema patches and other things don't end up in the release. I don't even know if that scenario is possible but I have been known to worry about things that don't or can't happen.

Jim