all:
  children:
    tempest:
      hosts:
        controller: null
    zuul_unreachable:
      hosts: {}
  hosts:
    controller:
      ansible_connection: ssh
      ansible_host: 199.204.45.157
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      configure_swap_size: 8192
      devstack_local_conf:
        post-config:
          $NEUTRON_CONF:
            DEFAULT:
              global_physnet_mtu: '{{ external_bridge_mtu }}'
          /etc/magnum/magnum.conf:
            cluster_template:
              kubernetes_allowed_network_drivers: calico,cilium
              kubernetes_default_network_driver: calico
            nova_client:
              api_version: 2.15
          /etc/manila/manila.conf:
            generic:
              connect_share_server_to_tenant_network: true
              driver_handles_share_servers: true
      devstack_localrc:
        ADMIN_PASSWORD: secretadmin
        DATABASE_PASSWORD: secretdatabase
        DEBUG_LIBVIRT_COREDUMPS: true
        DISABLE_AMP_IMAGE_BUILD: true
        ENABLE_SYSCTL_MEM_TUNING: true
        ENABLE_SYSCTL_NET_TUNING: true
        ENABLE_ZSWAP: true
        ERROR_ON_CLONE: true
        FIXED_RANGE: 10.1.0.0/20
        FLOATING_RANGE: 172.24.5.0/24
        GIT_BASE: https://github.com
        HOST_IP: '{{ hostvars[''controller''][''nodepool''][''private_ipv4''] }}'
        IPV4_ADDRS_SAFE_TO_USE: 10.1.0.0/20
        LIBVIRT_TYPE: '{{ devstack_libvirt_type | default("qemu") }}'
        LOGFILE: /opt/stack/logs/devstacklog.txt
        LOG_COLOR: false
        MAGNUM_GUEST_IMAGE_URL: '{{ image_url }}'
        MANILA_DEFAULT_SHARE_TYPE_EXTRA_SPECS: snapshot_support=True create_share_from_snapshot_support=True
        MANILA_ENABLED_BACKENDS: generic
        MANILA_USE_SERVICE_INSTANCE_PASSWORD: true
        NETWORK_GATEWAY: 10.1.0.1
        NOVA_LIBVIRT_TB_CACHE_SIZE: 128
        NOVA_VNC_ENABLED: true
        OCTAVIA_NODE: api
        OVN_DBS_LOG_LEVEL: dbg
        PUBLIC_BRIDGE_MTU: '{{ external_bridge_mtu }}'
        PUBLIC_NETWORK_GATEWAY: 172.24.5.1
        RABBIT_PASSWORD: secretrabbit
        SERVICE_HOST: '{{ hostvars[''controller''][''nodepool''][''private_ipv4'']
          }}'
        SERVICE_PASSWORD: secretservice
        SWIFT_HASH: 1234123412341234
        SWIFT_REPLICAS: 1
        SWIFT_START_ALL_SERVICES: false
        VERBOSE: true
        VERBOSE_NO_TIMESTAMP: true
      devstack_plugins:
        barbican: https://github.com/openstack/barbican
        magnum: https://review.opendev.org/openstack/magnum
        magnum-cluster-api: https://github.com/vexxhost/magnum-cluster-api
        manila: https://github.com/openstack/manila
        octavia: https://github.com/openstack/octavia
        ovn-octavia-provider: https://github.com/openstack/ovn-octavia-provider
      devstack_services:
        base: false
        c-api: true
        c-bak: true
        c-sch: true
        c-vol: true
        dstat: false
        etcd3: true
        file_tracker: true
        g-api: true
        horizon: false
        key: true
        memory_tracker: true
        mysql: true
        n-api: true
        n-api-meta: true
        n-cond: true
        n-cpu: true
        n-novnc: true
        n-sch: true
        o-api: true
        o-da: true
        o-hk: true
        octavia: true
        openstack-cli-server: true
        ovn-controller: true
        ovn-northd: true
        ovs-vswitchd: true
        ovsdb-server: true
        placement-api: true
        q-ovn-agent: true
        q-svc: true
        rabbit: true
        s-account: false
        s-container: false
        s-object: false
        s-proxy: false
        tempest: false
        tls-proxy: true
      extensions_to_txt:
        auto: true
        conf: true
        localrc: true
        log: true
        stackenv: true
      image_url: https://github.com/vexxhost/capo-image-elements/releases/latest/download/ubuntu-22.04-{{
        kube_tag }}.qcow2
      kube_tag: v1.33.11
      network_driver: cilium
      nodepool:
        az: nova
        cloud: public
        external_id: 8a241409-77d1-45b6-b1a0-0d9d03b75ae0
        host_id: f5d41c99f3f50a7a02e8c9e081443c73166af207792dcb8ee7f694ca
        interface_ip: 199.204.45.157
        label: ubuntu-noble-16
        node_properties: {}
        private_ipv4: 199.204.45.157
        private_ipv6: null
        provider: yul1
        public_ipv4: 199.204.45.157
        public_ipv6: 2604:e100:1:0:f816:3eff:fe2c:2681
        region: ca-ymq-1
        slot: null
      zuul_copy_output:
        /etc/ceph: logs
        /etc/glusterfs/glusterd.vol: logs
        /etc/libvirt: logs
        /etc/lvm: logs
        /etc/resolv.conf: logs
        /etc/sudoers: logs
        /etc/sudoers.d: logs
        /var/log/ceph: logs
        /var/log/glusterfs: logs
        /var/log/libvirt: logs
        /var/log/mysql: logs
        /var/log/openvswitch: logs
        /var/log/postgresql: logs
        /var/log/rabbitmq: logs
        /var/log/unbound.log: logs
        '{{ devstack_conf_dir }}/.localrc.auto': logs
        '{{ devstack_conf_dir }}/.stackenv': logs
        '{{ devstack_conf_dir }}/local.conf': logs
        '{{ devstack_conf_dir }}/localrc': logs
        '{{ devstack_full_log}}': logs
        '{{ devstack_log_dir }}/atop': logs
        '{{ devstack_log_dir }}/devstacklog.txt': logs
        '{{ devstack_log_dir }}/devstacklog.txt.summary': logs
        '{{ devstack_log_dir }}/dstat-csv.log': logs
        '{{ devstack_log_dir }}/qemu.coredump': logs
        '{{ devstack_log_dir }}/tcpdump.pcap': logs
        '{{ devstack_log_dir }}/worlddump-latest.txt': logs
        '{{ stage_dir }}/apache': logs
        '{{ stage_dir }}/apache_config': logs
        '{{ stage_dir }}/audit.log': logs
        '{{ stage_dir }}/core': logs
        '{{ stage_dir }}/deprecations.log': logs
        '{{ stage_dir }}/df.txt': logs
        '{{ stage_dir }}/dpkg-l.txt': logs
        '{{ stage_dir }}/etc': logs
        '{{ stage_dir }}/iptables.txt': logs
        '{{ stage_dir }}/listen53.txt': logs
        '{{ stage_dir }}/mount.txt': logs
        '{{ stage_dir }}/performance.json': logs
        '{{ stage_dir }}/pip2-freeze.txt': logs
        '{{ stage_dir }}/pip3-freeze.txt': logs
        '{{ stage_dir }}/rpm-qa.txt': logs
        '{{ stage_dir }}/services.txt': logs
        '{{ stage_dir }}/verify_tempest_conf.log': logs
      zuul_node:
        az: nova
        cloud: public
        external_id: 8a241409-77d1-45b6-b1a0-0d9d03b75ae0
        host_id: f5d41c99f3f50a7a02e8c9e081443c73166af207792dcb8ee7f694ca
        interface_ip: 199.204.45.157
        label: ubuntu-noble-16
        node_properties: {}
        private_ipv4: 199.204.45.157
        private_ipv6: null
        provider: yul1
        public_ipv4: 199.204.45.157
        public_ipv6: 2604:e100:1:0:f816:3eff:fe2c:2681
        region: ca-ymq-1
        slot: null
        uuid: null
  vars:
    configure_swap_size: 8192
    devstack_local_conf:
      post-config:
        $NEUTRON_CONF:
          DEFAULT:
            global_physnet_mtu: '{{ external_bridge_mtu }}'
        /etc/magnum/magnum.conf:
          cluster_template:
            kubernetes_allowed_network_drivers: calico,cilium
            kubernetes_default_network_driver: calico
          nova_client:
            api_version: 2.15
        /etc/manila/manila.conf:
          generic:
            connect_share_server_to_tenant_network: true
            driver_handles_share_servers: true
    devstack_localrc:
      ADMIN_PASSWORD: secretadmin
      DATABASE_PASSWORD: secretdatabase
      DEBUG_LIBVIRT_COREDUMPS: true
      DISABLE_AMP_IMAGE_BUILD: true
      ENABLE_SYSCTL_MEM_TUNING: true
      ENABLE_SYSCTL_NET_TUNING: true
      ENABLE_ZSWAP: true
      ERROR_ON_CLONE: true
      FIXED_RANGE: 10.1.0.0/20
      FLOATING_RANGE: 172.24.5.0/24
      GIT_BASE: https://github.com
      HOST_IP: '{{ hostvars[''controller''][''nodepool''][''private_ipv4''] }}'
      IPV4_ADDRS_SAFE_TO_USE: 10.1.0.0/20
      LIBVIRT_TYPE: '{{ devstack_libvirt_type | default("qemu") }}'
      LOGFILE: /opt/stack/logs/devstacklog.txt
      LOG_COLOR: false
      MAGNUM_GUEST_IMAGE_URL: '{{ image_url }}'
      MANILA_DEFAULT_SHARE_TYPE_EXTRA_SPECS: snapshot_support=True create_share_from_snapshot_support=True
      MANILA_ENABLED_BACKENDS: generic
      MANILA_USE_SERVICE_INSTANCE_PASSWORD: true
      NETWORK_GATEWAY: 10.1.0.1
      NOVA_LIBVIRT_TB_CACHE_SIZE: 128
      NOVA_VNC_ENABLED: true
      OCTAVIA_NODE: api
      OVN_DBS_LOG_LEVEL: dbg
      PUBLIC_BRIDGE_MTU: '{{ external_bridge_mtu }}'
      PUBLIC_NETWORK_GATEWAY: 172.24.5.1
      RABBIT_PASSWORD: secretrabbit
      SERVICE_HOST: '{{ hostvars[''controller''][''nodepool''][''private_ipv4''] }}'
      SERVICE_PASSWORD: secretservice
      SWIFT_HASH: 1234123412341234
      SWIFT_REPLICAS: 1
      SWIFT_START_ALL_SERVICES: false
      VERBOSE: true
      VERBOSE_NO_TIMESTAMP: true
    devstack_plugins:
      barbican: https://github.com/openstack/barbican
      magnum: https://review.opendev.org/openstack/magnum
      magnum-cluster-api: https://github.com/vexxhost/magnum-cluster-api
      manila: https://github.com/openstack/manila
      octavia: https://github.com/openstack/octavia
      ovn-octavia-provider: https://github.com/openstack/ovn-octavia-provider
    devstack_services:
      base: false
      c-api: true
      c-bak: true
      c-sch: true
      c-vol: true
      dstat: false
      etcd3: true
      file_tracker: true
      g-api: true
      horizon: false
      key: true
      memory_tracker: true
      mysql: true
      n-api: true
      n-api-meta: true
      n-cond: true
      n-cpu: true
      n-novnc: true
      n-sch: true
      o-api: true
      o-da: true
      o-hk: true
      octavia: true
      openstack-cli-server: true
      ovn-controller: true
      ovn-northd: true
      ovs-vswitchd: true
      ovsdb-server: true
      placement-api: true
      q-ovn-agent: true
      q-svc: true
      rabbit: true
      s-account: false
      s-container: false
      s-object: false
      s-proxy: false
      tempest: false
      tls-proxy: true
    extensions_to_txt:
      auto: true
      conf: true
      localrc: true
      log: true
      stackenv: true
    image_url: https://github.com/vexxhost/capo-image-elements/releases/latest/download/ubuntu-22.04-{{
      kube_tag }}.qcow2
    kube_tag: v1.33.11
    network_driver: cilium
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/zuul-config/zuul.d/jobs.yaml@main#1>'
      - '<Job openstack-multinode-fips explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/zuul-config/zuul.d/jobs.yaml@main#17>'
      - '<Job devstack-base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:master}}
        source: openstack/devstack/.zuul.yaml@master#368>'
      - '<Job devstack-minimal explicit: None implied: {MatchAny:{ImpliedBranchMatcher:master}}
        source: openstack/devstack/.zuul.yaml@master#502>'
      - '<Job devstack explicit: None implied: {MatchAny:{ImpliedBranchMatcher:master}}
        source: openstack/devstack/.zuul.yaml@master#545>'
      - '<Job magnum-cluster-api-devstack explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/magnum-cluster-api/zuul.d/jobs.yaml@main#1>'
      - '<Job magnum-cluster-api-hydrophone explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/magnum-cluster-api/zuul.d/jobs.yaml@main#60>'
      - '<Job magnum-cluster-api-hydrophone-v1.33.11 explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/magnum-cluster-api/zuul.d/jobs.yaml@main#72>'
      - '<Job magnum-cluster-api-hydrophone-v1.33.11-cilium explicit: None implied:
        {MatchAny:{ImpliedBranchMatcher:main}} source: vexxhost/magnum-cluster-api/zuul.d/jobs.yaml@main#84>'
      - '<Job magnum-cluster-api-hydrophone-v1.33.11-cilium explicit: None implied:
        None source: vexxhost/magnum-cluster-api/zuul.d/project.yaml@main#1>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 6c6c394ddbaa4477aca3d1772bcc66b2
      build_refs:
      - branch: main
        change: '1004'
        change_message: "chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.21\n\nThis
          PR contains the following updates:\n\n| Package | Type | Update | Change
          |\n|---|---|---|---|\n| [ghcr.io/astral-sh/uv](https://redirect.github.com/astral-sh/uv)
          | final | patch | `0.11.7` \u2192 `0.11.21` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astral-sh/uv
          (ghcr.io/astral-sh/uv)</summary>\n\n### [`v0.11.21`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01121)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.20...0.11.21)\n\nReleased
          on 2026-06-11.\n\n##### Python\n\n- Add CPython 3.13.14 and 3.14.6 ([#&#8203;19787](https://redirect.github.com/astral-sh/uv/pull/19787))\n\n#####
          Preview features\n\n- Add `environment.root` to `uv workspace metadata --sync`
          ([#&#8203;19760](https://redirect.github.com/astral-sh/uv/pull/19760))\n-
          Allow `uv upgrade` to update a single dependency constraint ([#&#8203;19738](https://redirect.github.com/astral-sh/uv/pull/19738))\n-
          Compute and pass `uv workspace metadata` payload in `ty check` ([#&#8203;19763](https://redirect.github.com/astral-sh/uv/pull/19763))\n-
          Make packaged applications the default for `uv init` ([#&#8203;17841](https://redirect.github.com/astral-sh/uv/pull/17841))\n\n#####
          Performance\n\n- Add parallel discovery of Python versions for `uv python
          list` ([#&#8203;18684](https://redirect.github.com/astral-sh/uv/pull/18684))\n-
          Avoid normalizing source distribution names twice ([#&#8203;19784](https://redirect.github.com/astral-sh/uv/pull/19784))\n\n#####
          Bug fixes\n\n- Improve cache robustness and pruning behavior\n  - Allow
          CI cache pruning without an sdist bucket ([#&#8203;19802](https://redirect.github.com/astral-sh/uv/pull/19802))\n
          \ - Avoid overflow when reading malformed cache entries ([#&#8203;19799](https://redirect.github.com/astral-sh/uv/pull/19799))\n
          \ - Preserve cached Python downloads during cache pruning ([#&#8203;19795](https://redirect.github.com/astral-sh/uv/pull/19795))\n
          \ - Reject running inside the cache ([#&#8203;19659](https://redirect.github.com/astral-sh/uv/pull/19659))\n-
          Fix Python discovery and version request edge cases\n  - Avoid panics for
          Unicode Python version requests ([#&#8203;19797](https://redirect.github.com/astral-sh/uv/pull/19797))\n
          \ - Fix handling of non-critical errors in `uv python list` with path requests
          ([#&#8203;19774](https://redirect.github.com/astral-sh/uv/pull/19774))\n
          \ - Fix stop-discovery-at regression ([#&#8203;19769](https://redirect.github.com/astral-sh/uv/pull/19769))\n-
          Harden parsing and validation for package metadata, requirements, markers,
          URLs, and conflict sets\n  - Allow trailing commas in version specifiers
          ([#&#8203;19806](https://redirect.github.com/astral-sh/uv/pull/19806))\n
          \ - Avoid panics for invalid UTF-8 URL credentials ([#&#8203;19800](https://redirect.github.com/astral-sh/uv/pull/19800))\n
          \ - Avoid panics for malformed source distribution filenames ([#&#8203;19776](https://redirect.github.com/astral-sh/uv/pull/19776))\n
          \ - Avoid panics for trailing extra separators ([#&#8203;19779](https://redirect.github.com/astral-sh/uv/pull/19779))\n
          \ - Avoid stack overflow for recursive requirements path aliases ([#&#8203;19777](https://redirect.github.com/astral-sh/uv/pull/19777))\n
          \ - Ignore reversed string compatible-release markers ([#&#8203;19782](https://redirect.github.com/astral-sh/uv/pull/19782))\n
          \ - Reject duplicate entries in conflict sets ([#&#8203;19801](https://redirect.github.com/astral-sh/uv/pull/19801))\n
          \ - Reject malformed hash options in requirements files ([#&#8203;19783](https://redirect.github.com/astral-sh/uv/pull/19783))\n
          \ - Reject source distribution filenames without a separator ([#&#8203;19803](https://redirect.github.com/astral-sh/uv/pull/19803))\n
          \ - Use UTF-8 lengths for requirement errors ([#&#8203;19781](https://redirect.github.com/astral-sh/uv/pull/19781))\n
          \ - Use UTF-8 lengths for trailing marker errors ([#&#8203;19796](https://redirect.github.com/astral-sh/uv/pull/19796))\n
          \ - Use byte offsets when peeking over requirements ([#&#8203;19780](https://redirect.github.com/astral-sh/uv/pull/19780))\n
          \ - Validate GraalPy ABI suffixes ([#&#8203;19805](https://redirect.github.com/astral-sh/uv/pull/19805))\n-
          Improve wheel entry-point error handling and virtual environment activation
          quoting\n  - Propagate errors when reading wheel entry points ([#&#8203;19794](https://redirect.github.com/astral-sh/uv/pull/19794))\n
          \ - Quote virtual environment activation paths with shell metacharacters
          ([#&#8203;19798](https://redirect.github.com/astral-sh/uv/pull/19798))\n\n###
          [`v0.11.20`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01120)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.19...0.11.20)\n\nReleased
          on 2026-06-10.\n\n##### Enhancements\n\n- Add `--emit-index-url` and `--emit-find-links`
          to `uv export` ([#&#8203;18370](https://redirect.github.com/astral-sh/uv/pull/18370))\n-
          Add `--find-links` support for `uv pip list` ([#&#8203;16103](https://redirect.github.com/astral-sh/uv/pull/16103))\n-
          Group executable install errors during `uv python install` ([#&#8203;19691](https://redirect.github.com/astral-sh/uv/pull/19691))\n-
          Use ICF in macOS release builds to reduce binary sizes ([#&#8203;19615](https://redirect.github.com/astral-sh/uv/pull/19615))\n\n#####
          Preview features\n\n- Add initial hidden `uv upgrade` command ([#&#8203;19678](https://redirect.github.com/astral-sh/uv/pull/19678))\n-
          Reject Git revisions in `uv upgrade` ([#&#8203;19742](https://redirect.github.com/astral-sh/uv/pull/19742))\n\n#####
          Configuration\n\n- Recognize `UV_NO_INSTALL_PROJECT`, `UV_NO_INSTALL_WORKSPACE`,
          `UV_NO_INSTALL_LOCAL` ([#&#8203;19323](https://redirect.github.com/astral-sh/uv/pull/19323))\n\n#####
          Performance\n\n- Speed up discovery of large workspaces ([#&#8203;18311](https://redirect.github.com/astral-sh/uv/pull/18311))\n\n#####
          Bug fixes\n\n- Allow unknown preview flags with a warning again ([#&#8203;19669](https://redirect.github.com/astral-sh/uv/pull/19669))\n-
          Apply dependency exclusions to direct requirements ([#&#8203;19699](https://redirect.github.com/astral-sh/uv/pull/19699))\n-
          Avoid following external symlinks during cache clean ([#&#8203;19682](https://redirect.github.com/astral-sh/uv/pull/19682))\n-
          Avoid following symlinks during cache prune ([#&#8203;19543](https://redirect.github.com/astral-sh/uv/pull/19543))\n-
          Fix Git cache keys for worktrees and packed refs ([#&#8203;19706](https://redirect.github.com/astral-sh/uv/pull/19706))\n-
          Make resolver error handling iterative to avoid stack overflows ([#&#8203;19695](https://redirect.github.com/astral-sh/uv/pull/19695))\n-
          Pass `VIRTUAL_ENV` through `cygpath` inside `fish` on Windows ([#&#8203;19703](https://redirect.github.com/astral-sh/uv/pull/19703))\n-
          Rebuild explicit local directory tool installs ([#&#8203;19591](https://redirect.github.com/astral-sh/uv/pull/19591))\n-
          Validate egg top-level entries as identifiers ([#&#8203;19679](https://redirect.github.com/astral-sh/uv/pull/19679))\n\n#####
          Documentation\n\n- Document `--find-links` caching behavior ([#&#8203;19585](https://redirect.github.com/astral-sh/uv/pull/19585))\n-
          Add a small section for malware checks ([#&#8203;19680](https://redirect.github.com/astral-sh/uv/pull/19680))\n\n###
          [`v0.11.19`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01119)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.18...0.11.19)\n\nReleased
          on 2026-06-03.\n\n##### Python\n\n- Add CPython 3.15.0b2 ([#&#8203;19531](https://redirect.github.com/astral-sh/uv/pull/19531))\n\n#####
          Enhancements\n\n- Always compute SHA256 for remote distributions ([#&#8203;19662](https://redirect.github.com/astral-sh/uv/pull/19662))\n-
          Add PyEmscripten platform (PEP 783) ([#&#8203;19629](https://redirect.github.com/astral-sh/uv/pull/19629))\n-
          Add Pyodide 2025 target triple ([#&#8203;19653](https://redirect.github.com/astral-sh/uv/pull/19653))\n\n#####
          Preview features\n\n- Make preview features for commands have names that
          aren't ambiguous with the command ([#&#8203;19645](https://redirect.github.com/astral-sh/uv/pull/19645))\n-
          Respect `--isolated` in `uv check` ([#&#8203;19666](https://redirect.github.com/astral-sh/uv/pull/19666))\n\n#####
          Bug fixes\n\n- Continue tool uninstall after dangling receipts ([#&#8203;19623](https://redirect.github.com/astral-sh/uv/pull/19623))\n-
          Skip Unix-specific installation steps when cross-installing Windows Python
          distributions ([#&#8203;19424](https://redirect.github.com/astral-sh/uv/pull/19424))\n\n###
          [`v0.11.18`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01118)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.17...0.11.18)\n\nReleased
          on 2026-06-01.\n\n##### Performance\n\n- Fix performance regression in unzip
          of local wheels ([#&#8203;19637](https://redirect.github.com/astral-sh/uv/pull/19637))\n\n#####
          Preview\n\n- Add `uv check` to run `ty` from uv ([#&#8203;19605](https://redirect.github.com/astral-sh/uv/pull/19605))\n\n#####
          Bug fixes\n\n- Update activation scripts with upstream fixes ([#&#8203;19628](https://redirect.github.com/astral-sh/uv/pull/19628))\n\n#####
          Other changes\n\n- Bump MSRV to 1.94 ([#&#8203;19600](https://redirect.github.com/astral-sh/uv/pull/19600))\n\n###
          [`v0.11.17`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01117)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.16...0.11.17)\n\nReleased
          on 2026-05-28.\n\n##### Enhancements\n\n- Add a diagnostic for `uv add`
          with standard library modules ([#&#8203;19572](https://redirect.github.com/astral-sh/uv/pull/19572))\n-
          Expose `uv workspace` and its `list` subcommand in help output ([#&#8203;19533](https://redirect.github.com/astral-sh/uv/pull/19533))\n-
          Improve the \"403 forbidden\" hint to suggest `ignore-error-codes` when
          applicable ([#&#8203;19521](https://redirect.github.com/astral-sh/uv/pull/19521))\n-
          Skip direct URL lock freshness checks while offline ([#&#8203;19596](https://redirect.github.com/astral-sh/uv/pull/19596))\n-
          Add `import-names` and `import-namespaces` support to `uv-build` ([PEP 794](https://peps.python.org/pep-0794/))
          ([#&#8203;19380](https://redirect.github.com/astral-sh/uv/pull/19380))\n-
          Add a `--no-editable-package` flag to various commands ([#&#8203;19584](https://redirect.github.com/astral-sh/uv/pull/19584))\n-
          Infer Python version requests from source trees in `uv tool` invocations
          ([#&#8203;19577](https://redirect.github.com/astral-sh/uv/pull/19577))\n\n#####
          Preview features\n\n- Add module owners to `uv workspace metadata` ([#&#8203;19122](https://redirect.github.com/astral-sh/uv/pull/19122))\n-
          Do not allow `uv venv --clear` to remove non-virtual environments ([#&#8203;19595](https://redirect.github.com/astral-sh/uv/pull/19595))\n\n#####
          Bug fixes\n\n- Improve the performance of large entries in `tool.uv.conflicts`
          ([#&#8203;19538](https://redirect.github.com/astral-sh/uv/pull/19538))\n-
          Avoid modifying the parent process' env with `--env-file` in `uv run` ([#&#8203;19567](https://redirect.github.com/astral-sh/uv/pull/19567))\n-
          Fix script environment creation for scripts with long filenames ([#&#8203;19539](https://redirect.github.com/astral-sh/uv/pull/19539))\n-
          Fix transitive Git archive dependencies in lockfiles ([#&#8203;19589](https://redirect.github.com/astral-sh/uv/pull/19589))\n-
          Preserve Git repository URLs in direct URL metadata ([#&#8203;19590](https://redirect.github.com/astral-sh/uv/pull/19590))\n-
          Support redirects in `--check-url` ([#&#8203;19594](https://redirect.github.com/astral-sh/uv/pull/19594))\n-
          Accept case-insensitive HTML tags in `--find-links` parsing ([#&#8203;19537](https://redirect.github.com/astral-sh/uv/pull/19537))\n-
          Reject duplicate script metadata blocks ([#&#8203;19544](https://redirect.github.com/astral-sh/uv/pull/19544))\n-
          Ban names like \"python3\" as script entry points ([#&#8203;19535](https://redirect.github.com/astral-sh/uv/pull/19535),
          [#&#8203;19536](https://redirect.github.com/astral-sh/uv/pull/19536))\n-
          Validate Git LFS artifacts for Git archives ([#&#8203;19592](https://redirect.github.com/astral-sh/uv/pull/19592))\n-
          Use a relative path when creating symlinks in cache to improve relocatability
          ([#&#8203;19033](https://redirect.github.com/astral-sh/uv/pull/19033))\n\n#####
          Documentation\n\n- Fix malformed positional anchors in the CLI reference
          ([#&#8203;19575](https://redirect.github.com/astral-sh/uv/pull/19575))\n\n###
          [`v0.11.16`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01116)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.15...0.11.16)\n\nReleased
          on 2026-05-21.\n\n##### Enhancements\n\n- Add support for direct archive
          dependencies in Git ([#&#8203;10072](https://redirect.github.com/astral-sh/uv/pull/10072))\n-
          Adjust hint rendering ([#&#8203;18090](https://redirect.github.com/astral-sh/uv/pull/18090))\n\n#####
          Preview features\n\n- uv audit: specialize malformed OSV error ([#&#8203;19515](https://redirect.github.com/astral-sh/uv/pull/19515))\n-
          Reject locked malware installations ([#&#8203;18936](https://redirect.github.com/astral-sh/uv/pull/18936))\n\n#####
          Configuration\n\n- Allow disabling reading the system config with `UV_NO_SYSTEM_CONFIG`
          ([#&#8203;19476](https://redirect.github.com/astral-sh/uv/pull/19476))\n\n#####
          Bug fixes\n\n- Allow environment variables that take a list to be empty
          ([#&#8203;19503](https://redirect.github.com/astral-sh/uv/pull/19503))\n-
          Ensure that incompatible wheel hints do not leak secrets ([#&#8203;19504](https://redirect.github.com/astral-sh/uv/pull/19504))\n-
          Reject unsafe entry points in `uv-build` ([#&#8203;19495](https://redirect.github.com/astral-sh/uv/pull/19495))\n-
          Restrict delimiters in entry point parsing ([#&#8203;19471](https://redirect.github.com/astral-sh/uv/pull/19471))\n-
          uv-netrc: fix multi-word no-space comment lines causing parse errors ([#&#8203;19494](https://redirect.github.com/astral-sh/uv/pull/19494))\n\n#####
          Documentation\n\n- Document and test relative exclude-newer support for
          uv pip ([#&#8203;19475](https://redirect.github.com/astral-sh/uv/pull/19475))\n\n###
          [`v0.11.15`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01115)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.14...0.11.15)\n\nReleased
          on 2026-05-18.\n\n##### Security\n\n- Fix a TAR partial differential, see
          [GHSA-3cv2-h65g-fgmm](https://redirect.github.com/astral-sh/tokio-tar/security/advisories/GHSA-3cv2-h65g-fgmm)
          ([#&#8203;19463](https://redirect.github.com/astral-sh/uv/pull/19463))\n-
          Enforce that entry points cannot escape in the scripts directory, see [GHSA-4gg8-gxpx-9rph](https://redirect.github.com/astral-sh/tokio-tar/security/advisories/GHSA-4gg8-gxpx-9rph)
          ([#&#8203;19464](https://redirect.github.com/astral-sh/uv/pull/19464))\n\n#####
          Enhancements\n\n- Add TOML v1.1 -> v1.0 backwards compatibility for source
          distributions ([#&#8203;18741](https://redirect.github.com/astral-sh/uv/pull/18741))\n-
          Add support for Azure request signing ([#&#8203;19421](https://redirect.github.com/astral-sh/uv/pull/19421))\n-
          Apply stricter validation to all wheel filename segments ([#&#8203;19364](https://redirect.github.com/astral-sh/uv/pull/19364))\n-
          Reject empty strings as an invalid package name ([#&#8203;19435](https://redirect.github.com/astral-sh/uv/pull/19435))\n-
          Use structured errors for signing authentication failures ([#&#8203;19422](https://redirect.github.com/astral-sh/uv/pull/19422))\n\n#####
          Preview\n\n- uv audit: Add JSON output ([#&#8203;19305](https://redirect.github.com/astral-sh/uv/pull/19305))\n\n#####
          Configuration\n\n- Respect `required-environments` in `uv pip compile` ([#&#8203;19378](https://redirect.github.com/astral-sh/uv/pull/19378))\n\n#####
          Performance\n\n- Avoid parsing JSON manifest when local Python is available
          ([#&#8203;19398](https://redirect.github.com/astral-sh/uv/pull/19398))\n-
          Avoid walking nested directories in linker conflict registration ([#&#8203;19382](https://redirect.github.com/astral-sh/uv/pull/19382))\n-
          Optimize async wheel ZIP writing ([#&#8203;19383](https://redirect.github.com/astral-sh/uv/pull/19383))\n-
          Fix dead \"already trimmed\" fast-path in `Version::only_release_trimmed`
          ([#&#8203;19425](https://redirect.github.com/astral-sh/uv/pull/19425))\n\n#####
          Bug fixes\n\n- Apply workspace-member `[tool.uv.sources]` credentials under
          `uv sync --frozen` ([#&#8203;19423](https://redirect.github.com/astral-sh/uv/pull/19423))\n-
          Skip empty directories in uv build outputs ([#&#8203;19437](https://redirect.github.com/astral-sh/uv/pull/19437))\n-
          Fix Git submodule handling when using relative paths ([#&#8203;12156](https://redirect.github.com/astral-sh/uv/pull/12156))\n-
          Fix line number reporting in netrc parsing ([#&#8203;19452](https://redirect.github.com/astral-sh/uv/pull/19452))\n\n#####
          Documentation\n\n- Move Bazel auth helper setup into integration guide ([#&#8203;19392](https://redirect.github.com/astral-sh/uv/pull/19392))\n\n###
          [`v0.11.14`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01114)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.13...0.11.14)\n\nReleased
          on 2026-05-12.\n\n##### Enhancements\n\n- Add Astral mirror URL override
          ([#&#8203;19206](https://redirect.github.com/astral-sh/uv/pull/19206))\n-
          Ignore `top_level.txt` entries in uninstall that are not valid Python identifiers
          ([#&#8203;19340](https://redirect.github.com/astral-sh/uv/pull/19340))\n\n#####
          Bug fixes\n\n- Avoid applying `.env` files in parent process ([#&#8203;19343](https://redirect.github.com/astral-sh/uv/pull/19343))\n-
          Filter ANSI codes in logging output ([#&#8203;19311](https://redirect.github.com/astral-sh/uv/pull/19311))\n-
          Fix `uv tree` showing extra-conditional deps for packages required without
          extras ([#&#8203;19332](https://redirect.github.com/astral-sh/uv/pull/19332))\n-
          Respect build options (e.g., `--no-build`) during lock validation ([#&#8203;19366](https://redirect.github.com/astral-sh/uv/pull/19366))\n\n###
          [`v0.11.13`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01113)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.12...0.11.13)\n\nReleased
          on 2026-05-10.\n\n##### Bug fixes\n\n- Include data files in editable builds
          ([#&#8203;19312](https://redirect.github.com/astral-sh/uv/pull/19312))\n-
          Respect `--require-hashes` when installing from `pylock.toml` files ([#&#8203;19334](https://redirect.github.com/astral-sh/uv/pull/19334))\n\n#####
          Python\n\n- Add CPython 3.14.5\n\n### [`v0.11.12`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01112)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.11...0.11.12)\n\nReleased
          on 2026-05-08.\n\n##### Python\n\n- Add CPython 3.15.0b1\n\n##### Enhancements\n\n-
          Add `--no-editable` support to `uv pip install` ([#&#8203;19306](https://redirect.github.com/astral-sh/uv/pull/19306))\n-
          Require git refs in URLs to be percent-encoded ([#&#8203;19320](https://redirect.github.com/astral-sh/uv/pull/19320))\n\n#####
          Bug fixes\n\n- Respect `--no-dev` over `UV_DEV=1` ([#&#8203;19313](https://redirect.github.com/astral-sh/uv/pull/19313))\n\n-
          Don't suggest non-existent `--no-frozen` flag ([#&#8203;19290](https://redirect.github.com/astral-sh/uv/issues/19290))
          ([#&#8203;19294](https://redirect.github.com/astral-sh/uv/pull/19294))\n\n#####
          Documentation\n\n- Fix bug from inconsistent workflow name in GHA-PyPI guide
          example ([#&#8203;19309](https://redirect.github.com/astral-sh/uv/pull/19309))\n\n###
          [`v0.11.11`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01111)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.10...0.11.11)\n\nReleased
          on 2026-05-06.\n\n##### Bug fixes\n\n- Accept legacy ID format from pre-0.11.9
          cache entries ([#&#8203;19301](https://redirect.github.com/astral-sh/uv/pull/19301))\n\n###
          [`v0.11.10`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01110)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.9...0.11.10)\n\nReleased
          on 2026-05-05.\n\n##### Bug fixes\n\n- Allow pre-release Python requests
          with non-zero patch versions ([#&#8203;19286](https://redirect.github.com/astral-sh/uv/pull/19286))\n\n###
          [`v0.11.9`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0119)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.8...0.11.9)\n\nReleased
          on 2026-05-04.\n\nThis release includes a special release candidate for
          the next Python 3.14 patch release. Python 3.14 included a new garbage collection
          implementation, which reduced pause times but caused significant unexpected
          memory pressure in production environments. In 3.14.5 and 3.15, the previous
          garbage collection implementation will be restored.\n\nWe would greatly
          appreciate if you tested the 3.14.5rc1 version included in this release.
          The stable version is expected to be released soon and any feedback on potential
          issues would be helpful to the Python development team.\n\nFor more context,
          see the [announcement](https://discuss.python.org/t/reverting-the-incremental-gc-in-python-3-14-and-3-15/107014),
          [issue](https://redirect.github.com/python/cpython/issues/148726), and [pull
          request](https://redirect.github.com/python/cpython/pull/148720).\n\nIssues
          with the new release can be reported in the uv or CPython issue trackers.\n\n#####
          Python\n\n- Upgrade PyPy to v7.3.22\n- Add CPython 3.14.5rc1\n- On macOS,
          CPython statically links `libpython` to match Linux\n\n##### Enhancements\n\n-
          Omit compatible release desugaring for pre-release hints ([#&#8203;19267](https://redirect.github.com/astral-sh/uv/pull/19267))\n-
          Fix file locks on Android ([#&#8203;18323](https://redirect.github.com/astral-sh/uv/pull/18323))\n\n#####
          Preview\n\n- `uv audit` add reporting for adverse project statuses ([#&#8203;19128](https://redirect.github.com/astral-sh/uv/pull/19128))\n\n#####
          Bug fixes\n\n- Discover versioned Python executables when `requires-python`
          pins a version ([#&#8203;18700](https://redirect.github.com/astral-sh/uv/pull/18700))\n-
          Fix URL prefix matching to require path boundaries ([#&#8203;19154](https://redirect.github.com/astral-sh/uv/pull/19154))\n-
          Fix transitive Git path dependencies in lockfiles ([#&#8203;19269](https://redirect.github.com/astral-sh/uv/pull/19269))\n-
          Handle incorrect unlock error in `LockedFile::drop` on Wine ([#&#8203;19229](https://redirect.github.com/astral-sh/uv/pull/19229))\n-
          Prevent uninstalling site-packages for empty `top_level.txt` in `.egg-info`
          ([#&#8203;19114](https://redirect.github.com/astral-sh/uv/pull/19114))\n-
          Use symlinks instead of junctions on Wine ([#&#8203;19213](https://redirect.github.com/astral-sh/uv/pull/19213))\n-
          Fix floating-point environment handling on ARMv7 ([#&#8203;19157](https://redirect.github.com/astral-sh/uv/pull/19157))\n-
          Redact credentials from remote requirements URL in offline errors ([#&#8203;19216](https://redirect.github.com/astral-sh/uv/pull/19216))\n-
          Windows tramplolines no longer set `PYTHONHOME` and only set `__PYVENV_LAUNCHER__`
          for virtual environments ([#&#8203;19199](https://redirect.github.com/astral-sh/uv/pull/19199))\n\n#####
          Documentation\n\n- Mark `--native-tls` and `UV_NATIVE_TLS` as deprecated
          ([#&#8203;18705](https://redirect.github.com/astral-sh/uv/pull/18705))\n-
          Re-add `pytorch-triton-rocm` to PyTorch ROCm docs ([#&#8203;19241](https://redirect.github.com/astral-sh/uv/pull/19241))\n-
          Tweak changelog entries for 0.11.8 ([#&#8203;19188](https://redirect.github.com/astral-sh/uv/pull/19188))\n-
          Add 'Exporting lockfiles' to the Concepts->Projects index ([#&#8203;19209](https://redirect.github.com/astral-sh/uv/pull/19209))\n-
          Clarify that `uv init` creates git files / folders in the projects guide
          ([#&#8203;19183](https://redirect.github.com/astral-sh/uv/pull/19183))\n\n###
          [`v0.11.8`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0118)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.7...0.11.8)\n\nReleased
          on 2026-04-27.\n\n##### Enhancements\n\n- Add `--python-downloads-json-url`
          to `python pin` ([#&#8203;19092](https://redirect.github.com/astral-sh/uv/pull/19092))\n-
          Fetch uv from Astral mirror during self-update ([#&#8203;18682](https://redirect.github.com/astral-sh/uv/pull/18682))\n-
          Support `pip uninstall -y` ([#&#8203;19082](https://redirect.github.com/astral-sh/uv/pull/19082))\n-
          Add `UV_PYTHON_NO_REGISTRY` ([#&#8203;19035](https://redirect.github.com/astral-sh/uv/pull/19035))\n-
          Allow `exclude-newer` to be missing from the lockfile when `exclude-newer-span`
          is present ([#&#8203;19024](https://redirect.github.com/astral-sh/uv/pull/19024))\n-
          Only show the version number in `uv self version --short` ([#&#8203;19019](https://redirect.github.com/astral-sh/uv/pull/19019))\n-
          Silence warnings on empty `SSL_CERT_DIR` directory ([#&#8203;19018](https://redirect.github.com/astral-sh/uv/pull/19018))\n-
          Use a sentinel timestamp for relative `exclude-newer` and `exclude-newer-package`
          values in lockfiles ([#&#8203;19022](https://redirect.github.com/astral-sh/uv/pull/19022),
          [#&#8203;19101](https://redirect.github.com/astral-sh/uv/pull/19101))\n\n#####
          Configuration\n\n- Add an environment variable for `UV_NO_PROJECT` ([#&#8203;19052](https://redirect.github.com/astral-sh/uv/pull/19052))\n-
          Expose `UV_PYTHON_SEARCH_PATH` for Python discovery `PATH` overrides ([#&#8203;19034](https://redirect.github.com/astral-sh/uv/pull/19034))\n\n#####
          Bug fixes\n\n- Add `rust-toolchain.toml` to uv-build sdist ([#&#8203;19131](https://redirect.github.com/astral-sh/uv/pull/19131))\n-
          Ensure uv invocations of git do not inherit repository location environment
          variables ([#&#8203;19088](https://redirect.github.com/astral-sh/uv/pull/19088))\n-
          Redact pre-signed upload URLs in verbose output ([#&#8203;19146](https://redirect.github.com/astral-sh/uv/pull/19146))\n-
          Handle transitive URL dependencies in PEP 517 build requirements ([#&#8203;19076](https://redirect.github.com/astral-sh/uv/pull/19076),
          [#&#8203;19086](https://redirect.github.com/astral-sh/uv/pull/19086))\n-
          Support `uv lock` on a `pyproject.toml` that only contains dependency-groups
          ([#&#8203;19087](https://redirect.github.com/astral-sh/uv/pull/19087))\n-
          Disable transparent Python upgrades in projects when a patch version is
          requested via `.python-version` ([#&#8203;19102](https://redirect.github.com/astral-sh/uv/pull/19102))\n-
          Fix Python variant tagging in the Windows registry ([#&#8203;19012](https://redirect.github.com/astral-sh/uv/pull/19012))\n-
          Use a single codepath for extracting a .tar.zst wheel, disallowing external
          symlinks ([#&#8203;19144](https://redirect.github.com/astral-sh/uv/pull/19144))\n\n#####
          Documentation\n\n- Bump astral-sh/setup-uv version in docs ([#&#8203;19030](https://redirect.github.com/astral-sh/uv/pull/19030))\n-
          Update PyTorch documentation for PyTorch 2.11 ([#&#8203;19095](https://redirect.github.com/astral-sh/uv/pull/19095))\n-
          Remove deprecated license classifiers from uv-build and add Python 3.14
          classifier ([#&#8203;19130](https://redirect.github.com/astral-sh/uv/pull/19130))\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
          At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
          defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
          manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
          conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
          Close this PR and you won't be reminded about this update again.\n\n---\n\n
          - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
          box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
          View the [repository job log](https://developer.mend.io/github/vexxhost/magnum-cluster-api).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjIxOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->\n"
        change_url: https://github.com/vexxhost/magnum-cluster-api/pull/1004
        commit_id: ddcf92356e6798d791ee5d3cb5c28d8ba5c88863
        patchset: ddcf92356e6798d791ee5d3cb5c28d8ba5c88863
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/magnum-cluster-api
          name: vexxhost/magnum-cluster-api
          short_name: magnum-cluster-api
          src_dir: src/github.com/vexxhost/magnum-cluster-api
        src_dir: src/github.com/vexxhost/magnum-cluster-api
        topic: null
      buildset: 0ed56969216b480c84873643afdaaad1
      buildset_refs:
      - branch: main
        change: '1004'
        change_message: "chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.21\n\nThis
          PR contains the following updates:\n\n| Package | Type | Update | Change
          |\n|---|---|---|---|\n| [ghcr.io/astral-sh/uv](https://redirect.github.com/astral-sh/uv)
          | final | patch | `0.11.7` \u2192 `0.11.21` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astral-sh/uv
          (ghcr.io/astral-sh/uv)</summary>\n\n### [`v0.11.21`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01121)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.20...0.11.21)\n\nReleased
          on 2026-06-11.\n\n##### Python\n\n- Add CPython 3.13.14 and 3.14.6 ([#&#8203;19787](https://redirect.github.com/astral-sh/uv/pull/19787))\n\n#####
          Preview features\n\n- Add `environment.root` to `uv workspace metadata --sync`
          ([#&#8203;19760](https://redirect.github.com/astral-sh/uv/pull/19760))\n-
          Allow `uv upgrade` to update a single dependency constraint ([#&#8203;19738](https://redirect.github.com/astral-sh/uv/pull/19738))\n-
          Compute and pass `uv workspace metadata` payload in `ty check` ([#&#8203;19763](https://redirect.github.com/astral-sh/uv/pull/19763))\n-
          Make packaged applications the default for `uv init` ([#&#8203;17841](https://redirect.github.com/astral-sh/uv/pull/17841))\n\n#####
          Performance\n\n- Add parallel discovery of Python versions for `uv python
          list` ([#&#8203;18684](https://redirect.github.com/astral-sh/uv/pull/18684))\n-
          Avoid normalizing source distribution names twice ([#&#8203;19784](https://redirect.github.com/astral-sh/uv/pull/19784))\n\n#####
          Bug fixes\n\n- Improve cache robustness and pruning behavior\n  - Allow
          CI cache pruning without an sdist bucket ([#&#8203;19802](https://redirect.github.com/astral-sh/uv/pull/19802))\n
          \ - Avoid overflow when reading malformed cache entries ([#&#8203;19799](https://redirect.github.com/astral-sh/uv/pull/19799))\n
          \ - Preserve cached Python downloads during cache pruning ([#&#8203;19795](https://redirect.github.com/astral-sh/uv/pull/19795))\n
          \ - Reject running inside the cache ([#&#8203;19659](https://redirect.github.com/astral-sh/uv/pull/19659))\n-
          Fix Python discovery and version request edge cases\n  - Avoid panics for
          Unicode Python version requests ([#&#8203;19797](https://redirect.github.com/astral-sh/uv/pull/19797))\n
          \ - Fix handling of non-critical errors in `uv python list` with path requests
          ([#&#8203;19774](https://redirect.github.com/astral-sh/uv/pull/19774))\n
          \ - Fix stop-discovery-at regression ([#&#8203;19769](https://redirect.github.com/astral-sh/uv/pull/19769))\n-
          Harden parsing and validation for package metadata, requirements, markers,
          URLs, and conflict sets\n  - Allow trailing commas in version specifiers
          ([#&#8203;19806](https://redirect.github.com/astral-sh/uv/pull/19806))\n
          \ - Avoid panics for invalid UTF-8 URL credentials ([#&#8203;19800](https://redirect.github.com/astral-sh/uv/pull/19800))\n
          \ - Avoid panics for malformed source distribution filenames ([#&#8203;19776](https://redirect.github.com/astral-sh/uv/pull/19776))\n
          \ - Avoid panics for trailing extra separators ([#&#8203;19779](https://redirect.github.com/astral-sh/uv/pull/19779))\n
          \ - Avoid stack overflow for recursive requirements path aliases ([#&#8203;19777](https://redirect.github.com/astral-sh/uv/pull/19777))\n
          \ - Ignore reversed string compatible-release markers ([#&#8203;19782](https://redirect.github.com/astral-sh/uv/pull/19782))\n
          \ - Reject duplicate entries in conflict sets ([#&#8203;19801](https://redirect.github.com/astral-sh/uv/pull/19801))\n
          \ - Reject malformed hash options in requirements files ([#&#8203;19783](https://redirect.github.com/astral-sh/uv/pull/19783))\n
          \ - Reject source distribution filenames without a separator ([#&#8203;19803](https://redirect.github.com/astral-sh/uv/pull/19803))\n
          \ - Use UTF-8 lengths for requirement errors ([#&#8203;19781](https://redirect.github.com/astral-sh/uv/pull/19781))\n
          \ - Use UTF-8 lengths for trailing marker errors ([#&#8203;19796](https://redirect.github.com/astral-sh/uv/pull/19796))\n
          \ - Use byte offsets when peeking over requirements ([#&#8203;19780](https://redirect.github.com/astral-sh/uv/pull/19780))\n
          \ - Validate GraalPy ABI suffixes ([#&#8203;19805](https://redirect.github.com/astral-sh/uv/pull/19805))\n-
          Improve wheel entry-point error handling and virtual environment activation
          quoting\n  - Propagate errors when reading wheel entry points ([#&#8203;19794](https://redirect.github.com/astral-sh/uv/pull/19794))\n
          \ - Quote virtual environment activation paths with shell metacharacters
          ([#&#8203;19798](https://redirect.github.com/astral-sh/uv/pull/19798))\n\n###
          [`v0.11.20`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01120)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.19...0.11.20)\n\nReleased
          on 2026-06-10.\n\n##### Enhancements\n\n- Add `--emit-index-url` and `--emit-find-links`
          to `uv export` ([#&#8203;18370](https://redirect.github.com/astral-sh/uv/pull/18370))\n-
          Add `--find-links` support for `uv pip list` ([#&#8203;16103](https://redirect.github.com/astral-sh/uv/pull/16103))\n-
          Group executable install errors during `uv python install` ([#&#8203;19691](https://redirect.github.com/astral-sh/uv/pull/19691))\n-
          Use ICF in macOS release builds to reduce binary sizes ([#&#8203;19615](https://redirect.github.com/astral-sh/uv/pull/19615))\n\n#####
          Preview features\n\n- Add initial hidden `uv upgrade` command ([#&#8203;19678](https://redirect.github.com/astral-sh/uv/pull/19678))\n-
          Reject Git revisions in `uv upgrade` ([#&#8203;19742](https://redirect.github.com/astral-sh/uv/pull/19742))\n\n#####
          Configuration\n\n- Recognize `UV_NO_INSTALL_PROJECT`, `UV_NO_INSTALL_WORKSPACE`,
          `UV_NO_INSTALL_LOCAL` ([#&#8203;19323](https://redirect.github.com/astral-sh/uv/pull/19323))\n\n#####
          Performance\n\n- Speed up discovery of large workspaces ([#&#8203;18311](https://redirect.github.com/astral-sh/uv/pull/18311))\n\n#####
          Bug fixes\n\n- Allow unknown preview flags with a warning again ([#&#8203;19669](https://redirect.github.com/astral-sh/uv/pull/19669))\n-
          Apply dependency exclusions to direct requirements ([#&#8203;19699](https://redirect.github.com/astral-sh/uv/pull/19699))\n-
          Avoid following external symlinks during cache clean ([#&#8203;19682](https://redirect.github.com/astral-sh/uv/pull/19682))\n-
          Avoid following symlinks during cache prune ([#&#8203;19543](https://redirect.github.com/astral-sh/uv/pull/19543))\n-
          Fix Git cache keys for worktrees and packed refs ([#&#8203;19706](https://redirect.github.com/astral-sh/uv/pull/19706))\n-
          Make resolver error handling iterative to avoid stack overflows ([#&#8203;19695](https://redirect.github.com/astral-sh/uv/pull/19695))\n-
          Pass `VIRTUAL_ENV` through `cygpath` inside `fish` on Windows ([#&#8203;19703](https://redirect.github.com/astral-sh/uv/pull/19703))\n-
          Rebuild explicit local directory tool installs ([#&#8203;19591](https://redirect.github.com/astral-sh/uv/pull/19591))\n-
          Validate egg top-level entries as identifiers ([#&#8203;19679](https://redirect.github.com/astral-sh/uv/pull/19679))\n\n#####
          Documentation\n\n- Document `--find-links` caching behavior ([#&#8203;19585](https://redirect.github.com/astral-sh/uv/pull/19585))\n-
          Add a small section for malware checks ([#&#8203;19680](https://redirect.github.com/astral-sh/uv/pull/19680))\n\n###
          [`v0.11.19`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01119)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.18...0.11.19)\n\nReleased
          on 2026-06-03.\n\n##### Python\n\n- Add CPython 3.15.0b2 ([#&#8203;19531](https://redirect.github.com/astral-sh/uv/pull/19531))\n\n#####
          Enhancements\n\n- Always compute SHA256 for remote distributions ([#&#8203;19662](https://redirect.github.com/astral-sh/uv/pull/19662))\n-
          Add PyEmscripten platform (PEP 783) ([#&#8203;19629](https://redirect.github.com/astral-sh/uv/pull/19629))\n-
          Add Pyodide 2025 target triple ([#&#8203;19653](https://redirect.github.com/astral-sh/uv/pull/19653))\n\n#####
          Preview features\n\n- Make preview features for commands have names that
          aren't ambiguous with the command ([#&#8203;19645](https://redirect.github.com/astral-sh/uv/pull/19645))\n-
          Respect `--isolated` in `uv check` ([#&#8203;19666](https://redirect.github.com/astral-sh/uv/pull/19666))\n\n#####
          Bug fixes\n\n- Continue tool uninstall after dangling receipts ([#&#8203;19623](https://redirect.github.com/astral-sh/uv/pull/19623))\n-
          Skip Unix-specific installation steps when cross-installing Windows Python
          distributions ([#&#8203;19424](https://redirect.github.com/astral-sh/uv/pull/19424))\n\n###
          [`v0.11.18`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01118)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.17...0.11.18)\n\nReleased
          on 2026-06-01.\n\n##### Performance\n\n- Fix performance regression in unzip
          of local wheels ([#&#8203;19637](https://redirect.github.com/astral-sh/uv/pull/19637))\n\n#####
          Preview\n\n- Add `uv check` to run `ty` from uv ([#&#8203;19605](https://redirect.github.com/astral-sh/uv/pull/19605))\n\n#####
          Bug fixes\n\n- Update activation scripts with upstream fixes ([#&#8203;19628](https://redirect.github.com/astral-sh/uv/pull/19628))\n\n#####
          Other changes\n\n- Bump MSRV to 1.94 ([#&#8203;19600](https://redirect.github.com/astral-sh/uv/pull/19600))\n\n###
          [`v0.11.17`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01117)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.16...0.11.17)\n\nReleased
          on 2026-05-28.\n\n##### Enhancements\n\n- Add a diagnostic for `uv add`
          with standard library modules ([#&#8203;19572](https://redirect.github.com/astral-sh/uv/pull/19572))\n-
          Expose `uv workspace` and its `list` subcommand in help output ([#&#8203;19533](https://redirect.github.com/astral-sh/uv/pull/19533))\n-
          Improve the \"403 forbidden\" hint to suggest `ignore-error-codes` when
          applicable ([#&#8203;19521](https://redirect.github.com/astral-sh/uv/pull/19521))\n-
          Skip direct URL lock freshness checks while offline ([#&#8203;19596](https://redirect.github.com/astral-sh/uv/pull/19596))\n-
          Add `import-names` and `import-namespaces` support to `uv-build` ([PEP 794](https://peps.python.org/pep-0794/))
          ([#&#8203;19380](https://redirect.github.com/astral-sh/uv/pull/19380))\n-
          Add a `--no-editable-package` flag to various commands ([#&#8203;19584](https://redirect.github.com/astral-sh/uv/pull/19584))\n-
          Infer Python version requests from source trees in `uv tool` invocations
          ([#&#8203;19577](https://redirect.github.com/astral-sh/uv/pull/19577))\n\n#####
          Preview features\n\n- Add module owners to `uv workspace metadata` ([#&#8203;19122](https://redirect.github.com/astral-sh/uv/pull/19122))\n-
          Do not allow `uv venv --clear` to remove non-virtual environments ([#&#8203;19595](https://redirect.github.com/astral-sh/uv/pull/19595))\n\n#####
          Bug fixes\n\n- Improve the performance of large entries in `tool.uv.conflicts`
          ([#&#8203;19538](https://redirect.github.com/astral-sh/uv/pull/19538))\n-
          Avoid modifying the parent process' env with `--env-file` in `uv run` ([#&#8203;19567](https://redirect.github.com/astral-sh/uv/pull/19567))\n-
          Fix script environment creation for scripts with long filenames ([#&#8203;19539](https://redirect.github.com/astral-sh/uv/pull/19539))\n-
          Fix transitive Git archive dependencies in lockfiles ([#&#8203;19589](https://redirect.github.com/astral-sh/uv/pull/19589))\n-
          Preserve Git repository URLs in direct URL metadata ([#&#8203;19590](https://redirect.github.com/astral-sh/uv/pull/19590))\n-
          Support redirects in `--check-url` ([#&#8203;19594](https://redirect.github.com/astral-sh/uv/pull/19594))\n-
          Accept case-insensitive HTML tags in `--find-links` parsing ([#&#8203;19537](https://redirect.github.com/astral-sh/uv/pull/19537))\n-
          Reject duplicate script metadata blocks ([#&#8203;19544](https://redirect.github.com/astral-sh/uv/pull/19544))\n-
          Ban names like \"python3\" as script entry points ([#&#8203;19535](https://redirect.github.com/astral-sh/uv/pull/19535),
          [#&#8203;19536](https://redirect.github.com/astral-sh/uv/pull/19536))\n-
          Validate Git LFS artifacts for Git archives ([#&#8203;19592](https://redirect.github.com/astral-sh/uv/pull/19592))\n-
          Use a relative path when creating symlinks in cache to improve relocatability
          ([#&#8203;19033](https://redirect.github.com/astral-sh/uv/pull/19033))\n\n#####
          Documentation\n\n- Fix malformed positional anchors in the CLI reference
          ([#&#8203;19575](https://redirect.github.com/astral-sh/uv/pull/19575))\n\n###
          [`v0.11.16`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01116)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.15...0.11.16)\n\nReleased
          on 2026-05-21.\n\n##### Enhancements\n\n- Add support for direct archive
          dependencies in Git ([#&#8203;10072](https://redirect.github.com/astral-sh/uv/pull/10072))\n-
          Adjust hint rendering ([#&#8203;18090](https://redirect.github.com/astral-sh/uv/pull/18090))\n\n#####
          Preview features\n\n- uv audit: specialize malformed OSV error ([#&#8203;19515](https://redirect.github.com/astral-sh/uv/pull/19515))\n-
          Reject locked malware installations ([#&#8203;18936](https://redirect.github.com/astral-sh/uv/pull/18936))\n\n#####
          Configuration\n\n- Allow disabling reading the system config with `UV_NO_SYSTEM_CONFIG`
          ([#&#8203;19476](https://redirect.github.com/astral-sh/uv/pull/19476))\n\n#####
          Bug fixes\n\n- Allow environment variables that take a list to be empty
          ([#&#8203;19503](https://redirect.github.com/astral-sh/uv/pull/19503))\n-
          Ensure that incompatible wheel hints do not leak secrets ([#&#8203;19504](https://redirect.github.com/astral-sh/uv/pull/19504))\n-
          Reject unsafe entry points in `uv-build` ([#&#8203;19495](https://redirect.github.com/astral-sh/uv/pull/19495))\n-
          Restrict delimiters in entry point parsing ([#&#8203;19471](https://redirect.github.com/astral-sh/uv/pull/19471))\n-
          uv-netrc: fix multi-word no-space comment lines causing parse errors ([#&#8203;19494](https://redirect.github.com/astral-sh/uv/pull/19494))\n\n#####
          Documentation\n\n- Document and test relative exclude-newer support for
          uv pip ([#&#8203;19475](https://redirect.github.com/astral-sh/uv/pull/19475))\n\n###
          [`v0.11.15`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01115)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.14...0.11.15)\n\nReleased
          on 2026-05-18.\n\n##### Security\n\n- Fix a TAR partial differential, see
          [GHSA-3cv2-h65g-fgmm](https://redirect.github.com/astral-sh/tokio-tar/security/advisories/GHSA-3cv2-h65g-fgmm)
          ([#&#8203;19463](https://redirect.github.com/astral-sh/uv/pull/19463))\n-
          Enforce that entry points cannot escape in the scripts directory, see [GHSA-4gg8-gxpx-9rph](https://redirect.github.com/astral-sh/tokio-tar/security/advisories/GHSA-4gg8-gxpx-9rph)
          ([#&#8203;19464](https://redirect.github.com/astral-sh/uv/pull/19464))\n\n#####
          Enhancements\n\n- Add TOML v1.1 -> v1.0 backwards compatibility for source
          distributions ([#&#8203;18741](https://redirect.github.com/astral-sh/uv/pull/18741))\n-
          Add support for Azure request signing ([#&#8203;19421](https://redirect.github.com/astral-sh/uv/pull/19421))\n-
          Apply stricter validation to all wheel filename segments ([#&#8203;19364](https://redirect.github.com/astral-sh/uv/pull/19364))\n-
          Reject empty strings as an invalid package name ([#&#8203;19435](https://redirect.github.com/astral-sh/uv/pull/19435))\n-
          Use structured errors for signing authentication failures ([#&#8203;19422](https://redirect.github.com/astral-sh/uv/pull/19422))\n\n#####
          Preview\n\n- uv audit: Add JSON output ([#&#8203;19305](https://redirect.github.com/astral-sh/uv/pull/19305))\n\n#####
          Configuration\n\n- Respect `required-environments` in `uv pip compile` ([#&#8203;19378](https://redirect.github.com/astral-sh/uv/pull/19378))\n\n#####
          Performance\n\n- Avoid parsing JSON manifest when local Python is available
          ([#&#8203;19398](https://redirect.github.com/astral-sh/uv/pull/19398))\n-
          Avoid walking nested directories in linker conflict registration ([#&#8203;19382](https://redirect.github.com/astral-sh/uv/pull/19382))\n-
          Optimize async wheel ZIP writing ([#&#8203;19383](https://redirect.github.com/astral-sh/uv/pull/19383))\n-
          Fix dead \"already trimmed\" fast-path in `Version::only_release_trimmed`
          ([#&#8203;19425](https://redirect.github.com/astral-sh/uv/pull/19425))\n\n#####
          Bug fixes\n\n- Apply workspace-member `[tool.uv.sources]` credentials under
          `uv sync --frozen` ([#&#8203;19423](https://redirect.github.com/astral-sh/uv/pull/19423))\n-
          Skip empty directories in uv build outputs ([#&#8203;19437](https://redirect.github.com/astral-sh/uv/pull/19437))\n-
          Fix Git submodule handling when using relative paths ([#&#8203;12156](https://redirect.github.com/astral-sh/uv/pull/12156))\n-
          Fix line number reporting in netrc parsing ([#&#8203;19452](https://redirect.github.com/astral-sh/uv/pull/19452))\n\n#####
          Documentation\n\n- Move Bazel auth helper setup into integration guide ([#&#8203;19392](https://redirect.github.com/astral-sh/uv/pull/19392))\n\n###
          [`v0.11.14`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01114)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.13...0.11.14)\n\nReleased
          on 2026-05-12.\n\n##### Enhancements\n\n- Add Astral mirror URL override
          ([#&#8203;19206](https://redirect.github.com/astral-sh/uv/pull/19206))\n-
          Ignore `top_level.txt` entries in uninstall that are not valid Python identifiers
          ([#&#8203;19340](https://redirect.github.com/astral-sh/uv/pull/19340))\n\n#####
          Bug fixes\n\n- Avoid applying `.env` files in parent process ([#&#8203;19343](https://redirect.github.com/astral-sh/uv/pull/19343))\n-
          Filter ANSI codes in logging output ([#&#8203;19311](https://redirect.github.com/astral-sh/uv/pull/19311))\n-
          Fix `uv tree` showing extra-conditional deps for packages required without
          extras ([#&#8203;19332](https://redirect.github.com/astral-sh/uv/pull/19332))\n-
          Respect build options (e.g., `--no-build`) during lock validation ([#&#8203;19366](https://redirect.github.com/astral-sh/uv/pull/19366))\n\n###
          [`v0.11.13`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01113)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.12...0.11.13)\n\nReleased
          on 2026-05-10.\n\n##### Bug fixes\n\n- Include data files in editable builds
          ([#&#8203;19312](https://redirect.github.com/astral-sh/uv/pull/19312))\n-
          Respect `--require-hashes` when installing from `pylock.toml` files ([#&#8203;19334](https://redirect.github.com/astral-sh/uv/pull/19334))\n\n#####
          Python\n\n- Add CPython 3.14.5\n\n### [`v0.11.12`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01112)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.11...0.11.12)\n\nReleased
          on 2026-05-08.\n\n##### Python\n\n- Add CPython 3.15.0b1\n\n##### Enhancements\n\n-
          Add `--no-editable` support to `uv pip install` ([#&#8203;19306](https://redirect.github.com/astral-sh/uv/pull/19306))\n-
          Require git refs in URLs to be percent-encoded ([#&#8203;19320](https://redirect.github.com/astral-sh/uv/pull/19320))\n\n#####
          Bug fixes\n\n- Respect `--no-dev` over `UV_DEV=1` ([#&#8203;19313](https://redirect.github.com/astral-sh/uv/pull/19313))\n\n-
          Don't suggest non-existent `--no-frozen` flag ([#&#8203;19290](https://redirect.github.com/astral-sh/uv/issues/19290))
          ([#&#8203;19294](https://redirect.github.com/astral-sh/uv/pull/19294))\n\n#####
          Documentation\n\n- Fix bug from inconsistent workflow name in GHA-PyPI guide
          example ([#&#8203;19309](https://redirect.github.com/astral-sh/uv/pull/19309))\n\n###
          [`v0.11.11`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01111)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.10...0.11.11)\n\nReleased
          on 2026-05-06.\n\n##### Bug fixes\n\n- Accept legacy ID format from pre-0.11.9
          cache entries ([#&#8203;19301](https://redirect.github.com/astral-sh/uv/pull/19301))\n\n###
          [`v0.11.10`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01110)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.9...0.11.10)\n\nReleased
          on 2026-05-05.\n\n##### Bug fixes\n\n- Allow pre-release Python requests
          with non-zero patch versions ([#&#8203;19286](https://redirect.github.com/astral-sh/uv/pull/19286))\n\n###
          [`v0.11.9`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0119)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.8...0.11.9)\n\nReleased
          on 2026-05-04.\n\nThis release includes a special release candidate for
          the next Python 3.14 patch release. Python 3.14 included a new garbage collection
          implementation, which reduced pause times but caused significant unexpected
          memory pressure in production environments. In 3.14.5 and 3.15, the previous
          garbage collection implementation will be restored.\n\nWe would greatly
          appreciate if you tested the 3.14.5rc1 version included in this release.
          The stable version is expected to be released soon and any feedback on potential
          issues would be helpful to the Python development team.\n\nFor more context,
          see the [announcement](https://discuss.python.org/t/reverting-the-incremental-gc-in-python-3-14-and-3-15/107014),
          [issue](https://redirect.github.com/python/cpython/issues/148726), and [pull
          request](https://redirect.github.com/python/cpython/pull/148720).\n\nIssues
          with the new release can be reported in the uv or CPython issue trackers.\n\n#####
          Python\n\n- Upgrade PyPy to v7.3.22\n- Add CPython 3.14.5rc1\n- On macOS,
          CPython statically links `libpython` to match Linux\n\n##### Enhancements\n\n-
          Omit compatible release desugaring for pre-release hints ([#&#8203;19267](https://redirect.github.com/astral-sh/uv/pull/19267))\n-
          Fix file locks on Android ([#&#8203;18323](https://redirect.github.com/astral-sh/uv/pull/18323))\n\n#####
          Preview\n\n- `uv audit` add reporting for adverse project statuses ([#&#8203;19128](https://redirect.github.com/astral-sh/uv/pull/19128))\n\n#####
          Bug fixes\n\n- Discover versioned Python executables when `requires-python`
          pins a version ([#&#8203;18700](https://redirect.github.com/astral-sh/uv/pull/18700))\n-
          Fix URL prefix matching to require path boundaries ([#&#8203;19154](https://redirect.github.com/astral-sh/uv/pull/19154))\n-
          Fix transitive Git path dependencies in lockfiles ([#&#8203;19269](https://redirect.github.com/astral-sh/uv/pull/19269))\n-
          Handle incorrect unlock error in `LockedFile::drop` on Wine ([#&#8203;19229](https://redirect.github.com/astral-sh/uv/pull/19229))\n-
          Prevent uninstalling site-packages for empty `top_level.txt` in `.egg-info`
          ([#&#8203;19114](https://redirect.github.com/astral-sh/uv/pull/19114))\n-
          Use symlinks instead of junctions on Wine ([#&#8203;19213](https://redirect.github.com/astral-sh/uv/pull/19213))\n-
          Fix floating-point environment handling on ARMv7 ([#&#8203;19157](https://redirect.github.com/astral-sh/uv/pull/19157))\n-
          Redact credentials from remote requirements URL in offline errors ([#&#8203;19216](https://redirect.github.com/astral-sh/uv/pull/19216))\n-
          Windows tramplolines no longer set `PYTHONHOME` and only set `__PYVENV_LAUNCHER__`
          for virtual environments ([#&#8203;19199](https://redirect.github.com/astral-sh/uv/pull/19199))\n\n#####
          Documentation\n\n- Mark `--native-tls` and `UV_NATIVE_TLS` as deprecated
          ([#&#8203;18705](https://redirect.github.com/astral-sh/uv/pull/18705))\n-
          Re-add `pytorch-triton-rocm` to PyTorch ROCm docs ([#&#8203;19241](https://redirect.github.com/astral-sh/uv/pull/19241))\n-
          Tweak changelog entries for 0.11.8 ([#&#8203;19188](https://redirect.github.com/astral-sh/uv/pull/19188))\n-
          Add 'Exporting lockfiles' to the Concepts->Projects index ([#&#8203;19209](https://redirect.github.com/astral-sh/uv/pull/19209))\n-
          Clarify that `uv init` creates git files / folders in the projects guide
          ([#&#8203;19183](https://redirect.github.com/astral-sh/uv/pull/19183))\n\n###
          [`v0.11.8`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0118)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.7...0.11.8)\n\nReleased
          on 2026-04-27.\n\n##### Enhancements\n\n- Add `--python-downloads-json-url`
          to `python pin` ([#&#8203;19092](https://redirect.github.com/astral-sh/uv/pull/19092))\n-
          Fetch uv from Astral mirror during self-update ([#&#8203;18682](https://redirect.github.com/astral-sh/uv/pull/18682))\n-
          Support `pip uninstall -y` ([#&#8203;19082](https://redirect.github.com/astral-sh/uv/pull/19082))\n-
          Add `UV_PYTHON_NO_REGISTRY` ([#&#8203;19035](https://redirect.github.com/astral-sh/uv/pull/19035))\n-
          Allow `exclude-newer` to be missing from the lockfile when `exclude-newer-span`
          is present ([#&#8203;19024](https://redirect.github.com/astral-sh/uv/pull/19024))\n-
          Only show the version number in `uv self version --short` ([#&#8203;19019](https://redirect.github.com/astral-sh/uv/pull/19019))\n-
          Silence warnings on empty `SSL_CERT_DIR` directory ([#&#8203;19018](https://redirect.github.com/astral-sh/uv/pull/19018))\n-
          Use a sentinel timestamp for relative `exclude-newer` and `exclude-newer-package`
          values in lockfiles ([#&#8203;19022](https://redirect.github.com/astral-sh/uv/pull/19022),
          [#&#8203;19101](https://redirect.github.com/astral-sh/uv/pull/19101))\n\n#####
          Configuration\n\n- Add an environment variable for `UV_NO_PROJECT` ([#&#8203;19052](https://redirect.github.com/astral-sh/uv/pull/19052))\n-
          Expose `UV_PYTHON_SEARCH_PATH` for Python discovery `PATH` overrides ([#&#8203;19034](https://redirect.github.com/astral-sh/uv/pull/19034))\n\n#####
          Bug fixes\n\n- Add `rust-toolchain.toml` to uv-build sdist ([#&#8203;19131](https://redirect.github.com/astral-sh/uv/pull/19131))\n-
          Ensure uv invocations of git do not inherit repository location environment
          variables ([#&#8203;19088](https://redirect.github.com/astral-sh/uv/pull/19088))\n-
          Redact pre-signed upload URLs in verbose output ([#&#8203;19146](https://redirect.github.com/astral-sh/uv/pull/19146))\n-
          Handle transitive URL dependencies in PEP 517 build requirements ([#&#8203;19076](https://redirect.github.com/astral-sh/uv/pull/19076),
          [#&#8203;19086](https://redirect.github.com/astral-sh/uv/pull/19086))\n-
          Support `uv lock` on a `pyproject.toml` that only contains dependency-groups
          ([#&#8203;19087](https://redirect.github.com/astral-sh/uv/pull/19087))\n-
          Disable transparent Python upgrades in projects when a patch version is
          requested via `.python-version` ([#&#8203;19102](https://redirect.github.com/astral-sh/uv/pull/19102))\n-
          Fix Python variant tagging in the Windows registry ([#&#8203;19012](https://redirect.github.com/astral-sh/uv/pull/19012))\n-
          Use a single codepath for extracting a .tar.zst wheel, disallowing external
          symlinks ([#&#8203;19144](https://redirect.github.com/astral-sh/uv/pull/19144))\n\n#####
          Documentation\n\n- Bump astral-sh/setup-uv version in docs ([#&#8203;19030](https://redirect.github.com/astral-sh/uv/pull/19030))\n-
          Update PyTorch documentation for PyTorch 2.11 ([#&#8203;19095](https://redirect.github.com/astral-sh/uv/pull/19095))\n-
          Remove deprecated license classifiers from uv-build and add Python 3.14
          classifier ([#&#8203;19130](https://redirect.github.com/astral-sh/uv/pull/19130))\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
          At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
          defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
          manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
          conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
          Close this PR and you won't be reminded about this update again.\n\n---\n\n
          - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
          box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
          View the [repository job log](https://developer.mend.io/github/vexxhost/magnum-cluster-api).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjIxOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->\n"
        change_url: https://github.com/vexxhost/magnum-cluster-api/pull/1004
        commit_id: ddcf92356e6798d791ee5d3cb5c28d8ba5c88863
        patchset: ddcf92356e6798d791ee5d3cb5c28d8ba5c88863
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/magnum-cluster-api
          name: vexxhost/magnum-cluster-api
          short_name: magnum-cluster-api
          src_dir: src/github.com/vexxhost/magnum-cluster-api
        src_dir: src/github.com/vexxhost/magnum-cluster-api
        topic: null
      change: '1004'
      change_message: "chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.21\n\nThis
        PR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|
        [ghcr.io/astral-sh/uv](https://redirect.github.com/astral-sh/uv) | final |
        patch | `0.11.7` \u2192 `0.11.21` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astral-sh/uv
        (ghcr.io/astral-sh/uv)</summary>\n\n### [`v0.11.21`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01121)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.11.20...0.11.21)\n\nReleased
        on 2026-06-11.\n\n##### Python\n\n- Add CPython 3.13.14 and 3.14.6 ([#&#8203;19787](https://redirect.github.com/astral-sh/uv/pull/19787))\n\n#####
        Preview features\n\n- Add `environment.root` to `uv workspace metadata --sync`
        ([#&#8203;19760](https://redirect.github.com/astral-sh/uv/pull/19760))\n-
        Allow `uv upgrade` to update a single dependency constraint ([#&#8203;19738](https://redirect.github.com/astral-sh/uv/pull/19738))\n-
        Compute and pass `uv workspace metadata` payload in `ty check` ([#&#8203;19763](https://redirect.github.com/astral-sh/uv/pull/19763))\n-
        Make packaged applications the default for `uv init` ([#&#8203;17841](https://redirect.github.com/astral-sh/uv/pull/17841))\n\n#####
        Performance\n\n- Add parallel discovery of Python versions for `uv python
        list` ([#&#8203;18684](https://redirect.github.com/astral-sh/uv/pull/18684))\n-
        Avoid normalizing source distribution names twice ([#&#8203;19784](https://redirect.github.com/astral-sh/uv/pull/19784))\n\n#####
        Bug fixes\n\n- Improve cache robustness and pruning behavior\n  - Allow CI
        cache pruning without an sdist bucket ([#&#8203;19802](https://redirect.github.com/astral-sh/uv/pull/19802))\n
        \ - Avoid overflow when reading malformed cache entries ([#&#8203;19799](https://redirect.github.com/astral-sh/uv/pull/19799))\n
        \ - Preserve cached Python downloads during cache pruning ([#&#8203;19795](https://redirect.github.com/astral-sh/uv/pull/19795))\n
        \ - Reject running inside the cache ([#&#8203;19659](https://redirect.github.com/astral-sh/uv/pull/19659))\n-
        Fix Python discovery and version request edge cases\n  - Avoid panics for
        Unicode Python version requests ([#&#8203;19797](https://redirect.github.com/astral-sh/uv/pull/19797))\n
        \ - Fix handling of non-critical errors in `uv python list` with path requests
        ([#&#8203;19774](https://redirect.github.com/astral-sh/uv/pull/19774))\n  -
        Fix stop-discovery-at regression ([#&#8203;19769](https://redirect.github.com/astral-sh/uv/pull/19769))\n-
        Harden parsing and validation for package metadata, requirements, markers,
        URLs, and conflict sets\n  - Allow trailing commas in version specifiers ([#&#8203;19806](https://redirect.github.com/astral-sh/uv/pull/19806))\n
        \ - Avoid panics for invalid UTF-8 URL credentials ([#&#8203;19800](https://redirect.github.com/astral-sh/uv/pull/19800))\n
        \ - Avoid panics for malformed source distribution filenames ([#&#8203;19776](https://redirect.github.com/astral-sh/uv/pull/19776))\n
        \ - Avoid panics for trailing extra separators ([#&#8203;19779](https://redirect.github.com/astral-sh/uv/pull/19779))\n
        \ - Avoid stack overflow for recursive requirements path aliases ([#&#8203;19777](https://redirect.github.com/astral-sh/uv/pull/19777))\n
        \ - Ignore reversed string compatible-release markers ([#&#8203;19782](https://redirect.github.com/astral-sh/uv/pull/19782))\n
        \ - Reject duplicate entries in conflict sets ([#&#8203;19801](https://redirect.github.com/astral-sh/uv/pull/19801))\n
        \ - Reject malformed hash options in requirements files ([#&#8203;19783](https://redirect.github.com/astral-sh/uv/pull/19783))\n
        \ - Reject source distribution filenames without a separator ([#&#8203;19803](https://redirect.github.com/astral-sh/uv/pull/19803))\n
        \ - Use UTF-8 lengths for requirement errors ([#&#8203;19781](https://redirect.github.com/astral-sh/uv/pull/19781))\n
        \ - Use UTF-8 lengths for trailing marker errors ([#&#8203;19796](https://redirect.github.com/astral-sh/uv/pull/19796))\n
        \ - Use byte offsets when peeking over requirements ([#&#8203;19780](https://redirect.github.com/astral-sh/uv/pull/19780))\n
        \ - Validate GraalPy ABI suffixes ([#&#8203;19805](https://redirect.github.com/astral-sh/uv/pull/19805))\n-
        Improve wheel entry-point error handling and virtual environment activation
        quoting\n  - Propagate errors when reading wheel entry points ([#&#8203;19794](https://redirect.github.com/astral-sh/uv/pull/19794))\n
        \ - Quote virtual environment activation paths with shell metacharacters ([#&#8203;19798](https://redirect.github.com/astral-sh/uv/pull/19798))\n\n###
        [`v0.11.20`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01120)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.11.19...0.11.20)\n\nReleased
        on 2026-06-10.\n\n##### Enhancements\n\n- Add `--emit-index-url` and `--emit-find-links`
        to `uv export` ([#&#8203;18370](https://redirect.github.com/astral-sh/uv/pull/18370))\n-
        Add `--find-links` support for `uv pip list` ([#&#8203;16103](https://redirect.github.com/astral-sh/uv/pull/16103))\n-
        Group executable install errors during `uv python install` ([#&#8203;19691](https://redirect.github.com/astral-sh/uv/pull/19691))\n-
        Use ICF in macOS release builds to reduce binary sizes ([#&#8203;19615](https://redirect.github.com/astral-sh/uv/pull/19615))\n\n#####
        Preview features\n\n- Add initial hidden `uv upgrade` command ([#&#8203;19678](https://redirect.github.com/astral-sh/uv/pull/19678))\n-
        Reject Git revisions in `uv upgrade` ([#&#8203;19742](https://redirect.github.com/astral-sh/uv/pull/19742))\n\n#####
        Configuration\n\n- Recognize `UV_NO_INSTALL_PROJECT`, `UV_NO_INSTALL_WORKSPACE`,
        `UV_NO_INSTALL_LOCAL` ([#&#8203;19323](https://redirect.github.com/astral-sh/uv/pull/19323))\n\n#####
        Performance\n\n- Speed up discovery of large workspaces ([#&#8203;18311](https://redirect.github.com/astral-sh/uv/pull/18311))\n\n#####
        Bug fixes\n\n- Allow unknown preview flags with a warning again ([#&#8203;19669](https://redirect.github.com/astral-sh/uv/pull/19669))\n-
        Apply dependency exclusions to direct requirements ([#&#8203;19699](https://redirect.github.com/astral-sh/uv/pull/19699))\n-
        Avoid following external symlinks during cache clean ([#&#8203;19682](https://redirect.github.com/astral-sh/uv/pull/19682))\n-
        Avoid following symlinks during cache prune ([#&#8203;19543](https://redirect.github.com/astral-sh/uv/pull/19543))\n-
        Fix Git cache keys for worktrees and packed refs ([#&#8203;19706](https://redirect.github.com/astral-sh/uv/pull/19706))\n-
        Make resolver error handling iterative to avoid stack overflows ([#&#8203;19695](https://redirect.github.com/astral-sh/uv/pull/19695))\n-
        Pass `VIRTUAL_ENV` through `cygpath` inside `fish` on Windows ([#&#8203;19703](https://redirect.github.com/astral-sh/uv/pull/19703))\n-
        Rebuild explicit local directory tool installs ([#&#8203;19591](https://redirect.github.com/astral-sh/uv/pull/19591))\n-
        Validate egg top-level entries as identifiers ([#&#8203;19679](https://redirect.github.com/astral-sh/uv/pull/19679))\n\n#####
        Documentation\n\n- Document `--find-links` caching behavior ([#&#8203;19585](https://redirect.github.com/astral-sh/uv/pull/19585))\n-
        Add a small section for malware checks ([#&#8203;19680](https://redirect.github.com/astral-sh/uv/pull/19680))\n\n###
        [`v0.11.19`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01119)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.11.18...0.11.19)\n\nReleased
        on 2026-06-03.\n\n##### Python\n\n- Add CPython 3.15.0b2 ([#&#8203;19531](https://redirect.github.com/astral-sh/uv/pull/19531))\n\n#####
        Enhancements\n\n- Always compute SHA256 for remote distributions ([#&#8203;19662](https://redirect.github.com/astral-sh/uv/pull/19662))\n-
        Add PyEmscripten platform (PEP 783) ([#&#8203;19629](https://redirect.github.com/astral-sh/uv/pull/19629))\n-
        Add Pyodide 2025 target triple ([#&#8203;19653](https://redirect.github.com/astral-sh/uv/pull/19653))\n\n#####
        Preview features\n\n- Make preview features for commands have names that aren't
        ambiguous with the command ([#&#8203;19645](https://redirect.github.com/astral-sh/uv/pull/19645))\n-
        Respect `--isolated` in `uv check` ([#&#8203;19666](https://redirect.github.com/astral-sh/uv/pull/19666))\n\n#####
        Bug fixes\n\n- Continue tool uninstall after dangling receipts ([#&#8203;19623](https://redirect.github.com/astral-sh/uv/pull/19623))\n-
        Skip Unix-specific installation steps when cross-installing Windows Python
        distributions ([#&#8203;19424](https://redirect.github.com/astral-sh/uv/pull/19424))\n\n###
        [`v0.11.18`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01118)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.11.17...0.11.18)\n\nReleased
        on 2026-06-01.\n\n##### Performance\n\n- Fix performance regression in unzip
        of local wheels ([#&#8203;19637](https://redirect.github.com/astral-sh/uv/pull/19637))\n\n#####
        Preview\n\n- Add `uv check` to run `ty` from uv ([#&#8203;19605](https://redirect.github.com/astral-sh/uv/pull/19605))\n\n#####
        Bug fixes\n\n- Update activation scripts with upstream fixes ([#&#8203;19628](https://redirect.github.com/astral-sh/uv/pull/19628))\n\n#####
        Other changes\n\n- Bump MSRV to 1.94 ([#&#8203;19600](https://redirect.github.com/astral-sh/uv/pull/19600))\n\n###
        [`v0.11.17`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01117)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.11.16...0.11.17)\n\nReleased
        on 2026-05-28.\n\n##### Enhancements\n\n- Add a diagnostic for `uv add` with
        standard library modules ([#&#8203;19572](https://redirect.github.com/astral-sh/uv/pull/19572))\n-
        Expose `uv workspace` and its `list` subcommand in help output ([#&#8203;19533](https://redirect.github.com/astral-sh/uv/pull/19533))\n-
        Improve the \"403 forbidden\" hint to suggest `ignore-error-codes` when applicable
        ([#&#8203;19521](https://redirect.github.com/astral-sh/uv/pull/19521))\n-
        Skip direct URL lock freshness checks while offline ([#&#8203;19596](https://redirect.github.com/astral-sh/uv/pull/19596))\n-
        Add `import-names` and `import-namespaces` support to `uv-build` ([PEP 794](https://peps.python.org/pep-0794/))
        ([#&#8203;19380](https://redirect.github.com/astral-sh/uv/pull/19380))\n-
        Add a `--no-editable-package` flag to various commands ([#&#8203;19584](https://redirect.github.com/astral-sh/uv/pull/19584))\n-
        Infer Python version requests from source trees in `uv tool` invocations ([#&#8203;19577](https://redirect.github.com/astral-sh/uv/pull/19577))\n\n#####
        Preview features\n\n- Add module owners to `uv workspace metadata` ([#&#8203;19122](https://redirect.github.com/astral-sh/uv/pull/19122))\n-
        Do not allow `uv venv --clear` to remove non-virtual environments ([#&#8203;19595](https://redirect.github.com/astral-sh/uv/pull/19595))\n\n#####
        Bug fixes\n\n- Improve the performance of large entries in `tool.uv.conflicts`
        ([#&#8203;19538](https://redirect.github.com/astral-sh/uv/pull/19538))\n-
        Avoid modifying the parent process' env with `--env-file` in `uv run` ([#&#8203;19567](https://redirect.github.com/astral-sh/uv/pull/19567))\n-
        Fix script environment creation for scripts with long filenames ([#&#8203;19539](https://redirect.github.com/astral-sh/uv/pull/19539))\n-
        Fix transitive Git archive dependencies in lockfiles ([#&#8203;19589](https://redirect.github.com/astral-sh/uv/pull/19589))\n-
        Preserve Git repository URLs in direct URL metadata ([#&#8203;19590](https://redirect.github.com/astral-sh/uv/pull/19590))\n-
        Support redirects in `--check-url` ([#&#8203;19594](https://redirect.github.com/astral-sh/uv/pull/19594))\n-
        Accept case-insensitive HTML tags in `--find-links` parsing ([#&#8203;19537](https://redirect.github.com/astral-sh/uv/pull/19537))\n-
        Reject duplicate script metadata blocks ([#&#8203;19544](https://redirect.github.com/astral-sh/uv/pull/19544))\n-
        Ban names like \"python3\" as script entry points ([#&#8203;19535](https://redirect.github.com/astral-sh/uv/pull/19535),
        [#&#8203;19536](https://redirect.github.com/astral-sh/uv/pull/19536))\n- Validate
        Git LFS artifacts for Git archives ([#&#8203;19592](https://redirect.github.com/astral-sh/uv/pull/19592))\n-
        Use a relative path when creating symlinks in cache to improve relocatability
        ([#&#8203;19033](https://redirect.github.com/astral-sh/uv/pull/19033))\n\n#####
        Documentation\n\n- Fix malformed positional anchors in the CLI reference ([#&#8203;19575](https://redirect.github.com/astral-sh/uv/pull/19575))\n\n###
        [`v0.11.16`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01116)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.11.15...0.11.16)\n\nReleased
        on 2026-05-21.\n\n##### Enhancements\n\n- Add support for direct archive dependencies
        in Git ([#&#8203;10072](https://redirect.github.com/astral-sh/uv/pull/10072))\n-
        Adjust hint rendering ([#&#8203;18090](https://redirect.github.com/astral-sh/uv/pull/18090))\n\n#####
        Preview features\n\n- uv audit: specialize malformed OSV error ([#&#8203;19515](https://redirect.github.com/astral-sh/uv/pull/19515))\n-
        Reject locked malware installations ([#&#8203;18936](https://redirect.github.com/astral-sh/uv/pull/18936))\n\n#####
        Configuration\n\n- Allow disabling reading the system config with `UV_NO_SYSTEM_CONFIG`
        ([#&#8203;19476](https://redirect.github.com/astral-sh/uv/pull/19476))\n\n#####
        Bug fixes\n\n- Allow environment variables that take a list to be empty ([#&#8203;19503](https://redirect.github.com/astral-sh/uv/pull/19503))\n-
        Ensure that incompatible wheel hints do not leak secrets ([#&#8203;19504](https://redirect.github.com/astral-sh/uv/pull/19504))\n-
        Reject unsafe entry points in `uv-build` ([#&#8203;19495](https://redirect.github.com/astral-sh/uv/pull/19495))\n-
        Restrict delimiters in entry point parsing ([#&#8203;19471](https://redirect.github.com/astral-sh/uv/pull/19471))\n-
        uv-netrc: fix multi-word no-space comment lines causing parse errors ([#&#8203;19494](https://redirect.github.com/astral-sh/uv/pull/19494))\n\n#####
        Documentation\n\n- Document and test relative exclude-newer support for uv
        pip ([#&#8203;19475](https://redirect.github.com/astral-sh/uv/pull/19475))\n\n###
        [`v0.11.15`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01115)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.11.14...0.11.15)\n\nReleased
        on 2026-05-18.\n\n##### Security\n\n- Fix a TAR partial differential, see
        [GHSA-3cv2-h65g-fgmm](https://redirect.github.com/astral-sh/tokio-tar/security/advisories/GHSA-3cv2-h65g-fgmm)
        ([#&#8203;19463](https://redirect.github.com/astral-sh/uv/pull/19463))\n-
        Enforce that entry points cannot escape in the scripts directory, see [GHSA-4gg8-gxpx-9rph](https://redirect.github.com/astral-sh/tokio-tar/security/advisories/GHSA-4gg8-gxpx-9rph)
        ([#&#8203;19464](https://redirect.github.com/astral-sh/uv/pull/19464))\n\n#####
        Enhancements\n\n- Add TOML v1.1 -> v1.0 backwards compatibility for source
        distributions ([#&#8203;18741](https://redirect.github.com/astral-sh/uv/pull/18741))\n-
        Add support for Azure request signing ([#&#8203;19421](https://redirect.github.com/astral-sh/uv/pull/19421))\n-
        Apply stricter validation to all wheel filename segments ([#&#8203;19364](https://redirect.github.com/astral-sh/uv/pull/19364))\n-
        Reject empty strings as an invalid package name ([#&#8203;19435](https://redirect.github.com/astral-sh/uv/pull/19435))\n-
        Use structured errors for signing authentication failures ([#&#8203;19422](https://redirect.github.com/astral-sh/uv/pull/19422))\n\n#####
        Preview\n\n- uv audit: Add JSON output ([#&#8203;19305](https://redirect.github.com/astral-sh/uv/pull/19305))\n\n#####
        Configuration\n\n- Respect `required-environments` in `uv pip compile` ([#&#8203;19378](https://redirect.github.com/astral-sh/uv/pull/19378))\n\n#####
        Performance\n\n- Avoid parsing JSON manifest when local Python is available
        ([#&#8203;19398](https://redirect.github.com/astral-sh/uv/pull/19398))\n-
        Avoid walking nested directories in linker conflict registration ([#&#8203;19382](https://redirect.github.com/astral-sh/uv/pull/19382))\n-
        Optimize async wheel ZIP writing ([#&#8203;19383](https://redirect.github.com/astral-sh/uv/pull/19383))\n-
        Fix dead \"already trimmed\" fast-path in `Version::only_release_trimmed`
        ([#&#8203;19425](https://redirect.github.com/astral-sh/uv/pull/19425))\n\n#####
        Bug fixes\n\n- Apply workspace-member `[tool.uv.sources]` credentials under
        `uv sync --frozen` ([#&#8203;19423](https://redirect.github.com/astral-sh/uv/pull/19423))\n-
        Skip empty directories in uv build outputs ([#&#8203;19437](https://redirect.github.com/astral-sh/uv/pull/19437))\n-
        Fix Git submodule handling when using relative paths ([#&#8203;12156](https://redirect.github.com/astral-sh/uv/pull/12156))\n-
        Fix line number reporting in netrc parsing ([#&#8203;19452](https://redirect.github.com/astral-sh/uv/pull/19452))\n\n#####
        Documentation\n\n- Move Bazel auth helper setup into integration guide ([#&#8203;19392](https://redirect.github.com/astral-sh/uv/pull/19392))\n\n###
        [`v0.11.14`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01114)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.11.13...0.11.14)\n\nReleased
        on 2026-05-12.\n\n##### Enhancements\n\n- Add Astral mirror URL override ([#&#8203;19206](https://redirect.github.com/astral-sh/uv/pull/19206))\n-
        Ignore `top_level.txt` entries in uninstall that are not valid Python identifiers
        ([#&#8203;19340](https://redirect.github.com/astral-sh/uv/pull/19340))\n\n#####
        Bug fixes\n\n- Avoid applying `.env` files in parent process ([#&#8203;19343](https://redirect.github.com/astral-sh/uv/pull/19343))\n-
        Filter ANSI codes in logging output ([#&#8203;19311](https://redirect.github.com/astral-sh/uv/pull/19311))\n-
        Fix `uv tree` showing extra-conditional deps for packages required without
        extras ([#&#8203;19332](https://redirect.github.com/astral-sh/uv/pull/19332))\n-
        Respect build options (e.g., `--no-build`) during lock validation ([#&#8203;19366](https://redirect.github.com/astral-sh/uv/pull/19366))\n\n###
        [`v0.11.13`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01113)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.11.12...0.11.13)\n\nReleased
        on 2026-05-10.\n\n##### Bug fixes\n\n- Include data files in editable builds
        ([#&#8203;19312](https://redirect.github.com/astral-sh/uv/pull/19312))\n-
        Respect `--require-hashes` when installing from `pylock.toml` files ([#&#8203;19334](https://redirect.github.com/astral-sh/uv/pull/19334))\n\n#####
        Python\n\n- Add CPython 3.14.5\n\n### [`v0.11.12`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01112)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.11.11...0.11.12)\n\nReleased
        on 2026-05-08.\n\n##### Python\n\n- Add CPython 3.15.0b1\n\n##### Enhancements\n\n-
        Add `--no-editable` support to `uv pip install` ([#&#8203;19306](https://redirect.github.com/astral-sh/uv/pull/19306))\n-
        Require git refs in URLs to be percent-encoded ([#&#8203;19320](https://redirect.github.com/astral-sh/uv/pull/19320))\n\n#####
        Bug fixes\n\n- Respect `--no-dev` over `UV_DEV=1` ([#&#8203;19313](https://redirect.github.com/astral-sh/uv/pull/19313))\n\n-
        Don't suggest non-existent `--no-frozen` flag ([#&#8203;19290](https://redirect.github.com/astral-sh/uv/issues/19290))
        ([#&#8203;19294](https://redirect.github.com/astral-sh/uv/pull/19294))\n\n#####
        Documentation\n\n- Fix bug from inconsistent workflow name in GHA-PyPI guide
        example ([#&#8203;19309](https://redirect.github.com/astral-sh/uv/pull/19309))\n\n###
        [`v0.11.11`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01111)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.11.10...0.11.11)\n\nReleased
        on 2026-05-06.\n\n##### Bug fixes\n\n- Accept legacy ID format from pre-0.11.9
        cache entries ([#&#8203;19301](https://redirect.github.com/astral-sh/uv/pull/19301))\n\n###
        [`v0.11.10`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01110)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.11.9...0.11.10)\n\nReleased
        on 2026-05-05.\n\n##### Bug fixes\n\n- Allow pre-release Python requests with
        non-zero patch versions ([#&#8203;19286](https://redirect.github.com/astral-sh/uv/pull/19286))\n\n###
        [`v0.11.9`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0119)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.11.8...0.11.9)\n\nReleased
        on 2026-05-04.\n\nThis release includes a special release candidate for the
        next Python 3.14 patch release. Python 3.14 included a new garbage collection
        implementation, which reduced pause times but caused significant unexpected
        memory pressure in production environments. In 3.14.5 and 3.15, the previous
        garbage collection implementation will be restored.\n\nWe would greatly appreciate
        if you tested the 3.14.5rc1 version included in this release. The stable version
        is expected to be released soon and any feedback on potential issues would
        be helpful to the Python development team.\n\nFor more context, see the [announcement](https://discuss.python.org/t/reverting-the-incremental-gc-in-python-3-14-and-3-15/107014),
        [issue](https://redirect.github.com/python/cpython/issues/148726), and [pull
        request](https://redirect.github.com/python/cpython/pull/148720).\n\nIssues
        with the new release can be reported in the uv or CPython issue trackers.\n\n#####
        Python\n\n- Upgrade PyPy to v7.3.22\n- Add CPython 3.14.5rc1\n- On macOS,
        CPython statically links `libpython` to match Linux\n\n##### Enhancements\n\n-
        Omit compatible release desugaring for pre-release hints ([#&#8203;19267](https://redirect.github.com/astral-sh/uv/pull/19267))\n-
        Fix file locks on Android ([#&#8203;18323](https://redirect.github.com/astral-sh/uv/pull/18323))\n\n#####
        Preview\n\n- `uv audit` add reporting for adverse project statuses ([#&#8203;19128](https://redirect.github.com/astral-sh/uv/pull/19128))\n\n#####
        Bug fixes\n\n- Discover versioned Python executables when `requires-python`
        pins a version ([#&#8203;18700](https://redirect.github.com/astral-sh/uv/pull/18700))\n-
        Fix URL prefix matching to require path boundaries ([#&#8203;19154](https://redirect.github.com/astral-sh/uv/pull/19154))\n-
        Fix transitive Git path dependencies in lockfiles ([#&#8203;19269](https://redirect.github.com/astral-sh/uv/pull/19269))\n-
        Handle incorrect unlock error in `LockedFile::drop` on Wine ([#&#8203;19229](https://redirect.github.com/astral-sh/uv/pull/19229))\n-
        Prevent uninstalling site-packages for empty `top_level.txt` in `.egg-info`
        ([#&#8203;19114](https://redirect.github.com/astral-sh/uv/pull/19114))\n-
        Use symlinks instead of junctions on Wine ([#&#8203;19213](https://redirect.github.com/astral-sh/uv/pull/19213))\n-
        Fix floating-point environment handling on ARMv7 ([#&#8203;19157](https://redirect.github.com/astral-sh/uv/pull/19157))\n-
        Redact credentials from remote requirements URL in offline errors ([#&#8203;19216](https://redirect.github.com/astral-sh/uv/pull/19216))\n-
        Windows tramplolines no longer set `PYTHONHOME` and only set `__PYVENV_LAUNCHER__`
        for virtual environments ([#&#8203;19199](https://redirect.github.com/astral-sh/uv/pull/19199))\n\n#####
        Documentation\n\n- Mark `--native-tls` and `UV_NATIVE_TLS` as deprecated ([#&#8203;18705](https://redirect.github.com/astral-sh/uv/pull/18705))\n-
        Re-add `pytorch-triton-rocm` to PyTorch ROCm docs ([#&#8203;19241](https://redirect.github.com/astral-sh/uv/pull/19241))\n-
        Tweak changelog entries for 0.11.8 ([#&#8203;19188](https://redirect.github.com/astral-sh/uv/pull/19188))\n-
        Add 'Exporting lockfiles' to the Concepts->Projects index ([#&#8203;19209](https://redirect.github.com/astral-sh/uv/pull/19209))\n-
        Clarify that `uv init` creates git files / folders in the projects guide ([#&#8203;19183](https://redirect.github.com/astral-sh/uv/pull/19183))\n\n###
        [`v0.11.8`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0118)\n\n[Compare
        Source](https://redirect.github.com/astral-sh/uv/compare/0.11.7...0.11.8)\n\nReleased
        on 2026-04-27.\n\n##### Enhancements\n\n- Add `--python-downloads-json-url`
        to `python pin` ([#&#8203;19092](https://redirect.github.com/astral-sh/uv/pull/19092))\n-
        Fetch uv from Astral mirror during self-update ([#&#8203;18682](https://redirect.github.com/astral-sh/uv/pull/18682))\n-
        Support `pip uninstall -y` ([#&#8203;19082](https://redirect.github.com/astral-sh/uv/pull/19082))\n-
        Add `UV_PYTHON_NO_REGISTRY` ([#&#8203;19035](https://redirect.github.com/astral-sh/uv/pull/19035))\n-
        Allow `exclude-newer` to be missing from the lockfile when `exclude-newer-span`
        is present ([#&#8203;19024](https://redirect.github.com/astral-sh/uv/pull/19024))\n-
        Only show the version number in `uv self version --short` ([#&#8203;19019](https://redirect.github.com/astral-sh/uv/pull/19019))\n-
        Silence warnings on empty `SSL_CERT_DIR` directory ([#&#8203;19018](https://redirect.github.com/astral-sh/uv/pull/19018))\n-
        Use a sentinel timestamp for relative `exclude-newer` and `exclude-newer-package`
        values in lockfiles ([#&#8203;19022](https://redirect.github.com/astral-sh/uv/pull/19022),
        [#&#8203;19101](https://redirect.github.com/astral-sh/uv/pull/19101))\n\n#####
        Configuration\n\n- Add an environment variable for `UV_NO_PROJECT` ([#&#8203;19052](https://redirect.github.com/astral-sh/uv/pull/19052))\n-
        Expose `UV_PYTHON_SEARCH_PATH` for Python discovery `PATH` overrides ([#&#8203;19034](https://redirect.github.com/astral-sh/uv/pull/19034))\n\n#####
        Bug fixes\n\n- Add `rust-toolchain.toml` to uv-build sdist ([#&#8203;19131](https://redirect.github.com/astral-sh/uv/pull/19131))\n-
        Ensure uv invocations of git do not inherit repository location environment
        variables ([#&#8203;19088](https://redirect.github.com/astral-sh/uv/pull/19088))\n-
        Redact pre-signed upload URLs in verbose output ([#&#8203;19146](https://redirect.github.com/astral-sh/uv/pull/19146))\n-
        Handle transitive URL dependencies in PEP 517 build requirements ([#&#8203;19076](https://redirect.github.com/astral-sh/uv/pull/19076),
        [#&#8203;19086](https://redirect.github.com/astral-sh/uv/pull/19086))\n- Support
        `uv lock` on a `pyproject.toml` that only contains dependency-groups ([#&#8203;19087](https://redirect.github.com/astral-sh/uv/pull/19087))\n-
        Disable transparent Python upgrades in projects when a patch version is requested
        via `.python-version` ([#&#8203;19102](https://redirect.github.com/astral-sh/uv/pull/19102))\n-
        Fix Python variant tagging in the Windows registry ([#&#8203;19012](https://redirect.github.com/astral-sh/uv/pull/19012))\n-
        Use a single codepath for extracting a .tar.zst wheel, disallowing external
        symlinks ([#&#8203;19144](https://redirect.github.com/astral-sh/uv/pull/19144))\n\n#####
        Documentation\n\n- Bump astral-sh/setup-uv version in docs ([#&#8203;19030](https://redirect.github.com/astral-sh/uv/pull/19030))\n-
        Update PyTorch documentation for PyTorch 2.11 ([#&#8203;19095](https://redirect.github.com/astral-sh/uv/pull/19095))\n-
        Remove deprecated license classifiers from uv-build and add Python 3.14 classifier
        ([#&#8203;19130](https://redirect.github.com/astral-sh/uv/pull/19130))\n\n</details>\n\n---\n\n###
        Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
        At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
        defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
        manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
        conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
        Close this PR and you won't be reminded about this update again.\n\n---\n\n
        - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
        box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
        View the [repository job log](https://developer.mend.io/github/vexxhost/magnum-cluster-api).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjIxOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->\n"
      change_url: https://github.com/vexxhost/magnum-cluster-api/pull/1004
      child_jobs: []
      commit_id: ddcf92356e6798d791ee5d3cb5c28d8ba5c88863
      event_id: 950d3430-65e6-11f1-9ce3-f0a42a6b399b
      executor:
        hostname: 2d72f0692154
        inventory_file: /var/lib/zuul/builds/6c6c394ddbaa4477aca3d1772bcc66b2/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/6c6c394ddbaa4477aca3d1772bcc66b2/work/logs
        result_data_file: /var/lib/zuul/builds/6c6c394ddbaa4477aca3d1772bcc66b2/work/results.json
        src_root: /var/lib/zuul/builds/6c6c394ddbaa4477aca3d1772bcc66b2/work/src
        work_root: /var/lib/zuul/builds/6c6c394ddbaa4477aca3d1772bcc66b2/work
      include_vars: []
      items:
      - branch: main
        change: '1004'
        change_message: "chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.11.21\n\nThis
          PR contains the following updates:\n\n| Package | Type | Update | Change
          |\n|---|---|---|---|\n| [ghcr.io/astral-sh/uv](https://redirect.github.com/astral-sh/uv)
          | final | patch | `0.11.7` \u2192 `0.11.21` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>astral-sh/uv
          (ghcr.io/astral-sh/uv)</summary>\n\n### [`v0.11.21`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01121)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.20...0.11.21)\n\nReleased
          on 2026-06-11.\n\n##### Python\n\n- Add CPython 3.13.14 and 3.14.6 ([#&#8203;19787](https://redirect.github.com/astral-sh/uv/pull/19787))\n\n#####
          Preview features\n\n- Add `environment.root` to `uv workspace metadata --sync`
          ([#&#8203;19760](https://redirect.github.com/astral-sh/uv/pull/19760))\n-
          Allow `uv upgrade` to update a single dependency constraint ([#&#8203;19738](https://redirect.github.com/astral-sh/uv/pull/19738))\n-
          Compute and pass `uv workspace metadata` payload in `ty check` ([#&#8203;19763](https://redirect.github.com/astral-sh/uv/pull/19763))\n-
          Make packaged applications the default for `uv init` ([#&#8203;17841](https://redirect.github.com/astral-sh/uv/pull/17841))\n\n#####
          Performance\n\n- Add parallel discovery of Python versions for `uv python
          list` ([#&#8203;18684](https://redirect.github.com/astral-sh/uv/pull/18684))\n-
          Avoid normalizing source distribution names twice ([#&#8203;19784](https://redirect.github.com/astral-sh/uv/pull/19784))\n\n#####
          Bug fixes\n\n- Improve cache robustness and pruning behavior\n  - Allow
          CI cache pruning without an sdist bucket ([#&#8203;19802](https://redirect.github.com/astral-sh/uv/pull/19802))\n
          \ - Avoid overflow when reading malformed cache entries ([#&#8203;19799](https://redirect.github.com/astral-sh/uv/pull/19799))\n
          \ - Preserve cached Python downloads during cache pruning ([#&#8203;19795](https://redirect.github.com/astral-sh/uv/pull/19795))\n
          \ - Reject running inside the cache ([#&#8203;19659](https://redirect.github.com/astral-sh/uv/pull/19659))\n-
          Fix Python discovery and version request edge cases\n  - Avoid panics for
          Unicode Python version requests ([#&#8203;19797](https://redirect.github.com/astral-sh/uv/pull/19797))\n
          \ - Fix handling of non-critical errors in `uv python list` with path requests
          ([#&#8203;19774](https://redirect.github.com/astral-sh/uv/pull/19774))\n
          \ - Fix stop-discovery-at regression ([#&#8203;19769](https://redirect.github.com/astral-sh/uv/pull/19769))\n-
          Harden parsing and validation for package metadata, requirements, markers,
          URLs, and conflict sets\n  - Allow trailing commas in version specifiers
          ([#&#8203;19806](https://redirect.github.com/astral-sh/uv/pull/19806))\n
          \ - Avoid panics for invalid UTF-8 URL credentials ([#&#8203;19800](https://redirect.github.com/astral-sh/uv/pull/19800))\n
          \ - Avoid panics for malformed source distribution filenames ([#&#8203;19776](https://redirect.github.com/astral-sh/uv/pull/19776))\n
          \ - Avoid panics for trailing extra separators ([#&#8203;19779](https://redirect.github.com/astral-sh/uv/pull/19779))\n
          \ - Avoid stack overflow for recursive requirements path aliases ([#&#8203;19777](https://redirect.github.com/astral-sh/uv/pull/19777))\n
          \ - Ignore reversed string compatible-release markers ([#&#8203;19782](https://redirect.github.com/astral-sh/uv/pull/19782))\n
          \ - Reject duplicate entries in conflict sets ([#&#8203;19801](https://redirect.github.com/astral-sh/uv/pull/19801))\n
          \ - Reject malformed hash options in requirements files ([#&#8203;19783](https://redirect.github.com/astral-sh/uv/pull/19783))\n
          \ - Reject source distribution filenames without a separator ([#&#8203;19803](https://redirect.github.com/astral-sh/uv/pull/19803))\n
          \ - Use UTF-8 lengths for requirement errors ([#&#8203;19781](https://redirect.github.com/astral-sh/uv/pull/19781))\n
          \ - Use UTF-8 lengths for trailing marker errors ([#&#8203;19796](https://redirect.github.com/astral-sh/uv/pull/19796))\n
          \ - Use byte offsets when peeking over requirements ([#&#8203;19780](https://redirect.github.com/astral-sh/uv/pull/19780))\n
          \ - Validate GraalPy ABI suffixes ([#&#8203;19805](https://redirect.github.com/astral-sh/uv/pull/19805))\n-
          Improve wheel entry-point error handling and virtual environment activation
          quoting\n  - Propagate errors when reading wheel entry points ([#&#8203;19794](https://redirect.github.com/astral-sh/uv/pull/19794))\n
          \ - Quote virtual environment activation paths with shell metacharacters
          ([#&#8203;19798](https://redirect.github.com/astral-sh/uv/pull/19798))\n\n###
          [`v0.11.20`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01120)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.19...0.11.20)\n\nReleased
          on 2026-06-10.\n\n##### Enhancements\n\n- Add `--emit-index-url` and `--emit-find-links`
          to `uv export` ([#&#8203;18370](https://redirect.github.com/astral-sh/uv/pull/18370))\n-
          Add `--find-links` support for `uv pip list` ([#&#8203;16103](https://redirect.github.com/astral-sh/uv/pull/16103))\n-
          Group executable install errors during `uv python install` ([#&#8203;19691](https://redirect.github.com/astral-sh/uv/pull/19691))\n-
          Use ICF in macOS release builds to reduce binary sizes ([#&#8203;19615](https://redirect.github.com/astral-sh/uv/pull/19615))\n\n#####
          Preview features\n\n- Add initial hidden `uv upgrade` command ([#&#8203;19678](https://redirect.github.com/astral-sh/uv/pull/19678))\n-
          Reject Git revisions in `uv upgrade` ([#&#8203;19742](https://redirect.github.com/astral-sh/uv/pull/19742))\n\n#####
          Configuration\n\n- Recognize `UV_NO_INSTALL_PROJECT`, `UV_NO_INSTALL_WORKSPACE`,
          `UV_NO_INSTALL_LOCAL` ([#&#8203;19323](https://redirect.github.com/astral-sh/uv/pull/19323))\n\n#####
          Performance\n\n- Speed up discovery of large workspaces ([#&#8203;18311](https://redirect.github.com/astral-sh/uv/pull/18311))\n\n#####
          Bug fixes\n\n- Allow unknown preview flags with a warning again ([#&#8203;19669](https://redirect.github.com/astral-sh/uv/pull/19669))\n-
          Apply dependency exclusions to direct requirements ([#&#8203;19699](https://redirect.github.com/astral-sh/uv/pull/19699))\n-
          Avoid following external symlinks during cache clean ([#&#8203;19682](https://redirect.github.com/astral-sh/uv/pull/19682))\n-
          Avoid following symlinks during cache prune ([#&#8203;19543](https://redirect.github.com/astral-sh/uv/pull/19543))\n-
          Fix Git cache keys for worktrees and packed refs ([#&#8203;19706](https://redirect.github.com/astral-sh/uv/pull/19706))\n-
          Make resolver error handling iterative to avoid stack overflows ([#&#8203;19695](https://redirect.github.com/astral-sh/uv/pull/19695))\n-
          Pass `VIRTUAL_ENV` through `cygpath` inside `fish` on Windows ([#&#8203;19703](https://redirect.github.com/astral-sh/uv/pull/19703))\n-
          Rebuild explicit local directory tool installs ([#&#8203;19591](https://redirect.github.com/astral-sh/uv/pull/19591))\n-
          Validate egg top-level entries as identifiers ([#&#8203;19679](https://redirect.github.com/astral-sh/uv/pull/19679))\n\n#####
          Documentation\n\n- Document `--find-links` caching behavior ([#&#8203;19585](https://redirect.github.com/astral-sh/uv/pull/19585))\n-
          Add a small section for malware checks ([#&#8203;19680](https://redirect.github.com/astral-sh/uv/pull/19680))\n\n###
          [`v0.11.19`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01119)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.18...0.11.19)\n\nReleased
          on 2026-06-03.\n\n##### Python\n\n- Add CPython 3.15.0b2 ([#&#8203;19531](https://redirect.github.com/astral-sh/uv/pull/19531))\n\n#####
          Enhancements\n\n- Always compute SHA256 for remote distributions ([#&#8203;19662](https://redirect.github.com/astral-sh/uv/pull/19662))\n-
          Add PyEmscripten platform (PEP 783) ([#&#8203;19629](https://redirect.github.com/astral-sh/uv/pull/19629))\n-
          Add Pyodide 2025 target triple ([#&#8203;19653](https://redirect.github.com/astral-sh/uv/pull/19653))\n\n#####
          Preview features\n\n- Make preview features for commands have names that
          aren't ambiguous with the command ([#&#8203;19645](https://redirect.github.com/astral-sh/uv/pull/19645))\n-
          Respect `--isolated` in `uv check` ([#&#8203;19666](https://redirect.github.com/astral-sh/uv/pull/19666))\n\n#####
          Bug fixes\n\n- Continue tool uninstall after dangling receipts ([#&#8203;19623](https://redirect.github.com/astral-sh/uv/pull/19623))\n-
          Skip Unix-specific installation steps when cross-installing Windows Python
          distributions ([#&#8203;19424](https://redirect.github.com/astral-sh/uv/pull/19424))\n\n###
          [`v0.11.18`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01118)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.17...0.11.18)\n\nReleased
          on 2026-06-01.\n\n##### Performance\n\n- Fix performance regression in unzip
          of local wheels ([#&#8203;19637](https://redirect.github.com/astral-sh/uv/pull/19637))\n\n#####
          Preview\n\n- Add `uv check` to run `ty` from uv ([#&#8203;19605](https://redirect.github.com/astral-sh/uv/pull/19605))\n\n#####
          Bug fixes\n\n- Update activation scripts with upstream fixes ([#&#8203;19628](https://redirect.github.com/astral-sh/uv/pull/19628))\n\n#####
          Other changes\n\n- Bump MSRV to 1.94 ([#&#8203;19600](https://redirect.github.com/astral-sh/uv/pull/19600))\n\n###
          [`v0.11.17`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01117)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.16...0.11.17)\n\nReleased
          on 2026-05-28.\n\n##### Enhancements\n\n- Add a diagnostic for `uv add`
          with standard library modules ([#&#8203;19572](https://redirect.github.com/astral-sh/uv/pull/19572))\n-
          Expose `uv workspace` and its `list` subcommand in help output ([#&#8203;19533](https://redirect.github.com/astral-sh/uv/pull/19533))\n-
          Improve the \"403 forbidden\" hint to suggest `ignore-error-codes` when
          applicable ([#&#8203;19521](https://redirect.github.com/astral-sh/uv/pull/19521))\n-
          Skip direct URL lock freshness checks while offline ([#&#8203;19596](https://redirect.github.com/astral-sh/uv/pull/19596))\n-
          Add `import-names` and `import-namespaces` support to `uv-build` ([PEP 794](https://peps.python.org/pep-0794/))
          ([#&#8203;19380](https://redirect.github.com/astral-sh/uv/pull/19380))\n-
          Add a `--no-editable-package` flag to various commands ([#&#8203;19584](https://redirect.github.com/astral-sh/uv/pull/19584))\n-
          Infer Python version requests from source trees in `uv tool` invocations
          ([#&#8203;19577](https://redirect.github.com/astral-sh/uv/pull/19577))\n\n#####
          Preview features\n\n- Add module owners to `uv workspace metadata` ([#&#8203;19122](https://redirect.github.com/astral-sh/uv/pull/19122))\n-
          Do not allow `uv venv --clear` to remove non-virtual environments ([#&#8203;19595](https://redirect.github.com/astral-sh/uv/pull/19595))\n\n#####
          Bug fixes\n\n- Improve the performance of large entries in `tool.uv.conflicts`
          ([#&#8203;19538](https://redirect.github.com/astral-sh/uv/pull/19538))\n-
          Avoid modifying the parent process' env with `--env-file` in `uv run` ([#&#8203;19567](https://redirect.github.com/astral-sh/uv/pull/19567))\n-
          Fix script environment creation for scripts with long filenames ([#&#8203;19539](https://redirect.github.com/astral-sh/uv/pull/19539))\n-
          Fix transitive Git archive dependencies in lockfiles ([#&#8203;19589](https://redirect.github.com/astral-sh/uv/pull/19589))\n-
          Preserve Git repository URLs in direct URL metadata ([#&#8203;19590](https://redirect.github.com/astral-sh/uv/pull/19590))\n-
          Support redirects in `--check-url` ([#&#8203;19594](https://redirect.github.com/astral-sh/uv/pull/19594))\n-
          Accept case-insensitive HTML tags in `--find-links` parsing ([#&#8203;19537](https://redirect.github.com/astral-sh/uv/pull/19537))\n-
          Reject duplicate script metadata blocks ([#&#8203;19544](https://redirect.github.com/astral-sh/uv/pull/19544))\n-
          Ban names like \"python3\" as script entry points ([#&#8203;19535](https://redirect.github.com/astral-sh/uv/pull/19535),
          [#&#8203;19536](https://redirect.github.com/astral-sh/uv/pull/19536))\n-
          Validate Git LFS artifacts for Git archives ([#&#8203;19592](https://redirect.github.com/astral-sh/uv/pull/19592))\n-
          Use a relative path when creating symlinks in cache to improve relocatability
          ([#&#8203;19033](https://redirect.github.com/astral-sh/uv/pull/19033))\n\n#####
          Documentation\n\n- Fix malformed positional anchors in the CLI reference
          ([#&#8203;19575](https://redirect.github.com/astral-sh/uv/pull/19575))\n\n###
          [`v0.11.16`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01116)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.15...0.11.16)\n\nReleased
          on 2026-05-21.\n\n##### Enhancements\n\n- Add support for direct archive
          dependencies in Git ([#&#8203;10072](https://redirect.github.com/astral-sh/uv/pull/10072))\n-
          Adjust hint rendering ([#&#8203;18090](https://redirect.github.com/astral-sh/uv/pull/18090))\n\n#####
          Preview features\n\n- uv audit: specialize malformed OSV error ([#&#8203;19515](https://redirect.github.com/astral-sh/uv/pull/19515))\n-
          Reject locked malware installations ([#&#8203;18936](https://redirect.github.com/astral-sh/uv/pull/18936))\n\n#####
          Configuration\n\n- Allow disabling reading the system config with `UV_NO_SYSTEM_CONFIG`
          ([#&#8203;19476](https://redirect.github.com/astral-sh/uv/pull/19476))\n\n#####
          Bug fixes\n\n- Allow environment variables that take a list to be empty
          ([#&#8203;19503](https://redirect.github.com/astral-sh/uv/pull/19503))\n-
          Ensure that incompatible wheel hints do not leak secrets ([#&#8203;19504](https://redirect.github.com/astral-sh/uv/pull/19504))\n-
          Reject unsafe entry points in `uv-build` ([#&#8203;19495](https://redirect.github.com/astral-sh/uv/pull/19495))\n-
          Restrict delimiters in entry point parsing ([#&#8203;19471](https://redirect.github.com/astral-sh/uv/pull/19471))\n-
          uv-netrc: fix multi-word no-space comment lines causing parse errors ([#&#8203;19494](https://redirect.github.com/astral-sh/uv/pull/19494))\n\n#####
          Documentation\n\n- Document and test relative exclude-newer support for
          uv pip ([#&#8203;19475](https://redirect.github.com/astral-sh/uv/pull/19475))\n\n###
          [`v0.11.15`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01115)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.14...0.11.15)\n\nReleased
          on 2026-05-18.\n\n##### Security\n\n- Fix a TAR partial differential, see
          [GHSA-3cv2-h65g-fgmm](https://redirect.github.com/astral-sh/tokio-tar/security/advisories/GHSA-3cv2-h65g-fgmm)
          ([#&#8203;19463](https://redirect.github.com/astral-sh/uv/pull/19463))\n-
          Enforce that entry points cannot escape in the scripts directory, see [GHSA-4gg8-gxpx-9rph](https://redirect.github.com/astral-sh/tokio-tar/security/advisories/GHSA-4gg8-gxpx-9rph)
          ([#&#8203;19464](https://redirect.github.com/astral-sh/uv/pull/19464))\n\n#####
          Enhancements\n\n- Add TOML v1.1 -> v1.0 backwards compatibility for source
          distributions ([#&#8203;18741](https://redirect.github.com/astral-sh/uv/pull/18741))\n-
          Add support for Azure request signing ([#&#8203;19421](https://redirect.github.com/astral-sh/uv/pull/19421))\n-
          Apply stricter validation to all wheel filename segments ([#&#8203;19364](https://redirect.github.com/astral-sh/uv/pull/19364))\n-
          Reject empty strings as an invalid package name ([#&#8203;19435](https://redirect.github.com/astral-sh/uv/pull/19435))\n-
          Use structured errors for signing authentication failures ([#&#8203;19422](https://redirect.github.com/astral-sh/uv/pull/19422))\n\n#####
          Preview\n\n- uv audit: Add JSON output ([#&#8203;19305](https://redirect.github.com/astral-sh/uv/pull/19305))\n\n#####
          Configuration\n\n- Respect `required-environments` in `uv pip compile` ([#&#8203;19378](https://redirect.github.com/astral-sh/uv/pull/19378))\n\n#####
          Performance\n\n- Avoid parsing JSON manifest when local Python is available
          ([#&#8203;19398](https://redirect.github.com/astral-sh/uv/pull/19398))\n-
          Avoid walking nested directories in linker conflict registration ([#&#8203;19382](https://redirect.github.com/astral-sh/uv/pull/19382))\n-
          Optimize async wheel ZIP writing ([#&#8203;19383](https://redirect.github.com/astral-sh/uv/pull/19383))\n-
          Fix dead \"already trimmed\" fast-path in `Version::only_release_trimmed`
          ([#&#8203;19425](https://redirect.github.com/astral-sh/uv/pull/19425))\n\n#####
          Bug fixes\n\n- Apply workspace-member `[tool.uv.sources]` credentials under
          `uv sync --frozen` ([#&#8203;19423](https://redirect.github.com/astral-sh/uv/pull/19423))\n-
          Skip empty directories in uv build outputs ([#&#8203;19437](https://redirect.github.com/astral-sh/uv/pull/19437))\n-
          Fix Git submodule handling when using relative paths ([#&#8203;12156](https://redirect.github.com/astral-sh/uv/pull/12156))\n-
          Fix line number reporting in netrc parsing ([#&#8203;19452](https://redirect.github.com/astral-sh/uv/pull/19452))\n\n#####
          Documentation\n\n- Move Bazel auth helper setup into integration guide ([#&#8203;19392](https://redirect.github.com/astral-sh/uv/pull/19392))\n\n###
          [`v0.11.14`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01114)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.13...0.11.14)\n\nReleased
          on 2026-05-12.\n\n##### Enhancements\n\n- Add Astral mirror URL override
          ([#&#8203;19206](https://redirect.github.com/astral-sh/uv/pull/19206))\n-
          Ignore `top_level.txt` entries in uninstall that are not valid Python identifiers
          ([#&#8203;19340](https://redirect.github.com/astral-sh/uv/pull/19340))\n\n#####
          Bug fixes\n\n- Avoid applying `.env` files in parent process ([#&#8203;19343](https://redirect.github.com/astral-sh/uv/pull/19343))\n-
          Filter ANSI codes in logging output ([#&#8203;19311](https://redirect.github.com/astral-sh/uv/pull/19311))\n-
          Fix `uv tree` showing extra-conditional deps for packages required without
          extras ([#&#8203;19332](https://redirect.github.com/astral-sh/uv/pull/19332))\n-
          Respect build options (e.g., `--no-build`) during lock validation ([#&#8203;19366](https://redirect.github.com/astral-sh/uv/pull/19366))\n\n###
          [`v0.11.13`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01113)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.12...0.11.13)\n\nReleased
          on 2026-05-10.\n\n##### Bug fixes\n\n- Include data files in editable builds
          ([#&#8203;19312](https://redirect.github.com/astral-sh/uv/pull/19312))\n-
          Respect `--require-hashes` when installing from `pylock.toml` files ([#&#8203;19334](https://redirect.github.com/astral-sh/uv/pull/19334))\n\n#####
          Python\n\n- Add CPython 3.14.5\n\n### [`v0.11.12`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01112)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.11...0.11.12)\n\nReleased
          on 2026-05-08.\n\n##### Python\n\n- Add CPython 3.15.0b1\n\n##### Enhancements\n\n-
          Add `--no-editable` support to `uv pip install` ([#&#8203;19306](https://redirect.github.com/astral-sh/uv/pull/19306))\n-
          Require git refs in URLs to be percent-encoded ([#&#8203;19320](https://redirect.github.com/astral-sh/uv/pull/19320))\n\n#####
          Bug fixes\n\n- Respect `--no-dev` over `UV_DEV=1` ([#&#8203;19313](https://redirect.github.com/astral-sh/uv/pull/19313))\n\n-
          Don't suggest non-existent `--no-frozen` flag ([#&#8203;19290](https://redirect.github.com/astral-sh/uv/issues/19290))
          ([#&#8203;19294](https://redirect.github.com/astral-sh/uv/pull/19294))\n\n#####
          Documentation\n\n- Fix bug from inconsistent workflow name in GHA-PyPI guide
          example ([#&#8203;19309](https://redirect.github.com/astral-sh/uv/pull/19309))\n\n###
          [`v0.11.11`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01111)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.10...0.11.11)\n\nReleased
          on 2026-05-06.\n\n##### Bug fixes\n\n- Accept legacy ID format from pre-0.11.9
          cache entries ([#&#8203;19301](https://redirect.github.com/astral-sh/uv/pull/19301))\n\n###
          [`v0.11.10`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#01110)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.9...0.11.10)\n\nReleased
          on 2026-05-05.\n\n##### Bug fixes\n\n- Allow pre-release Python requests
          with non-zero patch versions ([#&#8203;19286](https://redirect.github.com/astral-sh/uv/pull/19286))\n\n###
          [`v0.11.9`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0119)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.8...0.11.9)\n\nReleased
          on 2026-05-04.\n\nThis release includes a special release candidate for
          the next Python 3.14 patch release. Python 3.14 included a new garbage collection
          implementation, which reduced pause times but caused significant unexpected
          memory pressure in production environments. In 3.14.5 and 3.15, the previous
          garbage collection implementation will be restored.\n\nWe would greatly
          appreciate if you tested the 3.14.5rc1 version included in this release.
          The stable version is expected to be released soon and any feedback on potential
          issues would be helpful to the Python development team.\n\nFor more context,
          see the [announcement](https://discuss.python.org/t/reverting-the-incremental-gc-in-python-3-14-and-3-15/107014),
          [issue](https://redirect.github.com/python/cpython/issues/148726), and [pull
          request](https://redirect.github.com/python/cpython/pull/148720).\n\nIssues
          with the new release can be reported in the uv or CPython issue trackers.\n\n#####
          Python\n\n- Upgrade PyPy to v7.3.22\n- Add CPython 3.14.5rc1\n- On macOS,
          CPython statically links `libpython` to match Linux\n\n##### Enhancements\n\n-
          Omit compatible release desugaring for pre-release hints ([#&#8203;19267](https://redirect.github.com/astral-sh/uv/pull/19267))\n-
          Fix file locks on Android ([#&#8203;18323](https://redirect.github.com/astral-sh/uv/pull/18323))\n\n#####
          Preview\n\n- `uv audit` add reporting for adverse project statuses ([#&#8203;19128](https://redirect.github.com/astral-sh/uv/pull/19128))\n\n#####
          Bug fixes\n\n- Discover versioned Python executables when `requires-python`
          pins a version ([#&#8203;18700](https://redirect.github.com/astral-sh/uv/pull/18700))\n-
          Fix URL prefix matching to require path boundaries ([#&#8203;19154](https://redirect.github.com/astral-sh/uv/pull/19154))\n-
          Fix transitive Git path dependencies in lockfiles ([#&#8203;19269](https://redirect.github.com/astral-sh/uv/pull/19269))\n-
          Handle incorrect unlock error in `LockedFile::drop` on Wine ([#&#8203;19229](https://redirect.github.com/astral-sh/uv/pull/19229))\n-
          Prevent uninstalling site-packages for empty `top_level.txt` in `.egg-info`
          ([#&#8203;19114](https://redirect.github.com/astral-sh/uv/pull/19114))\n-
          Use symlinks instead of junctions on Wine ([#&#8203;19213](https://redirect.github.com/astral-sh/uv/pull/19213))\n-
          Fix floating-point environment handling on ARMv7 ([#&#8203;19157](https://redirect.github.com/astral-sh/uv/pull/19157))\n-
          Redact credentials from remote requirements URL in offline errors ([#&#8203;19216](https://redirect.github.com/astral-sh/uv/pull/19216))\n-
          Windows tramplolines no longer set `PYTHONHOME` and only set `__PYVENV_LAUNCHER__`
          for virtual environments ([#&#8203;19199](https://redirect.github.com/astral-sh/uv/pull/19199))\n\n#####
          Documentation\n\n- Mark `--native-tls` and `UV_NATIVE_TLS` as deprecated
          ([#&#8203;18705](https://redirect.github.com/astral-sh/uv/pull/18705))\n-
          Re-add `pytorch-triton-rocm` to PyTorch ROCm docs ([#&#8203;19241](https://redirect.github.com/astral-sh/uv/pull/19241))\n-
          Tweak changelog entries for 0.11.8 ([#&#8203;19188](https://redirect.github.com/astral-sh/uv/pull/19188))\n-
          Add 'Exporting lockfiles' to the Concepts->Projects index ([#&#8203;19209](https://redirect.github.com/astral-sh/uv/pull/19209))\n-
          Clarify that `uv init` creates git files / folders in the projects guide
          ([#&#8203;19183](https://redirect.github.com/astral-sh/uv/pull/19183))\n\n###
          [`v0.11.8`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0118)\n\n[Compare
          Source](https://redirect.github.com/astral-sh/uv/compare/0.11.7...0.11.8)\n\nReleased
          on 2026-04-27.\n\n##### Enhancements\n\n- Add `--python-downloads-json-url`
          to `python pin` ([#&#8203;19092](https://redirect.github.com/astral-sh/uv/pull/19092))\n-
          Fetch uv from Astral mirror during self-update ([#&#8203;18682](https://redirect.github.com/astral-sh/uv/pull/18682))\n-
          Support `pip uninstall -y` ([#&#8203;19082](https://redirect.github.com/astral-sh/uv/pull/19082))\n-
          Add `UV_PYTHON_NO_REGISTRY` ([#&#8203;19035](https://redirect.github.com/astral-sh/uv/pull/19035))\n-
          Allow `exclude-newer` to be missing from the lockfile when `exclude-newer-span`
          is present ([#&#8203;19024](https://redirect.github.com/astral-sh/uv/pull/19024))\n-
          Only show the version number in `uv self version --short` ([#&#8203;19019](https://redirect.github.com/astral-sh/uv/pull/19019))\n-
          Silence warnings on empty `SSL_CERT_DIR` directory ([#&#8203;19018](https://redirect.github.com/astral-sh/uv/pull/19018))\n-
          Use a sentinel timestamp for relative `exclude-newer` and `exclude-newer-package`
          values in lockfiles ([#&#8203;19022](https://redirect.github.com/astral-sh/uv/pull/19022),
          [#&#8203;19101](https://redirect.github.com/astral-sh/uv/pull/19101))\n\n#####
          Configuration\n\n- Add an environment variable for `UV_NO_PROJECT` ([#&#8203;19052](https://redirect.github.com/astral-sh/uv/pull/19052))\n-
          Expose `UV_PYTHON_SEARCH_PATH` for Python discovery `PATH` overrides ([#&#8203;19034](https://redirect.github.com/astral-sh/uv/pull/19034))\n\n#####
          Bug fixes\n\n- Add `rust-toolchain.toml` to uv-build sdist ([#&#8203;19131](https://redirect.github.com/astral-sh/uv/pull/19131))\n-
          Ensure uv invocations of git do not inherit repository location environment
          variables ([#&#8203;19088](https://redirect.github.com/astral-sh/uv/pull/19088))\n-
          Redact pre-signed upload URLs in verbose output ([#&#8203;19146](https://redirect.github.com/astral-sh/uv/pull/19146))\n-
          Handle transitive URL dependencies in PEP 517 build requirements ([#&#8203;19076](https://redirect.github.com/astral-sh/uv/pull/19076),
          [#&#8203;19086](https://redirect.github.com/astral-sh/uv/pull/19086))\n-
          Support `uv lock` on a `pyproject.toml` that only contains dependency-groups
          ([#&#8203;19087](https://redirect.github.com/astral-sh/uv/pull/19087))\n-
          Disable transparent Python upgrades in projects when a patch version is
          requested via `.python-version` ([#&#8203;19102](https://redirect.github.com/astral-sh/uv/pull/19102))\n-
          Fix Python variant tagging in the Windows registry ([#&#8203;19012](https://redirect.github.com/astral-sh/uv/pull/19012))\n-
          Use a single codepath for extracting a .tar.zst wheel, disallowing external
          symlinks ([#&#8203;19144](https://redirect.github.com/astral-sh/uv/pull/19144))\n\n#####
          Documentation\n\n- Bump astral-sh/setup-uv version in docs ([#&#8203;19030](https://redirect.github.com/astral-sh/uv/pull/19030))\n-
          Update PyTorch documentation for PyTorch 2.11 ([#&#8203;19095](https://redirect.github.com/astral-sh/uv/pull/19095))\n-
          Remove deprecated license classifiers from uv-build and add Python 3.14
          classifier ([#&#8203;19130](https://redirect.github.com/astral-sh/uv/pull/19130))\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
          At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
          defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
          manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
          conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
          Close this PR and you won't be reminded about this update again.\n\n---\n\n
          - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
          box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
          View the [repository job log](https://developer.mend.io/github/vexxhost/magnum-cluster-api).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjIxOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->\n"
        change_url: https://github.com/vexxhost/magnum-cluster-api/pull/1004
        commit_id: ddcf92356e6798d791ee5d3cb5c28d8ba5c88863
        patchset: ddcf92356e6798d791ee5d3cb5c28d8ba5c88863
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/magnum-cluster-api
          name: vexxhost/magnum-cluster-api
          short_name: magnum-cluster-api
          src_dir: src/github.com/vexxhost/magnum-cluster-api
        topic: null
      job: magnum-cluster-api-hydrophone-v1.33.11-cilium
      jobtags: []
      max_attempts: 3
      message: Y2hvcmUoZGVwcyk6IHVwZGF0ZSBnaGNyLmlvL2FzdHJhbC1zaC91diBkb2NrZXIgdGFnIHRvIHYwLjExLjIxCgpUaGlzIFBSIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgdXBkYXRlczoKCnwgUGFja2FnZSB8IFR5cGUgfCBVcGRhdGUgfCBDaGFuZ2UgfAp8LS0tfC0tLXwtLS18LS0tfAp8IFtnaGNyLmlvL2FzdHJhbC1zaC91dl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91dikgfCBmaW5hbCB8IHBhdGNoIHwgYDAuMTEuN2Ag4oaSIGAwLjExLjIxYCB8CgotLS0KCiMjIyBSZWxlYXNlIE5vdGVzCgo8ZGV0YWlscz4KPHN1bW1hcnk+YXN0cmFsLXNoL3V2IChnaGNyLmlvL2FzdHJhbC1zaC91dik8L3N1bW1hcnk+CgojIyMgW2B2MC4xMS4yMWBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCMwMTEyMSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9jb21wYXJlLzAuMTEuMjAuLi4wLjExLjIxKQoKUmVsZWFzZWQgb24gMjAyNi0wNi0xMS4KCiMjIyMjIFB5dGhvbgoKLSBBZGQgQ1B5dGhvbiAzLjEzLjE0IGFuZCAzLjE0LjYgKFsjJiM4MjAzOzE5Nzg3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk3ODcpKQoKIyMjIyMgUHJldmlldyBmZWF0dXJlcwoKLSBBZGQgYGVudmlyb25tZW50LnJvb3RgIHRvIGB1diB3b3Jrc3BhY2UgbWV0YWRhdGEgLS1zeW5jYCAoWyMmIzgyMDM7MTk3NjBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTc2MCkpCi0gQWxsb3cgYHV2IHVwZ3JhZGVgIHRvIHVwZGF0ZSBhIHNpbmdsZSBkZXBlbmRlbmN5IGNvbnN0cmFpbnQgKFsjJiM4MjAzOzE5NzM4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk3MzgpKQotIENvbXB1dGUgYW5kIHBhc3MgYHV2IHdvcmtzcGFjZSBtZXRhZGF0YWAgcGF5bG9hZCBpbiBgdHkgY2hlY2tgIChbIyYjODIwMzsxOTc2M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NzYzKSkKLSBNYWtlIHBhY2thZ2VkIGFwcGxpY2F0aW9ucyB0aGUgZGVmYXVsdCBmb3IgYHV2IGluaXRgIChbIyYjODIwMzsxNzg0MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE3ODQxKSkKCiMjIyMjIFBlcmZvcm1hbmNlCgotIEFkZCBwYXJhbGxlbCBkaXNjb3Zlcnkgb2YgUHl0aG9uIHZlcnNpb25zIGZvciBgdXYgcHl0aG9uIGxpc3RgIChbIyYjODIwMzsxODY4NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE4Njg0KSkKLSBBdm9pZCBub3JtYWxpemluZyBzb3VyY2UgZGlzdHJpYnV0aW9uIG5hbWVzIHR3aWNlIChbIyYjODIwMzsxOTc4NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5Nzg0KSkKCiMjIyMjIEJ1ZyBmaXhlcwoKLSBJbXByb3ZlIGNhY2hlIHJvYnVzdG5lc3MgYW5kIHBydW5pbmcgYmVoYXZpb3IKICAtIEFsbG93IENJIGNhY2hlIHBydW5pbmcgd2l0aG91dCBhbiBzZGlzdCBidWNrZXQgKFsjJiM4MjAzOzE5ODAyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk4MDIpKQogIC0gQXZvaWQgb3ZlcmZsb3cgd2hlbiByZWFkaW5nIG1hbGZvcm1lZCBjYWNoZSBlbnRyaWVzIChbIyYjODIwMzsxOTc5OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5Nzk5KSkKICAtIFByZXNlcnZlIGNhY2hlZCBQeXRob24gZG93bmxvYWRzIGR1cmluZyBjYWNoZSBwcnVuaW5nIChbIyYjODIwMzsxOTc5NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5Nzk1KSkKICAtIFJlamVjdCBydW5uaW5nIGluc2lkZSB0aGUgY2FjaGUgKFsjJiM4MjAzOzE5NjU5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk2NTkpKQotIEZpeCBQeXRob24gZGlzY292ZXJ5IGFuZCB2ZXJzaW9uIHJlcXVlc3QgZWRnZSBjYXNlcwogIC0gQXZvaWQgcGFuaWNzIGZvciBVbmljb2RlIFB5dGhvbiB2ZXJzaW9uIHJlcXVlc3RzIChbIyYjODIwMzsxOTc5N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5Nzk3KSkKICAtIEZpeCBoYW5kbGluZyBvZiBub24tY3JpdGljYWwgZXJyb3JzIGluIGB1diBweXRob24gbGlzdGAgd2l0aCBwYXRoIHJlcXVlc3RzIChbIyYjODIwMzsxOTc3NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5Nzc0KSkKICAtIEZpeCBzdG9wLWRpc2NvdmVyeS1hdCByZWdyZXNzaW9uIChbIyYjODIwMzsxOTc2OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NzY5KSkKLSBIYXJkZW4gcGFyc2luZyBhbmQgdmFsaWRhdGlvbiBmb3IgcGFja2FnZSBtZXRhZGF0YSwgcmVxdWlyZW1lbnRzLCBtYXJrZXJzLCBVUkxzLCBhbmQgY29uZmxpY3Qgc2V0cwogIC0gQWxsb3cgdHJhaWxpbmcgY29tbWFzIGluIHZlcnNpb24gc3BlY2lmaWVycyAoWyMmIzgyMDM7MTk4MDZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTgwNikpCiAgLSBBdm9pZCBwYW5pY3MgZm9yIGludmFsaWQgVVRGLTggVVJMIGNyZWRlbnRpYWxzIChbIyYjODIwMzsxOTgwMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5ODAwKSkKICAtIEF2b2lkIHBhbmljcyBmb3IgbWFsZm9ybWVkIHNvdXJjZSBkaXN0cmlidXRpb24gZmlsZW5hbWVzIChbIyYjODIwMzsxOTc3Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5Nzc2KSkKICAtIEF2b2lkIHBhbmljcyBmb3IgdHJhaWxpbmcgZXh0cmEgc2VwYXJhdG9ycyAoWyMmIzgyMDM7MTk3NzldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTc3OSkpCiAgLSBBdm9pZCBzdGFjayBvdmVyZmxvdyBmb3IgcmVjdXJzaXZlIHJlcXVpcmVtZW50cyBwYXRoIGFsaWFzZXMgKFsjJiM4MjAzOzE5Nzc3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk3NzcpKQogIC0gSWdub3JlIHJldmVyc2VkIHN0cmluZyBjb21wYXRpYmxlLXJlbGVhc2UgbWFya2VycyAoWyMmIzgyMDM7MTk3ODJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTc4MikpCiAgLSBSZWplY3QgZHVwbGljYXRlIGVudHJpZXMgaW4gY29uZmxpY3Qgc2V0cyAoWyMmIzgyMDM7MTk4MDFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTgwMSkpCiAgLSBSZWplY3QgbWFsZm9ybWVkIGhhc2ggb3B0aW9ucyBpbiByZXF1aXJlbWVudHMgZmlsZXMgKFsjJiM4MjAzOzE5NzgzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk3ODMpKQogIC0gUmVqZWN0IHNvdXJjZSBkaXN0cmlidXRpb24gZmlsZW5hbWVzIHdpdGhvdXQgYSBzZXBhcmF0b3IgKFsjJiM4MjAzOzE5ODAzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk4MDMpKQogIC0gVXNlIFVURi04IGxlbmd0aHMgZm9yIHJlcXVpcmVtZW50IGVycm9ycyAoWyMmIzgyMDM7MTk3ODFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTc4MSkpCiAgLSBVc2UgVVRGLTggbGVuZ3RocyBmb3IgdHJhaWxpbmcgbWFya2VyIGVycm9ycyAoWyMmIzgyMDM7MTk3OTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTc5NikpCiAgLSBVc2UgYnl0ZSBvZmZzZXRzIHdoZW4gcGVla2luZyBvdmVyIHJlcXVpcmVtZW50cyAoWyMmIzgyMDM7MTk3ODBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTc4MCkpCiAgLSBWYWxpZGF0ZSBHcmFhbFB5IEFCSSBzdWZmaXhlcyAoWyMmIzgyMDM7MTk4MDVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTgwNSkpCi0gSW1wcm92ZSB3aGVlbCBlbnRyeS1wb2ludCBlcnJvciBoYW5kbGluZyBhbmQgdmlydHVhbCBlbnZpcm9ubWVudCBhY3RpdmF0aW9uIHF1b3RpbmcKICAtIFByb3BhZ2F0ZSBlcnJvcnMgd2hlbiByZWFkaW5nIHdoZWVsIGVudHJ5IHBvaW50cyAoWyMmIzgyMDM7MTk3OTRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTc5NCkpCiAgLSBRdW90ZSB2aXJ0dWFsIGVudmlyb25tZW50IGFjdGl2YXRpb24gcGF0aHMgd2l0aCBzaGVsbCBtZXRhY2hhcmFjdGVycyAoWyMmIzgyMDM7MTk3OThdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTc5OCkpCgojIyMgW2B2MC4xMS4yMGBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCMwMTEyMCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9jb21wYXJlLzAuMTEuMTkuLi4wLjExLjIwKQoKUmVsZWFzZWQgb24gMjAyNi0wNi0xMC4KCiMjIyMjIEVuaGFuY2VtZW50cwoKLSBBZGQgYC0tZW1pdC1pbmRleC11cmxgIGFuZCBgLS1lbWl0LWZpbmQtbGlua3NgIHRvIGB1diBleHBvcnRgIChbIyYjODIwMzsxODM3MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE4MzcwKSkKLSBBZGQgYC0tZmluZC1saW5rc2Agc3VwcG9ydCBmb3IgYHV2IHBpcCBsaXN0YCAoWyMmIzgyMDM7MTYxMDNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xNjEwMykpCi0gR3JvdXAgZXhlY3V0YWJsZSBpbnN0YWxsIGVycm9ycyBkdXJpbmcgYHV2IHB5dGhvbiBpbnN0YWxsYCAoWyMmIzgyMDM7MTk2OTFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTY5MSkpCi0gVXNlIElDRiBpbiBtYWNPUyByZWxlYXNlIGJ1aWxkcyB0byByZWR1Y2UgYmluYXJ5IHNpemVzIChbIyYjODIwMzsxOTYxNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NjE1KSkKCiMjIyMjIFByZXZpZXcgZmVhdHVyZXMKCi0gQWRkIGluaXRpYWwgaGlkZGVuIGB1diB1cGdyYWRlYCBjb21tYW5kIChbIyYjODIwMzsxOTY3OF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5Njc4KSkKLSBSZWplY3QgR2l0IHJldmlzaW9ucyBpbiBgdXYgdXBncmFkZWAgKFsjJiM4MjAzOzE5NzQyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk3NDIpKQoKIyMjIyMgQ29uZmlndXJhdGlvbgoKLSBSZWNvZ25pemUgYFVWX05PX0lOU1RBTExfUFJPSkVDVGAsIGBVVl9OT19JTlNUQUxMX1dPUktTUEFDRWAsIGBVVl9OT19JTlNUQUxMX0xPQ0FMYCAoWyMmIzgyMDM7MTkzMjNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTMyMykpCgojIyMjIyBQZXJmb3JtYW5jZQoKLSBTcGVlZCB1cCBkaXNjb3Zlcnkgb2YgbGFyZ2Ugd29ya3NwYWNlcyAoWyMmIzgyMDM7MTgzMTFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xODMxMSkpCgojIyMjIyBCdWcgZml4ZXMKCi0gQWxsb3cgdW5rbm93biBwcmV2aWV3IGZsYWdzIHdpdGggYSB3YXJuaW5nIGFnYWluIChbIyYjODIwMzsxOTY2OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NjY5KSkKLSBBcHBseSBkZXBlbmRlbmN5IGV4Y2x1c2lvbnMgdG8gZGlyZWN0IHJlcXVpcmVtZW50cyAoWyMmIzgyMDM7MTk2OTldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTY5OSkpCi0gQXZvaWQgZm9sbG93aW5nIGV4dGVybmFsIHN5bWxpbmtzIGR1cmluZyBjYWNoZSBjbGVhbiAoWyMmIzgyMDM7MTk2ODJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTY4MikpCi0gQXZvaWQgZm9sbG93aW5nIHN5bWxpbmtzIGR1cmluZyBjYWNoZSBwcnVuZSAoWyMmIzgyMDM7MTk1NDNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTU0MykpCi0gRml4IEdpdCBjYWNoZSBrZXlzIGZvciB3b3JrdHJlZXMgYW5kIHBhY2tlZCByZWZzIChbIyYjODIwMzsxOTcwNl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NzA2KSkKLSBNYWtlIHJlc29sdmVyIGVycm9yIGhhbmRsaW5nIGl0ZXJhdGl2ZSB0byBhdm9pZCBzdGFjayBvdmVyZmxvd3MgKFsjJiM4MjAzOzE5Njk1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk2OTUpKQotIFBhc3MgYFZJUlRVQUxfRU5WYCB0aHJvdWdoIGBjeWdwYXRoYCBpbnNpZGUgYGZpc2hgIG9uIFdpbmRvd3MgKFsjJiM4MjAzOzE5NzAzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk3MDMpKQotIFJlYnVpbGQgZXhwbGljaXQgbG9jYWwgZGlyZWN0b3J5IHRvb2wgaW5zdGFsbHMgKFsjJiM4MjAzOzE5NTkxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk1OTEpKQotIFZhbGlkYXRlIGVnZyB0b3AtbGV2ZWwgZW50cmllcyBhcyBpZGVudGlmaWVycyAoWyMmIzgyMDM7MTk2NzldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTY3OSkpCgojIyMjIyBEb2N1bWVudGF0aW9uCgotIERvY3VtZW50IGAtLWZpbmQtbGlua3NgIGNhY2hpbmcgYmVoYXZpb3IgKFsjJiM4MjAzOzE5NTg1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk1ODUpKQotIEFkZCBhIHNtYWxsIHNlY3Rpb24gZm9yIG1hbHdhcmUgY2hlY2tzIChbIyYjODIwMzsxOTY4MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NjgwKSkKCiMjIyBbYHYwLjExLjE5YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzAxMTE5KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L2NvbXBhcmUvMC4xMS4xOC4uLjAuMTEuMTkpCgpSZWxlYXNlZCBvbiAyMDI2LTA2LTAzLgoKIyMjIyMgUHl0aG9uCgotIEFkZCBDUHl0aG9uIDMuMTUuMGIyIChbIyYjODIwMzsxOTUzMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NTMxKSkKCiMjIyMjIEVuaGFuY2VtZW50cwoKLSBBbHdheXMgY29tcHV0ZSBTSEEyNTYgZm9yIHJlbW90ZSBkaXN0cmlidXRpb25zIChbIyYjODIwMzsxOTY2Ml0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NjYyKSkKLSBBZGQgUHlFbXNjcmlwdGVuIHBsYXRmb3JtIChQRVAgNzgzKSAoWyMmIzgyMDM7MTk2MjldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTYyOSkpCi0gQWRkIFB5b2RpZGUgMjAyNSB0YXJnZXQgdHJpcGxlIChbIyYjODIwMzsxOTY1M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NjUzKSkKCiMjIyMjIFByZXZpZXcgZmVhdHVyZXMKCi0gTWFrZSBwcmV2aWV3IGZlYXR1cmVzIGZvciBjb21tYW5kcyBoYXZlIG5hbWVzIHRoYXQgYXJlbid0IGFtYmlndW91cyB3aXRoIHRoZSBjb21tYW5kIChbIyYjODIwMzsxOTY0NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NjQ1KSkKLSBSZXNwZWN0IGAtLWlzb2xhdGVkYCBpbiBgdXYgY2hlY2tgIChbIyYjODIwMzsxOTY2Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NjY2KSkKCiMjIyMjIEJ1ZyBmaXhlcwoKLSBDb250aW51ZSB0b29sIHVuaW5zdGFsbCBhZnRlciBkYW5nbGluZyByZWNlaXB0cyAoWyMmIzgyMDM7MTk2MjNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTYyMykpCi0gU2tpcCBVbml4LXNwZWNpZmljIGluc3RhbGxhdGlvbiBzdGVwcyB3aGVuIGNyb3NzLWluc3RhbGxpbmcgV2luZG93cyBQeXRob24gZGlzdHJpYnV0aW9ucyAoWyMmIzgyMDM7MTk0MjRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTQyNCkpCgojIyMgW2B2MC4xMS4xOGBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCMwMTExOCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9jb21wYXJlLzAuMTEuMTcuLi4wLjExLjE4KQoKUmVsZWFzZWQgb24gMjAyNi0wNi0wMS4KCiMjIyMjIFBlcmZvcm1hbmNlCgotIEZpeCBwZXJmb3JtYW5jZSByZWdyZXNzaW9uIGluIHVuemlwIG9mIGxvY2FsIHdoZWVscyAoWyMmIzgyMDM7MTk2MzddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTYzNykpCgojIyMjIyBQcmV2aWV3CgotIEFkZCBgdXYgY2hlY2tgIHRvIHJ1biBgdHlgIGZyb20gdXYgKFsjJiM4MjAzOzE5NjA1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk2MDUpKQoKIyMjIyMgQnVnIGZpeGVzCgotIFVwZGF0ZSBhY3RpdmF0aW9uIHNjcmlwdHMgd2l0aCB1cHN0cmVhbSBmaXhlcyAoWyMmIzgyMDM7MTk2MjhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTYyOCkpCgojIyMjIyBPdGhlciBjaGFuZ2VzCgotIEJ1bXAgTVNSViB0byAxLjk0IChbIyYjODIwMzsxOTYwMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NjAwKSkKCiMjIyBbYHYwLjExLjE3YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzAxMTE3KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L2NvbXBhcmUvMC4xMS4xNi4uLjAuMTEuMTcpCgpSZWxlYXNlZCBvbiAyMDI2LTA1LTI4LgoKIyMjIyMgRW5oYW5jZW1lbnRzCgotIEFkZCBhIGRpYWdub3N0aWMgZm9yIGB1diBhZGRgIHdpdGggc3RhbmRhcmQgbGlicmFyeSBtb2R1bGVzIChbIyYjODIwMzsxOTU3Ml0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NTcyKSkKLSBFeHBvc2UgYHV2IHdvcmtzcGFjZWAgYW5kIGl0cyBgbGlzdGAgc3ViY29tbWFuZCBpbiBoZWxwIG91dHB1dCAoWyMmIzgyMDM7MTk1MzNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTUzMykpCi0gSW1wcm92ZSB0aGUgIjQwMyBmb3JiaWRkZW4iIGhpbnQgdG8gc3VnZ2VzdCBgaWdub3JlLWVycm9yLWNvZGVzYCB3aGVuIGFwcGxpY2FibGUgKFsjJiM4MjAzOzE5NTIxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk1MjEpKQotIFNraXAgZGlyZWN0IFVSTCBsb2NrIGZyZXNobmVzcyBjaGVja3Mgd2hpbGUgb2ZmbGluZSAoWyMmIzgyMDM7MTk1OTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTU5NikpCi0gQWRkIGBpbXBvcnQtbmFtZXNgIGFuZCBgaW1wb3J0LW5hbWVzcGFjZXNgIHN1cHBvcnQgdG8gYHV2LWJ1aWxkYCAoW1BFUCA3OTRdKGh0dHBzOi8vcGVwcy5weXRob24ub3JnL3BlcC0wNzk0LykpIChbIyYjODIwMzsxOTM4MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MzgwKSkKLSBBZGQgYSBgLS1uby1lZGl0YWJsZS1wYWNrYWdlYCBmbGFnIHRvIHZhcmlvdXMgY29tbWFuZHMgKFsjJiM4MjAzOzE5NTg0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk1ODQpKQotIEluZmVyIFB5dGhvbiB2ZXJzaW9uIHJlcXVlc3RzIGZyb20gc291cmNlIHRyZWVzIGluIGB1diB0b29sYCBpbnZvY2F0aW9ucyAoWyMmIzgyMDM7MTk1NzddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTU3NykpCgojIyMjIyBQcmV2aWV3IGZlYXR1cmVzCgotIEFkZCBtb2R1bGUgb3duZXJzIHRvIGB1diB3b3Jrc3BhY2UgbWV0YWRhdGFgIChbIyYjODIwMzsxOTEyMl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MTIyKSkKLSBEbyBub3QgYWxsb3cgYHV2IHZlbnYgLS1jbGVhcmAgdG8gcmVtb3ZlIG5vbi12aXJ0dWFsIGVudmlyb25tZW50cyAoWyMmIzgyMDM7MTk1OTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTU5NSkpCgojIyMjIyBCdWcgZml4ZXMKCi0gSW1wcm92ZSB0aGUgcGVyZm9ybWFuY2Ugb2YgbGFyZ2UgZW50cmllcyBpbiBgdG9vbC51di5jb25mbGljdHNgIChbIyYjODIwMzsxOTUzOF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NTM4KSkKLSBBdm9pZCBtb2RpZnlpbmcgdGhlIHBhcmVudCBwcm9jZXNzJyBlbnYgd2l0aCBgLS1lbnYtZmlsZWAgaW4gYHV2IHJ1bmAgKFsjJiM4MjAzOzE5NTY3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk1NjcpKQotIEZpeCBzY3JpcHQgZW52aXJvbm1lbnQgY3JlYXRpb24gZm9yIHNjcmlwdHMgd2l0aCBsb25nIGZpbGVuYW1lcyAoWyMmIzgyMDM7MTk1MzldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTUzOSkpCi0gRml4IHRyYW5zaXRpdmUgR2l0IGFyY2hpdmUgZGVwZW5kZW5jaWVzIGluIGxvY2tmaWxlcyAoWyMmIzgyMDM7MTk1ODldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTU4OSkpCi0gUHJlc2VydmUgR2l0IHJlcG9zaXRvcnkgVVJMcyBpbiBkaXJlY3QgVVJMIG1ldGFkYXRhIChbIyYjODIwMzsxOTU5MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NTkwKSkKLSBTdXBwb3J0IHJlZGlyZWN0cyBpbiBgLS1jaGVjay11cmxgIChbIyYjODIwMzsxOTU5NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NTk0KSkKLSBBY2NlcHQgY2FzZS1pbnNlbnNpdGl2ZSBIVE1MIHRhZ3MgaW4gYC0tZmluZC1saW5rc2AgcGFyc2luZyAoWyMmIzgyMDM7MTk1MzddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTUzNykpCi0gUmVqZWN0IGR1cGxpY2F0ZSBzY3JpcHQgbWV0YWRhdGEgYmxvY2tzIChbIyYjODIwMzsxOTU0NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NTQ0KSkKLSBCYW4gbmFtZXMgbGlrZSAicHl0aG9uMyIgYXMgc2NyaXB0IGVudHJ5IHBvaW50cyAoWyMmIzgyMDM7MTk1MzVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTUzNSksIFsjJiM4MjAzOzE5NTM2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk1MzYpKQotIFZhbGlkYXRlIEdpdCBMRlMgYXJ0aWZhY3RzIGZvciBHaXQgYXJjaGl2ZXMgKFsjJiM4MjAzOzE5NTkyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk1OTIpKQotIFVzZSBhIHJlbGF0aXZlIHBhdGggd2hlbiBjcmVhdGluZyBzeW1saW5rcyBpbiBjYWNoZSB0byBpbXByb3ZlIHJlbG9jYXRhYmlsaXR5IChbIyYjODIwMzsxOTAzM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MDMzKSkKCiMjIyMjIERvY3VtZW50YXRpb24KCi0gRml4IG1hbGZvcm1lZCBwb3NpdGlvbmFsIGFuY2hvcnMgaW4gdGhlIENMSSByZWZlcmVuY2UgKFsjJiM4MjAzOzE5NTc1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk1NzUpKQoKIyMjIFtgdjAuMTEuMTZgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L2Jsb2IvSEVBRC9DSEFOR0VMT0cubWQjMDExMTYpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvY29tcGFyZS8wLjExLjE1Li4uMC4xMS4xNikKClJlbGVhc2VkIG9uIDIwMjYtMDUtMjEuCgojIyMjIyBFbmhhbmNlbWVudHMKCi0gQWRkIHN1cHBvcnQgZm9yIGRpcmVjdCBhcmNoaXZlIGRlcGVuZGVuY2llcyBpbiBHaXQgKFsjJiM4MjAzOzEwMDcyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTAwNzIpKQotIEFkanVzdCBoaW50IHJlbmRlcmluZyAoWyMmIzgyMDM7MTgwOTBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xODA5MCkpCgojIyMjIyBQcmV2aWV3IGZlYXR1cmVzCgotIHV2IGF1ZGl0OiBzcGVjaWFsaXplIG1hbGZvcm1lZCBPU1YgZXJyb3IgKFsjJiM4MjAzOzE5NTE1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk1MTUpKQotIFJlamVjdCBsb2NrZWQgbWFsd2FyZSBpbnN0YWxsYXRpb25zIChbIyYjODIwMzsxODkzNl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE4OTM2KSkKCiMjIyMjIENvbmZpZ3VyYXRpb24KCi0gQWxsb3cgZGlzYWJsaW5nIHJlYWRpbmcgdGhlIHN5c3RlbSBjb25maWcgd2l0aCBgVVZfTk9fU1lTVEVNX0NPTkZJR2AgKFsjJiM4MjAzOzE5NDc2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk0NzYpKQoKIyMjIyMgQnVnIGZpeGVzCgotIEFsbG93IGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IHRha2UgYSBsaXN0IHRvIGJlIGVtcHR5IChbIyYjODIwMzsxOTUwM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NTAzKSkKLSBFbnN1cmUgdGhhdCBpbmNvbXBhdGlibGUgd2hlZWwgaGludHMgZG8gbm90IGxlYWsgc2VjcmV0cyAoWyMmIzgyMDM7MTk1MDRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTUwNCkpCi0gUmVqZWN0IHVuc2FmZSBlbnRyeSBwb2ludHMgaW4gYHV2LWJ1aWxkYCAoWyMmIzgyMDM7MTk0OTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTQ5NSkpCi0gUmVzdHJpY3QgZGVsaW1pdGVycyBpbiBlbnRyeSBwb2ludCBwYXJzaW5nIChbIyYjODIwMzsxOTQ3MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NDcxKSkKLSB1di1uZXRyYzogZml4IG11bHRpLXdvcmQgbm8tc3BhY2UgY29tbWVudCBsaW5lcyBjYXVzaW5nIHBhcnNlIGVycm9ycyAoWyMmIzgyMDM7MTk0OTRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTQ5NCkpCgojIyMjIyBEb2N1bWVudGF0aW9uCgotIERvY3VtZW50IGFuZCB0ZXN0IHJlbGF0aXZlIGV4Y2x1ZGUtbmV3ZXIgc3VwcG9ydCBmb3IgdXYgcGlwIChbIyYjODIwMzsxOTQ3NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NDc1KSkKCiMjIyBbYHYwLjExLjE1YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzAxMTE1KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L2NvbXBhcmUvMC4xMS4xNC4uLjAuMTEuMTUpCgpSZWxlYXNlZCBvbiAyMDI2LTA1LTE4LgoKIyMjIyMgU2VjdXJpdHkKCi0gRml4IGEgVEFSIHBhcnRpYWwgZGlmZmVyZW50aWFsLCBzZWUgW0dIU0EtM2N2Mi1oNjVnLWZnbW1dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdG9raW8tdGFyL3NlY3VyaXR5L2Fkdmlzb3JpZXMvR0hTQS0zY3YyLWg2NWctZmdtbSkgKFsjJiM4MjAzOzE5NDYzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk0NjMpKQotIEVuZm9yY2UgdGhhdCBlbnRyeSBwb2ludHMgY2Fubm90IGVzY2FwZSBpbiB0aGUgc2NyaXB0cyBkaXJlY3RvcnksIHNlZSBbR0hTQS00Z2c4LWd4cHgtOXJwaF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC90b2tpby10YXIvc2VjdXJpdHkvYWR2aXNvcmllcy9HSFNBLTRnZzgtZ3hweC05cnBoKSAoWyMmIzgyMDM7MTk0NjRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTQ2NCkpCgojIyMjIyBFbmhhbmNlbWVudHMKCi0gQWRkIFRPTUwgdjEuMSAtPiB2MS4wIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciBzb3VyY2UgZGlzdHJpYnV0aW9ucyAoWyMmIzgyMDM7MTg3NDFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xODc0MSkpCi0gQWRkIHN1cHBvcnQgZm9yIEF6dXJlIHJlcXVlc3Qgc2lnbmluZyAoWyMmIzgyMDM7MTk0MjFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTQyMSkpCi0gQXBwbHkgc3RyaWN0ZXIgdmFsaWRhdGlvbiB0byBhbGwgd2hlZWwgZmlsZW5hbWUgc2VnbWVudHMgKFsjJiM4MjAzOzE5MzY0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkzNjQpKQotIFJlamVjdCBlbXB0eSBzdHJpbmdzIGFzIGFuIGludmFsaWQgcGFja2FnZSBuYW1lIChbIyYjODIwMzsxOTQzNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NDM1KSkKLSBVc2Ugc3RydWN0dXJlZCBlcnJvcnMgZm9yIHNpZ25pbmcgYXV0aGVudGljYXRpb24gZmFpbHVyZXMgKFsjJiM4MjAzOzE5NDIyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk0MjIpKQoKIyMjIyMgUHJldmlldwoKLSB1diBhdWRpdDogQWRkIEpTT04gb3V0cHV0IChbIyYjODIwMzsxOTMwNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MzA1KSkKCiMjIyMjIENvbmZpZ3VyYXRpb24KCi0gUmVzcGVjdCBgcmVxdWlyZWQtZW52aXJvbm1lbnRzYCBpbiBgdXYgcGlwIGNvbXBpbGVgIChbIyYjODIwMzsxOTM3OF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5Mzc4KSkKCiMjIyMjIFBlcmZvcm1hbmNlCgotIEF2b2lkIHBhcnNpbmcgSlNPTiBtYW5pZmVzdCB3aGVuIGxvY2FsIFB5dGhvbiBpcyBhdmFpbGFibGUgKFsjJiM4MjAzOzE5Mzk4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkzOTgpKQotIEF2b2lkIHdhbGtpbmcgbmVzdGVkIGRpcmVjdG9yaWVzIGluIGxpbmtlciBjb25mbGljdCByZWdpc3RyYXRpb24gKFsjJiM4MjAzOzE5MzgyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkzODIpKQotIE9wdGltaXplIGFzeW5jIHdoZWVsIFpJUCB3cml0aW5nIChbIyYjODIwMzsxOTM4M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MzgzKSkKLSBGaXggZGVhZCAiYWxyZWFkeSB0cmltbWVkIiBmYXN0LXBhdGggaW4gYFZlcnNpb246Om9ubHlfcmVsZWFzZV90cmltbWVkYCAoWyMmIzgyMDM7MTk0MjVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTQyNSkpCgojIyMjIyBCdWcgZml4ZXMKCi0gQXBwbHkgd29ya3NwYWNlLW1lbWJlciBgW3Rvb2wudXYuc291cmNlc11gIGNyZWRlbnRpYWxzIHVuZGVyIGB1diBzeW5jIC0tZnJvemVuYCAoWyMmIzgyMDM7MTk0MjNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTQyMykpCi0gU2tpcCBlbXB0eSBkaXJlY3RvcmllcyBpbiB1diBidWlsZCBvdXRwdXRzIChbIyYjODIwMzsxOTQzN10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5NDM3KSkKLSBGaXggR2l0IHN1Ym1vZHVsZSBoYW5kbGluZyB3aGVuIHVzaW5nIHJlbGF0aXZlIHBhdGhzIChbIyYjODIwMzsxMjE1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEyMTU2KSkKLSBGaXggbGluZSBudW1iZXIgcmVwb3J0aW5nIGluIG5ldHJjIHBhcnNpbmcgKFsjJiM4MjAzOzE5NDUyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTk0NTIpKQoKIyMjIyMgRG9jdW1lbnRhdGlvbgoKLSBNb3ZlIEJhemVsIGF1dGggaGVscGVyIHNldHVwIGludG8gaW50ZWdyYXRpb24gZ3VpZGUgKFsjJiM4MjAzOzE5MzkyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkzOTIpKQoKIyMjIFtgdjAuMTEuMTRgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L2Jsb2IvSEVBRC9DSEFOR0VMT0cubWQjMDExMTQpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvY29tcGFyZS8wLjExLjEzLi4uMC4xMS4xNCkKClJlbGVhc2VkIG9uIDIwMjYtMDUtMTIuCgojIyMjIyBFbmhhbmNlbWVudHMKCi0gQWRkIEFzdHJhbCBtaXJyb3IgVVJMIG92ZXJyaWRlIChbIyYjODIwMzsxOTIwNl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MjA2KSkKLSBJZ25vcmUgYHRvcF9sZXZlbC50eHRgIGVudHJpZXMgaW4gdW5pbnN0YWxsIHRoYXQgYXJlIG5vdCB2YWxpZCBQeXRob24gaWRlbnRpZmllcnMgKFsjJiM4MjAzOzE5MzQwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkzNDApKQoKIyMjIyMgQnVnIGZpeGVzCgotIEF2b2lkIGFwcGx5aW5nIGAuZW52YCBmaWxlcyBpbiBwYXJlbnQgcHJvY2VzcyAoWyMmIzgyMDM7MTkzNDNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTM0MykpCi0gRmlsdGVyIEFOU0kgY29kZXMgaW4gbG9nZ2luZyBvdXRwdXQgKFsjJiM4MjAzOzE5MzExXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkzMTEpKQotIEZpeCBgdXYgdHJlZWAgc2hvd2luZyBleHRyYS1jb25kaXRpb25hbCBkZXBzIGZvciBwYWNrYWdlcyByZXF1aXJlZCB3aXRob3V0IGV4dHJhcyAoWyMmIzgyMDM7MTkzMzJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTMzMikpCi0gUmVzcGVjdCBidWlsZCBvcHRpb25zIChlLmcuLCBgLS1uby1idWlsZGApIGR1cmluZyBsb2NrIHZhbGlkYXRpb24gKFsjJiM4MjAzOzE5MzY2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkzNjYpKQoKIyMjIFtgdjAuMTEuMTNgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L2Jsb2IvSEVBRC9DSEFOR0VMT0cubWQjMDExMTMpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvY29tcGFyZS8wLjExLjEyLi4uMC4xMS4xMykKClJlbGVhc2VkIG9uIDIwMjYtMDUtMTAuCgojIyMjIyBCdWcgZml4ZXMKCi0gSW5jbHVkZSBkYXRhIGZpbGVzIGluIGVkaXRhYmxlIGJ1aWxkcyAoWyMmIzgyMDM7MTkzMTJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTMxMikpCi0gUmVzcGVjdCBgLS1yZXF1aXJlLWhhc2hlc2Agd2hlbiBpbnN0YWxsaW5nIGZyb20gYHB5bG9jay50b21sYCBmaWxlcyAoWyMmIzgyMDM7MTkzMzRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTMzNCkpCgojIyMjIyBQeXRob24KCi0gQWRkIENQeXRob24gMy4xNC41CgojIyMgW2B2MC4xMS4xMmBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCMwMTExMikKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9jb21wYXJlLzAuMTEuMTEuLi4wLjExLjEyKQoKUmVsZWFzZWQgb24gMjAyNi0wNS0wOC4KCiMjIyMjIFB5dGhvbgoKLSBBZGQgQ1B5dGhvbiAzLjE1LjBiMQoKIyMjIyMgRW5oYW5jZW1lbnRzCgotIEFkZCBgLS1uby1lZGl0YWJsZWAgc3VwcG9ydCB0byBgdXYgcGlwIGluc3RhbGxgIChbIyYjODIwMzsxOTMwNl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MzA2KSkKLSBSZXF1aXJlIGdpdCByZWZzIGluIFVSTHMgdG8gYmUgcGVyY2VudC1lbmNvZGVkIChbIyYjODIwMzsxOTMyMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MzIwKSkKCiMjIyMjIEJ1ZyBmaXhlcwoKLSBSZXNwZWN0IGAtLW5vLWRldmAgb3ZlciBgVVZfREVWPTFgIChbIyYjODIwMzsxOTMxM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MzEzKSkKCi0gRG9uJ3Qgc3VnZ2VzdCBub24tZXhpc3RlbnQgYC0tbm8tZnJvemVuYCBmbGFnIChbIyYjODIwMzsxOTI5MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9pc3N1ZXMvMTkyOTApKSAoWyMmIzgyMDM7MTkyOTRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTI5NCkpCgojIyMjIyBEb2N1bWVudGF0aW9uCgotIEZpeCBidWcgZnJvbSBpbmNvbnNpc3RlbnQgd29ya2Zsb3cgbmFtZSBpbiBHSEEtUHlQSSBndWlkZSBleGFtcGxlIChbIyYjODIwMzsxOTMwOV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MzA5KSkKCiMjIyBbYHYwLjExLjExYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzAxMTExKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L2NvbXBhcmUvMC4xMS4xMC4uLjAuMTEuMTEpCgpSZWxlYXNlZCBvbiAyMDI2LTA1LTA2LgoKIyMjIyMgQnVnIGZpeGVzCgotIEFjY2VwdCBsZWdhY3kgSUQgZm9ybWF0IGZyb20gcHJlLTAuMTEuOSBjYWNoZSBlbnRyaWVzIChbIyYjODIwMzsxOTMwMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MzAxKSkKCiMjIyBbYHYwLjExLjEwYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzAxMTEwKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L2NvbXBhcmUvMC4xMS45Li4uMC4xMS4xMCkKClJlbGVhc2VkIG9uIDIwMjYtMDUtMDUuCgojIyMjIyBCdWcgZml4ZXMKCi0gQWxsb3cgcHJlLXJlbGVhc2UgUHl0aG9uIHJlcXVlc3RzIHdpdGggbm9uLXplcm8gcGF0Y2ggdmVyc2lvbnMgKFsjJiM4MjAzOzE5Mjg2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkyODYpKQoKIyMjIFtgdjAuMTEuOWBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCMwMTE5KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L2NvbXBhcmUvMC4xMS44Li4uMC4xMS45KQoKUmVsZWFzZWQgb24gMjAyNi0wNS0wNC4KClRoaXMgcmVsZWFzZSBpbmNsdWRlcyBhIHNwZWNpYWwgcmVsZWFzZSBjYW5kaWRhdGUgZm9yIHRoZSBuZXh0IFB5dGhvbiAzLjE0IHBhdGNoIHJlbGVhc2UuIFB5dGhvbiAzLjE0IGluY2x1ZGVkIGEgbmV3IGdhcmJhZ2UgY29sbGVjdGlvbiBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggcmVkdWNlZCBwYXVzZSB0aW1lcyBidXQgY2F1c2VkIHNpZ25pZmljYW50IHVuZXhwZWN0ZWQgbWVtb3J5IHByZXNzdXJlIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLiBJbiAzLjE0LjUgYW5kIDMuMTUsIHRoZSBwcmV2aW91cyBnYXJiYWdlIGNvbGxlY3Rpb24gaW1wbGVtZW50YXRpb24gd2lsbCBiZSByZXN0b3JlZC4KCldlIHdvdWxkIGdyZWF0bHkgYXBwcmVjaWF0ZSBpZiB5b3UgdGVzdGVkIHRoZSAzLjE0LjVyYzEgdmVyc2lvbiBpbmNsdWRlZCBpbiB0aGlzIHJlbGVhc2UuIFRoZSBzdGFibGUgdmVyc2lvbiBpcyBleHBlY3RlZCB0byBiZSByZWxlYXNlZCBzb29uIGFuZCBhbnkgZmVlZGJhY2sgb24gcG90ZW50aWFsIGlzc3VlcyB3b3VsZCBiZSBoZWxwZnVsIHRvIHRoZSBQeXRob24gZGV2ZWxvcG1lbnQgdGVhbS4KCkZvciBtb3JlIGNvbnRleHQsIHNlZSB0aGUgW2Fubm91bmNlbWVudF0oaHR0cHM6Ly9kaXNjdXNzLnB5dGhvbi5vcmcvdC9yZXZlcnRpbmctdGhlLWluY3JlbWVudGFsLWdjLWluLXB5dGhvbi0zLTE0LWFuZC0zLTE1LzEwNzAxNCksIFtpc3N1ZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5dGhvbi9jcHl0aG9uL2lzc3Vlcy8xNDg3MjYpLCBhbmQgW3B1bGwgcmVxdWVzdF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3B5dGhvbi9jcHl0aG9uL3B1bGwvMTQ4NzIwKS4KCklzc3VlcyB3aXRoIHRoZSBuZXcgcmVsZWFzZSBjYW4gYmUgcmVwb3J0ZWQgaW4gdGhlIHV2IG9yIENQeXRob24gaXNzdWUgdHJhY2tlcnMuCgojIyMjIyBQeXRob24KCi0gVXBncmFkZSBQeVB5IHRvIHY3LjMuMjIKLSBBZGQgQ1B5dGhvbiAzLjE0LjVyYzEKLSBPbiBtYWNPUywgQ1B5dGhvbiBzdGF0aWNhbGx5IGxpbmtzIGBsaWJweXRob25gIHRvIG1hdGNoIExpbnV4CgojIyMjIyBFbmhhbmNlbWVudHMKCi0gT21pdCBjb21wYXRpYmxlIHJlbGVhc2UgZGVzdWdhcmluZyBmb3IgcHJlLXJlbGVhc2UgaGludHMgKFsjJiM4MjAzOzE5MjY3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkyNjcpKQotIEZpeCBmaWxlIGxvY2tzIG9uIEFuZHJvaWQgKFsjJiM4MjAzOzE4MzIzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTgzMjMpKQoKIyMjIyMgUHJldmlldwoKLSBgdXYgYXVkaXRgIGFkZCByZXBvcnRpbmcgZm9yIGFkdmVyc2UgcHJvamVjdCBzdGF0dXNlcyAoWyMmIzgyMDM7MTkxMjhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTEyOCkpCgojIyMjIyBCdWcgZml4ZXMKCi0gRGlzY292ZXIgdmVyc2lvbmVkIFB5dGhvbiBleGVjdXRhYmxlcyB3aGVuIGByZXF1aXJlcy1weXRob25gIHBpbnMgYSB2ZXJzaW9uIChbIyYjODIwMzsxODcwMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE4NzAwKSkKLSBGaXggVVJMIHByZWZpeCBtYXRjaGluZyB0byByZXF1aXJlIHBhdGggYm91bmRhcmllcyAoWyMmIzgyMDM7MTkxNTRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTE1NCkpCi0gRml4IHRyYW5zaXRpdmUgR2l0IHBhdGggZGVwZW5kZW5jaWVzIGluIGxvY2tmaWxlcyAoWyMmIzgyMDM7MTkyNjldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTI2OSkpCi0gSGFuZGxlIGluY29ycmVjdCB1bmxvY2sgZXJyb3IgaW4gYExvY2tlZEZpbGU6OmRyb3BgIG9uIFdpbmUgKFsjJiM4MjAzOzE5MjI5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkyMjkpKQotIFByZXZlbnQgdW5pbnN0YWxsaW5nIHNpdGUtcGFja2FnZXMgZm9yIGVtcHR5IGB0b3BfbGV2ZWwudHh0YCBpbiBgLmVnZy1pbmZvYCAoWyMmIzgyMDM7MTkxMTRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTExNCkpCi0gVXNlIHN5bWxpbmtzIGluc3RlYWQgb2YganVuY3Rpb25zIG9uIFdpbmUgKFsjJiM4MjAzOzE5MjEzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkyMTMpKQotIEZpeCBmbG9hdGluZy1wb2ludCBlbnZpcm9ubWVudCBoYW5kbGluZyBvbiBBUk12NyAoWyMmIzgyMDM7MTkxNTddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTE1NykpCi0gUmVkYWN0IGNyZWRlbnRpYWxzIGZyb20gcmVtb3RlIHJlcXVpcmVtZW50cyBVUkwgaW4gb2ZmbGluZSBlcnJvcnMgKFsjJiM4MjAzOzE5MjE2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkyMTYpKQotIFdpbmRvd3MgdHJhbXBsb2xpbmVzIG5vIGxvbmdlciBzZXQgYFBZVEhPTkhPTUVgIGFuZCBvbmx5IHNldCBgX19QWVZFTlZfTEFVTkNIRVJfX2AgZm9yIHZpcnR1YWwgZW52aXJvbm1lbnRzIChbIyYjODIwMzsxOTE5OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MTk5KSkKCiMjIyMjIERvY3VtZW50YXRpb24KCi0gTWFyayBgLS1uYXRpdmUtdGxzYCBhbmQgYFVWX05BVElWRV9UTFNgIGFzIGRlcHJlY2F0ZWQgKFsjJiM4MjAzOzE4NzA1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTg3MDUpKQotIFJlLWFkZCBgcHl0b3JjaC10cml0b24tcm9jbWAgdG8gUHlUb3JjaCBST0NtIGRvY3MgKFsjJiM4MjAzOzE5MjQxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkyNDEpKQotIFR3ZWFrIGNoYW5nZWxvZyBlbnRyaWVzIGZvciAwLjExLjggKFsjJiM4MjAzOzE5MTg4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkxODgpKQotIEFkZCAnRXhwb3J0aW5nIGxvY2tmaWxlcycgdG8gdGhlIENvbmNlcHRzLT5Qcm9qZWN0cyBpbmRleCAoWyMmIzgyMDM7MTkyMDldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTIwOSkpCi0gQ2xhcmlmeSB0aGF0IGB1diBpbml0YCBjcmVhdGVzIGdpdCBmaWxlcyAvIGZvbGRlcnMgaW4gdGhlIHByb2plY3RzIGd1aWRlIChbIyYjODIwMzsxOTE4M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MTgzKSkKCiMjIyBbYHYwLjExLjhgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L2Jsb2IvSEVBRC9DSEFOR0VMT0cubWQjMDExOCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9jb21wYXJlLzAuMTEuNy4uLjAuMTEuOCkKClJlbGVhc2VkIG9uIDIwMjYtMDQtMjcuCgojIyMjIyBFbmhhbmNlbWVudHMKCi0gQWRkIGAtLXB5dGhvbi1kb3dubG9hZHMtanNvbi11cmxgIHRvIGBweXRob24gcGluYCAoWyMmIzgyMDM7MTkwOTJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTA5MikpCi0gRmV0Y2ggdXYgZnJvbSBBc3RyYWwgbWlycm9yIGR1cmluZyBzZWxmLXVwZGF0ZSAoWyMmIzgyMDM7MTg2ODJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xODY4MikpCi0gU3VwcG9ydCBgcGlwIHVuaW5zdGFsbCAteWAgKFsjJiM4MjAzOzE5MDgyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkwODIpKQotIEFkZCBgVVZfUFlUSE9OX05PX1JFR0lTVFJZYCAoWyMmIzgyMDM7MTkwMzVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTAzNSkpCi0gQWxsb3cgYGV4Y2x1ZGUtbmV3ZXJgIHRvIGJlIG1pc3NpbmcgZnJvbSB0aGUgbG9ja2ZpbGUgd2hlbiBgZXhjbHVkZS1uZXdlci1zcGFuYCBpcyBwcmVzZW50IChbIyYjODIwMzsxOTAyNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MDI0KSkKLSBPbmx5IHNob3cgdGhlIHZlcnNpb24gbnVtYmVyIGluIGB1diBzZWxmIHZlcnNpb24gLS1zaG9ydGAgKFsjJiM4MjAzOzE5MDE5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkwMTkpKQotIFNpbGVuY2Ugd2FybmluZ3Mgb24gZW1wdHkgYFNTTF9DRVJUX0RJUmAgZGlyZWN0b3J5IChbIyYjODIwMzsxOTAxOF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MDE4KSkKLSBVc2UgYSBzZW50aW5lbCB0aW1lc3RhbXAgZm9yIHJlbGF0aXZlIGBleGNsdWRlLW5ld2VyYCBhbmQgYGV4Y2x1ZGUtbmV3ZXItcGFja2FnZWAgdmFsdWVzIGluIGxvY2tmaWxlcyAoWyMmIzgyMDM7MTkwMjJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTAyMiksIFsjJiM4MjAzOzE5MTAxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkxMDEpKQoKIyMjIyMgQ29uZmlndXJhdGlvbgoKLSBBZGQgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgZm9yIGBVVl9OT19QUk9KRUNUYCAoWyMmIzgyMDM7MTkwNTJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTA1MikpCi0gRXhwb3NlIGBVVl9QWVRIT05fU0VBUkNIX1BBVEhgIGZvciBQeXRob24gZGlzY292ZXJ5IGBQQVRIYCBvdmVycmlkZXMgKFsjJiM4MjAzOzE5MDM0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkwMzQpKQoKIyMjIyMgQnVnIGZpeGVzCgotIEFkZCBgcnVzdC10b29sY2hhaW4udG9tbGAgdG8gdXYtYnVpbGQgc2Rpc3QgKFsjJiM4MjAzOzE5MTMxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkxMzEpKQotIEVuc3VyZSB1diBpbnZvY2F0aW9ucyBvZiBnaXQgZG8gbm90IGluaGVyaXQgcmVwb3NpdG9yeSBsb2NhdGlvbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKFsjJiM4MjAzOzE5MDg4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkwODgpKQotIFJlZGFjdCBwcmUtc2lnbmVkIHVwbG9hZCBVUkxzIGluIHZlcmJvc2Ugb3V0cHV0IChbIyYjODIwMzsxOTE0Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MTQ2KSkKLSBIYW5kbGUgdHJhbnNpdGl2ZSBVUkwgZGVwZW5kZW5jaWVzIGluIFBFUCA1MTcgYnVpbGQgcmVxdWlyZW1lbnRzIChbIyYjODIwMzsxOTA3Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MDc2KSwgWyMmIzgyMDM7MTkwODZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTA4NikpCi0gU3VwcG9ydCBgdXYgbG9ja2Agb24gYSBgcHlwcm9qZWN0LnRvbWxgIHRoYXQgb25seSBjb250YWlucyBkZXBlbmRlbmN5LWdyb3VwcyAoWyMmIzgyMDM7MTkwODddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTA4NykpCi0gRGlzYWJsZSB0cmFuc3BhcmVudCBQeXRob24gdXBncmFkZXMgaW4gcHJvamVjdHMgd2hlbiBhIHBhdGNoIHZlcnNpb24gaXMgcmVxdWVzdGVkIHZpYSBgLnB5dGhvbi12ZXJzaW9uYCAoWyMmIzgyMDM7MTkxMDJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTEwMikpCi0gRml4IFB5dGhvbiB2YXJpYW50IHRhZ2dpbmcgaW4gdGhlIFdpbmRvd3MgcmVnaXN0cnkgKFsjJiM4MjAzOzE5MDEyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTkwMTIpKQotIFVzZSBhIHNpbmdsZSBjb2RlcGF0aCBmb3IgZXh0cmFjdGluZyBhIC50YXIuenN0IHdoZWVsLCBkaXNhbGxvd2luZyBleHRlcm5hbCBzeW1saW5rcyAoWyMmIzgyMDM7MTkxNDRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTE0NCkpCgojIyMjIyBEb2N1bWVudGF0aW9uCgotIEJ1bXAgYXN0cmFsLXNoL3NldHVwLXV2IHZlcnNpb24gaW4gZG9jcyAoWyMmIzgyMDM7MTkwMzBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xOTAzMCkpCi0gVXBkYXRlIFB5VG9yY2ggZG9jdW1lbnRhdGlvbiBmb3IgUHlUb3JjaCAyLjExIChbIyYjODIwMzsxOTA5NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MDk1KSkKLSBSZW1vdmUgZGVwcmVjYXRlZCBsaWNlbnNlIGNsYXNzaWZpZXJzIGZyb20gdXYtYnVpbGQgYW5kIGFkZCBQeXRob24gMy4xNCBjbGFzc2lmaWVyIChbIyYjODIwMzsxOTEzMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzE5MTMwKSkKCjwvZGV0YWlscz4KCi0tLQoKIyMjIENvbmZpZ3VyYXRpb24KCvCfk4UgKipTY2hlZHVsZSoqOiAoVVRDKQoKLSBCcmFuY2ggY3JlYXRpb24KICAtIEF0IGFueSB0aW1lIChubyBzY2hlZHVsZSBkZWZpbmVkKQotIEF1dG9tZXJnZQogIC0gQXQgYW55IHRpbWUgKG5vIHNjaGVkdWxlIGRlZmluZWQpCgrwn5qmICoqQXV0b21lcmdlKio6IERpc2FibGVkIGJ5IGNvbmZpZy4gUGxlYXNlIG1lcmdlIHRoaXMgbWFudWFsbHkgb25jZSB5b3UgYXJlIHNhdGlzZmllZC4KCuKZuyAqKlJlYmFzaW5nKio6IFdoZW5ldmVyIFBSIGJlY29tZXMgY29uZmxpY3RlZCwgb3IgeW91IHRpY2sgdGhlIHJlYmFzZS9yZXRyeSBjaGVja2JveC4KCvCflJUgKipJZ25vcmUqKjogQ2xvc2UgdGhpcyBQUiBhbmQgeW91IHdvbid0IGJlIHJlbWluZGVkIGFib3V0IHRoaXMgdXBkYXRlIGFnYWluLgoKLS0tCgogLSBbIF0gPCEtLSByZWJhc2UtY2hlY2sgLS0+SWYgeW91IHdhbnQgdG8gcmViYXNlL3JldHJ5IHRoaXMgUFIsIGNoZWNrIHRoaXMgYm94CgotLS0KClRoaXMgUFIgd2FzIGdlbmVyYXRlZCBieSBbTWVuZCBSZW5vdmF0ZV0oaHR0cHM6Ly9tZW5kLmlvL3Jlbm92YXRlLykuIFZpZXcgdGhlIFtyZXBvc2l0b3J5IGpvYiBsb2ddKGh0dHBzOi8vZGV2ZWxvcGVyLm1lbmQuaW8vZ2l0aHViL3ZleHhob3N0L21hZ251bS1jbHVzdGVyLWFwaSkuCjwhLS1yZW5vdmF0ZS1kZWJ1ZzpleUpqY21WaGRHVmtTVzVXWlhJaU9pSTBNeTR4TkRFdU15SXNJblZ3WkdGMFpXUkpibFpsY2lJNklqUXpMakl4T1M0d0lpd2lkR0Z5WjJWMFFuSmhibU5vSWpvaWJXRnBiaUlzSW14aFltVnNjeUk2VzExOS0tPgo=
      override_checkout: master
      patchset: ddcf92356e6798d791ee5d3cb5c28d8ba5c88863
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/vexxhost/zuul-config:
            canonical_name: github.com/vexxhost/zuul-config
            checkout: main
            commit: 298983cd1253e6833abdb49d87d912527e0e6597
          trusted/project_1/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: 82e3e8b1292a25e38235bb92b157992d326531d1
          trusted/project_2/github.com/vexxhost/zuul-jobs:
            canonical_name: github.com/vexxhost/zuul-jobs
            checkout: main
            commit: 348c7ff425450b0356e1d84589143dce260be74a
          untrusted/project_0/opendev.org/openstack/devstack:
            canonical_name: opendev.org/openstack/devstack
            checkout: master
            commit: 37fb911deef99dce62bfce22cce767b821a23bb1
          untrusted/project_1/opendev.org/openstack/openstack-zuul-jobs:
            canonical_name: opendev.org/openstack/openstack-zuul-jobs
            checkout: master
            commit: aebda82f8822e38db5bbd25ab31ea110792e8c2b
          untrusted/project_2/github.com/vexxhost/zuul-config:
            canonical_name: github.com/vexxhost/zuul-config
            checkout: main
            commit: 298983cd1253e6833abdb49d87d912527e0e6597
          untrusted/project_3/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: 82e3e8b1292a25e38235bb92b157992d326531d1
          untrusted/project_4/github.com/vexxhost/zuul-jobs:
            canonical_name: github.com/vexxhost/zuul-jobs
            checkout: main
            commit: 348c7ff425450b0356e1d84589143dce260be74a
          untrusted/project_5/github.com/vexxhost/magnum-cluster-api:
            canonical_name: github.com/vexxhost/magnum-cluster-api
            checkout: main
            commit: ddcf92356e6798d791ee5d3cb5c28d8ba5c88863
        playbooks:
        - path: untrusted/project_5/github.com/vexxhost/magnum-cluster-api/zuul.d/playbooks/hydrophone/run.yml
          roles:
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/playbook_0/role_1/devstack
            link_target: untrusted/project_0/opendev.org/openstack/devstack
            role_path: ansible/playbook_0/role_1/devstack/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/playbook_0/role_2/openstack-zuul-jobs
            link_target: untrusted/project_1/opendev.org/openstack/openstack-zuul-jobs
            role_path: ansible/playbook_0/role_2/openstack-zuul-jobs/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/playbook_0/role_4/zuul-jobs
            link_target: untrusted/project_3/opendev.org/zuul/zuul-jobs
            role_path: ansible/playbook_0/role_4/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_5/zuul-jobs
            link_target: untrusted/project_4/github.com/vexxhost/zuul-jobs
            role_path: ansible/playbook_0/role_5/zuul-jobs/roles
        post_playbooks:
        - path: untrusted/project_5/github.com/vexxhost/magnum-cluster-api/zuul.d/playbooks/hydrophone/post.yml
          roles:
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/post_playbook_0/role_1/devstack
            link_target: untrusted/project_0/opendev.org/openstack/devstack
            role_path: ansible/post_playbook_0/role_1/devstack/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/post_playbook_0/role_2/openstack-zuul-jobs
            link_target: untrusted/project_1/opendev.org/openstack/openstack-zuul-jobs
            role_path: ansible/post_playbook_0/role_2/openstack-zuul-jobs/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/post_playbook_0/role_4/zuul-jobs
            link_target: untrusted/project_3/opendev.org/zuul/zuul-jobs
            role_path: ansible/post_playbook_0/role_4/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/post_playbook_0/role_5/zuul-jobs
            link_target: untrusted/project_4/github.com/vexxhost/zuul-jobs
            role_path: ansible/post_playbook_0/role_5/zuul-jobs/roles
        - path: untrusted/project_0/opendev.org/openstack/devstack/playbooks/post.yaml
          roles:
          - checkout: master
            checkout_description: playbook branch
            link_name: ansible/post_playbook_1/role_0/devstack
            link_target: untrusted/project_0/opendev.org/openstack/devstack
            role_path: ansible/post_playbook_1/role_0/devstack/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/post_playbook_1/role_1/openstack-zuul-jobs
            link_target: untrusted/project_1/opendev.org/openstack/openstack-zuul-jobs
            role_path: ansible/post_playbook_1/role_1/openstack-zuul-jobs/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/post_playbook_1/role_3/zuul-jobs
            link_target: untrusted/project_3/opendev.org/zuul/zuul-jobs
            role_path: ansible/post_playbook_1/role_3/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/post_playbook_1/role_4/zuul-jobs
            link_target: untrusted/project_4/github.com/vexxhost/zuul-jobs
            role_path: ansible/post_playbook_1/role_4/zuul-jobs/roles
        - path: trusted/project_0/github.com/vexxhost/zuul-config/playbooks/base/post.yaml
          roles:
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/post_playbook_2/role_1/zuul-jobs
            link_target: trusted/project_1/opendev.org/zuul/zuul-jobs
            role_path: ansible/post_playbook_2/role_1/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/post_playbook_2/role_2/zuul-jobs
            link_target: trusted/project_2/github.com/vexxhost/zuul-jobs
            role_path: ansible/post_playbook_2/role_2/zuul-jobs/roles
        - path: trusted/project_0/github.com/vexxhost/zuul-config/playbooks/base/post-logs.yaml
          roles:
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/post_playbook_3/role_1/zuul-jobs
            link_target: trusted/project_1/opendev.org/zuul/zuul-jobs
            role_path: ansible/post_playbook_3/role_1/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/post_playbook_3/role_2/zuul-jobs
            link_target: trusted/project_2/github.com/vexxhost/zuul-jobs
            role_path: ansible/post_playbook_3/role_2/zuul-jobs/roles
        pre_playbooks:
        - path: trusted/project_0/github.com/vexxhost/zuul-config/playbooks/base/pre.yaml
          roles:
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/pre_playbook_0/role_1/zuul-jobs
            link_target: trusted/project_1/opendev.org/zuul/zuul-jobs
            role_path: ansible/pre_playbook_0/role_1/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/pre_playbook_0/role_2/zuul-jobs
            link_target: trusted/project_2/github.com/vexxhost/zuul-jobs
            role_path: ansible/pre_playbook_0/role_2/zuul-jobs/roles
        - path: untrusted/project_0/opendev.org/openstack/devstack/playbooks/pre.yaml
          roles:
          - checkout: master
            checkout_description: playbook branch
            link_name: ansible/pre_playbook_1/role_0/devstack
            link_target: untrusted/project_0/opendev.org/openstack/devstack
            role_path: ansible/pre_playbook_1/role_0/devstack/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/pre_playbook_1/role_1/openstack-zuul-jobs
            link_target: untrusted/project_1/opendev.org/openstack/openstack-zuul-jobs
            role_path: ansible/pre_playbook_1/role_1/openstack-zuul-jobs/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/pre_playbook_1/role_3/zuul-jobs
            link_target: untrusted/project_3/opendev.org/zuul/zuul-jobs
            role_path: ansible/pre_playbook_1/role_3/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/pre_playbook_1/role_4/zuul-jobs
            link_target: untrusted/project_4/github.com/vexxhost/zuul-jobs
            role_path: ansible/pre_playbook_1/role_4/zuul-jobs/roles
        - path: untrusted/project_5/github.com/vexxhost/magnum-cluster-api/zuul.d/playbooks/hydrophone/pre.yml
          roles:
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/pre_playbook_2/role_1/devstack
            link_target: untrusted/project_0/opendev.org/openstack/devstack
            role_path: ansible/pre_playbook_2/role_1/devstack/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/pre_playbook_2/role_2/openstack-zuul-jobs
            link_target: untrusted/project_1/opendev.org/openstack/openstack-zuul-jobs
            role_path: ansible/pre_playbook_2/role_2/openstack-zuul-jobs/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/pre_playbook_2/role_4/zuul-jobs
            link_target: untrusted/project_3/opendev.org/zuul/zuul-jobs
            role_path: ansible/pre_playbook_2/role_4/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/pre_playbook_2/role_5/zuul-jobs
            link_target: untrusted/project_4/github.com/vexxhost/zuul-jobs
            role_path: ansible/pre_playbook_2/role_5/zuul-jobs/roles
      post_review: false
      post_timeout: null
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/vexxhost/magnum-cluster-api
        name: vexxhost/magnum-cluster-api
        short_name: magnum-cluster-api
        src_dir: src/github.com/vexxhost/magnum-cluster-api
      projects:
        github.com/novnc/novnc:
          canonical_hostname: github.com
          canonical_name: github.com/novnc/novnc
          checkout: master
          checkout_description: job override ref
          commit: 7c36fabe599e053c5a81e98e091ac636f6c1e174
          name: novnc/novnc
          required: true
          short_name: novnc
          src_dir: src/github.com/novnc/novnc
        github.com/vexxhost/magnum-cluster-api:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/magnum-cluster-api
          checkout: main
          checkout_description: zuul branch
          commit: ddcf92356e6798d791ee5d3cb5c28d8ba5c88863
          name: vexxhost/magnum-cluster-api
          required: false
          short_name: magnum-cluster-api
          src_dir: src/github.com/vexxhost/magnum-cluster-api
        opendev.org/openstack/barbican:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/barbican
          checkout: master
          checkout_description: job override ref
          commit: a9b738f9c21e41c123e60dfe02888477c9886603
          name: openstack/barbican
          required: true
          short_name: barbican
          src_dir: src/opendev.org/openstack/barbican
        opendev.org/openstack/cinder:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/cinder
          checkout: master
          checkout_description: job override ref
          commit: 7b775141853d809cc2f66c8d45710c3d3d6c2230
          name: openstack/cinder
          required: true
          short_name: cinder
          src_dir: src/opendev.org/openstack/cinder
        opendev.org/openstack/devstack:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/devstack
          checkout: master
          checkout_description: job override ref
          commit: 37fb911deef99dce62bfce22cce767b821a23bb1
          name: openstack/devstack
          required: true
          short_name: devstack
          src_dir: src/opendev.org/openstack/devstack
        opendev.org/openstack/glance:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/glance
          checkout: master
          checkout_description: job override ref
          commit: c7a5f6e00037725846ab30df32339fe3fb68df4b
          name: openstack/glance
          required: true
          short_name: glance
          src_dir: src/opendev.org/openstack/glance
        opendev.org/openstack/keystone:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/keystone
          checkout: master
          checkout_description: job override ref
          commit: eb3c0cd99a353fde717155aa80da4ddb4251ffe4
          name: openstack/keystone
          required: true
          short_name: keystone
          src_dir: src/opendev.org/openstack/keystone
        opendev.org/openstack/magnum:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/magnum
          checkout: master
          checkout_description: job override ref
          commit: b9a40a6f0ecd692a1fe7cc0f18454413505b44df
          name: openstack/magnum
          required: true
          short_name: magnum
          src_dir: src/opendev.org/openstack/magnum
        opendev.org/openstack/manila:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/manila
          checkout: master
          checkout_description: job override ref
          commit: 5cf57fbe77c3ede8914294524fefd4f2134c2d40
          name: openstack/manila
          required: true
          short_name: manila
          src_dir: src/opendev.org/openstack/manila
        opendev.org/openstack/neutron:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/neutron
          checkout: master
          checkout_description: job override ref
          commit: de087e8f12a916d46565a360b9a350356d8ed994
          name: openstack/neutron
          required: true
          short_name: neutron
          src_dir: src/opendev.org/openstack/neutron
        opendev.org/openstack/nova:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/nova
          checkout: master
          checkout_description: job override ref
          commit: d8c997c350d745a118b34dfce62701f0013d7a16
          name: openstack/nova
          required: true
          short_name: nova
          src_dir: src/opendev.org/openstack/nova
        opendev.org/openstack/octavia:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/octavia
          checkout: master
          checkout_description: job override ref
          commit: 9ff4683c8212e4c043af69f1b5ebadc21651dc58
          name: openstack/octavia
          required: true
          short_name: octavia
          src_dir: src/opendev.org/openstack/octavia
        opendev.org/openstack/os-test-images:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/os-test-images
          checkout: master
          checkout_description: job override ref
          commit: 5d0367e03788764f41da8effffa14e3eac513201
          name: openstack/os-test-images
          required: true
          short_name: os-test-images
          src_dir: src/opendev.org/openstack/os-test-images
        opendev.org/openstack/ovn-octavia-provider:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/ovn-octavia-provider
          checkout: master
          checkout_description: job override ref
          commit: 890b6266450916ddf9ef8c0a157f3fe4eb03e7a5
          name: openstack/ovn-octavia-provider
          required: true
          short_name: ovn-octavia-provider
          src_dir: src/opendev.org/openstack/ovn-octavia-provider
        opendev.org/openstack/placement:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/placement
          checkout: master
          checkout_description: job override ref
          commit: 3cba66c70ce49e31e582c8d03e945017f38fcf11
          name: openstack/placement
          required: true
          short_name: placement
          src_dir: src/opendev.org/openstack/placement
        opendev.org/openstack/python-magnumclient:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/python-magnumclient
          checkout: master
          checkout_description: job override ref
          commit: 0cee96126c3fed1df41976493c17e4b54923ae5d
          name: openstack/python-magnumclient
          required: true
          short_name: python-magnumclient
          src_dir: src/opendev.org/openstack/python-magnumclient
        opendev.org/openstack/requirements:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/requirements
          checkout: master
          checkout_description: job override ref
          commit: 68f087c3e34429cff85a9b72c52812e94c2d3faa
          name: openstack/requirements
          required: true
          short_name: requirements
          src_dir: src/opendev.org/openstack/requirements
        opendev.org/openstack/swift:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/swift
          checkout: master
          checkout_description: job override ref
          commit: a4fcc02614e9b47c35da234eb0c6c5b2c3b46a4a
          name: openstack/swift
          required: true
          short_name: swift
          src_dir: src/opendev.org/openstack/swift
      ref: refs/pull/1004/head
      resources: {}
      tenant: oss
      timeout: 7200
      topic: null
      voting: true
    zuul_copy_output:
      /etc/ceph: logs
      /etc/glusterfs/glusterd.vol: logs
      /etc/libvirt: logs
      /etc/lvm: logs
      /etc/resolv.conf: logs
      /etc/sudoers: logs
      /etc/sudoers.d: logs
      /var/log/ceph: logs
      /var/log/glusterfs: logs
      /var/log/libvirt: logs
      /var/log/mysql: logs
      /var/log/openvswitch: logs
      /var/log/postgresql: logs
      /var/log/rabbitmq: logs
      /var/log/unbound.log: logs
      '{{ devstack_conf_dir }}/.localrc.auto': logs
      '{{ devstack_conf_dir }}/.stackenv': logs
      '{{ devstack_conf_dir }}/local.conf': logs
      '{{ devstack_conf_dir }}/localrc': logs
      '{{ devstack_full_log}}': logs
      '{{ devstack_log_dir }}/atop': logs
      '{{ devstack_log_dir }}/devstacklog.txt': logs
      '{{ devstack_log_dir }}/devstacklog.txt.summary': logs
      '{{ devstack_log_dir }}/dstat-csv.log': logs
      '{{ devstack_log_dir }}/qemu.coredump': logs
      '{{ devstack_log_dir }}/tcpdump.pcap': logs
      '{{ devstack_log_dir }}/worlddump-latest.txt': logs
      '{{ stage_dir }}/apache': logs
      '{{ stage_dir }}/apache_config': logs
      '{{ stage_dir }}/audit.log': logs
      '{{ stage_dir }}/core': logs
      '{{ stage_dir }}/deprecations.log': logs
      '{{ stage_dir }}/df.txt': logs
      '{{ stage_dir }}/dpkg-l.txt': logs
      '{{ stage_dir }}/etc': logs
      '{{ stage_dir }}/iptables.txt': logs
      '{{ stage_dir }}/listen53.txt': logs
      '{{ stage_dir }}/mount.txt': logs
      '{{ stage_dir }}/performance.json': logs
      '{{ stage_dir }}/pip2-freeze.txt': logs
      '{{ stage_dir }}/pip3-freeze.txt': logs
      '{{ stage_dir }}/rpm-qa.txt': logs
      '{{ stage_dir }}/services.txt': logs
      '{{ stage_dir }}/verify_tempest_conf.log': logs
