Skip to content

Commit 3e63feb

Browse files
committed
Merge branch 'ore_1.8.15.0' into 'master'
ore 1.8.15.0 Closes QPR-13138, QPR-13657, QPR-12587, QPR-13720, QPR-13799, QPR-13719, QPR-13789, QPR-13802, QPR-13776, QPR-13803, QPR-13768, QPR-13801, QPR-13793, QPR-13648, QPR-13656, QPR-13790, QPR-13786, QPR-13777, QPR-13312, QPR-13774, QPR-13781, QPR-13766, QPR-11988, QPR-13765, QPR-13726, QPR-13767, QPR-13703, QPR-11989, QPR-12830, QPR-13714, and QPR-13626 See merge request qs/ore-github!74
2 parents 9b3150d + 5200ec5 commit 3e63feb

318 files changed

Lines changed: 12840 additions & 3335 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/build_windows_pypy.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ jobs:
3535
run: |
3636
swig -version
3737
swig -help
38+
- name: install setuptools
39+
run: |
40+
python --version
41+
pip install setuptools
3842
- name: zlib
3943
run: |
4044
$Url = "https://www.zlib.net/zlib131.zip"

.github/workflows/linux_build.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99
jobs:
1010
build:
1111
name: building
12-
runs-on: ubuntu-22.04
12+
runs-on: ubuntu-latest
1313
steps:
1414
- uses: actions/checkout@v4
1515
with:

.github/workflows/linux_manylinux_wheels_02.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
name: Linux x86_64 ManyLinux Wheels (cp*)
22

33
on:
4+
push:
5+
tags:
6+
- 'v*'
47
workflow_dispatch:
58

69
jobs:

Docker/Dockerfile-ORE-Dependencies

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,6 @@ RUN python3 -m venv /venv
4040
ENV PATH="/venv/bin:$PATH"
4141

4242
RUN \
43-
pip3 install cibuildwheel==3.2.1 && \
43+
pip3 install twine cibuildwheel==3.2.1 && \
4444
rm -rf ~/.cache/pip
4545

Docker/Dockerfile-Wheels-CIBW

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ FROM ${DOCKER_REPO}ore-build-dependencies:${ORE_BUILD_VERSION}
33

44
ARG WHEEL_ARCH
55
ARG WHEEL_IMAGE
6+
ARG WHEELS_VERSION
67

78
ENV PATH="/venv/bin:$PATH"
89

@@ -12,7 +13,9 @@ ENV CIBW_MANYLINUX_AARCH64_IMAGE=${WHEEL_IMAGE}
1213
ENV CIBW_BEFORE_BUILD="chmod +x ORE-SWIG/Wheels-gitlab/before_all_linux.sh && ORE-SWIG/Wheels-gitlab/before_all_linux.sh"
1314

1415
WORKDIR /builds/qs/oreplus/ore
15-
RUN cibuildwheel --output-dir wheelhouse ORE-SWIG
16+
RUN \
17+
python ../ore/Docker/update_version_number.py -f setup.py -v ${WHEELS_VERSION} && \
18+
cibuildwheel --output-dir wheelhouse ORE-SWIG
1619

1720
COPY wheelhouse /wheelhouse
1821

Docker/Dockerfile-Wheels-ORE

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ FROM ${WHEEL_IMG}
44

55
ARG CMAKE_BUILD_TYPE=Release
66
ARG NUM_CORES=16
7+
ARG WHEELS_VERSION
78

89
COPY CMakeLists.txt /ore/CMakeLists.txt
910
COPY QuantLib /ore/QuantLib
@@ -12,6 +13,7 @@ COPY OREData /ore/OREData
1213
COPY OREAnalytics /ore/OREAnalytics
1314
COPY ThirdPartyLibs /ore/ThirdPartyLibs
1415
COPY cmake /ore/cmake
16+
COPY Docker/update_version_number.py /ore
1517

1618
RUN \
1719
dnf -y install clang && \
@@ -24,6 +26,7 @@ ENV CCACHE_MAXSIZE="10G"
2426

2527
WORKDIR /ore
2628
RUN \
29+
python3 update_version_number.py -f version.hpp -v ${WHEELS_VERSION} && \
2730
mkdir build && \
2831
cd build && \
2932
cmake .. -GNinja -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_CXX_FLAGS="-D BOOST_ENABLE_ASSERT_HANDLER $([ "$(uname -m)" = "x86_64" ] && echo "-mavx2")" -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DQL_BUILD_EXAMPLES=OFF -DQL_BUILD_TEST_SUITE=OFF -DQL_ENABLE_PARALLEL_UNIT_TEST_RUNNER=ON -DQL_ENABLE_SESSIONS=ON -DORE_BUILD_APP=OFF -DORE_BUILD_DOC=OFF -DORE_BUILD_EXAMPLES=OFF -DORE_BUILD_SWIG=OFF -DORE_BUILD_TESTS=OFF -DORE_ENABLE_OPENCL=OFF -DORE_ENABLE_PARALLEL_UNIT_TEST_RUNNER=ON -DORE_PYTHON_INTEGRATION=OFF

Docker/update_version_number.py

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
2+
# Invoke this file from the ore directory to
3+
# overwrite the version number in one of the files below:
4+
#
5+
# ORE-SWIG/setup.py
6+
# QuantExt/qle/version.hpp
7+
#
8+
# e.g:
9+
# cd /path/to/ore
10+
# python /path/to/update_version_number.py -v 1.23.45 -f setup.py
11+
# python /path/to/update_version_number.py -v 1.23.45 -f version.hpp
12+
13+
import optparse
14+
import shutil
15+
import re
16+
import os.path
17+
18+
SETUP_PY = "ORE-SWIG/setup.py"
19+
VERSION_HPP = "QuantExt/qle/version.hpp"
20+
21+
# Convert a version string into a string
22+
# containing a corresponding numerical value:
23+
# 1.8.14.0 -> 1081400
24+
# 1.234.5 -> 12340500
25+
# 1.234.5.dev1 -> 12340501
26+
def version_string_to_number(v):
27+
ret = ""
28+
# match x.x.x or x.x.x.x
29+
# where x = one or more alphanumeric characters
30+
p = r"(\w*)\.(\w*)\.(\w*)(?:\.(\w*))?"
31+
m = re.match(p, v)
32+
if not m:
33+
raise Exception("version string '{v}' has invalid format, expected x.x.x or x.x.x.x where x in [a-zA-Z0-9_]")
34+
for x in m.groups():
35+
x = re.sub("[^0-9]", "", x or "")
36+
if x:
37+
ret += x.zfill(2)
38+
else:
39+
ret += '00'
40+
return ret.lstrip('0')
41+
42+
# Parse the command line arguments
43+
parser = optparse.OptionParser()
44+
parser.add_option('-f', '--file')
45+
parser.add_option('-v', '--version')
46+
opts, args = parser.parse_args()
47+
file = opts.file
48+
version = opts.version
49+
50+
if file is None:
51+
raise Exception("missing input parameter --file")
52+
53+
if version is None:
54+
raise Exception("missing input parameter --version")
55+
56+
def find_and_replace(file, repl):
57+
58+
if not os.path.isfile(file):
59+
raise Exception(f"invalid path: {file}")
60+
61+
shutil.copy(file, file + ".bak")
62+
63+
with open(file) as f:
64+
s = f.read()
65+
66+
for (p, r) in repl:
67+
s = re.sub(p, r, s)
68+
69+
with open(file, 'w') as f:
70+
f.write(s)
71+
72+
if file == "setup.py":
73+
find_and_replace(SETUP_PY, [(r'(version\s*=\s*").*(")', fr'\g<1>{version}\g<2>')])
74+
elif file == "version.hpp":
75+
version_num = version_string_to_number(version)
76+
find_and_replace(VERSION_HPP, [
77+
(r'(#define OPEN_SOURCE_RISK_VERSION ").*(")', fr'\g<1>{version}\g<2>'),
78+
(r'(#define OPEN_SOURCE_RISK_VERSION_NUM ).*', fr'\g<1>{version_num}')])
79+
else:
80+
raise Exception(f"unrecognized file: {file}")
81+

Docs/AMC/amc.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@
9696
\begin{document}
9797

9898
\title{ORE AMC Module 1.8.14}
99-
\author{Quaternion Risk Management}
100-
\date{30 October 2025}
99+
%\author{Quaternion Risk Management}
100+
\date{30 January 2026}
101101
\maketitle
102102

103103
\newpage

Docs/BondPricingConfig/bondpricingconfig.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@
9696
\begin{document}
9797

9898
\title{Bond Pricing Configuration in ORE}
99-
\author{Acadia - An LSEG Business}
100-
\date{30 October 2025}
99+
%\author{Acadia - An LSEG Business}
100+
\date{30 January 2026}
101101
\maketitle
102102

103103
\newpage

Docs/ComputeEnvironment/computeenvironment.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@
7474
\begin{document}
7575

7676
\title{ORE Compute Framework Interface}
77-
\author{Acadia}
78-
\date{30 October 2025}
77+
%\author{Acadia}
78+
\date{30 January 2026}
7979
\maketitle
8080

8181
\newpage

0 commit comments

Comments
 (0)