From e76b2b82a7ec641d5cbb78bcf03b0bae3bc649eb Mon Sep 17 00:00:00 2001 From: "arsen.podoba" Date: Tue, 28 Apr 2026 10:27:38 +0200 Subject: [PATCH 1/3] Add calendars (Croatia, Malta, Montenegro, North Macedonia, Serbia, Slovenia, Uzbekistan) and currencies (MKDCurrency, UZSCurrency) --- SWIG/calendars.i | 42 ++++++++++++++++++++++++++++++++++++++++++ SWIG/currencies.i | 2 ++ 2 files changed, 44 insertions(+) diff --git a/SWIG/calendars.i b/SWIG/calendars.i index 56fb28d7f..e1e9a126c 100644 --- a/SWIG/calendars.i +++ b/SWIG/calendars.i @@ -172,6 +172,12 @@ namespace QuantLib { Chile(Market m = SSE); }; + class Croatia : public Calendar { + public: + enum Market { ZSE }; + Croatia(Market m = ZSE); + }; + class China : public Calendar { public: enum Market { SSE, IB }; @@ -239,18 +245,36 @@ namespace QuantLib { class Japan : public Calendar {}; + class Malta : public Calendar { + public: + enum Market { MSE }; + Malta(Market m = MSE); + }; + class Mexico : public Calendar { public: enum Market { BMV }; Mexico(Market m = BMV); }; + class Montenegro : public Calendar { + public: + enum Market { MNSE }; + Montenegro(Market m = MNSE); + }; + class NewZealand : public Calendar { public: enum Market { Wellington, Auckland }; NewZealand(Market m = Wellington); }; + class NorthMacedonia : public Calendar { + public: + enum Market { MSE }; + NorthMacedonia(Market m = MSE); + }; + class Norway : public Calendar {}; class Poland : public Calendar { @@ -277,6 +301,12 @@ namespace QuantLib { SaudiArabia(Market m = Tadawul); }; + class Serbia : public Calendar { + public: + enum Market { BSE }; + Serbia(Market m = BSE); + }; + class Singapore : public Calendar { public: enum Market { SGX }; @@ -289,6 +319,12 @@ namespace QuantLib { Slovakia(Market m = BSSE); }; + class Slovenia : public Calendar { + public: + enum Market { LSE }; + Slovenia(Market m = LSE); + }; + class SouthAfrica : public Calendar {}; class SouthKorea : public Calendar { @@ -329,6 +365,12 @@ namespace QuantLib { UnitedStates(Market m); }; + class Uzbekistan : public Calendar { + public: + enum Market { UZSE }; + Uzbekistan(Market m = UZSE); + }; + // others class NullCalendar : public Calendar {}; diff --git a/SWIG/currencies.i b/SWIG/currencies.i index 5ab65a40f..5bf8b9889 100644 --- a/SWIG/currencies.i +++ b/SWIG/currencies.i @@ -143,6 +143,7 @@ class LTLCurrency : public Currency {}; class LUFCurrency : public Currency {}; class LVLCurrency : public Currency {}; class MADCurrency : public Currency {}; +class MKDCurrency : public Currency {}; class MTLCurrency : public Currency {}; class MURCurrency : public Currency {}; class MXNCurrency : public Currency {}; @@ -186,6 +187,7 @@ class VNDCurrency : public Currency {}; class XOFCurrency : public Currency {}; class ZARCurrency : public Currency {}; class ZMWCurrency : public Currency {}; +class UZSCurrency : public Currency {}; // Crypto class BCHCurrency : public Currency {}; From ccf9d9d8054f336824e1e8c3aee6b9817b9c1f19 Mon Sep 17 00:00:00 2001 From: "arsen.podoba" Date: Tue, 28 Apr 2026 13:53:46 +0200 Subject: [PATCH 2/3] Update the workflows to build them using a quantlib fork --- .github/workflows/build-java-devenv.yml | 41 +++++++++++++++++++++++++ .github/workflows/linux.yml | 4 ++- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/build-java-devenv.yml diff --git a/.github/workflows/build-java-devenv.yml b/.github/workflows/build-java-devenv.yml new file mode 100644 index 000000000..da07e9bf0 --- /dev/null +++ b/.github/workflows/build-java-devenv.yml @@ -0,0 +1,41 @@ +name: Build custom Java devenv image +on: + workflow_dispatch: + inputs: + quantlib_repo: + description: 'QuantLib repository with new calendars (owner/repo)' + required: true + quantlib_ref: + description: 'QuantLib branch/tag/commit' + required: true +jobs: + build: + runs-on: ubuntu-latest + permissions: + packages: write + steps: + - uses: actions/checkout@v4 + - name: Checkout QuantLib + uses: actions/checkout@v4 + with: + repository: ${{ github.event.inputs.quantlib_repo }} + path: dockerfiles/QuantLib + ref: ${{ github.event.inputs.quantlib_ref }} + - name: Remove QuantLib git history + run: rm -rf dockerfiles/QuantLib/.git + - name: Login to GitHub Container Registry + uses: docker/login-action@v4 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build images + working-directory: dockerfiles + run: | + docker build -f ci.base.Dockerfile -t ghcr.io/lballabio/quantlib-swig-devenv:base . + docker build -f ci.threadsafe.Dockerfile -t ghcr.io/lballabio/quantlib-swig-devenv:threadsafe . + docker build -f ci.java.Dockerfile -t ghcr.io/lballabio/quantlib-swig-devenv:java . + docker tag ghcr.io/lballabio/quantlib-swig-devenv:java \ + ghcr.io/${{ github.repository_owner }}/quantlib-swig-devenv:java + - name: Push java image + run: docker push ghcr.io/${{ github.repository_owner }}/quantlib-swig-devenv:java diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 5ff6f8451..8f1353d5a 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -17,12 +17,14 @@ jobs: - language: python - language: java config: -old + use_custom_image: true - language: java config: -new + use_custom_image: true - language: csharp - language: r - language: scala - container: ghcr.io/lballabio/quantlib-swig-devenv:${{ matrix.language }} + container: ${{ matrix.use_custom_image && format('ghcr.io/{0}/quantlib-swig-devenv:{1}', github.repository_owner, matrix.language) || format('ghcr.io/lballabio/quantlib-swig-devenv:{0}', matrix.language) }} steps: - uses: actions/checkout@v6 - name: Build From a9a158400ce023e32406fcf177ac0e41190af736 Mon Sep 17 00:00:00 2001 From: "arsen.podoba" Date: Wed, 29 Apr 2026 15:10:19 +0200 Subject: [PATCH 3/3] Revert changes from the previous commit --- .github/workflows/build-java-devenv.yml | 41 ------------------------- .github/workflows/linux.yml | 4 +-- 2 files changed, 1 insertion(+), 44 deletions(-) delete mode 100644 .github/workflows/build-java-devenv.yml diff --git a/.github/workflows/build-java-devenv.yml b/.github/workflows/build-java-devenv.yml deleted file mode 100644 index da07e9bf0..000000000 --- a/.github/workflows/build-java-devenv.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: Build custom Java devenv image -on: - workflow_dispatch: - inputs: - quantlib_repo: - description: 'QuantLib repository with new calendars (owner/repo)' - required: true - quantlib_ref: - description: 'QuantLib branch/tag/commit' - required: true -jobs: - build: - runs-on: ubuntu-latest - permissions: - packages: write - steps: - - uses: actions/checkout@v4 - - name: Checkout QuantLib - uses: actions/checkout@v4 - with: - repository: ${{ github.event.inputs.quantlib_repo }} - path: dockerfiles/QuantLib - ref: ${{ github.event.inputs.quantlib_ref }} - - name: Remove QuantLib git history - run: rm -rf dockerfiles/QuantLib/.git - - name: Login to GitHub Container Registry - uses: docker/login-action@v4 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Build images - working-directory: dockerfiles - run: | - docker build -f ci.base.Dockerfile -t ghcr.io/lballabio/quantlib-swig-devenv:base . - docker build -f ci.threadsafe.Dockerfile -t ghcr.io/lballabio/quantlib-swig-devenv:threadsafe . - docker build -f ci.java.Dockerfile -t ghcr.io/lballabio/quantlib-swig-devenv:java . - docker tag ghcr.io/lballabio/quantlib-swig-devenv:java \ - ghcr.io/${{ github.repository_owner }}/quantlib-swig-devenv:java - - name: Push java image - run: docker push ghcr.io/${{ github.repository_owner }}/quantlib-swig-devenv:java diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 8f1353d5a..5ff6f8451 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -17,14 +17,12 @@ jobs: - language: python - language: java config: -old - use_custom_image: true - language: java config: -new - use_custom_image: true - language: csharp - language: r - language: scala - container: ${{ matrix.use_custom_image && format('ghcr.io/{0}/quantlib-swig-devenv:{1}', github.repository_owner, matrix.language) || format('ghcr.io/lballabio/quantlib-swig-devenv:{0}', matrix.language) }} + container: ghcr.io/lballabio/quantlib-swig-devenv:${{ matrix.language }} steps: - uses: actions/checkout@v6 - name: Build