summaryrefslogtreecommitdiff
path: root/Gemfile.windows
diff options
context:
space:
mode:
authorJohn Keiser <john@johnkeiser.com>2016-04-11 11:53:29 -0700
committerJohn Keiser <john@johnkeiser.com>2016-04-18 14:21:02 -0700
commit257500a90a17e9604c798f2b73afd0ada5d42903 (patch)
treee249f92f93f6242d0d116e8ad9ccffa73a6da334 /Gemfile.windows
parente421b0438177dada513acf7f21f10ba2b3a8f4be (diff)
downloadchef-257500a90a17e9604c798f2b73afd0ada5d42903.tar.gz
Pin everything down with Gemfile.lock, add rake dependencies to update
Diffstat (limited to 'Gemfile.windows')
-rw-r--r--Gemfile.windows34
1 files changed, 34 insertions, 0 deletions
diff --git a/Gemfile.windows b/Gemfile.windows
new file mode 100644
index 0000000000..2387c6af4b
--- /dev/null
+++ b/Gemfile.windows
@@ -0,0 +1,34 @@
+#
+# We ensure everything in windows is pinned to the same version as "generic"
+# by reading the generic Gemfile.lock and pinning to that version in the Gemfile.
+#
+# This could *almost* be accomplished by simply copying the lockfile and doing a
+# `bundle install` to add any windows dependencies, but bundler can still update
+# existing versions in a couple of cases:
+#
+# 1. When the source has changed since the main lockfile was built.
+# 2. When Windows-specific dependencies constrain our solution.
+#
+# We do NOT allow windows gem versions to differ from non-windows, so that our
+# packages are consistent across operating systems.
+#
+# At the end of this process, this `Gemfile`:
+#
+# ```
+# gem 'chef', github: 'chef/chef'
+# gem 'berkshelf'
+# ```
+#
+# Is transformed to something like this:
+#
+# ```
+# gem 'chef', github: 'chef/chef', ref: '23049723984237948023'
+# gem 'berkshelf', '= 2.0.5'
+# gem 'ohai', '= 12.9.30' # implicit dependency of chef
+# ```
+#
+
+require_relative "tasks/gemfile_util"
+extend GemfileUtil
+generic_gemfile = File.expand_path("../Gemfile", __FILE__)
+include_locked_gemfile(generic_gemfile)