Skip to content
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

Conversation

mvandervoord
Copy link
Member

No description provided.

- 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
mkarlesky and others added 27 commits April 3, 2024 15:08
- 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.
@mvandervoord mvandervoord merged commit 1eb653c into test/ceedling_0_32_rc Apr 13, 2024
4 checks passed
@mvandervoord mvandervoord deleted the test/0_32/merge_proj_file_changes_and_rc branch April 13, 2024 02:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants