From d9ba1498aef53165ad415a2dab7dc03924149fa8 Mon Sep 17 00:00:00 2001 From: Philipp Verpoort Date: Sun, 8 Feb 2026 17:39:24 +0100 Subject: [PATCH 1/9] Adding deployment workflow. --- .github/workflows/build.yml | 46 +++++ app/main.py | 1 + logo.png | Bin 0 -> 7157 bytes logo.svg | 72 ++++++++ org.sortitionfoundation.GroupSelect.yml | 22 +++ pyproject.toml | 14 +- uv.lock | 217 +++++++++++++++++------- 7 files changed, 312 insertions(+), 60 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 logo.png create mode 100644 logo.svg create mode 100644 org.sortitionfoundation.GroupSelect.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..baddfa8 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,46 @@ +name: Build + +on: + push: + branches: ["**"] + tags: ["v*"] + pull_request: + +jobs: + build: + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + + - name: Install uv (Unix) + if: runner.os != 'Windows' + run: | + curl -LsSf https://astral.sh/uv/install.sh | sh + echo "$HOME/.cargo/bin" >> $GITHUB_PATH + + - name: Install uv (Windows) + if: runner.os == 'Windows' + run: | + powershell -ExecutionPolicy Bypass -c ` + "irm https://astral.sh/uv/install.ps1 | iex" + echo "$env:USERPROFILE\.cargo\bin" >> $env:GITHUB_PATH + + - name: Verify uv + run: uv --version + + - name: Install dependencies + run: uv sync --group deployment + + - name: Build app + run: uv run pyside6-deploy --mode standalone --name groupselect2 app/main.py + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: groupselect2-dist-${{ matrix.os }} + path: app/groupselect2.dist diff --git a/app/main.py b/app/main.py index e33ded7..bf2b4e9 100644 --- a/app/main.py +++ b/app/main.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 from base_app.AppContext import AppContext from GSProject import GSProject diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..11952d6918ec08923298050a810b574c82e76e4f GIT binary patch literal 7157 zcmeHMYfKbZ6h8ZqLl{E@wiL5&;^q$E~ZF@HRgH&7_B0JV18bu`Msot_Hg8 zeXq07ECdx-HZ+hrE2Ux^ANra3?>!5B?$-fK8)S5|q0(t4OWK(as4zBW@sPOGVZg6g!7+cVK`s@5? za1gvfWSBKWoNBN-(n2^*q;4}YZ13?jP~jU*9|QaDuk%dZ(o{6;nVIA?4U}@D9KdpX zE;YiD@3B$vc&MQ$V7I6*&$(7&fsxokVvB#3E$Hk0^%!w!y#R?>AiU~2!60n1F-sA_=dN3ws{=28>)G){#O`Y4Sk)nIvFdqu6KaMojqCT$tfEz3rfxsZC|njQ z9N7G|U^(yfcQEEr7uts7Oh3XrfGl8@!MGolgl#5`tu!II1ff6z!;{BHY^RF-tcRz3 zT)mOh=?HV0MkQ>uktHV?`?S+#MbStDd!d`B_L7IyL}9x}ZfR+~!ENIWu{Kd`PgFp6 z-3of-=kpK8);JP)u6}A3fl-FeC~yWpkj@)gPbJErI|N4GGHbLT#PRB0pa-O^9zpi+ z>$H$EKRzXcTQdu8#lC1%Pq^~q9k&9y#`^vm7ZbiChrDNB0Mo~uNvK*#;xDW#p$zm@^jPm4+ zBCSBck+KsUK2l!x^yOu}Ka>_c1CFD6$cdkjSkS3hs@D-dJ64X#PMg@+{-;{MVG~P- zx#NW*IGQqsIP}E|ptp(cc;U_BN^KfZIE0FHy|AcqF^o9vT((fbC|3x)_7eQ{MN1WL z>

mjlCd&LHQ5CFlS9al!VtNeS44kBrG{l*iZyiHYjk<@BqoI4*Y9+C2(a~Ccd7f ev884I^@6Cj-N!6jVniK&oV=WZ?5?b`rau5UI;LU( literal 0 HcmV?d00001 diff --git a/logo.svg b/logo.svg new file mode 100644 index 0000000..8eee6ac --- /dev/null +++ b/logo.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + diff --git a/org.sortitionfoundation.GroupSelect.yml b/org.sortitionfoundation.GroupSelect.yml new file mode 100644 index 0000000..89dae40 --- /dev/null +++ b/org.sortitionfoundation.GroupSelect.yml @@ -0,0 +1,22 @@ +app-id: org.sortitionfoundation.GroupSelect +runtime: org.kde.Platform +runtime-version: "6.6" +sdk: org.kde.Sdk +command: groupselect2 + +finish-args: + - --filesystem=home + +modules: + - name: groupselect2 + buildsystem: simple + build-commands: + - curl -LsSf https://astral.sh/uv/install.sh | sh + - export PATH=$PATH:$HOME/.cargo/bin + + - install -Dm755 app/main.py /app/bin/groupselect2 + # - install -Dm755 dist/groupselect2.bin /app/bin/groupselect2 + sources: + - type: git + url: https://github.com/sortitionfoundation/groupselect-app + commit: e566cdc8e9b8713a6c9616ea4de1d0c734e830e6 diff --git a/pyproject.toml b/pyproject.toml index 8968c64..660fde8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,11 +12,21 @@ dependencies = [ "base-app", "datahandling", "groupselect", - "pandas>=2.3.3", - "setuptools>=80.9.0", + "pandas>=2.3.3,<3.0.0", ] [tool.uv.sources] base-app = { git = "https://github.com/PhilippVerpoort/base-app/" } datahandling = { git = "https://github.com/PhilippVerpoort/datahandling/" } groupselect = { git = "https://github.com/PhilippVerpoort/groupselect-lib" } + +[dependency-groups] +deployment = [ + "nuitka==2.7.11", + "ordered-set>=4.1.0", + "patchelf>=0.17.2.4", + "pip>=26.0.1", + "setuptools>=81.0.0", + "wheel>=0.46.3", + "zstandard>=0.25.0", +] diff --git a/uv.lock b/uv.lock index f308769..e031200 100644 --- a/uv.lock +++ b/uv.lock @@ -56,7 +56,17 @@ dependencies = [ { name = "datahandling" }, { name = "groupselect" }, { name = "pandas" }, +] + +[package.dev-dependencies] +deployment = [ + { name = "nuitka" }, + { name = "ordered-set" }, + { name = "patchelf" }, + { name = "pip" }, { name = "setuptools" }, + { name = "wheel" }, + { name = "zstandard" }, ] [package.metadata] @@ -64,8 +74,18 @@ requires-dist = [ { name = "base-app", git = "https://github.com/PhilippVerpoort/base-app/" }, { name = "datahandling", git = "https://github.com/PhilippVerpoort/datahandling/" }, { name = "groupselect", git = "https://github.com/PhilippVerpoort/groupselect-lib" }, - { name = "pandas", specifier = ">=2.3.3" }, - { name = "setuptools", specifier = ">=80.9.0" }, + { name = "pandas", specifier = ">=2.3.3,<3.0.0" }, +] + +[package.metadata.requires-dev] +deployment = [ + { name = "nuitka", specifier = "==2.7.11" }, + { name = "ordered-set", specifier = ">=4.1.0" }, + { name = "patchelf", specifier = ">=0.17.2.4" }, + { name = "pip", specifier = ">=26.0.1" }, + { name = "setuptools", specifier = ">=81.0.0" }, + { name = "wheel", specifier = ">=0.46.3" }, + { name = "zstandard", specifier = ">=0.25.0" }, ] [[package]] @@ -86,30 +106,40 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c1/73/04df8a6fa66d43a9fd45c30f283cc4afff17da671886e451d52af60bdc7e/jsonpickle-4.1.1-py3-none-any.whl", hash = "sha256:bb141da6057898aa2438ff268362b126826c812a1721e31cf08a6e142910dc91", size = 47125, upload-time = "2025-06-02T20:36:08.647Z" }, ] +[[package]] +name = "nuitka" +version = "2.7.11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ordered-set" }, + { name = "zstandard" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bf/5a/19e8bd1c30a83189808cc68883480406b9cd9e8ea99654c313c81d71bec1/Nuitka-2.7.11.tar.gz", hash = "sha256:8009d7acb7d0467c96ecd02e4105fc488e0c12e5296cb49b0a9197de883c8123", size = 3887328, upload-time = "2025-06-28T12:51:24.768Z" } + [[package]] name = "numpy" -version = "2.3.4" +version = "2.4.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b5/f4/098d2270d52b41f1bd7db9fc288aaa0400cb48c2a3e2af6fa365d9720947/numpy-2.3.4.tar.gz", hash = "sha256:a7d018bfedb375a8d979ac758b120ba846a7fe764911a64465fd87b8729f4a6a", size = 20582187, upload-time = "2025-10-15T16:18:11.77Z" } +sdist = { url = "https://files.pythonhosted.org/packages/57/fd/0005efbd0af48e55eb3c7208af93f2862d4b1a56cd78e84309a2d959208d/numpy-2.4.2.tar.gz", hash = "sha256:659a6107e31a83c4e33f763942275fd278b21d095094044eb35569e86a21ddae", size = 20723651, upload-time = "2026-01-31T23:13:10.135Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/60/e7/0e07379944aa8afb49a556a2b54587b828eb41dc9adc56fb7615b678ca53/numpy-2.3.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e78aecd2800b32e8347ce49316d3eaf04aed849cd5b38e0af39f829a4e59f5eb", size = 21259519, upload-time = "2025-10-15T16:15:19.012Z" }, - { url = "https://files.pythonhosted.org/packages/d0/cb/5a69293561e8819b09e34ed9e873b9a82b5f2ade23dce4c51dc507f6cfe1/numpy-2.3.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7fd09cc5d65bda1e79432859c40978010622112e9194e581e3415a3eccc7f43f", size = 14452796, upload-time = "2025-10-15T16:15:23.094Z" }, - { url = "https://files.pythonhosted.org/packages/e4/04/ff11611200acd602a1e5129e36cfd25bf01ad8e5cf927baf2e90236eb02e/numpy-2.3.4-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:1b219560ae2c1de48ead517d085bc2d05b9433f8e49d0955c82e8cd37bd7bf36", size = 5381639, upload-time = "2025-10-15T16:15:25.572Z" }, - { url = "https://files.pythonhosted.org/packages/ea/77/e95c757a6fe7a48d28a009267408e8aa382630cc1ad1db7451b3bc21dbb4/numpy-2.3.4-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:bafa7d87d4c99752d07815ed7a2c0964f8ab311eb8168f41b910bd01d15b6032", size = 6914296, upload-time = "2025-10-15T16:15:27.079Z" }, - { url = "https://files.pythonhosted.org/packages/a3/d2/137c7b6841c942124eae921279e5c41b1c34bab0e6fc60c7348e69afd165/numpy-2.3.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:36dc13af226aeab72b7abad501d370d606326a0029b9f435eacb3b8c94b8a8b7", size = 14591904, upload-time = "2025-10-15T16:15:29.044Z" }, - { url = "https://files.pythonhosted.org/packages/bb/32/67e3b0f07b0aba57a078c4ab777a9e8e6bc62f24fb53a2337f75f9691699/numpy-2.3.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a7b2f9a18b5ff9824a6af80de4f37f4ec3c2aab05ef08f51c77a093f5b89adda", size = 16939602, upload-time = "2025-10-15T16:15:31.106Z" }, - { url = "https://files.pythonhosted.org/packages/95/22/9639c30e32c93c4cee3ccdb4b09c2d0fbff4dcd06d36b357da06146530fb/numpy-2.3.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9984bd645a8db6ca15d850ff996856d8762c51a2239225288f08f9050ca240a0", size = 16372661, upload-time = "2025-10-15T16:15:33.546Z" }, - { url = "https://files.pythonhosted.org/packages/12/e9/a685079529be2b0156ae0c11b13d6be647743095bb51d46589e95be88086/numpy-2.3.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:64c5825affc76942973a70acf438a8ab618dbd692b84cd5ec40a0a0509edc09a", size = 18884682, upload-time = "2025-10-15T16:15:36.105Z" }, - { url = "https://files.pythonhosted.org/packages/cf/85/f6f00d019b0cc741e64b4e00ce865a57b6bed945d1bbeb1ccadbc647959b/numpy-2.3.4-cp311-cp311-win32.whl", hash = "sha256:ed759bf7a70342f7817d88376eb7142fab9fef8320d6019ef87fae05a99874e1", size = 6570076, upload-time = "2025-10-15T16:15:38.225Z" }, - { url = "https://files.pythonhosted.org/packages/7d/10/f8850982021cb90e2ec31990291f9e830ce7d94eef432b15066e7cbe0bec/numpy-2.3.4-cp311-cp311-win_amd64.whl", hash = "sha256:faba246fb30ea2a526c2e9645f61612341de1a83fb1e0c5edf4ddda5a9c10996", size = 13089358, upload-time = "2025-10-15T16:15:40.404Z" }, - { url = "https://files.pythonhosted.org/packages/d1/ad/afdd8351385edf0b3445f9e24210a9c3971ef4de8fd85155462fc4321d79/numpy-2.3.4-cp311-cp311-win_arm64.whl", hash = "sha256:4c01835e718bcebe80394fd0ac66c07cbb90147ebbdad3dcecd3f25de2ae7e2c", size = 10462292, upload-time = "2025-10-15T16:15:42.896Z" }, - { url = "https://files.pythonhosted.org/packages/b1/b6/64898f51a86ec88ca1257a59c1d7fd077b60082a119affefcdf1dd0df8ca/numpy-2.3.4-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:6e274603039f924c0fe5cb73438fa9246699c78a6df1bd3decef9ae592ae1c05", size = 21131552, upload-time = "2025-10-15T16:17:55.845Z" }, - { url = "https://files.pythonhosted.org/packages/ce/4c/f135dc6ebe2b6a3c77f4e4838fa63d350f85c99462012306ada1bd4bc460/numpy-2.3.4-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d149aee5c72176d9ddbc6803aef9c0f6d2ceeea7626574fc68518da5476fa346", size = 14377796, upload-time = "2025-10-15T16:17:58.308Z" }, - { url = "https://files.pythonhosted.org/packages/d0/a4/f33f9c23fcc13dd8412fc8614559b5b797e0aba9d8e01dfa8bae10c84004/numpy-2.3.4-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:6d34ed9db9e6395bb6cd33286035f73a59b058169733a9db9f85e650b88df37e", size = 5306904, upload-time = "2025-10-15T16:18:00.596Z" }, - { url = "https://files.pythonhosted.org/packages/28/af/c44097f25f834360f9fb960fa082863e0bad14a42f36527b2a121abdec56/numpy-2.3.4-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:fdebe771ca06bb8d6abce84e51dca9f7921fe6ad34a0c914541b063e9a68928b", size = 6819682, upload-time = "2025-10-15T16:18:02.32Z" }, - { url = "https://files.pythonhosted.org/packages/c5/8c/cd283b54c3c2b77e188f63e23039844f56b23bba1712318288c13fe86baf/numpy-2.3.4-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:957e92defe6c08211eb77902253b14fe5b480ebc5112bc741fd5e9cd0608f847", size = 14422300, upload-time = "2025-10-15T16:18:04.271Z" }, - { url = "https://files.pythonhosted.org/packages/b0/f0/8404db5098d92446b3e3695cf41c6f0ecb703d701cb0b7566ee2177f2eee/numpy-2.3.4-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13b9062e4f5c7ee5c7e5be96f29ba71bc5a37fed3d1d77c37390ae00724d296d", size = 16760806, upload-time = "2025-10-15T16:18:06.668Z" }, - { url = "https://files.pythonhosted.org/packages/95/8e/2844c3959ce9a63acc7c8e50881133d86666f0420bcde695e115ced0920f/numpy-2.3.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:81b3a59793523e552c4a96109dde028aa4448ae06ccac5a76ff6532a85558a7f", size = 12973130, upload-time = "2025-10-15T16:18:09.397Z" }, + { url = "https://files.pythonhosted.org/packages/d3/44/71852273146957899753e69986246d6a176061ea183407e95418c2aa4d9a/numpy-2.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7e88598032542bd49af7c4747541422884219056c268823ef6e5e89851c8825", size = 16955478, upload-time = "2026-01-31T23:10:25.623Z" }, + { url = "https://files.pythonhosted.org/packages/74/41/5d17d4058bd0cd96bcbd4d9ff0fb2e21f52702aab9a72e4a594efa18692f/numpy-2.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7edc794af8b36ca37ef5fcb5e0d128c7e0595c7b96a2318d1badb6fcd8ee86b1", size = 14965467, upload-time = "2026-01-31T23:10:28.186Z" }, + { url = "https://files.pythonhosted.org/packages/49/48/fb1ce8136c19452ed15f033f8aee91d5defe515094e330ce368a0647846f/numpy-2.4.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:6e9f61981ace1360e42737e2bae58b27bf28a1b27e781721047d84bd754d32e7", size = 5475172, upload-time = "2026-01-31T23:10:30.848Z" }, + { url = "https://files.pythonhosted.org/packages/40/a9/3feb49f17bbd1300dd2570432961f5c8a4ffeff1db6f02c7273bd020a4c9/numpy-2.4.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:cb7bbb88aa74908950d979eeaa24dbdf1a865e3c7e45ff0121d8f70387b55f73", size = 6805145, upload-time = "2026-01-31T23:10:32.352Z" }, + { url = "https://files.pythonhosted.org/packages/3f/39/fdf35cbd6d6e2fcad42fcf85ac04a85a0d0fbfbf34b30721c98d602fd70a/numpy-2.4.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f069069931240b3fc703f1e23df63443dbd6390614c8c44a87d96cd0ec81eb1", size = 15966084, upload-time = "2026-01-31T23:10:34.502Z" }, + { url = "https://files.pythonhosted.org/packages/1b/46/6fa4ea94f1ddf969b2ee941290cca6f1bfac92b53c76ae5f44afe17ceb69/numpy-2.4.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c02ef4401a506fb60b411467ad501e1429a3487abca4664871d9ae0b46c8ba32", size = 16899477, upload-time = "2026-01-31T23:10:37.075Z" }, + { url = "https://files.pythonhosted.org/packages/09/a1/2a424e162b1a14a5bd860a464ab4e07513916a64ab1683fae262f735ccd2/numpy-2.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2653de5c24910e49c2b106499803124dde62a5a1fe0eedeaecf4309a5f639390", size = 17323429, upload-time = "2026-01-31T23:10:39.704Z" }, + { url = "https://files.pythonhosted.org/packages/ce/a2/73014149ff250628df72c58204822ac01d768697913881aacf839ff78680/numpy-2.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1ae241bbfc6ae276f94a170b14785e561cb5e7f626b6688cf076af4110887413", size = 18635109, upload-time = "2026-01-31T23:10:41.924Z" }, + { url = "https://files.pythonhosted.org/packages/6c/0c/73e8be2f1accd56df74abc1c5e18527822067dced5ec0861b5bb882c2ce0/numpy-2.4.2-cp311-cp311-win32.whl", hash = "sha256:df1b10187212b198dd45fa943d8985a3c8cf854aed4923796e0e019e113a1bda", size = 6237915, upload-time = "2026-01-31T23:10:45.26Z" }, + { url = "https://files.pythonhosted.org/packages/76/ae/e0265e0163cf127c24c3969d29f1c4c64551a1e375d95a13d32eab25d364/numpy-2.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:b9c618d56a29c9cb1c4da979e9899be7578d2e0b3c24d52079c166324c9e8695", size = 12607972, upload-time = "2026-01-31T23:10:47.021Z" }, + { url = "https://files.pythonhosted.org/packages/29/a5/c43029af9b8014d6ea157f192652c50042e8911f4300f8f6ed3336bf437f/numpy-2.4.2-cp311-cp311-win_arm64.whl", hash = "sha256:47c5a6ed21d9452b10227e5e8a0e1c22979811cad7dcc19d8e3e2fb8fa03f1a3", size = 10485763, upload-time = "2026-01-31T23:10:50.087Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f8/50e14d36d915ef64d8f8bc4a087fc8264d82c785eda6711f80ab7e620335/numpy-2.4.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:89f7268c009bc492f506abd6f5265defa7cb3f7487dc21d357c3d290add45082", size = 16833179, upload-time = "2026-01-31T23:12:53.5Z" }, + { url = "https://files.pythonhosted.org/packages/17/17/809b5cad63812058a8189e91a1e2d55a5a18fd04611dbad244e8aeae465c/numpy-2.4.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:e6dee3bb76aa4009d5a912180bf5b2de012532998d094acee25d9cb8dee3e44a", size = 14889755, upload-time = "2026-01-31T23:12:55.933Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ea/181b9bcf7627fc8371720316c24db888dcb9829b1c0270abf3d288b2e29b/numpy-2.4.2-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:cd2bd2bbed13e213d6b55dc1d035a4f91748a7d3edc9480c13898b0353708920", size = 5399500, upload-time = "2026-01-31T23:12:58.671Z" }, + { url = "https://files.pythonhosted.org/packages/33/9f/413adf3fc955541ff5536b78fcf0754680b3c6d95103230252a2c9408d23/numpy-2.4.2-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:cf28c0c1d4c4bf00f509fa7eb02c58d7caf221b50b467bcb0d9bbf1584d5c821", size = 6714252, upload-time = "2026-01-31T23:13:00.518Z" }, + { url = "https://files.pythonhosted.org/packages/91/da/643aad274e29ccbdf42ecd94dafe524b81c87bcb56b83872d54827f10543/numpy-2.4.2-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e04ae107ac591763a47398bb45b568fc38f02dbc4aa44c063f67a131f99346cb", size = 15797142, upload-time = "2026-01-31T23:13:02.219Z" }, + { url = "https://files.pythonhosted.org/packages/66/27/965b8525e9cb5dc16481b30a1b3c21e50c7ebf6e9dbd48d0c4d0d5089c7e/numpy-2.4.2-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:602f65afdef699cda27ec0b9224ae5dc43e328f4c24c689deaf77133dbee74d0", size = 16727979, upload-time = "2026-01-31T23:13:04.62Z" }, + { url = "https://files.pythonhosted.org/packages/de/e5/b7d20451657664b07986c2f6e3be564433f5dcaf3482d68eaecd79afaf03/numpy-2.4.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:be71bf1edb48ebbbf7f6337b5bfd2f895d1902f6335a5830b20141fc126ffba0", size = 12502577, upload-time = "2026-01-31T23:13:07.08Z" }, ] [[package]] @@ -124,13 +154,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2", size = 250910, upload-time = "2024-06-28T14:03:41.161Z" }, ] +[[package]] +name = "ordered-set" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/ca/bfac8bc689799bcca4157e0e0ced07e70ce125193fc2e166d2e685b7e2fe/ordered-set-4.1.0.tar.gz", hash = "sha256:694a8e44c87657c59292ede72891eb91d34131f6531463aab3009191c77364a8", size = 12826, upload-time = "2022-01-26T14:38:56.6Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/55/af02708f230eb77084a299d7b08175cff006dea4f2721074b92cdb0296c0/ordered_set-4.1.0-py3-none-any.whl", hash = "sha256:046e1132c71fcf3330438a539928932caf51ddbc582496833e23de611de14562", size = 7634, upload-time = "2022-01-26T14:38:48.677Z" }, +] + [[package]] name = "packaging" -version = "25.0" +version = "26.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } +sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, + { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, ] [[package]] @@ -154,6 +193,31 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8e/59/712db1d7040520de7a4965df15b774348980e6df45c129b8c64d0dbe74ef/pandas-2.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:f086f6fe114e19d92014a1966f43a3e62285109afe874f067f5abbdcbb10e59c", size = 11348702, upload-time = "2025-09-29T23:19:38.296Z" }, ] +[[package]] +name = "patchelf" +version = "0.17.2.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2c/a3/fdd3fa938c864aa2f11dd0b7f08befeda983d2dcdee44da493c6977a653f/patchelf-0.17.2.4.tar.gz", hash = "sha256:970ee5cd8af33e5ea2099510b2f9013fa1b8d5cd763bf3fd3961281c18101a09", size = 149629, upload-time = "2025-07-23T21:16:32.071Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/a7/8c4f86c78ec03db954d05fd9c57a114cc3a172a2d3e4a8b949cd5ff89471/patchelf-0.17.2.4-py3-none-macosx_10_9_universal2.whl", hash = "sha256:343bb1b94e959f9070ca9607453b04390e36bbaa33c88640b989cefad0aa049e", size = 184436, upload-time = "2025-07-23T21:16:20.578Z" }, + { url = "https://files.pythonhosted.org/packages/0b/6d/2e9f5483cdb352fab36b8076667b062b2d79cb09d2e3fd09b6fca5771cb6/patchelf-0.17.2.4-py3-none-manylinux1_i686.manylinux_2_5_i686.musllinux_1_1_i686.whl", hash = "sha256:09fd848d625a165fc7b7e07745508c24077129b019c4415a882938781d43adf8", size = 547318, upload-time = "2025-07-23T21:16:22.135Z" }, + { url = "https://files.pythonhosted.org/packages/7e/19/f7821ef31aab01fa7dc8ebe697ece88ec4f7a0fdd3155dab2dfee4b00e5c/patchelf-0.17.2.4-py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.musllinux_1_1_x86_64.whl", hash = "sha256:d9b35ebfada70c02679ad036407d9724ffe1255122ba4ac5e4be5868618a5689", size = 482846, upload-time = "2025-07-23T21:16:23.73Z" }, + { url = "https://files.pythonhosted.org/packages/d1/50/107fea848ecfd851d473b079cab79107487d72c4c3cdb25b9d2603a24ca2/patchelf-0.17.2.4-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:2931a1b5b85f3549661898af7bf746afbda7903c7c9a967cfc998a3563f84fad", size = 477811, upload-time = "2025-07-23T21:16:25.145Z" }, + { url = "https://files.pythonhosted.org/packages/89/a9/a9a2103e159fd65bffbc21ecc5c8c36e44eb34fe53b4ef85fb6d08c2a635/patchelf-0.17.2.4-py3-none-manylinux2014_armv7l.manylinux_2_17_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:ae44cb3c857d50f54b99e5697aa978726ada33a8a6129d4b8b7ffd28b996652d", size = 431226, upload-time = "2025-07-23T21:16:26.765Z" }, + { url = "https://files.pythonhosted.org/packages/87/93/897d612f6df7cfd987bdf668425127efeff8d8e4ad8bfbab1c69d2a0d861/patchelf-0.17.2.4-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl", hash = "sha256:680a266a70f60a7a4f4c448482c5bdba80cc8e6bb155a49dcc24238ba49927b0", size = 540276, upload-time = "2025-07-23T21:16:27.983Z" }, + { url = "https://files.pythonhosted.org/packages/5d/b8/2b92d11533482bac9ee989081d6880845287751b5f528adbd6bb27667fbd/patchelf-0.17.2.4-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl", hash = "sha256:d842b51f0401460f3b1f3a3a67d2c266a8f515a5adfbfa6e7b656cb3ac2ed8bc", size = 596632, upload-time = "2025-07-23T21:16:29.253Z" }, + { url = "https://files.pythonhosted.org/packages/14/e2/975d4bdb418f942b53e6187b95bd9e0d5e0488b7bc214685a1e43e2c2751/patchelf-0.17.2.4-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:7076d9e127230982e20a81a6e2358d3343004667ba510d9f822d4fdee29b0d71", size = 508281, upload-time = "2025-07-23T21:16:30.865Z" }, +] + +[[package]] +name = "pip" +version = "26.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/48/83/0d7d4e9efe3344b8e2fe25d93be44f64b65364d3c8d7bc6dc90198d5422e/pip-26.0.1.tar.gz", hash = "sha256:c4037d8a277c89b320abe636d59f91e6d0922d08a05b60e85e53b296613346d8", size = 1812747, upload-time = "2026-02-05T02:20:18.702Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/f0/c81e05b613866b76d2d1066490adf1a3dbc4ee9d9c839961c3fc8a6997af/pip-26.0.1-py3-none-any.whl", hash = "sha256:bdb1b08f4274833d62c1aa29e20907365a2ceb950410df15fc9521bad440122b", size = 1787723, upload-time = "2026-02-05T02:20:16.416Z" }, +] + [[package]] name = "pluggy" version = "1.6.0" @@ -174,7 +238,7 @@ wheels = [ [[package]] name = "pyside6" -version = "6.10.0" +version = "6.10.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyside6-addons" }, @@ -182,47 +246,47 @@ dependencies = [ { name = "shiboken6" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/98/84b16f78b5d92dd234fb1eb9890a350a5b0c83d985bb8c44a92f813a2d02/pyside6-6.10.0-cp39-abi3-macosx_13_0_universal2.whl", hash = "sha256:c2cbc5dc2a164e3c7c51b3435e24203e90e5edd518c865466afccbd2e5872bb0", size = 558115, upload-time = "2025-10-08T09:47:09.246Z" }, - { url = "https://files.pythonhosted.org/packages/4e/76/0961c8c5653ecb60a6881b649dcb6b71a6be5bd1c8d441ecc48ac7f50b1a/pyside6-6.10.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:ae8c3c8339cd7c3c9faa7cc5c52670dcc8662ccf4b63a6fed61c6345b90c4c01", size = 557762, upload-time = "2025-10-08T09:47:11.819Z" }, - { url = "https://files.pythonhosted.org/packages/c8/73/6187502fff8b6599443d15c46dd900b2ded24be5aacb2becce33f6faf566/pyside6-6.10.0-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:9f402f883e640048fab246d36e298a5e16df9b18ba2e8c519877e472d3602820", size = 558299, upload-time = "2025-10-08T09:47:14.255Z" }, - { url = "https://files.pythonhosted.org/packages/43/67/94794ebaf198bbdb35cb77f19f38370f9b323b036ab149874bc33c38faab/pyside6-6.10.0-cp39-abi3-win_amd64.whl", hash = "sha256:70a8bcc73ea8d6baab70bba311eac77b9a1d31f658d0b418e15eb6ea36c97e6f", size = 564367, upload-time = "2025-10-08T09:47:16.287Z" }, - { url = "https://files.pythonhosted.org/packages/1d/cc/552331d413c1b933d54ed45e33cc7ff29d0b239677975fe2528e7ac8bfbc/pyside6-6.10.0-cp39-abi3-win_arm64.whl", hash = "sha256:4b709bdeeb89d386059343a5a706fc185cee37b517bda44c7d6b64d5fdaf3339", size = 548826, upload-time = "2025-10-08T09:47:18.399Z" }, + { url = "https://files.pythonhosted.org/packages/35/0f/5736889fc850794623692cb369e295a994175e51295fa52134626f486296/pyside6-6.10.2-cp39-abi3-macosx_13_0_universal2.whl", hash = "sha256:4b084293caa7845d0064aaf6af258e0f7caae03a14a33537d0a552131afddaf0", size = 563185, upload-time = "2026-02-02T08:50:47.161Z" }, + { url = "https://files.pythonhosted.org/packages/35/d3/ab5cd2fac3d34469c7376e0cd18eec92905dbe44748c70bda7699a2a7206/pyside6-6.10.2-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:1b89ce8558d4b4f35b85bff1db90d680912e4d3ce9e79ff804d6fef1d1a151ef", size = 563357, upload-time = "2026-02-02T08:50:48.919Z" }, + { url = "https://files.pythonhosted.org/packages/ea/8c/55bbd50c138c8dc12edc9f25e9d94760a33e574905468e98dff399094baa/pyside6-6.10.2-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:0439f5e9b10ebe6177981bac9e219096ec970ac6ec215bef055279802ba50601", size = 563357, upload-time = "2026-02-02T08:50:50.077Z" }, + { url = "https://files.pythonhosted.org/packages/4f/d4/673b8112b4a260377f760be835c4e357163fdaf68a56a1aec59aeb8e584b/pyside6-6.10.2-cp39-abi3-win_amd64.whl", hash = "sha256:032bad6b18a17fcbf4dddd0397f49b07f8aae7f1a45b7e4de7037bf7fd6e0edf", size = 569554, upload-time = "2026-02-02T08:50:51.147Z" }, + { url = "https://files.pythonhosted.org/packages/14/95/bda648fcccf61fe58cb417284716ae30acdddd44f7d4cbad6eea4ccaa872/pyside6-6.10.2-cp39-abi3-win_arm64.whl", hash = "sha256:65a59ad0bc92525639e3268d590948ce07a80ee97b55e7a9200db41d493cac31", size = 553828, upload-time = "2026-02-02T08:50:52.244Z" }, ] [[package]] name = "pyside6-addons" -version = "6.10.0" +version = "6.10.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pyside6-essentials" }, { name = "shiboken6" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/47/23/9fbdec2ce16244ac3fe28e6d44c39c70465c93a03325939a792fd00fde7f/pyside6_addons-6.10.0-cp39-abi3-macosx_13_0_universal2.whl", hash = "sha256:88e61e21ee4643cdd9efb39ec52f4dc1ac74c0b45c5b7fa453d03c094f0a8a5c", size = 322248256, upload-time = "2025-10-08T09:47:37.844Z" }, - { url = "https://files.pythonhosted.org/packages/b7/b8/d129210f2c7366b4e1bf5bb6230be42052b29e8ba1b1d7db6ef333cf5a39/pyside6_addons-6.10.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:08d4ed46c4c9a353a9eb84134678f8fdd4ce17fb8cce2b3686172a7575025464", size = 170238987, upload-time = "2025-10-08T09:47:51.446Z" }, - { url = "https://files.pythonhosted.org/packages/cf/ae/ede1edd009395092219f3437d2ee59f9ba93739c28c040542ed47c6cc831/pyside6_addons-6.10.0-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:15d32229d681be0bba1b936c4a300da43d01e1917ada5b57f9e03a387c245ab0", size = 165939425, upload-time = "2025-10-08T09:48:02.073Z" }, - { url = "https://files.pythonhosted.org/packages/7d/5d/a3c32f85ac7f905c95679967c0ddda0ba043c273b75623cc90d8185064e4/pyside6_addons-6.10.0-cp39-abi3-win_amd64.whl", hash = "sha256:99d93a32c17c5f6d797c3b90dd58f2a8bae13abde81e85802c34ceafaee11859", size = 164814172, upload-time = "2025-10-08T09:48:12.891Z" }, - { url = "https://files.pythonhosted.org/packages/a3/2a/4ff71b09571202c8e1320c45276fc1d0cd81ee53107dfc17bb22d4243f88/pyside6_addons-6.10.0-cp39-abi3-win_arm64.whl", hash = "sha256:92536427413f3b6557cf53f1a515cd766725ee46a170aff57ad2ff1dfce0ffb1", size = 34104251, upload-time = "2025-10-08T09:48:18.287Z" }, + { url = "https://files.pythonhosted.org/packages/61/06/c283567628ffa2cefc3c72374ad607f1dfc9842a03db65f1347b9ae52bee/pyside6_addons-6.10.2-cp39-abi3-macosx_13_0_universal2.whl", hash = "sha256:0de7d0c9535e17d5e3b634b61314a1867f3b0f6d35c3d7cdc99efc353192faff", size = 322745605, upload-time = "2026-02-02T08:39:19.929Z" }, + { url = "https://files.pythonhosted.org/packages/a5/69/e1ab8c756fd3984b1fd7b186446227f524f6b561160bfbfdba8874b4709a/pyside6_addons-6.10.2-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:030a851163b51dbf0063be59e9ddb6a9e760bde89a28e461ccc81a224d286eaf", size = 170718434, upload-time = "2026-02-02T08:40:55.989Z" }, + { url = "https://files.pythonhosted.org/packages/df/e5/18ba86ba86d1231c486d36f9accfe862ed6eb52ca0b698aeaf6e837a87ca/pyside6_addons-6.10.2-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:fcee0373e3fd7b98f014094e5e37b4a39e4de7c5a47c13f654a7d557d4a426ad", size = 166423836, upload-time = "2026-02-02T08:42:44.918Z" }, + { url = "https://files.pythonhosted.org/packages/99/13/503bec9201881968c372cb634069535e80aec2489f3907d676e151a1023f/pyside6_addons-6.10.2-cp39-abi3-win_amd64.whl", hash = "sha256:c20150068525a17494f3b6576c5d61c417cf9a5870659e29f5ebd83cd20a78ea", size = 164712775, upload-time = "2026-02-02T08:43:23.729Z" }, + { url = "https://files.pythonhosted.org/packages/b6/39/44d6710b4dd18d745077b5fc6ded4ba6f32987a6e49c5834529e50f02155/pyside6_addons-6.10.2-cp39-abi3-win_arm64.whl", hash = "sha256:3d18db739b46946ba7b722d8ad4cc2097135033aa6ea57076e64d591e6a345f3", size = 34041396, upload-time = "2026-02-02T08:43:31.246Z" }, ] [[package]] name = "pyside6-essentials" -version = "6.10.0" +version = "6.10.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "shiboken6" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/55/bad02ab890c8b8101abef0db4a2e5304be78a69e23a438e4d8555b664467/pyside6_essentials-6.10.0-cp39-abi3-macosx_13_0_universal2.whl", hash = "sha256:003e871effe1f3e5b876bde715c15a780d876682005a6e989d89f48b8b93e93a", size = 105034090, upload-time = "2025-10-08T09:48:24.944Z" }, - { url = "https://files.pythonhosted.org/packages/5c/75/e17efc7eb900993e0e3925885635c6cf373c817196f09bcbcc102b00ac94/pyside6_essentials-6.10.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:1d5e013a8698e37ab8ef360e6960794eb5ef20832a8d562e649b8c5a0574b2d8", size = 76362150, upload-time = "2025-10-08T09:48:31.849Z" }, - { url = "https://files.pythonhosted.org/packages/06/62/fbd1e81caafcda97b147c03f5b06cfaadd8da5fa8298f527d2ec648fa5b7/pyside6_essentials-6.10.0-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:b1dd0864f0577a448fb44426b91cafff7ee7cccd1782ba66491e1c668033f998", size = 75454169, upload-time = "2025-10-08T09:48:38.21Z" }, - { url = "https://files.pythonhosted.org/packages/bb/3a/d8211d17e6ca70f641c6ebd309f08ef18930acda60e74082c75875a274da/pyside6_essentials-6.10.0-cp39-abi3-win_amd64.whl", hash = "sha256:fc167eb211dd1580e20ba90d299e74898e7a5a1306d832421e879641fc03b6fe", size = 74361794, upload-time = "2025-10-08T09:48:44.335Z" }, - { url = "https://files.pythonhosted.org/packages/61/e9/0e22e3c10325c4ff09447fadb43f7962afb82cef0b65358f5704251c6b32/pyside6_essentials-6.10.0-cp39-abi3-win_arm64.whl", hash = "sha256:6dd0936394cb14da2fd8e869899f5e0925a738b1c8d74c2f22503720ea363fb1", size = 55099467, upload-time = "2025-10-08T09:48:50.902Z" }, + { url = "https://files.pythonhosted.org/packages/1d/2e/5f18a77f5e0bd730bacec93a690d0ef3c96a9711d213653eacecbf241b8d/pyside6_essentials-6.10.2-cp39-abi3-macosx_13_0_universal2.whl", hash = "sha256:1dee2cb9803ff135f881dadeb5c0edcef793d1ec4f8a9140a1348cecb71074e1", size = 105913067, upload-time = "2026-02-02T08:45:37.508Z" }, + { url = "https://files.pythonhosted.org/packages/99/20/3a6ca95052e1744b5a3eba164e2dd451d358a3dcaf78179de4b45c8e3f47/pyside6_essentials-6.10.2-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:660aea45bfa36f1e06f799b934c2a7df963bd31abc5083e8bb8a5bfaef45686b", size = 77027153, upload-time = "2026-02-02T08:45:53.09Z" }, + { url = "https://files.pythonhosted.org/packages/93/a6/6073e4ddc2a5c7b3941606e4bc8bbaadcf0737f57450620b0793041c8d22/pyside6_essentials-6.10.2-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:c2b028e4c6f8047a02c31f373408e23b4eedfd405f56c6aba8d0525c29472835", size = 76114242, upload-time = "2026-02-02T08:46:07.184Z" }, + { url = "https://files.pythonhosted.org/packages/22/a8/616bbbd009efd3e17bf9a2db09d90c6764c010565cd2bdea2a240bfd18f7/pyside6_essentials-6.10.2-cp39-abi3-win_amd64.whl", hash = "sha256:0741018c2b6395038cad4c41775cfae3f13a409e87995ac9f7d89e5b1fb6b22a", size = 74546490, upload-time = "2026-02-02T08:46:26.395Z" }, + { url = "https://files.pythonhosted.org/packages/b9/f9/c9757a984c4ffb6d12fab69e966d95dfc862a5d44e12b7900f3a03780b76/pyside6_essentials-6.10.2-cp39-abi3-win_arm64.whl", hash = "sha256:db5f4913648bb6afddb8b347edae151ee2378f12bceb03c8b2515a530a4b38d9", size = 55258626, upload-time = "2026-02-02T08:46:36.788Z" }, ] [[package]] name = "pytest" -version = "9.0.0" +version = "9.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, @@ -231,9 +295,9 @@ dependencies = [ { name = "pluggy" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/da/1d/eb34f286b164c5e431a810a38697409cca1112cee04b287bb56ac486730b/pytest-9.0.0.tar.gz", hash = "sha256:8f44522eafe4137b0f35c9ce3072931a788a21ee40a2ed279e817d3cc16ed21e", size = 1562764, upload-time = "2025-11-08T17:25:33.34Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901, upload-time = "2025-12-06T21:30:51.014Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/72/99/cafef234114a3b6d9f3aaed0723b437c40c57bdb7b3e4c3a575bc4890052/pytest-9.0.0-py3-none-any.whl", hash = "sha256:e5ccdf10b0bac554970ee88fc1a4ad0ee5d221f8ef22321f9b7e4584e19d7f96", size = 373364, upload-time = "2025-11-08T17:25:31.811Z" }, + { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801, upload-time = "2025-12-06T21:30:49.154Z" }, ] [[package]] @@ -259,23 +323,23 @@ wheels = [ [[package]] name = "setuptools" -version = "80.9.0" +version = "82.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958, upload-time = "2025-05-27T00:56:51.443Z" } +sdist = { url = "https://files.pythonhosted.org/packages/82/f3/748f4d6f65d1756b9ae577f329c951cda23fb900e4de9f70900ced962085/setuptools-82.0.0.tar.gz", hash = "sha256:22e0a2d69474c6ae4feb01951cb69d515ed23728cf96d05513d36e42b62b37cb", size = 1144893, upload-time = "2026-02-08T15:08:40.206Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload-time = "2025-05-27T00:56:49.664Z" }, + { url = "https://files.pythonhosted.org/packages/e1/c6/76dc613121b793286a3f91621d7b75a2b493e0390ddca50f11993eadf192/setuptools-82.0.0-py3-none-any.whl", hash = "sha256:70b18734b607bd1da571d097d236cfcfacaf01de45717d59e6e04b96877532e0", size = 1003468, upload-time = "2026-02-08T15:08:38.723Z" }, ] [[package]] name = "shiboken6" -version = "6.10.0" +version = "6.10.2" source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/78/3e730aea82089dd82b1e092bc265778bda329459e6ad9b7134eec5fff3f2/shiboken6-6.10.0-cp39-abi3-macosx_13_0_universal2.whl", hash = "sha256:7a5f5f400ebfb3a13616030815708289c2154e701a60b9db7833b843e0bee543", size = 476535, upload-time = "2025-10-08T09:49:08Z" }, - { url = "https://files.pythonhosted.org/packages/ea/09/4ffa3284a17b6b765d45b41c9a7f1b2cde6c617c853ac6f170fb62bbbece/shiboken6-6.10.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:e612734da515d683696980107cdc0396a3ae0f07b059f0f422ec8a2333810234", size = 271098, upload-time = "2025-10-08T09:49:09.47Z" }, - { url = "https://files.pythonhosted.org/packages/31/29/00e26f33a0fb259c2edce9c761a7a438d7531ca514bdb1a4c072673bd437/shiboken6-6.10.0-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:b01377e68d14132360efb0f4b7233006d26aa8ae9bb50edf00960c2a5f52d148", size = 267698, upload-time = "2025-10-08T09:49:10.694Z" }, - { url = "https://files.pythonhosted.org/packages/11/30/e4624a7e3f0dc9796b701079b77defcce0d32d1afc86bb1d0df04bc3d9e2/shiboken6-6.10.0-cp39-abi3-win_amd64.whl", hash = "sha256:0bc5631c1bf150cbef768a17f5f289aae1cb4db6c6b0c19b2421394e27783717", size = 1234227, upload-time = "2025-10-08T09:49:12.774Z" }, - { url = "https://files.pythonhosted.org/packages/dd/e5/0ab862005ea87dc8647ba958a3099b3b0115fd6491c65da5c5a0f6364db1/shiboken6-6.10.0-cp39-abi3-win_arm64.whl", hash = "sha256:dfc4beab5fec7dbbebbb418f3bf99af865d6953aa0795435563d4cbb82093b61", size = 1794775, upload-time = "2025-10-08T09:49:14.641Z" }, + { url = "https://files.pythonhosted.org/packages/fb/38/3912eb08a3b865b5fcdb4bdce8076cacc211986cee587f5cb62e637791af/shiboken6-6.10.2-cp39-abi3-macosx_13_0_universal2.whl", hash = "sha256:3bd4e94e9a3c8c1fa8362fd752d399ef39265d5264e4e37bae61cdaa2a00c8c7", size = 479829, upload-time = "2026-02-02T08:50:22.495Z" }, + { url = "https://files.pythonhosted.org/packages/52/88/292e0576489c46624ab419ee284ac5a59ae10e2eb34a58b6abca51dfd290/shiboken6-6.10.2-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:ace0790032d9cb0adda644b94ee28d59410180d9773643bb6cf8438c361987ad", size = 273052, upload-time = "2026-02-02T08:50:24.539Z" }, + { url = "https://files.pythonhosted.org/packages/06/c2/03d44d34e8264e1f25671677fece95b414c70fd85dcc2be8d5e821ee2628/shiboken6-6.10.2-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:f74d3ed1f92658077d0630c39e694eb043aeb1d830a5d275176c45d07147427f", size = 269868, upload-time = "2026-02-02T08:50:25.662Z" }, + { url = "https://files.pythonhosted.org/packages/71/5d/5ca52c0ef86b3d01572131b6709bd531a080995f7e680720e9424328ce1d/shiboken6-6.10.2-cp39-abi3-win_amd64.whl", hash = "sha256:10f3c8c5e1b8bee779346f21c10dbc14cff068f0b0b4e62420c82a6bf36ac2e7", size = 1222052, upload-time = "2026-02-02T08:50:27.502Z" }, + { url = "https://files.pythonhosted.org/packages/46/52/421fd378313c89b67ee7d584bf4e9ec088fa1804891b8d74e02b16703457/shiboken6-6.10.2-cp39-abi3-win_arm64.whl", hash = "sha256:20c671645d70835af212ee05df60361d734c5305edb2746e9875c6a31283f963", size = 1784089, upload-time = "2026-02-02T08:50:29.069Z" }, ] [[package]] @@ -289,9 +353,46 @@ wheels = [ [[package]] name = "tzdata" -version = "2025.2" +version = "2025.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/a7/c202b344c5ca7daf398f3b8a477eeb205cf3b6f32e7ec3a6bac0629ca975/tzdata-2025.3.tar.gz", hash = "sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7", size = 196772, upload-time = "2025-12-13T17:45:35.667Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl", hash = "sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1", size = 348521, upload-time = "2025-12-13T17:45:33.889Z" }, +] + +[[package]] +name = "wheel" +version = "0.46.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/89/24/a2eb353a6edac9a0303977c4cb048134959dd2a51b48a269dfc9dde00c8a/wheel-0.46.3.tar.gz", hash = "sha256:e3e79874b07d776c40bd6033f8ddf76a7dad46a7b8aa1b2787a83083519a1803", size = 60605, upload-time = "2026-01-22T12:39:49.136Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/22/b76d483683216dde3d67cba61fb2444be8d5be289bf628c13fc0fd90e5f9/wheel-0.46.3-py3-none-any.whl", hash = "sha256:4b399d56c9d9338230118d705d9737a2a468ccca63d5e813e2a4fc7815d8bc4d", size = 30557, upload-time = "2026-01-22T12:39:48.099Z" }, +] + +[[package]] +name = "zstandard" +version = "0.25.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9", size = 196380, upload-time = "2025-03-23T13:54:43.652Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fd/aa/3e0508d5a5dd96529cdc5a97011299056e14c6505b678fd58938792794b1/zstandard-0.25.0.tar.gz", hash = "sha256:7713e1179d162cf5c7906da876ec2ccb9c3a9dcbdffef0cc7f70c3667a205f0b", size = 711513, upload-time = "2025-09-14T22:15:54.002Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload-time = "2025-03-23T13:54:41.845Z" }, + { url = "https://files.pythonhosted.org/packages/2a/83/c3ca27c363d104980f1c9cee1101cc8ba724ac8c28a033ede6aab89585b1/zstandard-0.25.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:933b65d7680ea337180733cf9e87293cc5500cc0eb3fc8769f4d3c88d724ec5c", size = 795254, upload-time = "2025-09-14T22:16:26.137Z" }, + { url = "https://files.pythonhosted.org/packages/ac/4d/e66465c5411a7cf4866aeadc7d108081d8ceba9bc7abe6b14aa21c671ec3/zstandard-0.25.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3f79487c687b1fc69f19e487cd949bf3aae653d181dfb5fde3bf6d18894706f", size = 640559, upload-time = "2025-09-14T22:16:27.973Z" }, + { url = "https://files.pythonhosted.org/packages/12/56/354fe655905f290d3b147b33fe946b0f27e791e4b50a5f004c802cb3eb7b/zstandard-0.25.0-cp311-cp311-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:0bbc9a0c65ce0eea3c34a691e3c4b6889f5f3909ba4822ab385fab9057099431", size = 5348020, upload-time = "2025-09-14T22:16:29.523Z" }, + { url = "https://files.pythonhosted.org/packages/3b/13/2b7ed68bd85e69a2069bcc72141d378f22cae5a0f3b353a2c8f50ef30c1b/zstandard-0.25.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:01582723b3ccd6939ab7b3a78622c573799d5d8737b534b86d0e06ac18dbde4a", size = 5058126, upload-time = "2025-09-14T22:16:31.811Z" }, + { url = "https://files.pythonhosted.org/packages/c9/dd/fdaf0674f4b10d92cb120ccff58bbb6626bf8368f00ebfd2a41ba4a0dc99/zstandard-0.25.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5f1ad7bf88535edcf30038f6919abe087f606f62c00a87d7e33e7fc57cb69fcc", size = 5405390, upload-time = "2025-09-14T22:16:33.486Z" }, + { url = "https://files.pythonhosted.org/packages/0f/67/354d1555575bc2490435f90d67ca4dd65238ff2f119f30f72d5cde09c2ad/zstandard-0.25.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:06acb75eebeedb77b69048031282737717a63e71e4ae3f77cc0c3b9508320df6", size = 5452914, upload-time = "2025-09-14T22:16:35.277Z" }, + { url = "https://files.pythonhosted.org/packages/bb/1f/e9cfd801a3f9190bf3e759c422bbfd2247db9d7f3d54a56ecde70137791a/zstandard-0.25.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9300d02ea7c6506f00e627e287e0492a5eb0371ec1670ae852fefffa6164b072", size = 5559635, upload-time = "2025-09-14T22:16:37.141Z" }, + { url = "https://files.pythonhosted.org/packages/21/88/5ba550f797ca953a52d708c8e4f380959e7e3280af029e38fbf47b55916e/zstandard-0.25.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfd06b1c5584b657a2892a6014c2f4c20e0db0208c159148fa78c65f7e0b0277", size = 5048277, upload-time = "2025-09-14T22:16:38.807Z" }, + { url = "https://files.pythonhosted.org/packages/46/c0/ca3e533b4fa03112facbe7fbe7779cb1ebec215688e5df576fe5429172e0/zstandard-0.25.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f373da2c1757bb7f1acaf09369cdc1d51d84131e50d5fa9863982fd626466313", size = 5574377, upload-time = "2025-09-14T22:16:40.523Z" }, + { url = "https://files.pythonhosted.org/packages/12/9b/3fb626390113f272abd0799fd677ea33d5fc3ec185e62e6be534493c4b60/zstandard-0.25.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6c0e5a65158a7946e7a7affa6418878ef97ab66636f13353b8502d7ea03c8097", size = 4961493, upload-time = "2025-09-14T22:16:43.3Z" }, + { url = "https://files.pythonhosted.org/packages/cb/d3/23094a6b6a4b1343b27ae68249daa17ae0651fcfec9ed4de09d14b940285/zstandard-0.25.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c8e167d5adf59476fa3e37bee730890e389410c354771a62e3c076c86f9f7778", size = 5269018, upload-time = "2025-09-14T22:16:45.292Z" }, + { url = "https://files.pythonhosted.org/packages/8c/a7/bb5a0c1c0f3f4b5e9d5b55198e39de91e04ba7c205cc46fcb0f95f0383c1/zstandard-0.25.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:98750a309eb2f020da61e727de7d7ba3c57c97cf6213f6f6277bb7fb42a8e065", size = 5443672, upload-time = "2025-09-14T22:16:47.076Z" }, + { url = "https://files.pythonhosted.org/packages/27/22/503347aa08d073993f25109c36c8d9f029c7d5949198050962cb568dfa5e/zstandard-0.25.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:22a086cff1b6ceca18a8dd6096ec631e430e93a8e70a9ca5efa7561a00f826fa", size = 5822753, upload-time = "2025-09-14T22:16:49.316Z" }, + { url = "https://files.pythonhosted.org/packages/e2/be/94267dc6ee64f0f8ba2b2ae7c7a2df934a816baaa7291db9e1aa77394c3c/zstandard-0.25.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:72d35d7aa0bba323965da807a462b0966c91608ef3a48ba761678cb20ce5d8b7", size = 5366047, upload-time = "2025-09-14T22:16:51.328Z" }, + { url = "https://files.pythonhosted.org/packages/7b/a3/732893eab0a3a7aecff8b99052fecf9f605cf0fb5fb6d0290e36beee47a4/zstandard-0.25.0-cp311-cp311-win32.whl", hash = "sha256:f5aeea11ded7320a84dcdd62a3d95b5186834224a9e55b92ccae35d21a8b63d4", size = 436484, upload-time = "2025-09-14T22:16:55.005Z" }, + { url = "https://files.pythonhosted.org/packages/43/a3/c6155f5c1cce691cb80dfd38627046e50af3ee9ddc5d0b45b9b063bfb8c9/zstandard-0.25.0-cp311-cp311-win_amd64.whl", hash = "sha256:daab68faadb847063d0c56f361a289c4f268706b598afbf9ad113cbe5c38b6b2", size = 506183, upload-time = "2025-09-14T22:16:52.753Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3e/8945ab86a0820cc0e0cdbf38086a92868a9172020fdab8a03ac19662b0e5/zstandard-0.25.0-cp311-cp311-win_arm64.whl", hash = "sha256:22a06c5df3751bb7dc67406f5374734ccee8ed37fc5981bf1ad7041831fa1137", size = 462533, upload-time = "2025-09-14T22:16:53.878Z" }, ] From 79b3184d8fa727986de92d60e292730fa34524ab Mon Sep 17 00:00:00 2001 From: Philipp Verpoort Date: Sun, 1 Mar 2026 10:03:27 +0100 Subject: [PATCH 2/9] Building MSIX. --- .github/workflows/build.yml | 32 ++++++++++++- logo.png | Bin 7157 -> 0 bytes packaging/logo.png | Bin 0 -> 1298 bytes logo.svg => packaging/logo.svg | 59 +++++++++++------------- packaging/windows/AppxManifest.xml | 42 +++++++++++++++++ packaging/windows/assets/logo-store.png | Bin 0 -> 1298 bytes packaging/windows/assets/logo150.png | Bin 0 -> 3758 bytes packaging/windows/assets/logo44.png | Bin 0 -> 1152 bytes 8 files changed, 100 insertions(+), 33 deletions(-) delete mode 100644 logo.png create mode 100644 packaging/logo.png rename logo.svg => packaging/logo.svg (57%) create mode 100644 packaging/windows/AppxManifest.xml create mode 100644 packaging/windows/assets/logo-store.png create mode 100644 packaging/windows/assets/logo150.png create mode 100644 packaging/windows/assets/logo44.png diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index baddfa8..6c85315 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,7 +10,8 @@ jobs: build: strategy: matrix: - os: [ubuntu-latest, macos-latest, windows-latest] + # os: [ubuntu-latest, macos-latest, windows-latest] + os: [windows-latest] runs-on: ${{ matrix.os }} @@ -44,3 +45,32 @@ jobs: with: name: groupselect2-dist-${{ matrix.os }} path: app/groupselect2.dist + + ### BUILD MSIX FOR WINDOWS + - name: Assemble MSIX package folder + if: runner.os == 'Windows' + shell: pwsh + run: | + $pkg = "msix_staging" + New-Item -ItemType Directory -Path $pkg + Copy-Item -Recurse "app\groupselect2.dist\*" "$pkg\" + Copy-Item "packaging\windows\AppxManifest.xml" "$pkg\" + Copy-Item -Recurse "packaging\windows\assets" "$pkg\assets" + + - name: Build MSIX with makeappx + if: runner.os == 'Windows' + shell: pwsh + run: | + $makeappx = Get-ChildItem "C:\Program Files (x86)\Windows Kits\10\bin" ` + -Recurse -Filter "makeappx.exe" | + Where-Object { $_.FullName -like "*x64*" } | + Select-Object -Last 1 -ExpandProperty FullName + + & $makeappx pack /d msix_staging /p groupselect2.msix /nv + + - name: Upload MSIX artifact + if: runner.os == 'Windows' + uses: actions/upload-artifact@v4 + with: + name: groupselect2-msix + path: groupselect2.msix diff --git a/logo.png b/logo.png deleted file mode 100644 index 11952d6918ec08923298050a810b574c82e76e4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7157 zcmeHMYfKbZ6h8ZqLl{E@wiL5&;^q$E~ZF@HRgH&7_B0JV18bu`Msot_Hg8 zeXq07ECdx-HZ+hrE2Ux^ANra3?>!5B?$-fK8)S5|q0(t4OWK(as4zBW@sPOGVZg6g!7+cVK`s@5? za1gvfWSBKWoNBN-(n2^*q;4}YZ13?jP~jU*9|QaDuk%dZ(o{6;nVIA?4U}@D9KdpX zE;YiD@3B$vc&MQ$V7I6*&$(7&fsxokVvB#3E$Hk0^%!w!y#R?>AiU~2!60n1F-sA_=dN3ws{=28>)G){#O`Y4Sk)nIvFdqu6KaMojqCT$tfEz3rfxsZC|njQ z9N7G|U^(yfcQEEr7uts7Oh3XrfGl8@!MGolgl#5`tu!II1ff6z!;{BHY^RF-tcRz3 zT)mOh=?HV0MkQ>uktHV?`?S+#MbStDd!d`B_L7IyL}9x}ZfR+~!ENIWu{Kd`PgFp6 z-3of-=kpK8);JP)u6}A3fl-FeC~yWpkj@)gPbJErI|N4GGHbLT#PRB0pa-O^9zpi+ z>$H$EKRzXcTQdu8#lC1%Pq^~q9k&9y#`^vm7ZbiChrDNB0Mo~uNvK*#;xDW#p$zm@^jPm4+ zBCSBck+KsUK2l!x^yOu}Ka>_c1CFD6$cdkjSkS3hs@D-dJ64X#PMg@+{-;{MVG~P- zx#NW*IGQqsIP}E|ptp(cc;U_BN^KfZIE0FHy|AcqF^o9vT((fbC|3x)_7eQ{MN1WL z>

mjlCd&LHQ5CFlS9al!VtNeS44kBrG{l*iZyiHYjk<@BqoI4*Y9+C2(a~Ccd7f ev884I^@6Cj-N!6jVniK&oV=WZ?5?b`rau5UI;LU( diff --git a/packaging/logo.png b/packaging/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fef41347bfdfd3f3391c3fc1e9a72ebd7d8fbe29 GIT binary patch literal 1298 zcmV+t1?~EYP) zTL1d9@7b?hQB?*4-nA~ESllpjy)j^nl-Lfemq(^5=22i0FjC=nL60kJI>GQSvziV1 zugtB!SEYE{zmf7N z!&e*8{BQD-r9dPZxER*HLuyKV%m#(wjw$c!CG%cXXT%Xje{~eOl0HRFhII^~XAv+V zSz4*fN#*3Qo=_u-v?LSymtCv1C3Hpc`bI@*I&gPbV`Nh0{1TwUQKU1#Jh4(&hR&vt$vEZ< zqlEm*`X3^VG-&HzhMqaVR!e~+KK_g~x-D{{=#E$b961%X+s97xySn{c1E0@Rqz*V7 zHb&tDu&k7x@>RO|cwD}jy7LUk&n{J8jqDC1zxi+{7Ou7SZl$HRk7JEGjAy&I0lSxkJelTxhm(MR)0{fyUr@qk-vz! za8}TTQK#W+^7v4xty@8#2YM_+PAklxuDPR81FqRCN`M(R9+_h*ndz}-te>g*4y6l(vZwZUBx&P1e<{I1qEP>7=4OtM^}RStZ_Gz zH<80(`Bd2BpFcN?%}2W(>$Aq~V}G$cV}f8Kj(dQ>3{zV6wv(14PDV_ZECTLNCMAoh zoia9AY+>AHMC64OS{dW}&!mWt#oowc({DvJ^qOglq7S8skHg-`P3A60_1J|N8IvYH z4tpbkH#oJL=#bPoBCt2&d#8$^SB#5QDE3C0a=(E7mQGIN&Q+PSDRhU#61X`*ot~97uPus;MdIyW`?)FVOiS z++$#br*x{veowuPG_@ZnUa9f?@2@ER#en(e!wn46^Jr;SI{*Lx07*qo IM6N<$f=py$2LJ#7 literal 0 HcmV?d00001 diff --git a/logo.svg b/packaging/logo.svg similarity index 57% rename from logo.svg rename to packaging/logo.svg index 8eee6ac..381f131 100644 --- a/logo.svg +++ b/packaging/logo.svg @@ -10,8 +10,8 @@ inkscape:version="1.4.2 (1:1.4.2+202505120738+ebf0e940d0)" sodipodi:docname="logo.svg" inkscape:export-filename="logo.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" + inkscape:export-xdpi="4.6875" + inkscape:export-ydpi="4.6875" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" @@ -27,12 +27,12 @@ inkscape:deskcolor="#d1d1d1" inkscape:document-units="mm" inkscape:zoom="0.43654023" - inkscape:cx="-66.431449" + inkscape:cx="294.36004" inkscape:cy="402.0248" inkscape:window-width="1920" inkscape:window-height="1044" - inkscape:window-x="1920" - inkscape:window-y="420" + inkscape:window-x="0" + inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="layer1" /> - - - + + + + + diff --git a/packaging/windows/AppxManifest.xml b/packaging/windows/AppxManifest.xml new file mode 100644 index 0000000..db8cf6f --- /dev/null +++ b/packaging/windows/AppxManifest.xml @@ -0,0 +1,42 @@ + + + + + + + GroupSelect + Philipp C. Verpoort + assets/logo-store.png + + + + + + + + + + + + + + + + + + + + diff --git a/packaging/windows/assets/logo-store.png b/packaging/windows/assets/logo-store.png new file mode 100644 index 0000000000000000000000000000000000000000..fef41347bfdfd3f3391c3fc1e9a72ebd7d8fbe29 GIT binary patch literal 1298 zcmV+t1?~EYP) zTL1d9@7b?hQB?*4-nA~ESllpjy)j^nl-Lfemq(^5=22i0FjC=nL60kJI>GQSvziV1 zugtB!SEYE{zmf7N z!&e*8{BQD-r9dPZxER*HLuyKV%m#(wjw$c!CG%cXXT%Xje{~eOl0HRFhII^~XAv+V zSz4*fN#*3Qo=_u-v?LSymtCv1C3Hpc`bI@*I&gPbV`Nh0{1TwUQKU1#Jh4(&hR&vt$vEZ< zqlEm*`X3^VG-&HzhMqaVR!e~+KK_g~x-D{{=#E$b961%X+s97xySn{c1E0@Rqz*V7 zHb&tDu&k7x@>RO|cwD}jy7LUk&n{J8jqDC1zxi+{7Ou7SZl$HRk7JEGjAy&I0lSxkJelTxhm(MR)0{fyUr@qk-vz! za8}TTQK#W+^7v4xty@8#2YM_+PAklxuDPR81FqRCN`M(R9+_h*ndz}-te>g*4y6l(vZwZUBx&P1e<{I1qEP>7=4OtM^}RStZ_Gz zH<80(`Bd2BpFcN?%}2W(>$Aq~V}G$cV}f8Kj(dQ>3{zV6wv(14PDV_ZECTLNCMAoh zoia9AY+>AHMC64OS{dW}&!mWt#oowc({DvJ^qOglq7S8skHg-`P3A60_1J|N8IvYH z4tpbkH#oJL=#bPoBCt2&d#8$^SB#5QDE3C0a=(E7mQGIN&Q+PSDRhU#61X`*ot~97uPus;MdIyW`?)FVOiS z++$#br*x{veowuPG_@ZnUa9f?@2@ER#en(e!wn46^Jr;SI{*Lx07*qo IM6N<$f=py$2LJ#7 literal 0 HcmV?d00001 diff --git a/packaging/windows/assets/logo150.png b/packaging/windows/assets/logo150.png new file mode 100644 index 0000000000000000000000000000000000000000..df09d88723d3cdbfb6e5ad6636aeaa9a6abe7518 GIT binary patch literal 3758 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 SmF`vm0000 Date: Sun, 1 Mar 2026 10:11:02 +0100 Subject: [PATCH 3/9] Removed patchelf from Windows. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 660fde8..65e3219 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,7 +24,7 @@ groupselect = { git = "https://github.com/PhilippVerpoort/groupselect-lib" } deployment = [ "nuitka==2.7.11", "ordered-set>=4.1.0", - "patchelf>=0.17.2.4", + "patchelf>=0.17.2.4; sys_platform == 'linux'", "pip>=26.0.1", "setuptools>=81.0.0", "wheel>=0.46.3", From e7155fe88b894d7090c58942240d3be71fb56da1 Mon Sep 17 00:00:00 2001 From: Philipp Verpoort Date: Sun, 1 Mar 2026 10:45:36 +0100 Subject: [PATCH 4/9] Bugfix: publisher display name. --- packaging/windows/AppxManifest.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/windows/AppxManifest.xml b/packaging/windows/AppxManifest.xml index db8cf6f..0bcdcee 100644 --- a/packaging/windows/AppxManifest.xml +++ b/packaging/windows/AppxManifest.xml @@ -13,7 +13,7 @@ GroupSelect - Philipp C. Verpoort + Philipp Verpoort assets/logo-store.png From 8416a6edafc6c67b5f9d1763af747446d571d9d1 Mon Sep 17 00:00:00 2001 From: Philipp Verpoort Date: Tue, 3 Mar 2026 23:42:20 +0100 Subject: [PATCH 5/9] Setting version number automatically. --- .github/workflows/build.yml | 17 +++++++++++++++++ packaging/windows/AppxManifest.xml | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6c85315..b9ecb4d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,6 +47,23 @@ jobs: path: app/groupselect2.dist ### BUILD MSIX FOR WINDOWS + - name: Set version in manifest + if: runner.os == 'Windows' + shell: pwsh + run: | + $tag = git describe --tags --abbrev=0 2>$null + if ($tag) { + $semver = $tag -replace '^v', '' + } else { + $semver = "2.0.0" + } + $commitCount = git rev-list --count HEAD + $version = "$semver.$commitCount" + (Get-Content packaging\windows\AppxManifest.xml) ` + -replace 'Version="0.0.0.0"', "Version=""$version""" | + Set-Content packaging\windows\AppxManifest.xml + Write-Host "Set version to $version" + - name: Assemble MSIX package folder if: runner.os == 'Windows' shell: pwsh diff --git a/packaging/windows/AppxManifest.xml b/packaging/windows/AppxManifest.xml index 0bcdcee..42969cb 100644 --- a/packaging/windows/AppxManifest.xml +++ b/packaging/windows/AppxManifest.xml @@ -8,7 +8,7 @@ From 62387d67dcc5947740f6da9e0e073a0193c145f3 Mon Sep 17 00:00:00 2001 From: Philipp Verpoort Date: Wed, 4 Mar 2026 00:10:49 +0100 Subject: [PATCH 6/9] Debugging building the standalone directory. The build needs to include the DLLs. --- .github/workflows/build.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b9ecb4d..f7703cf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,6 +40,12 @@ jobs: - name: Build app run: uv run pyside6-deploy --mode standalone --name groupselect2 app/main.py + - name: Inspect dist folder + if: runner.os == 'Windows' + shell: pwsh + run: | + Get-ChildItem -Recurse app\groupselect2.dist | Select-Object FullName + - name: Upload artifact uses: actions/upload-artifact@v4 with: From 65cda8207c886c7ded17044ebcd9f1c5e1b84c97 Mon Sep 17 00:00:00 2001 From: Philipp Verpoort Date: Wed, 4 Mar 2026 00:38:49 +0100 Subject: [PATCH 7/9] Fix missing dependency walker for nuitka. --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f7703cf..28c9fa4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -38,6 +38,8 @@ jobs: run: uv sync --group deployment - name: Build app + env: + NUITKA_ASSUME_YES_FOR_DOWNLOADS: "1" run: uv run pyside6-deploy --mode standalone --name groupselect2 app/main.py - name: Inspect dist folder From ebce9ee0b6a075063e9f04352e831fdca9ad61bb Mon Sep 17 00:00:00 2001 From: Philipp Verpoort Date: Wed, 4 Mar 2026 07:45:55 +0100 Subject: [PATCH 8/9] Downloading dependency walker manually. --- .github/workflows/build.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 28c9fa4..e3cff1a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -37,9 +37,17 @@ jobs: - name: Install dependencies run: uv sync --group deployment + - name: Download Dependency Walker for Nuitka + if: runner.os == 'Windows' + shell: pwsh + run: | + $dest = "$env:LOCALAPPDATA\Nuitka\Nuitka\Cache\downloads\depends\x86_64" + New-Item -ItemType Directory -Force -Path $dest + Invoke-WebRequest -Uri "https://dependencywalker.com/depends22_x64.zip" ` + -OutFile "$dest\depends.zip" + Expand-Archive -Path "$dest\depends.zip" -DestinationPath $dest -Force + - name: Build app - env: - NUITKA_ASSUME_YES_FOR_DOWNLOADS: "1" run: uv run pyside6-deploy --mode standalone --name groupselect2 app/main.py - name: Inspect dist folder From d06d7b3cedd2764be5935e0d31fd704122fd7227 Mon Sep 17 00:00:00 2001 From: Philipp Verpoort Date: Thu, 5 Mar 2026 00:01:18 +0100 Subject: [PATCH 9/9] Finalisied build workflow. --- .github/workflows/build.yml | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e3cff1a..77e2608 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,14 +10,14 @@ jobs: build: strategy: matrix: - # os: [ubuntu-latest, macos-latest, windows-latest] - os: [windows-latest] + os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 + ### INSTALL UV - name: Install uv (Unix) if: runner.os != 'Windows' run: | @@ -34,9 +34,11 @@ jobs: - name: Verify uv run: uv --version + ### INSTALL PYTHON DEPENDENCIES - name: Install dependencies run: uv sync --group deployment + ### INSTALL DEPENDENCY WALKER FOR NUITKA ON WINDOWS - name: Download Dependency Walker for Nuitka if: runner.os == 'Windows' shell: pwsh @@ -47,15 +49,10 @@ jobs: -OutFile "$dest\depends.zip" Expand-Archive -Path "$dest\depends.zip" -DestinationPath $dest -Force + ### BUILD APP WITH PYSIDE6-DEPLOY AND UPLOAD AS ARTIFACT - name: Build app run: uv run pyside6-deploy --mode standalone --name groupselect2 app/main.py - - name: Inspect dist folder - if: runner.os == 'Windows' - shell: pwsh - run: | - Get-ChildItem -Recurse app\groupselect2.dist | Select-Object FullName - - name: Upload artifact uses: actions/upload-artifact@v4 with: