r10k 3.15.4 → 4.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +17 -0
  3. data/.github/workflows/docker.yml +4 -4
  4. data/.github/workflows/release.yml +2 -2
  5. data/.github/workflows/rspec_tests.yml +7 -11
  6. data/.github/workflows/stale.yml +1 -1
  7. data/CHANGELOG.mkd +19 -0
  8. data/Gemfile +2 -2
  9. data/README.mkd +3 -3
  10. data/doc/dynamic-environments/configuration.mkd +13 -1
  11. data/doc/puppetfile.mkd +9 -3
  12. data/integration/files/pre-suite/git_config.pp.erb +1 -1
  13. data/integration/pre-suite/10_git_config.rb +0 -3
  14. data/integration/tests/Puppetfile/HTTP_PROXY_affects_git_source.rb +5 -4
  15. data/integration/tests/basic_functionality/proxy_specified_in_configuration.rb +1 -1
  16. data/integration/tests/basic_functionality/proxy_with_puppetfile.rb +1 -1
  17. data/integration/tests/command_line/deploy_env_without_mod_update.rb +0 -3
  18. data/integration/tests/command_line/negative/neg_deploy_env_with_module_update.rb +0 -3
  19. data/integration/tests/git_source/HTTP_proxy_and_git_source.rb +5 -10
  20. data/integration/tests/git_source/git_source_git.rb +0 -3
  21. data/integration/tests/git_source/git_source_repeated_remote.rb +0 -3
  22. data/integration/tests/git_source/negative/neg_git_unauthorized_ssh.rb +1 -1
  23. data/integration/tests/purging/content_not_purged_at_root.rb +0 -3
  24. data/integration/tests/purging/default_purging.rb +0 -3
  25. data/integration/tests/purging/{does_not_purge_files_on_white_list.rb → does_not_purge_files_on_allowlist.rb} +2 -5
  26. data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module.rb +0 -3
  27. data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module_static.rb +0 -3
  28. data/integration/tests/user_scenario/basic_workflow/multi_source_custom_forge_git_module.rb +0 -3
  29. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_forge_module.rb +0 -3
  30. data/integration/tests/user_scenario/basic_workflow/negative/neg_duplicate_module_names.rb +0 -3
  31. data/integration/tests/user_scenario/basic_workflow/negative/neg_inaccessible_forge.rb +3 -2
  32. data/integration/tests/user_scenario/basic_workflow/negative/neg_specify_deleted_forge_module.rb +1 -5
  33. data/integration/tests/user_scenario/basic_workflow/single_env_custom_forge_git_module.rb +0 -3
  34. data/integration/tests/user_scenario/basic_workflow/single_env_custom_forge_module.rb +0 -3
  35. data/integration/tests/user_scenario/basic_workflow/single_env_module_already_installed.rb +0 -3
  36. data/integration/tests/user_scenario/basic_workflow/single_env_purge_unmanaged_modules.rb +0 -3
  37. data/integration/tests/user_scenario/basic_workflow/single_env_switch_forge_git_module.rb +0 -3
  38. data/integration/tests/user_scenario/basic_workflow/single_env_upgrade_forge_mod_revert_change.rb +0 -3
  39. data/integration/tests/user_scenario/complex_workflow/multi_env_add_change_remove.rb +0 -3
  40. data/lib/r10k/action/deploy/environment.rb +2 -19
  41. data/lib/r10k/action/deploy/module.rb +1 -0
  42. data/lib/r10k/action/puppetfile/check.rb +7 -0
  43. data/lib/r10k/action/puppetfile/install.rb +1 -0
  44. data/lib/r10k/cli/deploy.rb +15 -1
  45. data/lib/r10k/content_synchronizer.rb +7 -2
  46. data/lib/r10k/environment.rb +0 -1
  47. data/lib/r10k/git/rugged/bare_repository.rb +4 -3
  48. data/lib/r10k/git/rugged/working_repository.rb +7 -5
  49. data/lib/r10k/git/shellgit/working_repository.rb +1 -1
  50. data/lib/r10k/git/stateful_repository.rb +2 -2
  51. data/lib/r10k/module/base.rb +3 -3
  52. data/lib/r10k/module/git.rb +13 -4
  53. data/lib/r10k/module_loader/puppetfile.rb +0 -7
  54. data/lib/r10k/puppetfile.rb +1 -1
  55. data/lib/r10k/settings.rb +6 -7
  56. data/lib/r10k/version.rb +1 -1
  57. data/locales/r10k.pot +10 -6
  58. data/r10k.gemspec +4 -6
  59. metadata +18 -76
  60. data/docker/.gitignore +0 -1
  61. data/docker/.rspec +0 -4
  62. data/docker/Gemfile +0 -11
  63. data/docker/Makefile +0 -99
  64. data/docker/README.md +0 -28
  65. data/docker/docker-compose.yml +0 -18
  66. data/docker/r10k/Dockerfile +0 -68
  67. data/docker/r10k/adduser.sh +0 -13
  68. data/docker/r10k/docker-entrypoint.d/10-analytics.sh +0 -30
  69. data/docker/r10k/docker-entrypoint.sh +0 -10
  70. data/docker/r10k/release.Dockerfile +0 -55
  71. data/docker/spec/dockerfile_spec.rb +0 -37
  72. data/docker/spec/fixtures/Puppetfile +0 -2
  73. data/integration/tests/basic_functionality/install_pe_only_module_with_puppetfile.rb +0 -83
  74. data/integration/tests/basic_functionality/proxy_with_pe_only_module.rb +0 -128
  75. data/integration/tests/purging/invalid_whitelist_types.rb +0 -63
  76. data/integration/tests/user_scenario/basic_workflow/negative/neg_module_specified_at_deleted_release.rb +0 -49
  77. data/integration/tests/user_scenario/basic_workflow/single_env_module_last_release_deleted.rb +0 -68
  78. data/lib/r10k/environment/bare.rb +0 -13
@@ -65,9 +65,6 @@ teardown do
65
65
  end
66
66
 
67
67
  #Setup
68
- step 'Stub Forge on Master'
69
- stub_forge_on(master)
70
-
71
68
  initial_env_names.each do |env|
72
69
  if env == 'production'
73
70
  step "Checkout \"#{env}\" Branch"
@@ -45,6 +45,7 @@ module R10K
45
45
  incremental: @incremental
46
46
  },
47
47
  modules: {
48
+ default_ref: settings.dig(:git, :default_ref),
48
49
  exclude_spec: settings.dig(:deploy, :exclude_spec),
49
50
  requested_modules: [],
50
51
  deploy_modules: @modules,
@@ -53,8 +54,7 @@ module R10K
53
54
  },
54
55
  purging: {
55
56
  purge_levels: settings.dig(:deploy, :purge_levels) || [],
56
- purge_allowlist: read_purge_allowlist(settings.dig(:deploy, :purge_whitelist) || [],
57
- settings.dig(:deploy, :purge_allowlist) || [])
57
+ purge_allowlist: settings.dig(:deploy, :purge_allowlist) || []
58
58
  },
59
59
  forge: {
60
60
  allow_puppetfile_override: settings.dig(:forge, :allow_puppetfile_override) || false
@@ -83,23 +83,6 @@ module R10K
83
83
 
84
84
  private
85
85
 
86
- def read_purge_allowlist (whitelist, allowlist)
87
- whitelist_has_content = !whitelist.empty?
88
- allowlist_has_content = !allowlist.empty?
89
- case
90
- when whitelist_has_content == false && allowlist_has_content == false
91
- []
92
- when whitelist_has_content && allowlist_has_content
93
- raise R10K::Error.new "Values found for both purge_whitelist and purge_allowlist. Setting " <<
94
- "purge_whitelist is deprecated, please only use purge_allowlist."
95
- when allowlist_has_content
96
- allowlist
97
- else
98
- logger.warn "Setting purge_whitelist is deprecated; please use purge_allowlist instead."
99
- whitelist
100
- end
101
- end
102
-
103
86
  def visit_deployment(deployment)
104
87
  # Ensure that everything can be preloaded. If we cannot preload all
105
88
  # sources then we can't fully enumerate all environments which
@@ -39,6 +39,7 @@ module R10K
39
39
  generate_types: @generate_types
40
40
  },
41
41
  modules: {
42
+ default_ref: settings.dig(:git, :default_ref),
42
43
  exclude_spec: settings.dig(:deploy, :exclude_spec),
43
44
  pool_size: @settings[:pool_size] || 4,
44
45
  requested_modules: @argv.map.to_a,
@@ -9,12 +9,19 @@ module R10K
9
9
 
10
10
  def call
11
11
  options = { basedir: @root }
12
+ options[:overrides] = {}
13
+ options[:overrides][:modules] = { default_ref: @settings.dig(:git, :default_ref) }
12
14
  options[:moduledir] = @moduledir if @moduledir
13
15
  options[:puppetfile] = @puppetfile if @puppetfile
14
16
 
15
17
  loader = R10K::ModuleLoader::Puppetfile.new(**options)
16
18
  begin
17
19
  loader.load!
20
+ loader.modules.each do |mod|
21
+ if mod.instance_of?(R10K::Module::Git)
22
+ mod.validate_ref_defined
23
+ end
24
+ end
18
25
  $stderr.puts _("Syntax OK")
19
26
  true
20
27
  rescue => e
@@ -12,6 +12,7 @@ module R10K
12
12
  def call
13
13
  begin
14
14
  options = { basedir: @root, overrides: { force: @force || false } }
15
+ options[:overrides][:modules] = { default_ref: @settings.dig(:git, :default_ref) }
15
16
  options[:moduledir] = @moduledir if @moduledir
16
17
  options[:puppetfile] = @puppetfile if @puppetfile
17
18
  options[:module_exclude_regex] = @module_exclude_regex if @module_exclude_regex
@@ -10,6 +10,19 @@ require 'cri'
10
10
 
11
11
  module R10K::CLI
12
12
  module Deploy
13
+
14
+ class TransformExcludeSpec
15
+ def call(input)
16
+ # To be backward compatible with the 3.x flag version of this setting,
17
+ # r10k allows this flag to have an optional argument. When no argument
18
+ # is supplied, cri defaults to setting the class to true, so we check
19
+ # for TrueClass here as well as "true".
20
+ return true if input == true || input == 'true'
21
+ return false if input == 'false'
22
+ raise ArgumentError
23
+ end
24
+ end
25
+
13
26
  def self.command
14
27
  @cmd ||= Cri::Command.define do
15
28
  name 'deploy'
@@ -24,7 +37,8 @@ module R10K::CLI
24
37
  option nil, :cachedir, 'Specify a cachedir, overriding the value in config', argument: :required
25
38
  flag nil, :'no-force', 'Prevent the overwriting of local module modifications'
26
39
  flag nil, :'generate-types', 'Run `puppet generate types` after updating an environment'
27
- flag nil, :'exclude-spec', 'Exclude the module\'s spec dir from deployment'
40
+ option nil, :'exclude-spec', 'Exclude the module\'s spec dir for deployment', argument: :optional,
41
+ transform: TransformExcludeSpec.new
28
42
  option nil, :'puppet-path', 'Path to puppet executable', argument: :required do |value, cmd|
29
43
  unless File.executable? value
30
44
  $stderr.puts "The specified puppet executable #{value} is not executable."
@@ -79,8 +79,13 @@ module R10K
79
79
  begin
80
80
  while mods = mods_queue.pop(true) do
81
81
  mods.each do |mod|
82
- updated = mod.sync
83
- updated_modules << mod.name if updated
82
+ begin
83
+ updated = mod.sync
84
+ updated_modules << mod.name if updated
85
+ rescue Exception => e
86
+ logger.error _("Module %{mod_name} failed to synchronize due to %{message}") % {mod_name: mod.name, message: e.message}
87
+ raise e
88
+ end
84
89
  end
85
90
  end
86
91
  rescue ThreadError => e
@@ -31,7 +31,6 @@ module R10K
31
31
  require 'r10k/environment/base'
32
32
  require 'r10k/environment/with_modules'
33
33
  require 'r10k/environment/plain'
34
- require 'r10k/environment/bare'
35
34
  require 'r10k/environment/git'
36
35
  require 'r10k/environment/svn'
37
36
  require 'r10k/environment/tarball'
@@ -56,11 +56,12 @@ class R10K::Git::Rugged::BareRepository < R10K::Git::Rugged::BaseRepository
56
56
  logger.warn { _("Rugged versions prior to 0.24.0 do not support pruning stale branches during fetch, please upgrade your \'rugged\' gem. (Current version is: %{version})") % {version: Rugged::Version} }
57
57
  end
58
58
 
59
- options = {:credentials => credentials, :prune => true}
60
- refspecs = ['+refs/*:refs/*']
61
-
62
59
  remote = remotes[remote_name]
63
60
  proxy = R10K::Git.get_proxy_for_remote(remote)
61
+
62
+ options = {:credentials => credentials, :prune => true, :proxy_url => proxy}
63
+ refspecs = ['+refs/*:refs/*']
64
+
64
65
  results = nil
65
66
 
66
67
  R10K::Git.with_proxy(proxy) do
@@ -27,6 +27,7 @@ class R10K::Git::Rugged::WorkingRepository < R10K::Git::Rugged::BaseRepository
27
27
  def clone(remote, opts = {})
28
28
  logger.debug1 { _("Cloning '%{remote}' into %{path}") % {remote: remote, path: @path } }
29
29
 
30
+ proxy = R10K::Git.get_proxy_for_remote(remote)
30
31
  # libgit2/rugged doesn't support cloning a repository and providing an
31
32
  # alternate object database, making the handling of :alternates a noop.
32
33
  # Unfortunately this means that this method can't really use alternates
@@ -34,10 +35,9 @@ class R10K::Git::Rugged::WorkingRepository < R10K::Git::Rugged::BaseRepository
34
35
  # repository. However alternate databases can be handled when an existing
35
36
  # repository is loaded, so loading a cloned repo will correctly use
36
37
  # alternate object database.
37
- options = {:credentials => credentials}
38
+ options = {:credentials => credentials, :proxy_url => proxy}
38
39
  options.merge!(:alternates => [File.join(opts[:reference], 'objects')]) if opts[:reference]
39
40
 
40
- proxy = R10K::Git.get_proxy_for_remote(remote)
41
41
 
42
42
  R10K::Git.with_proxy(proxy) do
43
43
  @_rugged_repo = ::Rugged::Repository.clone_at(remote, @path.to_s, options)
@@ -85,11 +85,13 @@ class R10K::Git::Rugged::WorkingRepository < R10K::Git::Rugged::BaseRepository
85
85
 
86
86
  def fetch(remote_name = 'origin')
87
87
  logger.debug1 { _("Fetching remote '%{remote}' at %{path}") % {remote: remote_name, path: @path} }
88
- options = {:credentials => credentials}
89
- refspecs = ["+refs/heads/*:refs/remotes/#{remote_name}/*"]
90
88
 
91
89
  remote = remotes[remote_name]
92
90
  proxy = R10K::Git.get_proxy_for_remote(remote)
91
+
92
+ options = {:credentials => credentials, :proxy_url => proxy}
93
+ refspecs = ["+refs/heads/*:refs/remotes/#{remote_name}/*"]
94
+
93
95
  results = nil
94
96
 
95
97
  R10K::Git.with_proxy(proxy) do
@@ -117,7 +119,7 @@ class R10K::Git::Rugged::WorkingRepository < R10K::Git::Rugged::BaseRepository
117
119
  with_repo { |repo| repo.config['remote.origin.url'] }
118
120
  end
119
121
 
120
- def dirty?(exclude_spec=false)
122
+ def dirty?(exclude_spec=true)
121
123
  with_repo do |repo|
122
124
  if exclude_spec
123
125
  diff = repo.diff_workdir('HEAD').select { |d| ! d.delta.old_file[:path].start_with?('spec/') }
@@ -90,7 +90,7 @@ class R10K::Git::ShellGit::WorkingRepository < R10K::Git::ShellGit::BaseReposito
90
90
  end
91
91
 
92
92
  # does the working tree have local modifications to tracked files?
93
- def dirty?(exclude_spec=false)
93
+ def dirty?(exclude_spec=true)
94
94
  result = git(['diff-index', '--exit-code', '--name-only', 'HEAD'], :path => @path.to_s, :raise_on_fail => false)
95
95
 
96
96
  if result.exit_code != 0
@@ -36,7 +36,7 @@ class R10K::Git::StatefulRepository
36
36
  end
37
37
 
38
38
  # Returns true if the sync actually updated the repo, false otherwise
39
- def sync(ref, force=true, exclude_spec=false)
39
+ def sync(ref, force=true, exclude_spec=true)
40
40
  @cache.sync if sync_cache?(ref)
41
41
 
42
42
  sha = @cache.resolve(ref)
@@ -75,7 +75,7 @@ class R10K::Git::StatefulRepository
75
75
  updated
76
76
  end
77
77
 
78
- def status(ref, exclude_spec=false)
78
+ def status(ref, exclude_spec=true)
79
79
  if !@repo.exist?
80
80
  :absent
81
81
  elsif !@cache.exist?
@@ -60,8 +60,8 @@ class R10K::Module::Base
60
60
  @environment = environment
61
61
  @overrides = args.delete(:overrides) || {}
62
62
  @spec_deletable = true
63
- @exclude_spec = false
64
- @exclude_spec = @overrides.dig(:modules, :exclude_spec) if @overrides.dig(:modules, :exclude_spec)
63
+ @exclude_spec = true
64
+ @exclude_spec = @overrides.dig(:modules, :exclude_spec) unless @overrides.dig(:modules, :exclude_spec).nil?
65
65
  if args.has_key?(:exclude_spec)
66
66
  logger.debug2 _("Overriding :exclude_spec setting with per module setting for #{@title}")
67
67
  @exclude_spec = args.delete(:exclude_spec)
@@ -78,7 +78,7 @@ class R10K::Module::Base
78
78
  path.to_s
79
79
  end
80
80
 
81
- # Delete the spec dir if @exclude_spec has been set to true and @spec_deletable is also true
81
+ # Delete the spec dir if @exclude_spec is true and @spec_deletable is also true
82
82
  def maybe_delete_spec_dir
83
83
  if @exclude_spec
84
84
  if @spec_deletable
@@ -63,15 +63,14 @@ class R10K::Module::Git < R10K::Module::Base
63
63
  :commit => :desired_ref,
64
64
  :ref => :desired_ref,
65
65
  :git => :remote,
66
- :default_branch => :default_ref,
66
+ :default_branch => :default_branch,
67
67
  :default_branch_override => :default_override_ref,
68
68
  }, :raise_on_unhandled => false)
69
69
 
70
+ @default_ref = @default_branch.nil? ? @overrides.dig(:modules, :default_ref) : @default_branch
70
71
  force = @overrides[:force]
71
72
  @force = force == false ? false : true
72
73
 
73
- @desired_ref ||= 'master'
74
-
75
74
  if @desired_ref == :control_branch
76
75
  if @environment && @environment.respond_to?(:ref)
77
76
  @desired_ref = @environment.ref
@@ -116,6 +115,14 @@ class R10K::Module::Git < R10K::Module::Base
116
115
  @repo.cache.sanitized_dirname
117
116
  end
118
117
 
118
+ def validate_ref_defined
119
+ if @desired_ref.nil? && @default_ref.nil? && @default_override_ref.nil?
120
+ msg = "No ref defined for module #{@name}. Add a ref to the module definition "
121
+ msg << "or set git:default_ref in the r10k.yaml config to configure a global default ref."
122
+ raise ArgumentError, msg
123
+ end
124
+ end
125
+
119
126
  private
120
127
 
121
128
  def validate_ref(desired, default, default_override)
@@ -147,7 +154,9 @@ class R10K::Module::Git < R10K::Module::Base
147
154
  msg << "or resolve default ref '%{default}'"
148
155
  vars[:default] = default
149
156
  else
150
- msg << "and no default provided"
157
+ msg << "and no default provided. r10k no longer hardcodes 'master' as the default ref."
158
+ msg << "Consider setting a ref per module in the Puppetfile or setting git:default_ref"
159
+ msg << "in your r10k config."
151
160
  end
152
161
 
153
162
  raise ArgumentError, _(msg.join(' ')) % vars
@@ -175,13 +175,6 @@ module R10K
175
175
  @modules << mod
176
176
  end
177
177
 
178
- # @deprecated
179
- # @return [String] The base directory that contains the Puppetfile
180
- def basedir
181
- logger.warn _('"basedir" is deprecated. Please use "environment_name" instead. "basedir" will be removed in a future version.')
182
- @basedir
183
- end
184
-
185
178
  private
186
179
 
187
180
  def empty_load_output
@@ -72,7 +72,7 @@ class Puppetfile
72
72
  @overrides = options.delete(:overrides) || {}
73
73
  @default_branch_override = @overrides.dig(:environments, :default_branch_override)
74
74
 
75
- @forge = 'forgeapi.puppetlabs.com'
75
+ @forge = 'forgeapi.puppet.com'
76
76
 
77
77
  @loader = ::R10K::ModuleLoader::Puppetfile.new(
78
78
  basedir: @basedir,
data/lib/r10k/settings.rb CHANGED
@@ -19,6 +19,10 @@ module R10K
19
19
  def self.git_settings
20
20
  R10K::Settings::Collection.new(:git, [
21
21
 
22
+ Definition.new(:default_ref, {
23
+ :desc => "User-defined default ref from which to deploy modules when not otherwise specified; nil unless configured via the r10k.yaml config.",
24
+ :default => nil}),
25
+
22
26
  EnumDefinition.new(:provider, {
23
27
  :desc => "The Git provider to use. Valid values: 'shellgit', 'rugged'",
24
28
  :normalize => lambda { |input| input.to_sym },
@@ -175,11 +179,6 @@ module R10K
175
179
  :default => [],
176
180
  }),
177
181
 
178
- Definition.new(:purge_whitelist, {
179
- :desc => "Deprecated; please use purge_allowlist instead. This setting will be removed in a future version.",
180
- :default => [],
181
- }),
182
-
183
182
  Definition.new(:generate_types, {
184
183
  :desc => "Controls whether to generate puppet types after deploying an environment. Defaults to false.",
185
184
  :default => false,
@@ -207,8 +206,8 @@ module R10K
207
206
  end
208
207
  }),
209
208
  Definition.new(:exclude_spec, {
210
- :desc => "Whether or not to deploy the spec dir of a module. Defaults to false.",
211
- :default => false,
209
+ :desc => "Whether or not to deploy the spec dir of a module. Defaults to true.",
210
+ :default => true,
212
211
  :validate => lambda do |value|
213
212
  unless !!value == value
214
213
  raise ArgumentError, "`exclude_spec` can only be a boolean value, not '#{value}'"
data/lib/r10k/version.rb CHANGED
@@ -2,5 +2,5 @@ module R10K
2
2
  # When updating to a new major (X) or minor (Y) version, include `#major` or
3
3
  # `#minor` (respectively) in your commit message to trigger the appropriate
4
4
  # release. Otherwise, a new patch (Z) version will be released.
5
- VERSION = '3.15.4'
5
+ VERSION = '4.0.0.pre'
6
6
  end
data/locales/r10k.pot CHANGED
@@ -1,16 +1,16 @@
1
1
  # SOME DESCRIPTIVE TITLE.
2
- # Copyright (C) 2022 Puppet, Inc.
2
+ # Copyright (C) 2023 Puppet, Inc.
3
3
  # This file is distributed under the same license as the r10k package.
4
- # FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
5
5
  #
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: r10k 3.9.3-265-gcb0a3463\n"
9
+ "Project-Id-Version: r10k 3.9.3-289-g2f5deb72\n"
10
10
  "\n"
11
11
  "Report-Msgid-Bugs-To: docs@puppetlabs.com\n"
12
- "POT-Creation-Date: 2022-12-08 22:58+0000\n"
13
- "PO-Revision-Date: 2022-12-08 22:58+0000\n"
12
+ "POT-Creation-Date: 2023-06-27 17:39+0000\n"
13
+ "PO-Revision-Date: 2023-06-27 17:39+0000\n"
14
14
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15
15
  "Language-Team: LANGUAGE <LL@li.org>\n"
16
16
  "Language: \n"
@@ -95,7 +95,11 @@ msgstr ""
95
95
  msgid "Error during concurrent deploy of a module: %{message}"
96
96
  msgstr ""
97
97
 
98
- #: ../lib/r10k/content_synchronizer.rb:87
98
+ #: ../lib/r10k/content_synchronizer.rb:86
99
+ msgid "Module %{mod_name} failed to synchronize due to %{message}"
100
+ msgstr ""
101
+
102
+ #: ../lib/r10k/content_synchronizer.rb:92
99
103
  msgid "Module thread %{id} exiting: %{message}"
100
104
  msgstr ""
101
105
 
data/r10k.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  dynamic environments.
19
19
  DESCRIPTION
20
20
 
21
- s.required_ruby_version = '>= 2.3.0'
21
+ s.required_ruby_version = '>= 2.6.0'
22
22
 
23
23
  s.license = 'Apache-2.0'
24
24
 
@@ -28,13 +28,11 @@ Gem::Specification.new do |s|
28
28
  s.add_dependency 'log4r', '1.1.10'
29
29
  s.add_dependency 'multi_json', '~> 1.10'
30
30
 
31
- s.add_dependency 'puppet_forge', ['>= 2.3.0', '< 4.0.0']
31
+ s.add_dependency 'puppet_forge', '>= 4.1', '< 6'
32
32
 
33
- s.add_dependency 'gettext-setup', ['>=0.24', '< 2.0.0']
34
- s.add_dependency 'fast_gettext', ['>= 1.1.0', '< 3.0.0']
35
- s.add_dependency 'gettext', ['>= 3.0.2', '< 4.0.0']
33
+ s.add_dependency 'gettext-setup', '~>0.24'
36
34
 
37
- s.add_dependency 'jwt', '~> 2.2.3'
35
+ s.add_dependency 'jwt', '>= 2.2.3', '< 2.8.0'
38
36
  s.add_dependency 'minitar', '~> 0.9'
39
37
 
40
38
  s.add_development_dependency 'rspec', '~> 3.1'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: r10k
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.15.4
4
+ version: 4.0.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrien Thebo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-19 00:00:00.000000000 Z
11
+ date: 2023-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colored2
@@ -72,94 +72,54 @@ dependencies:
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 2.3.0
75
+ version: '4.1'
76
76
  - - "<"
77
77
  - !ruby/object:Gem::Version
78
- version: 4.0.0
78
+ version: '6'
79
79
  type: :runtime
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
83
  - - ">="
84
84
  - !ruby/object:Gem::Version
85
- version: 2.3.0
85
+ version: '4.1'
86
86
  - - "<"
87
87
  - !ruby/object:Gem::Version
88
- version: 4.0.0
88
+ version: '6'
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: gettext-setup
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
- - - ">="
93
+ - - "~>"
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0.24'
96
- - - "<"
97
- - !ruby/object:Gem::Version
98
- version: 2.0.0
99
96
  type: :runtime
100
97
  prerelease: false
101
98
  version_requirements: !ruby/object:Gem::Requirement
102
99
  requirements:
103
- - - ">="
100
+ - - "~>"
104
101
  - !ruby/object:Gem::Version
105
102
  version: '0.24'
106
- - - "<"
107
- - !ruby/object:Gem::Version
108
- version: 2.0.0
109
103
  - !ruby/object:Gem::Dependency
110
- name: fast_gettext
111
- requirement: !ruby/object:Gem::Requirement
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- version: 1.1.0
116
- - - "<"
117
- - !ruby/object:Gem::Version
118
- version: 3.0.0
119
- type: :runtime
120
- prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - ">="
124
- - !ruby/object:Gem::Version
125
- version: 1.1.0
126
- - - "<"
127
- - !ruby/object:Gem::Version
128
- version: 3.0.0
129
- - !ruby/object:Gem::Dependency
130
- name: gettext
104
+ name: jwt
131
105
  requirement: !ruby/object:Gem::Requirement
132
106
  requirements:
133
107
  - - ">="
134
108
  - !ruby/object:Gem::Version
135
- version: 3.0.2
109
+ version: 2.2.3
136
110
  - - "<"
137
111
  - !ruby/object:Gem::Version
138
- version: 4.0.0
112
+ version: 2.8.0
139
113
  type: :runtime
140
114
  prerelease: false
141
115
  version_requirements: !ruby/object:Gem::Requirement
142
116
  requirements:
143
117
  - - ">="
144
- - !ruby/object:Gem::Version
145
- version: 3.0.2
146
- - - "<"
147
- - !ruby/object:Gem::Version
148
- version: 4.0.0
149
- - !ruby/object:Gem::Dependency
150
- name: jwt
151
- requirement: !ruby/object:Gem::Requirement
152
- requirements:
153
- - - "~>"
154
118
  - !ruby/object:Gem::Version
155
119
  version: 2.2.3
156
- type: :runtime
157
- prerelease: false
158
- version_requirements: !ruby/object:Gem::Requirement
159
- requirements:
160
- - - "~>"
120
+ - - "<"
161
121
  - !ruby/object:Gem::Version
162
- version: 2.2.3
122
+ version: 2.8.0
163
123
  - !ruby/object:Gem::Dependency
164
124
  name: minitar
165
125
  requirement: !ruby/object:Gem::Requirement
@@ -227,6 +187,7 @@ extensions: []
227
187
  extra_rdoc_files: []
228
188
  files:
229
189
  - ".gitattributes"
190
+ - ".github/dependabot.yml"
230
191
  - ".github/pull_request_template.md"
231
192
  - ".github/workflows/docker.yml"
232
193
  - ".github/workflows/release.yml"
@@ -256,19 +217,6 @@ files:
256
217
  - doc/git/providers.mkd
257
218
  - doc/puppetfile.mkd
258
219
  - doc/updating-your-puppetfile.mkd
259
- - docker/.gitignore
260
- - docker/.rspec
261
- - docker/Gemfile
262
- - docker/Makefile
263
- - docker/README.md
264
- - docker/docker-compose.yml
265
- - docker/r10k/Dockerfile
266
- - docker/r10k/adduser.sh
267
- - docker/r10k/docker-entrypoint.d/10-analytics.sh
268
- - docker/r10k/docker-entrypoint.sh
269
- - docker/r10k/release.Dockerfile
270
- - docker/spec/dockerfile_spec.rb
271
- - docker/spec/fixtures/Puppetfile
272
220
  - integration/Gemfile
273
221
  - integration/README.mkd
274
222
  - integration/Rakefile
@@ -295,13 +243,11 @@ files:
295
243
  - integration/tests/Puppetfile/HTTP_PROXY_affects_git_source.rb
296
244
  - integration/tests/README.mkd
297
245
  - integration/tests/basic_functionality/basic_deployment.rb
298
- - integration/tests/basic_functionality/install_pe_only_module_with_puppetfile.rb
299
246
  - integration/tests/basic_functionality/negative/neg_deploy_with_invalid_r10k_yaml.rb
300
247
  - integration/tests/basic_functionality/negative/neg_deploy_with_missing_r10k_yaml.rb
301
248
  - integration/tests/basic_functionality/negative/neg_invalid_git_provider.rb
302
249
  - integration/tests/basic_functionality/negative/negative_bad_proxy.rb
303
250
  - integration/tests/basic_functionality/proxy_specified_in_configuration.rb
304
- - integration/tests/basic_functionality/proxy_with_pe_only_module.rb
305
251
  - integration/tests/basic_functionality/proxy_with_puppetfile.rb
306
252
  - integration/tests/basic_functionality/rugged_git_provider_with_ssh.rb
307
253
  - integration/tests/basic_functionality/rugged_git_provider_without_ssh.rb
@@ -320,8 +266,7 @@ files:
320
266
  - integration/tests/i18n/deploy_module_with_unicode_in_file_name.rb
321
267
  - integration/tests/purging/content_not_purged_at_root.rb
322
268
  - integration/tests/purging/default_purging.rb
323
- - integration/tests/purging/does_not_purge_files_on_white_list.rb
324
- - integration/tests/purging/invalid_whitelist_types.rb
269
+ - integration/tests/purging/does_not_purge_files_on_allowlist.rb
325
270
  - integration/tests/user_scenario/basic_workflow/multi_env_1000_branches.rb
326
271
  - integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module.rb
327
272
  - integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module_static.rb
@@ -339,7 +284,6 @@ files:
339
284
  - integration/tests/user_scenario/basic_workflow/negative/neg_inaccessible_forge.rb
340
285
  - integration/tests/user_scenario/basic_workflow/negative/neg_invalid_env_name.rb
341
286
  - integration/tests/user_scenario/basic_workflow/negative/neg_invalid_puppet_file.rb
342
- - integration/tests/user_scenario/basic_workflow/negative/neg_module_specified_at_deleted_release.rb
343
287
  - integration/tests/user_scenario/basic_workflow/negative/neg_read_only.rb
344
288
  - integration/tests/user_scenario/basic_workflow/negative/neg_specify_deleted_forge_module.rb
345
289
  - integration/tests/user_scenario/basic_workflow/single_env_10000_files.rb
@@ -348,7 +292,6 @@ files:
348
292
  - integration/tests/user_scenario/basic_workflow/single_env_custom_module.rb
349
293
  - integration/tests/user_scenario/basic_workflow/single_env_large_files.rb
350
294
  - integration/tests/user_scenario/basic_workflow/single_env_module_already_installed.rb
351
- - integration/tests/user_scenario/basic_workflow/single_env_module_last_release_deleted.rb
352
295
  - integration/tests/user_scenario/basic_workflow/single_env_non-existent_base_dir.rb
353
296
  - integration/tests/user_scenario/basic_workflow/single_env_purge_unmanaged_modules.rb
354
297
  - integration/tests/user_scenario/basic_workflow/single_env_switch_forge_git_module.rb
@@ -383,7 +326,6 @@ files:
383
326
  - lib/r10k/deployment.rb
384
327
  - lib/r10k/deployment/config.rb
385
328
  - lib/r10k/environment.rb
386
- - lib/r10k/environment/bare.rb
387
329
  - lib/r10k/environment/base.rb
388
330
  - lib/r10k/environment/git.rb
389
331
  - lib/r10k/environment/name.rb
@@ -491,12 +433,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
491
433
  requirements:
492
434
  - - ">="
493
435
  - !ruby/object:Gem::Version
494
- version: 2.3.0
436
+ version: 2.6.0
495
437
  required_rubygems_version: !ruby/object:Gem::Requirement
496
438
  requirements:
497
- - - ">="
439
+ - - ">"
498
440
  - !ruby/object:Gem::Version
499
- version: '0'
441
+ version: 1.3.1
500
442
  requirements: []
501
443
  rubygems_version: 3.0.3
502
444
  signing_key:
data/docker/.gitignore DELETED
@@ -1 +0,0 @@
1
- TEST-rspec.xml
data/docker/.rspec DELETED
@@ -1,4 +0,0 @@
1
- --require pupperware/spec_helper
2
- --format RspecJunitFormatter
3
- --out TEST-rspec.xml
4
- --format documentation