Skip to content

Commit 398da49

Browse files
author
Amir Roth
committed
Merge develop, resolve conflicts
2 parents bae1625 + 5cdea0e commit 398da49

1,020 files changed

Lines changed: 122158 additions & 20168 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,12 @@ This README is really just a place to drop current status while I figure out wha
1515
- Linux takes 5 minutes and Windows takes 9 minutes
1616
- build_wheels.yml
1717
- Runs on demand, on Linux only for now
18-
- release_*.yml
18+
- release_documentation.yml
1919
- Only works on tags
20-
- Runs on all three platforms
20+
- Build and publish the PDF documentation.
21+
- release_linux.yml, release_mac.yml, release_windows.yml
22+
- Only work on tags
23+
- Build and publish the platform-specific release packages for Linux, macOS, and Windows
2124
- test_code_integrity.yml
2225
- Runs on Linux, about 22 minutes
2326
- test_debug_builds.yml
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
name: Release Documentation
2+
3+
on:
4+
push:
5+
tags:
6+
- '*'
7+
8+
defaults:
9+
run:
10+
shell: bash
11+
12+
env:
13+
PYTHON_VERSION: '3.12'
14+
15+
jobs:
16+
build_release_documentation:
17+
name: Build and Package Documentation
18+
runs-on: ubuntu-24.04
19+
permissions:
20+
contents: write
21+
22+
steps:
23+
- name: Checkout EnergyPlus
24+
uses: actions/checkout@v6
25+
26+
- name: Set up Python ${{ env.PYTHON_VERSION }}
27+
uses: actions/setup-python@v6
28+
with:
29+
python-version: ${{ env.PYTHON_VERSION }}
30+
31+
- name: Install LaTeX dependencies
32+
run: |
33+
sudo apt-get update
34+
sudo apt-get install -y texlive texlive-xetex texlive-science zip
35+
36+
- name: Configure documentation build
37+
run: cmake -S doc -B build/doc-release -DTEX_INTERACTION:STRING=batchmode
38+
39+
- name: Build documentation
40+
run: cmake --build build/doc-release --target package -j $(nproc)
41+
42+
- name: Convert documentation tarball to zip
43+
run: |
44+
archive=$(find "$GITHUB_WORKSPACE/build/doc-release" -maxdepth 1 -name 'EnergyPlus-PDFDocumentation-*.tar.gz' -print -quit)
45+
if [ -z "$archive" ]; then
46+
echo "Expected documentation tarball was not found"
47+
exit 1
48+
fi
49+
zip_path="${archive%.tar.gz}.zip"
50+
temp_dir=$(mktemp -d)
51+
trap 'rm -rf "$temp_dir"' EXIT
52+
tar -xzf "$archive" -C "$temp_dir"
53+
(
54+
cd "$temp_dir"
55+
zip -r "$zip_path" .
56+
)
57+
58+
- name: Upload documentation tar.gz artifact
59+
uses: actions/upload-artifact@v7
60+
with:
61+
name: documentation-tar-gz
62+
path: build/doc-release/EnergyPlus-PDFDocumentation-*.tar.gz
63+
if-no-files-found: error
64+
retention-days: 7
65+
66+
- name: Upload documentation zip artifact
67+
uses: actions/upload-artifact@v7
68+
with:
69+
name: documentation-zip
70+
path: build/doc-release/EnergyPlus-PDFDocumentation-*.zip
71+
if-no-files-found: error
72+
retention-days: 7
73+
74+
- name: Upload documentation tar.gz to release
75+
uses: svenstaro/upload-release-action@v2
76+
with:
77+
repo_token: ${{ secrets.GITHUB_TOKEN }}
78+
file: build/doc-release/EnergyPlus-PDFDocumentation-*.tar.gz
79+
tag: ${{ github.ref }}
80+
overwrite: true
81+
file_glob: true
82+
83+
- name: Upload documentation zip to release
84+
uses: svenstaro/upload-release-action@v2
85+
with:
86+
repo_token: ${{ secrets.GITHUB_TOKEN }}
87+
file: build/doc-release/EnergyPlus-PDFDocumentation-*.zip
88+
tag: ${{ github.ref }}
89+
overwrite: true
90+
file_glob: true

.github/workflows/test_code_integrity.yml

Lines changed: 10 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ on:
77
branches: [ develop ]
88
workflow_dispatch:
99

10+
env:
11+
Python_REQUIRED_VERSION: 3.12.3 # 3.12.2 not available on Ubuntu 24 GHA
12+
1013
jobs:
1114
code_integrity_checks:
1215
name: Static Code Analysis
@@ -16,10 +19,15 @@ jobs:
1619
with:
1720
fetch-depth: 2
1821

22+
- name: Set up Python ${{ env.Python_REQUIRED_VERSION }}
23+
uses: actions/setup-python@v6
24+
with:
25+
python-version: ${{ env.Python_REQUIRED_VERSION }}
26+
1927
- name: Pip install dependencies
2028
if: always()
2129
run: |
22-
pip install pre-commit tabulate
30+
python -m pip install pre-commit tabulate
2331
2432
- name: Run pre-commit
2533
id: pre_commit
@@ -202,7 +210,7 @@ jobs:
202210
-D__cppcheck__ -UEP_Count_Calls -DEP_NO_OPENGL -UGROUND_PLOT -DLINK_WITH_PYTHON -DMSVC_DEBUG -DSKYLINE_MATRIX_REMOVE_ZERO_COLUMNS -U_OPENMP -Ugeneratetestdata
203211
-DEP_cache_GlycolSpecificHeat -DEP_cache_PsyTsatFnPb -UEP_nocache_Psychrometrics -UEP_psych_errors -UEP_psych_stats
204212
--force
205-
--std=c++17
213+
--std=c++20
206214
--inline-suppr
207215
--suppress=missingInclude
208216
--suppress=missingIncludeSystem
@@ -215,35 +223,6 @@ jobs:
215223
--enable=all
216224
-j $(nproc)
217225
--template='[{file}:{line}]:({severity}),[{id}],{message}'
218-
--suppress="uninitvar:*" \
219-
--suppress="arrayIndexThenCheck:*" \
220-
--suppress="checkLevelNormal:*" \
221-
--suppress="constParameterPointer:*" \
222-
--suppress="constParameterReference:*" \
223-
--suppress="constVariable:*" \
224-
--suppress="constVariablePointer:*" \
225-
--suppress="constVariableReference:*" \
226-
--suppress="cstyleCast:*" \
227-
--suppress="duplicateCondition:*" \
228-
--suppress="duplicateExpression:*" \
229-
--suppress="knownConditionTrueFalse:*" \
230-
--suppress="multiCondition:*" \
231-
--suppress="noExplicitConstructor:*" \
232-
--suppress="passedByValueCallback:*" \
233-
--suppress="redundantAssignment:*" \
234-
--suppress="redundantCondition:*" \
235-
--suppress="redundantInitialization:*" \
236-
--suppress="sameIteratorExpression:*" \
237-
--suppress="shadowFunction:*" \
238-
--suppress="shadowVariable:*" \
239-
--suppress="unassignedVariable:*" \
240-
--suppress="unmatchedSuppression:*" \
241-
--suppress="unpreciseMathCall:*" \
242-
--suppress="unreadVariable:*" \
243-
--suppress="useInitializationList:*" \
244-
--suppress="useStlAlgorithm:*" \
245-
--suppress="uselessAssignmentArg:*" \
246-
--suppress="uselessCallsSubstr:*" \
247226
./src
248227
3>&1 1>&2 2>&3 | tee cppcheck.txt
249228

.github/workflows/test_pull_requests.yml

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,30 @@ jobs:
2323
macos_dev_target: 14.0
2424
arch: arm64
2525
python-arch: arm64
26+
enable_pch: ON
2627
run_regressions: true
2728
pretty: "Mac arm64"
2829
- os: ubuntu-24.04
2930
arch: x86_64
3031
python-arch: x64
32+
enable_pch: ON
3133
run_regressions: true
3234
pretty: "Ubuntu 24.04"
3335
- os: windows-2022
3436
arch: x86_64
3537
python-arch: x64
38+
enable_pch: OFF
3639
run_regressions: false
3740
pretty: "Windows x64"
3841

3942
steps:
4043

41-
- uses: actions/checkout@v6
44+
- name: Checkout PR head
45+
uses: actions/checkout@v6
46+
with:
47+
repository: ${{ github.event.pull_request.head.repo.full_name }}
48+
ref: ${{ github.event.pull_request.head.sha }}
49+
fetch-depth: 0
4250

4351
- name: Setup System
4452
id: setup-runner
@@ -50,21 +58,26 @@ jobs:
5058
- name: Get Develop and Branch Git SHA
5159
shell: bash
5260
run: |
53-
echo "Figuring out the develop GIT SHA"
54-
# github.event.pull_request.base.sha points to develop at the time the PR was created, not the current one
55-
DEVELOP_SHA=$(git ls-remote https://github.com/$GITHUB_REPOSITORY.git develop | cut -f1 | cut -c1-10)
56-
echo "Develop GIT SHA is '${DEVELOP_SHA}'"
61+
echo "Figuring out the develop GIT SHA already merged into the PR branch"
62+
BASE_BRANCH="${{ github.base_ref }}"
63+
if git remote get-url upstream >/dev/null 2>&1; then
64+
git remote set-url upstream "https://github.com/$GITHUB_REPOSITORY.git"
65+
else
66+
git remote add upstream "https://github.com/$GITHUB_REPOSITORY.git"
67+
fi
68+
git fetch --no-tags upstream "refs/heads/${BASE_BRANCH}:refs/remotes/upstream/${BASE_BRANCH}"
69+
DEVELOP_SHA=$(git merge-base HEAD "upstream/${BASE_BRANCH}")
70+
echo "Develop GIT SHA merged into this branch is '${DEVELOP_SHA}'"
5771
echo "DEVELOP_SHA=$DEVELOP_SHA" >> $GITHUB_ENV
5872
5973
CURRENT_HEAD_SHA=${{ github.event.pull_request.head.sha }}
6074
echo "Current Branch HEAD SHA is '${CURRENT_HEAD_SHA}'"
61-
echo "CURRENT_HEAD_SHA=$DEVELOP_SHA" >> $GITHUB_ENV
75+
echo "CURRENT_HEAD_SHA=$CURRENT_HEAD_SHA" >> $GITHUB_ENV
6276
63-
echo "Current merge commit SHA is '${GITHUB_SHA}'"
77+
echo "GitHub synthetic merge commit SHA is '${GITHUB_SHA}'"
6478
echo "::endgroup::"
65-
# We default to using PCH, in case we don't find the baseline reg tests,
66-
# since it speeds up the build significantly and we'll build TWICE
67-
echo "ENABLE_PCH=ON" >> $GITHUB_ENV
79+
# Default PCH behavior is per-platform, then regression-cache hits may override it.
80+
echo "ENABLE_PCH=${{ matrix.enable_pch }}" >> $GITHUB_ENV
6881
6982
- name: Baseline Regression Testing caching
7083
uses: actions/cache@v5
@@ -92,8 +105,6 @@ jobs:
92105
restore-keys: |
93106
ccache-${{ matrix.os }}-${{ steps.setup-runner.outputs.compiler-id }}-${{ github.head_ref }}
94107
ccache-${{ matrix.os }}-${{ steps.setup-runner.outputs.compiler-id }}-${{ env.DEVELOP_SHA }}
95-
ccache-${{ matrix.os }}-${{ steps.setup-runner.outputs.compiler-id }}-
96-
ccache-${{ matrix.os }}-
97108
98109
- name: Did restoring the CCache-cache work?
99110
shell: bash
@@ -140,7 +151,8 @@ jobs:
140151
if: matrix.run_regressions && steps.cachebaselineregression.outputs.cache-hit != 'true'
141152
uses: actions/checkout@v6
142153
with:
143-
ref: develop
154+
repository: ${{ github.repository }}
155+
ref: ${{ env.DEVELOP_SHA }}
144156
clean: false # Do NOT wipe the build/ and .ccache folder (`git clean -ffdx && git reset --hard HEAD`)
145157

146158
- name: Baseline Configure and Build
@@ -184,6 +196,8 @@ jobs:
184196
if: matrix.run_regressions && steps.cachebaselineregression.outputs.cache-hit != 'true'
185197
uses: actions/checkout@v6
186198
with:
199+
repository: ${{ github.event.pull_request.head.repo.full_name }}
200+
ref: ${{ env.CURRENT_HEAD_SHA }}
187201
clean: false # Do NOT wipe the build/ and .ccache folder (`git clean -ffdx && git reset --hard HEAD`)
188202

189203
- name: Install problem matcher

cmake/Version.cmake

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
set(CMAKE_VERSION_MAJOR 26)
2-
set(CMAKE_VERSION_MINOR 1)
2+
set(CMAKE_VERSION_MINOR 2)
33
set(CMAKE_VERSION_PATCH 0)
44

5-
set(CMAKE_PROJECTED_RELEASE_DATE "31 March 2026")
5+
set(CMAKE_PROJECTED_RELEASE_DATE "30 September 2026")
66

7-
set(PREV_RELEASE_MAJOR 25)
8-
set(PREV_RELEASE_MINOR 2)
7+
set(PREV_RELEASE_MAJOR 26)
8+
set(PREV_RELEASE_MINOR 1)
99
set(PREV_RELEASE_PATCH 0)
10-
set(PREV_RELEASE_SHA "cf73682")
10+
set(PREV_RELEASE_SHA "6f2e40d102")
1111

1212
set(ENERGYPLUS_VERSION "${CMAKE_VERSION_MAJOR}.${CMAKE_VERSION_MINOR}.${CMAKE_VERSION_PATCH}")
1313

doc/CMakeLists.txt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,24 @@ if(EXISTS ${XELATEX})
6161
add_subdirectory(plant-application-guide)
6262
add_subdirectory(using-energyplus-for-compliance)
6363

64+
if(NOT hasParent)
65+
# Standalone build of the doc/ folder: package the generated PDFs into a TGZ/ZIP archive
66+
if(WIN32)
67+
set(CPACK_GENERATOR "ZIP")
68+
else()
69+
set(CPACK_GENERATOR "TGZ")
70+
endif()
71+
72+
set(CPACK_PACKAGE_FILE_NAME
73+
"EnergyPlus-PDFDocumentation-${CMAKE_VERSION_MAJOR}.${CMAKE_VERSION_MINOR}.${CMAKE_VERSION_PATCH}-${CMAKE_VERSION_BUILD}")
74+
75+
message("Installer name is set to '${CPACK_PACKAGE_FILE_NAME}'")
76+
77+
install(DIRECTORY "${PROJECT_BINARY_DIR}/pdf/" DESTINATION ".")
78+
79+
include(CPack)
80+
endif()
81+
6482
else()
6583
# and if it doesn't, clearly state why it fails
6684
message(FATAL_ERROR "Expected to find xelatex at: ${XELATEX} ; check your LaTeX installation")

0 commit comments

Comments
 (0)