r10k 3.14.1 → 5.0.1

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 (246) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +17 -0
  3. data/.github/workflows/docker.yml +9 -4
  4. data/.github/workflows/release.yml +3 -2
  5. data/.github/workflows/rspec_tests.yml +8 -10
  6. data/CHANGELOG.mkd +100 -0
  7. data/CODEOWNERS +1 -2
  8. data/Gemfile +2 -2
  9. data/README.mkd +18 -19
  10. data/doc/common-patterns.mkd +1 -2
  11. data/doc/dynamic-environments/configuration.mkd +91 -12
  12. data/doc/dynamic-environments/usage.mkd +4 -0
  13. data/doc/dynamic-environments/workflow-guide.mkd +3 -3
  14. data/doc/faq.mkd +1 -1
  15. data/doc/puppetfile.mkd +9 -3
  16. data/integration/Gemfile +3 -4
  17. data/integration/Rakefile +58 -23
  18. data/integration/files/pre-suite/git_config.pp.erb +1 -1
  19. data/integration/pre-suite/00_pe_install.rb +3 -0
  20. data/integration/pre-suite/10_git_config.rb +1 -3
  21. data/integration/tests/Puppetfile/HTTP_PROXY_affects_git_source.rb +5 -4
  22. data/integration/tests/basic_functionality/negative/negative_bad_proxy.rb +1 -1
  23. data/integration/tests/basic_functionality/proxy_specified_in_configuration.rb +2 -2
  24. data/integration/tests/basic_functionality/proxy_with_puppetfile.rb +2 -2
  25. data/integration/tests/basic_functionality/rugged_git_provider_with_ssh.rb +3 -3
  26. data/integration/tests/basic_functionality/rugged_git_provider_without_ssh.rb +3 -3
  27. data/integration/tests/command_line/deploy_env_without_mod_update.rb +0 -3
  28. data/integration/tests/command_line/negative/neg_deploy_env_with_module_update.rb +0 -3
  29. data/integration/tests/git_source/HTTP_proxy_and_git_source.rb +5 -10
  30. data/integration/tests/git_source/git_source_git.rb +1 -4
  31. data/integration/tests/git_source/git_source_repeated_remote.rb +2 -5
  32. data/integration/tests/git_source/git_source_submodule.rb +1 -1
  33. data/integration/tests/git_source/negative/neg_git_unauthorized_ssh.rb +1 -1
  34. data/integration/tests/purging/content_not_purged_at_root.rb +2 -5
  35. data/integration/tests/purging/default_purging.rb +0 -3
  36. data/integration/tests/purging/{does_not_purge_files_on_white_list.rb → does_not_purge_files_on_allowlist.rb} +2 -5
  37. data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module.rb +1 -4
  38. data/integration/tests/user_scenario/basic_workflow/multi_env_custom_forge_git_module_static.rb +1 -4
  39. data/integration/tests/user_scenario/basic_workflow/multi_source_custom_forge_git_module.rb +1 -4
  40. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_forge_module.rb +0 -3
  41. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_git_module.rb +1 -1
  42. data/integration/tests/user_scenario/basic_workflow/negative/neg_bad_git_module_ref.rb +1 -1
  43. data/integration/tests/user_scenario/basic_workflow/negative/neg_disk_full.rb +1 -1
  44. data/integration/tests/user_scenario/basic_workflow/negative/neg_duplicate_module_names.rb +0 -3
  45. data/integration/tests/user_scenario/basic_workflow/negative/neg_inaccessible_forge.rb +3 -2
  46. data/integration/tests/user_scenario/basic_workflow/negative/neg_specify_deleted_forge_module.rb +1 -5
  47. data/integration/tests/user_scenario/basic_workflow/single_env_10000_files.rb +1 -1
  48. data/integration/tests/user_scenario/basic_workflow/single_env_custom_forge_git_module.rb +1 -4
  49. data/integration/tests/user_scenario/basic_workflow/single_env_custom_forge_module.rb +0 -3
  50. data/integration/tests/user_scenario/basic_workflow/single_env_large_files.rb +1 -1
  51. data/integration/tests/user_scenario/basic_workflow/single_env_module_already_installed.rb +0 -3
  52. data/integration/tests/user_scenario/basic_workflow/single_env_purge_unmanaged_modules.rb +0 -3
  53. data/integration/tests/user_scenario/basic_workflow/single_env_switch_forge_git_module.rb +1 -4
  54. data/integration/tests/user_scenario/basic_workflow/single_env_upgrade_forge_mod_revert_change.rb +0 -3
  55. data/integration/tests/user_scenario/complex_workflow/multi_env_add_change_remove.rb +0 -3
  56. data/lib/r10k/action/deploy/environment.rb +2 -19
  57. data/lib/r10k/action/deploy/module.rb +1 -0
  58. data/lib/r10k/action/puppetfile/check.rb +7 -0
  59. data/lib/r10k/action/puppetfile/install.rb +3 -1
  60. data/lib/r10k/cli/deploy.rb +15 -1
  61. data/lib/r10k/cli/puppetfile.rb +1 -0
  62. data/lib/r10k/content_synchronizer.rb +7 -2
  63. data/lib/r10k/environment/with_modules.rb +24 -1
  64. data/lib/r10k/environment.rb +0 -1
  65. data/lib/r10k/git/rugged/bare_repository.rb +5 -4
  66. data/lib/r10k/git/rugged/thin_repository.rb +7 -0
  67. data/lib/r10k/git/rugged/working_repository.rb +13 -7
  68. data/lib/r10k/git/shellgit/thin_repository.rb +5 -1
  69. data/lib/r10k/git/shellgit/working_repository.rb +5 -4
  70. data/lib/r10k/git/stateful_repository.rb +4 -4
  71. data/lib/r10k/module/base.rb +3 -3
  72. data/lib/r10k/module/git.rb +19 -5
  73. data/lib/r10k/module_loader/puppetfile/dsl.rb +4 -0
  74. data/lib/r10k/module_loader/puppetfile.rb +22 -14
  75. data/lib/r10k/puppetfile.rb +1 -1
  76. data/lib/r10k/settings/container.rb +1 -0
  77. data/lib/r10k/settings.rb +6 -7
  78. data/lib/r10k/tarball.rb +1 -1
  79. data/lib/r10k/version.rb +1 -1
  80. data/locales/r10k.pot +34 -82
  81. data/r10k.gemspec +8 -18
  82. metadata +40 -213
  83. data/.github/workflows/stale.yml +0 -21
  84. data/.travis.yml +0 -42
  85. data/docker/.gitignore +0 -1
  86. data/docker/.rspec +0 -4
  87. data/docker/Gemfile +0 -11
  88. data/docker/Makefile +0 -92
  89. data/docker/README.md +0 -28
  90. data/docker/docker-compose.yml +0 -18
  91. data/docker/r10k/Dockerfile +0 -68
  92. data/docker/r10k/adduser.sh +0 -13
  93. data/docker/r10k/docker-entrypoint.d/10-analytics.sh +0 -30
  94. data/docker/r10k/docker-entrypoint.sh +0 -10
  95. data/docker/r10k/release.Dockerfile +0 -55
  96. data/docker/spec/dockerfile_spec.rb +0 -37
  97. data/docker/spec/fixtures/Puppetfile +0 -2
  98. data/integration/tests/basic_functionality/install_pe_only_module_with_puppetfile.rb +0 -83
  99. data/integration/tests/basic_functionality/proxy_with_pe_only_module.rb +0 -128
  100. data/integration/tests/purging/invalid_whitelist_types.rb +0 -63
  101. data/integration/tests/user_scenario/basic_workflow/negative/neg_module_specified_at_deleted_release.rb +0 -49
  102. data/integration/tests/user_scenario/basic_workflow/single_env_module_last_release_deleted.rb +0 -68
  103. data/lib/r10k/environment/bare.rb +0 -13
  104. data/spec/fixtures/empty/.empty +0 -0
  105. data/spec/fixtures/integration/git/puppet-boolean-bare.tar +0 -0
  106. data/spec/fixtures/module/forge/bad_module/metadata.json +0 -1
  107. data/spec/fixtures/module/forge/eight_hundred/Modulefile +0 -8
  108. data/spec/fixtures/module/forge/eight_hundred/metadata.json +0 -19
  109. data/spec/fixtures/tarball/tarball.tar.gz +0 -0
  110. data/spec/fixtures/unit/action/r10k.yaml +0 -5
  111. data/spec/fixtures/unit/action/r10k_cachedir.yaml +0 -2
  112. data/spec/fixtures/unit/action/r10k_creds.yaml +0 -9
  113. data/spec/fixtures/unit/action/r10k_forge_auth.yaml +0 -4
  114. data/spec/fixtures/unit/action/r10k_forge_auth_no_url.yaml +0 -3
  115. data/spec/fixtures/unit/action/r10k_generate_types.yaml +0 -3
  116. data/spec/fixtures/unit/action/r10k_logging.yaml +0 -12
  117. data/spec/fixtures/unit/action/r10k_puppet_path.yaml +0 -3
  118. data/spec/fixtures/unit/puppetfile/argument-error/Puppetfile +0 -1
  119. data/spec/fixtures/unit/puppetfile/default-branch-override/Puppetfile +0 -5
  120. data/spec/fixtures/unit/puppetfile/duplicate-module-error/Puppetfile +0 -10
  121. data/spec/fixtures/unit/puppetfile/forge-override/Puppetfile +0 -8
  122. data/spec/fixtures/unit/puppetfile/invalid-syntax/Puppetfile +0 -1
  123. data/spec/fixtures/unit/puppetfile/load-error/Puppetfile +0 -1
  124. data/spec/fixtures/unit/puppetfile/name-error/Puppetfile +0 -1
  125. data/spec/fixtures/unit/puppetfile/valid-forge-with-version/Puppetfile +0 -1
  126. data/spec/fixtures/unit/puppetfile/valid-forge-without-version/Puppetfile +0 -1
  127. data/spec/fixtures/unit/puppetfile/various-modules/Puppetfile +0 -10
  128. data/spec/fixtures/unit/puppetfile/various-modules/Puppetfile.new +0 -10
  129. data/spec/fixtures/unit/util/purgeable/managed_one/expected_1 +0 -0
  130. data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/managed_symlink_file +0 -1
  131. data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/subdir_allowlisted_2/ignored_1 +0 -0
  132. data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/subdir_expected_1 +0 -0
  133. data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/subdir_unmanaged_1 +0 -0
  134. data/spec/fixtures/unit/util/purgeable/managed_one/managed_subdir_1/unmanaged_symlink_dir +0 -1
  135. data/spec/fixtures/unit/util/purgeable/managed_one/managed_symlink_dir +0 -1
  136. data/spec/fixtures/unit/util/purgeable/managed_one/unmanaged_1 +0 -0
  137. data/spec/fixtures/unit/util/purgeable/managed_one/unmanaged_symlink_file +0 -1
  138. data/spec/fixtures/unit/util/purgeable/managed_two/.hidden/unmanaged_3 +0 -0
  139. data/spec/fixtures/unit/util/purgeable/managed_two/expected_2 +0 -0
  140. data/spec/fixtures/unit/util/purgeable/managed_two/unmanaged_2 +0 -0
  141. data/spec/fixtures/unit/util/subprocess/runner/no-execute.sh +0 -3
  142. data/spec/integration/git/rugged/bare_repository_spec.rb +0 -13
  143. data/spec/integration/git/rugged/cache_spec.rb +0 -33
  144. data/spec/integration/git/rugged/thin_repository_spec.rb +0 -14
  145. data/spec/integration/git/rugged/working_repository_spec.rb +0 -48
  146. data/spec/integration/git/shellgit/bare_repository_spec.rb +0 -13
  147. data/spec/integration/git/shellgit/thin_repository_spec.rb +0 -14
  148. data/spec/integration/git/shellgit/working_repository_spec.rb +0 -13
  149. data/spec/integration/git/stateful_repository_spec.rb +0 -159
  150. data/spec/integration/util/purageable_spec.rb +0 -41
  151. data/spec/matchers/exit_with.rb +0 -28
  152. data/spec/matchers/match_realpath.rb +0 -18
  153. data/spec/r10k-mocks/mock_config.rb +0 -33
  154. data/spec/r10k-mocks/mock_env.rb +0 -18
  155. data/spec/r10k-mocks/mock_source.rb +0 -17
  156. data/spec/r10k-mocks.rb +0 -3
  157. data/spec/shared-contexts/git-fixtures.rb +0 -55
  158. data/spec/shared-contexts/tarball.rb +0 -32
  159. data/spec/shared-examples/deploy-actions.rb +0 -69
  160. data/spec/shared-examples/git/bare_repository.rb +0 -132
  161. data/spec/shared-examples/git/thin_repository.rb +0 -26
  162. data/spec/shared-examples/git/working_repository.rb +0 -207
  163. data/spec/shared-examples/git-repository.rb +0 -38
  164. data/spec/shared-examples/puppetfile-action.rb +0 -39
  165. data/spec/shared-examples/settings/ancestry.rb +0 -44
  166. data/spec/shared-examples/subprocess-runner.rb +0 -89
  167. data/spec/spec_helper.rb +0 -41
  168. data/spec/unit/action/cri_runner_spec.rb +0 -72
  169. data/spec/unit/action/deploy/deploy_helpers_spec.rb +0 -38
  170. data/spec/unit/action/deploy/display_spec.rb +0 -61
  171. data/spec/unit/action/deploy/environment_spec.rb +0 -640
  172. data/spec/unit/action/deploy/module_spec.rb +0 -476
  173. data/spec/unit/action/puppetfile/check_spec.rb +0 -53
  174. data/spec/unit/action/puppetfile/cri_runner_spec.rb +0 -47
  175. data/spec/unit/action/puppetfile/install_spec.rb +0 -112
  176. data/spec/unit/action/puppetfile/purge_spec.rb +0 -60
  177. data/spec/unit/action/runner_spec.rb +0 -407
  178. data/spec/unit/action/visitor_spec.rb +0 -39
  179. data/spec/unit/cli_spec.rb +0 -9
  180. data/spec/unit/deployment/config_spec.rb +0 -33
  181. data/spec/unit/deployment_spec.rb +0 -162
  182. data/spec/unit/environment/bare_spec.rb +0 -13
  183. data/spec/unit/environment/base_spec.rb +0 -122
  184. data/spec/unit/environment/git_spec.rb +0 -114
  185. data/spec/unit/environment/name_spec.rb +0 -181
  186. data/spec/unit/environment/plain_spec.rb +0 -8
  187. data/spec/unit/environment/svn_spec.rb +0 -146
  188. data/spec/unit/environment/tarball_spec.rb +0 -45
  189. data/spec/unit/environment/with_modules_spec.rb +0 -75
  190. data/spec/unit/errors/formatting_spec.rb +0 -84
  191. data/spec/unit/feature_spec.rb +0 -50
  192. data/spec/unit/forge/module_release_spec.rb +0 -213
  193. data/spec/unit/git/alternates_spec.rb +0 -116
  194. data/spec/unit/git/cache_spec.rb +0 -66
  195. data/spec/unit/git/rugged/cache_spec.rb +0 -48
  196. data/spec/unit/git/rugged/credentials_spec.rb +0 -215
  197. data/spec/unit/git/shellgit/cache_spec.rb +0 -27
  198. data/spec/unit/git/stateful_repository_spec.rb +0 -45
  199. data/spec/unit/git_spec.rb +0 -102
  200. data/spec/unit/initializers_spec.rb +0 -68
  201. data/spec/unit/instance_cache_spec.rb +0 -78
  202. data/spec/unit/keyed_factory_spec.rb +0 -51
  203. data/spec/unit/logging/terminaloutputter_spec.rb +0 -53
  204. data/spec/unit/logging_spec.rb +0 -68
  205. data/spec/unit/module/base_spec.rb +0 -118
  206. data/spec/unit/module/forge_spec.rb +0 -271
  207. data/spec/unit/module/git_spec.rb +0 -387
  208. data/spec/unit/module/metadata_file_spec.rb +0 -68
  209. data/spec/unit/module/svn_spec.rb +0 -208
  210. data/spec/unit/module/tarball_spec.rb +0 -70
  211. data/spec/unit/module_loader/puppetfile_spec.rb +0 -421
  212. data/spec/unit/module_spec.rb +0 -114
  213. data/spec/unit/puppetfile_spec.rb +0 -304
  214. data/spec/unit/settings/collection_spec.rb +0 -123
  215. data/spec/unit/settings/container_spec.rb +0 -92
  216. data/spec/unit/settings/definition_spec.rb +0 -79
  217. data/spec/unit/settings/enum_definition_spec.rb +0 -20
  218. data/spec/unit/settings/inheritance_spec.rb +0 -38
  219. data/spec/unit/settings/list_spec.rb +0 -88
  220. data/spec/unit/settings/loader_spec.rb +0 -110
  221. data/spec/unit/settings/uri_definition_spec.rb +0 -23
  222. data/spec/unit/settings_spec.rb +0 -303
  223. data/spec/unit/source/base_spec.rb +0 -31
  224. data/spec/unit/source/exec_spec.rb +0 -81
  225. data/spec/unit/source/git_spec.rb +0 -233
  226. data/spec/unit/source/hash_spec.rb +0 -54
  227. data/spec/unit/source/svn_spec.rb +0 -196
  228. data/spec/unit/source/yaml_spec.rb +0 -42
  229. data/spec/unit/source_spec.rb +0 -10
  230. data/spec/unit/svn/remote_spec.rb +0 -21
  231. data/spec/unit/svn/working_dir_spec.rb +0 -56
  232. data/spec/unit/tarball_spec.rb +0 -57
  233. data/spec/unit/util/attempt_spec.rb +0 -82
  234. data/spec/unit/util/cacheable_spec.rb +0 -23
  235. data/spec/unit/util/commands_spec.rb +0 -61
  236. data/spec/unit/util/downloader_spec.rb +0 -98
  237. data/spec/unit/util/exec_env_spec.rb +0 -56
  238. data/spec/unit/util/purgeable_spec.rb +0 -267
  239. data/spec/unit/util/setopts_spec.rb +0 -83
  240. data/spec/unit/util/subprocess/result_spec.rb +0 -36
  241. data/spec/unit/util/subprocess/runner/posix_spec.rb +0 -7
  242. data/spec/unit/util/subprocess/runner/pump_spec.rb +0 -79
  243. data/spec/unit/util/subprocess/runner/windows_spec.rb +0 -7
  244. data/spec/unit/util/subprocess/subprocess_error_spec.rb +0 -26
  245. data/spec/unit/util/subprocess_spec.rb +0 -65
  246. data/spec/unit/util/symbolize_keys_spec.rb +0 -67
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 51cffcbc4e3340cf55e51da3a60e66e4c4b851d17bdd566d257213e6a4244bdc
4
- data.tar.gz: 10c04f87924b3c5f4eb84cba797879a0a1ac09a6fbc3e0f598c53788d1d5f9b2
3
+ metadata.gz: 33067413d4a97ba3b26ff80ccdaa54983612cb2880b55df1002f82f70c047632
4
+ data.tar.gz: 4adb83ad137bd748d7e5648e027ad83ca5c327c2df4fbd92da7e0e69ef061c40
5
5
  SHA512:
6
- metadata.gz: 8684fc987a031207807de406810ec0529ef00ab8cad321923451a51d5d869ec2aee3cbca411ca37dbe1bbc7ec3c4a0e7daa58df099b0bc1c74005e5c914e0ba2
7
- data.tar.gz: b8515912cdc5099dfd5c238da01663f7352185bd8454363cdce4bf562138302002fd563fe7783c212071fee2a8855f5abc78dd7d66c1dc006595613b697cd8eb
6
+ metadata.gz: b22c78d47e0f34e9647ab3129f34c09e636c7587a2c21624a41a43eff2fde6e9b1b3529115db34d5a40120d7681a80c7e17e1de42b9f8ffe0c3bdda5ee3ff2df
7
+ data.tar.gz: 0c3f1bb469c57f520fabd07f5dc90a719544610ee2a34c20b6bebba71649f135d0ee6082522836c13e20e43535eea1b674cb14f724e30cc08a5a4a8f51813496
@@ -0,0 +1,17 @@
1
+ version: 2
2
+ updates:
3
+ # raise PRs for gem updates
4
+ - package-ecosystem: bundler
5
+ directory: "/"
6
+ schedule:
7
+ interval: daily
8
+ time: "13:00"
9
+ open-pull-requests-limit: 10
10
+
11
+ # Maintain dependencies for GitHub Actions
12
+ - package-ecosystem: github-actions
13
+ directory: "/"
14
+ schedule:
15
+ interval: daily
16
+ time: "13:00"
17
+ open-pull-requests-limit: 10
@@ -17,16 +17,21 @@ jobs:
17
17
  runs-on: ubuntu-latest
18
18
 
19
19
  steps:
20
- - uses: actions/checkout@master
20
+ - uses: actions/checkout@v3
21
21
  - uses: azure/docker-login@v1
22
22
  with: # This doesn't seem to work unless we point directly to the secrets
23
23
  username: ${{ secrets.DOCKERHUB_USERNAME }}
24
24
  password: ${{ secrets.DOCKERHUB_PASSWORD }}
25
- - name: Set up Ruby 2.6
26
- uses: actions/setup-ruby@v1
25
+ - name: Set up Ruby 3.1
26
+ uses: ruby/setup-ruby@v1
27
27
  with:
28
- ruby-version: 2.6.x
28
+ ruby-version: 3.1
29
29
  - run: gem install bundler
30
+ - uses: actions/checkout@v3
31
+ - name: Set up QEMU
32
+ uses: docker/setup-qemu-action@v3
33
+ - name: Set up Docker Buildx
34
+ uses: docker/setup-buildx-action@v2
30
35
  - name: Build container
31
36
  working-directory: docker
32
37
  run: |
@@ -4,6 +4,7 @@ on:
4
4
  push:
5
5
  branches:
6
6
  - main
7
+ - 3.x
7
8
  paths:
8
9
  - 'lib/r10k/version.rb'
9
10
 
@@ -11,11 +12,11 @@ jobs:
11
12
  release:
12
13
  runs-on: ubuntu-latest
13
14
  steps:
14
- - uses: actions/checkout@v2
15
+ - uses: actions/checkout@v3
15
16
  with:
16
17
  fetch-depth: '0'
17
18
  - name: Bump version and push tag
18
- uses: anothrNick/github-tag-action@1.35.0
19
+ uses: anothrNick/github-tag-action@1.73.0
19
20
  env:
20
21
  GITHUB_TOKEN: ${{ secrets.PUPPET_RELEASE_GH_TOKEN }}
21
22
  DEFAULT_BUMP: patch
@@ -4,6 +4,7 @@ on:
4
4
  pull_request:
5
5
  branches:
6
6
  - main
7
+ - 3.x
7
8
 
8
9
  jobs:
9
10
  rspec_tests:
@@ -11,19 +12,17 @@ jobs:
11
12
  strategy:
12
13
  matrix:
13
14
  cfg:
14
- - {os: ubuntu-18.04, ruby: 2.4}
15
- - {os: ubuntu-18.04, ruby: 2.5}
16
- - {os: ubuntu-18.04, ruby: 2.6}
17
- - {os: ubuntu-18.04, ruby: 2.7}
18
- - {os: ubuntu-18.04, ruby: jruby-9.2.10.0}
19
- - {os: windows-2019, ruby: 2.5}
20
- - {os: windows-2019, ruby: 2.6}
21
- - {os: windows-2019, ruby: 2.7}
15
+ - {os: ubuntu-latest, ruby: 3.1}
16
+ - {os: ubuntu-latest, ruby: 3.2}
17
+ - {os: ubuntu-latest, ruby: 3.3}
18
+ - {os: ubuntu-latest, ruby: jruby-9.4}
19
+ - {os: windows-latest, ruby: 3.2}
20
+ - {os: windows-latest, ruby: 3.3}
22
21
 
23
22
  runs-on: ${{ matrix.cfg.os }}
24
23
  steps:
25
24
  - name: Checkout current PR
26
- uses: actions/checkout@v2
25
+ uses: actions/checkout@v3
27
26
 
28
27
  - name: Install ruby version ${{ matrix.cfg.ruby }}
29
28
  uses: ruby/setup-ruby@v1
@@ -32,7 +31,6 @@ jobs:
32
31
 
33
32
  - name: Install bundler and gems
34
33
  run: |
35
- gem install bundler
36
34
  bundle config set without packaging documentation
37
35
  bundle install --jobs 4 --retry 3
38
36
 
data/CHANGELOG.mkd CHANGED
@@ -4,6 +4,106 @@ CHANGELOG
4
4
  Unreleased
5
5
  ----------
6
6
 
7
+
8
+ 5.0.1
9
+ -----
10
+
11
+ - Ensure rugged downloads all tags [#1417](https://github.com/puppetlabs/r10k/pull/1417)
12
+
13
+ 5.0.0
14
+ -----
15
+
16
+ - Add Ruby 3.3 to CI [#1403](https://github.com/puppetlabs/r10k/pull/1403)
17
+ - Require Ruby 3.1 [#1402](https://github.com/puppetlabs/r10k/pull/1402)
18
+ - Replace deprecated action: actions/setup-ruby->ruby/setup-ruby [#1406](https://github.com/puppetlabs/r10k/pull/1406)
19
+ - Ensure git repositories are pruned on fetch [#1410](https://github.com/puppetlabs/r10k/pull/1410)
20
+ - Limit Rugged Control Repo refspec to only clone refs/heads [#1412](https://github.com/puppetlabs/r10k/pull/1412)
21
+ - Allow librarian exclusion declaration as a noop
22
+
23
+ 4.1.0
24
+ -----
25
+
26
+ - Allow jwt gem >= 2.8
27
+ - r10k::module::git: expose remote as getter [#1379](https://github.com/puppetlabs/r10k/pull/1379)
28
+
29
+ 4.0.2
30
+ -----
31
+
32
+ - Make metadata loading during incremental deploys more robust [PE-34917](https://perforce.atlassian.net/browse/PE-34917)
33
+ - Use the production forge for integration testing
34
+ - (maint) Update beaker-pe to 3 [#1376](https://github.com/puppetlabs/r10k/pull/1376)
35
+ - (maint) Stop puppet service during tests [#1377](https://github.com/puppetlabs/r10k/pull/1377)
36
+
37
+ 4.0.1
38
+ -----
39
+
40
+ - shellgit: Ensure the passed filepath to diff-index is interpreted as filepath [#1367](https://github.com/puppetlabs/r10k/pull/1367)
41
+
42
+ 4.0.0
43
+ -----
44
+ - Drop Ruby 2.3/2.4/2.5 support; use puppet_forge 4.1 or newer [#1336](https://github.com/puppetlabs/r10k/pull/1336)
45
+ - (maint) Add Ruby 3.0 to rspec CI matrix [#1261](https://github.com/puppetlabs/r10k/pull/1261)
46
+ - (RK-368) remove `purge_whitelist` setting [#1277](https://github.com/puppetlabs/r10k/pull/1277)
47
+ - (RK-390) Remove default ref for deploying git modules [#1275](http://github.com/puppetlabs/r10k/pull/1275)
48
+ - (RK-391) Change `exclude_spec` default to true for module spec dir deletion [#1264](https://github.com/puppetlabs/r10k/pull/1261)
49
+ - (RK-383) Remove deprecated `basedir` method from Puppetfile DSL. Users should use `environment_name` instead. [#1254](https://github.com/puppetlabs/r10k/pull/1254)
50
+ - (RK-386) Remove deprecated `bare` environment type. [#1235](https://github.com/puppetlabs/r10k/issues/1235)
51
+
52
+ 3.16.2
53
+ ------
54
+
55
+ - r10k::module::git: expose remote as getter [#1379](https://github.com/puppetlabs/r10k/pull/1379)
56
+
57
+ 3.16.1
58
+ ------
59
+
60
+ - Make metadata loading during incremental deploys more robust [PE-34917](https://perforce.atlassian.net/browse/PE-34917)
61
+ - Use the production forge for integration testing
62
+
63
+ 3.16.0
64
+ ------
65
+
66
+ - Emit more debug output when modules fail to sync [#1347](https://github.com/puppetlabs/r10k/pull/1347)
67
+ - Update GitHub Actions & introduce dependabot [#1337](https://github.com/puppetlabs/r10k/pull/1337)
68
+ - Update R10K proxy usage to follow newer rugged best practices [PE-35980](https://tickets.puppet.com/browse/PE-35980)
69
+ - Update Acceptance tests to be compatible with Puppet 8 [#1349](https://github.com/puppetlabs/r10k/pull/1349)
70
+
71
+ 3.15.4
72
+ ------
73
+
74
+ - Pin dependencies to maintain support for old Ruby versions [#1329](https://github.com/puppetlabs/r10k/pull/1329)
75
+
76
+ 3.15.3
77
+ ------
78
+
79
+ - Fix dirty working copy debug logging [#1321](https://github.com/puppetlabs/r10k/pull/1321)
80
+ - Allow gettext-setup < 2 for compatibility with Ruby 3.2 and Puppet 8 [#1325](https://github.com/puppetlabs/r10k/pull/1325)
81
+
82
+ 3.15.2
83
+ ------
84
+
85
+ - Implement exclude regex for puppetfile install [#1248](https://github.com/puppetlabs/r10k/issues/1248)
86
+
87
+ 3.15.1
88
+ ------
89
+
90
+ - Add TOC to configuration docs [#1298](https://github.com/puppetlabs/r10k/issues/1298)
91
+ - Remove the spec folder from gemspec [#1316](https://github.com/puppetlabs/r10k/issues/1316)
92
+
93
+ 3.15.0
94
+ ------
95
+
96
+ - Support and test Ruby 3
97
+ - Allow puppet_forge 3.x & newer versions of fast_gettext/gettext [#1302](https://github.com/puppetlabs/r10k/pull/1302)
98
+ - Allow newer cri versions [#1302](https://github.com/puppetlabs/r10k/pull/1302)
99
+ - Fix error when using install_path from environment module [#1288](https://github.com/puppetlabs/r10k/issues/1288)
100
+ - (RK-399) Do not warn about local modifications in the spec directory when `exclude_spec` is set [#1291](https://github.com/puppetlabs/r10k/pull/1291)
101
+
102
+ 3.14.2
103
+ ------
104
+
105
+ - (RK-397) Ensure `--incremental` does not skip undeployed modules [#1278](https://github.com/puppetlabs/r10k/pull/1278)
106
+
7
107
  3.14.1
8
108
  ------
9
109
 
data/CODEOWNERS CHANGED
@@ -1,2 +1 @@
1
- * @puppetlabs/puppetserver-maintainers
2
- /docker/ @puppetlabs/platform-services
1
+ * @puppetlabs/dumpling @puppetlabs/skeletor
data/Gemfile CHANGED
@@ -6,10 +6,10 @@ group :extra do
6
6
  end
7
7
 
8
8
  group :development do
9
- gem 'simplecov', '~> 0.9.1'
9
+ gem 'simplecov', '~> 0.22.0'
10
10
  gem 'ruby-prof', :platforms => :ruby
11
11
  end
12
12
 
13
- if File.exists? "#{__FILE__}.local"
13
+ if File.exist? "#{__FILE__}.local"
14
14
  eval(File.read("#{__FILE__}.local"), binding)
15
15
  end
data/README.mkd CHANGED
@@ -5,6 +5,12 @@ Puppet environment and module deployment
5
5
 
6
6
  [![Build Status](https://travis-ci.org/puppetlabs/r10k.png?branch=master)](https://travis-ci.org/puppetlabs/r10k)
7
7
 
8
+ > R10k is supported and maintained by Puppet, but we consider it to be feature
9
+ > complete and currently have no plans for any new development. We will keep it
10
+ > working within the context of Puppet Enterprise, but we cannot make any other
11
+ > maintenance promises at this time.
12
+
13
+
8
14
  Description
9
15
  -----------
10
16
 
@@ -14,17 +20,21 @@ R10k provides a general purpose toolset for deploying Puppet environments and
14
20
  modules. It implements the [Puppetfile](doc/puppetfile.mkd) format and provides a native
15
21
  implementation of Puppet [environments][workflow].
16
22
 
23
+ You might also consider [g10k](https://github.com/xorpaul/g10k) as a non-ruby
24
+ based alternative.
25
+
26
+
17
27
  Requirements
18
28
  ------------
19
29
 
20
- R10k supports the Ruby versions `>= 2.4.0`. It's tested on Ruby 2.4.0 up to
21
- Ruby 2.7.0 + Jruby.
30
+ R10k supports the Ruby versions `>= 2.6.0`. It's tested on Ruby 2.6.0 up to
31
+ Ruby 3.1.0 + Jruby.
22
32
 
23
33
  R10k requires additional components, depending on how you plan on managing
24
34
  environments and modules.
25
35
 
26
- - Installing modules from the Puppet Forge requires Puppet 5.0.0+ or later.
27
- Puppet 3 or 4 may work, but is generally not recommended.
36
+ - Installing modules from the Puppet Forge requires Puppet 7.0.0+ or later.
37
+ Puppet 5 and 6 may work, but is generally not recommended.
28
38
  - Git is required for creating environments and modules from Git
29
39
  - SVN is required for creating environments and modules from SVN
30
40
 
@@ -61,14 +71,14 @@ for installation.
61
71
  If you have more specific needs or plan on modifying r10k you can run it out of
62
72
  a git repository using Bundler for dependencies:
63
73
 
64
- git clone git://github.com/puppetlabs/r10k
74
+ git clone https://github.com/puppetlabs/r10k
65
75
  cd r10k
66
76
  bundle install
67
77
  bundle exec r10k help
68
78
 
69
79
  ### Arch Linux
70
80
 
71
- Arch Linux provides a [system package](https://archlinux.org/packages/community/any/r10k/) for r10k.
81
+ Arch Linux provides a [system package](https://archlinux.org/packages/extra/any/r10k/) for r10k.
72
82
  This is built against the [system Ruby](https://archlinux.org/packages/extra/x86_64/ruby/) (which is Ruby 3.0.2 as of 2021-08-03).
73
83
  This package is maintained by [Tim Meusel](https://github.com/bastelfreak).
74
84
 
@@ -110,24 +120,13 @@ To release a new version of the r10k gem, ensure the [changelog](CHANGELOG.mkd)
110
120
 
111
121
  By default, a patch (Z) release will be triggered. To release a new major (X) or minor (Y) version, include `#major` or `#minor` (respectively) in your commit message to trigger the appropriate release.
112
122
 
113
- NOTE: This currently only works for the default branch. If you would like to release from a different branch, please contact the [CODEOWNERS](CODEOWNERS).
114
-
115
123
  Getting help
116
124
  ------------
117
125
 
118
- * IRC: r10k has a dedicated channel, `#r10k`, on Freenode where r10k questions
119
- can be directed. Questions about r10k can frequently be asked in `#puppet` as well.
126
+ * [Puppet Community Slack](https://puppetcommunity.slack.com/)
120
127
  * Mailing lists: [puppet-users](https://groups.google.com/forum/#!forum/puppet-users)
121
128
  * Q&A: [Puppet Ask](https://ask.puppetlabs.com/questions/)
122
129
 
123
- Contributors
124
- ------------
125
-
126
- Please see the CHANGELOG for a listing of the (very awesome) contributors.
127
-
128
130
  ## Maintenance
129
131
 
130
- See [CODEOWNERS](CODEOWNERS) for active repo maintainers.
131
-
132
- Open [issues](https://github.com/puppetlabs/r10k/issues) directly in the r10k repo.
133
-
132
+ See [CODEOWNERS](CODEOWNERS) for current project owners.
@@ -12,8 +12,7 @@ Use a [Control Repo](https://docs.puppet.com/pe/latest/cmgmt_control_repo.html)
12
12
  to store your `Puppetfile`.
13
13
 
14
14
  Hiera data should be in the Control repo OR as a separate source in
15
- `r10k.yaml`. Any `hiera.yaml` in the Control repo will be ignored on a per
16
- environment basis, locating it at `/etc/puppetlabs/puppet/hiera.yaml` is prefered.
15
+ `r10k.yaml`.
17
16
 
18
17
  Each puppet module should be contained in its own independent forge module or
19
18
  repository.
@@ -1,6 +1,70 @@
1
1
  Dynamic Environment Configuration
2
2
  =================================
3
3
 
4
+ <!-- vim-markdown-toc GFM -->
5
+
6
+ * [Config file location](#config-file-location)
7
+ * [Manual configuration](#manual-configuration)
8
+ * [Automatic configuration](#automatic-configuration)
9
+ * [General options](#general-options)
10
+ * [cachedir](#cachedir)
11
+ * [proxy](#proxy)
12
+ * [pool_size](#pool_size)
13
+ * [git](#git)
14
+ * [provider](#provider)
15
+ * [proxy](#proxy-1)
16
+ * [username](#username)
17
+ * [private_key](#private_key)
18
+ * [oauth_token](#oauth_token)
19
+ * [repositories](#repositories)
20
+ * [private_key](#private_key-1)
21
+ * [oauth_token](#oauth_token-1)
22
+ * [proxy](#proxy-2)
23
+ * [forge](#forge)
24
+ * [proxy](#proxy-3)
25
+ * [baseurl](#baseurl)
26
+ * [authorization_token](#authorization_token)
27
+ * [allow_puppetfile_override](#allow_puppetfile_override)
28
+ * [Deployment options](#deployment-options)
29
+ * [postrun](#postrun)
30
+ * [sources](#sources)
31
+ * [deploy](#deploy)
32
+ * [purge\_levels](#purge_levels)
33
+ * [deployment](#deployment)
34
+ * [environment](#environment)
35
+ * [puppetfile](#puppetfile)
36
+ * [purge\_allowlist](#purge_allowlist)
37
+ * [write\_lock](#write_lock)
38
+ * [generate\_types](#generate_types)
39
+ * [puppet\_path](#puppet_path)
40
+ * [puppet\_conf](#puppet_conf)
41
+ * [exclude_spec](#exclude_spec)
42
+ * [Source options](#source-options)
43
+ * [remote](#remote)
44
+ * [basedir](#basedir)
45
+ * [prefix](#prefix)
46
+ * [prefix behaviour](#prefix-behaviour)
47
+ * [strip\_component](#strip_component)
48
+ * [strip\_component behaviour](#strip_component-behaviour)
49
+ * [ignore_branch_prefixes](#ignore_branch_prefixes)
50
+ * [ignore_branch_prefixes behaviour](#ignore_branch_prefixes-behaviour)
51
+ * [filter_command](#filter_command)
52
+ * [Examples](#examples)
53
+ * [Minimal example](#minimal-example)
54
+ * [Separate hiera data](#separate-hiera-data)
55
+ * [Multiple tenancy](#multiple-tenancy)
56
+ * [Multiple tenancy with external hieradata](#multiple-tenancy-with-external-hieradata)
57
+ * [Experimental Features](#experimental-features)
58
+ * [YAML Environment Source](#yaml-environment-source)
59
+ * [YAMLdir Environment Source](#yamldir-environment-source)
60
+ * [Exec environment Source](#exec-environment-source)
61
+ * [Environment Modules](#environment-modules)
62
+ * [Puppetfile module conflicts](#puppetfile-module-conflicts)
63
+ * [Plain Environment Type](#plain-environment-type)
64
+ * [Tarball Environment Type](#tarball-environment-type)
65
+
66
+ <!-- vim-markdown-toc -->
67
+
4
68
  R10k uses a configuration file to determine how dynamic environments should be
5
69
  deployed.
6
70
 
@@ -96,6 +160,18 @@ git:
96
160
  See the [git provider documentation](../git/providers.mkd) for more information
97
161
  regarding Git providers.
98
162
 
163
+ #### default_ref
164
+
165
+ r10k is unable to deploy a git module if no `ref` is specified. A `default_ref` can be
166
+ set in the r10k config that will become the ref a module uses if not otherwise specified. This
167
+ is the lowest priority setting for a module's `ref`. Read the [Puppetfile documentation](../puppetfile.mkd#git)
168
+ for higher priority settings to determine a module's ref.
169
+
170
+ ```yaml
171
+ git:
172
+ default_ref: main
173
+ ```
174
+
99
175
  #### proxy
100
176
 
101
177
  The 'proxy' setting allows you to set or override the global proxy setting specifically
@@ -226,7 +302,7 @@ postrun: ['/usr/bin/curl', '-F', 'deploy=done', 'http://my-app.site/endpoint']
226
302
  The postrun setting can only be set once.
227
303
 
228
304
  Occurrences of the string `$modifiedenvs` in the postrun command will be
229
- replaced with the current environment(s) being deployed.
305
+ replaced with the current environment(s) being deployed, space separated.
230
306
 
231
307
  ### sources
232
308
 
@@ -373,7 +449,7 @@ deploy:
373
449
 
374
450
  #### exclude_spec
375
451
 
376
- During module deployment, r10k's default behavior is to deploy the spec directory. Setting
452
+ During module deployment, r10k's default behavior is to delete the spec directory. Setting
377
453
  `exclude_spec` to true will deploy modules without their spec directory. This behavior
378
454
  can be configured for all modules using the `exclude_spec` setting in the r10k config.
379
455
  It can also be passed as a CLI argument for `deploy environment/module`, overriding the
@@ -398,13 +474,16 @@ specific documentation for more information.
398
474
  The 'remote' setting specifies where the source repository should be fetched
399
475
  from. It may be any valid URL that the source may check out or clone. The remote
400
476
  must be able to be fetched without any interactive input, eg usernames or
401
- passwords cannot be prompted for in order to fetch the remote.
477
+ passwords cannot be prompted for in order to fetch the remote. We support the
478
+ `git`, `ssh`, and `https` transport protocols. An SSH private key or access
479
+ token must be provided for authentication. Only `https` may be used without
480
+ authentication. See [GitHub's blog on protocol security](https://github.blog/2021-09-01-improving-git-protocol-security-github/) for more info.
402
481
 
403
482
  ```yaml
404
483
  ---
405
484
  sources:
406
485
  mysource:
407
- remote: 'git://git-server.site/my-org/main-modules'
486
+ remote: 'https://git-server.site/my-org/main-modules'
408
487
  ```
409
488
 
410
489
  ### basedir
@@ -522,7 +601,7 @@ hiera data files are kept. In this case you will specify a single source:
522
601
  ---
523
602
  sources:
524
603
  operations:
525
- remote: 'git://git-server.site/my-org/org-modules'
604
+ remote: 'https://git-server.site/my-org/org-modules'
526
605
  basedir: '/etc/puppet/environments'
527
606
  ```
528
607
 
@@ -535,10 +614,10 @@ repository and your modules in another repository, you can specify two sources:
535
614
  ---
536
615
  sources:
537
616
  operations:
538
- remote: 'git://git-server.site/my-org/org-modules'
617
+ remote: 'https://git-server.site/my-org/org-modules'
539
618
  basedir: '/etc/puppet/environments'
540
619
  hiera:
541
- remote: 'git://git-server.site/my-org/org-hiera-data'
620
+ remote: 'https://git-server.site/my-org/org-hiera-data'
542
621
  basedir: '/etc/puppet/hiera-data'
543
622
  ```
544
623
 
@@ -553,15 +632,15 @@ not the modules of other groups.
553
632
  ---
554
633
  sources:
555
634
  main:
556
- remote: 'git://git-server.site/my-org/main-modules'
635
+ remote: 'https://git-server.site/my-org/main-modules'
557
636
  basedir: '/etc/puppet/environments'
558
637
  prefix: false # Prefix defaults to false so this is only here for clarity
559
638
  qa:
560
- remote: 'git://git-server.site/my-org/qa-puppet-modules'
639
+ remote: 'https://git-server.site/my-org/qa-puppet-modules'
561
640
  basedir: '/etc/puppet/environments'
562
641
  prefix: true
563
642
  dev:
564
- remote: 'git://git-server.site/my-org/dev-puppet-modules'
643
+ remote: 'https://git-server.site/my-org/dev-puppet-modules'
565
644
  basedir: '/etc/puppet/environments'
566
645
  prefix: true
567
646
  ```
@@ -587,11 +666,11 @@ must override the `prefix` so environment folders line up in both directories:
587
666
  ---
588
667
  sources:
589
668
  app1_data:
590
- remote: 'git://git-server.site/my-org/app1-hieradata'
669
+ remote: 'https://git-server.site/my-org/app1-hieradata'
591
670
  basedir: '/etc/puppet/hieradata'
592
671
  prefix: "app1"
593
672
  app1_modules:
594
- remote: 'git://git-server.site/my-org/app1-puppet-modules'
673
+ remote: 'https://git-server.site/my-org/app1-puppet-modules'
595
674
  basedir: '/etc/puppet/environments'
596
675
  prefix: "app1"
597
676
  ```
@@ -84,6 +84,10 @@ explicit, static version. These are released Forge versions, or Git modules usin
84
84
  the `:tag`, or `:commit` keys. Git `:ref`s containing only the full 40 character
85
85
  commit SHA will also be treated as static versions. Then invoke a deploy with:
86
86
 
87
+ There may be issues with deployments apparently successful after an initial errored
88
+ deployment. If this is happening, try running without the `--incremental` flag
89
+ to run a full deployment.
90
+
87
91
  r10k deploy environment production --modules --incremental
88
92
 
89
93
  - - -
@@ -38,7 +38,7 @@ mod "puppetlabs/ntp"
38
38
 
39
39
  # Your modules:
40
40
  mod "custom_facts",
41
- :git => "git://github.com/user/custom_facts"
41
+ :git => "https://github.com/user/custom_facts"
42
42
  ```
43
43
 
44
44
  For any existing modules that you branched, add a reference to the new branch
@@ -46,7 +46,7 @@ name. Don't forget the comma at the end of the *:git* value.
46
46
 
47
47
  ```
48
48
  mod "other_module",
49
- :git => "git://github.com/user/other_module",
49
+ :git => "https://github.com/user/other_module",
50
50
  :ref => "feature"
51
51
  ```
52
52
 
@@ -159,7 +159,7 @@ the *:git* value.
159
159
 
160
160
  ```
161
161
  mod "other_module",
162
- :git => "git://github.com/user/other_module",
162
+ :git => "https://github.com/user/other_module",
163
163
  :ref => "feature"
164
164
  ```
165
165
 
data/doc/faq.mkd CHANGED
@@ -17,7 +17,7 @@ modify. For example creating the script:
17
17
 
18
18
  ```
19
19
  $ cat /usr/local/bin/generate-puppet-types.sh
20
- !#/bin/bash
20
+ #!/bin/bash
21
21
 
22
22
  for environment in $1; do
23
23
  /opt/puppetlabs/bin/puppet generate types --environment $environment
data/doc/puppetfile.mkd CHANGED
@@ -135,6 +135,12 @@ operations when updating the repo, which can speed up install times. When
135
135
  Module versions can also be specified using `:branch` to track a specific
136
136
  branch reference.
137
137
 
138
+ In r10k 3.x the default branch was hardcoded to `master`; in 4.x that was
139
+ removed. A `default_ref` can be specified in the r10k config to
140
+ to mimic that old behavior, but it is recommended to set the ref on a
141
+ per-module basis in the Puppetfile. Read [here](dynamic-environments/configuration.mkd#default_ref) for more info
142
+ on the `default_ref` setting.
143
+
138
144
  #### Examples
139
145
 
140
146
  ```ruby
@@ -327,15 +333,15 @@ on managing internal and external modules in the same directory.
327
333
 
328
334
  ### Per-Item spec dir deployment
329
335
 
330
- During deployment, r10k's default behavior is to deploy the spec directory. The
336
+ During deployment, r10k's default behavior is to delete the spec directory. The
331
337
  Puppetfile can modify this per module, overriding settings from the default
332
- r10k config. The following example sets the module to not deploy the spec
338
+ r10k config. The following example sets the module to deploy the spec
333
339
  directory.
334
340
 
335
341
  ```
336
342
  mod 'apache',
337
343
  :git => 'git@github.com:puppetlabs/puppetlabs-apache.git',
338
- :exclude_spec => true
344
+ :exclude_spec => false
339
345
  ```
340
346
 
341
347
  ### Per-Item Install Path
data/integration/Gemfile CHANGED
@@ -10,10 +10,9 @@ def location_for(place, fake_version = nil)
10
10
  end
11
11
  end
12
12
 
13
- gem 'beaker', *location_for(ENV['BEAKER_VERSION'] || '~> 4.5')
14
- gem 'beaker-pe', '~> 2.0'
15
- gem 'beaker-answers'
13
+ gem 'beaker', *location_for(ENV['BEAKER_VERSION'] || '~> 4.40')
14
+ gem 'beaker-pe', '~> 3.0'
16
15
  gem 'beaker-hostgenerator', *location_for(ENV['BEAKER_HOSTGENERATOR_VERSION'] || '~> 1.1')
17
16
  gem 'beaker-abs', *location_for(ENV['BEAKER_ABS_VERSION'] || '~> 0.4')
18
- gem 'rototiller', '= 0.1.0'
17
+ gem 'rototiller', '= 1.0'
19
18
  gem 'beaker-qa-i18n'