Skip to content

Update the version to 0.14.0#708

Merged
boulderdaze merged 19 commits intomainfrom
update_version
Dec 16, 2025
Merged

Update the version to 0.14.0#708
boulderdaze merged 19 commits intomainfrom
update_version

Conversation

@boulderdaze
Copy link
Copy Markdown
Collaborator

Update the version to 0.14.0

@github-actions
Copy link
Copy Markdown
Contributor

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Dec 10, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 76.10%. Comparing base (c1e08ad) to head (4ffa582).

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           
Flag Coverage Δ
cpp_fortran 69.61% <ø> (ø)
javascript 90.87% <ø> (ø)
python 82.66% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@boulderdaze boulderdaze self-assigned this Dec 12, 2025
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
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's not modify this file. We can pass arguments to the setup command using the LCOV_ARGS. This PR handles this same issue.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

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
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see above comments, I think we can revert this change

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

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
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see above comments, I think we can revert this change

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

integer :: jO2_index, jO3a_index, jO3b_index

config_path = "configs/v0/chapman"
config_path = "configs/v0/chapman/config.json"
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a good path would be to keep the development parser out of the universal parser, I think

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

CMakeLists.txt Outdated
Comment on lines +3 to +5
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do these need to be added? We already have c++20 turned on for all of our targets.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I encountered the errors that format library are not found and adding this worked. Let me remove it and try it again

@boulderdaze boulderdaze merged commit b31f130 into main Dec 16, 2025
77 of 81 checks passed
@boulderdaze boulderdaze deleted the update_version branch December 16, 2025 16:49
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.

4 participants