From a72d947049c3e0384cc0ee15be764439b154ec7f Mon Sep 17 00:00:00 2001 From: joao marques Date: Fri, 10 Apr 2026 16:45:34 +0100 Subject: [PATCH 1/3] add miniconda installer for osx arm64 --- scripts/zwik-install.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scripts/zwik-install.sh b/scripts/zwik-install.sh index 217bc55..664ff9a 100644 --- a/scripts/zwik-install.sh +++ b/scripts/zwik-install.sh @@ -1,7 +1,8 @@ #!/usr/bin/env sh set -e CONDA_INSTALLER_LINUX=Miniforge3-24.3.0-0-Linux-x86_64.sh -CONDA_INSTALLER_MACOS=Miniforge3-24.3.0-0-MacOSX-x86_64.sh +CONDA_INSTALLER_MACOS_INTEL=Miniforge3-24.3.0-0-MacOSX-x86_64.sh +CONDA_INSTALLER_MACOS_ARM=Miniforge3-24.3.0-0-MacOSX-arm64.sh CONDA_NAME=Mambaforge if [ -z "$ZWIK_CLIENT_SCRIPT" ] \ @@ -46,7 +47,11 @@ if ! [ -x "${ZWIK_ROOT}/bin/python" ]; then echo "Fetching installer" installer="/tmp/conda-install.sh" if [ "$(uname)" = "Darwin" ]; then - installer_url="${ZWIK_URL}/install-data/${CONDA_INSTALLER_MACOS}" + if [ "$(uname -m)" = "arm64" ]; then + installer_url="${ZWIK_URL}/install-data/${CONDA_INSTALLER_MACOS_ARM}" + else + installer_url="${ZWIK_URL}/install-data/${CONDA_INSTALLER_MACOS_INTEL}" + fi else installer_url="${ZWIK_URL}/install-data/${CONDA_INSTALLER_LINUX}" fi From 9e8ace2df426d0d045308d464ad0e1978f9a9de1 Mon Sep 17 00:00:00 2001 From: joao marques Date: Thu, 30 Apr 2026 11:19:44 +0100 Subject: [PATCH 2/3] update lockfile and fix tests due to new versions --- .zwik/zwik_environment_linux-64.lock | 109 +++++++++++++-------------- scripts/zwik_client.py | 9 ++- 2 files changed, 62 insertions(+), 56 deletions(-) diff --git a/.zwik/zwik_environment_linux-64.lock b/.zwik/zwik_environment_linux-64.lock index 4f046ce..9a91c18 100644 --- a/.zwik/zwik_environment_linux-64.lock +++ b/.zwik/zwik_environment_linux-64.lock @@ -3,34 +3,33 @@ # please commit this file to your version control system # # This file is generated automatically, do not change it! -# file is created on 2026-02-06 16:45:32.353803 -# lockfile integrity: 75956d2830d0e997f1f3950ea9621df3 -script_version: '5.16' +# file is created on 2026-04-30 11:15:29.471536 by mjq1av +# lockfile integrity: 5a74e8dac12f8fde4c46281c179a398a +script_version: '5.18' subdir: linux-64 yaml_hash: 0fcf58afdf3311ebc6a234a98eecd61c channel_alias: https://conda.anaconda.org channels: - defaults dependencies: -- _libgcc_mutex=0.1=conda_forge -- _openmp_mutex=4.5=2_gnu +- _openmp_mutex=4.5=20_gnu - archspec=0.2.5=pyhd8ed1ab_0 - backports.zstd=1.3.0=py312h90b7ffd_0 -- black=26.1.0=pyh866005b_0 +- black=26.3.1=pyh866005b_0 - boltons=25.0.0=pyhd8ed1ab_0 - brotli-python=1.2.0=py312hdb49522_1 -- bzip2=1.0.8=hda65f42_8 +- bzip2=1.0.8=hda65f42_9 - c-ares=1.34.6=hb03c661_0 -- ca-certificates=2026.1.4=hbd8a1cb_0 -- certifi=2026.1.4=pyhd8ed1ab_0 +- ca-certificates=2026.4.22=hbd8a1cb_0 +- certifi=2026.4.22=pyhd8ed1ab_0 - cffi=2.0.0=py312h460c074_1 -- charset-normalizer=3.4.4=pyhd8ed1ab_0 -- click=8.3.1=pyh8f84b5b_1 -- conda-libmamba-solver=25.11.0=pyhd8ed1ab_1 +- charset-normalizer=3.4.7=pyhd8ed1ab_0 +- click=8.3.3=pyhc90fa1f_0 +- conda-libmamba-solver=26.4.0=pyhd8ed1ab_0 - conda-package-handling=2.4.0=pyh7900ff3_2 - conda-package-streaming=0.12.0=pyhd8ed1ab_0 -- conda=26.1.0=py312h7900ff3_0 -- coverage=7.13.3=py312h8a5da7c_0 +- conda=26.3.2=py312h7900ff3_1 +- coverage=7.13.5=py312h8a5da7c_0 - cpp-expected=1.3.1=h171cf75_0 - distro=1.9.0=pyhd8ed1ab_1 - flake8=7.3.0=pyhd8ed1ab_0 @@ -40,54 +39,54 @@ dependencies: - h2=4.3.0=pyhcf101f3_0 - hpack=4.1.0=pyhd8ed1ab_0 - hyperframe=6.1.0=pyhd8ed1ab_0 -- icu=78.2=h33c6efd_0 -- idna=3.11=pyhd8ed1ab_0 -- importlib-metadata=8.7.0=pyhe01879c_1 -- invoke=2.2.1=pyhd8ed1ab_0 -- isort=7.0.0=pyhd8ed1ab_0 +- icu=78.3=h33c6efd_0 +- idna=3.13=pyhcf101f3_0 +- importlib-metadata=8.8.0=pyhcf101f3_0 +- invoke=3.0.3=pyhd8ed1ab_0 +- isort=8.0.1=pyhd8ed1ab_0 - jsonpatch=1.33=pyhd8ed1ab_1 -- jsonpointer=3.0.0=pyhcf101f3_3 +- jsonpointer=3.1.1=pyhcf101f3_0 - keyutils=1.6.3=hb9d3cd8_0 -- krb5=1.21.3=h659f571_0 -- ld_impl_linux-64=2.45.1=default_hbd61a6d_101 -- libarchive=3.8.5=gpl_hc2c16d8_100 -- libcurl=8.18.0=h4e3cde8_0 +- krb5=1.22.2=ha1258a1_0 +- ld_impl_linux-64=2.45.1=default_hbd61a6d_102 +- libarchive=3.8.7=gpl_hc2c16d8_100 +- libcurl=8.20.0=hcf29cc6_0 - libedit=3.1.20250104=pl5321h7949ede_0 - libev=4.33=hd590300_2 -- libexpat=2.7.3=hecca717_0 +- libexpat=2.7.5=hecca717_0 - libffi=3.5.2=h3435931_0 -- libgcc-ng=15.2.0=h69a702a_17 -- libgcc=15.2.0=he0feb66_17 -- libgomp=15.2.0=he0feb66_17 +- libgcc-ng=15.2.0=h69a702a_18 +- libgcc=15.2.0=he0feb66_18 +- libgomp=15.2.0=he0feb66_18 - libiconv=1.18=h3b78370_2 -- liblzma=5.8.2=hb03c661_0 -- libmamba-spdlog=2.5.0=h12fcf84_0 -- libmamba=2.5.0=hd28c85e_0 -- libmambapy=2.5.0=py312h1ca65c7_0 -- libnghttp2=1.67.0=had1ee68_0 +- liblzma=5.8.3=hb03c661_0 +- libmamba-spdlog=2.6.0=hf859cbd_0 +- libmamba=2.6.0=hd28c85e_0 +- libmambapy=2.6.0=py312h5ee1301_0 +- libmsgpack-c=6.1.0=h54a6638_6 +- libnghttp2=1.68.1=h877daf1_0 - libnsl=2.0.1=hb9d3cd8_1 -- libsolv=0.7.35=h9463b59_0 -- libsqlite=3.51.2=hf4e2dac_0 +- libsolv=0.7.37=h9463b59_0 +- libsqlite=3.53.0=hf4e2dac_0 - libssh2=1.11.1=hcf80075_0 -- libstdcxx-ng=15.2.0=hdf11a46_17 -- libstdcxx=15.2.0=h934c35e_17 -- libuuid=2.41.3=h5347b49_0 +- libstdcxx=15.2.0=h934c35e_18 +- libuuid=2.42=h5347b49_0 - libxcrypt=4.4.36=hd590300_1 -- libxml2-16=2.15.1=hca6bf5a_1 -- libxml2=2.15.1=he237659_1 -- libzlib=1.3.1=hb9d3cd8_2 +- libxml2-16=2.15.3=hca6bf5a_0 +- libxml2=2.15.3=h49c6c72_0 +- libzlib=1.3.2=h25fd6f3_2 - lz4-c=1.10.0=h5888daf_1 - lzo=2.10=h280c20c_1002 - mccabe=0.7.0=pyhd8ed1ab_1 - menuinst=2.4.2=py312h7900ff3_0 - msgpack-python=1.1.2=py312hd9148b4_1 - mypy_extensions=1.1.0=pyha770c72_0 -- ncurses=6.5=h2d0b736_3 +- ncurses=6.6=hdb14827_0 - nlohmann_json-abi=3.12.0=h0f90c79_1 -- openssl=3.6.1=h35e630c_1 -- packaging=26.0=pyhcf101f3_0 -- pathspec=1.0.4=pyhd8ed1ab_0 -- platformdirs=4.5.1=pyhcf101f3_0 +- openssl=3.6.2=h35e630c_0 +- packaging=26.2=pyhc364b38_0 +- pathspec=1.1.1=pyhd8ed1ab_0 +- platformdirs=4.9.6=pyhcf101f3_0 - pluggy=1.6.0=pyhf9edf01_1 - pybind11-abi=11=hc364b38_1 - pycodestyle=2.14.0=pyhd8ed1ab_0 @@ -96,28 +95,28 @@ dependencies: - pyflakes=3.4.0=pyhd8ed1ab_0 - pysocks=1.7.1=pyha55dd90_7 - python-dateutil=2.9.0.post0=pyhe01879c_2 -- python=3.12.12=hd63d673_2_cpython +- python=3.12.13=hd63d673_0_cpython - python_abi=3.12=8_cp312 -- pytokens=0.4.1=py312h5253ce2_0 +- pytokens=0.4.1=py312h5253ce2_1 - readline=8.3=h853b02a_0 -- reproc-cpp=14.2.5.post0=h5888daf_0 -- reproc=14.2.5.post0=hb9d3cd8_0 -- requests=2.32.5=pyhcf101f3_1 +- reproc-cpp=14.2.7.post0=hecca717_0 +- reproc=14.2.7.post0=hb03c661_0 +- requests=2.33.1=pyhcf101f3_1 - ruamel.yaml.clib=0.2.15=py312h5253ce2_1 - ruamel.yaml=0.18.17=py312h5253ce2_2 - ruamel_yaml=0.15.80=py312h98912ed_1009 -- setuptools=80.10.2=pyh332efcf_0 -- simdjson=4.2.4=hb700be7_0 +- setuptools=82.0.1=pyh332efcf_0 +- simdjson=4.6.3=hb700be7_0 - six=1.17.0=pyhe01879c_1 - spdlog=1.17.0=hab81395_1 - tk=8.6.13=noxft_h366c992_103 -- tomli=2.4.0=pyhcf101f3_0 +- tomli=2.4.1=pyhcf101f3_0 - tqdm=4.67.3=pyh8f84b5b_0 - truststore=0.10.4=pyhcf101f3_0 - tzdata=2025c=hc9c84f9_1 - urllib3=2.6.3=pyhd8ed1ab_0 - yaml-cpp=0.8.0=h3f2d84a_0 - yaml=0.2.5=h280c20c_3 -- zipp=3.23.0=pyhcf101f3_1 +- zipp=3.23.1=pyhcf101f3_0 - zstandard=0.25.0=py312h5253ce2_1 - zstd=1.5.7=hb78ec9c_6 diff --git a/scripts/zwik_client.py b/scripts/zwik_client.py index 9235501..fff4aa6 100644 --- a/scripts/zwik_client.py +++ b/scripts/zwik_client.py @@ -1118,7 +1118,14 @@ def create_lockfile(self, additional_dependencies=()): pkg_name, ) - solved_dep_list = link_precs.item_list + # Check if link_precs is a container object (old API) + # or the list of records itself (new API) + if hasattr(link_precs, "item_list"): + solved_dep_list = link_precs.item_list + else: + # In newer versions, link_precs is already the collection of records + solved_dep_list = link_precs + lockfile_deps = dependencies.get_lock_file_dependencies(solved_dep_list) if set(self.env_data["dependencies"]) == set(lockfile_deps): From 47141cc62552b1adaccdbcf63ec70897161eb689 Mon Sep 17 00:00:00 2001 From: joao marques Date: Thu, 30 Apr 2026 12:48:40 +0100 Subject: [PATCH 3/3] bump client version --- scripts/zwik_client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/zwik_client.py b/scripts/zwik_client.py index fff4aa6..17859f7 100644 --- a/scripts/zwik_client.py +++ b/scripts/zwik_client.py @@ -28,7 +28,7 @@ from logging.handlers import RotatingFileHandler from typing import Optional -__version__ = "5.18" +__version__ = "5.19" min_supported_conda_version = "4.5.4" max_supported_conda_version = "24.3.0" min_supported_bootstrap_version = 7