Hi All,I'm trying to build Chromium at a specific release version using only a git checkout. The checkout was initially created as follows:>fetch --nohooks chromium --nosvn=True>gclient sync --nohooks --with_branch_headsIf I checkout refs/tags/VERSION it fails in `gclient sync` [1]. If I checkout refs/remotes/branch-heads/BRANCH it works as expected [2]. These results repeat for all values of VERSION and BRANCH that I've tried.Is there a way currently to checkout Chromium at a specific release version using only git? I'm aware of the git svn approach described at http://www.chromium.org/developers/how-tos/get-the-code#Working_with_release_branches but would like to avoid using svn if possible.
On Mon, Apr 21, 2014 at 7:26 PM, Marshall Greenblatt <magree...@gmail.com> wrote:
Hi All,I'm trying to build Chromium at a specific release version using only a git checkout. The checkout was initially created as follows:>fetch --nohooks chromium --nosvn=True>gclient sync --nohooks --with_branch_headsIf I checkout refs/tags/VERSION it fails in `gclient sync` [1]. If I checkout refs/remotes/branch-heads/BRANCH it works as expected [2]. These results repeat for all values of VERSION and BRANCH that I've tried.Is there a way currently to checkout Chromium at a specific release version using only git? I'm aware of the git svn approach described at http://www.chromium.org/developers/how-tos/get-the-code#Working_with_release_branches but would like to avoid using svn if possible.So, it looks like I need the commit immediately before the version tag. Hopefully that will work consistently :/.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
> I'm trying to build Chromium at a specific release version using only a git checkout.This is essentially wrong per definition and is not supported. Probably things will change soon(ish), see the thread about migration to Git.Sadly this question / kind of mistake comes on chromium-dev on a monthly basis. We should probably just improve the docs at this point.
Please note that "working on a release branch" is != "build a release version of chrome".In general you should need to follow the "working on a release branch" instructions only if you are a committer needing to cherry-pick / mangle something on a release branch and for whatever reason you can't use drover. In any other case, is very unlikely that those instructions will give you anything helpful. In this specific case, for instance, this doesn't seem what you want to do here.If you want to just build chromium as released for a given release X, the only publicly supported workflow is using SVN as follows:gclient config http://src.chromium.org/chrome/releases/34.0.1847.9gclient sync -j4That's it. Any other workflow will very likely end up with some uncompilable garbage or will just compile a lie.
The reason is that, as you figured out, the DEPS (and .DEPS.git) files in the release branch are pretty much meaningless (they are a snapshot of the DEPS at the branch point).AFAIK there is no easy way to recreate the .DEPS.git file from a SVN release branch DEPS.Just use SVN. I can agree that SVN is slow, tedious and [any other adjective ad libido], but at the moment it looks it is our only supported workflow for checking out and building a release version of chromium.
AFAIK there is no easy way to recreate the .DEPS.git file from a SVN release branch DEPS.Just use SVN. I can agree that SVN is slow, tedious and [any other adjective ad libido], but at the moment it looks it is our only supported workflow for checking out and building a release version of chromium.
I have followed the instructions below, with the exception being that I changed svn:// to http://, since svn:// requires some sort of authentication:
# Make sure this is in a new directory with no existing .gclient.
svn ls svn://svn.chromium.org/chrome/releases/
gclient config svn://svn.chromium.org/chrome/releases/34.0.1847.9
gclient sync --jobs 16
However I get the following error when I run gclient runhooks:
Enabled Psyco JIT.
Updating projects from gyp files...
gyp: E:\src\chromium_src\svn_src\src\third_party\WebKit\Source\build\features.gypi not found (cwd: E:\src\chromium_src\svn_src) wh
ile reading includes of E:\src\chromium_src\svn_src\src\third_party\WebKit\public\blink.gyp
gyp: E:\src\chromium_src\svn_src\src\third_party\WebKit\Source\build\features.gypi not found (cwd: E:\src\chromium_src\svn_src) wh
ile reading includes of E:\src\chromium_src\svn_src\src\third_party\WebKit\public\all.gyp
Using overrides found in C:\Users\dave\.gyp\include.gypi
Error: Command e:\src\chromium_src\svn_src\depot_tools\python276_bin\python.exe src/build/gyp_chromium returned non-zero exit stat
us 1 in E:\src\chromium_src\svn_src
Hook ''e:\src\chromium_src\svn_src\depot_tools\python276_bin\python.exe' src/build/gyp_chromium' took 19.98 secs
regards,
Or possibly in glorious future make it possible/simple/easy to understand? I don't know all the issues and problems that led to the creation of gclient and this DEPS system in the first place.
We've been living without it in Opera quite successfully so far (only one git tree with (some recursive) git submodules, not having/using any extra tools except git).
A branch is just a git branch etc. It is all very simple and easy to understand. :)
The question here is of course will this continue to work after the flag day? There's talk about "every bot needs to use Git on that day". Our Chromium import scripts works by getting the release code and committing the new tree as a "Chromium update 34.0.1847.9" commit.
So you are saying that this will change, but not yet (i.e. there'll be some announcement later when development is already git-based)? Not in this first move?
The question here is of course will this continue to work after the flag day? There's talk about "every bot needs to use Git on that day". Our Chromium import scripts works by getting the release code and committing the new tree as a "Chromium update 34.0.1847.9" commit.This is an excellent question. Chase, any clues?So you are saying that this will change, but not yet (i.e. there'll be some announcement later when development is already git-based)? Not in this first move?No, I'm not the right person to say what and when will change. I know what I read from this mailing list as you do.I'm just saying that at the moment, this is the supported way to checkout and build a release version of Chromium. That's it :)
To clarify, this is the process I meant to test:git checkout refs/tags/35.0.1916.27# edit .DEPS.git to remove the 'src' entrygclient sync -nohooks --jobs 16
blink.git does have the release branches, under branch-heads, just like src.git. I assumed you synced using ''--with_branch_heads", since you mentioned that in a previous command, but maybe your previous checkout never got that far. Try adding that to the sync command you're using now.
FWIW, it also appears to work if you set:"custom_deps" : {"src": None,}in the "src" solution of the .gclient file. That's probably the best fix until the git buildspecs can be updated to remove the 'src' entries.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
3) DEPS in a Git release tag:This looks actually "true" and seems === to the true SVN DEPS [2]However I find hard to imagine how to use this DEPS (hence SVN-related) file from a git checkout. I bet that gclient would be pretty confused by such a combination.4) .DEPS.git in a Git release tag:
This seems to be the correct Git translation of the truthful DEPS [2].According to this thread, this seems to be usable for checking out a consistent release of Chrome via Git according, using the controverse workflow described by the previous mails in this thread (i.e. checkout the tag, remove src from custom_deps, gclient sync).Unless I'm missing something here, this workflow is currently undocumented hence unsupported (somebody please correct me AND our instructions if I'm wrong)
On Wed, May 21, 2014, at 23:54, Michael Moss wrote:That's awesome. :)
> Quick follow-up. As of yesterday, new release tags have the 'src' entry
> removed from DEPS and .DEPS.git. For example:
>
> https://chromium.googlesource.com/chromium/src/+/37.0.2007.0/.DEPS.git
>
> so something like:
> git checkout refs/tags/37.0.2007.0
> gclient sync
>
> should work now. I still need to update all previous releases, so it
> still won't work for things like 35.0.1916.27 mentioned earlier
> in this thread.
I notice that 35.0.1916.114 still has the 'src' in there[0]. Will the
next stable update after this one also have the 'src' in there? Or is
this an infrastructure change that will make every DEPS.git file created
after this point in time be "good"?
If this is tied-in with versions; from what version was this implemented
(or a more direct question would be; what release will be the last one
that should be checked out using SVN?).
(It'll be a joy moving away from SVN even though it's mostly used just
to get the files which we then check into our upstream tracking branches
in our chromium/src Git repository :) )
0.
https://chromium.googlesource.com/chromium/src/+/35.0.1916.114/.DEPS.git
--
Odin Hørthe Omdal
odi...@opera.com
--
--
Chromium Developers mailing list: chromi...@chromium.org