forked from chef-boneyard/chef-dk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
version_policy.rb
141 lines (132 loc) · 5.4 KB
/
version_policy.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#
# Copyright:: Copyright (c) 2016 Chef Software Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Explicit omnibus overrides.
OMNIBUS_OVERRIDES = {
# Until 1.13.0 is released
:bundler => "1.12.5",
# Lower level library pins
## according to comment in omnibus-sw, latest versions don't work on solaris
# https://github.com/chef/omnibus-software/blob/aefb7e79d29ca746c3f843673ef5e317fa3cba54/config/software/libtool.rb#L23
"libffi" => "3.2.1",
"libiconv" => "1.14",
"liblzma" => "5.2.2",
## according to comment in omnibus-sw, the very latest versions don't work on solaris
# https://github.com/chef/omnibus-software/blob/aefb7e79d29ca746c3f843673ef5e317fa3cba54/config/software/libtool.rb#L23
"libtool" => "2.4.2",
"libxml2" => "2.9.4",
"libxslt" => "1.1.29",
"libyaml" => "0.1.6",
"makedepend" => "1.0.5",
"ncurses" => "5.9",
"pkg-config-lite" => "0.28-1",
"ruby" => "2.3.1",
# Leave dev-kit pinned to 4.5 on 32-bit, because 4.7 is 20MB larger and we don't want
# to unnecessarily make the client any fatter. (Since it's different between
# 32 and 64, we have to do it in the project file still.)
# "ruby-windows-devkit" => "4.5.2-20111229-1559",
"ruby-windows-devkit-bash" => "3.1.23-4-msys-1.0.18",
"util-macros" => "1.19.0",
"xproto" => "7.0.28",
"zlib" => "1.2.8",
# The windows dependency (libzmq4x-windows) only has 1 version so far in
# software def so we don't need to override that
"libzmq" => "4.0.5",
## These can float as they are frequently updated in a way that works for us
#override "cacerts" =>"???",
#override "openssl" =>"???",
}
#
# rake dependencies:update_omnibus_overrides (tasks/dependencies.rb) reads this
# and modifies omnibus_overrides.rb
#
# The left side is the software definition name, and the right side is the
# name of the rubygem (gem list -re <rubygem name> gets us the latest version).
#
OMNIBUS_RUBYGEMS_AT_LATEST_VERSION = {
#rubygems: "rubygems-update", # pinned to 2.6.4 until https://github.com/rubygems/rubygems/pull/1683 is released
# bundler: "bundler", # pinned to 1.12.5 until we figure out how we're failing on 1.13.0
}
#
# rake dependencies:check (tasks/dependencies.rb) uses this as a list of gems
# that are allowed to be outdated according to `bundle updated`
#
# Once you decide that the list of outdated gems is OK, you can just
# add gems to the output of bundle outdated here and we'll parse it to get the
# list of outdated gems.
#
ACCEPTABLE_OUTDATED_GEMS = [
"activesupport", # anchored by outdated google-api-client
"celluloid", # ridley requires 0.16.x
"celluloid-io", # ridley requires 0.16.x
"cucumber-core", # Until cucumber 2.0
"fog-cloudatcost", # fog restricts this for probably no good reason
"fog-dynect", # fog restricts this for probably no good reason
"fog-google", # fog-google 0.2+ requires Ruby 2.0+, fog 2.0.0 will include it
"google-api-client", # chef-provisioning-fog restricts to < 0.9 for presently unknown reasons
"json", # inspec pins this because Ruby 2.0, no eta on fix
"rack", # chef-zero pins this because Ruby 2.0, no eta on fix
"rbvmomi", # fog-vsphere restricts this to a patch version, not sure why
"retriable", # anchored by outdated google-api-client
"rubocop", # cookstyle pins to 0.39.0 in 0.0.1
"slop", # expected to disappear with pry 0.11
"timers", # anchored by outdated celluloid
# We have a task called update_stable_channel_gems which scans and pins to the
# latest released chef/chef-config/opscode-pushy-client but it pulls from the
# chef repo instead of from rubygems. Bundler currently considers any git
# source at the same version (or lower) than one available from rubygems as
# outdated and hence fails the outdated gem test, confusing Julia bot.
# Therefore.. turn checks on both of them off. If and when the rake task for
# update_stable_channel_gems changes, this exclusion can be revisited.
"chef",
"chef-config",
"opscode-pushy-client",
"mixlib-cli"
]
#
# Some gems are part of our bundle (must be installed) but not important
# enough to lock. We allow `bundle install` in test-kitchen, berks, etc.
# to use their own versions of these.
#
# This mainly tells you which gems `chef verify` allows you to install and
# run.
#
GEMS_ALLOWED_TO_FLOAT = [
"rubocop", # different projects disagree in their dev dependencies
"unicode-display_width", # dep of rubocop
"powerpack", # dep of rubocop
"cookstyle", # has a runtime dep on rubocop
]
#
# The list of groups we install without: this drives both the `bundle install`
# we do in chef-dk, and the `bundle check` we do to ensure installed gems dont
# have extra deps hiding in their Gemfiles.
#
INSTALL_WITHOUT_GROUPS = %w{
changelog
compat_testing
deploy
development
docgen
guard
integration
maintenance
test
tools
travis
style
simulator
}