Conversation
…e mech config update
|
📄 Documentation for this branch is available at: https://ncar.github.io/musica/branch/update_version/ |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #708 +/- ##
=======================================
Coverage 76.10% 76.10%
=======================================
Files 105 105
Lines 7768 7768
=======================================
Hits 5912 5912
Misses 1856 1856
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR updates the MUSICA project to version 0.14.0, which includes several breaking changes and dependency updates alongside systematic configuration path updates across all test files and documentation.
Key Changes:
- Version bumped from 0.13.0 to 0.14.0 across CMakeLists.txt and CITATION.cff
- Configuration paths updated from directory references to explicit config.json file paths throughout all test suites
- Dependency updates: MICM to v3.11.0, TUV-x to v0.14.0, and MechanismConfiguration to v1.1.0
- Python minimum version raised from 3.9 to 3.10 with corresponding build configuration updates
- C++ standard upgraded to C++20
- Build infrastructure improvements including macOS Clang compiler override and LCOV error handling
Reviewed changes
Copilot reviewed 23 out of 23 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| CMakeLists.txt | Updated project version to 0.14.0 and set C++ standard to C++20 |
| CITATION.cff | Updated version number to 0.14.0 |
| cmake/dependencies.cmake | Updated dependency versions: MechanismConfiguration to v1.1.0, MICM to v3.11.0, TUV-x to v0.14.0 |
| cmake/CodeCoverage.cmake | Added LCOV error handling flags for mismatch and unused errors |
| docker/Dockerfile.coverage | Updated base image from Fedora 37 to Fedora 39 |
| pyproject.toml | Raised minimum Python to 3.10, removed cp39 builds, added macOS Clang compiler override |
| include/musica/micm/parse.hpp | Added v0 and v1 mechanism configuration type includes |
| src/micm/convert_v0_to_v1.cpp | Added v0 parser include for conversion functionality |
| src/test/unit/micm/parser.cpp | Updated all config paths to point to config.json files |
| src/test/unit/micm/micm_wrapper.cpp | Updated config path to point to config.json file |
| src/test/unit/micm/micm_c_api.cpp | Updated all config paths to point to config.json files |
| python/test/unit/micm/test_micm.py | Updated all config paths to point to config.json files |
| python/test/integration/test_chapman.py | Updated config path to point to config.json file |
| python/test/integration/test_analytical.py | Updated all config paths to point to config.json files, added trailing newline |
| javascript/tests/unit/micm/state.test.js | Updated config path to point to config.json file |
| javascript/tests/unit/micm/micm.test.js | Updated config path to point to config.json file |
| javascript/tests/integration/chapman.test.js | Updated config path to point to config.json file |
| javascript/tests/integration/analytical.test.js | Updated config path to point to config.json file |
| fortran/test/fetch_content_integration/test_micm_multiple_grid_cells.F90 | Updated config path to point to config.json file |
| fortran/test/fetch_content_integration/test_micm_box_model.F90 | Updated config paths to point to config.json files |
| fortran/test/fetch_content_integration/test_micm_api.F90 | Updated all config paths to point to config.json files |
| docs/source/user_guide/examples/index.rst | Updated documentation links to point to config.json files |
| docs/source/tutorials/chapter3.rst | Updated documentation reference (contains error - see comments) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
cmake/CodeCoverage.cmake
Outdated
| set(LCOV_BASELINE_CMD | ||
| ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -c -i -d . -b | ||
| ${BASEDIR} -o ${Coverage_NAME}.base | ||
| ${BASEDIR} --ignore-errors mismatch -o ${Coverage_NAME}.base |
There was a problem hiding this comment.
Let's not modify this file. We can pass arguments to the setup command using the LCOV_ARGS. This PR handles this same issue.
cmake/CodeCoverage.cmake
Outdated
| set(LCOV_CAPTURE_CMD | ||
| ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} --directory . -b | ||
| ${BASEDIR} --capture --output-file ${Coverage_NAME}.capture | ||
| ${BASEDIR} --capture --ignore-errors mismatch --output-file ${Coverage_NAME}.capture |
There was a problem hiding this comment.
see above comments, I think we can revert this change
cmake/CodeCoverage.cmake
Outdated
| set(LCOV_FILTER_CMD | ||
| ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} --remove | ||
| ${Coverage_NAME}.total ${LCOV_EXCLUDES} --output-file ${Coverage_NAME}.info | ||
| ${Coverage_NAME}.total ${LCOV_EXCLUDES} --ignore-errors unused --output-file ${Coverage_NAME}.info |
There was a problem hiding this comment.
see above comments, I think we can revert this change
| integer :: jO2_index, jO3a_index, jO3b_index | ||
|
|
||
| config_path = "configs/v0/chapman" | ||
| config_path = "configs/v0/chapman/config.json" |
There was a problem hiding this comment.
Why are we adding the path? This isn't how this solver used to work. If we are required to have the file now, this will break downstream things and I'd rather not go through the process of updating music box, music box interactive to be compatible. Can this and the other paths be removed?
There was a problem hiding this comment.
Since the version check is done to get the exact parser that matched the version, the function takes the file path instead of a directory. I understand your concerns and will open a PR that allows a directory in mech config
There was a problem hiding this comment.
a good path would be to keep the development parser out of the universal parser, I think
CMakeLists.txt
Outdated
| set(CMAKE_CXX_STANDARD 20) | ||
| set(CMAKE_CXX_STANDARD_REQUIRED ON) | ||
|
|
There was a problem hiding this comment.
Do these need to be added? We already have c++20 turned on for all of our targets.
There was a problem hiding this comment.
I encountered the errors that format library are not found and adding this worked. Let me remove it and try it again
Update the version to 0.14.0