ceedling 1.2.0 → 1.2.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 (157) hide show
  1. checksums.yaml +4 -4
  2. data/GIT_COMMIT_SHA +1 -1
  3. data/README.md +47 -50
  4. data/Rakefile +3 -2
  5. data/bin/app_cfg.rb +21 -0
  6. data/bin/cli_handler.rb +7 -1
  7. data/bin/cli_helper.rb +5 -0
  8. data/docs/Changelog.md +10 -0
  9. data/docs/overrides/main.html +11 -8
  10. data/lib/ceedling/config/configurator.rb +5 -2
  11. data/lib/ceedling/config/configurator_setup.rb +26 -15
  12. data/lib/ceedling/file_wrapper.rb +56 -26
  13. data/lib/ceedling/rake_app/test_task_name.rb +29 -0
  14. data/lib/ceedling/rakefile.rb +1 -0
  15. data/lib/ceedling/rakefiles/tests/rules_tests.rake +3 -20
  16. data/lib/ceedling/rakefiles/tests/rules_tests_generate.rake +4 -30
  17. data/lib/ceedling/setupinator.rb +4 -0
  18. data/lib/ceedling/test_invoker/test_build_executor.rb +18 -1
  19. data/lib/version.rb +1 -1
  20. data/plugins/bullseye/bullseye.rake +6 -9
  21. data/plugins/gcov/gcov.rake +6 -9
  22. data/plugins/sanitize/sanitize.rake +6 -6
  23. data/plugins/valgrind/valgrind.rake +6 -6
  24. data/site-local/404.html +6 -20
  25. data/site-local/assets/javascripts/{bundle.d7400e89.min.js → bundle.c21346df.min.js} +3 -3
  26. data/site-local/assets/javascripts/{bundle.d7400e89.min.js.map → bundle.c21346df.min.js.map} +2 -2
  27. data/site-local/assets/javascripts/workers/{search.2c215733.min.js → search.a7633da7.min.js} +2 -2
  28. data/site-local/assets/javascripts/workers/{search.2c215733.min.js.map → search.a7633da7.min.js.map} +1 -1
  29. data/site-local/assets/stylesheets/main.57a0d79d.min.css +6 -0
  30. data/site-local/assets/stylesheets/main.57a0d79d.min.css.map +1 -0
  31. data/site-local/assets/stylesheets/palette.fb2fffe2.min.css +4 -0
  32. data/site-local/assets/stylesheets/palette.fb2fffe2.min.css.map +1 -0
  33. data/site-local/configuration/environment-vars.html +6 -20
  34. data/site-local/configuration/global-collections.html +6 -20
  35. data/site-local/configuration/index.html +6 -20
  36. data/site-local/configuration/loading.html +6 -20
  37. data/site-local/configuration/mixins.html +10 -24
  38. data/site-local/configuration/parallel-builds.html +6 -20
  39. data/site-local/configuration/project-file.html +8 -22
  40. data/site-local/configuration/reference/cexception.html +6 -20
  41. data/site-local/configuration/reference/cmock.html +6 -20
  42. data/site-local/configuration/reference/defines.html +16 -30
  43. data/site-local/configuration/reference/environment.html +10 -24
  44. data/site-local/configuration/reference/extension.html +6 -20
  45. data/site-local/configuration/reference/files.html +13 -27
  46. data/site-local/configuration/reference/flags.html +13 -27
  47. data/site-local/configuration/reference/index.html +6 -20
  48. data/site-local/configuration/reference/libraries.html +6 -20
  49. data/site-local/configuration/reference/mixins.html +6 -20
  50. data/site-local/configuration/reference/partials.html +6 -20
  51. data/site-local/configuration/reference/paths.html +11 -25
  52. data/site-local/configuration/reference/plugins.html +6 -20
  53. data/site-local/configuration/reference/project.html +16 -30
  54. data/site-local/configuration/reference/release-build.html +6 -20
  55. data/site-local/configuration/reference/test-build.html +6 -20
  56. data/site-local/configuration/reference/test-runner.html +6 -20
  57. data/site-local/configuration/reference/tools.html +18 -32
  58. data/site-local/configuration/reference/unity.html +6 -20
  59. data/site-local/configuration/which-ceedling.html +6 -20
  60. data/site-local/development/index.html +6 -20
  61. data/site-local/development/plugins/configuration.html +6 -20
  62. data/site-local/development/plugins/index.html +6 -20
  63. data/site-local/development/plugins/plugin-subclass.html +54 -68
  64. data/site-local/development/plugins/rake-tasks.html +8 -22
  65. data/site-local/development/releases.html +79 -28
  66. data/site-local/development/workflow.html +14 -28
  67. data/site-local/getting-started/builds.html +6 -20
  68. data/site-local/getting-started/command-line.html +6 -20
  69. data/site-local/getting-started/example-projects/cipher-quest.html +6 -20
  70. data/site-local/getting-started/example-projects/index.html +6 -20
  71. data/site-local/getting-started/example-projects/temp-sensor.html +6 -20
  72. data/site-local/getting-started/example-projects/wondrous-forest.html +6 -20
  73. data/site-local/getting-started/index.html +6 -20
  74. data/site-local/getting-started/installation.html +6 -20
  75. data/site-local/getting-started/quick-start.html +6 -20
  76. data/site-local/help.html +6 -20
  77. data/site-local/index.html +11 -24
  78. data/site-local/overview/build-system.html +6 -20
  79. data/site-local/overview/index.html +6 -20
  80. data/site-local/overview/test-environments.html +6 -20
  81. data/site-local/overview/tools-and-frameworks.html +6 -20
  82. data/site-local/plugins/beep.html +6 -20
  83. data/site-local/plugins/bullseye/index.html +13 -24
  84. data/site-local/plugins/bullseye/licensing.html +14 -28
  85. data/site-local/plugins/command-hooks.html +8 -22
  86. data/site-local/plugins/compile-commands-json-db.html +6 -20
  87. data/site-local/plugins/cppcheck.html +8 -22
  88. data/site-local/plugins/dependencies.html +10 -24
  89. data/site-local/plugins/fff.html +7 -21
  90. data/site-local/plugins/gcov/examples.html +7 -21
  91. data/site-local/plugins/gcov/gcovr.html +7 -21
  92. data/site-local/plugins/gcov/index.html +6 -20
  93. data/site-local/plugins/gcov/overview.html +9 -20
  94. data/site-local/plugins/gcov/reportgenerator.html +9 -23
  95. data/site-local/plugins/gcov/reporting.html +6 -20
  96. data/site-local/plugins/gcov/setup.html +6 -20
  97. data/site-local/plugins/gcov/tool-versions.html +6 -20
  98. data/site-local/plugins/gcov/troubleshooting.html +10 -24
  99. data/site-local/plugins/index.html +6 -20
  100. data/site-local/plugins/module-generator.html +21 -35
  101. data/site-local/plugins/report-build-warnings-log.html +53 -67
  102. data/site-local/plugins/report-tests-gtestlike-stdout.html +6 -20
  103. data/site-local/plugins/report-tests-ide-stdout.html +43 -57
  104. data/site-local/plugins/report-tests-log-factory.html +50 -64
  105. data/site-local/plugins/report-tests-pretty-stdout.html +7 -21
  106. data/site-local/plugins/report-tests-raw-output-log.html +6 -20
  107. data/site-local/plugins/report-tests-teamcity-stdout.html +16 -30
  108. data/site-local/plugins/sanitize.html +54 -64
  109. data/site-local/plugins/valgrind.html +46 -56
  110. data/site-local/project/index.html +6 -20
  111. data/site-local/project/release-history.html +6 -20
  112. data/site-local/project/sbom.html +6 -20
  113. data/site-local/project/upgrade.html +6 -20
  114. data/site-local/reference/build-directives.html +6 -20
  115. data/site-local/reference/command-line.html +6 -20
  116. data/site-local/reference/environment-vars.html +6 -20
  117. data/site-local/reference/gcov-plugin.html +6 -20
  118. data/site-local/reference/global-collections.html +6 -20
  119. data/site-local/reference/index.html +6 -20
  120. data/site-local/reference/partials-macros.html +6 -20
  121. data/site-local/reference/project-configuration.html +6 -20
  122. data/site-local/sitemap.xml.gz +0 -0
  123. data/site-local/snapshot/examples/cipher_quest/index.html +16 -30
  124. data/site-local/snapshot/examples/temp_sensor/index.html +8 -22
  125. data/site-local/snapshot/examples/wondrous_forest/index.html +6 -20
  126. data/site-local/testing-guide/build-directives.html +14 -28
  127. data/site-local/testing-guide/conventions.html +13 -27
  128. data/site-local/testing-guide/frameworks.html +11 -25
  129. data/site-local/testing-guide/index.html +6 -20
  130. data/site-local/testing-guide/partials/configuration.html +8 -22
  131. data/site-local/testing-guide/partials/conventions.html +8 -22
  132. data/site-local/testing-guide/partials/directives.html +16 -30
  133. data/site-local/testing-guide/partials/example.html +14 -28
  134. data/site-local/testing-guide/partials/index.html +6 -20
  135. data/site-local/testing-guide/partials/overview.html +6 -20
  136. data/site-local/testing-guide/partials/variables.html +11 -25
  137. data/site-local/testing-guide/test-cases.html +13 -27
  138. data/site-local/testing-guide/test-sample.html +12 -26
  139. data/site-local/testing-guide/test-suite-anatomy.html +6 -20
  140. data/spec/integration/configurator_pipeline_spec.rb +10 -0
  141. data/spec/integration/dependencies/dependency_tracker_core_spec.rb +40 -0
  142. data/spec/integration/rake_task_registry_plugins_spec.rb +95 -0
  143. data/spec/integration/vendor_copy_transient_io_retry_spec.rb +122 -74
  144. data/spec/support/integration/configurator_integration_helper.rb +4 -1
  145. data/spec/units/bin/app_cfg_spec.rb +10 -0
  146. data/spec/units/bin/cli_handler_spec.rb +2 -1
  147. data/spec/units/bin/cli_helper_spec.rb +10 -0
  148. data/spec/units/config/configurator_setup_spec.rb +61 -43
  149. data/spec/units/config/configurator_spec.rb +10 -1
  150. data/spec/units/file_wrapper_spec.rb +66 -27
  151. data/spec/units/rake_app/test_task_name_spec.rb +47 -0
  152. data/spec/units/test_build_executor_spec.rb +42 -2
  153. metadata +16 -11
  154. data/site-local/assets/stylesheets/main.ec1eaa64.min.css +0 -1
  155. data/site-local/assets/stylesheets/main.ec1eaa64.min.css.map +0 -1
  156. data/site-local/assets/stylesheets/palette.ab4e12ef.min.css +0 -1
  157. data/site-local/assets/stylesheets/palette.ab4e12ef.min.css.map +0 -1
@@ -350,6 +350,11 @@ class TestBuildExecutor
350
350
  # (not reusing it) so a tool-only change reruns the fixture without also
351
351
  # marking the executable itself stale and forcing an unnecessary relink.
352
352
  #
353
+ # The command line test case filters (--test-case, --exclude_test_case) are a fourth.
354
+ # When :test_runner ↳ :cmdline_args is on, as any :use_backtrace other than :none makes
355
+ # it, a filtered and an unfiltered executable are identical, and only the filter tells
356
+ # one run's results from another's. See fixture_meta.
357
+ #
353
358
  # The target itself is a dedicated marker file, not either outcome-dependent
354
359
  # results file (.pass/.fail) -- which of those two actually gets written
355
360
  # depends on whether the test passes, so neither is guaranteed to exist after
@@ -404,7 +409,7 @@ class TestBuildExecutor
404
409
 
405
410
  @dependinator.register(
406
411
  fixture_target, files: [testable.executable],
407
- meta: { tools: [fixture_tool], use_backtrace: use_backtrace, backtrace_tools: backtrace_tools }
412
+ meta: fixture_meta( fixture_tool: fixture_tool, use_backtrace: use_backtrace, backtrace_tools: backtrace_tools )
408
413
  )
409
414
 
410
415
  run_now = testable.executable_rebuilt || force_rerun || @dependinator.stale?( fixture_target )
@@ -466,6 +471,18 @@ class TestBuildExecutor
466
471
  # Helper methods
467
472
  # -----------------------------------------------------------------------
468
473
 
474
+ # What a test fixture's run depends on besides its executable. An unset filter, nil or
475
+ # empty, is one value, so an unfiltered run keeps a stable key.
476
+ def fixture_meta(fixture_tool:, use_backtrace:, backtrace_tools:)
477
+ return {
478
+ tools: [fixture_tool],
479
+ use_backtrace: use_backtrace,
480
+ backtrace_tools: backtrace_tools,
481
+ include_test_case: @configurator.include_test_case.to_s,
482
+ exclude_test_case: @configurator.exclude_test_case.to_s
483
+ }
484
+ end
485
+
469
486
  def generate_executable(context:, build_path:, executable:, objects:, flags:, lib_args:, lib_paths:, tool:)
470
487
  begin
471
488
  @generator.generate_executable_file(
data/lib/version.rb CHANGED
@@ -21,7 +21,7 @@ module Ceedling
21
21
  # Target version for the current release cycle. Maintained by hand, one edit
22
22
  # per minor or major cycle. Never edited to match a release tag. The release
23
23
  # pipeline rewrites this line from the tag that triggered it.
24
- BASE = '1.2.0'
24
+ BASE = '1.2.1'
25
25
 
26
26
  # Marker for a build the release pipeline did not produce. That pipeline
27
27
  # empties this line, so a published gem reports a bare version while a local
@@ -38,11 +38,12 @@ namespace BULLSEYE_SYM do
38
38
  @ceedling[:bullseye].process_untested_sources( sources:COLLECTION_ALL_SOURCE )
39
39
  end
40
40
 
41
- desc 'Run single test w/ coverage ([*] test or source file name, no path).'
41
+ desc 'Run single test w/ coverage ([*] test or source file name, with optional path).'
42
42
  task :* do
43
43
  message = "Oops! '#{BULLSEYE_ROOT_NAME}:*' isn't a real task. " \
44
- "Use a real test or source file name (no path) in place of the wildcard.\n" \
45
- "Example: `ceedling #{BULLSEYE_ROOT_NAME}:foo.c`"
44
+ "Use a real test or source file name in place of the wildcard, " \
45
+ "adding as much of its path as needed to identify one file among any same-named tests.\n" \
46
+ "Example: `ceedling #{BULLSEYE_ROOT_NAME}:foo.c` or `ceedling #{BULLSEYE_ROOT_NAME}:unit/foo.c`"
46
47
 
47
48
  @ceedling[:loginator].log( message, Verbosity::ERRORS )
48
49
  end
@@ -83,12 +84,8 @@ namespace BULLSEYE_SYM do
83
84
  # Use a rule to increase efficiency for large projects
84
85
  rule(/^#{BULLSEYE_TASK_ROOT}\S+$/ => [ # bullseye test tasks by regex
85
86
  proc do |task_name|
86
- # Yield clean test name => Strip the task string, remove Rake test task prefix, and remove any code file extension
87
- test = task_name.strip().sub(/^#{BULLSEYE_TASK_ROOT}/, '')
88
- EXTENSION_SOURCE.each { |ext| test = test.chomp( ext ) }
89
-
90
- # Ensure the test name begins with a test name prefix
91
- test = PROJECT_TEST_FILE_PREFIX + test if not (test.start_with?( PROJECT_TEST_FILE_PREFIX ))
87
+ # Any directory typed ahead of the name is kept. See TestTaskName.
88
+ test = TestTaskName.test_name( task_name, root: BULLSEYE_TASK_ROOT )
92
89
 
93
90
  # Provide the filepath for the target test task back to the Rake task
94
91
  @ceedling[:file_finder].find_test_file_from_name( test )
@@ -38,11 +38,12 @@ namespace GCOV_SYM do
38
38
  @ceedling[:gcov].process_untested_sources( sources:COLLECTION_ALL_SOURCE )
39
39
  end
40
40
 
41
- desc 'Run single test w/ coverage ([*] test or source file name, no path).'
41
+ desc 'Run single test w/ coverage ([*] test or source file name, with optional path).'
42
42
  task :* do
43
43
  message = "Oops! '#{GCOV_ROOT_NAME}:*' isn't a real task. " \
44
- "Use a real test or source file name (no path) in place of the wildcard.\n" \
45
- "Example: `ceedling #{GCOV_ROOT_NAME}:foo.c`"
44
+ "Use a real test or source file name in place of the wildcard, " \
45
+ "adding as much of its path as needed to identify one file among any same-named tests.\n" \
46
+ "Example: `ceedling #{GCOV_ROOT_NAME}:foo.c` or `ceedling #{GCOV_ROOT_NAME}:unit/foo.c`"
46
47
 
47
48
  @ceedling[:loginator].log( message, Verbosity::ERRORS )
48
49
  end
@@ -83,12 +84,8 @@ namespace GCOV_SYM do
83
84
  # Use a rule to increase efficiency for large projects
84
85
  rule(/^#{GCOV_TASK_ROOT}\S+$/ => [ # gcov test tasks by regex
85
86
  proc do |task_name|
86
- # Yield clean test name => Strip the task string, remove Rake test task prefix, and remove any code file extension
87
- test = task_name.strip().sub(/^#{GCOV_TASK_ROOT}/, '')
88
- EXTENSION_SOURCE.each { |ext| test = test.chomp( ext ) }
89
-
90
- # Ensure the test name begins with a test name prefix
91
- test = PROJECT_TEST_FILE_PREFIX + test if not (test.start_with?( PROJECT_TEST_FILE_PREFIX ))
87
+ # Any directory typed ahead of the name is kept. See TestTaskName.
88
+ test = TestTaskName.test_name( task_name, root: GCOV_TASK_ROOT )
92
89
 
93
90
  # Provide the filepath for the target test task back to the Rake task
94
91
  @ceedling[:file_finder].find_test_file_from_name( test )
@@ -47,11 +47,12 @@ namespace SANITIZE_SYM do
47
47
  )
48
48
  end
49
49
 
50
- desc "Run single sanitized test ([*] test or source file name, no path)."
50
+ desc "Run single sanitized test ([*] test or source file name, with optional path)."
51
51
  task :* do
52
52
  message = "Oops! '#{SANITIZE_ROOT_NAME}:*' isn't a real task. " +
53
- "Use a real test or source file name (no path) in place of the wildcard.\n" +
54
- "Example: `ceedling #{SANITIZE_ROOT_NAME}:foo.c`"
53
+ "Use a real test or source file name in place of the wildcard, " +
54
+ "adding as much of its path as needed to identify one file among any same-named tests.\n" +
55
+ "Example: `ceedling #{SANITIZE_ROOT_NAME}:foo.c` or `ceedling #{SANITIZE_ROOT_NAME}:unit/foo.c`"
55
56
  @ceedling[:loginator].log( message, Verbosity::ERRORS )
56
57
  end
57
58
 
@@ -92,9 +93,8 @@ end
92
93
  # Use a rule to handle dynamic per-file tasks: sanitize:foo → build and run foo with sanitizers
93
94
  rule(/^#{SANITIZE_TASK_ROOT}\S+$/ => [
94
95
  proc do |task_name|
95
- test = task_name.strip().sub(/^#{SANITIZE_TASK_ROOT}/, '')
96
- EXTENSION_SOURCE.each { |ext| test = test.chomp(ext) }
97
- test = PROJECT_TEST_FILE_PREFIX + test unless test.start_with?(PROJECT_TEST_FILE_PREFIX)
96
+ # Any directory typed ahead of the name is kept. See TestTaskName.
97
+ test = TestTaskName.test_name( task_name, root: SANITIZE_TASK_ROOT )
98
98
  @ceedling[:file_finder].find_test_file_from_name(test)
99
99
  end
100
100
  ]) do |test|
@@ -48,11 +48,12 @@ namespace VALGRIND_SYM do
48
48
  )
49
49
  end
50
50
 
51
- desc "Run single Valgrind test ([*] test or source file name, no path)."
51
+ desc "Run single Valgrind test ([*] test or source file name, with optional path)."
52
52
  task :* do
53
53
  message = "Oops! '#{VALGRIND_ROOT_NAME}:*' isn't a real task. " +
54
- "Use a real test or source file name (no path) in place of the wildcard.\n" +
55
- "Example: `ceedling #{VALGRIND_ROOT_NAME}:foo.c`"
54
+ "Use a real test or source file name in place of the wildcard, " +
55
+ "adding as much of its path as needed to identify one file among any same-named tests.\n" +
56
+ "Example: `ceedling #{VALGRIND_ROOT_NAME}:foo.c` or `ceedling #{VALGRIND_ROOT_NAME}:unit/foo.c`"
56
57
  @ceedling[:loginator].log( message, Verbosity::ERRORS )
57
58
  end
58
59
 
@@ -93,9 +94,8 @@ end
93
94
  # Use a rule to handle dynamic per-file tasks: valgrind:foo → build and run foo under Valgrind
94
95
  rule(/^#{VALGRIND_TASK_ROOT}\S+$/ => [
95
96
  proc do |task_name|
96
- test = task_name.strip().sub(/^#{VALGRIND_TASK_ROOT}/, '')
97
- EXTENSION_SOURCE.each { |ext| test = test.chomp(ext) }
98
- test = PROJECT_TEST_FILE_PREFIX + test unless test.start_with?(PROJECT_TEST_FILE_PREFIX)
97
+ # Any directory typed ahead of the name is kept. See TestTaskName.
98
+ test = TestTaskName.test_name( task_name, root: VALGRIND_TASK_ROOT )
99
99
  @ceedling[:file_finder].find_test_file_from_name(test)
100
100
  end
101
101
  ]) do |test|
data/site-local/404.html CHANGED
@@ -17,7 +17,7 @@
17
17
 
18
18
 
19
19
  <link rel="icon" href="/assets/images/favicon.png">
20
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.7">
20
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.8.0">
21
21
 
22
22
 
23
23
 
@@ -25,10 +25,10 @@
25
25
 
26
26
 
27
27
 
28
- <link rel="stylesheet" href="/assets/stylesheets/main.ec1eaa64.min.css">
28
+ <link rel="stylesheet" href="/assets/stylesheets/main.57a0d79d.min.css">
29
29
 
30
30
 
31
- <link rel="stylesheet" href="/assets/stylesheets/palette.ab4e12ef.min.css">
31
+ <link rel="stylesheet" href="/assets/stylesheets/palette.fb2fffe2.min.css">
32
32
 
33
33
 
34
34
 
@@ -80,30 +80,16 @@
80
80
  </div>
81
81
  <div data-md-component="announce">
82
82
 
83
- <aside class="md-banner">
84
- <div class="md-banner__inner md-grid md-typeset">
85
-
86
-
87
-
88
-
89
- </div>
90
-
91
- </aside>
92
-
93
83
  </div>
94
84
 
95
85
  <div data-md-color-scheme="default" data-md-component="outdated" hidden>
96
86
 
97
87
  <aside class="md-banner md-banner--warning">
98
88
  <div class="md-banner__inner md-grid md-typeset">
99
-
100
-
101
- You are not viewing the latest version.
89
+ You are not viewing the latest version.
102
90
  <a href="..//">
103
91
  <strong>Click here to go to latest.</strong>
104
92
  </a>
105
-
106
-
107
93
  </div>
108
94
  <script>var el=document.querySelector("[data-md-component=outdated]"),base=new URL("/"),outdated=__md_get("__outdated",sessionStorage,base);!0===outdated&&el&&(el.hidden=!1)</script>
109
95
  </aside>
@@ -4256,10 +4242,10 @@
4256
4242
 
4257
4243
 
4258
4244
 
4259
- <script id="__config" type="application/json">{"annotate": null, "base": "/", "features": ["navigation.tabs", "navigation.sections", "navigation.top", "navigation.indexes", "navigation.path", "search.suggest", "search.highlight", "content.code.copy", "content.code.annotate"], "search": "/assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"default": "latest", "provider": "mike"}}</script>
4245
+ <script id="__config" type="application/json">{"annotate": null, "base": "/", "features": ["navigation.tabs", "navigation.sections", "navigation.top", "navigation.indexes", "navigation.path", "search.suggest", "search.highlight", "content.code.copy", "content.code.annotate"], "search": "/assets/javascripts/workers/search.a7633da7.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"default": "latest", "provider": "mike"}}</script>
4260
4246
 
4261
4247
 
4262
- <script src="/assets/javascripts/bundle.d7400e89.min.js"></script>
4248
+ <script src="/assets/javascripts/bundle.c21346df.min.js"></script>
4263
4249
 
4264
4250
 
4265
4251
  </body>