libv8 5.2.361.43.1 → 5.3.332.38.0beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/CHANGELOG.md +4 -0
  4. data/README.md +1 -0
  5. data/Rakefile +4 -4
  6. data/ext/libv8/paths.rb +1 -1
  7. data/lib/libv8/version.rb +1 -1
  8. data/libv8.gemspec +1 -1
  9. data/patches/0001-Build-a-standalone-static-library.patch +4 -4
  10. data/patches/0002-Don-t-compile-unnecessary-stuff.patch +4 -4
  11. data/patches/0003-Use-the-fPIC-flag-for-the-static-library.patch +4 -4
  12. data/patches/0004-Reinterpret-thread-hash-for-FreeBSD-too.patch +8 -8
  13. data/spec/location_spec.rb +1 -1
  14. data/vendor/depot_tools/README.gclient.md +67 -0
  15. data/vendor/depot_tools/README.git-cl.md +112 -0
  16. data/vendor/depot_tools/README.md +50 -36
  17. data/vendor/depot_tools/bootstrap/win/README.md +5 -5
  18. data/vendor/depot_tools/bootstrap/win/git_bootstrap.py +203 -0
  19. data/vendor/depot_tools/bootstrap/win/git_version.txt +1 -0
  20. data/vendor/depot_tools/bootstrap/win/git_version_bleeding_edge.txt +1 -0
  21. data/vendor/depot_tools/bootstrap/win/win_tools.bat +1 -148
  22. data/vendor/depot_tools/cit.py +27 -21
  23. data/vendor/depot_tools/codereview.settings +1 -1
  24. data/vendor/depot_tools/cpplint.py +1 -1
  25. data/vendor/depot_tools/fix_encoding.py +1 -1
  26. data/vendor/depot_tools/gclient.py +4 -3
  27. data/vendor/depot_tools/gclient_scm.py +20 -9
  28. data/vendor/depot_tools/gclient_utils.py +84 -13
  29. data/vendor/depot_tools/gerrit_util.py +1 -1
  30. data/vendor/depot_tools/git_cl.py +374 -218
  31. data/vendor/depot_tools/git_cl_completion.sh +34 -0
  32. data/vendor/depot_tools/git_common.py +11 -7
  33. data/vendor/depot_tools/infra/config/OWNERS +1 -0
  34. data/vendor/depot_tools/infra/config/cq.cfg +3 -12
  35. data/vendor/depot_tools/infra/config/recipes.cfg +1 -1
  36. data/vendor/depot_tools/presubmit_canned_checks.py +4 -2
  37. data/vendor/depot_tools/presubmit_support.py +26 -40
  38. data/vendor/depot_tools/recipe_modules/bot_update/api.py +31 -11
  39. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/apply_gerrit_ref.json +26 -0
  40. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/basic.json +1 -1
  41. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/basic_output_manifest.json +1 -1
  42. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/basic_with_branch_heads.json +1 -1
  43. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/clobber.json +1 -1
  44. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/forced.json +1 -1
  45. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/gerrit_no_rebase_patch_ref.json +44 -0
  46. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/gerrit_no_reset.json +1 -1
  47. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/no_shallow.json +1 -1
  48. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/off.json +1 -1
  49. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/reset_root_solution_revision.json +1 -1
  50. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/trychange.json +1 -1
  51. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/trychange_oauth2.json +1 -1
  52. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob.json +1 -1
  53. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_fail.json +1 -1
  54. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_fail_patch.json +1 -1
  55. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_fail_patch_download.json +3 -3
  56. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_gerrit_angle.json +1 -1
  57. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_v8.json +1 -1
  58. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_v8_head_by_default.json +1 -1
  59. data/vendor/depot_tools/recipe_modules/bot_update/example.py +35 -18
  60. data/vendor/depot_tools/recipe_modules/bot_update/resources/apply_gerrit.py +33 -0
  61. data/vendor/depot_tools/recipe_modules/bot_update/resources/bot_update.py +45 -76
  62. data/vendor/depot_tools/recipe_modules/bot_update/test_api.py +13 -18
  63. data/vendor/depot_tools/recipe_modules/cipd/__init__.py +10 -0
  64. data/vendor/depot_tools/recipe_modules/cipd/api.py +244 -0
  65. data/vendor/depot_tools/recipe_modules/cipd/example.expected/basic.json +445 -0
  66. data/vendor/depot_tools/recipe_modules/cipd/example.expected/describe-failed.json +128 -0
  67. data/vendor/depot_tools/recipe_modules/cipd/example.expected/describe-many-instances.json +453 -0
  68. data/vendor/depot_tools/recipe_modules/cipd/example.expected/install-failed.json +31 -0
  69. data/vendor/depot_tools/recipe_modules/cipd/example.expected/mac64.json +445 -0
  70. data/vendor/depot_tools/recipe_modules/cipd/example.expected/win64.json +445 -0
  71. data/vendor/depot_tools/recipe_modules/cipd/example.py +115 -0
  72. data/vendor/depot_tools/recipe_modules/cipd/resources/bootstrap.py +218 -0
  73. data/vendor/depot_tools/recipe_modules/cipd/test_api.py +102 -0
  74. data/vendor/depot_tools/recipe_modules/gclient/api.py +34 -53
  75. data/vendor/depot_tools/recipe_modules/gclient/config.py +22 -128
  76. data/vendor/depot_tools/recipe_modules/gclient/example.expected/basic.json +44 -6
  77. data/vendor/depot_tools/recipe_modules/gclient/example.expected/revision.json +44 -6
  78. data/vendor/depot_tools/recipe_modules/gclient/example.expected/tryserver.json +44 -17
  79. data/vendor/depot_tools/recipe_modules/gclient/example.py +1 -1
  80. data/vendor/depot_tools/recipe_modules/gclient/test_api.py +4 -9
  81. data/vendor/depot_tools/recipe_modules/git/api.py +25 -7
  82. data/vendor/depot_tools/recipe_modules/git/example.expected/basic.json +3 -0
  83. data/vendor/depot_tools/recipe_modules/git/example.expected/basic_branch.json +3 -0
  84. data/vendor/depot_tools/recipe_modules/git/example.expected/basic_file_name.json +3 -0
  85. data/vendor/depot_tools/recipe_modules/git/example.expected/basic_hash.json +3 -0
  86. data/vendor/depot_tools/recipe_modules/git/example.expected/basic_ref.json +3 -0
  87. data/vendor/depot_tools/recipe_modules/git/example.expected/basic_submodule_update_force.json +3 -0
  88. data/vendor/depot_tools/recipe_modules/git/example.expected/can_fail_build.json +3 -0
  89. data/vendor/depot_tools/recipe_modules/git/example.expected/cannot_fail_build.json +3 -0
  90. data/vendor/depot_tools/recipe_modules/git/example.expected/cat-file_test.json +3 -0
  91. data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_delta.json +3 -0
  92. data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_failed.json +3 -0
  93. data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_with_bad_output.json +3 -0
  94. data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_with_bad_output_fails_build.json +3 -0
  95. data/vendor/depot_tools/recipe_modules/git/example.expected/curl_trace_file.json +2 -1
  96. data/vendor/depot_tools/recipe_modules/git/example.expected/git-cache-checkout.json +41 -3
  97. data/vendor/depot_tools/recipe_modules/git/example.expected/platform_win.json +7 -1
  98. data/vendor/depot_tools/recipe_modules/git/example.expected/rebase_failed.json +3 -0
  99. data/vendor/depot_tools/recipe_modules/git/example.expected/remote_not_origin.json +3 -0
  100. data/vendor/depot_tools/recipe_modules/git/example.expected/set_got_revision.json +3 -0
  101. data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_wrong_patch.json +4 -1
  102. data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_wrong_patch_new.json +4 -1
  103. data/vendor/depot_tools/recipes.py +8 -2
  104. data/vendor/depot_tools/roll-dep-svn.bat +10 -10
  105. data/vendor/depot_tools/roll_dep.py +0 -1
  106. data/vendor/depot_tools/third_party/upload.py +1 -25
  107. data/vendor/depot_tools/upload_to_google_storage.py +1 -1
  108. metadata +24 -32
  109. data/release/armhf-linux/Vagrantfile +0 -97
  110. data/release/armhf-linux/initrd.img +0 -0
  111. data/release/armhf-linux/vmlinuz +0 -0
  112. data/release/x86-linux/Vagrantfile +0 -85
  113. data/release/x86_64-freebsd-10/Vagrantfile +0 -88
  114. data/release/x86_64-linux/Vagrantfile +0 -85
  115. data/vendor/depot_tools/README.codereview +0 -99
  116. data/vendor/depot_tools/README.gclient +0 -82
  117. data/vendor/depot_tools/README.git-cl +0 -52
  118. data/vendor/depot_tools/chrome-update-create-task.bat +0 -52
  119. data/vendor/depot_tools/chrome-update.bat +0 -5
  120. data/vendor/depot_tools/chrome-update.py +0 -91
  121. data/vendor/depot_tools/create-chromium-git-src +0 -200
  122. data/vendor/depot_tools/drover +0 -25
  123. data/vendor/depot_tools/drover.bat +0 -9
  124. data/vendor/depot_tools/drover.py +0 -648
  125. data/vendor/depot_tools/gcl +0 -8
  126. data/vendor/depot_tools/gcl.bat +0 -6
  127. data/vendor/depot_tools/gcl.py +0 -1523
  128. data/vendor/depot_tools/git-try +0 -9
  129. data/vendor/depot_tools/git_try.py +0 -76
  130. data/vendor/depot_tools/luci_hacks/README.md +0 -35
  131. data/vendor/depot_tools/luci_hacks/__init__.py +0 -0
  132. data/vendor/depot_tools/luci_hacks/luci_recipe_run.isolate +0 -12
  133. data/vendor/depot_tools/luci_hacks/luci_recipe_run.py +0 -81
  134. data/vendor/depot_tools/luci_hacks/trigger_luci_job.py +0 -128
  135. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/svn_mode.json +0 -59
  136. data/vendor/depot_tools/trychange.py +0 -1265
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 43fd1487e4187e22711a0c704444c5a9ccf0234d
4
- data.tar.gz: 4613f878a90eb8def2bbd281877ef734a0cfecfb
3
+ metadata.gz: a5f9904721cb788c2cf3da6f3424e1b78d4e6925
4
+ data.tar.gz: 47b9b3818f8d63c41817886545634287ac5b3bca
5
5
  SHA512:
6
- metadata.gz: 70b10268110dac25734e44eee8f95fbb0a21d9b10de5af76ad35b1742e60287e252697409d9476baa37d6c81a59ee6775ad834fa154744b63bbcee04030a5c24
7
- data.tar.gz: 1342f8040961ac0ff62e9b8f90805e576a0f71f81a7e70b5b774d510db90f137b8b244fb25b3133c83938e90abf52862881fbd0776c799245beaadfacf5458b8
6
+ metadata.gz: 2b650b61307b044fa5fa195fa87ccbbcf41477ebfd92bdcfc91d42445e97c6dd54a5f02049502e3325b1776302796c4355aba319de453132105a321d306661b6
7
+ data.tar.gz: 106f6c78794dced5caab933e5df6371391da190118af1b8e31b1bddf39a133c91a9ed618104d49830ee7aa97eb4fae15c87243494bc2f1b0ee9c48057e3696cf
@@ -20,6 +20,7 @@ matrix:
20
20
  - rvm: 1.9.3
21
21
  allow_failures:
22
22
  - rvm: 1.9.3
23
+ - rvm: rbx
23
24
  fast_finish: true
24
25
  dist: trusty
25
26
  addons:
@@ -1,3 +1,7 @@
1
+ ### Unreleased
2
+
3
+ * Update upstream v8 version to 5.3.332.38
4
+
1
5
  ### 5.2.361.43.0, 5.2.361.43.1 - 2016-06-26:
2
6
 
3
7
  * Compare compiler versions part by part as integers instead of using string
data/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
  [![Gem Version](https://badge.fury.io/rb/libv8.svg)](http://badge.fury.io/rb/libv8)
3
3
  [![Build Status](https://travis-ci.org/cowboyd/libv8.svg?branch=master)](https://travis-ci.org/cowboyd/libv8)
4
4
  [![Join the chat at https://gitter.im/cowboyd/therubyracer](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/cowboyd/therubyracer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
5
+ [![Code Triagers Badge](https://www.codetriage.com/cowboyd/libv8/badges/users.svg)](https://www.codetriage.com/cowboyd/libv8)
5
6
 
6
7
  A gem for distributing the v8 runtime libraries and headers in both
7
8
  source and binary form.
data/Rakefile CHANGED
@@ -57,10 +57,10 @@ namespace :build do
57
57
  arch_dir = Pathname(__FILE__).dirname.join("release/#{arch}")
58
58
  Dir.chdir(arch_dir) do
59
59
  ENV['RUBYLIB'] = nil # https://github.com/mitchellh/vagrant/issues/6158
60
- # sh "vagrant up"
61
- # sh "vagrant ssh -c 'rm -rf ~/libv8'"
62
- # sh "vagrant ssh -c 'git clone /libv8/.git ~/libv8 --recursive'"
63
- # sh "vagrant ssh -c 'cd ~/libv8 && bundle install --path vendor/bundle'"
60
+ sh "vagrant up"
61
+ sh "vagrant ssh -c 'rm -rf ~/libv8'"
62
+ sh "vagrant ssh -c 'git clone /libv8/.git ~/libv8 --recursive'"
63
+ sh "vagrant ssh -c 'cd ~/libv8 && bundle install --path vendor/bundle'"
64
64
  sh "vagrant ssh -c 'cd ~/libv8 && MAKEFLAGS+=-j4 bundle exec rake binary'"
65
65
  sh "vagrant ssh -c 'cp ~/libv8/pkg/*.gem /vagrant'"
66
66
  sh "vagrant destroy"
@@ -11,7 +11,7 @@ module Libv8
11
11
  end
12
12
 
13
13
  def object_paths
14
- [:base, :libplatform, :libbase, :snapshot].map do |name|
14
+ [:base, :libplatform, :libsampler, :libbase, :snapshot].map do |name|
15
15
  Shellwords.escape libv8_object(name)
16
16
  end
17
17
  end
@@ -1,3 +1,3 @@
1
1
  module Libv8
2
- VERSION = "5.2.361.43.1"
2
+ VERSION = "5.3.332.38.0beta2"
3
3
  end
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
 
15
15
  s.rubyforge_project = "libv8"
16
16
 
17
- s.files = `git ls-files`.split("\n")
17
+ s.files = `git ls-files`.split("\n").reject {|f| f =~ /^release\//}
18
18
 
19
19
  submodules = `git submodule --quiet foreach 'echo $path'`.split("\n").map(&:chomp)
20
20
  submodules.each do |submodule|
@@ -1,4 +1,4 @@
1
- From 84470a0b6c696f42aa7f86ba5ffd22b17e0047c4 Mon Sep 17 00:00:00 2001
1
+ From 8e34b0f097ea5ea5bbde4ee8b7fd6521d40dd5e3 Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Mon, 25 Jul 2016 00:00:19 +0300
4
4
  Subject: [PATCH 1/4] Build a standalone static library
@@ -8,10 +8,10 @@ Subject: [PATCH 1/4] Build a standalone static library
8
8
  1 file changed, 3 insertions(+)
9
9
 
10
10
  diff --git a/gypfiles/standalone.gypi b/gypfiles/standalone.gypi
11
- index 630c45e..1a69c6f 100644
11
+ index c6c26fb..a59e12b 100644
12
12
  --- a/gypfiles/standalone.gypi
13
13
  +++ b/gypfiles/standalone.gypi
14
- @@ -488,6 +488,9 @@
14
+ @@ -505,6 +505,9 @@
15
15
  }], # fastbuild!=0
16
16
  ],
17
17
  'target_conditions': [
@@ -22,5 +22,5 @@ index 630c45e..1a69c6f 100644
22
22
  'defines!': [
23
23
  'DEBUG',
24
24
  --
25
- 2.9.0
25
+ 2.9.3
26
26
 
@@ -1,4 +1,4 @@
1
- From 930d596106fb3289f6aa37cdf8abaec3106c31b9 Mon Sep 17 00:00:00 2001
1
+ From 48d4b7ae6cbb8a2109555f57845fa5f6aa4fa30a Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Mon, 25 Jul 2016 00:04:07 +0300
4
4
  Subject: [PATCH 2/4] Don't compile unnecessary stuff
@@ -9,10 +9,10 @@ Subject: [PATCH 2/4] Don't compile unnecessary stuff
9
9
  2 files changed, 1 insertion(+), 38 deletions(-)
10
10
 
11
11
  diff --git a/Makefile b/Makefile
12
- index 0f8f93a..68778e9 100644
12
+ index ffb5192..8e60aab 100644
13
13
  --- a/Makefile
14
14
  +++ b/Makefile
15
- @@ -264,12 +264,7 @@ GYPFILES = third_party/icu/icu.gypi third_party/icu/icu.gyp \
15
+ @@ -265,12 +265,7 @@ GYPFILES = third_party/icu/icu.gypi third_party/icu/icu.gyp \
16
16
  gypfiles/shim_headers.gypi gypfiles/features.gypi \
17
17
  gypfiles/standalone.gypi \
18
18
  gypfiles/toolchain.gypi gypfiles/all.gyp gypfiles/mac/asan.gyp \
@@ -70,5 +70,5 @@ index ff1bea4..96820a0 100644
70
70
  }
71
71
  ]
72
72
  --
73
- 2.9.0
73
+ 2.9.3
74
74
 
@@ -1,4 +1,4 @@
1
- From 8873d0ee6e1304e256bf3181b287e189bc68a9c8 Mon Sep 17 00:00:00 2001
1
+ From 44da612b4aa078bc2090cad3bd42506f444dd900 Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Mon, 25 Jul 2016 00:05:47 +0300
4
4
  Subject: [PATCH 3/4] Use the -fPIC flag for the static library
@@ -8,10 +8,10 @@ Subject: [PATCH 3/4] Use the -fPIC flag for the static library
8
8
  1 file changed, 1 insertion(+), 1 deletion(-)
9
9
 
10
10
  diff --git a/gypfiles/standalone.gypi b/gypfiles/standalone.gypi
11
- index 1a69c6f..b19304f 100644
11
+ index a59e12b..4e64f2e 100644
12
12
  --- a/gypfiles/standalone.gypi
13
13
  +++ b/gypfiles/standalone.gypi
14
- @@ -744,7 +744,7 @@
14
+ @@ -772,7 +772,7 @@
15
15
  [ 'visibility=="hidden" and v8_enable_backtrace==0', {
16
16
  'cflags': [ '-fvisibility=hidden' ],
17
17
  }],
@@ -21,5 +21,5 @@ index 1a69c6f..b19304f 100644
21
21
  }],
22
22
  [ 'clang==0 and coverage==1', {
23
23
  --
24
- 2.9.0
24
+ 2.9.3
25
25
 
@@ -1,17 +1,17 @@
1
- From 0f376ac8f77980b86bfbfb55e3a1714201a0f78f Mon Sep 17 00:00:00 2001
1
+ From cf7ec827796ccaef75e77bd83771e7f31b645d2f Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Wed, 27 Jul 2016 06:20:13 +0300
4
4
  Subject: [PATCH 4/4] Reinterpret thread hash for FreeBSD, too
5
5
 
6
6
  ---
7
- src/profiler/sampler.cc | 2 +-
7
+ src/libsampler/v8-sampler.cc | 2 +-
8
8
  1 file changed, 1 insertion(+), 1 deletion(-)
9
9
 
10
- diff --git a/src/profiler/sampler.cc b/src/profiler/sampler.cc
11
- index ae47dca..4eb8780 100644
12
- --- a/src/profiler/sampler.cc
13
- +++ b/src/profiler/sampler.cc
14
- @@ -210,7 +210,7 @@ void* ThreadKey(pthread_t thread_id) {
10
+ diff --git a/src/libsampler/v8-sampler.cc b/src/libsampler/v8-sampler.cc
11
+ index edf6df1..9b2a718 100644
12
+ --- a/src/libsampler/v8-sampler.cc
13
+ +++ b/src/libsampler/v8-sampler.cc
14
+ @@ -194,7 +194,7 @@ void* ThreadKey(pthread_t thread_id) {
15
15
 
16
16
  // Returns hash value for hash map.
17
17
  uint32_t ThreadHash(pthread_t thread_id) {
@@ -21,5 +21,5 @@ index ae47dca..4eb8780 100644
21
21
  #else
22
22
  return static_cast<uint32_t>(thread_id);
23
23
  --
24
- 2.9.0
24
+ 2.9.3
25
25
 
@@ -64,7 +64,7 @@ describe "libv8 locations" do
64
64
  end
65
65
 
66
66
  it "prepends the locations of any libv8 objects on the the ldflags" do
67
- expect(@context.ldflags).to eql "/foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a /foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_libplatform.a /foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_libbase.a /foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_snapshot.a -lobjc -lpthread"
67
+ expect(@context.ldflags).to eql "/foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a /foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_libplatform.a /foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_libsampler.a /foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_libbase.a /foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_snapshot.a -lobjc -lpthread"
68
68
  end
69
69
  end
70
70
  end
@@ -0,0 +1,67 @@
1
+ # gclient
2
+
3
+ gclient is a tool for managing a modular checkout of source code from multiple
4
+ source code repositories. It wraps underlying source code management commands
5
+ to provide support for distributing tree updates, status commands, and diffs
6
+ across multiple checked-out working directories.
7
+
8
+ The gclient script is controlled by a `.gclient` file at the top of a directory
9
+ tree which will contain source code from multiple locations. A `.gclient` file
10
+ is a Python script that defines a list of `solutions` with the following format:
11
+
12
+ solutions = [
13
+ { "name" : "src",
14
+ "url" : "svn://svnserver/component/trunk/src",
15
+ "custom_deps" : {
16
+ # To use the trunk of a component instead of what's in DEPS:
17
+ #"component": "https://svnserver/component/trunk/",
18
+ # To exclude a component from your working copy:
19
+ #"data/really_large_component": None,
20
+ }
21
+ },
22
+ ]
23
+
24
+ A `solution` is a collection of component pieces of software that will be
25
+ checked out in a specific directory layout for building together.
26
+
27
+ Each entry in the `solutions` list is defined by a Python dictionary that
28
+ contains the following items:
29
+
30
+ - `name`: The name of the directory in which the solution will be checked out.
31
+ - `url`: The URL from which this solution will be checked out. gclient expects
32
+ that the checked-out solution will contain a file named `DEPS` that in turn
33
+ defines the specific pieces that must be checked out to create the working
34
+ directory layout for building and developing the solution's software.
35
+ - `deps_file`: A string containing just the filename (not a path) of the file in
36
+ the solution dir to use as the list of dependencies. This tag is optional, and
37
+ defaults to `DEPS`.
38
+ - `custom_deps`: A dictionary containing optional custom overrides for entries
39
+ in the solution's `DEPS` file. This can be used to have the local working
40
+ directory *not* check out and update specific components, or to sync the local
41
+ working-directory copy of a given component to a different specific revision,
42
+ or a branch, or the head of a tree. It can also be used to append new entries
43
+ that do not exist in the `DEPS` file.
44
+
45
+ Within each checked-out solution, gclient expects to find a file typically named
46
+ `DEPS` (it actually uses the value of the `deps_file` key above) which defines
47
+ the different component pieces of software that must be checked out for the
48
+ solution. The `DEPS` file is a Python script that defines a dictionary named
49
+ `deps`:
50
+
51
+ deps = {
52
+ "src/outside": "https://outside-server/one/repo.git@12345677890123456778901234567789012345677890",
53
+ "src/component": "https://dont-use-github.com/its/unreliable.git@0000000000000000000000000000000000000000",
54
+ "src/relative": "/another/repo.git@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
55
+ }
56
+
57
+ Each item in the `deps` dictionary consists of a key-value pair. The key is the
58
+ directory into which the component will be checked out, relative to the
59
+ directory containing the `.gclient` file. The value is the URL from which that
60
+ directory will be checked out. If there is no address scheme (that is, no
61
+ `http:` or `svn:` prefix), then the value must begin with a slash and is treated
62
+ relative to the root of the solution's repository.
63
+
64
+ The URL typically contains a specific revision or change number (as appropriate
65
+ for the underlying SCM system) to `freeze` the external software at a specific,
66
+ known state. Alternatively, if there is no revision or change number, the URL
67
+ will track the latest changes on the specific trunk or branch.
@@ -0,0 +1,112 @@
1
+ # git-cl
2
+
3
+ The git-cl README describes the git-cl command set. This document describes how
4
+ code review and git work together in general, intended for people familiar with
5
+ git but unfamiliar with the code review process supported by Rietveld and
6
+ Gerrit.
7
+
8
+
9
+ ## Reitveld concepts and terms
10
+
11
+ A Rietveld review is for discussion of a single change or patch. You upload a
12
+ proposed change, the reviewer comments on your change, and then you can upload a
13
+ revised version of your change. Rietveld stores the history of uploaded patches
14
+ as well as the comments, and can compute diffs in between these patches. The
15
+ history of a patch is very much like a small branch in git, but since Rietveld
16
+ is VCS-agnostic the concepts don't map perfectly. The identifier for a single
17
+ review+patches+comments in Rietveld is called an `issue`.
18
+
19
+ Rietveld provides a basic uploader that understands git. This program is used by
20
+ git-cl, and is included in the git-cl repo as upload.py.
21
+
22
+
23
+ ## Basic interaction with git
24
+
25
+ The fundamental problem you encounter when you try to mix git and code review is
26
+ that with git it's nice to commit code locally, while during a code review
27
+ you're often requested to change something about your code. There are a few
28
+ different ways you can handle this workflow with git:
29
+
30
+ 1. Rewriting a single commit. Say the origin commit is O, and you commit your
31
+ initial work in a commit A, making your history like O--A. After review
32
+ comments, you commit --amend, effectively erasing A and making a new commit
33
+ A', so history is now O--A'. (Equivalently, you can use git reset --soft or
34
+ git rebase -i.)
35
+ 2. Writing follow-up commits. Initial work is again in A, and after review
36
+ comments, you write a new commit B so your history looks like O--A--B. When
37
+ you upload the revised patch, you upload the diff of O..B, not A..B; you
38
+ always upload the full diff of what you're proposing to change.
39
+
40
+ The Rietveld patch uploader just takes arguments to `git diff`, so either of the
41
+ above workflows work fine. If all you want to do is upload a patch, you can use
42
+ the upload.py provided by Rietveld with arguments like this:
43
+
44
+ upload.py --server server.com <args to "git diff">
45
+
46
+ The first time you upload, it creates a new issue; for follow-ups on the same
47
+ issue, you need to provide the issue number:
48
+
49
+ upload.py --server server.com --issue 1234 <args to "git diff">
50
+
51
+
52
+ ## git-cl to the rescue
53
+
54
+ git-cl simplifies the above in the following ways:
55
+
56
+ 1. `git cl config` puts a persistent --server setting in your .git/config.
57
+ 2. The first time you upload an issue, the issue number is associated with the
58
+ current *branch*. If you upload again, it will upload on the same issue.
59
+ (Note that this association is tied to a branch, not a commit, which means
60
+ you need a separate branch per review.)
61
+ 3. If your branch is _tracking_ (in the `git checkout --track` sense) another
62
+ one (like origin/master), calls to `git cl upload` will diff against that
63
+ branch by default. (You can still pass arguments to `git diff` on the
64
+ command line, if necessary.)
65
+
66
+ In the common case, this means that calling simply `git cl upload` will always
67
+ upload the correct diff to the correct place.
68
+
69
+
70
+ ## Patch series
71
+
72
+ The above is all you need to know for working on a single patch.
73
+
74
+ Things get much more complicated when you have a series of commits that you want
75
+ to get reviewed. Say your history looks like O--A--B--C. If you want to upload
76
+ that as a single review, everything works just as above.
77
+
78
+ But what if you upload each of A, B, and C as separate reviews? What if you
79
+ then need to change A?
80
+
81
+ 1. One option is rewriting history: write a new commit A', then use git rebase
82
+ -i to insert that diff in as O--A--A'--B--C as well as squash it. This is
83
+ sometimes not possible if B and C have touched some lines affected by A'.
84
+ 2. Another option, and the one espoused by software like topgit, is for you to
85
+ have separate branches for A, B, and C, and after writing A' you merge it
86
+ into each of those branches. (topgit automates this merging process.) This
87
+ is also what is recommended by git-cl, which likes having different branch
88
+ identifiers to hang the issue number off of. Your history ends up looking
89
+ like:
90
+
91
+ O---A---B---C
92
+ \ \ \
93
+ A'--B'--C'
94
+
95
+ Which is ugly, but it accurately tracks the real history of your work, can be
96
+ thrown away at the end by committing A+A' as a single `squash` commit.
97
+
98
+ In practice, this comes up pretty rarely. Suggestions for better workflows are
99
+ welcome.
100
+
101
+ ## Bash auto complition
102
+
103
+ 1. Ensure that your base git commands are autocompleted
104
+ [doc](https://git-scm.com/book/en/v1/Git-Basics-Tips-and-Tricks).
105
+ 2. Add this to your .bashrc:
106
+
107
+ # The next line enables bash completion for git cl.
108
+ if [ -f "$HOME/bin/depot_tools/git_cl_completion.sh" ]; then
109
+ . "$HOME/bin/depot_tools/git_cl_completion.sh"
110
+ fi
111
+
112
+ 3. Profit.
@@ -1,55 +1,69 @@
1
- This package contains tools for working with Chromium development:
1
+ # depot_tools
2
2
 
3
- chrome-update-create-task.bat
4
- Creates a scheduled task to do an automatic local chromium build every day.
3
+ This package contains tools for working with Chromium development. It requires
4
+ python 2.7.
5
5
 
6
- cpplint.py
7
- A copy of our linting tool which enforces Google style. Fetched from
8
- http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py
9
6
 
10
- gcl
11
- A tool for uploading and managing code reviews on the Chromium
12
- project, using the Rietveld code review tool. More info at:
13
- http://code.google.com/p/rietveld/
7
+ ## Tools
14
8
 
15
- gclient
16
- A script for managing a workspace with modular dependencies that
17
- are each checked out independently from different repositories.
18
- More info at:
19
- http://code.google.com/p/gclient/
9
+ The most important tools are:
20
10
 
21
- It updates itself automatically when running `gclient` tool. To disable
22
- auto update, set the environment variable DEPOT_TOOLS_UPDATE=0
11
+ - `fetch`: A `gclient` wrapper to checkout a project. Use `fetch --help` for
12
+ more details.
13
+ - `gclient`: A meta-checkout tool. Think
14
+ [repo](https://source.android.com/source/using-repo.html) or [git
15
+ submodules](https://git-scm.com/docs/git-submodule), except that it support
16
+ OS-specific rules, e.g. do not checkout Windows only dependencies when
17
+ checking out for Android. Use `gclient help` for more details and
18
+ [README.gclient.md](README.gclient.md).
19
+ - `git cl`: A code review tool to interact with Rietveld or Gerrit. Use `git cl
20
+ help` for more details and [README.git-cl.md](README.git-cl.md).
21
+ - `roll-dep`: A gclient dependency management tool to submit a _dep roll_,
22
+ updating a dependency to a newer revision.
23
23
 
24
- To update package manually, run .\update_depot_tools.bat on Windows,
25
- or ./update_depot_tools on Linux or Mac.
24
+ There are a lot of git utilities included.
26
25
 
27
- Note: on Windows if svn, git and python are not accessible, they will be
28
- downloaded too.
29
26
 
27
+ ## Updating
30
28
 
31
- ## Contributing
29
+ `depot_tools` updates itself automatically when running `gclient` tool. To
30
+ disable auto update, set the environment variable `DEPOT_TOOLS_UPDATE=0`.
31
+
32
+ To update package manually, run `update_depot_tools.bat` on Windows,
33
+ or `./update_depot_tools` on Linux or Mac.
34
+
35
+ On Windows only, running `gclient` will install `svn` (not for long), `git`,
36
+ `python`.
32
37
 
33
- The "gclient" wrapper knows how to keep this repository updated to
34
- the latest versions of these tools as found at:
35
38
 
36
- https://chromium.googlesource.com/chromium/tools/depot_tools.git
39
+ ## Contributing
37
40
 
38
41
  To contribute change for review:
39
42
 
40
43
  git new-branch <somename>
41
- git add <yourchanges>
42
- git commit
44
+ # Hack
45
+ git add .
46
+ git commit -a -m "Fixes goat teleporting"
43
47
  # find reviewers
44
48
  git cl owners
45
- git log <yourfiles>
46
- # upload
47
- git cl upload -r reviewer1@chromium.org,reviewer2 --send-mail
48
- # open https://codereview.chromium.org/ and send mail
49
-
50
- # if change is approved, flag it to be commited
51
- git cl set_commit
52
- # if change needs more work
49
+ git log -- <yourfiles>
50
+
51
+ # Request a review.
52
+ git cl upload -r reviewer1@chromium.org,reviewer2@chromium.org --send-mail
53
+
54
+ # Edit change description if needed.
55
+ git cl desc
56
+
57
+ # If change is approved, flag it to be commited.
58
+ git cl set-commit
59
+
60
+ # If change needs more work.
53
61
  git rebase-update
54
62
  ...
55
- git cl upload
63
+ git cl upload -t "Fixes goat teleporter destination to be Australia"
64
+
65
+
66
+ ### cpplint.py
67
+
68
+ To update cpplint.py, please submit the change upstream first at
69
+ https://github.com/google/styleguide/tree/gh-pages/cpplint then copy it down.