#11489 - Transition App Needing Write Access in Install Directory + improve updater#11616
Merged
Conversation
…_DEPLOYMENT_TARGET=13.0. Apple's libc++ marks to_chars for floating-point types (including long double) as unavailable below macOS 13.0 (Ventura). std::format with floating-point arguments internally calls to_chars, so the whole chain requires 13.0 minimum
1. Matrix key changed from macos_dev_target to os — cleaner since the OS runner is the stable identifier, with macos_dev_target as a per-include property rather than the primary dimension. 2. x86-64 deployment target bumped from 12.1 to 13.3 — necessary for std::format with floating-point.
jmarrec
commented
Jun 3, 2026
| PKGS = { | ||
| "energyplus_launch": "3.7.4", | ||
| "energyplus_transition_tools": "2.1.4", | ||
| "energyplus_transition_tools": "3.0.0", |
Comment on lines
+277
to
+302
| auto *updaterCLISubCommand = auxiliaryToolsSubcommand->add_subcommand("updater-cli", "IDF Version Updater CLI"); | ||
| updaterCLISubCommand->allow_extras(); | ||
| updaterCLISubCommand->footer("You can pass extra arguments after the updater-cli keyword, they will be forwarded to IDF Version Updater.\n" | ||
| "To get updater-cli's help, invoke without any arguments."); | ||
|
|
||
| updaterCLISubCommand->callback([&state, updaterCLISubCommand] { | ||
| EnergyPlus::Python::PythonEngine engine(state); | ||
| auto const &fwd_args = updaterCLISubCommand->remaining(); | ||
|
|
||
| std::string cmd = R"python(import sys | ||
| sys.argv = ["energyplus auxiliary updater-cli"] | ||
|
|
||
| from energyplus_transition.cli import main | ||
| main([)python"; | ||
| if (fwd_args.empty()) { | ||
| cmd += "\"--help\""; | ||
| } else { | ||
| for (const auto &arg : fwd_args) { | ||
| cmd += EnergyPlus::format("\"{}\", ", arg); | ||
| } | ||
| } | ||
| cmd += "])\n"; | ||
| engine.exec(cmd); | ||
| exit(0); | ||
| }); | ||
|
|
Contributor
Author
There was a problem hiding this comment.
New energyplus auxliary updater-cli command
usage: energyplus auxiliary updater-cli [-h] [-e DIR] [-s] [-v] [-p] [-j N] [-t VERSION] IDF_FILE [IDF_FILE ...]
Transition EnergyPlus IDF files to a newer version
positional arguments:
IDF_FILE IDF/IMF/lst file(s) to transition
options:
-h, --help show this help message and exit
-e DIR, --eplus-dir DIR
EnergyPlus installation directory (auto-detected if omitted)
-s, --save-intermediate
Save intermediate versions during transitioning
-v, --verbose Enable verbose output
-p, --progress Show a tqdm progress bar
-j N, --jobs N Number of parallel workers (default: number of CPUs)
-t VERSION, --to-version VERSION
Stop transitioning at this target version (e.g. 24.2)
Example, with fancy TQDM progress bars:
energyplus auxiliary updater-cli --save-intermediate --progress ~/Downloads/tmp/*.idf
jmarrec
commented
Jun 3, 2026
Comment on lines
+16
to
+22
| # Raise an error if attempting to compile on macOS older than 13.3 - it does not work | ||
| # 10.15 minimum for std::filesystem, 13.3 minimum for std::format with floating-point (to_chars) | ||
| if (APPLE) | ||
| if(NOT CMAKE_OSX_DEPLOYMENT_TARGET) | ||
| message(FATAL_ERROR "CMAKE_OSX_DEPLOYMENT_TARGET not set. Please set CMAKE_OSX_DEPLOYMENT_TARGET to 10.15 or greater and try again.") | ||
| elseif (CMAKE_OSX_DEPLOYMENT_TARGET VERSION_LESS "10.15") | ||
| message(FATAL_ERROR "The minimum required version for macOS is 10.15, however CMAKE_OSX_DEPLOYMENT_TARGET is set to ${CMAKE_OSX_DEPLOYMENT_TARGET}.") | ||
| message(FATAL_ERROR "CMAKE_OSX_DEPLOYMENT_TARGET not set. Please set CMAKE_OSX_DEPLOYMENT_TARGET to 13.3 or greater and try again.") | ||
| elseif (CMAKE_OSX_DEPLOYMENT_TARGET VERSION_LESS "13.3") | ||
| message(FATAL_ERROR "The minimum required version for macOS is 13.3, however CMAKE_OSX_DEPLOYMENT_TARGET is set to ${CMAKE_OSX_DEPLOYMENT_TARGET}.") |
Comment on lines
+32
to
+41
| os: [macos-15-intel, macos-14] | ||
| include: | ||
| - macos_dev_target: 12.1 | ||
| os: macos-15-intel | ||
| - os: macos-15-intel | ||
| macos_dev_target: 13.3 | ||
| allow_failure: false | ||
| arch: x86_64 | ||
| python-arch: x64 | ||
| pretty: "Mac x64" | ||
| - macos_dev_target: 14.0 | ||
| os: macos-14 | ||
| - os: macos-14 | ||
| macos_dev_target: 14.0 |
Contributor
Author
|
Tested on a clean Ubuntu 24.04 with https://github.com/jmarrec/EnergyPlus/releases/tag/v26.2.0-Updater4 |
Collaborator
|
Tested this on Mac using the installer from the link posted above, which is one of the places I was having trouble. I installed via the standard process, which on Mac drops the install into the To test, I grabbed a random collection of v24.1 files, dropped them into a temporary directory and then bulk-applied the transitions. All transitions completed successfully, but I did not attempt to run the files. This all looks good to me. Merging. |
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
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.
Pull request overview
The changes are mostly on the python utility itself:
Incidentally also fixed the release_mac since I tested a bunch of them on my fork. std::format needs OSX deployment target = 13.3 minimum
Description of the purpose of this PR
Pull Request Author
Reviewer