-
Notifications
You must be signed in to change notification settings - Fork 132
Quality of life improvements for MFC toolchain #1118
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
Merged
Merged
Changes from all commits
Commits
Show all changes
154 commits
Select commit
Hold shift + click to select a range
8fed09a
Quality of life improvements for MFC toolchain
sbryngelson 4827baf
Add test summary report and case template generator
sbryngelson 2bc1e4b
Add discoverability features: shell completion, interactive mode, onb…
sbryngelson 1726117
Fix remaining lint errors in test.py and common.py
sbryngelson 32443ba
Enhance help system with topics, aliases, and improved subcommand help
sbryngelson f32b41c
Add helpful error when ./mfc.sh load is run without source
sbryngelson aa963a1
Add progress bar for pip install and speed up startup
sbryngelson 79440fa
Improve pip install progress bar to track all phases
sbryngelson db67f38
Show current package below pip install progress bar
sbryngelson 6584493
Add progress bar for pip install and speed up startup
sbryngelson 3f9d384
Use uv for fast Python package installation when available
sbryngelson 838ca57
Auto-bootstrap uv for fast package installation
sbryngelson 075e409
Remove hardcoded package count from install message
sbryngelson 4afc5e4
Show uv's native progress display during installation
sbryngelson d9f1ae3
Set UV_LINK_MODE=copy to avoid slow hardlink failures
sbryngelson d7c3ac0
Fix subcommand help display (init, packer, etc.)
sbryngelson e3afe74
Fix circular imports between case.py, build.py, and run/input.py
sbryngelson fe6a274
Fix --help for all commands and subcommands
sbryngelson 1eddd60
Fix command aliases to share arguments with main commands
sbryngelson cfb4ac5
Add build progress bar with file count and elapsed time
sbryngelson 0dbd402
Rename case template command from 'init' to 'new', restore original init
sbryngelson 41161af
Fix --verbose flag to show raw build output
sbryngelson f020c03
Switch Python formatter from black to autopep8
sbryngelson 2bfc0ed
Add CLI auto-documentation system with single source of truth
sbryngelson 1251c0a
Refactor CLI generators to fix pylint errors
sbryngelson f6111be
Add CLI documentation generator and CI integration
sbryngelson f680678
Add parameter validation test safety net for Phase 4 refactoring
sbryngelson 341a554
Add negative and mutation tests for validator coverage
sbryngelson abeb1f0
Fix validator gaps found by mutation testing
sbryngelson e3c6cfb
Add unified parameter schema as single source of truth (Phase 4)
sbryngelson bc513d1
Compact params package from ~3,200 to ~450 lines
sbryngelson f540194
Add user-facing parameter search and typo suggestions
sbryngelson bdd6540
Add params command to main help display
sbryngelson 4ce5129
Fix params command to show simple list by default
sbryngelson b42c1a6
Collapse indexed parameters in params search output
sbryngelson c3a4cad
Collapse prefix indices in params output (patch_icpp(N)%...)
sbryngelson f5d8f97
Remove stages from params output (internal detail)
sbryngelson a0cd1fe
Add optional parameter descriptions to params command
sbryngelson aad8c35
Expand parameter descriptions to 100% coverage
sbryngelson 4afd665
Fix params -f to collapse indexed families
sbryngelson fa2d0b8
Update banner to show key user commands
sbryngelson b1aa837
Move CASE_OPTIMIZATION to registry as source of truth
sbryngelson 87e1330
Add constraint validation, dependency warnings, and IDE schema genera…
sbryngelson accb539
Add VS Code JSON schema configuration for case files
sbryngelson c508566
Auto-update VS Code settings from generate --json-schema
sbryngelson 7b3c902
Auto-configure VS Code settings on mfc.sh startup
sbryngelson 40b8838
Fix lint and spelling issues
sbryngelson 77f6436
Fix all lint issues to achieve 10.00/10 score
sbryngelson 660751f
Add YAML case file support and improve IDE auto-completion docs
sbryngelson 8c78bfb
Add TypedDict for Python case file auto-completion
sbryngelson 04182b9
Remove TypedDict - ./mfc.sh params is the solution for Python case files
sbryngelson 9eccb88
Add auto-generated parameter documentation (docs/parameters.md)
sbryngelson 8320471
docs
sbryngelson f3db1f5
Move auto-generated docs to docs/documentation/ for Doxygen
sbryngelson ade47e9
Fix CI failures: muscl_lim constraint and lint
sbryngelson e2a08fb
Disable R0801 (duplicate-code) in toolchain lint
sbryngelson 6ebb240
Temporarily disable constraint validation to debug CI
sbryngelson d54fc35
Re-enable validation - Coverage failure is pre-existing
sbryngelson dad2cba
Fix param stage assignments: dt, t_step_*, domain, bc belong to speci…
sbryngelson 0a7d207
Fix param stage assignments: qbmm and fluid_pp attributes
sbryngelson 7d2c223
Temporarily revert case_dicts.py to master's static definitions
sbryngelson 928ca8f
Revert to registry-based case_dicts.py
sbryngelson 3942cb0
Fix missing parameters: patch_bc(6-10) and lag_params
sbryngelson 410a078
Fix stage assignments to match master exactly
sbryngelson 5a32dc6
Fix riemann_solver constraint to allow value 5 (LF)
sbryngelson 89fe5d7
Fix weno_order constraint to allow 0 for MUSCL mode
sbryngelson 005d65b
Allow default (unset) length values in cylindrical coordinates
sbryngelson d64cd66
Fix CLI docs quick reference table rendering
sbryngelson a5389de
Organize documentation sidebar with logical ordering
sbryngelson 0b0eaeb
Add @page tag to auto-generated CLI reference
sbryngelson 7f70193
Fix Doxygen @page tags and simplify documentation structure
sbryngelson eb82602
Upgrade Doxygen and doxygen-awesome-css to latest versions
sbryngelson decf002
Use @mainpage and @ref instead of @page/@subpage
sbryngelson d056eea
Fix documentation link in main index.html
sbryngelson 1bfc8c4
Remove redundant MFC prefix from documentation page titles
sbryngelson 6920c65
Fix Build Configuration Flags table rendering in CLI docs
sbryngelson 0665895
Fix documentation links and table rendering
sbryngelson 42a222b
Fix CLI docs rendering issues
sbryngelson cca286e
Fix CLI docs: backticks and count_diff description
sbryngelson 2d8fb5d
Add descriptions for all parameter families in docs
sbryngelson 1100b4d
Add mfc-case-schema.json and parameters.md to CI check
sbryngelson e9869fc
Add Helpful Tools section to Getting Started documentation
sbryngelson 32dc3ac
Fix parameters.md missing @page directive
sbryngelson ab8a1ad
Fix cyl_coord string comparison and debug_log KeyError
sbryngelson 1ab643a
Remove accidentally committed test case directory
sbryngelson 0353c2f
Fix parameter indexing and documentation bugs from AI review
sbryngelson d2991f5
Remove redundant f-string prefixes in case_validator.py
sbryngelson 75060d3
Use re.fullmatch for pattern matching in descriptions.py
sbryngelson 05a2aec
Fix AST traversal in coverage.py for correct method attribution
sbryngelson 8a2ea2b
Remove duplicate _find_case_validator_class definition
sbryngelson 061aa2f
Fix code style and markdown issues from AI review
sbryngelson 001f7a5
Add toolchain CI tests to lint-toolchain.yml
sbryngelson 23992dc
Escape % as %% in parameter docs for Doxygen
sbryngelson ac74aea
Collapse multi-index patterns in parameter docs
sbryngelson 55192cc
Use pattern view for all indexed parameter families
sbryngelson 213a0bb
Fix type hint and reduce nested blocks in docs_gen.py
sbryngelson 5e91bc1
Add missing parameter descriptions for fluid_pp and bub_pp
sbryngelson adcecd4
Fix parenthesized index leaks in pattern descriptions
sbryngelson d39aeda
Merge branch 'master' into test
sbryngelson 5900ee8
Add detailed descriptions for Lagrangian and chemistry parameters
sbryngelson 430d213
Fix critical bugs and improve param registry robustness
sbryngelson 7ec27b4
Add intentional test typos to spell check ignore list
sbryngelson ef9df23
Fix pylint warnings in test files and unused imports
sbryngelson 2a8be92
Add rapidfuzz-based 'did you mean?' suggestions for parameter validation
sbryngelson f13c3fa
Fix pylint warnings in suggest.py and definitions.py
sbryngelson 25c3201
Add 'tru' to typos ignore list for test
sbryngelson 4b02dfe
Clean up suggest.py and improve .typos.toml documentation
sbryngelson eae1223
Eliminate dual type system by consolidating JSON schema in registry
sbryngelson 9a332e1
Add toolchain unit tests to ./mfc.sh lint and CI
sbryngelson 009edca
Fix pylint warnings in registry.py and case_dicts.py
sbryngelson b2d656e
Fix --no-test exit code bug and truncated help text
sbryngelson ef61490
Remove unused unknown_param_error from suggest.py
sbryngelson 6067c9d
Remove generated files from version control
sbryngelson 8df0b35
Fix generate.py to create completions directory
sbryngelson 2e9639e
Show enhanced help when command arguments are missing
sbryngelson 47019ff
Show full help output when command arguments are missing
sbryngelson ebc296b
Remove incorrect R0ref recommendation for bubbles_euler
sbryngelson 4103197
Show full help for ./mfc.sh new when no arguments given
sbryngelson 42ebca4
Fix and enhance help documentation
sbryngelson 1d25805
Add performance help topic and emphasize case optimization
sbryngelson e374e67
Fix markdown table and use subprocess for shell safety
sbryngelson cdd3849
longer bench
sbryngelson e5fcd8c
Auto-generate help from source files for single source of truth
sbryngelson cdfdc7a
Improve command parsing robustness and error handling
sbryngelson 11d6254
Generate parameters.md and cli-reference.md in docs workflow
sbryngelson 954abc9
Add CMake targets to generate cli-reference.md and parameters.md
sbryngelson d544553
Comprehensive rewrite of troubleshooting guide
sbryngelson 476e87f
Auto-generate CLI help from documentation markdown files
sbryngelson 7bf47a4
Fix broken documentation links on homepage
sbryngelson 346fdcb
Address AI review feedback for documentation
sbryngelson 21727e2
Fix markdown links to use Doxygen @ref syntax
sbryngelson 0dd277a
Fix inline code visibility in colored admonition blocks
sbryngelson 5ce9821
Fix lint and spelling check issues
sbryngelson bbef4f5
Merge branch 'master' into test
sbryngelson 7246055
Add hyper_cleaning parameters and fix documentation issues
sbryngelson 156ce95
Optimize params_for_stage() and clarify variable_dt comment
sbryngelson efc61d3
Add feature groups and description search to params command
sbryngelson faa7887
Simplify params system with direct tag registration
sbryngelson 5f9f885
Remove Stage system entirely - all params are universal
sbryngelson 0e0a6bb
Auto-generate parameter descriptions from naming conventions
sbryngelson 79e2ce0
Add more parameter descriptions and show all results by default
sbryngelson b712e47
Fix tab completion for multi-value args and Fortran logical syntax
sbryngelson e9514fa
Fix test failure: provide default for ARG in get_input_dict_keys
sbryngelson cb43ed4
Revert Fortran logical syntax change
sbryngelson 5b1a06e
Add missing zsh config flags for completion parity with bash
sbryngelson b337479
Fix namelist error: filter target-specific params in get_input_dict_keys
sbryngelson e3cf39c
Fix target-specific param filtering with complete exclusion sets
sbryngelson fbb0b27
Auto-regenerate completion scripts when source files change
sbryngelson d532b5a
Disable R0911/R0912 pylint warnings for toolchain
sbryngelson 761520c
Filter pre_process-only params from simulation and post_process
sbryngelson 2cef52d
Add simulation-only and pre+post param filtering for namelists
sbryngelson f701c2c
Add post_process-only prefix matching for indexed params
sbryngelson eb23723
Fix n_start incorrectly excluded from pre_process
sbryngelson 30b115c
Replace manual param filtering with Fortran namelist parser
sbryngelson File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -672,6 +672,28 @@ if (MFC_DOCUMENTATION) | |||||||||
| VERBATIM | ||||||||||
| ) | ||||||||||
|
|
||||||||||
| # Generate cli-reference.md from cli/commands.py | ||||||||||
| add_custom_command( | ||||||||||
| OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/docs/documentation/cli-reference.md" | ||||||||||
| DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/toolchain/mfc/cli/commands.py" | ||||||||||
| "${CMAKE_CURRENT_SOURCE_DIR}/toolchain/mfc/cli/docs_gen.py" | ||||||||||
| COMMAND "bash" "${CMAKE_CURRENT_SOURCE_DIR}/docs/gen_cli_reference.sh" | ||||||||||
| "${CMAKE_CURRENT_SOURCE_DIR}" | ||||||||||
| COMMENT "Generating cli-reference.md" | ||||||||||
| VERBATIM | ||||||||||
| ) | ||||||||||
|
|
||||||||||
| # Generate parameters.md from parameter registry | ||||||||||
| file(GLOB_RECURSE params_SRCs CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/toolchain/mfc/params/*.py") | ||||||||||
| add_custom_command( | ||||||||||
| OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/docs/documentation/parameters.md" | ||||||||||
| DEPENDS "${params_SRCs}" | ||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. P2: The parameters doc generation command doesn’t depend on the generator script or its Python module. If Prompt for AI agents
Suggested change
|
||||||||||
| COMMAND "bash" "${CMAKE_CURRENT_SOURCE_DIR}/docs/gen_parameters.sh" | ||||||||||
| "${CMAKE_CURRENT_SOURCE_DIR}" | ||||||||||
| COMMENT "Generating parameters.md" | ||||||||||
| VERBATIM | ||||||||||
| ) | ||||||||||
|
|
||||||||||
| file(GLOB common_DOCs CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/docs/*") | ||||||||||
|
|
||||||||||
| # GEN_DOCS: Given a target name (herein <target>), this macro sets up a | ||||||||||
|
|
@@ -706,9 +728,13 @@ if (MFC_DOCUMENTATION) | |||||||||
|
|
||||||||||
| set(opt_example_dependency "") | ||||||||||
| set(opt_constraints_dependency "") | ||||||||||
| set(opt_cli_reference_dependency "") | ||||||||||
| set(opt_parameters_dependency "") | ||||||||||
| if (${target} STREQUAL documentation) | ||||||||||
| set(opt_example_dependency "${CMAKE_CURRENT_SOURCE_DIR}/docs/documentation/examples.md") | ||||||||||
| set(opt_constraints_dependency "${CMAKE_CURRENT_SOURCE_DIR}/docs/documentation/case_constraints.md") | ||||||||||
| set(opt_cli_reference_dependency "${CMAKE_CURRENT_SOURCE_DIR}/docs/documentation/cli-reference.md") | ||||||||||
| set(opt_parameters_dependency "${CMAKE_CURRENT_SOURCE_DIR}/docs/documentation/parameters.md") | ||||||||||
| endif() | ||||||||||
|
|
||||||||||
| file(GLOB_RECURSE ${target}_DOCs CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/docs/${target}/*") | ||||||||||
|
|
@@ -719,6 +745,8 @@ if (MFC_DOCUMENTATION) | |||||||||
| DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${target}-Doxyfile" | ||||||||||
| "${opt_example_dependency}" | ||||||||||
| "${opt_constraints_dependency}" | ||||||||||
| "${opt_cli_reference_dependency}" | ||||||||||
| "${opt_parameters_dependency}" | ||||||||||
| "${${target}_SRCs}" "${${target}_DOCs}" | ||||||||||
| COMMAND "${DOXYGEN_EXECUTABLE}" "${target}-Doxyfile" | ||||||||||
| WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" | ||||||||||
|
|
@@ -745,7 +773,7 @@ if (MFC_DOCUMENTATION) | |||||||||
| ExternalProject_Add(doxygen-awesome-css | ||||||||||
| PREFIX doxygen-awesome-css | ||||||||||
| GIT_REPOSITORY "https://github.com/jothepro/doxygen-awesome-css" | ||||||||||
| GIT_TAG "df88fe4fdd97714fadfd3ef17de0b4401f804052" | ||||||||||
| GIT_TAG "v2.4.1" | ||||||||||
| CONFIGURE_COMMAND "" | ||||||||||
| BUILD_COMMAND "" | ||||||||||
| INSTALL_COMMAND "" | ||||||||||
|
|
@@ -756,7 +784,8 @@ if (MFC_DOCUMENTATION) | |||||||||
|
|
||||||||||
| set(DOXYGEN_HTML_EXTRA_STYLESHEET | ||||||||||
| "\"${theme_dirpath}/doxygen-awesome.css\"\ | ||||||||||
| \"${theme_dirpath}/doxygen-awesome-sidebar-only.css\"") | ||||||||||
| \"${theme_dirpath}/doxygen-awesome-sidebar-only.css\"\ | ||||||||||
| \"${CMAKE_CURRENT_SOURCE_DIR}/docs/custom.css\"") | ||||||||||
|
|
||||||||||
| # > Generate Documentation & Landing Page | ||||||||||
| GEN_DOCS(pre_process "MFC: Pre-Process") | ||||||||||
|
|
||||||||||
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.