From e0834f8a47c92b31b12ea5c870e7dc713a39c8fe Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 08:43:38 +0200 Subject: [PATCH 01/18] Bump libcosimc version to 0.11.2 and update package version to 0.0.6 --- conanfile.py | 2 +- src/libcosimpy/__about__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 060fa30..f6d7620 100644 --- a/conanfile.py +++ b/conanfile.py @@ -4,7 +4,7 @@ class LibCosimpyConanDependency(ConanFile): name = "libcosimpy-recipe" - requires = "libcosimc/0.11.0@osp/stable" + requires = "libcosimc/0.11.2@osp/stable" default_options = { "libcosim/*:proxyfmu": True, } diff --git a/src/libcosimpy/__about__.py b/src/libcosimpy/__about__.py index b1a19e3..034f46c 100644 --- a/src/libcosimpy/__about__.py +++ b/src/libcosimpy/__about__.py @@ -1 +1 @@ -__version__ = "0.0.5" +__version__ = "0.0.6" From c8e238192608571f677fb452130225cbb6bc43cb Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 08:59:01 +0200 Subject: [PATCH 02/18] Update CI workflow and build scripts for improved Conan integration --- .github/workflows/ci-main.yml | 15 ++++++++++++--- hatch_build.py | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index e600e6a..834d1d8 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -1,7 +1,15 @@ name: libcosimpy CI # This workflow is triggered on pushes to the repository. -on: [push, workflow_dispatch] +on: + push: + workflow_dispatch: + inputs: + conan_build: + description: 'Conan build params' + required: false + type: string + default: "-b missing" jobs: code_quality: @@ -49,10 +57,11 @@ jobs: enable-cache: true cache-dependency-glob: "uv.lock" - name: Build wheels - uses: pypa/cibuildwheel@v3.3.0 + uses: pypa/cibuildwheel@v3.4.1 env: CIBW_BUILD: "${{ matrix.python-version }}-win_amd64 ${{ matrix.python-version }}-manylinux_x86_64" CIBW_BUILD_FRONTEND: build[uv] + CIBW_CONFIG_SETTINGS: "CONAN_BUILD=${{ inputs.conan_build }}" CIBW_ENVIRONMENT: > CONAN_UPLOAD_OSP=1 CONAN_LOGIN_USERNAME_OSP=${{ secrets.osp_artifactory_usr }} @@ -75,7 +84,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-python@v5 with: - python-version: 3.11 + python-version: 3.14 - name: Build source run: | pip install build twine diff --git a/hatch_build.py b/hatch_build.py index cd4a0e9..e837095 100644 --- a/hatch_build.py +++ b/hatch_build.py @@ -36,7 +36,7 @@ def initialize(self, version: str, build_data: dict[str, Any]) -> None: build_packages = "-b missing" install_cmd_str = ( - f"conan install . -u {build_packages} -of build --format json -b b2/* -b m4/* --out-file graph.json" + f"conan install . -u {build_packages} -of build --format json --out-file graph.json" ) install_args = shlex.split(install_cmd_str) From 5c2f059e2122a812c4e17171ece19c38237d5446 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 09:04:59 +0200 Subject: [PATCH 03/18] Updated --- .github/workflows/ci-main.yml | 4 +- pyproject.toml | 4 +- uv.lock | 88 +++++++++++++++++++---------------- 3 files changed, 51 insertions(+), 45 deletions(-) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 834d1d8..f103e52 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -6,10 +6,10 @@ on: workflow_dispatch: inputs: conan_build: - description: 'Conan build params' + description: 'Conan build params, separated by comma (,)' required: false type: string - default: "-b missing" + default: "missing" jobs: code_quality: diff --git a/pyproject.toml b/pyproject.toml index fa328f5..d7e87ad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -46,8 +46,8 @@ exclude = ["tests", ".github"] [tool.hatch.build.targets.wheel.hooks.custom] dependencies = [ "conan>=2.27.0", - "hatchling~=1.13", - "cmake>=3.10,<4.0", + "hatchling>=1.29.0", + "cmake>=4.0", "patchelf>=0.17.2; platform_system == 'Linux'" ] diff --git a/uv.lock b/uv.lock index 1fe2812..5089535 100644 --- a/uv.lock +++ b/uv.lock @@ -4,11 +4,11 @@ requires-python = ">=3.11, <3.15" [[package]] name = "certifi" -version = "2026.2.25" +version = "2026.4.22" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" } +sdist = { url = "https://files.pythonhosted.org/packages/25/ee/6caf7a40c36a1220410afe15a1cc64993a1f864871f698c0f93acb72842a/certifi-2026.4.22.tar.gz", hash = "sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580", size = 137077, upload-time = "2026-04-22T11:26:11.191Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" }, + { url = "https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl", hash = "sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a", size = 135707, upload-time = "2026-04-22T11:26:09.372Z" }, ] [[package]] @@ -111,7 +111,7 @@ wheels = [ [[package]] name = "conan" -version = "2.27.1" +version = "2.28.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama" }, @@ -124,7 +124,10 @@ dependencies = [ { name = "requests" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f9/65/5be3cb2f2657c11f02e0a3a2d27a3014c8c025ed963442e580aea4269089/conan-2.27.1.tar.gz", hash = "sha256:64814e66995bc341057cd051693ce13606dc3027b984a133202bc796892af967", size = 570560, upload-time = "2026-04-13T10:20:40.934Z" } +sdist = { url = "https://files.pythonhosted.org/packages/54/89/5b9d6cca677e57b67560aa3b7f82728127889ce74bb91171ded6f28e42b8/conan-2.28.1.tar.gz", hash = "sha256:e4ed10123751bf2931c32c33cadafe4881c72e1c22a1c97b19cb75780692fae5", size = 575674, upload-time = "2026-04-30T11:24:57.195Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/a9/a01c6ffbdcbcae845e574e2ec073aa0ada67bf5d57f9d692b92eee9f09a5/conan-2.28.1-py3-none-any.whl", hash = "sha256:9dea478d853f675a924933771d55434d3fefb4f629b334be37b7c9cacfc3f5b3", size = 716362, upload-time = "2026-04-30T11:24:55.318Z" }, +] [[package]] name = "distro" @@ -146,11 +149,11 @@ wheels = [ [[package]] name = "idna" -version = "3.11" +version = "3.15" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +sdist = { url = "https://files.pythonhosted.org/packages/82/77/7b3966d0b9d1d31a36ddf1746926a11dface89a83409bf1483f0237aa758/idna-3.15.tar.gz", hash = "sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc", size = 199245, upload-time = "2026-05-12T22:45:57.011Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, + { url = "https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl", hash = "sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8", size = 72340, upload-time = "2026-05-12T22:45:55.733Z" }, ] [[package]] @@ -281,18 +284,21 @@ wheels = [ [[package]] name = "packaging" -version = "26.1" +version = "26.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/df/de/0d2b39fb4af88a0258f3bac87dfcbb48e73fbdea4a2ed0e2213f9a4c2f9a/packaging-26.1.tar.gz", hash = "sha256:f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de", size = 215519, upload-time = "2026-04-14T21:12:49.362Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload-time = "2026-04-24T20:15:23.917Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7a/c2/920ef838e2f0028c8262f16101ec09ebd5969864e5a64c4c05fad0617c56/packaging-26.1-py3-none-any.whl", hash = "sha256:5d9c0669c6285e491e0ced2eee587eaf67b670d94a19e94e3984a481aba6802f", size = 95831, upload-time = "2026-04-14T21:12:47.56Z" }, + { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload-time = "2026-04-24T20:15:22.081Z" }, ] [[package]] name = "patch-ng" -version = "1.18.1" +version = "1.19.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/c0/53a2f017ac5b5397a7064c2654b73c3334ac8461315707cbede6c12199eb/patch-ng-1.18.1.tar.gz", hash = "sha256:52fd46ee46f6c8667692682c1fd7134edc65a2d2d084ebec1d295a6087fc0291", size = 17913, upload-time = "2024-10-25T12:20:10.591Z" } +sdist = { url = "https://files.pythonhosted.org/packages/da/b6/8ea8095f964f93567bbe28709298b30104ad418b50d4217538387bf48f7d/patch_ng-1.19.1.tar.gz", hash = "sha256:036a3cc00134ec53f37e92333958ee75e117f2e62a5ec2b85c7122e5e815c29e", size = 18525, upload-time = "2026-04-23T13:36:54.692Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/ef/c60c07b2f9d973672608815e4c176943146c353d3b60fdab914a6dcd44e8/patch_ng-1.19.1-py3-none-any.whl", hash = "sha256:d45fd47b3f74b48c3e336690341876bb26244a077a06f5f7e6e47c19c15c1ca4", size = 17601, upload-time = "2026-04-23T13:36:51.95Z" }, +] [[package]] name = "pluggy" @@ -314,15 +320,15 @@ wheels = [ [[package]] name = "pyright" -version = "1.1.408" +version = "1.1.409" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "nodeenv" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/74/b2/5db700e52554b8f025faa9c3c624c59f1f6c8841ba81ab97641b54322f16/pyright-1.1.408.tar.gz", hash = "sha256:f28f2321f96852fa50b5829ea492f6adb0e6954568d1caa3f3af3a5f555eb684", size = 4400578, upload-time = "2026-01-08T08:07:38.795Z" } +sdist = { url = "https://files.pythonhosted.org/packages/51/4e/3aa27f74211522dba7e9cbc3e74de779c6d4b654c54e50a4840623be8014/pyright-1.1.409.tar.gz", hash = "sha256:986ee05beca9e077c165758ad123667c679e050059a2546aa02473930394bc93", size = 4430434, upload-time = "2026-04-23T11:02:03.799Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/82/a2c93e32800940d9573fb28c346772a14778b84ba7524e691b324620ab89/pyright-1.1.408-py3-none-any.whl", hash = "sha256:090b32865f4fdb1e0e6cd82bf5618480d48eecd2eb2e70f960982a3d9a4c17c1", size = 6399144, upload-time = "2026-01-08T08:07:37.082Z" }, + { url = "https://files.pythonhosted.org/packages/16/6b/330d8ebae582b30c2959a1ef4c3bc344ebde48c2ff0c3f113c4710735e11/pyright-1.1.409-py3-none-any.whl", hash = "sha256:aa3ea228cab90c845c7a60d28db7a844c04315356392aa09fafcee98c8c22fb3", size = 6438161, upload-time = "2026-04-23T11:02:01.309Z" }, ] [[package]] @@ -410,7 +416,7 @@ wheels = [ [[package]] name = "requests" -version = "2.33.1" +version = "2.34.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi" }, @@ -418,34 +424,34 @@ dependencies = [ { name = "idna" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5f/a4/98b9c7c6428a668bf7e42ebb7c79d576a1c3c1e3ae2d47e674b468388871/requests-2.33.1.tar.gz", hash = "sha256:18817f8c57c6263968bc123d237e3b8b08ac046f5456bd1e307ee8f4250d3517", size = 134120, upload-time = "2026-03-30T16:09:15.531Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ac/c3/e2a2b89f2d3e2179abd6d00ebd70bff6273f37fb3e0cc209f48b39d00cbf/requests-2.34.2.tar.gz", hash = "sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed", size = 142856, upload-time = "2026-05-14T19:25:27.735Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl", hash = "sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a", size = 64947, upload-time = "2026-03-30T16:09:13.83Z" }, + { url = "https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl", hash = "sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0", size = 73075, upload-time = "2026-05-14T19:25:26.443Z" }, ] [[package]] name = "ruff" -version = "0.15.10" +version = "0.15.13" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e7/d9/aa3f7d59a10ef6b14fe3431706f854dbf03c5976be614a9796d36326810c/ruff-0.15.10.tar.gz", hash = "sha256:d1f86e67ebfdef88e00faefa1552b5e510e1d35f3be7d423dc7e84e63788c94e", size = 4631728, upload-time = "2026-04-09T14:06:09.884Z" } +sdist = { url = "https://files.pythonhosted.org/packages/24/21/a7d5c126d5b557715ef81098f3db2fe20f622a039ff2e626af28d674ab80/ruff-0.15.13.tar.gz", hash = "sha256:f9d89f17f7ba7fb2ed42921f0df75da797a9a5d71bc39049e2c687cf2baf44b7", size = 4678180, upload-time = "2026-05-14T13:44:37.869Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/eb/00/a1c2fdc9939b2c03691edbda290afcd297f1f389196172826b03d6b6a595/ruff-0.15.10-py3-none-linux_armv6l.whl", hash = "sha256:0744e31482f8f7d0d10a11fcbf897af272fefdfcb10f5af907b18c2813ff4d5f", size = 10563362, upload-time = "2026-04-09T14:06:21.189Z" }, - { url = "https://files.pythonhosted.org/packages/5c/15/006990029aea0bebe9d33c73c3e28c80c391ebdba408d1b08496f00d422d/ruff-0.15.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b1e7c16ea0ff5a53b7c2df52d947e685973049be1cdfe2b59a9c43601897b22e", size = 10951122, upload-time = "2026-04-09T14:06:02.236Z" }, - { url = "https://files.pythonhosted.org/packages/f2/c0/4ac978fe874d0618c7da647862afe697b281c2806f13ce904ad652fa87e4/ruff-0.15.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:93cc06a19e5155b4441dd72808fdf84290d84ad8a39ca3b0f994363ade4cebb1", size = 10314005, upload-time = "2026-04-09T14:06:00.026Z" }, - { url = "https://files.pythonhosted.org/packages/da/73/c209138a5c98c0d321266372fc4e33ad43d506d7e5dd817dd89b60a8548f/ruff-0.15.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83e1dd04312997c99ea6965df66a14fb4f03ba978564574ffc68b0d61fd3989e", size = 10643450, upload-time = "2026-04-09T14:05:42.137Z" }, - { url = "https://files.pythonhosted.org/packages/ec/76/0deec355d8ec10709653635b1f90856735302cb8e149acfdf6f82a5feb70/ruff-0.15.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8154d43684e4333360fedd11aaa40b1b08a4e37d8ffa9d95fee6fa5b37b6fab1", size = 10379597, upload-time = "2026-04-09T14:05:49.984Z" }, - { url = "https://files.pythonhosted.org/packages/dc/be/86bba8fc8798c081e28a4b3bb6d143ccad3fd5f6f024f02002b8f08a9fa3/ruff-0.15.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ab88715f3a6deb6bde6c227f3a123410bec7b855c3ae331b4c006189e895cef", size = 11146645, upload-time = "2026-04-09T14:06:12.246Z" }, - { url = "https://files.pythonhosted.org/packages/a8/89/140025e65911b281c57be1d385ba1d932c2366ca88ae6663685aed8d4881/ruff-0.15.10-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a768ff5969b4f44c349d48edf4ab4f91eddb27fd9d77799598e130fb628aa158", size = 12030289, upload-time = "2026-04-09T14:06:04.776Z" }, - { url = "https://files.pythonhosted.org/packages/88/de/ddacca9545a5e01332567db01d44bd8cf725f2db3b3d61a80550b48308ea/ruff-0.15.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ee3ef42dab7078bda5ff6a1bcba8539e9857deb447132ad5566a038674540d0", size = 11496266, upload-time = "2026-04-09T14:05:55.485Z" }, - { url = "https://files.pythonhosted.org/packages/bc/bb/7ddb00a83760ff4a83c4e2fc231fd63937cc7317c10c82f583302e0f6586/ruff-0.15.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51cb8cc943e891ba99989dd92d61e29b1d231e14811db9be6440ecf25d5c1609", size = 11256418, upload-time = "2026-04-09T14:05:57.69Z" }, - { url = "https://files.pythonhosted.org/packages/dc/8d/55de0d35aacf6cd50b6ee91ee0f291672080021896543776f4170fc5c454/ruff-0.15.10-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:e59c9bdc056a320fb9ea1700a8d591718b8faf78af065484e801258d3a76bc3f", size = 11288416, upload-time = "2026-04-09T14:05:44.695Z" }, - { url = "https://files.pythonhosted.org/packages/68/cf/9438b1a27426ec46a80e0a718093c7f958ef72f43eb3111862949ead3cc1/ruff-0.15.10-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:136c00ca2f47b0018b073f28cb5c1506642a830ea941a60354b0e8bc8076b151", size = 10621053, upload-time = "2026-04-09T14:05:52.782Z" }, - { url = "https://files.pythonhosted.org/packages/4c/50/e29be6e2c135e9cd4cb15fbade49d6a2717e009dff3766dd080fcb82e251/ruff-0.15.10-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8b80a2f3c9c8a950d6237f2ca12b206bccff626139be9fa005f14feb881a1ae8", size = 10378302, upload-time = "2026-04-09T14:06:14.361Z" }, - { url = "https://files.pythonhosted.org/packages/18/2f/e0b36a6f99c51bb89f3a30239bc7bf97e87a37ae80aa2d6542d6e5150364/ruff-0.15.10-py3-none-musllinux_1_2_i686.whl", hash = "sha256:e3e53c588164dc025b671c9df2462429d60357ea91af7e92e9d56c565a9f1b07", size = 10850074, upload-time = "2026-04-09T14:06:16.581Z" }, - { url = "https://files.pythonhosted.org/packages/11/08/874da392558ce087a0f9b709dc6ec0d60cbc694c1c772dab8d5f31efe8cb/ruff-0.15.10-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b0c52744cf9f143a393e284125d2576140b68264a93c6716464e129a3e9adb48", size = 11358051, upload-time = "2026-04-09T14:06:18.948Z" }, - { url = "https://files.pythonhosted.org/packages/e4/46/602938f030adfa043e67112b73821024dc79f3ab4df5474c25fa4c1d2d14/ruff-0.15.10-py3-none-win32.whl", hash = "sha256:d4272e87e801e9a27a2e8df7b21011c909d9ddd82f4f3281d269b6ba19789ca5", size = 10588964, upload-time = "2026-04-09T14:06:07.14Z" }, - { url = "https://files.pythonhosted.org/packages/25/b6/261225b875d7a13b33a6d02508c39c28450b2041bb01d0f7f1a83d569512/ruff-0.15.10-py3-none-win_amd64.whl", hash = "sha256:28cb32d53203242d403d819fd6983152489b12e4a3ae44993543d6fe62ab42ed", size = 11745044, upload-time = "2026-04-09T14:05:39.473Z" }, - { url = "https://files.pythonhosted.org/packages/58/ed/dea90a65b7d9e69888890fb14c90d7f51bf0c1e82ad800aeb0160e4bacfd/ruff-0.15.10-py3-none-win_arm64.whl", hash = "sha256:601d1610a9e1f1c2165a4f561eeaa2e2ea1e97f3287c5aa258d3dab8b57c6188", size = 11035607, upload-time = "2026-04-09T14:05:47.593Z" }, + { url = "https://files.pythonhosted.org/packages/c6/61/11d458dc6ac22504fd8e237b29dfd40504c7fbbcc8930402cfe51a8e63ed/ruff-0.15.13-py3-none-linux_armv6l.whl", hash = "sha256:444b580fc72fd6887e650acd3e575e18cdc79dbcf42fb4030b491057921f61f8", size = 10738279, upload-time = "2026-05-14T13:44:18.7Z" }, + { url = "https://files.pythonhosted.org/packages/86/ca/caa871ee7be718c45256fada4e16a218ee3e33f0c4a46b729a60a24912e6/ruff-0.15.13-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6590d009e7cb7ebf36f83dbdd44a3fa48a0994ff6f1cdc1b08006abe58f98dc7", size = 11124798, upload-time = "2026-05-14T13:44:06.427Z" }, + { url = "https://files.pythonhosted.org/packages/d3/19/43f5f2e568dddde567fc41f8471f9432c09563e19d3e617a48cfa52f8f0a/ruff-0.15.13-py3-none-macosx_11_0_arm64.whl", hash = "sha256:1c26d2f66163deeb6e08d8b39fbbe983ce3c71cea06a6d7591cfd1421793c629", size = 10460761, upload-time = "2026-05-14T13:44:04.375Z" }, + { url = "https://files.pythonhosted.org/packages/99/df/cf938cd6de3003178f03ad7c1ea2a6c099468c03a35037985070b37e76be/ruff-0.15.13-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dbd6f94b434f896308e4d57fb7bfde0d02b99f7a64b3bdab0fdfa6a864203a5", size = 10804451, upload-time = "2026-05-14T13:44:25.221Z" }, + { url = "https://files.pythonhosted.org/packages/c7/7d/5d0973129b154ded2225729169d7068f26b467760b146493fde138415f23/ruff-0.15.13-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bf3259f3be4d181bda591da5db2571aed6853c6a048157756448020bc6c5cd22", size = 10534285, upload-time = "2026-05-14T13:44:08.888Z" }, + { url = "https://files.pythonhosted.org/packages/1f/e3/6b999bbc66cd51e5f073842bc2a3995e99c5e0e72e16b15e7261f7abf57a/ruff-0.15.13-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae9c17e5eb4430c154e76abc25d79a318190f5a997f38fb6b114416c5319ffc9", size = 11312063, upload-time = "2026-05-14T13:44:11.274Z" }, + { url = "https://files.pythonhosted.org/packages/af/5a/642639e9f5db04f1e97fbd6e091c6fd20725bdf072fb114d00eefb9e6eb8/ruff-0.15.13-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e2e39bff6c341f4b577a21b801326fab0b11847f48fcaa83f00a113c9b3cb55", size = 12183079, upload-time = "2026-05-14T13:44:01.634Z" }, + { url = "https://files.pythonhosted.org/packages/19/4c/7585735f6b53b0f12de13618b2f7d250a844f018822efc899df2e7b8295f/ruff-0.15.13-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e8d9a8e08013542e94d3220bc5b62cc3e5ef87c5f74bff367d3fac14fab013e6", size = 11440833, upload-time = "2026-05-14T13:43:59.043Z" }, + { url = "https://files.pythonhosted.org/packages/e8/31/bf1a0803d077e679cfeee5f2f67290a0fa79c7385b5d9a8c17b9db2c48f0/ruff-0.15.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc411dfebe5eebe55ce041c6ae080eb7668955e866daa2fbb16692a784f1c4ca", size = 11434486, upload-time = "2026-05-14T13:44:27.761Z" }, + { url = "https://files.pythonhosted.org/packages/e1/4e/62c9b999875d4f14db80f277c030578f5e249c9852d65b7ac7ad0b43c041/ruff-0.15.13-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:768494eb08b9cee54e2fd27969966f74db5a57f6eaa7a90fcb3306af34dfc4bd", size = 11385189, upload-time = "2026-05-14T13:44:13.704Z" }, + { url = "https://files.pythonhosted.org/packages/fc/89/7e959047a104df3eb12863447c110140191fc5b6c4f379ea2e803fcdb0e4/ruff-0.15.13-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:fb75f9a3a7e42ffe117d734494e6c5e5cb3565d66e12612cb63d0e572a41a5b6", size = 10781380, upload-time = "2026-05-14T13:43:56.734Z" }, + { url = "https://files.pythonhosted.org/packages/ff/52/5fd18f3b88cab63e88aa11516b3b4e1e5f720e5c330f8dbe5c26210f41f8/ruff-0.15.13-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8cb74dd33bb2f6613faf7fc03b660053b5ac4f80e706d5788c6335e2a8048d51", size = 10540605, upload-time = "2026-05-14T13:44:20.748Z" }, + { url = "https://files.pythonhosted.org/packages/e8/e0/9e35f338990d3e41a82875ff7053ffe97541dae81c9d02143177f381d572/ruff-0.15.13-py3-none-musllinux_1_2_i686.whl", hash = "sha256:7ef823f817fcd191dc934e984be9cf4094f808effa16f2542ad8e821ba02bbf2", size = 11036554, upload-time = "2026-05-14T13:44:16.256Z" }, + { url = "https://files.pythonhosted.org/packages/c2/13/070fb048c24080fba188f66371e2a92785be257ad02242066dc7255ac6e9/ruff-0.15.13-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:f345a13937bd7f09f6f5d19fa0721b0c103e00e7f62bc67089a8e5e037719e0b", size = 11528133, upload-time = "2026-05-14T13:44:22.808Z" }, + { url = "https://files.pythonhosted.org/packages/6b/8c/b1e1666aef7fc6555094d73ae6cd981701781ae85b97ceefc0eebd0b4668/ruff-0.15.13-py3-none-win32.whl", hash = "sha256:4044f94208b3b05ba0fc4a4abd0558cf4d6459bd18325eead7fd8cc66f909b41", size = 10721455, upload-time = "2026-05-14T13:44:35.697Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a6/870a3e8a50590bb92be184ad928c2922f088b00d9dc5c5ec7b924ee08c22/ruff-0.15.13-py3-none-win_amd64.whl", hash = "sha256:7064884d442b7d477b4e7473d12da7f08851d2b1982763c5d3f388a19468a1a4", size = 11900409, upload-time = "2026-05-14T13:44:30.389Z" }, + { url = "https://files.pythonhosted.org/packages/9b/36/9c015cd052fca743dae8cb2aeb16b551444787467db42ceab0fc968865af/ruff-0.15.13-py3-none-win_arm64.whl", hash = "sha256:2471da9bd1068c8c064b5fd9c0c4b6dddffd6369cb1cd68b29993b1709ff1b21", size = 11179336, upload-time = "2026-05-14T13:44:33.026Z" }, ] [[package]] @@ -468,9 +474,9 @@ wheels = [ [[package]] name = "urllib3" -version = "2.6.3" +version = "2.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } +sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, + { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" }, ] From a566a9df079c1396b8b583e9c867ad090b497d06 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 09:09:49 +0200 Subject: [PATCH 04/18] Refactor conan install command string for improved readability --- hatch_build.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/hatch_build.py b/hatch_build.py index e837095..5450615 100644 --- a/hatch_build.py +++ b/hatch_build.py @@ -35,9 +35,7 @@ def initialize(self, version: str, build_data: dict[str, Any]) -> None: else: build_packages = "-b missing" - install_cmd_str = ( - f"conan install . -u {build_packages} -of build --format json --out-file graph.json" - ) + install_cmd_str = f"conan install . -u {build_packages} -of build --format json --out-file graph.json" install_args = shlex.split(install_cmd_str) result = subprocess.run(install_args) From 0bc4504850cc887f7ca71bece1eb711146c349d7 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 09:16:16 +0200 Subject: [PATCH 05/18] Add requirements method to specify tool dependencies and maintain libcosimc requirement --- conanfile.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index f6d7620..29d5803 100644 --- a/conanfile.py +++ b/conanfile.py @@ -4,11 +4,14 @@ class LibCosimpyConanDependency(ConanFile): name = "libcosimpy-recipe" - requires = "libcosimc/0.11.2@osp/stable" default_options = { "libcosim/*:proxyfmu": True, } + def requirements(self): + self.tool_requires("cmake/[>=4.0]") + self.requires("libcosimc/0.11.2@osp/stable") + def configure(self): self.options["*"].shared = False self.options["libcosimc/*"].shared = True From 40bf91f3a9d512af225e6021e0eaf5a37be4816a Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 09:33:12 +0200 Subject: [PATCH 06/18] Add CLI11 dependency to requirements method in conanfile.py --- conanfile.py | 1 + 1 file changed, 1 insertion(+) diff --git a/conanfile.py b/conanfile.py index 29d5803..509c9a3 100644 --- a/conanfile.py +++ b/conanfile.py @@ -11,6 +11,7 @@ class LibCosimpyConanDependency(ConanFile): def requirements(self): self.tool_requires("cmake/[>=4.0]") self.requires("libcosimc/0.11.2@osp/stable") + self.requires("cli11/[~2.6]", override=True) def configure(self): self.options["*"].shared = False From b6bdc2f780a0cc16e047838127b7024b8d882934 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 09:42:13 +0200 Subject: [PATCH 07/18] Remove cmake dependency from pyproject.toml --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d7e87ad..a4829b0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,7 +47,6 @@ exclude = ["tests", ".github"] dependencies = [ "conan>=2.27.0", "hatchling>=1.29.0", - "cmake>=4.0", "patchelf>=0.17.2; platform_system == 'Linux'" ] From a6d52a7ccc135df899ca080617abbdc1a0d8f496 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 10:00:52 +0200 Subject: [PATCH 08/18] Remove cmake tool requirement from conanfile.py --- conanfile.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 509c9a3..c848e63 100644 --- a/conanfile.py +++ b/conanfile.py @@ -9,9 +9,7 @@ class LibCosimpyConanDependency(ConanFile): } def requirements(self): - self.tool_requires("cmake/[>=4.0]") self.requires("libcosimc/0.11.2@osp/stable") - self.requires("cli11/[~2.6]", override=True) def configure(self): self.options["*"].shared = False From 509a3a908102183609ec9abec4685595bfbc4b33 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 10:30:50 +0200 Subject: [PATCH 09/18] Updated --- hatch_build.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hatch_build.py b/hatch_build.py index 5450615..0410b48 100644 --- a/hatch_build.py +++ b/hatch_build.py @@ -33,9 +33,9 @@ def initialize(self, version: str, build_data: dict[str, Any]) -> None: if package_list: build_packages = " ".join([f"-b {p}/*" for p in package_list.split(",")]) else: - build_packages = "-b missing" + build_packages = "" - install_cmd_str = f"conan install . -u {build_packages} -of build --format json --out-file graph.json" + install_cmd_str = f"conan install . -u -b missing {build_packages} -of build --format json --out-file graph.json" install_args = shlex.split(install_cmd_str) result = subprocess.run(install_args) From 45417e1c19a6abd56f47ecfd72770315c2403879 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 10:35:06 +0200 Subject: [PATCH 10/18] Updated --- hatch_build.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hatch_build.py b/hatch_build.py index 0410b48..908a25f 100644 --- a/hatch_build.py +++ b/hatch_build.py @@ -35,7 +35,9 @@ def initialize(self, version: str, build_data: dict[str, Any]) -> None: else: build_packages = "" - install_cmd_str = f"conan install . -u -b missing {build_packages} -of build --format json --out-file graph.json" + install_cmd_str = ( + f"conan install . -u -b missing {build_packages} -of build --format json --out-file graph.json" + ) install_args = shlex.split(install_cmd_str) result = subprocess.run(install_args) From 053b15a5c87ccca2447865fe954c41c30e249487 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 10:56:21 +0200 Subject: [PATCH 11/18] Add doxygen installation to before-all in cibuildwheel configuration --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index a4829b0..69a7894 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -60,7 +60,7 @@ test-command = "uv run --with pytest pytest {package}" [tool.cibuildwheel.linux] before-all = [ - "yum install -y libatomic", + "yum install -y libatomic doxygen", "yum install -y perl-IPC-Cmd perl-Digest-SHA perl-Time-Piece", ] manylinux-x86_64-image = "manylinux_2_28" From 10120ee61ffdce969459480f8fbf73f0b76d9068 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 11:17:06 +0200 Subject: [PATCH 12/18] Add CLI11 dependency to conanfile.py requirements --- conanfile.py | 1 + 1 file changed, 1 insertion(+) diff --git a/conanfile.py b/conanfile.py index c848e63..c17f925 100644 --- a/conanfile.py +++ b/conanfile.py @@ -10,6 +10,7 @@ class LibCosimpyConanDependency(ConanFile): def requirements(self): self.requires("libcosimc/0.11.2@osp/stable") + self.requires("cli11/[~2.6.0]", override=True) def configure(self): self.options["*"].shared = False From 65881585796615d1fc94a4038051a5d30e14fa2e Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 12:29:32 +0200 Subject: [PATCH 13/18] Update conan install command to specify C++ standard version --- hatch_build.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/hatch_build.py b/hatch_build.py index 908a25f..bd96f4b 100644 --- a/hatch_build.py +++ b/hatch_build.py @@ -35,9 +35,7 @@ def initialize(self, version: str, build_data: dict[str, Any]) -> None: else: build_packages = "" - install_cmd_str = ( - f"conan install . -u -b missing {build_packages} -of build --format json --out-file graph.json" - ) + install_cmd_str = f"conan install . -u -b missing {build_packages} -of build -s compiler.cppstd=17 --format json --out-file graph.json" install_args = shlex.split(install_cmd_str) result = subprocess.run(install_args) From 364cad12b342270ead4a9d153ec921a6be1cab7f Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 12:56:09 +0200 Subject: [PATCH 14/18] Updated --- hatch_build.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hatch_build.py b/hatch_build.py index bd96f4b..908a25f 100644 --- a/hatch_build.py +++ b/hatch_build.py @@ -35,7 +35,9 @@ def initialize(self, version: str, build_data: dict[str, Any]) -> None: else: build_packages = "" - install_cmd_str = f"conan install . -u -b missing {build_packages} -of build -s compiler.cppstd=17 --format json --out-file graph.json" + install_cmd_str = ( + f"conan install . -u -b missing {build_packages} -of build --format json --out-file graph.json" + ) install_args = shlex.split(install_cmd_str) result = subprocess.run(install_args) From fcb7a0f0a975db5004d53d14f857beb1b2139279 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 13:56:46 +0200 Subject: [PATCH 15/18] Fix publish condition in ci-main.yml to remove workflow_dispatch trigger --- .github/workflows/ci-main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index f103e52..37c77db 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -98,7 +98,7 @@ jobs: path: ./dist/*.tar.gz publish: - if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch' + if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v') needs: - code_quality - build_wheels_and_test From 7da615aa8e0ae846cb6377c73d59f24c79b3990d Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 13:57:10 +0200 Subject: [PATCH 16/18] Increase timeout duration for code quality and matrix jobs in ci-main.yml --- .github/workflows/ci-main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 37c77db..7a2d532 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -15,7 +15,7 @@ jobs: code_quality: name: Code Quality runs-on: 'ubuntu-latest' - timeout-minutes: 35 + timeout-minutes: 45 steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v5 @@ -43,7 +43,7 @@ jobs: matrix: platform: [ 'windows-latest', 'ubuntu-latest' ] python-version: [ 'cp311', 'cp312', 'cp313', 'cp314' ] - timeout-minutes: 35 + timeout-minutes: 45 env: CONAN_REVISIONS_ENABLED: 1 steps: From 917d009210f7015040aa55f08cd9251a696748c8 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 14:00:05 +0200 Subject: [PATCH 17/18] Updated --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index c17f925..6ab4617 100644 --- a/conanfile.py +++ b/conanfile.py @@ -10,7 +10,7 @@ class LibCosimpyConanDependency(ConanFile): def requirements(self): self.requires("libcosimc/0.11.2@osp/stable") - self.requires("cli11/[~2.6.0]", override=True) + # self.requires("cli11/[~2.6.0]", override=True) def configure(self): self.options["*"].shared = False From 5ba9bcf540567387c1d4b238d5862447790a5d4f Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Tue, 19 May 2026 14:07:49 +0200 Subject: [PATCH 18/18] Updated --- conanfile.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 6ab4617..c17f925 100644 --- a/conanfile.py +++ b/conanfile.py @@ -10,7 +10,7 @@ class LibCosimpyConanDependency(ConanFile): def requirements(self): self.requires("libcosimc/0.11.2@osp/stable") - # self.requires("cli11/[~2.6.0]", override=True) + self.requires("cli11/[~2.6.0]", override=True) def configure(self): self.options["*"].shared = False diff --git a/pyproject.toml b/pyproject.toml index 69a7894..dca3081 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -122,7 +122,7 @@ src = [ "src", ] line-length = 120 -target-version = "py310" +target-version = "py312" [tool.ruff.lint] [lint]