-
Notifications
You must be signed in to change notification settings - Fork 247
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test/0 32/merge proj file changes and rc #876
Merged
mvandervoord
merged 57 commits into
test/ceedling_0_32_rc
from
test/0_32/merge_proj_file_changes_and_rc
Apr 13, 2024
Merged
Test/0 32/merge proj file changes and rc #876
mvandervoord
merged 57 commits into
test/ceedling_0_32_rc
from
test/0_32/merge_proj_file_changes_and_rc
Apr 13, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Added discussion of what preprocessing means in Ceedling - Documented `:tools_<tool>` arguments addition shortcut hack - Expanded, reorganized `:tools` section - Fixed typos in `:flags` and `:defines` mistakenly referencing other sections due to copy/paste -
- Removed (temporarily?) `:test_file_preprocessor_directives` since preserving certain macros in the preprocessing of test files is temporarily deprecated. - Removed final vestiges of overly clever `split()` calls for environment variable substitution in tool definitions. - Renamed environment variables used in tool definition substitution to separate build contexts and tools.
- Simplified new ToolValidator method interface & updated plugins using it - Documented Plugin multi-threaded concerns - Documented `shell_result` in `post_` hook `arg_hash` handling
- Consolidated all command line handling into use of Thor - Married up Thor and Rake — Thor for application-level commands and flags and Rake for build tasks - Implemented mixins to merge project configurations before loading the main application - Created a small DIY-based builder of a startup “bootloader” in bin/
- Began better separation of CLI Thor command handling - Hooked up test case filters through configuration (removed environment variable hack) - Removed unused accessors - Swapped in use of `streaminator.stderr_puts` in `unity_utils` in favor of naked `puts()`
- Moved test case filtering set up to `setupinator.do_setuo()` from test Rake rules - Simplified internal logic and data structures of `unity_utils` - Improved error handling logic and messages of `unity_utils`
Thor cannot directly handle two special cases of command line construction: - Unadvertised backwards compatibility for Rake’s `-T` to list all Rake tasks - Explcit Rake tasks
- Created ActionsWrapper to use Thor Actions but apart from main CLI class - Implemented core of `examples` & `example` command - Beginning to decompose / refactor `copy_assets_and_create_structure()`
- Added `copy_docs()` method to `cli_helper()` for all project documentation copying needs - Refactored CLI example project handling to be slightly more generic with source paths - Added licenses to docs/ and to vendor/ tools - Reworked docs/ structure to include plugins subdirectory and subdirectories for unity, cmock, and c_exception
Former refactorings pushed essential validations to the end allowing certain configuration elements to go missing and cause confusing errors elsewhere
- Added hidden deug verbosity flags to commands that could use it - Improved graceful_fail processing - Moved to :test_build in configuration (it only applies to test) - Added command line argument to complement configuration file - Moved graceful_fail and build operations duration timing :stopwatch to CEEDLING_APPCFG and updated / fixed logic in lib/rakefile.rb - Separated app help and Rake task listing in such a way that `help` always successfully prints application help - Robustified :which_ceedling handling to properly check paths and to ensure relative paths are in relation to location of project file.
- All code references now use new constant to filename when checking for existence or loading the file - Documentation now speaks of project configuration, not project.yml
- Ported original `new` and `upgrade` to new and improved bin/ CLI code - Hooked up ENV processing to inject ENV from outer most scopes
- Collapsed all help to `help` command (removed `tasks`) - Added Windows path handling for all path related CLI parameters - Added edge case handling for Rake tasks at command line followed by Thor flags -
- Improved grammar, fixed typos, improvement message strings - Robustified :which_ceedling handling to work with relative or absolute paths - Expanded mixin handling to use both mixin names + load paths or actual filepaths (works for both configuration files and command line) - Fixed frozen command line options & arguments problems related to path standardization of user-entered strings - Fixed various mixin merge and sorting order bugs - Added source to mixin merge messages for greater orientation
- Fixed remaining broken system tests either by changing code in bin/ or modifying the specs to match new behavior - Added full longform help for each CLI command - Added detailed comments for how the command line is processed by ARGV hacking, Thor, and Rake - Added edge case handling for no command line arguments - Tweaked console messages and formatting
- Broke out new Changelog.md that uses [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) format. - Linked ReleaseNotes.md, Changelog.md, and BreakingChanges.md to one another at the top of each file with short explanations of their relationships - Moved some content from ReleaseNotes to Changelog and revised to match the Keep A Changelog format. - Added highight section for new CLI
- Added logging for non-gem :which_ceedling loading - Refactored path handling for sensible logging statement
A non-existent :project section would yield a nil reference. A simple setting of :default_tasks in :project would overwrite all of :project. Fixed with deep_merge().
- Removed nil checks following YAML loads for project file and mixin files - Added final empty check after all merges. - Added logging for empty configurations.
- Added mixins merge example and merge rules in CeedlingPacket - Added option to use alternate YAML file extension for load_path searches - Added option to `dumpconfig` to disable loading Ceedling application that manipulates project configuration (leaving only mixin merge results) - Added exception handling to `dumpconfig` to ensure a configuration is actually written to a file regardless of any vaidation problems.
Proper handling of vendored gems and covers edge cases for gem installation scenarios
- Our Thor configuration is now sufficient to act as the initial processor of all command line cases (except for the invisible backwards-compatible `-T` handling). - Improved comments documenting how Thor and Rake command line handling work together.
…pecific tests are listed now.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.