ceedling 1.2.1 → 1.2.2
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.
- checksums.yaml +4 -4
- data/GIT_COMMIT_SHA +1 -1
- data/README.md +11 -9
- data/Rakefile +2 -1
- data/assets/features/ceedling +1 -1
- data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_typo.c +14 -0
- data/assets/fixtures/tests_with_duplicate_test_names/test_foo.c +21 -0
- data/bin/actionator.rb +6 -12
- data/bin/app_cfg.rb +14 -1
- data/bin/ceedling +13 -3
- data/bin/cli.rb +25 -6
- data/bin/cli_handler.rb +113 -73
- data/bin/cli_helper.rb +51 -78
- data/bin/installation_selector.rb +81 -0
- data/bin/launchinator.rb +69 -0
- data/bin/mixin_resolvinator.rb +26 -36
- data/bin/objects.yml +13 -0
- data/bin/path_validator.rb +25 -29
- data/bin/versionator.rb +47 -48
- data/ceedling.gemspec +19 -15
- data/docs/BreakingChanges.md +70 -1
- data/docs/Changelog.md +74 -3
- data/docs/KnownIssues.md +90 -4
- data/docs/ReleaseNotes.md +13 -0
- data/lib/ceedling/build_log_writer.rb +33 -0
- data/lib/ceedling/config/build_root_policy.rb +70 -0
- data/lib/ceedling/config/configurator.rb +14 -16
- data/lib/ceedling/config/configurator_builder.rb +58 -28
- data/lib/ceedling/config/configurator_paths_validator.rb +179 -0
- data/lib/ceedling/config/configurator_plugins.rb +1 -1
- data/lib/ceedling/config/configurator_setup.rb +15 -28
- data/lib/ceedling/config/configurator_validator.rb +1 -110
- data/lib/ceedling/defaults.rb +4 -4
- data/lib/ceedling/dependencies/README.md +18 -16
- data/lib/ceedling/dependencies/dependency_cache_store.rb +20 -3
- data/lib/ceedling/dependencies/dependency_hasher.rb +35 -1
- data/lib/ceedling/filename_extension.rb +7 -1
- data/lib/ceedling/filesystem/FILE_TREE.md +253 -0
- data/lib/ceedling/filesystem/PATH_HANDLING.md +304 -0
- data/lib/ceedling/filesystem/README.md +41 -0
- data/lib/ceedling/filesystem/build_subpath.rb +102 -0
- data/lib/ceedling/filesystem/destination_collision.rb +25 -0
- data/lib/ceedling/{file_finder.rb → filesystem/file_finder.rb} +159 -104
- data/lib/ceedling/{file_finder_helper.rb → filesystem/file_finder_helper.rb} +36 -31
- data/lib/ceedling/filesystem/file_path_collection_utils.rb +183 -0
- data/lib/ceedling/{file_path_utils.rb → filesystem/file_path_utils.rb} +108 -97
- data/lib/ceedling/{file_system_wrapper.rb → filesystem/file_system_wrapper.rb} +6 -5
- data/lib/ceedling/filesystem/file_tree.rb +241 -0
- data/lib/ceedling/{file_wrapper.rb → filesystem/file_wrapper.rb} +45 -38
- data/lib/ceedling/filesystem/path_exclusions.rb +30 -0
- data/lib/ceedling/{path_matcher.rb → filesystem/path_matcher.rb} +27 -23
- data/lib/ceedling/{path_mirror.rb → filesystem/path_mirror.rb} +19 -18
- data/lib/ceedling/filesystem/path_spellings.rb +55 -0
- data/lib/ceedling/filesystem/project_paths.rb +184 -0
- data/lib/ceedling/filesystem/working_dir.rb +40 -0
- data/lib/ceedling/generators/generator.rb +5 -6
- data/lib/ceedling/generators/generator_partials.rb +1 -1
- data/lib/ceedling/generators/generator_test_results_backtrace.rb +7 -7
- data/lib/ceedling/handoff.rb +121 -0
- data/lib/ceedling/includes/include_factory.rb +3 -3
- data/lib/ceedling/includes/include_pathinator.rb +67 -10
- data/lib/ceedling/includes/includes.rb +1 -1
- data/lib/ceedling/installation.rb +92 -0
- data/lib/ceedling/library_resolver.rb +99 -0
- data/lib/ceedling/objects.yml +23 -2
- data/lib/ceedling/partials/partializer.rb +4 -4
- data/lib/ceedling/partials/partializer_config.rb +3 -1
- data/lib/ceedling/plugins/report_log_writer_plugin.rb +3 -5
- data/lib/ceedling/preprocess/preprocessinator_file_assembler.rb +1 -1
- data/lib/ceedling/preprocess/preprocessinator_includes_handler.rb +1 -1
- data/lib/ceedling/preprocess/preprocessinator_line_marker_includes_extractor.rb +1 -1
- data/lib/ceedling/rake_app/rakefile_component_resolver.rb +10 -17
- data/lib/ceedling/rakefile.rb +15 -1
- data/lib/ceedling/rakefiles/base/tasks_base.rake +1 -1
- data/lib/ceedling/rakefiles/release/rules_release.rake +4 -7
- data/lib/ceedling/release_invoker/release_build_executor.rb +33 -44
- data/lib/ceedling/release_invoker/release_build_planner.rb +14 -6
- data/lib/ceedling/reportinator.rb +3 -4
- data/lib/ceedling/setupinator.rb +94 -90
- data/lib/ceedling/test_context_extractor.rb +5 -1
- data/lib/ceedling/test_invoker/PIPELINE.md +9 -7
- data/lib/ceedling/test_invoker/mock_locator.rb +60 -2
- data/lib/ceedling/test_invoker/partials_manager.rb +12 -0
- data/lib/ceedling/test_invoker/standin_headerinator.rb +22 -13
- data/lib/ceedling/test_invoker/test_build_executor.rb +24 -40
- data/lib/ceedling/test_invoker/test_build_planner.rb +37 -18
- data/lib/ceedling/test_invoker/test_build_setup.rb +17 -12
- data/lib/ceedling/test_invoker/test_build_validations.rb +16 -31
- data/lib/ceedling/test_invoker/test_file_preprocessinator.rb +1 -1
- data/lib/ceedling/test_invoker/test_invoker.rb +6 -1
- data/lib/ceedling/test_invoker/test_pipeline_helpers.rb +1 -1
- data/lib/ceedling/test_invoker/test_source_file_directive_resolver.rb +40 -20
- data/lib/ceedling/tool_executor.rb +9 -3
- data/lib/ceedling/yaml_wrapper.rb +3 -2
- data/lib/version.rb +1 -1
- data/plugins/bullseye/config/defaults_bullseye.rb +1 -1
- data/plugins/bullseye/lib/bullseye.rb +9 -7
- data/plugins/cppcheck/config/defaults_cppcheck.rb +1 -1
- data/plugins/dependencies/config/defaults.yml +6 -6
- data/plugins/dependencies/dependencies.rake +4 -1
- data/plugins/dependencies/lib/dependencies.rb +18 -8
- data/plugins/dependencies/lib/dependency_spec.rb +17 -5
- data/plugins/fff/lib/fff.rb +45 -39
- data/plugins/fff/spec/fff_cmock_wrapper_spec.rb +128 -0
- data/plugins/gcov/config/defaults_gcov.rb +1 -1
- data/plugins/gcov/lib/console_reportinator.rb +4 -18
- data/plugins/gcov/lib/gcov.rb +9 -2
- data/plugins/gcov/lib/gcovr_reportinator.rb +8 -40
- data/plugins/gcov/lib/gcovr_thresholds.rb +74 -0
- data/plugins/gcov/lib/reportgenerator_reportinator.rb +1 -1
- data/plugins/module_generator/lib/module_generator.rb +3 -3
- data/plugins/report_tests_teamcity_stdout/lib/report_tests_teamcity_stdout.rb +53 -80
- data/plugins/sanitize/lib/sanitize_records.rb +3 -6
- data/plugins/valgrind/lib/valgrind.rb +14 -7
- data/site-local/configuration/reference/cmock.html +2 -1
- data/site-local/configuration/reference/files.html +9 -3
- data/site-local/configuration/reference/libraries.html +21 -3
- data/site-local/configuration/reference/paths.html +29 -6
- data/site-local/configuration/reference/project.html +17 -7
- data/site-local/configuration/reference/release-build.html +2 -0
- data/site-local/configuration/reference/tools.html +9 -0
- data/site-local/configuration/which-ceedling.html +377 -17
- data/site-local/development/releases.html +5 -1
- data/site-local/development/workflow.html +48 -43
- data/site-local/getting-started/builds.html +2 -0
- data/site-local/getting-started/command-line.html +56 -4
- data/site-local/plugins/dependencies.html +6 -3
- data/site-local/plugins/fff.html +42 -11
- data/site-local/plugins/gcov/gcovr.html +15 -12
- data/site-local/plugins/gcov/setup.html +2 -1
- data/site-local/plugins/report-tests-raw-output-log.html +3 -1
- data/site-local/plugins/report-tests-teamcity-stdout.html +6 -3
- data/site-local/plugins/sanitize.html +7 -6
- data/site-local/plugins/valgrind.html +8 -7
- data/site-local/project/upgrade.html +3 -0
- data/site-local/reference/command-line.html +9 -2
- data/site-local/sitemap.xml.gz +0 -0
- data/site-local/snapshot/plugins/bullseye/config/defaults_bullseye.rb +1 -1
- data/site-local/snapshot/plugins/gcov/config/defaults_gcov.rb +1 -1
- data/site-local/testing-guide/conventions.html +53 -0
- data/spec/integration/actionator_file_operations_spec.rb +91 -1
- data/spec/integration/compile_commands_json_db_spec.rb +1 -1
- data/spec/integration/configurator_validation_spec.rb +1 -1
- data/spec/integration/dependencies/dependency_tracker_cache_hardening_spec.rb +26 -0
- data/spec/integration/dependencies/dependency_tracker_core_spec.rb +22 -0
- data/spec/integration/launcher_handoff_spec.rb +297 -0
- data/spec/integration/mixin_loading_spec.rb +1 -1
- data/spec/integration/module_generator_spec.rb +3 -3
- data/spec/integration/nested_test_artifacts_spec.rb +99 -0
- data/spec/integration/partials_module_resolution_spec.rb +7 -4
- data/spec/integration/path_intake_scenarios_spec.rb +101 -0
- data/spec/integration/path_scenarios_spec.rb +322 -0
- data/spec/integration/quote_include_isolator_spec.rb +1 -1
- data/spec/integration/report_build_warnings_log_spec.rb +1 -1
- data/spec/integration/report_tests_log_factory_spec.rb +1 -1
- data/spec/integration/test_executable_manifest_spec.rb +1 -1
- data/spec/integration/test_includes_extractinator_spec.rb +2 -1
- data/spec/integration/test_naming_spec.rb +198 -0
- data/spec/integration/test_source_file_checks_spec.rb +166 -0
- data/spec/integration/tool_validator_spec.rb +1 -1
- data/spec/integration/upgrade_docs_spec.rb +84 -0
- data/spec/integration/vendor_copy_transient_io_retry_spec.rb +74 -5
- data/spec/support/file_tree_helper.rb +88 -0
- data/spec/support/integration/configurator_integration_helper.rb +6 -6
- data/spec/support/integration/dependency_tracker_integration_helper.rb +1 -1
- data/spec/support/integration/partials_generation_integration_helper.rb +2 -2
- data/spec/support/integration/path_scenario_harness.rb +173 -0
- data/spec/support/integration/spec_integration_helper.rb +1 -1
- data/spec/support/integration/test_includes_harness.rb +13 -2
- data/spec/support/spec_helper.rb +2 -0
- data/spec/support/system/spec_system_helper.rb +7 -6
- data/spec/support/system/system_context.rb +21 -3
- data/spec/support/working_dir_tracking.rb +49 -0
- data/spec/system/build_output_mirroring_spec.rb +2 -2
- data/spec/system/conditional_mock_includes_spec.rb +1 -1
- data/spec/system/delta_builds_spec.rb +137 -11
- data/spec/system/gcov_deployment_spec.rb +1 -0
- data/spec/system/header_include_path_validation_spec.rb +4 -4
- data/spec/system/launcher_handoff_spec.rb +82 -0
- data/spec/system/mock_include_folders_spec.rb +91 -0
- data/spec/system/parent_directory_reference_spec.rb +5 -3
- data/spec/system/path_handling_probes_spec.rb +192 -0
- data/spec/system/preprocessing_parameterized_tests_spec.rb +1 -1
- data/spec/system/rake_release_task_path_disambiguation_spec.rb +6 -6
- data/spec/system/rake_test_task_path_disambiguation_spec.rb +85 -0
- data/spec/system/special_path_characters_spec.rb +86 -0
- data/spec/system/support/common_test_cases.rb +23 -21
- data/spec/system/support/gcov_common_test_cases.rb +37 -9
- data/spec/system/support/sanitize_common_test_cases.rb +2 -2
- data/spec/system/support/valgrind_common_test_cases.rb +12 -12
- data/spec/system/test_pipeline_stop_points_spec.rb +4 -4
- data/spec/system/test_runner_system_include_spec.rb +1 -1
- data/spec/system/test_source_file_directive_spec.rb +34 -5
- data/spec/units/bin/actionator_spec.rb +14 -17
- data/spec/units/bin/app_cfg_spec.rb +37 -0
- data/spec/units/bin/cli_handler_spec.rb +282 -6
- data/spec/units/bin/cli_helper_spec.rb +116 -45
- data/spec/units/bin/installation_selector_spec.rb +114 -0
- data/spec/units/bin/launchinator_spec.rb +171 -0
- data/spec/units/bin/path_validator_spec.rb +10 -0
- data/spec/units/bin/versionator_spec.rb +38 -6
- data/spec/units/build_log_writer_spec.rb +57 -0
- data/spec/units/config/build_root_policy_spec.rb +61 -0
- data/spec/units/config/configurator_builder_spec.rb +37 -6
- data/spec/units/config/configurator_paths_validator_spec.rb +292 -0
- data/spec/units/config/configurator_setup_spec.rb +9 -65
- data/spec/units/config/configurator_spec.rb +27 -5
- data/spec/units/config/configurator_validator_spec.rb +1 -172
- data/spec/units/default_tools_quoting_spec.rb +83 -0
- data/spec/units/dependencies/dependency_cache_store_spec.rb +33 -2
- data/spec/units/dependencies/dependency_debug_tree_spec.rb +1 -1
- data/spec/units/dependencies/dependency_hasher_spec.rb +42 -1
- data/spec/units/dependencies/dependency_path_normalizer_spec.rb +1 -1
- data/spec/units/dependencies/dependency_tracker_spec.rb +3 -1
- data/spec/units/filename_extension_spec.rb +11 -0
- data/spec/units/filesystem/build_subpath_spec.rb +122 -0
- data/spec/units/filesystem/destination_collision_spec.rb +30 -0
- data/spec/units/{file_finder_helper_spec.rb → filesystem/file_finder_helper_spec.rb} +46 -1
- data/spec/units/{file_finder_spec.rb → filesystem/file_finder_spec.rb} +188 -22
- data/spec/units/{file_path_collection_utils_spec.rb → filesystem/file_path_collection_utils_spec.rb} +181 -1
- data/spec/units/{file_path_utils_spec.rb → filesystem/file_path_utils_spec.rb} +204 -87
- data/spec/units/filesystem/file_system_wrapper_spec.rb +33 -0
- data/spec/units/filesystem/file_tree_spec.rb +511 -0
- data/spec/units/filesystem/file_tree_windows_spec.rb +78 -0
- data/spec/units/{file_wrapper_spec.rb → filesystem/file_wrapper_spec.rb} +95 -12
- data/spec/units/{path_matcher_spec.rb → filesystem/path_matcher_spec.rb} +12 -1
- data/spec/units/{path_mirror_spec.rb → filesystem/path_mirror_spec.rb} +32 -4
- data/spec/units/filesystem/project_paths_spec.rb +147 -0
- data/spec/units/filesystem/working_dir_spec.rb +71 -0
- data/spec/units/generators/generator_spec.rb +12 -6
- data/spec/units/generators/generator_test_results_backtrace_spec.rb +50 -46
- data/spec/units/generators/generator_test_results_spec.rb +1 -1
- data/spec/units/handoff_spec.rb +205 -0
- data/spec/units/includes/include_factory_spec.rb +3 -3
- data/spec/units/includes/include_pathinator_spec.rb +46 -0
- data/spec/units/installation_spec.rb +228 -0
- data/spec/units/library_resolver_spec.rb +157 -0
- data/spec/units/mock_locator_spec.rb +76 -1
- data/spec/units/partials/partializer_config_spec.rb +7 -0
- data/spec/units/partials/partializer_spec.rb +1 -0
- data/spec/units/partials_manager_spec.rb +17 -0
- data/spec/units/plugins/bullseye_spec.rb +15 -2
- data/spec/units/plugins/console_reportinator_spec.rb +18 -20
- data/spec/units/plugins/dependencies_spec.rb +33 -7
- data/spec/units/plugins/dependency_spec_spec.rb +17 -0
- data/spec/units/plugins/gcov_spec.rb +28 -3
- data/spec/units/plugins/gcovr_reportinator_spec.rb +19 -47
- data/spec/units/plugins/gcovr_thresholds_spec.rb +95 -0
- data/spec/units/plugins/module_generator_spec.rb +5 -5
- data/spec/units/plugins/report_build_warnings_log_spec.rb +3 -3
- data/spec/units/plugins/report_log_writer_plugin_spec.rb +10 -1
- data/spec/units/plugins/report_tests_raw_output_log_spec.rb +13 -2
- data/spec/units/plugins/report_tests_teamcity_stdout_spec.rb +77 -3
- data/spec/units/plugins/reportgenerator_reportinator_spec.rb +1 -1
- data/spec/units/plugins/sanitize_records_spec.rb +3 -1
- data/spec/units/plugins/sanitize_spec.rb +1 -1
- data/spec/units/plugins/valgrind_spec.rb +23 -8
- data/spec/units/preprocess/preprocessinator_comment_stripper_spec.rb +1 -1
- data/spec/units/rake_app/rakefile_component_resolver_spec.rb +21 -0
- data/spec/units/release_build_executor_spec.rb +53 -14
- data/spec/units/release_build_planner_spec.rb +15 -3
- data/spec/units/reportinator_spec.rb +5 -5
- data/spec/units/standin_headerinator_spec.rb +31 -1
- data/spec/units/test_build_executor_spec.rb +65 -3
- data/spec/units/test_build_planner_spec.rb +104 -2
- data/spec/units/test_build_setup_spec.rb +96 -12
- data/spec/units/test_context_extractor_spec.rb +25 -0
- data/spec/units/test_file_preprocessinator_spec.rb +17 -1
- data/spec/units/test_includes_extractinator_spec.rb +5 -1
- data/spec/units/test_invoker/objects_wiring_spec.rb +6 -3
- data/spec/units/test_invoker_spec.rb +14 -1
- data/spec/units/test_source_file_directive_resolver_spec.rb +38 -7
- data/spec/units/tool_executor_spec.rb +26 -0
- data/spec/units/yaml_wrapper_spec.rb +11 -0
- metadata +109 -25
- data/lib/ceedling/file_path_collection_utils.rb +0 -164
|
@@ -1830,6 +1830,78 @@
|
|
|
1830
1830
|
</span>
|
|
1831
1831
|
</a>
|
|
1832
1832
|
|
|
1833
|
+
</li>
|
|
1834
|
+
|
|
1835
|
+
<li class="md-nav__item">
|
|
1836
|
+
<a href="#hand-off" class="md-nav__link">
|
|
1837
|
+
<span class="md-ellipsis">
|
|
1838
|
+
|
|
1839
|
+
Hand-off
|
|
1840
|
+
|
|
1841
|
+
</span>
|
|
1842
|
+
</a>
|
|
1843
|
+
|
|
1844
|
+
<nav class="md-nav" aria-label="Hand-off">
|
|
1845
|
+
<ul class="md-nav__list">
|
|
1846
|
+
|
|
1847
|
+
<li class="md-nav__item">
|
|
1848
|
+
<a href="#hand-off-by-condition" class="md-nav__link">
|
|
1849
|
+
<span class="md-ellipsis">
|
|
1850
|
+
|
|
1851
|
+
Hand-off by condition
|
|
1852
|
+
|
|
1853
|
+
</span>
|
|
1854
|
+
</a>
|
|
1855
|
+
|
|
1856
|
+
</li>
|
|
1857
|
+
|
|
1858
|
+
<li class="md-nav__item">
|
|
1859
|
+
<a href="#version" class="md-nav__link">
|
|
1860
|
+
<span class="md-ellipsis">
|
|
1861
|
+
|
|
1862
|
+
version
|
|
1863
|
+
|
|
1864
|
+
</span>
|
|
1865
|
+
</a>
|
|
1866
|
+
|
|
1867
|
+
</li>
|
|
1868
|
+
|
|
1869
|
+
<li class="md-nav__item">
|
|
1870
|
+
<a href="#older-launchers" class="md-nav__link">
|
|
1871
|
+
<span class="md-ellipsis">
|
|
1872
|
+
|
|
1873
|
+
Older launchers
|
|
1874
|
+
|
|
1875
|
+
</span>
|
|
1876
|
+
</a>
|
|
1877
|
+
|
|
1878
|
+
</li>
|
|
1879
|
+
|
|
1880
|
+
<li class="md-nav__item">
|
|
1881
|
+
<a href="#projects-vendored-by-110-through-121" class="md-nav__link">
|
|
1882
|
+
<span class="md-ellipsis">
|
|
1883
|
+
|
|
1884
|
+
Projects vendored by 1.1.0 through 1.2.1
|
|
1885
|
+
|
|
1886
|
+
</span>
|
|
1887
|
+
</a>
|
|
1888
|
+
|
|
1889
|
+
</li>
|
|
1890
|
+
|
|
1891
|
+
</ul>
|
|
1892
|
+
</nav>
|
|
1893
|
+
|
|
1894
|
+
</li>
|
|
1895
|
+
|
|
1896
|
+
<li class="md-nav__item">
|
|
1897
|
+
<a href="#ceedling-development" class="md-nav__link">
|
|
1898
|
+
<span class="md-ellipsis">
|
|
1899
|
+
|
|
1900
|
+
Ceedling development
|
|
1901
|
+
|
|
1902
|
+
</span>
|
|
1903
|
+
</a>
|
|
1904
|
+
|
|
1833
1905
|
</li>
|
|
1834
1906
|
|
|
1835
1907
|
</ul>
|
|
@@ -4305,6 +4377,78 @@
|
|
|
4305
4377
|
</span>
|
|
4306
4378
|
</a>
|
|
4307
4379
|
|
|
4380
|
+
</li>
|
|
4381
|
+
|
|
4382
|
+
<li class="md-nav__item">
|
|
4383
|
+
<a href="#hand-off" class="md-nav__link">
|
|
4384
|
+
<span class="md-ellipsis">
|
|
4385
|
+
|
|
4386
|
+
Hand-off
|
|
4387
|
+
|
|
4388
|
+
</span>
|
|
4389
|
+
</a>
|
|
4390
|
+
|
|
4391
|
+
<nav class="md-nav" aria-label="Hand-off">
|
|
4392
|
+
<ul class="md-nav__list">
|
|
4393
|
+
|
|
4394
|
+
<li class="md-nav__item">
|
|
4395
|
+
<a href="#hand-off-by-condition" class="md-nav__link">
|
|
4396
|
+
<span class="md-ellipsis">
|
|
4397
|
+
|
|
4398
|
+
Hand-off by condition
|
|
4399
|
+
|
|
4400
|
+
</span>
|
|
4401
|
+
</a>
|
|
4402
|
+
|
|
4403
|
+
</li>
|
|
4404
|
+
|
|
4405
|
+
<li class="md-nav__item">
|
|
4406
|
+
<a href="#version" class="md-nav__link">
|
|
4407
|
+
<span class="md-ellipsis">
|
|
4408
|
+
|
|
4409
|
+
version
|
|
4410
|
+
|
|
4411
|
+
</span>
|
|
4412
|
+
</a>
|
|
4413
|
+
|
|
4414
|
+
</li>
|
|
4415
|
+
|
|
4416
|
+
<li class="md-nav__item">
|
|
4417
|
+
<a href="#older-launchers" class="md-nav__link">
|
|
4418
|
+
<span class="md-ellipsis">
|
|
4419
|
+
|
|
4420
|
+
Older launchers
|
|
4421
|
+
|
|
4422
|
+
</span>
|
|
4423
|
+
</a>
|
|
4424
|
+
|
|
4425
|
+
</li>
|
|
4426
|
+
|
|
4427
|
+
<li class="md-nav__item">
|
|
4428
|
+
<a href="#projects-vendored-by-110-through-121" class="md-nav__link">
|
|
4429
|
+
<span class="md-ellipsis">
|
|
4430
|
+
|
|
4431
|
+
Projects vendored by 1.1.0 through 1.2.1
|
|
4432
|
+
|
|
4433
|
+
</span>
|
|
4434
|
+
</a>
|
|
4435
|
+
|
|
4436
|
+
</li>
|
|
4437
|
+
|
|
4438
|
+
</ul>
|
|
4439
|
+
</nav>
|
|
4440
|
+
|
|
4441
|
+
</li>
|
|
4442
|
+
|
|
4443
|
+
<li class="md-nav__item">
|
|
4444
|
+
<a href="#ceedling-development" class="md-nav__link">
|
|
4445
|
+
<span class="md-ellipsis">
|
|
4446
|
+
|
|
4447
|
+
Ceedling development
|
|
4448
|
+
|
|
4449
|
+
</span>
|
|
4450
|
+
</a>
|
|
4451
|
+
|
|
4308
4452
|
</li>
|
|
4309
4453
|
|
|
4310
4454
|
</ul>
|
|
@@ -4394,16 +4538,14 @@ in <code>lib/</code>. The code in <code>/bin</code> manages lots of startup deta
|
|
|
4394
4538
|
configuration. Ultimately, it then launches the main application code from
|
|
4395
4539
|
<code>lib/</code>.</p>
|
|
4396
4540
|
<p>The features and conventions controlling <em>which ceedling</em> dictate which
|
|
4397
|
-
|
|
4541
|
+
installation of Ceedling runs your command. When they select an
|
|
4542
|
+
installation other than the one whose <code>ceedling</code> command you ran, the launcher
|
|
4543
|
+
hands your command off to that installation’s own launcher. See
|
|
4544
|
+
<a href="#hand-off">Hand-off</a>.</p>
|
|
4398
4545
|
<div class="admonition note">
|
|
4399
|
-
<p class="admonition-title">Ceedling development
|
|
4400
|
-
<p>
|
|
4401
|
-
|
|
4402
|
-
<code>ceedling</code> launcher in your filesystem.</p>
|
|
4403
|
-
<p>In Unix-like systems:
|
|
4404
|
-
<code>> my/ceedling/changes/bin/ceedling <args></code>.</p>
|
|
4405
|
-
<p>On Windows systems:
|
|
4406
|
-
<code>> ruby my\ceedling\changes\bin\ceedling <args></code>.</p>
|
|
4546
|
+
<p class="admonition-title">Ceedling development</p>
|
|
4547
|
+
<p><em>Which ceedling</em> lets the <code>ceedling</code> command you have installed run your local
|
|
4548
|
+
Ceedling repository. See <a href="#ceedling-development">Ceedling development</a>.</p>
|
|
4407
4549
|
</div>
|
|
4408
4550
|
<h2 id="options-and-precedence">Options and precedence</h2>
|
|
4409
4551
|
<p>When Ceedling starts up, it evaluates a handful of conditions to determine
|
|
@@ -4422,25 +4564,243 @@ which Ceedling location to launch.</p>
|
|
|
4422
4564
|
<code>ceedling</code> launcher is running. In the typical case this is the default
|
|
4423
4565
|
gem installation.</li>
|
|
4424
4566
|
</ol>
|
|
4567
|
+
<p>A path in <code>WHICH_CEEDLING</code> or <code>:which_ceedling</code> may begin with <code>~</code> to name
|
|
4568
|
+
your home directory, as in <code>:which_ceedling: ~/ceedlings/1.2.0</code>.</p>
|
|
4425
4569
|
<div class="admonition note">
|
|
4426
4570
|
<p class="admonition-title">Configuration entry (2) does not make sense in some scenarios</p>
|
|
4427
|
-
<p
|
|
4428
|
-
|
|
4429
|
-
|
|
4430
|
-
|
|
4431
|
-
|
|
4571
|
+
<p><code>ceedling new</code>, <code>ceedling examples</code>, <code>ceedling example</code>, <code>ceedling docs</code>,
|
|
4572
|
+
and <code>ceedling help</code> outside a project have no project file to read. They
|
|
4573
|
+
use the environment variable or a <code>vendor/ceedling</code> path in your working
|
|
4574
|
+
directory.</p>
|
|
4575
|
+
<p><code>ceedling upgrade</code> re-vendors a project from the Ceedling you run, or from
|
|
4576
|
+
the installation the environment variable names. It never selects a
|
|
4577
|
+
<code>vendor/ceedling</code> path, which inside a project is the copy being replaced.</p>
|
|
4578
|
+
<p><code>ceedling version</code> reads your project file when one is available. See
|
|
4579
|
+
<a href="#hand-off">Hand-off</a>.</p>
|
|
4432
4580
|
</div>
|
|
4433
4581
|
<h2 id="settings">Settings</h2>
|
|
4434
4582
|
<p>The environment variable and configuration entry for <em>Which Ceedling</em> can
|
|
4435
4583
|
contain two values:</p>
|
|
4436
4584
|
<ol>
|
|
4437
|
-
<li>The value <code>gem</code
|
|
4438
|
-
should run the application packaged alongside it in <code>lib/</code> (these
|
|
4585
|
+
<li>The value <code>gem</code>, in any case, indicates that the command line <code>ceedling</code>
|
|
4586
|
+
launcher should run the application packaged alongside it in <code>lib/</code> (these
|
|
4439
4587
|
paths are typically found in the gem installation location).</li>
|
|
4440
4588
|
<li>A relative or absolute path in your file system. Such a path should
|
|
4441
4589
|
point to the top-level directory that contains Ceedling’s <code>bin/</code> and
|
|
4442
|
-
<code>lib/</code> sub-directories
|
|
4590
|
+
<code>lib/</code> sub-directories. A relative path is relative to your working
|
|
4591
|
+
directory, not to your project file.</li>
|
|
4592
|
+
</ol>
|
|
4593
|
+
<h2 id="hand-off">Hand-off</h2>
|
|
4594
|
+
<p>When <em>which ceedling</em> selects an installation other than the one whose
|
|
4595
|
+
<code>ceedling</code> command you ran, every command except <code>version</code> runs in the selected
|
|
4596
|
+
installation. Its own launcher replaces the one you ran, in a new process,
|
|
4597
|
+
and receives your original command line. Your command then runs wholly on the
|
|
4598
|
+
selected installation’s code, whatever its version.</p>
|
|
4599
|
+
<p>One command falls back. A <code>--local</code> copy carries no documentation bundle, so
|
|
4600
|
+
<code>ceedling docs</code> with such a copy selected exports the documentation of the
|
|
4601
|
+
<code>ceedling</code> command you ran instead, with a notice naming both installations.</p>
|
|
4602
|
+
<p>Both sides log a notice, naming each installation and its version where
|
|
4603
|
+
it can be read:</p>
|
|
4604
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>NOTICE: Ceedling launcher 1.2.2 at /var/lib/gems/3.3.0/gems/ceedling-1.2.2/ is handing off to Ceedling 1.2.0 at /home/me/project/vendor/ceedling/, which runs in its own process.
|
|
4605
|
+
</code></pre></div>
|
|
4606
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>NOTICE: Ceedling 1.2.3 at /home/me/project/vendor/ceedling/ is now running, launched from Ceedling 1.2.2 at /var/lib/gems/3.3.0/gems/ceedling-1.2.2/.
|
|
4607
|
+
</code></pre></div>
|
|
4608
|
+
<p>The second notice comes only from Ceedling 1.2.2 or later. Commands that
|
|
4609
|
+
quiet logging, such as <code>help</code> and <code>dumpconfig</code>, show neither.</p>
|
|
4610
|
+
<p>A hand-off adds about 0.2 seconds to a command.</p>
|
|
4611
|
+
<h3 id="hand-off-by-condition">Hand-off by condition</h3>
|
|
4612
|
+
<p>The table names one of five mechanisms per condition:</p>
|
|
4613
|
+
<ul>
|
|
4614
|
+
<li><strong>In-process:</strong> the <code>ceedling</code> command you run does the work itself.</li>
|
|
4615
|
+
<li><strong>Hand-off:</strong> the selected installation’s own launcher runs the command, in a new process.</li>
|
|
4616
|
+
<li><strong>Restart:</strong> an application loaded by an older launcher restarts in its own process.</li>
|
|
4617
|
+
<li><strong>Report:</strong> the <code>ceedling</code> command you run reports on both installations without running the selected one.</li>
|
|
4618
|
+
<li><strong>Stop:</strong> the <code>ceedling</code> command you run stops with advice.</li>
|
|
4619
|
+
</ul>
|
|
4620
|
+
<table>
|
|
4621
|
+
<thead>
|
|
4622
|
+
<tr>
|
|
4623
|
+
<th>Condition</th>
|
|
4624
|
+
<th>Example</th>
|
|
4625
|
+
<th>Mechanism</th>
|
|
4626
|
+
<th>Behavior in 1.2.2+</th>
|
|
4627
|
+
</tr>
|
|
4628
|
+
</thead>
|
|
4629
|
+
<tbody>
|
|
4630
|
+
<tr>
|
|
4631
|
+
<td>The selection is the installation you run</td>
|
|
4632
|
+
<td><code>ceedling test:all</code> with the gem and <code>:which_ceedling: gem</code></td>
|
|
4633
|
+
<td>In-process</td>
|
|
4634
|
+
<td>Runs as before 1.2.2, with no notice</td>
|
|
4635
|
+
</tr>
|
|
4636
|
+
<tr>
|
|
4637
|
+
<td>The selection is the same installation by another path</td>
|
|
4638
|
+
<td><code>:which_ceedling</code> names a symlink to the gem’s directory</td>
|
|
4639
|
+
<td>In-process</td>
|
|
4640
|
+
<td>Paths are compared after resolving links, so nothing is handed off</td>
|
|
4641
|
+
</tr>
|
|
4642
|
+
<tr>
|
|
4643
|
+
<td>The selection is another installation</td>
|
|
4644
|
+
<td>The gem’s <code>ceedling test:all</code> in a <code>--local</code> project</td>
|
|
4645
|
+
<td>Hand-off</td>
|
|
4646
|
+
<td>The vendored copy runs the build whole, whatever its version. Both sides log a notice.</td>
|
|
4647
|
+
</tr>
|
|
4648
|
+
<tr>
|
|
4649
|
+
<td>A command without a project selects another installation</td>
|
|
4650
|
+
<td><code>ceedling new</code> with <code>WHICH_CEEDLING</code> set</td>
|
|
4651
|
+
<td>Hand-off</td>
|
|
4652
|
+
<td>The selected installation creates the project with its own code and files</td>
|
|
4653
|
+
</tr>
|
|
4654
|
+
<tr>
|
|
4655
|
+
<td>The selection is a development checkout</td>
|
|
4656
|
+
<td>The gem’s <code>ceedling test:all</code> with <code>:which_ceedling: /home/me/dev/ceedling</code></td>
|
|
4657
|
+
<td>Hand-off</td>
|
|
4658
|
+
<td>The checkout’s own <code>bin/</code> and <code>lib/</code> run the command, so every change takes effect</td>
|
|
4659
|
+
</tr>
|
|
4660
|
+
<tr>
|
|
4661
|
+
<td><code>docs</code> selects a <code>--local</code> copy</td>
|
|
4662
|
+
<td><code>ceedling docs out/</code> in a <code>--local</code> project</td>
|
|
4663
|
+
<td>In-process</td>
|
|
4664
|
+
<td>Exports the documentation of the <code>ceedling</code> command you run, with a notice</td>
|
|
4665
|
+
</tr>
|
|
4666
|
+
<tr>
|
|
4667
|
+
<td><code>version</code> with a selection</td>
|
|
4668
|
+
<td><code>ceedling version</code> in a <code>--local</code> project</td>
|
|
4669
|
+
<td>Report</td>
|
|
4670
|
+
<td>Lists <code>Ceedling Launcher =></code> and <code>Ceedling App =></code>, each with its own version</td>
|
|
4671
|
+
</tr>
|
|
4672
|
+
<tr>
|
|
4673
|
+
<td><code>upgrade</code> inside a <code>--local</code> project</td>
|
|
4674
|
+
<td><code>ceedling upgrade .</code></td>
|
|
4675
|
+
<td>Stop</td>
|
|
4676
|
+
<td>Refuses to upgrade the vendored copy from itself</td>
|
|
4677
|
+
</tr>
|
|
4678
|
+
<tr>
|
|
4679
|
+
<td>The selection is a copy vendored by 1.1.0 through 1.2.1</td>
|
|
4680
|
+
<td>The gem’s <code>ceedling test:all</code> in a project vendored by 1.2.0</td>
|
|
4681
|
+
<td>Stop</td>
|
|
4682
|
+
<td>Advises re-vendoring with <code>ceedling upgrade</code></td>
|
|
4683
|
+
</tr>
|
|
4684
|
+
<tr>
|
|
4685
|
+
<td>A launcher before 1.2.2 selects a 1.2.2+ application</td>
|
|
4686
|
+
<td>A 1.2.1 gem <code>ceedling test:all</code> in a project vendoring 1.2.2</td>
|
|
4687
|
+
<td>Restart</td>
|
|
4688
|
+
<td>Logs a warning, then the application runs whole. If it can’t restart, it warns and continues in the older launcher’s process.</td>
|
|
4689
|
+
</tr>
|
|
4690
|
+
<tr>
|
|
4691
|
+
<td>A launcher before 1.2.2 runs a command without a project</td>
|
|
4692
|
+
<td>A 1.2.1 gem <code>ceedling new</code> with <code>WHICH_CEEDLING</code> naming 1.2.2</td>
|
|
4693
|
+
<td>In-process</td>
|
|
4694
|
+
<td>The older launcher’s own code runs the command. Upgrade the <code>ceedling</code> command you run.</td>
|
|
4695
|
+
</tr>
|
|
4696
|
+
</tbody>
|
|
4697
|
+
</table>
|
|
4698
|
+
<h4 id="example-scenarios">Example scenarios</h4>
|
|
4699
|
+
<p>These show when the conditions above come into play, and which goal each
|
|
4700
|
+
serves.</p>
|
|
4701
|
+
<p><strong>Pin a team’s project to one Ceedling version.</strong> Create the project with
|
|
4702
|
+
<code>ceedling new --local</code>, and commit <code>vendor/ceedling/</code>. Each teammate can then
|
|
4703
|
+
run the project with whatever 1.2.2+ gem they have installed. The gem hands
|
|
4704
|
+
each command off to the vendored copy, so everyone builds with the same
|
|
4705
|
+
version. <code>ceedling version</code> confirms it under <code>Ceedling App =></code>.</p>
|
|
4706
|
+
<p><strong>Keep an older project on its version while you upgrade the gem.</strong> A
|
|
4707
|
+
project vendoring 1.2.0 still builds with 1.2.0 after you install the 1.2.2
|
|
4708
|
+
gem, because the gem hands off to the vendored copy. If the copy was vendored
|
|
4709
|
+
by 1.1.0 through 1.2.1, the gem stops instead. Re-vendor it as below, or
|
|
4710
|
+
copy Unity’s <code>test/targets/</code> into the copy to keep its version.</p>
|
|
4711
|
+
<p><strong>Upgrade a vendored project.</strong> Run <code>upgrade</code> with the Ceedling you want,
|
|
4712
|
+
from outside the project:</p>
|
|
4713
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="w"> </span>><span class="w"> </span>ceedling<span class="w"> </span>upgrade<span class="w"> </span>my_project
|
|
4714
|
+
</code></pre></div>
|
|
4715
|
+
<p>To re-vendor with an installation other than the one you run, name it in
|
|
4716
|
+
<code>WHICH_CEEDLING</code>. Run from inside the project, <code>upgrade</code> stops, because the
|
|
4717
|
+
vendored copy would be both source and destination.</p>
|
|
4718
|
+
<p><strong>Create a project with a version you haven’t installed as a gem.</strong> Point
|
|
4719
|
+
<code>WHICH_CEEDLING</code> at an unpacked copy or a checkout of that version. <code>new</code>
|
|
4720
|
+
hands off to it, so the project, its vendored files, and its recorded
|
|
4721
|
+
<code>:ceedling_version:</code> all come from that version:</p>
|
|
4722
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="w"> </span>><span class="w"> </span><span class="nv">WHICH_CEEDLING</span><span class="o">=</span>~/ceedlings/1.2.0<span class="w"> </span>ceedling<span class="w"> </span>new<span class="w"> </span>--local<span class="w"> </span>my_project
|
|
4723
|
+
</code></pre></div>
|
|
4724
|
+
<p><strong>Compare versions, or find where a behavior changed.</strong> Set <code>WHICH_CEEDLING</code>
|
|
4725
|
+
for each run instead of editing the project file. It overrides
|
|
4726
|
+
<code>:which_ceedling</code> and a <code>vendor/ceedling/</code> copy, so a CI job can build one
|
|
4727
|
+
project with several versions:</p>
|
|
4728
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="w"> </span>><span class="w"> </span><span class="nv">WHICH_CEEDLING</span><span class="o">=</span>~/ceedlings/1.2.0<span class="w"> </span>ceedling<span class="w"> </span>test:all
|
|
4729
|
+
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="w"> </span>><span class="w"> </span><span class="nv">WHICH_CEEDLING</span><span class="o">=</span>~/ceedlings/1.2.2<span class="w"> </span>ceedling<span class="w"> </span>test:all
|
|
4730
|
+
</code></pre></div>
|
|
4731
|
+
<p><strong>Run a 1.2.2 project in a CI image with an older gem.</strong> A Docker image
|
|
4732
|
+
shipping a 1.2.1 gem loads the vendored 1.2.2 application into its own
|
|
4733
|
+
process. The application restarts itself, with a warning. To avoid the
|
|
4734
|
+
restart, run the project’s <code>./ceedling</code> launch script, or upgrade the image.</p>
|
|
4735
|
+
<p><strong>Develop Ceedling itself.</strong> Point <code>:which_ceedling</code> at your local
|
|
4736
|
+
repository and keep running the installed gem. See
|
|
4737
|
+
<a href="#ceedling-development">Ceedling development</a>.</p>
|
|
4738
|
+
<div class="admonition note">
|
|
4739
|
+
<p class="admonition-title">The launcher you run still parses your command line</p>
|
|
4740
|
+
<p>The <code>ceedling</code> command you run reads your command line before it hands off, so it
|
|
4741
|
+
rejects an option that only the selected installation knows. Run the
|
|
4742
|
+
selected installation’s own launcher instead, such as <code>./ceedling</code> in a
|
|
4743
|
+
<code>--local</code> project.</p>
|
|
4744
|
+
</div>
|
|
4745
|
+
<h3 id="version"><code>version</code></h3>
|
|
4746
|
+
<p><code>ceedling version</code> reports on both installations rather than hand off. It
|
|
4747
|
+
reads your project file when one is available, or the one <code>--project</code> names,
|
|
4748
|
+
along with any <code>--mixin</code>s. When the project selects another installation, it
|
|
4749
|
+
lists <code>Ceedling Launcher =></code> and <code>Ceedling App =></code> separately, each with its
|
|
4750
|
+
own version.</p>
|
|
4751
|
+
<h3 id="older-launchers">Older launchers</h3>
|
|
4752
|
+
<p>A launcher before 1.2.2 loads the selected installation’s application into
|
|
4753
|
+
its own process instead of handing off. A 1.2.2 or later application detects
|
|
4754
|
+
this, logs a warning, and restarts in its own process with your original
|
|
4755
|
+
command line. <code>new</code>, <code>example</code>, <code>examples</code>, <code>upgrade</code>, <code>docs</code>, and <code>help</code>
|
|
4756
|
+
without a project never load the application, so these still run the older
|
|
4757
|
+
launcher’s own code. Upgrade the <code>ceedling</code> command you run to avoid this.</p>
|
|
4758
|
+
<h3 id="projects-vendored-by-110-through-121">Projects vendored by 1.1.0 through 1.2.1</h3>
|
|
4759
|
+
<p><code>ceedling new --local</code> in Ceedling 1.1.0 through 1.2.1 left Unity’s built-in
|
|
4760
|
+
mixins out of the vendored copy, so that copy cannot run on its own. The
|
|
4761
|
+
<code>ceedling</code> command you run stops with advice instead of handing off to it. Re-vendor
|
|
4762
|
+
the project with <code>ceedling upgrade <project path></code>.</p>
|
|
4763
|
+
<h2 id="ceedling-development">Ceedling development</h2>
|
|
4764
|
+
<p><em>Which ceedling</em> lets you run your local Ceedling repository on a project
|
|
4765
|
+
from the <code>ceedling</code> command you already have installed. Set <code>:project</code> ↳
|
|
4766
|
+
<code>:which_ceedling</code> in the project file, or <code>WHICH_CEEDLING</code>, to the path of
|
|
4767
|
+
your repository:</p>
|
|
4768
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="nt">:project</span><span class="p">:</span>
|
|
4769
|
+
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a><span class="w"> </span><span class="nt">:which_ceedling</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/home/me/dev/ceedling</span>
|
|
4770
|
+
</code></pre></div>
|
|
4771
|
+
<p>The installed <code>ceedling</code> command hands every command off to your repository’s own
|
|
4772
|
+
<code>bin/ceedling</code>. Your command runs wholly on your repository’s <code>bin/</code> and
|
|
4773
|
+
<code>lib/</code>, so changes in either take effect. <code>ceedling version</code> lists both
|
|
4774
|
+
installations, your repository with its <code>.dev</code> tag.</p>
|
|
4775
|
+
<p>Before 1.2.2, the installed <code>ceedling</code> command loaded your repository’s application
|
|
4776
|
+
into its own process. Any <code>lib/</code> file it had already loaded stayed the
|
|
4777
|
+
installed copy, so changes to those files were silently ignored.</p>
|
|
4778
|
+
<p>Keep in mind:</p>
|
|
4779
|
+
<ol>
|
|
4780
|
+
<li><strong>Your repository’s <code>bin/</code> runs as well as its <code>lib/</code>.</strong> The installed
|
|
4781
|
+
launcher never runs your repository’s application. To exercise a
|
|
4782
|
+
particular launcher, run its <code>bin/ceedling</code> directly.</li>
|
|
4783
|
+
<li><strong>The installed <code>ceedling</code> command parses your command line first.</strong> It rejects a
|
|
4784
|
+
command or option that exists only in your repository. Run your
|
|
4785
|
+
repository’s launcher directly for those.</li>
|
|
4786
|
+
<li><strong>Your repository must run on its own.</strong> It needs <code>bin/ceedling</code> and its
|
|
4787
|
+
checked-out Git submodules, including Unity’s <code>test/targets/</code>. Otherwise
|
|
4788
|
+
the installed <code>ceedling</code> command stops with advice.</li>
|
|
4789
|
+
<li><strong>A debugger or profiler loses the command at the hand-off.</strong> It attaches
|
|
4790
|
+
to the installed <code>ceedling</code> command, whose process the hand-off replaces. Attach
|
|
4791
|
+
it to your repository’s launcher directly instead.</li>
|
|
4792
|
+
<li><strong>A hand-off adds about 0.2 seconds</strong> to each command.</li>
|
|
4793
|
+
<li><strong><code>ceedling docs</code> exports the installed <code>ceedling</code> command’s documentation</strong> when
|
|
4794
|
+
your repository has no built <code>site-local/</code> bundle.</li>
|
|
4795
|
+
<li><strong>A path that resolves to the installation you run is not handed off.</strong>
|
|
4796
|
+
The plugin test suites’ <code>:which_ceedling: ../../../..</code> names the
|
|
4797
|
+
repository running them, so they run in-process.</li>
|
|
4443
4798
|
</ol>
|
|
4799
|
+
<p>To run your repository’s launcher directly:</p>
|
|
4800
|
+
<ul>
|
|
4801
|
+
<li>In Unix-like systems: <code>> ~/dev/ceedling/bin/ceedling <args></code>.</li>
|
|
4802
|
+
<li>On Windows systems: <code>> ruby %USERPROFILE%\dev\ceedling\bin\ceedling <args></code>.</li>
|
|
4803
|
+
</ul>
|
|
4444
4804
|
<p><br/><br/></p>
|
|
4445
4805
|
|
|
4446
4806
|
|
|
@@ -4654,8 +4654,12 @@ release, then commit and continue development.</p>
|
|
|
4654
4654
|
<li>Push <code>v1.2.0-pre.1</code> from <code>next_version</code>. CI creates a GitHub-available pre-release.</li>
|
|
4655
4655
|
<li>Iterate with <code>-pre.2</code> and onward as needed.</li>
|
|
4656
4656
|
<li>Bring the work onto <code>master</code> once the release is ready.</li>
|
|
4657
|
+
<li>Date the release’s sections in <code>docs/Changelog.md</code>, <code>docs/BreakingChanges.md</code>, and <code>docs/KnownIssues.md</code>.</li>
|
|
4657
4658
|
<li>Push <code>v1.2.0</code> from <code>master</code>. CI creates the GitHub-available release and publishes the gem to RubyGems.org.</li>
|
|
4658
|
-
<li>Bump <code>lib/version.rb</code> and continue development
|
|
4659
|
+
<li>Bump <code>lib/version.rb</code> and continue development. Open the next release’s sections:</li>
|
|
4660
|
+
<li><code>docs/Changelog.md</code>: a new, empty section.</li>
|
|
4661
|
+
<li><code>docs/KnownIssues.md</code>: a copy of the released section. Remove each issue the next release resolves, and close the released section by naming it.</li>
|
|
4662
|
+
<li><code>docs/BreakingChanges.md</code>: a section only once the next release breaks something.</li>
|
|
4659
4663
|
</ol>
|
|
4660
4664
|
<h2 id="documentation-deployment">Documentation deployment</h2>
|
|
4661
4665
|
<p>Documentation versions are deployed by hand, separately from the gem. These tasks
|
|
@@ -4012,6 +4012,23 @@
|
|
|
4012
4012
|
</span>
|
|
4013
4013
|
</a>
|
|
4014
4014
|
|
|
4015
|
+
<nav class="md-nav" aria-label="Code organization">
|
|
4016
|
+
<ul class="md-nav__list">
|
|
4017
|
+
|
|
4018
|
+
<li class="md-nav__item">
|
|
4019
|
+
<a href="#running-your-repository-with-which-ceedling" class="md-nav__link">
|
|
4020
|
+
<span class="md-ellipsis">
|
|
4021
|
+
|
|
4022
|
+
Running your repository with Which Ceedling
|
|
4023
|
+
|
|
4024
|
+
</span>
|
|
4025
|
+
</a>
|
|
4026
|
+
|
|
4027
|
+
</li>
|
|
4028
|
+
|
|
4029
|
+
</ul>
|
|
4030
|
+
</nav>
|
|
4031
|
+
|
|
4015
4032
|
</li>
|
|
4016
4033
|
|
|
4017
4034
|
<li class="md-nav__item">
|
|
@@ -4351,17 +4368,6 @@
|
|
|
4351
4368
|
</ul>
|
|
4352
4369
|
</nav>
|
|
4353
4370
|
|
|
4354
|
-
</li>
|
|
4355
|
-
|
|
4356
|
-
<li class="md-nav__item">
|
|
4357
|
-
<a href="#bin-vs-lib" class="md-nav__link">
|
|
4358
|
-
<span class="md-ellipsis">
|
|
4359
|
-
|
|
4360
|
-
bin/ vs. lib/
|
|
4361
|
-
|
|
4362
|
-
</span>
|
|
4363
|
-
</a>
|
|
4364
|
-
|
|
4365
4371
|
</li>
|
|
4366
4372
|
|
|
4367
4373
|
</ul>
|
|
@@ -4611,6 +4617,23 @@
|
|
|
4611
4617
|
</span>
|
|
4612
4618
|
</a>
|
|
4613
4619
|
|
|
4620
|
+
<nav class="md-nav" aria-label="Code organization">
|
|
4621
|
+
<ul class="md-nav__list">
|
|
4622
|
+
|
|
4623
|
+
<li class="md-nav__item">
|
|
4624
|
+
<a href="#running-your-repository-with-which-ceedling" class="md-nav__link">
|
|
4625
|
+
<span class="md-ellipsis">
|
|
4626
|
+
|
|
4627
|
+
Running your repository with Which Ceedling
|
|
4628
|
+
|
|
4629
|
+
</span>
|
|
4630
|
+
</a>
|
|
4631
|
+
|
|
4632
|
+
</li>
|
|
4633
|
+
|
|
4634
|
+
</ul>
|
|
4635
|
+
</nav>
|
|
4636
|
+
|
|
4614
4637
|
</li>
|
|
4615
4638
|
|
|
4616
4639
|
<li class="md-nav__item">
|
|
@@ -4950,17 +4973,6 @@
|
|
|
4950
4973
|
</ul>
|
|
4951
4974
|
</nav>
|
|
4952
4975
|
|
|
4953
|
-
</li>
|
|
4954
|
-
|
|
4955
|
-
<li class="md-nav__item">
|
|
4956
|
-
<a href="#bin-vs-lib" class="md-nav__link">
|
|
4957
|
-
<span class="md-ellipsis">
|
|
4958
|
-
|
|
4959
|
-
bin/ vs. lib/
|
|
4960
|
-
|
|
4961
|
-
</span>
|
|
4962
|
-
</a>
|
|
4963
|
-
|
|
4964
4976
|
</li>
|
|
4965
4977
|
|
|
4966
4978
|
</ul>
|
|
@@ -5049,6 +5061,20 @@
|
|
|
5049
5061
|
processing, validation, and plugin loading.</li>
|
|
5050
5062
|
<li>Triggering the build/plugin task named at the command line.</li>
|
|
5051
5063
|
</ol>
|
|
5064
|
+
<h3 id="running-your-repository-with-which-ceedling">Running your repository with Which Ceedling</h3>
|
|
5065
|
+
<p>Depending on what you’re working on you may need to run Ceedling using
|
|
5066
|
+
a specialized approach.</p>
|
|
5067
|
+
<p>To run your local repository on a project, either:</p>
|
|
5068
|
+
<ol>
|
|
5069
|
+
<li>Point <code>:project</code> ↳ <code>:which_ceedling</code> or <code>WHICH_CEEDLING</code> at your
|
|
5070
|
+
repository, then run the <code>ceedling</code> command you already have installed. It hands
|
|
5071
|
+
each command off to your repository’s own <code>bin/ceedling</code>, so your changes
|
|
5072
|
+
in both <code>bin/</code> and <code>lib/</code> run.</li>
|
|
5073
|
+
<li>Run your repository’s <code>bin/ceedling</code> directly. Do this for a command or
|
|
5074
|
+
option only your repository knows, or to attach a debugger.</li>
|
|
5075
|
+
</ol>
|
|
5076
|
+
<p>See <a href="../configuration/which-ceedling.html#ceedling-development">Which Ceedling: Ceedling development</a> for the
|
|
5077
|
+
details and caveats.</p>
|
|
5052
5078
|
<h2 id="installation-options">Installation options</h2>
|
|
5053
5079
|
<h3 id="local-installation">Local installation</h3>
|
|
5054
5080
|
<p>After installing Ruby…</p>
|
|
@@ -5560,27 +5586,6 @@ configuration is in <code>mkdocs.yml</code> while the local site bundle configur
|
|
|
5560
5586
|
port 8000, VS Code detects it and shows a notification. The <strong>Ports</strong> panel also
|
|
5561
5587
|
provides an <strong>Open in Browser</strong> button.</p>
|
|
5562
5588
|
<p><strong>Hosted site:</strong> <a href="https://docs.throwtheswitch.org/Ceedling/">https://docs.throwtheswitch.org/Ceedling/</a></p>
|
|
5563
|
-
<h2 id="bin-vs-lib"><code>bin/</code> vs. <code>lib/</code></h2>
|
|
5564
|
-
<p>Most of Ceedling’s functionality is contained in the application code residing
|
|
5565
|
-
in <code>lib/</code>. Ceedling’s command line handling, startup configuration, project
|
|
5566
|
-
file loading, and mixin handling are contained in a “bootloader” in <code>bin/</code>.
|
|
5567
|
-
The code in <code>bin/</code> is the source of the <code>ceedling</code> command line tool and
|
|
5568
|
-
launches the application from <code>lib/</code>.</p>
|
|
5569
|
-
<p>Depending on what you’re working on you may need to run Ceedling using
|
|
5570
|
-
a specialized approach.</p>
|
|
5571
|
-
<p>If you are only working in <code>lib/</code>, you can:</p>
|
|
5572
|
-
<ol>
|
|
5573
|
-
<li>Run Ceedling using the <code>ceedling</code> command line utility you already have
|
|
5574
|
-
installed. The code in <code>bin/</code> will run from your locally installed gem or
|
|
5575
|
-
from within your Docker container and launch the Ceedling application for
|
|
5576
|
-
you.</li>
|
|
5577
|
-
<li>Modify a project file by setting a path value for <code>:project</code> ↳ <code>:which_ceedling</code>
|
|
5578
|
-
that points to the local copy of Ceedling you cloned from the Git repository.</li>
|
|
5579
|
-
</ol>
|
|
5580
|
-
<p>If you are working in <code>bin/</code>, running <code>ceedling</code> at the command line will not
|
|
5581
|
-
call your modified code. Instead, you must execute the path to the executable
|
|
5582
|
-
<code>ceedling</code> in the <code>bin/</code> folder of the local Ceedling repository you are
|
|
5583
|
-
working on.</p>
|
|
5584
5589
|
<p><br/><br/></p>
|
|
5585
5590
|
|
|
5586
5591
|
|
|
@@ -4452,6 +4452,8 @@
|
|
|
4452
4452
|
</ol>
|
|
4453
4453
|
<p>Where a C file change ripples out only along that file’s dependency chain, a shared configuration change ripples out across every target that reads that piece of configuration — often the whole project. File changes tend to trigger depth-oriented rebuilds while configuration changes tend to trigger breadth-oriented rebuilds.</p>
|
|
4454
4454
|
<h2 id="delta-build-special-cases">Delta build special cases</h2>
|
|
4455
|
+
<p>An upgrade that changes where Ceedling organizes build output rebuilds everything once. The first build after upgrading logs a warning saying so. Run <code>ceedling clobber</code> to remove the output left in the old layout, which coverage reports in particular would otherwise still read.</p>
|
|
4456
|
+
<p>A link artifact is relinked when a dependent library changes. Ceedling finds library files <a href="../configuration/reference/libraries.html"><code>:libraries</code></a> among <code>:paths</code> ↳ <code>:libraries</code>, and tracks the libraries the <a href="../plugins/dependencies.html">Dependencies plugin</a> builds. A library found only on your toolchain’s own search paths, or through a <code>-L</code> written into <code>:flags</code>, is not tracked. Run <code>ceedling clobber</code> after any such “untracked” library changes.</p>
|
|
4455
4457
|
<p>Add the <a href="command-line.html#ceedling-build-tasks"><code>--force-test-rerun</code></a> flag to test build tasks to bypass the checks for only running changed test fixture executables. This command line flag forces those executables to run and produce fresh test results.</p>
|
|
4456
4458
|
<p>When <a href="../configuration/reference/unity.html#shuffle_tests">Unity’s test shuffling feature</a> is enabled, delta builds automatically rerun test fixture executables to randomize test case order regardless of change or lack thereof in a test’s dependency tree. That is, since the feature requires test executables to run in order to shuffle test case order, effectively, delta builds are disabled for test fixture executables.</p>
|
|
4457
4459
|
<h2 id="delta-build-examples">Delta build examples</h2>
|