From b095a0cb1d9c44bb326f685656866310388c4231 Mon Sep 17 00:00:00 2001 From: Georg Schulz Date: Mon, 28 Apr 2025 17:55:24 +0200 Subject: [PATCH 1/2] #63: Extend GitHub Action, add Mamba for conda environments, update JupyterHub and JupyterLab --- .github/workflows/main.yml | 20 + CHANGELOG.md | 3 + LICENSE | 2 +- README.md | 4 +- .../extensions/molecule/default/converge.yml | 7 + .../extensions/molecule/default/molecule.yml | 5 +- .../extensions/molecule/ha_setup/molecule.yml | 1 + .../jupyter/hub/roles/check/tasks/main.yml | 96 ++- .../hub/roles/configure/tasks/main.yml | 18 + .../hub/roles/install/defaults/main.yml | 2 +- .../install/files/jupyterhubenvironment.txt | 167 ++-- .../jupyter/hub/roles/install/tasks/main.yml | 4 +- .../jupyter/lab/roles/setup/defaults/main.yml | 4 +- .../setup/files/jupyterlabenvironment.txt | 718 +++++++++--------- .../jupyter/lab/roles/setup/tasks/main.yml | 8 +- .../miniforge/roles/install/tasks/main.yml | 7 + 16 files changed, 600 insertions(+), 466 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cd3a98b..7b38f70 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -194,3 +194,23 @@ jobs: with: collection_path: hadoop/yarn scenario: ha_setup + + molecule_jupyterhub_default: + uses: ./.github/workflows/test-molecule.yml + needs: + - lint + - molecule_zookeeper_default + - molecule_zookeeper_ha_setup + - molecule_ldap_default + - molecule_ldap_ha_setup + - molecule_kerberos_default + - molecule_kerberos_ha_setup + - molecule_postgres_default + - molecule_postgres_ha_setup + - molecule_hdfs_default + - molecule_hdfs_ha_setup + - molecule_yarn_default + - molecule_yarn_ha_setup + with: + collection_path: jupyter/hub + scenario: default diff --git a/CHANGELOG.md b/CHANGELOG.md index fad5fbc..71496c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,8 +9,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - communitylab#26: Error handling in Conda Package Manager +## [v1.6.0] - 2025-04-28 + ### Added +- communitylab#63: Extend GitHub Action, add Mamba for conda environments, update JupyterHub and JupyterLab - communitylab#61: Add GitHub Action to lint and test all Ansible collections - communitylab#59: Upgrading to PostgreSQL 17 - communitylab#57: Add new kernels for JupyterLab and upgrade software components diff --git a/LICENSE b/LICENSE index 66044c3..43bc487 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 GeorgSchulz +Copyright (c) 2025 GeorgSchulz Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 907d99d..8eb937b 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,8 @@ _CommunityLab_ consists of following components: | Component | Version | |------------------|---------| -| JupyterHub | 5.2.0 | -| JupyterLab | 4.3.0 | +| JupyterHub | 5.3.0 | +| JupyterLab | 4.4.1 | | Apache Hadoop | 3.4.1 | | Apache Spark | 3.5.3 | | Apache Zookeeper | 3.9.3 | diff --git a/collections/ansible_collections/jupyter/hub/extensions/molecule/default/converge.yml b/collections/ansible_collections/jupyter/hub/extensions/molecule/default/converge.yml index 1e77e54..6685554 100644 --- a/collections/ansible_collections/jupyter/hub/extensions/molecule/default/converge.yml +++ b/collections/ansible_collections/jupyter/hub/extensions/molecule/default/converge.yml @@ -98,3 +98,10 @@ serial: 1 roles: - role: jupyter.lab.setup + +- name: Check JupyterHub Health + hosts: hub1 + become: true + gather_facts: true + roles: + - role: jupyter.hub.check diff --git a/collections/ansible_collections/jupyter/hub/extensions/molecule/default/molecule.yml b/collections/ansible_collections/jupyter/hub/extensions/molecule/default/molecule.yml index 025dd7b..2185ec9 100644 --- a/collections/ansible_collections/jupyter/hub/extensions/molecule/default/molecule.yml +++ b/collections/ansible_collections/jupyter/hub/extensions/molecule/default/molecule.yml @@ -139,8 +139,8 @@ provisioner: service_uid: "5001" service_group: jupyterhub service_gid: "4001" - tls_user: jupyterhub - tls_group: jupyterhub + tls_user: root + tls_group: root keytab_group: jupyterhub cert_file: /etc/ssl/private/cert.pem key_file: /etc/ssl/private/key.pem @@ -159,6 +159,7 @@ provisioner: kerberos_keytabs: - principal: "{{ jupyterhub_user }}" keytab_user: "{{ jupyterhub_user }}" + common_hdfs_data_dir: /var/hadoop/hdfs ldap: ldap_user: openldap ldap_uid: "5001" diff --git a/collections/ansible_collections/jupyter/hub/extensions/molecule/ha_setup/molecule.yml b/collections/ansible_collections/jupyter/hub/extensions/molecule/ha_setup/molecule.yml index 2bd490e..d75d18f 100644 --- a/collections/ansible_collections/jupyter/hub/extensions/molecule/ha_setup/molecule.yml +++ b/collections/ansible_collections/jupyter/hub/extensions/molecule/ha_setup/molecule.yml @@ -225,6 +225,7 @@ provisioner: kerberos_keytabs: - principal: "{{ jupyterhub_user }}" keytab_user: "{{ jupyterhub_user }}" + common_hdfs_data_dir: /var/hadoop/hdfs ldap: ldap_user: openldap ldap_uid: "5001" diff --git a/collections/ansible_collections/jupyter/hub/roles/check/tasks/main.yml b/collections/ansible_collections/jupyter/hub/roles/check/tasks/main.yml index fbe79ec..6d1692d 100644 --- a/collections/ansible_collections/jupyter/hub/roles/check/tasks/main.yml +++ b/collections/ansible_collections/jupyter/hub/roles/check/tasks/main.yml @@ -1,18 +1,84 @@ --- -- name: Check if JupyterHub GUI is reachable - ansible.builtin.uri: - url: "{% if jupyterhub_domain_ip is defined %}{{ jupyterhub_domain }}{% else %}https://{{ inventory_hostname }}{% endif %}" - method: GET - validate_certs: false - register: jupyterhub_gui_status - retries: 10 - until: jupyterhub_gui_status.status == 200 - -- name: Set variable jupyterhub_gui_status - ansible.builtin.debug: - var: jupyterhub_gui_status +- name: Install curl + ansible.builtin.apt: + name: curl + state: present + update_cache: true + +- name: Log into JupyterHub and start session + changed_when: true + ansible.builtin.shell: + cmd: | + set -o pipefail + curl -k -c cookies.txt https://172.23.27.3:8443/hub/login 2>/dev/null | \ + grep -o 'name="_xsrf" value="[^"]*"' | \ + sed -E 's/.*value="([^"]*)".*/\1/' > xsrf.txt + + xsrf=$(cat xsrf.txt) + + curl -k -b cookies.txt -c cookies.txt -X POST https://172.23.27.3:8443/hub/login \ + -d "_xsrf=$xsrf" \ + -d "username=gschulz" \ + -d "password=datascience" + + # Trigger the user server + curl -k -b cookies.txt -c cookies.txt https://172.23.27.3:8443/hub/spawn + executable: /bin/bash + args: + chdir: /tmp + +- name: Wait for 30 seconds + ansible.builtin.pause: + seconds: 30 + +- name: List YARN application + changed_when: false + ansible.builtin.shell: + cmd: | + set -o pipefail + app_ids=$(/opt/apache-hadoop/hadoop/bin/yarn application -list | awk 'NR>2 {print $1}') + if [ -n "$app_ids" ]; then + echo "$app_ids" + else + echo "No running applications found" + fi + executable: /bin/bash + delegate_to: "{{ groups['resourcemanager1'][0] }}" + run_once: true + become: true + become_user: "{{ yarn_user }}" + register: result_list_application + +- name: Assert that YARN application was found + ansible.builtin.assert: + that: result_list_application.stdout != "No running applications found" + fail_msg: No YARN application found, check Logs for more information + success_msg: YARN application found + +- name: Kill YARN application + changed_when: true + ansible.builtin.shell: + cmd: | + set -o pipefail + app_ids=$(/opt/apache-hadoop/hadoop/bin/yarn application -list | awk 'NR>2 {print $1}') + if [ -n "$app_ids" ]; then + echo "$app_ids" | xargs -r -n 1 -I {} /opt/apache-hadoop/hadoop/bin/yarn application -kill {} + else + echo "No running applications found" + fi + executable: /bin/bash + delegate_to: "{{ groups['resourcemanager1'][0] }}" + run_once: true + become: true + become_user: "{{ yarn_user }}" + register: result_kill_application + +- name: Assert that YARN application was killed + ansible.builtin.assert: + that: result_kill_application.stdout != "No running applications found" + fail_msg: No YARN applications killed, check Logs for more information + success_msg: YARN applications killed -- name: Debug variable jupyterhub_gui_status +- name: Show that started YARN application was killed ansible.builtin.debug: - msg: "IDE installed successfully, you can now visit JupyterHub GUI under: https://hub1.{{ domain }}:8443" - when: jupyterhub_gui_status.status == 200 + var: result_kill_application.stdout diff --git a/collections/ansible_collections/jupyter/hub/roles/configure/tasks/main.yml b/collections/ansible_collections/jupyter/hub/roles/configure/tasks/main.yml index 4b3422e..c2948fe 100644 --- a/collections/ansible_collections/jupyter/hub/roles/configure/tasks/main.yml +++ b/collections/ansible_collections/jupyter/hub/roles/configure/tasks/main.yml @@ -48,6 +48,19 @@ group: "{{ jupyterhub_group }}" mode: "0600" +- name: Set read ACL for jupyterhub user on SSL cert files + when: groups.hubs | length == 1 + ansible.posix.acl: + path: "{{ item }}" + entity: jupyterhub + etype: user + permissions: r + state: present + loop: + - /etc/ssl/private/cert.pem + - /etc/ssl/private/chain.pem + - /etc/ssl/private/key.pem + - name: Create system service for JupyterHub ansible.builtin.template: src: jupyterhub.service @@ -69,3 +82,8 @@ ansible.builtin.systemd: name: jupyterhub.service state: started + +- name: Wait until port 8443 is bound + ansible.builtin.wait_for: + port: 8443 + timeout: 5 diff --git a/collections/ansible_collections/jupyter/hub/roles/install/defaults/main.yml b/collections/ansible_collections/jupyter/hub/roles/install/defaults/main.yml index 6f4ccda..0a0a577 100644 --- a/collections/ansible_collections/jupyter/hub/roles/install/defaults/main.yml +++ b/collections/ansible_collections/jupyter/hub/roles/install/defaults/main.yml @@ -3,7 +3,7 @@ install_miniforge_base_path: /opt/miniforge/miniforge install_environment_python_version: 3.10.15 install_conda_packages: - - jupyterhub=5.2.0 + - jupyterhub=5.3.0 - nodejs=20.12.2 - configurable-http-proxy=4.6.2 - jupyterhub-yarnspawner=0.4.0 diff --git a/collections/ansible_collections/jupyter/hub/roles/install/files/jupyterhubenvironment.txt b/collections/ansible_collections/jupyter/hub/roles/install/files/jupyterhubenvironment.txt index 8d6238f..8220169 100644 --- a/collections/ansible_collections/jupyter/hub/roles/install/files/jupyterhubenvironment.txt +++ b/collections/ansible_collections/jupyter/hub/roles/install/files/jupyterhubenvironment.txt @@ -3,120 +3,125 @@ # Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 2_gnu conda-forge -alembic 1.14.0 pyhd8ed1ab_0 conda-forge -annotated-types 0.7.0 pyhd8ed1ab_0 conda-forge -arrow 1.3.0 pyhd8ed1ab_0 conda-forge -async_generator 1.10 pyhd8ed1ab_1 conda-forge -attrs 24.2.0 pyh71513ae_0 conda-forge +alembic 1.15.2 pyhd8ed1ab_0 conda-forge +annotated-types 0.7.0 pyhd8ed1ab_1 conda-forge +arrow 1.3.0 pyhd8ed1ab_1 conda-forge +async_generator 1.10 pyhd8ed1ab_2 conda-forge +attrs 25.3.0 pyh71513ae_0 conda-forge blinker 1.9.0 pyhff2d567_0 conda-forge brotli-python 1.1.0 py310hf71b8c6_2 conda-forge bzip2 1.0.8 h4bc722e_7 conda-forge -c-ares 1.34.3 heb4867d_0 conda-forge -ca-certificates 2024.8.30 hbcca054_0 conda-forge +c-ares 1.34.5 hb9d3cd8_0 conda-forge +ca-certificates 2025.4.26 hbd8a1cb_0 conda-forge cached-property 1.5.2 hd8ed1ab_1 conda-forge cached_property 1.5.2 pyha770c72_1 conda-forge -certifi 2024.8.30 pyhd8ed1ab_0 conda-forge -certipy 0.2.1 pyhd8ed1ab_0 conda-forge +certifi 2025.1.31 pyhd8ed1ab_0 conda-forge +certipy 0.2.2 pyhd8ed1ab_0 conda-forge cffi 1.17.1 py310h8deb56e_0 conda-forge -charset-normalizer 3.4.0 pyhd8ed1ab_0 conda-forge +charset-normalizer 3.4.1 pyhd8ed1ab_0 conda-forge configurable-http-proxy 4.6.2 h92b4e83_1 conda-forge -cryptography 43.0.3 py310h6c63255_0 conda-forge -fqdn 1.5.1 pyhd8ed1ab_0 conda-forge -greenlet 3.1.1 py310hf71b8c6_0 conda-forge +cryptography 44.0.2 py310h6c63255_0 conda-forge +fqdn 1.5.1 pyhd8ed1ab_1 conda-forge +greenlet 3.2.1 py310hf71b8c6_0 conda-forge grpc-cpp 1.48.0 hc2bec63_4 conda-forge grpcio 1.48.0 py310h3f54cfa_4 conda-forge -h2 4.1.0 pyhd8ed1ab_0 conda-forge -hpack 4.0.0 pyh9f0ad1d_0 conda-forge -hyperframe 6.0.1 pyhd8ed1ab_0 conda-forge +h2 4.2.0 pyhd8ed1ab_0 conda-forge +hpack 4.1.0 pyhd8ed1ab_0 conda-forge +hyperframe 6.1.0 pyhd8ed1ab_0 conda-forge icu 75.1 he02047a_0 conda-forge -idna 3.10 pyhd8ed1ab_0 conda-forge -importlib-metadata 8.5.0 pyha770c72_0 conda-forge -importlib_resources 6.4.5 pyhd8ed1ab_0 conda-forge -isoduration 20.11.0 pyhd8ed1ab_0 conda-forge -jinja2 3.1.4 pyhd8ed1ab_0 conda-forge +idna 3.10 pyhd8ed1ab_1 conda-forge +importlib-metadata 8.6.1 pyha770c72_0 conda-forge +importlib_resources 6.5.2 pyhd8ed1ab_0 conda-forge +isoduration 20.11.0 pyhd8ed1ab_1 conda-forge +jinja2 3.1.6 pyhd8ed1ab_0 conda-forge jsonpointer 3.0.0 py310hff52083_1 conda-forge -jsonschema 4.23.0 pyhd8ed1ab_0 conda-forge -jsonschema-specifications 2024.10.1 pyhd8ed1ab_0 conda-forge -jsonschema-with-format-nongpl 4.23.0 hd8ed1ab_0 conda-forge -jupyter_events 0.10.0 pyhd8ed1ab_0 conda-forge -jupyterhub 5.2.0 pyh31011fe_0 conda-forge -jupyterhub-base 5.2.0 pyh31011fe_0 conda-forge +jsonschema 4.23.0 pyhd8ed1ab_1 conda-forge +jsonschema-specifications 2025.4.1 pyh29332c3_0 conda-forge +jsonschema-with-format-nongpl 4.23.0 hd8ed1ab_1 conda-forge +jupyter_events 0.12.0 pyh29332c3_0 conda-forge +jupyterhub 5.3.0 h4422900_0 conda-forge +jupyterhub-base 5.3.0 pyhda7c55b_0 conda-forge jupyterhub-ldapauthenticator 2.0.3.dev0 pypi_0 pypi jupyterhub-yarnspawner 0.4.0 py310hff52083_2 conda-forge keyutils 1.6.1 h166bdaf_0 conda-forge krb5 1.21.3 h659f571_0 conda-forge -ld_impl_linux-64 2.43 h712a8e2_2 conda-forge +ld_impl_linux-64 2.43 h712a8e2_4 conda-forge ldap3 2.9.1 pypi_0 pypi libabseil 20220623.0 cxx17_h05df665_6 conda-forge -libcurl 8.10.1 hbbe4b11_0 conda-forge -libedit 3.1.20191231 he28a2e2_2 conda-forge +libcurl 8.13.0 h332b0f4_0 conda-forge +libedit 3.1.20250104 pl5321h7949ede_0 conda-forge libev 4.33 hd590300_2 conda-forge -libffi 3.4.2 h7f98852_5 conda-forge -libgcc 14.2.0 h77fa898_1 conda-forge -libgcc-ng 14.2.0 h69a702a_1 conda-forge -libgomp 14.2.0 h77fa898_1 conda-forge +libffi 3.4.6 h2dba641_1 conda-forge +libgcc 14.2.0 h767d61c_2 conda-forge +libgcc-ng 14.2.0 h69a702a_2 conda-forge +libgomp 14.2.0 h767d61c_2 conda-forge +liblzma 5.8.1 hb9d3cd8_0 conda-forge +liblzma-devel 5.8.1 hb9d3cd8_0 conda-forge libnghttp2 1.64.0 h161d5f1_0 conda-forge libnsl 2.0.1 hd590300_0 conda-forge libprotobuf 3.20.3 h3eb15da_0 conda-forge -libsqlite 3.47.0 hadc24fc_1 conda-forge -libssh2 1.11.1 hf672d98_0 conda-forge -libstdcxx 14.2.0 hc0a3c3a_1 conda-forge -libstdcxx-ng 14.2.0 h4852527_1 conda-forge +libsqlite 3.49.1 hee588c1_2 conda-forge +libssh2 1.11.1 hcf80075_0 conda-forge +libstdcxx 14.2.0 h8f9b012_2 conda-forge +libstdcxx-ng 14.2.0 h4852527_2 conda-forge libuuid 2.38.1 h0b41bf4_0 conda-forge -libuv 1.49.2 hb9d3cd8_0 conda-forge +libuv 1.50.0 hb9d3cd8_0 conda-forge libxcrypt 4.4.36 hd590300_1 conda-forge libzlib 1.3.1 hb9d3cd8_2 conda-forge -mako 1.3.6 pyhff2d567_0 conda-forge -markupsafe 3.0.2 py310h89163eb_0 conda-forge -ncurses 6.5 he02047a_1 conda-forge +mako 1.3.10 pyhd8ed1ab_0 conda-forge +markupsafe 3.0.2 py310h89163eb_1 conda-forge +ncurses 6.5 h2d0b736_3 conda-forge nodejs 20.12.2 hc19f0b3_1 conda-forge -oauthlib 3.2.2 pyhd8ed1ab_0 conda-forge -openssl 3.4.0 hb9d3cd8_0 conda-forge -packaging 24.2 pyhff2d567_1 conda-forge -pamela 1.2.0 pyhff2d567_0 conda-forge -pip 24.3.1 pyh8b19718_0 conda-forge -pkgutil-resolve-name 1.3.10 pyhd8ed1ab_1 conda-forge -prometheus_client 0.21.0 pyhd8ed1ab_0 conda-forge +oauthlib 3.2.2 pyhd8ed1ab_1 conda-forge +openssl 3.5.0 h7b32b05_0 conda-forge +packaging 25.0 pyh29332c3_1 conda-forge +pamela 1.2.0 pyhd8ed1ab_1 conda-forge +pip 25.1 pyh8b19718_0 conda-forge +pkgutil-resolve-name 1.3.10 pyhd8ed1ab_2 conda-forge +prometheus_client 0.21.1 pyhd8ed1ab_0 conda-forge protobuf 3.20.3 py310heca2aa9_1 conda-forge -psutil 6.1.0 py310ha75aee5_0 conda-forge +psutil 7.0.0 py310ha75aee5_0 conda-forge psycopg2-binary 2.9.10 pypi_0 pypi pyasn1 0.6.1 pypi_0 pypi -pycparser 2.22 pyhd8ed1ab_0 conda-forge -pycurl 7.45.3 py310h6811363_3 conda-forge -pydantic 2.10.1 pyh10f6f8f_0 conda-forge -pydantic-core 2.27.1 py310h505e2c1_0 conda-forge -pyjwt 2.10.0 pyhff2d567_0 conda-forge -pysocks 1.7.1 pyha2e5f31_6 conda-forge +pycparser 2.22 pyh29332c3_1 conda-forge +pycurl 7.45.6 py310h6811363_0 conda-forge +pydantic 2.11.3 pyh3cfb1c2_0 conda-forge +pydantic-core 2.33.1 py310hc1293b2_0 conda-forge +pyjwt 2.10.1 pyhd8ed1ab_0 conda-forge +pysocks 1.7.1 pyha55dd90_7 conda-forge python 3.10.15 h4a871b0_2_cpython conda-forge -python-dateutil 2.9.0.post0 pyhff2d567_0 conda-forge +python-dateutil 2.9.0.post0 pyhff2d567_1 conda-forge python-json-logger 2.0.7 pyhd8ed1ab_0 conda-forge -python_abi 3.10 5_cp310 conda-forge -pyyaml 6.0.2 py310ha75aee5_1 conda-forge +python_abi 3.10 7_cp310 conda-forge +pyyaml 6.0.2 py310h89163eb_2 conda-forge re2 2022.06.01 h27087fc_1 conda-forge -readline 8.2 h8228510_1 conda-forge -referencing 0.35.1 pyhd8ed1ab_0 conda-forge -requests 2.32.3 pyhd8ed1ab_0 conda-forge -rfc3339-validator 0.1.4 pyhd8ed1ab_0 conda-forge +readline 8.2 h8c095d6_2 conda-forge +referencing 0.36.2 pyh29332c3_0 conda-forge +requests 2.32.3 pyhd8ed1ab_1 conda-forge +rfc3339-validator 0.1.4 pyhd8ed1ab_1 conda-forge rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge -rpds-py 0.21.0 py310h505e2c1_0 conda-forge -setuptools 75.6.0 pyhff2d567_0 conda-forge -six 1.16.0 pyh6c4a22f_0 conda-forge +rpds-py 0.24.0 py310hc1293b2_0 conda-forge +setuptools 79.0.1 pyhff2d567_0 conda-forge +six 1.17.0 pyhd8ed1ab_0 conda-forge skein 0.8.1 py310hff52083_4 conda-forge -sqlalchemy 2.0.36 py310ha75aee5_0 conda-forge +sqlalchemy 2.0.40 py310ha75aee5_0 conda-forge tk 8.6.13 noxft_h4845f30_101 conda-forge -tornado 6.4.1 py310ha75aee5_1 conda-forge -traitlets 5.14.3 pyhd8ed1ab_0 conda-forge -types-python-dateutil 2.9.0.20241003 pyhff2d567_0 conda-forge -typing-extensions 4.12.2 hd8ed1ab_0 conda-forge -typing_extensions 4.12.2 pyha770c72_0 conda-forge -tzdata 2024b hc8b5060_0 conda-forge -uri-template 1.3.0 pyhd8ed1ab_0 conda-forge -urllib3 2.2.3 pyhd8ed1ab_0 conda-forge -webcolors 24.8.0 pyhd8ed1ab_0 conda-forge -wheel 0.45.1 pyhd8ed1ab_0 conda-forge -xz 5.2.6 h166bdaf_0 conda-forge +tornado 6.4.2 py310ha75aee5_0 conda-forge +traitlets 5.14.3 pyhd8ed1ab_1 conda-forge +types-python-dateutil 2.9.0.20241206 pyhd8ed1ab_0 conda-forge +typing-extensions 4.13.2 h0e9735f_0 conda-forge +typing-inspection 0.4.0 pyhd8ed1ab_0 conda-forge +typing_extensions 4.13.2 pyh29332c3_0 conda-forge +tzdata 2025b h78e105d_0 conda-forge +uri-template 1.3.0 pyhd8ed1ab_1 conda-forge +urllib3 2.4.0 pyhd8ed1ab_0 conda-forge +webcolors 24.11.1 pyhd8ed1ab_0 conda-forge +wheel 0.45.1 pyhd8ed1ab_1 conda-forge +xz 5.8.1 hbcc6ac9_0 conda-forge +xz-gpl-tools 5.8.1 hbcc6ac9_0 conda-forge +xz-tools 5.8.1 hb9d3cd8_0 conda-forge yaml 0.2.5 h7f98852_2 conda-forge -zipp 3.21.0 pyhd8ed1ab_0 conda-forge +zipp 3.21.0 pyhd8ed1ab_1 conda-forge zlib 1.3.1 hb9d3cd8_2 conda-forge -zstandard 0.23.0 py310ha39cb0e_1 conda-forge -zstd 1.5.6 ha6fb4c9_0 conda-forge +zstandard 0.23.0 py310ha75aee5_1 conda-forge +zstd 1.5.7 hb8e6e7a_2 conda-forge \ No newline at end of file diff --git a/collections/ansible_collections/jupyter/hub/roles/install/tasks/main.yml b/collections/ansible_collections/jupyter/hub/roles/install/tasks/main.yml index ecf2315..f25408d 100644 --- a/collections/ansible_collections/jupyter/hub/roles/install/tasks/main.yml +++ b/collections/ansible_collections/jupyter/hub/roles/install/tasks/main.yml @@ -16,13 +16,13 @@ - name: Create jupyterhub environment in /opt/miniforge/miniforge ansible.builtin.shell: | . /opt/miniforge/miniforge/bin/activate - conda create -n jupyterhub python={{ install_environment_python_version }} -y + mamba create -n jupyterhub python={{ install_environment_python_version }} -y changed_when: true - name: Install jupyterhub conda packages in jupyterhub environment ansible.builtin.shell: | . /opt/miniforge/miniforge/bin/activate jupyterhub - conda install -c conda-forge {% for conda_package in install_conda_packages %}{{ conda_package }}{% if not loop.last %} {% endif %}{% endfor %} -y + mamba install -c conda-forge {% for conda_package in install_conda_packages %}{{ conda_package }}{% if not loop.last %} {% endif %}{% endfor %} -y changed_when: true args: executable: /bin/bash diff --git a/collections/ansible_collections/jupyter/lab/roles/setup/defaults/main.yml b/collections/ansible_collections/jupyter/lab/roles/setup/defaults/main.yml index d6e92d2..f829666 100644 --- a/collections/ansible_collections/jupyter/lab/roles/setup/defaults/main.yml +++ b/collections/ansible_collections/jupyter/lab/roles/setup/defaults/main.yml @@ -6,9 +6,9 @@ setup_environment_python_version_short: "3.10" setup_conda_packages: # JupyterLab packages - nb_conda_kernels=2.5.1 - - jupyterhub=5.2.0 + - jupyterhub=5.3.0 - jupyterhub-yarnspawner=0.4.0 - - jupyterlab=4.3.0 + - jupyterlab=4.4.1 - jupyterlab-git=0.50.2 - nodejs=22.11.0 - protobuf=4.25.3 diff --git a/collections/ansible_collections/jupyter/lab/roles/setup/files/jupyterlabenvironment.txt b/collections/ansible_collections/jupyter/lab/roles/setup/files/jupyterlabenvironment.txt index d9cc23f..34dafe2 100644 --- a/collections/ansible_collections/jupyter/lab/roles/setup/files/jupyterlabenvironment.txt +++ b/collections/ansible_collections/jupyter/lab/roles/setup/files/jupyterlabenvironment.txt @@ -2,27 +2,27 @@ # # Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge -_openmp_mutex 4.5 2_kmp_llvm conda-forge +_openmp_mutex 4.5 3_kmp_llvm conda-forge _r-mutex 1.0.1 anacondar_1 conda-forge -absl-py 2.1.0 pyhd8ed1ab_0 conda-forge -aiohappyeyeballs 2.4.3 pyhd8ed1ab_0 conda-forge -aiohttp 3.11.7 py310h89163eb_0 conda-forge -aiosignal 1.3.1 pyhd8ed1ab_0 conda-forge -alembic 1.14.0 pyhd8ed1ab_0 conda-forge -alsa-lib 1.2.13 hb9d3cd8_0 conda-forge -annotated-types 0.7.0 pyhd8ed1ab_0 conda-forge -anyio 4.6.2.post1 pyhd8ed1ab_0 conda-forge -appdirs 1.4.4 pyh9f0ad1d_0 conda-forge -argon2-cffi 23.1.0 pyhd8ed1ab_0 conda-forge +absl-py 2.2.0 pyhd8ed1ab_0 conda-forge +aiohappyeyeballs 2.6.1 pyhd8ed1ab_0 conda-forge +aiohttp 3.11.18 py310h89163eb_0 conda-forge +aiosignal 1.3.2 pyhd8ed1ab_0 conda-forge +alembic 1.15.2 pyhd8ed1ab_0 conda-forge +alsa-lib 1.2.14 hb9d3cd8_0 conda-forge +annotated-types 0.7.0 pyhd8ed1ab_1 conda-forge +anyio 4.9.0 pyh29332c3_0 conda-forge +appdirs 1.4.4 pyhd8ed1ab_1 conda-forge +argon2-cffi 23.1.0 pyhd8ed1ab_1 conda-forge argon2-cffi-bindings 21.2.0 py310ha75aee5_5 conda-forge -arrow 1.3.0 pyhd8ed1ab_0 conda-forge -asttokens 2.4.1 pyhd8ed1ab_0 conda-forge -astunparse 1.6.3 pyhd8ed1ab_2 conda-forge -async-lru 2.0.4 pyhd8ed1ab_0 conda-forge -async-timeout 5.0.1 pyhd8ed1ab_0 conda-forge -async_generator 1.10 pyhd8ed1ab_1 conda-forge -attrs 24.2.0 pyh71513ae_0 conda-forge -automat 24.8.1 pyhd8ed1ab_0 conda-forge +arrow 1.3.0 pyhd8ed1ab_1 conda-forge +asttokens 3.0.0 pyhd8ed1ab_1 conda-forge +astunparse 1.6.3 pyhd8ed1ab_3 conda-forge +async-lru 2.0.5 pyh29332c3_0 conda-forge +async-timeout 5.0.1 pyhd8ed1ab_1 conda-forge +async_generator 1.10 pyhd8ed1ab_2 conda-forge +attrs 25.3.0 pyh71513ae_0 conda-forge +automat 25.4.16 pyhd8ed1ab_0 conda-forge aws-c-auth 0.7.31 he1a10d6_2 conda-forge aws-c-cal 0.7.4 hae4d56a_2 conda-forge aws-c-common 0.9.29 hb9d3cd8_0 conda-forge @@ -41,59 +41,59 @@ azure-identity-cpp 1.8.0 hd126650_2 conda-forge azure-storage-blobs-cpp 12.12.0 hd2e3451_0 conda-forge azure-storage-common-cpp 12.7.0 h10ac4d7_1 conda-forge azure-storage-files-datalake-cpp 12.11.0 h325d260_1 conda-forge -babel 2.16.0 pyhd8ed1ab_0 conda-forge +babel 2.17.0 pyhd8ed1ab_0 conda-forge bash 5.2.21 h7f99829_0 conda-forge -bash_kernel 0.9.3 pyh4f82c71_0 conda-forge -bcrypt 4.2.1 py310h505e2c1_0 conda-forge -beautifulsoup4 4.12.3 pyha770c72_0 conda-forge +bash_kernel 0.9.3 pyh707e725_1 conda-forge +bcrypt 4.3.0 py310h505e2c1_0 conda-forge +beautifulsoup4 4.13.4 pyha770c72_0 conda-forge binutils_impl_linux-64 2.39 he00db2b_1 conda-forge binutils_linux-64 2.39 h5fc0e48_13 conda-forge -bleach 6.2.0 pyhd8ed1ab_0 conda-forge +bleach 6.2.0 pyh29332c3_4 conda-forge +bleach-with-css 6.2.0 h82add2a_4 conda-forge blinker 1.9.0 pyhff2d567_0 conda-forge -bokeh 3.6.1 pyhd8ed1ab_0 conda-forge +bokeh 3.7.2 pyhd8ed1ab_1 conda-forge brotli 1.1.0 hb9d3cd8_2 conda-forge brotli-bin 1.1.0 hb9d3cd8_2 conda-forge brotli-python 1.1.0 py310hf71b8c6_2 conda-forge -bwidget 1.9.14 ha770c72_1 conda-forge +bwidget 1.10.1 ha770c72_0 conda-forge bzip2 1.0.8 h4bc722e_7 conda-forge -c-ares 1.34.3 heb4867d_0 conda-forge -ca-certificates 2024.8.30 hbcca054_0 conda-forge +c-ares 1.34.5 hb9d3cd8_0 conda-forge +ca-certificates 2025.4.26 hbd8a1cb_0 conda-forge cached-property 1.5.2 hd8ed1ab_1 conda-forge cached_property 1.5.2 pyha770c72_1 conda-forge -cairo 1.18.0 hebfffa5_3 conda-forge -certifi 2024.8.30 pyhd8ed1ab_0 conda-forge -certipy 0.2.1 pyhd8ed1ab_0 conda-forge +cairo 1.18.4 h3394656_0 conda-forge +certifi 2025.1.31 pyhd8ed1ab_0 conda-forge +certipy 0.2.2 pyhd8ed1ab_0 conda-forge cffi 1.17.1 py310h8deb56e_0 conda-forge -charset-normalizer 3.4.0 pyhd8ed1ab_0 conda-forge -click 8.1.7 unix_pyh707e725_0 conda-forge -cloudpickle 3.1.0 pyhd8ed1ab_1 conda-forge -colorama 0.4.6 pyhd8ed1ab_0 conda-forge -comm 0.2.2 pyhd8ed1ab_0 conda-forge +charset-normalizer 3.4.1 pyhd8ed1ab_0 conda-forge +click 8.1.8 pyh707e725_0 conda-forge +cloudpickle 3.1.1 pyhd8ed1ab_0 conda-forge +colorama 0.4.6 pyhd8ed1ab_1 conda-forge +comm 0.2.2 pyhd8ed1ab_1 conda-forge configurable-http-proxy 4.6.2 hbf95b10_1 conda-forge constantly 15.1.0 py_0 conda-forge -contourpy 1.3.1 py310h3788b33_0 conda-forge -cpython 3.10.15 py310hd8ed1ab_2 conda-forge -cryptography 43.0.3 py310h6c63255_0 conda-forge -cssselect 1.2.0 pyhd8ed1ab_0 conda-forge -curl 8.10.1 hbbe4b11_0 conda-forge -cycler 0.12.1 pyhd8ed1ab_0 conda-forge +contourpy 1.3.2 py310h3788b33_0 conda-forge +cpython 3.10.17 py310hd8ed1ab_0 conda-forge +cryptography 44.0.2 py310h6c63255_0 conda-forge +cssselect 1.2.0 pyhd8ed1ab_1 conda-forge +curl 8.13.0 h332b0f4_0 conda-forge +cycler 0.12.1 pyhd8ed1ab_1 conda-forge cyrus-sasl 2.1.27 h54b06d7_7 conda-forge -cytoolz 1.0.0 py310ha75aee5_1 conda-forge +cytoolz 1.0.1 py310ha75aee5_0 conda-forge dask 2024.11.2 pyhff2d567_1 conda-forge dask-core 2024.11.2 pyhff2d567_1 conda-forge dask-expr 1.1.19 pyhd8ed1ab_0 conda-forge dask-yarn 0.9 py310hff52083_2 conda-forge dbus 1.13.6 h5008d03_3 conda-forge -debugpy 1.8.9 py310hf71b8c6_0 conda-forge -decorator 5.1.1 pyhd8ed1ab_0 conda-forge +debugpy 1.8.14 py310hf71b8c6_0 conda-forge +decorator 5.2.1 pyhd8ed1ab_0 conda-forge defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge distributed 2024.11.2 pyhff2d567_1 conda-forge -double-conversion 3.3.0 h59595ed_0 conda-forge -entrypoints 0.4 pyhd8ed1ab_0 conda-forge -exceptiongroup 1.2.2 pyhd8ed1ab_0 conda-forge -executing 2.1.0 pyhd8ed1ab_0 conda-forge -expat 2.6.4 h5888daf_0 conda-forge -filelock 3.16.1 pyhd8ed1ab_0 conda-forge +double-conversion 3.3.1 h5888daf_0 conda-forge +exceptiongroup 1.2.2 pyhd8ed1ab_1 conda-forge +executing 2.2.0 pyhd8ed1ab_0 conda-forge +expat 2.7.0 h5888daf_0 conda-forge +filelock 3.18.0 pyhd8ed1ab_0 conda-forge flatbuffers 24.3.25 h59595ed_0 conda-forge font-ttf-dejavu-sans-mono 2.37 hab24e00_0 conda-forge font-ttf-inconsolata 3.000 h77eed37_0 conda-forge @@ -102,302 +102,305 @@ font-ttf-ubuntu 0.83 h77eed37_3 conda-forge fontconfig 2.15.0 h7e30c49_1 conda-forge fonts-conda-ecosystem 1 0 conda-forge fonts-conda-forge 1 0 conda-forge -fonttools 4.55.0 py310h89163eb_0 conda-forge -fqdn 1.5.1 pyhd8ed1ab_0 conda-forge -freetype 2.12.1 h267a509_2 conda-forge +fonttools 4.57.0 py310h89163eb_0 conda-forge +fqdn 1.5.1 pyhd8ed1ab_1 conda-forge +freetype 2.13.3 ha770c72_1 conda-forge fribidi 1.0.10 h36c2ea0_0 conda-forge -frozenlist 1.5.0 py310ha75aee5_0 conda-forge -fsspec 2024.10.0 pyhff2d567_0 conda-forge -gast 0.5.5 pyhd8ed1ab_0 conda-forge +frozenlist 1.5.0 py310h89163eb_1 conda-forge +fsspec 2025.3.2 pyhd8ed1ab_0 conda-forge +gast 0.6.0 pyhd8ed1ab_0 conda-forge gcc_impl_linux-64 10.4.0 h5231bdf_19 conda-forge gcc_linux-64 10.4.0 h9215b83_13 conda-forge gflags 2.2.2 h5888daf_1005 conda-forge gfortran_impl_linux-64 10.4.0 h7d168d2_19 conda-forge giflib 5.2.2 hd590300_0 conda-forge -gitdb 4.0.11 pyhd8ed1ab_0 conda-forge -gitpython 3.1.43 pyhd8ed1ab_0 conda-forge +gitdb 4.0.12 pyhd8ed1ab_0 conda-forge +gitpython 3.1.44 pyhff2d567_0 conda-forge glog 0.7.1 hbabe93e_0 conda-forge gmp 6.3.0 hac33072_2 conda-forge -gmpy2 2.1.5 py310he8512ff_2 conda-forge -google-pasta 0.2.0 pyhd8ed1ab_1 conda-forge +gmpy2 2.2.1 py310he8512ff_0 conda-forge +google-pasta 0.2.0 pyhd8ed1ab_2 conda-forge graphite2 1.3.13 h59595ed_1003 conda-forge -greenlet 3.1.1 py310hf71b8c6_0 conda-forge +greenlet 3.2.1 py310hf71b8c6_0 conda-forge grpcio 1.62.2 py310h1b8f574_0 conda-forge gsl 2.7 he838d99_0 conda-forge gxx_impl_linux-64 10.4.0 h5231bdf_19 conda-forge gxx_linux-64 10.4.0 h6e491c6_13 conda-forge -h11 0.14.0 pyhd8ed1ab_0 conda-forge -h2 4.1.0 pyhd8ed1ab_0 conda-forge -h5py 3.12.1 nompi_py310h60e0fe6_102 conda-forge -harfbuzz 9.0.0 hda332d3_1 conda-forge -hdf5 1.14.3 nompi_hdf9ad27_105 conda-forge -hpack 4.0.0 pyh9f0ad1d_0 conda-forge -httpcore 1.0.7 pyh29332c3_1 conda-forge -httpx 0.27.2 pyhd8ed1ab_0 conda-forge -hyperframe 6.0.1 pyhd8ed1ab_0 conda-forge -hyperlink 21.0.0 pyhd3deb0d_0 conda-forge +h11 0.16.0 pyhd8ed1ab_0 conda-forge +h2 4.2.0 pyhd8ed1ab_0 conda-forge +h5py 3.13.0 nompi_py310h60e0fe6_100 conda-forge +harfbuzz 11.1.0 h3beb420_0 conda-forge +hdf5 1.14.3 nompi_h2d575fe_109 conda-forge +hpack 4.1.0 pyhd8ed1ab_0 conda-forge +httpcore 1.0.9 pyh29332c3_0 conda-forge +httpx 0.28.1 pyhd8ed1ab_0 conda-forge +hyperframe 6.1.0 pyhd8ed1ab_0 conda-forge +hyperlink 21.0.0 pyh29332c3_1 conda-forge icu 75.1 he02047a_0 conda-forge -idna 3.10 pyhd8ed1ab_0 conda-forge -importlib-metadata 8.5.0 pyha770c72_0 conda-forge -importlib_resources 6.4.5 pyhd8ed1ab_0 conda-forge -incremental 24.7.2 pyhd8ed1ab_0 conda-forge -iniconfig 2.0.0 pyhd8ed1ab_0 conda-forge +idna 3.10 pyhd8ed1ab_1 conda-forge +importlib-metadata 8.6.1 pyha770c72_0 conda-forge +importlib_resources 6.5.2 pyhd8ed1ab_0 conda-forge +incremental 24.7.2 pyhd8ed1ab_1 conda-forge +iniconfig 2.0.0 pyhd8ed1ab_1 conda-forge ipykernel 6.29.5 pyh3099207_0 conda-forge -ipython 8.29.0 pyh707e725_0 conda-forge -ipython_genutils 0.2.0 pyhd8ed1ab_1 conda-forge -ipywidgets 8.1.5 pyhd8ed1ab_0 conda-forge -isoduration 20.11.0 pyhd8ed1ab_0 conda-forge -itemadapter 0.9.0 pyhd8ed1ab_0 conda-forge -itemloaders 1.3.2 pyhd8ed1ab_0 conda-forge -jedi 0.19.2 pyhff2d567_0 conda-forge -jinja2 3.1.4 pyhd8ed1ab_0 conda-forge -jmespath 1.0.1 pyhd8ed1ab_0 conda-forge -joblib 1.4.2 pyhd8ed1ab_0 conda-forge -json5 0.9.28 pyhff2d567_0 conda-forge +ipython 8.36.0 pyh907856f_0 conda-forge +ipywidgets 8.1.5 pyhd8ed1ab_1 conda-forge +isoduration 20.11.0 pyhd8ed1ab_1 conda-forge +itemadapter 0.11.0 pyhd8ed1ab_0 conda-forge +itemloaders 1.3.2 pyhd8ed1ab_1 conda-forge +jedi 0.19.2 pyhd8ed1ab_1 conda-forge +jinja2 3.1.6 pyhd8ed1ab_0 conda-forge +jmespath 1.0.1 pyhd8ed1ab_1 conda-forge +joblib 1.4.2 pyhd8ed1ab_1 conda-forge +json5 0.12.0 pyhd8ed1ab_0 conda-forge jsonpointer 3.0.0 py310hff52083_1 conda-forge -jsonschema 4.23.0 pyhd8ed1ab_0 conda-forge -jsonschema-specifications 2024.10.1 pyhd8ed1ab_0 conda-forge -jsonschema-with-format-nongpl 4.23.0 hd8ed1ab_0 conda-forge -jupyter-lsp 2.2.5 pyhd8ed1ab_0 conda-forge -jupyter-server-mathjax 0.2.6 pyh5bfe37b_1 conda-forge -jupyter-server-proxy 4.4.0 pyhd8ed1ab_0 conda-forge -jupyter_client 7.4.9 pyhd8ed1ab_0 conda-forge -jupyter_conda 5.2.1 hd8ed1ab_0 conda-forge +jsonschema 4.23.0 pyhd8ed1ab_1 conda-forge +jsonschema-specifications 2025.4.1 pyh29332c3_0 conda-forge +jsonschema-with-format-nongpl 4.23.0 hd8ed1ab_1 conda-forge +jupyter-lsp 2.2.5 pyhd8ed1ab_1 conda-forge +jupyter-server-mathjax 0.2.6 pyhbbac1ac_2 conda-forge +jupyter-server-proxy 4.4.0 pyhd8ed1ab_1 conda-forge +jupyter_client 8.6.3 pyhd8ed1ab_1 conda-forge +jupyter_conda 5.2.1 hd8ed1ab_1 conda-forge jupyter_core 5.7.2 pyh31011fe_1 conda-forge -jupyter_events 0.10.0 pyhd8ed1ab_0 conda-forge -jupyter_server 2.14.2 pyhd8ed1ab_0 conda-forge -jupyter_server_terminals 0.5.3 pyhd8ed1ab_0 conda-forge -jupyterhub 5.2.0 pyh31011fe_0 conda-forge -jupyterhub-base 5.2.0 pyh31011fe_0 conda-forge +jupyter_events 0.12.0 pyh29332c3_0 conda-forge +jupyter_server 2.15.0 pyhd8ed1ab_0 conda-forge +jupyter_server_terminals 0.5.3 pyhd8ed1ab_1 conda-forge +jupyterhub 5.3.0 h4422900_0 conda-forge +jupyterhub-base 5.3.0 pyhda7c55b_0 conda-forge jupyterhub-yarnspawner 0.4.0 py310hff52083_2 conda-forge -jupyterlab 4.3.0 pyhd8ed1ab_0 conda-forge -jupyterlab-git 0.50.2 pyhd8ed1ab_0 conda-forge -jupyterlab_pygments 0.3.0 pyhd8ed1ab_1 conda-forge -jupyterlab_server 2.27.3 pyhd8ed1ab_0 conda-forge -jupyterlab_widgets 3.0.13 pyhd8ed1ab_0 conda-forge +jupyterlab 4.4.1 pyhd8ed1ab_0 conda-forge +jupyterlab-git 0.50.2 pyhd8ed1ab_1 conda-forge +jupyterlab_pygments 0.3.0 pyhd8ed1ab_2 conda-forge +jupyterlab_server 2.27.3 pyhd8ed1ab_1 conda-forge +jupyterlab_widgets 3.0.14 pyhd8ed1ab_0 conda-forge keras 3.6.0 pyhd8ed1ab_0 conda-forge kernel-headers_linux-64 3.10.0 he073ed8_18 conda-forge keyutils 1.6.1 h166bdaf_0 conda-forge kiwisolver 1.4.7 py310h3788b33_0 conda-forge krb5 1.21.3 h659f571_0 conda-forge -lcms2 2.16 hb7c19ff_0 conda-forge +lcms2 2.17 h717163a_0 conda-forge ld_impl_linux-64 2.39 hcc3a1bd_1 conda-forge -lerc 4.0.0 h27087fc_0 conda-forge +lerc 4.0.0 h0aef613_1 conda-forge libabseil 20240116.2 cxx17_he02047a_1 conda-forge libaec 1.1.3 h59595ed_0 conda-forge libarrow 17.0.0 had3b6fe_16_cpu conda-forge libarrow-acero 17.0.0 h5888daf_16_cpu conda-forge libarrow-dataset 17.0.0 h5888daf_16_cpu conda-forge libarrow-substrait 17.0.0 hf54134d_16_cpu conda-forge -libblas 3.9.0 25_linux64_openblas conda-forge +libblas 3.9.0 31_h59b9bed_openblas conda-forge libbrotlicommon 1.1.0 hb9d3cd8_2 conda-forge libbrotlidec 1.1.0 hb9d3cd8_2 conda-forge libbrotlienc 1.1.0 hb9d3cd8_2 conda-forge -libcblas 3.9.0 25_linux64_openblas conda-forge -libclang-cpp19.1 19.1.4 default_hb5137d0_0 conda-forge -libclang13 19.1.4 default_h9c6a7e4_0 conda-forge +libcblas 3.9.0 31_he106b2a_openblas conda-forge +libclang-cpp20.1 20.1.3 default_h1df26ce_0 conda-forge +libclang13 20.1.3 default_he06ed0a_0 conda-forge libcrc32c 1.1.2 h9c3ff4c_0 conda-forge libcups 2.3.3 h4637d8d_4 conda-forge -libcurl 8.10.1 hbbe4b11_0 conda-forge -libdeflate 1.22 hb9d3cd8_0 conda-forge -libdrm 2.4.123 hb9d3cd8_0 conda-forge -libedit 3.1.20191231 he28a2e2_2 conda-forge +libcurl 8.13.0 h332b0f4_0 conda-forge +libdeflate 1.23 h86f0d12_0 conda-forge +libdrm 2.4.124 hb9d3cd8_0 conda-forge +libedit 3.1.20250104 pl5321h7949ede_0 conda-forge libegl 1.7.0 ha4b6fd6_2 conda-forge libev 4.33 hd590300_2 conda-forge libevent 2.1.12 hf998b51_1 conda-forge -libexpat 2.6.4 h5888daf_0 conda-forge -libffi 3.4.2 h7f98852_5 conda-forge -libgcc 14.2.0 h77fa898_1 conda-forge +libexpat 2.7.0 h5888daf_0 conda-forge +libffi 3.4.6 h2dba641_1 conda-forge +libfreetype 2.13.3 ha770c72_1 conda-forge +libfreetype6 2.13.3 h48d6fc4_1 conda-forge +libgcc 14.2.0 h767d61c_2 conda-forge libgcc-devel_linux-64 10.4.0 hd38fd1e_19 conda-forge -libgcc-ng 14.2.0 h69a702a_1 conda-forge -libgfortran 14.2.0 h69a702a_1 conda-forge -libgfortran-ng 14.2.0 h69a702a_1 conda-forge -libgfortran5 14.2.0 hd5240d6_1 conda-forge +libgcc-ng 14.2.0 h69a702a_2 conda-forge +libgfortran 14.2.0 h69a702a_2 conda-forge +libgfortran-ng 14.2.0 h69a702a_2 conda-forge +libgfortran5 14.2.0 hf1ad2bd_2 conda-forge libgl 1.7.0 ha4b6fd6_2 conda-forge -libglib 2.82.2 h2ff4ddf_0 conda-forge +libglib 2.84.1 h2ff4ddf_0 conda-forge libglvnd 1.7.0 ha4b6fd6_2 conda-forge libglx 1.7.0 ha4b6fd6_2 conda-forge -libgomp 14.2.0 h77fa898_1 conda-forge +libgomp 14.2.0 h767d61c_2 conda-forge libgoogle-cloud 2.29.0 h435de7b_0 conda-forge libgoogle-cloud-storage 2.29.0 h0121fbd_0 conda-forge libgpuarray 0.7.6 h7f98852_1003 conda-forge libgrpc 1.62.2 h15f2491_0 conda-forge -libhwloc 2.11.1 default_hecaa2ac_1000 conda-forge -libiconv 1.17 hd590300_2 conda-forge -libjpeg-turbo 3.0.0 hd590300_1 conda-forge -liblapack 3.9.0 25_linux64_openblas conda-forge -libllvm19 19.1.4 ha7bfdaf_0 conda-forge +libhwloc 2.11.2 default_h0d58e46_1001 conda-forge +libiconv 1.18 h4ce23a2_1 conda-forge +libjpeg-turbo 3.1.0 hb9d3cd8_0 conda-forge +liblapack 3.9.0 31_h7ac8fdf_openblas conda-forge +libllvm20 20.1.3 he9d0ab4_0 conda-forge +liblzma 5.8.1 hb9d3cd8_0 conda-forge +liblzma-devel 5.8.1 hb9d3cd8_0 conda-forge libnghttp2 1.64.0 h161d5f1_0 conda-forge libnsl 2.0.1 hd590300_0 conda-forge -libntlm 1.4 h7f98852_1002 conda-forge -libopenblas 0.3.28 pthreads_h94d23a6_1 conda-forge +libntlm 1.8 hb9d3cd8_0 conda-forge +libopenblas 0.3.29 pthreads_h94d23a6_0 conda-forge libopengl 1.7.0 ha4b6fd6_2 conda-forge libparquet 17.0.0 h39682fd_16_cpu conda-forge libpciaccess 0.18 hd590300_0 conda-forge -libpng 1.6.44 hadc24fc_0 conda-forge -libpq 17.2 h04577a9_0 conda-forge +libpng 1.6.47 h943b412_0 conda-forge +libpq 17.4 h27ae623_1 conda-forge libprotobuf 4.25.3 hd5b35b9_1 conda-forge libre2-11 2023.09.01 h5a48ba9_2 conda-forge libsanitizer 10.4.0 h5246dfb_19 conda-forge libsodium 1.0.20 h4ab18f5_0 conda-forge -libsqlite 3.47.0 hadc24fc_1 conda-forge -libssh2 1.11.1 hf672d98_0 conda-forge -libstdcxx 14.2.0 hc0a3c3a_1 conda-forge +libsqlite 3.49.1 hee588c1_2 conda-forge +libssh2 1.11.1 hcf80075_0 conda-forge +libstdcxx 14.2.0 h8f9b012_2 conda-forge libstdcxx-devel_linux-64 10.4.0 hd38fd1e_19 conda-forge -libstdcxx-ng 14.2.0 h4852527_1 conda-forge +libstdcxx-ng 14.2.0 h4852527_2 conda-forge libthrift 0.20.0 h0e7cc3e_1 conda-forge -libtiff 4.7.0 he137b08_1 conda-forge +libtiff 4.7.0 hd9ff511_4 conda-forge libtorch 2.4.1 cpu_mkl_he3c781b_100 conda-forge -libutf8proc 2.8.0 h166bdaf_0 conda-forge +libutf8proc 2.8.0 hf23e847_1 conda-forge libuuid 2.38.1 h0b41bf4_0 conda-forge -libuv 1.49.2 hb9d3cd8_0 conda-forge -libwebp-base 1.4.0 hd590300_0 conda-forge +libuv 1.50.0 hb9d3cd8_0 conda-forge +libwebp-base 1.5.0 h851e524_0 conda-forge libxcb 1.17.0 h8a09558_0 conda-forge libxcrypt 4.4.36 hd590300_1 conda-forge -libxkbcommon 1.7.0 h2c5496b_1 conda-forge -libxml2 2.13.5 hb346dea_0 conda-forge +libxkbcommon 1.9.0 h65c71a3_0 conda-forge +libxml2 2.13.7 h4bc477f_1 conda-forge libxslt 1.1.39 h76b75d6_0 conda-forge libzlib 1.3.1 hb9d3cd8_2 conda-forge -llvm-openmp 19.1.4 h024ca30_0 conda-forge +llvm-openmp 20.1.3 h024ca30_0 conda-forge locket 1.0.0 pyhd8ed1ab_0 conda-forge -lxml 5.3.0 py310h6ee67d5_2 conda-forge +lxml 5.4.0 py310h490dddc_0 conda-forge lz4 4.3.3 py310hb259640_1 conda-forge lz4-c 1.9.4 hcb278e6_0 conda-forge make 4.4.1 hb9d3cd8_2 conda-forge -mako 1.3.6 pyhff2d567_0 conda-forge -mamba_gator 5.2.1 pyhd8ed1ab_0 conda-forge -markdown 3.6 pyhd8ed1ab_0 conda-forge -markdown-it-py 3.0.0 pyhd8ed1ab_0 conda-forge -markupsafe 3.0.2 py310h89163eb_0 conda-forge +mako 1.3.10 pyhd8ed1ab_0 conda-forge +mamba_gator 5.2.1 pyhd8ed1ab_1 conda-forge +markdown 3.8 pyhd8ed1ab_0 conda-forge +markdown-it-py 3.0.0 pyhd8ed1ab_1 conda-forge +markupsafe 3.0.2 py310h89163eb_1 conda-forge matplotlib 3.9.2 py310hff52083_2 conda-forge matplotlib-base 3.9.2 py310h68603db_2 conda-forge -matplotlib-inline 0.1.7 pyhd8ed1ab_0 conda-forge -mdurl 0.1.2 pyhd8ed1ab_0 conda-forge -mistune 3.0.2 pyhd8ed1ab_0 conda-forge +matplotlib-inline 0.1.7 pyhd8ed1ab_1 conda-forge +mdurl 0.1.2 pyhd8ed1ab_1 conda-forge +mistune 3.1.3 pyh29332c3_0 conda-forge mkl 2023.2.0 h84fe81f_50496 conda-forge ml_dtypes 0.4.0 py310h5eaa309_2 conda-forge mpc 1.3.1 h24ddda3_1 conda-forge mpfr 4.2.1 h90cbb55_3 conda-forge -mpmath 1.3.0 pyhd8ed1ab_0 conda-forge +mpmath 1.3.0 pyhd8ed1ab_1 conda-forge msgpack-python 1.1.0 py310h3788b33_0 conda-forge -multidict 6.1.0 py310h89163eb_1 conda-forge +multidict 6.4.3 py310h89163eb_0 conda-forge munkres 1.1.4 pyh9f0ad1d_0 conda-forge -mysql-common 9.0.1 h266115a_2 conda-forge -mysql-libs 9.0.1 he0572af_2 conda-forge -namex 0.0.8 pyhd8ed1ab_0 conda-forge +mysql-common 9.2.0 h266115a_0 conda-forge +mysql-libs 9.2.0 he0572af_0 conda-forge +namex 0.0.9 pyhd8ed1ab_0 conda-forge +narwhals 1.36.0 pyh29332c3_0 conda-forge nb_conda_kernels 2.5.1 pyh707e725_2 conda-forge -nbclassic 1.1.0 pyhd8ed1ab_0 conda-forge -nbclient 0.10.0 pyhd8ed1ab_0 conda-forge -nbconvert-core 7.16.4 pyhd8ed1ab_1 conda-forge -nbdime 4.0.2 pyhd8ed1ab_0 conda-forge -nbformat 5.10.4 pyhd8ed1ab_0 conda-forge -ncurses 6.5 he02047a_1 conda-forge -nest-asyncio 1.6.0 pyhd8ed1ab_0 conda-forge +nbclient 0.10.2 pyhd8ed1ab_0 conda-forge +nbconvert-core 7.16.6 pyh29332c3_0 conda-forge +nbdime 4.0.2 pyhd8ed1ab_1 conda-forge +nbformat 5.10.4 pyhd8ed1ab_1 conda-forge +ncurses 6.5 h2d0b736_3 conda-forge +nest-asyncio 1.6.0 pyhd8ed1ab_1 conda-forge networkx 3.4.2 pyh267e887_2 conda-forge nodejs 22.11.0 hf235a45_0 conda-forge -notebook 6.5.7 pyha770c72_0 conda-forge -notebook-shim 0.2.4 pyhd8ed1ab_0 conda-forge +notebook 7.4.1 pyhd8ed1ab_0 conda-forge +notebook-shim 0.2.4 pyhd8ed1ab_1 conda-forge numpy 1.26.4 py310hb13e2d6_0 conda-forge -oauthlib 3.2.2 pyhd8ed1ab_0 conda-forge -openjpeg 2.5.2 h488ebb8_0 conda-forge -openldap 2.6.8 hedd0468_0 conda-forge -openssl 3.4.0 hb9d3cd8_0 conda-forge -opt_einsum 3.4.0 pyhd8ed1ab_0 conda-forge -optree 0.13.1 py310h3788b33_1 conda-forge +oauthlib 3.2.2 pyhd8ed1ab_1 conda-forge +openjpeg 2.5.3 h5fbd93e_0 conda-forge +openldap 2.6.9 he970967_0 conda-forge +openssl 3.5.0 h7b32b05_0 conda-forge +opt_einsum 3.4.0 pyhd8ed1ab_1 conda-forge +optree 0.15.0 py310h3788b33_0 conda-forge orc 2.0.2 h669347b_0 conda-forge -outcome 1.3.0.post0 pyhd8ed1ab_0 conda-forge -overrides 7.7.0 pyhd8ed1ab_0 conda-forge -packaging 24.2 pyhff2d567_1 conda-forge -pamela 1.2.0 pyhff2d567_0 conda-forge -pandas 2.2.3 py310h5eaa309_1 conda-forge -pandoc 3.5 ha770c72_0 conda-forge +outcome 1.3.0.post0 pyhd8ed1ab_1 conda-forge +overrides 7.7.0 pyhd8ed1ab_1 conda-forge +packaging 25.0 pyh29332c3_1 conda-forge +pamela 1.2.0 pyhd8ed1ab_1 conda-forge +pandas 2.2.3 py310h5eaa309_3 conda-forge +pandoc 3.6.4 ha770c72_0 conda-forge pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge -pango 1.54.0 h4c5309f_1 conda-forge -parsel 1.9.1 pyhd8ed1ab_2 conda-forge -parso 0.8.4 pyhd8ed1ab_0 conda-forge +pango 1.56.3 h9ac818e_1 conda-forge +parsel 1.10.0 pyhd8ed1ab_0 conda-forge +parso 0.8.4 pyhd8ed1ab_1 conda-forge partd 1.4.2 pyhd8ed1ab_0 conda-forge -patsy 1.0.1 pyhff2d567_0 conda-forge +patsy 1.0.1 pyhd8ed1ab_1 conda-forge pcre2 10.44 hba22ea6_2 conda-forge -pexpect 4.9.0 pyhd8ed1ab_0 conda-forge -pickleshare 0.7.5 py_1003 conda-forge +pexpect 4.9.0 pyhd8ed1ab_1 conda-forge +pickleshare 0.7.5 pyhd8ed1ab_1004 conda-forge pillow 11.0.0 py310hfeaa1f3_0 conda-forge -pip 24.3.1 pyh8b19718_0 conda-forge -pixman 0.43.2 h59595ed_0 conda-forge -pkgutil-resolve-name 1.3.10 pyhd8ed1ab_1 conda-forge -platformdirs 4.3.6 pyhd8ed1ab_0 conda-forge -pluggy 1.5.0 pyhd8ed1ab_0 conda-forge -prometheus_client 0.21.0 pyhd8ed1ab_0 conda-forge -prompt-toolkit 3.0.48 pyha770c72_0 conda-forge -propcache 0.2.0 py310ha75aee5_2 conda-forge -protego 0.3.1 pyhd8ed1ab_0 conda-forge +pip 25.1 pyh8b19718_0 conda-forge +pixman 0.44.2 h29eaf8c_0 conda-forge +pkgutil-resolve-name 1.3.10 pyhd8ed1ab_2 conda-forge +platformdirs 4.3.7 pyh29332c3_0 conda-forge +pluggy 1.5.0 pyhd8ed1ab_1 conda-forge +prometheus_client 0.21.1 pyhd8ed1ab_0 conda-forge +prompt-toolkit 3.0.51 pyha770c72_0 conda-forge +propcache 0.3.1 py310h89163eb_0 conda-forge +protego 0.4.0 pyhd8ed1ab_0 conda-forge protobuf 4.25.3 py310h0e2eeba_1 conda-forge -psutil 6.1.0 py310ha75aee5_0 conda-forge +psutil 7.0.0 py310ha75aee5_0 conda-forge pthread-stubs 0.4 hb9d3cd8_1002 conda-forge -ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge -pure_eval 0.2.3 pyhd8ed1ab_0 conda-forge +ptyprocess 0.7.0 pyhd8ed1ab_1 conda-forge +pure_eval 0.2.3 pyhd8ed1ab_1 conda-forge py4j 0.10.9.7 pyhd8ed1ab_0 conda-forge pyarrow 17.0.0 py310hb7f781d_2 conda-forge pyarrow-core 17.0.0 py310hac404ae_2_cpu conda-forge -pyasn1 0.6.1 pyhd8ed1ab_1 conda-forge -pyasn1-modules 0.4.1 pyhd8ed1ab_0 conda-forge -pycparser 2.22 pyhd8ed1ab_0 conda-forge -pycurl 7.45.3 py310h6811363_3 conda-forge -pydantic 2.10.1 pyh10f6f8f_0 conda-forge -pydantic-core 2.27.1 py310h505e2c1_0 conda-forge +pyasn1 0.6.1 pyhd8ed1ab_2 conda-forge +pyasn1-modules 0.4.2 pyhd8ed1ab_0 conda-forge +pycparser 2.22 pyh29332c3_1 conda-forge +pycurl 7.45.6 py310h6811363_0 conda-forge +pydantic 2.11.3 pyh3cfb1c2_0 conda-forge +pydantic-core 2.33.1 py310hc1293b2_0 conda-forge pydispatcher 2.0.5 py_1 conda-forge -pygments 2.18.0 pyhd8ed1ab_0 conda-forge +pygments 2.19.1 pyhd8ed1ab_0 conda-forge pygpu 0.7.6 py310h96516ba_1003 conda-forge -pyjwt 2.10.0 pyhff2d567_0 conda-forge -pyopenssl 24.2.1 pyhd8ed1ab_2 conda-forge -pyparsing 3.2.0 pyhd8ed1ab_1 conda-forge -pyside6 6.8.0.2 py310hfd10a26_0 conda-forge -pysocks 1.7.1 pyha2e5f31_6 conda-forge -pyspark 3.5.3 pyhd8ed1ab_0 conda-forge +pyjwt 2.10.1 pyhd8ed1ab_0 conda-forge +pyopenssl 25.0.0 pyhd8ed1ab_0 conda-forge +pyparsing 3.2.3 pyhd8ed1ab_1 conda-forge +pyside6 6.9.0 py310hfd10a26_0 conda-forge +pysocks 1.7.1 pyha55dd90_7 conda-forge +pyspark 3.5.3 pyhd8ed1ab_1 conda-forge pytest 8.3.3 pyhd8ed1ab_0 conda-forge python 3.10.15 h4a871b0_2_cpython conda-forge -python-dateutil 2.9.0.post0 pyhff2d567_0 conda-forge -python-fastjsonschema 2.20.0 pyhd8ed1ab_0 conda-forge -python-flatbuffers 24.3.25 pyh59ac667_0 conda-forge +python-dateutil 2.9.0.post0 pyhff2d567_1 conda-forge +python-fastjsonschema 2.21.1 pyhd8ed1ab_0 conda-forge +python-flatbuffers 25.2.10 pyhbc23db3_0 conda-forge python-json-logger 2.0.7 pyhd8ed1ab_0 conda-forge -python-tzdata 2024.2 pyhd8ed1ab_0 conda-forge -python_abi 3.10 5_cp310 conda-forge +python-tzdata 2025.2 pyhd8ed1ab_0 conda-forge +python_abi 3.10 7_cp310 conda-forge pytorch 2.4.1 cpu_mkl_py310h1581fbd_100 conda-forge -pytz 2024.1 pyhd8ed1ab_0 conda-forge -pyyaml 6.0.2 py310ha75aee5_1 conda-forge -pyzmq 26.2.0 py310h71f11fc_3 conda-forge +pytz 2025.2 pyhd8ed1ab_0 conda-forge +pyyaml 6.0.2 py310h89163eb_2 conda-forge +pyzmq 26.4.0 py310h71f11fc_0 conda-forge qhull 2020.2 h434a139_5 conda-forge -qt6-main 6.8.0 h6e8976b_0 conda-forge -queuelib 1.7.0 pyhd8ed1ab_1 conda-forge +qt6-main 6.9.0 h6441bc3_1 conda-forge +queuelib 1.8.0 pyhd8ed1ab_0 conda-forge r-askpass 1.2.1 r44h2b5f3a1_0 conda-forge r-assertthat 0.2.1 r44hc72bb7e_5 conda-forge r-backports 1.5.0 r44hb1dbf0f_1 conda-forge -r-base 4.4.2 h64c9cd0_0 conda-forge +r-base 4.4.2 hc737e89_2 conda-forge r-base64enc 0.1_3 r44hb1dbf0f_1007 conda-forge -r-bit 4.5.0 r44h2b5f3a1_0 conda-forge -r-bit64 4.5.2 r44h2b5f3a1_0 conda-forge +r-bit 4.6.0 r44h2b5f3a1_0 conda-forge +r-bit64 4.6.0_1 r44h2b5f3a1_0 conda-forge r-blob 1.2.4 r44hc72bb7e_2 conda-forge r-boot 1.3_31 r44hc72bb7e_0 conda-forge -r-broom 1.0.7 r44hc72bb7e_0 conda-forge -r-bslib 0.8.0 r44hc72bb7e_0 conda-forge +r-broom 1.0.8 r44hc72bb7e_0 conda-forge +r-bslib 0.9.0 r44hc72bb7e_0 conda-forge r-cachem 1.1.0 r44hb1dbf0f_1 conda-forge r-callr 3.7.6 r44hc72bb7e_1 conda-forge r-caret 6.0_94 r44hdb488b9_2 conda-forge r-cellranger 1.1.0 r44hc72bb7e_1007 conda-forge -r-class 7.3_22 r44hb1dbf0f_2 conda-forge -r-cli 3.6.3 r44h0d4f4ea_1 conda-forge +r-class 7.3_23 r44h2b5f3a1_0 conda-forge +r-cli 3.6.5 r44h93ab643_0 conda-forge r-clipr 0.8.0 r44hc72bb7e_3 conda-forge -r-clock 0.7.1 r44h0d4f4ea_0 conda-forge -r-cluster 2.1.6 r44hbcb9c34_1 conda-forge +r-clock 0.7.3 r44h93ab643_0 conda-forge +r-cluster 2.1.8.1 r44hb67ce94_0 conda-forge r-codetools 0.2_20 r44hc72bb7e_1 conda-forge r-colorspace 2.1_1 r44hdb488b9_0 conda-forge -r-commonmark 1.9.2 r44h2b5f3a1_0 conda-forge +r-commonmark 1.9.5 r44h2b5f3a1_0 conda-forge r-config 0.3.2 r44hc72bb7e_1 conda-forge r-conflicted 1.2.0 r44h785f33e_2 conda-forge -r-cpp11 0.5.0 r44hc72bb7e_0 conda-forge +r-cpp11 0.5.2 r44h785f33e_1 conda-forge r-crayon 1.5.3 r44hc72bb7e_1 conda-forge r-crul 1.5.0 r44h785f33e_0 conda-forge -r-curl 5.2.1 r44h6b349a7_1 conda-forge -r-data.table 1.15.4 r44h5f06984_1 conda-forge +r-curl 6.2.2 r44h2700575_0 conda-forge +r-data.table 1.17.0 r44he23165d_0 conda-forge r-dbi 1.2.3 r44hc72bb7e_1 conda-forge r-dbplyr 2.5.0 r44hc72bb7e_1 conda-forge r-diagram 1.6.5 r44ha770c72_3 conda-forge @@ -407,30 +410,30 @@ r-dtplyr 1.3.1 r44hc72bb7e_2 conda-forge r-e1071 1.7_16 r44h93ab643_0 conda-forge r-ellipsis 0.3.2 r44hb1dbf0f_3 conda-forge r-essentials 4.4 r44hd8ed1ab_2005 conda-forge -r-evaluate 1.0.1 r44hc72bb7e_0 conda-forge +r-evaluate 1.0.3 r44hc72bb7e_0 conda-forge r-fansi 1.0.6 r44hb1dbf0f_1 conda-forge r-farver 2.1.2 r44ha18555a_1 conda-forge r-fastmap 1.2.0 r44ha18555a_1 conda-forge r-fontawesome 0.5.3 r44hc72bb7e_0 conda-forge r-forcats 1.0.0 r44hc72bb7e_2 conda-forge r-foreach 1.5.2 r44hc72bb7e_3 conda-forge -r-foreign 0.8_87 r44hb1dbf0f_1 conda-forge +r-foreign 0.8_90 r44h2b5f3a1_0 conda-forge r-formatr 1.14 r44hc72bb7e_2 conda-forge -r-fs 1.6.5 r44h93ab643_0 conda-forge -r-future 1.34.0 r44h785f33e_0 conda-forge -r-future.apply 1.11.2 r44hc72bb7e_1 conda-forge +r-fs 1.6.6 r44h93ab643_0 conda-forge +r-future 1.40.0 r44h785f33e_0 conda-forge +r-future.apply 1.11.3 r44hc72bb7e_0 conda-forge r-gargle 1.5.2 r44h785f33e_1 conda-forge r-generics 0.1.3 r44hc72bb7e_3 conda-forge -r-ggplot2 3.5.1 r44hc72bb7e_1 conda-forge +r-ggplot2 3.5.2 r44hc72bb7e_0 conda-forge r-gistr 0.9.0 r44hc72bb7e_3 conda-forge r-glmnet 4.1_8 r44ha936806_1 conda-forge -r-globals 0.16.3 r44hc72bb7e_1 conda-forge +r-globals 0.17.0 r44hc72bb7e_0 conda-forge r-glue 1.8.0 r44h2b5f3a1_0 conda-forge r-googledrive 2.1.1 r44hc72bb7e_2 conda-forge r-googlesheets4 1.1.1 r44h785f33e_2 conda-forge r-gower 1.0.1 r44hb1dbf0f_2 conda-forge r-gtable 0.3.6 r44hc72bb7e_0 conda-forge -r-hardhat 1.4.0 r44hc72bb7e_1 conda-forge +r-hardhat 1.4.1 r44hc72bb7e_0 conda-forge r-haven 2.5.4 r44h0d4f4ea_1 conda-forge r-hexbin 1.28.5 r44hb67ce94_0 conda-forge r-highr 0.11 r44hc72bb7e_1 conda-forge @@ -447,96 +450,97 @@ r-irkernel 1.3.2 r44h785f33e_2 conda-forge r-isoband 0.2.7 r44ha18555a_3 conda-forge r-iterators 1.0.14 r44hc72bb7e_3 conda-forge r-jquerylib 0.1.4 r44hc72bb7e_3 conda-forge -r-jsonlite 1.8.9 r44h2b5f3a1_0 conda-forge -r-kernsmooth 2.23_24 r44hc2011d3_1 conda-forge -r-knitr 1.49 r44hc72bb7e_0 conda-forge +r-jsonlite 2.0.0 r44h2b5f3a1_0 conda-forge +r-kernsmooth 2.23_26 r44h8461fee_0 conda-forge +r-knitr 1.50 r44hc72bb7e_0 conda-forge r-labeling 0.4.3 r44hc72bb7e_1 conda-forge -r-later 1.3.2 r44ha18555a_1 conda-forge -r-lattice 0.22_6 r44hb1dbf0f_1 conda-forge -r-lava 1.8.0 r44hc72bb7e_0 conda-forge +r-later 1.4.2 r44h93ab643_0 conda-forge +r-lattice 0.22_7 r44h2b5f3a1_0 conda-forge +r-lava 1.8.1 r44hc72bb7e_0 conda-forge r-lazyeval 0.2.2 r44hb1dbf0f_5 conda-forge r-lifecycle 1.0.4 r44hc72bb7e_1 conda-forge r-listenv 0.9.1 r44hc72bb7e_1 conda-forge r-lobstr 1.1.2 r44ha18555a_4 conda-forge -r-lubridate 1.9.3 r44hdb488b9_1 conda-forge +r-lubridate 1.9.4 r44h2b5f3a1_0 conda-forge r-magrittr 2.0.3 r44hb1dbf0f_3 conda-forge r-maps 3.4.2.1 r44h2b5f3a1_0 conda-forge -r-mass 7.3_60.0.1 r44hb1dbf0f_1 conda-forge -r-matrix 1.6_5 r44he966344_1 conda-forge +r-mass 7.3_64 r44h2b5f3a1_0 conda-forge +r-matrix 1.7_3 r44h2ae2be5_0 conda-forge r-memoise 2.0.1 r44hc72bb7e_3 conda-forge -r-mgcv 1.9_1 r44h0d28552_1 conda-forge -r-mime 0.12 r44hb1dbf0f_3 conda-forge +r-mgcv 1.9_3 r44h2ae2be5_0 conda-forge +r-mime 0.13 r44h2b5f3a1_0 conda-forge r-modelmetrics 1.2.2.2 r44h0d4f4ea_4 conda-forge r-modelr 0.1.11 r44hc72bb7e_2 conda-forge r-munsell 0.5.1 r44hc72bb7e_1 conda-forge -r-nlme 3.1_165 r44hbcb9c34_1 conda-forge -r-nnet 7.3_19 r44hb1dbf0f_2 conda-forge +r-nlme 3.1_168 r44hb67ce94_0 conda-forge +r-nnet 7.3_20 r44h2b5f3a1_0 conda-forge r-numderiv 2016.8_1.1 r44hc72bb7e_6 conda-forge -r-openssl 2.2.2 r44he8289e2_0 conda-forge -r-parallelly 1.39.0 r44h2b5f3a1_0 conda-forge -r-pbdzmq 0.3_13 r44h549f438_0 conda-forge -r-pillar 1.9.0 r44hc72bb7e_2 conda-forge +r-openssl 2.3.2 r44he8289e2_0 conda-forge +r-parallelly 1.43.0 r44h2b5f3a1_0 conda-forge +r-pbdzmq 0.3_14 r44h549f438_0 conda-forge +r-pillar 1.10.2 r44hc72bb7e_0 conda-forge r-pkgconfig 2.0.3 r44hc72bb7e_4 conda-forge r-plyr 1.8.9 r44ha18555a_1 conda-forge r-prettyunits 1.2.0 r44hc72bb7e_1 conda-forge r-proc 1.18.5 r44ha18555a_1 conda-forge -r-processx 3.8.4 r44hb1dbf0f_1 conda-forge +r-processx 3.8.6 r44h2b5f3a1_0 conda-forge r-prodlim 2024.06.25 r44h0d4f4ea_1 conda-forge r-progress 1.2.3 r44hc72bb7e_1 conda-forge r-progressr 0.15.1 r44hc72bb7e_0 conda-forge -r-promises 1.3.0 r44ha18555a_1 conda-forge +r-promises 1.3.2 r44h93ab643_0 conda-forge r-proxy 0.4_27 r44hb1dbf0f_3 conda-forge r-pryr 0.1.6 r44h0d4f4ea_2 conda-forge -r-ps 1.8.1 r44h2b5f3a1_0 conda-forge -r-purrr 1.0.2 r44hdb488b9_1 conda-forge -r-quantmod 0.4.26 r44hc72bb7e_1 conda-forge -r-r6 2.5.1 r44hc72bb7e_3 conda-forge -r-ragg 1.3.3 r44h9aa3752_0 conda-forge +r-ps 1.9.1 r44h2b5f3a1_0 conda-forge +r-purrr 1.0.4 r44h2b5f3a1_0 conda-forge +r-quantmod 0.4.27 r44hc72bb7e_0 conda-forge +r-r6 2.6.1 r44hc72bb7e_0 conda-forge +r-ragg 1.4.0 r44hdcc764c_0 conda-forge r-randomforest 4.7_1.2 r44hb67ce94_0 conda-forge r-rappdirs 0.3.3 r44hb1dbf0f_3 conda-forge r-rbokeh 0.5.2 r44hc72bb7e_4 conda-forge r-rcolorbrewer 1.1_3 r44h785f33e_3 conda-forge -r-rcpp 1.0.13_1 r44h93ab643_0 conda-forge +r-rcpp 1.0.14 r44h93ab643_0 conda-forge r-rcppeigen 0.3.4.0.2 r44hb79369c_0 conda-forge r-readr 2.1.5 r44h0d4f4ea_1 conda-forge -r-readxl 1.4.3 r44he58e087_1 conda-forge -r-recipes 1.1.0 r44hc72bb7e_1 conda-forge +r-readxl 1.4.5 r44h328fee5_0 conda-forge +r-recipes 1.3.0 r44hc72bb7e_0 conda-forge r-recommended 4.4 r44hd8ed1ab_1007 conda-forge r-rematch 2.0.0 r44hc72bb7e_1 conda-forge r-rematch2 2.1.2 r44hc72bb7e_4 conda-forge r-repr 1.1.7 r44h785f33e_1 conda-forge r-reprex 2.1.1 r44hc72bb7e_1 conda-forge r-reshape2 1.4.4 r44h0d4f4ea_4 conda-forge -r-rlang 1.1.4 r44ha18555a_1 conda-forge +r-rlang 1.1.6 r44h93ab643_0 conda-forge r-rmarkdown 2.29 r44hc72bb7e_0 conda-forge -r-rpart 4.1.23 r44hb1dbf0f_1 conda-forge +r-rpart 4.1.24 r44h2b5f3a1_0 conda-forge r-rstudioapi 0.17.1 r44hc72bb7e_0 conda-forge r-rvest 1.0.4 r44hc72bb7e_1 conda-forge -r-sass 0.4.9 r44ha18555a_1 conda-forge -r-scales 1.3.0 r44hc72bb7e_1 conda-forge +r-sass 0.4.10 r44h93ab643_0 conda-forge +r-scales 1.4.0 r44hc72bb7e_0 conda-forge r-selectr 0.4_2 r44hc72bb7e_4 conda-forge r-shape 1.4.6.1 r44ha770c72_1 conda-forge -r-shiny 1.9.1 r44h785f33e_0 conda-forge +r-shiny 1.10.0 r44h785f33e_0 conda-forge r-sourcetools 0.1.7_1 r44ha18555a_2 conda-forge r-sparklyr 1.8.6 r44hc72bb7e_1 conda-forge -r-spatial 7.3_17 r44hb1dbf0f_1 conda-forge +r-sparsevctrs 0.3.3 r44h2b5f3a1_0 conda-forge +r-spatial 7.3_18 r44h2b5f3a1_0 conda-forge r-squarem 2021.1 r44hc72bb7e_3 conda-forge -r-stringi 1.8.4 r44h33cde33_3 conda-forge +r-stringi 1.8.7 r44h3c328a7_0 conda-forge r-stringr 1.5.1 r44h785f33e_1 conda-forge -r-survival 3.7_0 r44hdb488b9_1 conda-forge +r-survival 3.8_3 r44h2b5f3a1_0 conda-forge r-sys 3.4.3 r44h2b5f3a1_0 conda-forge -r-systemfonts 1.1.0 r44h38d38ca_1 conda-forge -r-textshaping 0.4.0 r44ha47bcaa_2 conda-forge +r-systemfonts 1.2.1 r44h5c043a3_0 conda-forge +r-textshaping 1.0.0 r44h0f89ba2_0 conda-forge r-tibble 3.2.1 r44hdb488b9_3 conda-forge r-tidyr 1.3.1 r44h0d4f4ea_1 conda-forge r-tidyselect 1.2.1 r44hc72bb7e_1 conda-forge r-tidyverse 2.0.0 r44h785f33e_2 conda-forge r-timechange 0.3.0 r44ha18555a_1 conda-forge r-timedate 4041.110 r44hc72bb7e_0 conda-forge -r-tinytex 0.54 r44hc72bb7e_0 conda-forge +r-tinytex 0.57 r44hc72bb7e_0 conda-forge r-triebeard 0.4.1 r44ha18555a_2 conda-forge r-ttr 0.24.4 r44hdb488b9_1 conda-forge -r-tzdb 0.4.0 r44ha18555a_2 conda-forge +r-tzdb 0.5.0 r44h93ab643_0 conda-forge r-urltools 1.7.3 r44ha18555a_5 conda-forge r-utf8 1.2.4 r44hb1dbf0f_1 conda-forge r-uuid 1.2_1 r44hdb488b9_0 conda-forge @@ -544,101 +548,102 @@ r-vctrs 0.6.5 r44h0d4f4ea_1 conda-forge r-viridislite 0.4.2 r44hc72bb7e_2 conda-forge r-vroom 1.6.5 r44h0d4f4ea_1 conda-forge r-withr 3.0.2 r44hc72bb7e_0 conda-forge -r-xfun 0.48 r44h93ab643_0 conda-forge -r-xml2 1.3.6 r44h8194278_2 conda-forge +r-xfun 0.52 r44h93ab643_0 conda-forge +r-xml2 1.3.8 r44h1bb2df6_0 conda-forge r-xtable 1.8_4 r44hc72bb7e_6 conda-forge r-xts 0.14.1 r44h2b5f3a1_0 conda-forge r-yaml 2.3.10 r44hdb488b9_0 conda-forge -r-zoo 1.8_12 r44hb1dbf0f_2 conda-forge +r-zoo 1.8_14 r44h2b5f3a1_0 conda-forge re2 2023.09.01 h7f4b329_2 conda-forge -readline 8.2 h8228510_1 conda-forge -referencing 0.35.1 pyhd8ed1ab_0 conda-forge -requests 2.32.3 pyhd8ed1ab_0 conda-forge -requests-file 2.1.0 pyhd8ed1ab_0 conda-forge -rfc3339-validator 0.1.4 pyhd8ed1ab_0 conda-forge +readline 8.2 h8c095d6_2 conda-forge +referencing 0.36.2 pyh29332c3_0 conda-forge +requests 2.32.3 pyhd8ed1ab_1 conda-forge +requests-file 2.1.0 pyhd8ed1ab_1 conda-forge +rfc3339-validator 0.1.4 pyhd8ed1ab_1 conda-forge rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge -rich 13.9.4 pyhd8ed1ab_0 conda-forge -rpds-py 0.21.0 py310h505e2c1_0 conda-forge +rich 14.0.0 pyh29332c3_0 conda-forge +rpds-py 0.24.0 py310hc1293b2_0 conda-forge s2n 1.5.5 h3931f03_0 conda-forge scikit-learn 1.5.2 py310h27f47ee_1 conda-forge -scipy 1.14.1 py310hfcf56fc_1 conda-forge +scipy 1.14.1 py310hfcf56fc_2 conda-forge scrapy 2.12.0 py310hff52083_1 conda-forge -seaborn 0.13.2 hd8ed1ab_2 conda-forge -seaborn-base 0.13.2 pyhd8ed1ab_2 conda-forge +seaborn 0.13.2 hd8ed1ab_3 conda-forge +seaborn-base 0.13.2 pyhd8ed1ab_3 conda-forge sed 4.8 he412f7d_0 conda-forge selenium 4.26.1 pyhd8ed1ab_0 conda-forge selenium-manager 4.26.0 h8fae777_0 conda-forge -send2trash 1.8.3 pyh0d859eb_0 conda-forge -service-identity 24.2.0 pyha770c72_0 conda-forge -service_identity 24.2.0 hd8ed1ab_0 conda-forge -setuptools 75.6.0 pyhff2d567_0 conda-forge -simpervisor 1.0.0 pyhd8ed1ab_0 conda-forge -six 1.16.0 pyh6c4a22f_0 conda-forge +send2trash 1.8.3 pyh0d859eb_1 conda-forge +service-identity 24.2.0 pyha770c72_1 conda-forge +service_identity 24.2.0 hd8ed1ab_1 conda-forge +setuptools 79.0.1 pyhff2d567_0 conda-forge +simpervisor 1.0.0 pyhd8ed1ab_1 conda-forge +six 1.17.0 pyhd8ed1ab_0 conda-forge skein 0.8.1 py310hff52083_4 conda-forge -sleef 3.7 h1b44611_2 conda-forge -smmap 5.0.0 pyhd8ed1ab_0 conda-forge -snappy 1.2.1 ha2e4443_0 conda-forge -sniffio 1.3.1 pyhd8ed1ab_0 conda-forge -sortedcontainers 2.4.0 pyhd8ed1ab_0 conda-forge +sleef 3.8 h1b44611_0 conda-forge +smmap 5.0.2 pyhd8ed1ab_0 conda-forge +snappy 1.2.1 h8bd8927_1 conda-forge +sniffio 1.3.1 pyhd8ed1ab_1 conda-forge +sortedcontainers 2.4.0 pyhd8ed1ab_1 conda-forge soupsieve 2.5 pyhd8ed1ab_1 conda-forge -sqlalchemy 2.0.36 py310ha75aee5_0 conda-forge -stack_data 0.6.2 pyhd8ed1ab_0 conda-forge +sqlalchemy 2.0.40 py310ha75aee5_0 conda-forge +stack_data 0.6.3 pyhd8ed1ab_1 conda-forge statsmodels 0.14.4 py310hf462985_0 conda-forge -sympy 1.13.3 pyh2585a3b_104 conda-forge -sysroot_linux-64 2.17 h4a8ded7_18 conda-forge -tbb 2021.13.0 h84d6215_0 conda-forge -tblib 3.0.0 pyhd8ed1ab_0 conda-forge +sympy 1.13.3 pyh2585a3b_105 conda-forge +sysroot_linux-64 2.17 h0157908_18 conda-forge +tbb 2021.13.0 hceb3a55_1 conda-forge +tblib 3.1.0 pyhd8ed1ab_0 conda-forge tensorboard 2.17.1 pyhd8ed1ab_0 conda-forge tensorboard-data-server 0.7.0 py310h6c63255_2 conda-forge tensorflow 2.17.0 cpu_py310h42475c5_2 conda-forge tensorflow-base 2.17.0 cpu_py310h98e3cc3_2 conda-forge tensorflow-estimator 2.17.0 cpu_py310heba74a3_2 conda-forge -termcolor 2.5.0 pyhd8ed1ab_0 conda-forge +termcolor 3.0.1 pyhd8ed1ab_0 conda-forge terminado 0.18.1 pyh0d859eb_0 conda-forge theano 1.0.5 py310hd8f1fbe_3 conda-forge -threadpoolctl 3.5.0 pyhc1e730c_0 conda-forge +threadpoolctl 3.6.0 pyhecae5ae_0 conda-forge tinycss2 1.4.0 pyhd8ed1ab_0 conda-forge tk 8.6.13 noxft_h4845f30_101 conda-forge tktable 2.10 h8bc8fbc_6 conda-forge -tldextract 5.1.3 pyhd8ed1ab_0 conda-forge -tomli 2.1.0 pyhff2d567_0 conda-forge -toolz 1.0.0 pyhd8ed1ab_0 conda-forge +tldextract 5.3.0 pyhd8ed1ab_0 conda-forge +tomli 2.2.1 pyhd8ed1ab_1 conda-forge +toolz 1.0.0 pyhd8ed1ab_1 conda-forge toree 0.5.0 pypi_0 pypi -tornado 6.4.1 py310ha75aee5_1 conda-forge -traitlets 5.14.3 pyhd8ed1ab_0 conda-forge -trio 0.27.0 py310hff52083_0 conda-forge -trio-websocket 0.11.1 pyhd8ed1ab_0 conda-forge -twisted 24.10.0 py310ha75aee5_0 conda-forge -types-python-dateutil 2.9.0.20241003 pyhff2d567_0 conda-forge -typing-extensions 4.12.2 hd8ed1ab_0 conda-forge -typing_extensions 4.12.2 pyha770c72_0 conda-forge -typing_utils 0.1.0 pyhd8ed1ab_0 conda-forge -tzdata 2024b hc8b5060_0 conda-forge -unicodedata2 15.1.0 py310ha75aee5_1 conda-forge -uri-template 1.3.0 pyhd8ed1ab_0 conda-forge -urllib3 2.2.3 pyhd8ed1ab_0 conda-forge -w3lib 2.2.1 pyhd8ed1ab_0 conda-forge -wayland 1.23.1 h3e06ad9_0 conda-forge -wcwidth 0.2.13 pyhd8ed1ab_0 conda-forge -webcolors 24.8.0 pyhd8ed1ab_0 conda-forge -webencodings 0.5.1 pyhd8ed1ab_2 conda-forge -websocket-client 1.8.0 pyhd8ed1ab_0 conda-forge -werkzeug 3.1.3 pyhff2d567_0 conda-forge -wheel 0.45.1 pyhd8ed1ab_0 conda-forge -widgetsnbextension 4.0.13 pyhd8ed1ab_0 conda-forge -wrapt 1.16.0 py310ha75aee5_1 conda-forge -wsproto 1.2.0 pyhd8ed1ab_0 conda-forge +tornado 6.4.2 py310ha75aee5_0 conda-forge +traitlets 5.14.3 pyhd8ed1ab_1 conda-forge +trio 0.30.0 py310hff52083_0 conda-forge +trio-websocket 0.12.2 pyh29332c3_0 conda-forge +twisted 24.11.0 py310ha75aee5_0 conda-forge +types-python-dateutil 2.9.0.20241206 pyhd8ed1ab_0 conda-forge +typing-extensions 4.13.2 h0e9735f_0 conda-forge +typing-inspection 0.4.0 pyhd8ed1ab_0 conda-forge +typing_extensions 4.13.2 pyh29332c3_0 conda-forge +typing_utils 0.1.0 pyhd8ed1ab_1 conda-forge +tzdata 2025b h78e105d_0 conda-forge +unicodedata2 16.0.0 py310ha75aee5_0 conda-forge +uri-template 1.3.0 pyhd8ed1ab_1 conda-forge +urllib3 2.4.0 pyhd8ed1ab_0 conda-forge +w3lib 2.3.1 pyhd8ed1ab_0 conda-forge +wayland 1.23.1 h3e06ad9_1 conda-forge +wcwidth 0.2.13 pyhd8ed1ab_1 conda-forge +webcolors 24.11.1 pyhd8ed1ab_0 conda-forge +webencodings 0.5.1 pyhd8ed1ab_3 conda-forge +websocket-client 1.8.0 pyhd8ed1ab_1 conda-forge +werkzeug 3.1.3 pyhd8ed1ab_1 conda-forge +wheel 0.45.1 pyhd8ed1ab_1 conda-forge +widgetsnbextension 4.0.14 pyhd8ed1ab_0 conda-forge +wrapt 1.17.2 py310ha75aee5_0 conda-forge +wsproto 1.2.0 pyhd8ed1ab_1 conda-forge xcb-util 0.4.1 hb711507_2 conda-forge xcb-util-cursor 0.1.5 hb9d3cd8_0 conda-forge xcb-util-image 0.4.0 hb711507_2 conda-forge xcb-util-keysyms 0.4.1 hb711507_0 conda-forge xcb-util-renderutil 0.3.10 hb711507_0 conda-forge xcb-util-wm 0.4.2 hb711507_0 conda-forge -xkeyboard-config 2.43 hb9d3cd8_0 conda-forge -xorg-libice 1.1.1 hb9d3cd8_1 conda-forge -xorg-libsm 1.2.4 he73a12e_1 conda-forge -xorg-libx11 1.8.10 h4f16b4b_0 conda-forge -xorg-libxau 1.0.11 hb9d3cd8_1 conda-forge +xkeyboard-config 2.44 hb9d3cd8_0 conda-forge +xorg-libice 1.1.2 hb9d3cd8_0 conda-forge +xorg-libsm 1.2.6 he73a12e_0 conda-forge +xorg-libx11 1.8.12 h4f16b4b_0 conda-forge +xorg-libxau 1.0.12 hb9d3cd8_0 conda-forge xorg-libxcomposite 0.4.6 hb9d3cd8_2 conda-forge xorg-libxcursor 1.2.3 hb9d3cd8_0 conda-forge xorg-libxdamage 1.1.6 hb9d3cd8_0 conda-forge @@ -647,19 +652,20 @@ xorg-libxext 1.3.6 hb9d3cd8_0 conda-forge xorg-libxfixes 6.0.1 hb9d3cd8_0 conda-forge xorg-libxi 1.8.2 hb9d3cd8_0 conda-forge xorg-libxrandr 1.5.4 hb9d3cd8_0 conda-forge -xorg-libxrender 0.9.11 hb9d3cd8_1 conda-forge +xorg-libxrender 0.9.12 hb9d3cd8_0 conda-forge xorg-libxt 1.3.1 hb9d3cd8_0 conda-forge xorg-libxtst 1.2.5 hb9d3cd8_3 conda-forge -xorg-libxxf86vm 1.1.5 hb9d3cd8_4 conda-forge -xorg-xorgproto 2024.1 hb9d3cd8_1 conda-forge -xyzservices 2024.9.0 pyhd8ed1ab_0 conda-forge -xz 5.2.6 h166bdaf_0 conda-forge +xorg-libxxf86vm 1.1.6 hb9d3cd8_0 conda-forge +xyzservices 2025.4.0 pyhd8ed1ab_0 conda-forge +xz 5.8.1 hbcc6ac9_0 conda-forge +xz-gpl-tools 5.8.1 hbcc6ac9_0 conda-forge +xz-tools 5.8.1 hb9d3cd8_0 conda-forge yaml 0.2.5 h7f98852_2 conda-forge -yarl 1.18.0 py310ha75aee5_0 conda-forge +yarl 1.20.0 py310h89163eb_0 conda-forge zeromq 4.3.5 h3b0a872_7 conda-forge -zict 3.0.0 pyhd8ed1ab_0 conda-forge -zipp 3.21.0 pyhd8ed1ab_0 conda-forge +zict 3.0.0 pyhd8ed1ab_1 conda-forge +zipp 3.21.0 pyhd8ed1ab_1 conda-forge zlib 1.3.1 hb9d3cd8_2 conda-forge -zope.interface 7.1.1 py310ha75aee5_0 conda-forge -zstandard 0.23.0 py310ha39cb0e_1 conda-forge -zstd 1.5.6 ha6fb4c9_0 conda-forge +zope.interface 7.2 py310ha75aee5_0 conda-forge +zstandard 0.23.0 py310ha75aee5_1 conda-forge +zstd 1.5.7 hb8e6e7a_2 conda-forge \ No newline at end of file diff --git a/collections/ansible_collections/jupyter/lab/roles/setup/tasks/main.yml b/collections/ansible_collections/jupyter/lab/roles/setup/tasks/main.yml index 33c2e11..29a60ed 100644 --- a/collections/ansible_collections/jupyter/lab/roles/setup/tasks/main.yml +++ b/collections/ansible_collections/jupyter/lab/roles/setup/tasks/main.yml @@ -18,7 +18,7 @@ - conda_packages ansible.builtin.shell: | . /opt/miniforge/miniforge/bin/activate - conda create -n jupyterlab python={{ setup_environment_python_version }} -y + mamba create -n jupyterlab python={{ setup_environment_python_version }} -y changed_when: true - name: Install jupyterlab conda packages in jupyterlab environment @@ -26,12 +26,12 @@ - conda_packages ansible.builtin.shell: | . /opt/miniforge/miniforge/bin/activate jupyterlab - conda install -c conda-forge {% for conda_package in setup_conda_packages %}{{ conda_package }}{% if not loop.last %} {% endif %}{% endfor %} -y + mamba install -c conda-forge {% for conda_package in setup_conda_packages %}{{ conda_package }}{% if not loop.last %} {% endif %}{% endfor %} -y changed_when: true args: executable: /bin/bash - async: 6800 - poll: 300 + async: 3400 + poll: 150 - name: Install jupyterlab pip packages in jupyterlab environment ansible.builtin.shell: | diff --git a/collections/ansible_collections/jupyter/miniforge/roles/install/tasks/main.yml b/collections/ansible_collections/jupyter/miniforge/roles/install/tasks/main.yml index b5c292e..75affe9 100644 --- a/collections/ansible_collections/jupyter/miniforge/roles/install/tasks/main.yml +++ b/collections/ansible_collections/jupyter/miniforge/roles/install/tasks/main.yml @@ -16,6 +16,13 @@ changed_when: true when: not miniforge_install.stat.exists +- name: Install mamba in base environment + ansible.builtin.shell: /opt/miniforge/{{ install_miniforge_version }}/bin/conda install mamba -n base -c conda-forge -y + changed_when: true + when: not miniforge_install.stat.exists + args: + executable: /bin/bash + - name: Change ownership to miniforge user and group ansible.builtin.command: chown -R {{ miniforge_user }}:{{ miniforge_group }} /opt/miniforge changed_when: true From e71a3a38ea2e9317f9fe40ff3a601d81176bbe4a Mon Sep 17 00:00:00 2001 From: Georg Schulz <112310008+GeorgSchulz@users.noreply.github.com> Date: Mon, 28 Apr 2025 21:28:55 +0200 Subject: [PATCH 2/2] Update main.yml --- .github/workflows/main.yml | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7b38f70..cd3a98b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -194,23 +194,3 @@ jobs: with: collection_path: hadoop/yarn scenario: ha_setup - - molecule_jupyterhub_default: - uses: ./.github/workflows/test-molecule.yml - needs: - - lint - - molecule_zookeeper_default - - molecule_zookeeper_ha_setup - - molecule_ldap_default - - molecule_ldap_ha_setup - - molecule_kerberos_default - - molecule_kerberos_ha_setup - - molecule_postgres_default - - molecule_postgres_ha_setup - - molecule_hdfs_default - - molecule_hdfs_ha_setup - - molecule_yarn_default - - molecule_yarn_ha_setup - with: - collection_path: jupyter/hub - scenario: default