Use VZ by default for new instances on macOS >= 13.5

VZ is now the default type for new instances >= 13.5, unless the config is incompatible with vz (e.g., firmware.legacyBIOS=true, mountType=9p).
Existing instances will continue to use QEMU by default, unless vz-identifier is present in the instance directory.
Run limactl start with --debug to see how the vmType is resolved.

@lima-vm/maintainers
I'll release v1.0 beta after merging this.

Here is the logs

(vz-default) lima-vm-lima> limactl --version
limactl version 0.5.0-2060-ged39486
(vz-default) lima-vm-lima> which limactl
/Users/chasan/Work/go/src/github.com/temp/lima-vm-lima/_output/bin/limactl
(vz-default) lima-vm-lima> limactl --debug start
DEBU[0000] Evaluating yq expression: ""
? Creating an instance "default" Proceed with the current configuration
DEBU[0001] ResolveVMType: resolved VMType "vz" (default for macOS 13.5 and later)
DEBU[0001] ResolveVMType: resolved VMType "vz" (default for macOS 13.5 and later)
DEBU[0001] ResolveVMType: resolved VMType "vz" (default for macOS 13.5 and later)
DEBU[0001] ResolveVMType: resolved VMType "vz" (default for macOS 13.5 and later)
DEBU[0001] ResolveVMType: resolved VMType "vz" (explicitly specified in []*LimaYAML{o,y,d}[1])
DEBU[0001] ResolveVMType: resolved VMType "vz" (explicitly specified in []*LimaYAML{o,y,d}[1])
DEBU[0001] ResolveVMType: resolved VMType "qemu" (existing instance, without "/Users/chasan/.lima/podman-rootful-x86/vz-identifier")
DEBU[0001] ResolveVMType: resolved VMType "qemu" (existing instance, without "/Users/chasan/.lima/test/vz-identifier")
DEBU[0001] ResolveVMType: resolved VMType "vz" (explicitly specified in []*LimaYAML{o,y,d}[1])
DEBU[0001] Make sure "host" network is stopped
DEBU[0001] Make sure "user-v2" network is stopped
DEBU[0001] Make sure usernet network is stopped
DEBU[0001] Make sure "shared" network is stopped
DEBU[0001] Make sure "bridged" network is stopped
INFO[0001] Starting the instance "default" with VM driver "vz"
DEBU[0001] ResolveVMType: resolved VMType "vz" (default for macOS 13.5 and later)
INFO[0001] Attempting to download the image              arch=aarch64 digest="sha256:78d35a2f551d281912ee7e5202660d94d713aa1b5de86a17e261328cc2f093d4" location="https://cloud-images.ubuntu.com/releases/23.10/release-20231011/ubuntu-23.10-server-cloudimg-arm64.img"
DEBU[0001] downloading "https://cloud-images.ubuntu.com/releases/23.10/release-20231011/ubuntu-23.10-server-cloudimg-arm64.img" into "/Users/chasan/Library/Caches/lima/download/by-url-sha256/aaadf19ec428e9ce95eb976df0ab7dc6b76e4537c681aadf637892e49b0c6b95/data"
Downloading the image (ubuntu-23.10-server-cloudimg-arm64.img)
714.88 MiB / 714.88 MiB [-----------------------------------] 100.00% 5.02 MiB/s
DEBU[0145] res.ValidatedDigest=true
INFO[0145] Downloaded the image from "https://cloud-images.ubuntu.com/releases/23.10/release-20231011/ubuntu-23.10-server-cloudimg-arm64.img"
INFO[0145] Converting "/Users/chasan/.lima/default/basedisk" (qcow2) to a raw disk "/Users/chasan/.lima/default/diffdisk"
3.50 GiB / 3.50 GiB [-------------------------------------] 100.00% 221.74 MiB/s
INFO[0161] Expanding to 100GiB
INFO[0161] Attempting to download the nerdctl archive    arch=aarch64 digest="sha256:ea30ab544c057e3a0457194ecd273ffbce58067de534bdfaffe4edf3a4da6357" location="https://github.com/containerd/nerdctl/releases/download/v1.6.2/nerdctl-full-1.6.2-linux-arm64.tar.gz"
DEBU[0161] file "" is cached as "/Users/chasan/Library/Caches/lima/download/by-url-sha256/21921213c0426e38e2f26d2844446767e2a19c0b6655c774f9e4adbb5c368d8f/data"
DEBU[0161] Comparing digest "sha256:ea30ab544c057e3a0457194ecd273ffbce58067de534bdfaffe4edf3a4da6357" with the cached digest file "/Users/chasan/Library/Caches/lima/download/by-url-sha256/21921213c0426e38e2f26d2844446767e2a19c0b6655c774f9e4adbb5c368d8f/sha256.digest", not computing the actual digest of "/Users/chasan/Library/Caches/lima/download/by-url-sha256/21921213c0426e38e2f26d2844446767e2a19c0b6655c774f9e4adbb5c368d8f/data"
DEBU[0161] res.ValidatedDigest=true
INFO[0161] Using cache "/Users/chasan/Library/Caches/lima/download/by-url-sha256/21921213c0426e38e2f26d2844446767e2a19c0b6655c774f9e4adbb5c368d8f/data"
DEBU[0161] [hostagent] ResolveVMType: resolved VMType "vz" (existing instance, with "/Users/chasan/.lima/default/vz-identifier")
DEBU[0161] [hostagent] ResolveVMType: resolved VMType "vz" (existing instance, with "/Users/chasan/.lima/default/vz-identifier")
DEBU[0161] [hostagent] Creating iso file /Users/chasan/.lima/default/cidata.iso
DEBU[0161] [hostagent] Using /var/folders/11/07zj9vzj4hq4j9y3kjk4dhg80000gn/T/diskfs_iso1003621884 as workspace
DEBU[0162] [hostagent] Failed to detect CPU features. Assuming that AES acceleration is available on this Apple silicon.
DEBU[0162] [hostagent] OpenSSH version 9.4.1 detected
DEBU[0162] [hostagent] AES accelerator seems available, prioritizing<EMAIL_ADDRESS>and<EMAIL_ADDRESS>INFO[0162] [hostagent] hostagent socket created at /Users/chasan/.lima/default/ha.sock
DEBU[0162] [hostagent] Start udp DNS listening on: <IP_ADDRESS>:60805
INFO[0162] [hostagent] Starting VZ (hint: to watch the boot progress, see "/Users/chasan/.lima/default/serial*.log")
DEBU[0162] [hostagent] Start tcp DNS listening on: <IP_ADDRESS>:64395
DEBU[0162] [hostagent] Using search domains: [softlayer.local]
INFO[0162] [hostagent] new connection from  to
DEBU[0162] received an event                             event="{2023-10-27 16:49:37.725529 +0530 IST {false false false [] 60022}}"
INFO[0162] SSH Local Port: 60022
DEBU[0162] [hostagent] [VZ] - vm state change: "VirtualMachineStateStarting"
INFO[0162] [hostagent] Waiting for the essential requirement 1 of 3: "ssh"
DEBU[0162] [hostagent] executing script "ssh"
INFO[0162] [hostagent] [VZ] - vm state change: running
DEBU[0162] [hostagent] executing ssh for script "ssh": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
DEBU[0162] [hostagent] stdout="", stderr="ssh: connect to host <IP_ADDRESS> port 60022: Connection refused\r\n", err=failed to execute script "ssh": stdout="", stderr="ssh: connect to host <IP_ADDRESS> port 60022: Connection refused\r\n": exit status 255
INFO[0172] [hostagent] Waiting for the essential requirement 1 of 3: "ssh"
DEBU[0172] [hostagent] executing script "ssh"
DEBU[0172] [hostagent] executing ssh for script "ssh": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
DEBU[0173] [hostagent] stdout="", stderr="\"System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8).\"\nConnection closed by <IP_ADDRESS> port 60022\r\n", err=failed to execute script "ssh": stdout="", stderr="\"System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8).\"\nConnection closed by <IP_ADDRESS> port 60022\r\n": exit status 255
INFO[0183] [hostagent] Waiting for the essential requirement 1 of 3: "ssh"
DEBU[0183] [hostagent] executing script "ssh"
DEBU[0183] [hostagent] executing ssh for script "ssh": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
DEBU[0183] [hostagent] stdout="", stderr="\"System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8).\"\nConnection closed by <IP_ADDRESS> port 60022\r\n", err=failed to execute script "ssh": stdout="", stderr="\"System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8).\"\nConnection closed by <IP_ADDRESS> port 60022\r\n": exit status 255
ERRO[0183] [hostagent] r.CreateEndpoint() = connection was refused
ERRO[0185] [hostagent] r.CreateEndpoint() = connection was refused
ERRO[0187] [hostagent] r.CreateEndpoint() = connection was refused
INFO[0193] [hostagent] Waiting for the essential requirement 1 of 3: "ssh"
DEBU[0193] [hostagent] executing script "ssh"
DEBU[0193] [hostagent] executing ssh for script "ssh": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
DEBU[0193] [hostagent] stdout="", stderr="", err=<nil>
INFO[0193] [hostagent] The essential requirement 1 of 3 is satisfied
INFO[0193] [hostagent] Waiting for the essential requirement 2 of 3: "user session is ready for ssh"
DEBU[0193] [hostagent] executing script "user session is ready for ssh"
DEBU[0193] [hostagent] executing ssh for script "user session is ready for ssh": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
DEBU[0193] [hostagent] stdout="", stderr="+ timeout 30s bash -c 'until sudo diff -q /run/lima-ssh-ready /mnt/lima-cidata/meta-data 2>/dev/null; do sleep 3; done'\n", err=<nil>
INFO[0193] [hostagent] The essential requirement 2 of 3 is satisfied
INFO[0193] [hostagent] Waiting for the essential requirement 3 of 3: "the guest agent to be running"
DEBU[0193] [hostagent] executing script "the guest agent to be running"
DEBU[0193] [hostagent] executing ssh for script "the guest agent to be running": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
DEBU[0193] [hostagent] stdout="", stderr="+ sock=/run/lima-guestagent.sock\n+ timeout 30s bash -c 'until [ -S \"/run/lima-guestagent.sock\" ]; do sleep 3; done'\n", err=<nil>
INFO[0193] [hostagent] The essential requirement 3 of 3 is satisfied
INFO[0193] [hostagent] Waiting for the optional requirement 1 of 2: "systemd must be available"
DEBU[0193] [hostagent] executing script "systemd must be available"
DEBU[0193] [hostagent] Forwarding unix sockets
DEBU[0193] [hostagent] executing ssh for script "systemd must be available": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
INFO[0193] [hostagent] Forwarding "/run/lima-guestagent.sock" (guest) to "/Users/chasan/.lima/default/ga.sock" (host)
DEBU[0193] [hostagent] stdout="", stderr="+ command -v systemctl\n", err=<nil>
INFO[0193] [hostagent] The optional requirement 1 of 2 is satisfied
DEBU[0193] [hostagent] guest agent info: &{LocalPorts:[{IP::: Port:22} {IP:<IP_ADDRESS> Port:53} {IP:<IP_ADDRESS> Port:53}]}
INFO[0193] [hostagent] Waiting for the optional requirement 2 of 2: "containerd binaries to be installed"
DEBU[0193] [hostagent] executing script "containerd binaries to be installed"
DEBU[0193] [hostagent] guest agent event: {Time:2023-10-27 11:20:08.872640988 +0000 UTC LocalPortsAdded:[{IP:<IP_ADDRESS> Port:53} {IP:<IP_ADDRESS> Port:53} {IP::: Port:22}] LocalPortsRemoved:[] Errors:[]}
INFO[0193] [hostagent] Not forwarding TCP <IP_ADDRESS>:53
DEBU[0193] [hostagent] executing ssh for script "containerd binaries to be installed": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
INFO[0193] [hostagent] Not forwarding TCP <IP_ADDRESS>:53
INFO[0193] [hostagent] Not forwarding TCP [::]:22
DEBU[0205] [hostagent] stdout="/usr/local/bin/nerdctl\n", stderr="+ timeout 30s bash -c 'until command -v nerdctl || test -x /usr/local/bin/nerdctl; do sleep 3; done'\n", err=<nil>
INFO[0205] [hostagent] The optional requirement 2 of 2 is satisfied
INFO[0205] [hostagent] Waiting for the final requirement 1 of 1: "boot scripts must have finished"
DEBU[0205] [hostagent] executing script "boot scripts must have finished"
DEBU[0205] [hostagent] executing ssh for script "boot scripts must have finished": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
DEBU[0215] [hostagent] stdout="", stderr="+ timeout 30s bash -c 'until sudo diff -q /run/lima-boot-done /mnt/lima-cidata/meta-data 2>/dev/null; do sleep 3; done'\n", err=<nil>
INFO[0215] [hostagent] The final requirement 1 of 1 is satisfied
DEBU[0215] received an event                             event="{2023-10-27 16:50:30.072711 +0530 IST {true false false [] 60022}}"
INFO[0215] READY. Run `lima` to open the shell.
(vz-default) lima-vm-lima>
(vz-default) lima-vm-lima>
(vz-default) lima-vm-lima> limactl ls --json default | jq -r .vmType
vz
(vz-default) lima-vm-lima>

(vz-default) lima-vm-lima> limactl --debug start --mount-type 9p
DEBU[0000] Evaluating yq expression: ".mountType = \"9p\""
? Creating an instance "default" Proceed with the current configuration
DEBU[0001] ResolveVMType: resolved VMType "qemu" (mountType="9p" is specified in []*LimaYAML{o,y,d}[1])
WARN[0001] `mountType: 9p` is experimental
DEBU[0001] ResolveVMType: resolved VMType "qemu" (mountType="9p" is specified in []*LimaYAML{o,y,d}[1])
DEBU[0001] ResolveVMType: resolved VMType "qemu" (mountType="9p" is specified in []*LimaYAML{o,y,d}[1])
DEBU[0001] ResolveVMType: resolved VMType "qemu" (mountType="9p" is specified in []*LimaYAML{o,y,d}[1])
DEBU[0001] ResolveVMType: resolved VMType "vz" (explicitly specified in []*LimaYAML{o,y,d}[1])
DEBU[0001] ResolveVMType: resolved VMType "vz" (explicitly specified in []*LimaYAML{o,y,d}[1])
DEBU[0001] ResolveVMType: resolved VMType "qemu" (existing instance, without "/Users/chasan/.lima/podman-rootful-x86/vz-identifier")
DEBU[0001] ResolveVMType: resolved VMType "qemu" (existing instance, without "/Users/chasan/.lima/test/vz-identifier")
DEBU[0001] ResolveVMType: resolved VMType "vz" (explicitly specified in []*LimaYAML{o,y,d}[1])
DEBU[0001] Make sure "user-v2" network is stopped
DEBU[0001] Make sure usernet network is stopped
DEBU[0001] Make sure "shared" network is stopped
DEBU[0001] Make sure "bridged" network is stopped
DEBU[0001] Make sure "host" network is stopped
INFO[0001] Starting the instance "default" with VM driver "qemu"
DEBU[0001] Executed [codesign --verify /opt/homebrew/bin/qemu-system-aarch64]: out=""  error="<nil>"
DEBU[0001] Executed [codesign --display --entitlements - --xml /opt/homebrew/bin/qemu-system-aarch64]: out="Executable=/opt/homebrew/Cellar/qemu/8.1.1/bin/qemu-system-aarch64\n<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"https://www.apple.com/DTDs/PropertyList-1.0.dtd\"><plist version=\"1.0\"><dict><key>com.apple.security.hypervisor</key><true/></dict></plist>\n"  error="<nil>"
INFO[0001] QEMU binary "/opt/homebrew/bin/qemu-system-aarch64" seems properly signed with the "com.apple.security.hypervisor" entitlement
DEBU[0001] ResolveVMType: resolved VMType "qemu" (mountType="9p" is specified in []*LimaYAML{o,y,d}[1])
INFO[0001] Attempting to download the image              arch=aarch64 digest="sha256:78d35a2f551d281912ee7e5202660d94d713aa1b5de86a17e261328cc2f093d4" location="https://cloud-images.ubuntu.com/releases/23.10/release-20231011/ubuntu-23.10-server-cloudimg-arm64.img"
DEBU[0001] file "/Users/chasan/.lima/default/basedisk" is cached as "/Users/chasan/Library/Caches/lima/download/by-url-sha256/aaadf19ec428e9ce95eb976df0ab7dc6b76e4537c681aadf637892e49b0c6b95/data"
DEBU[0001] Comparing digest "sha256:78d35a2f551d281912ee7e5202660d94d713aa1b5de86a17e261328cc2f093d4" with the cached digest file "/Users/chasan/Library/Caches/lima/download/by-url-sha256/aaadf19ec428e9ce95eb976df0ab7dc6b76e4537c681aadf637892e49b0c6b95/sha256.digest", not computing the actual digest of "/Users/chasan/Library/Caches/lima/download/by-url-sha256/aaadf19ec428e9ce95eb976df0ab7dc6b76e4537c681aadf637892e49b0c6b95/data"
DEBU[0001] res.ValidatedDigest=true
INFO[0001] Using cache "/Users/chasan/Library/Caches/lima/download/by-url-sha256/aaadf19ec428e9ce95eb976df0ab7dc6b76e4537c681aadf637892e49b0c6b95/data"
INFO[0001] Attempting to download the nerdctl archive    arch=aarch64 digest="sha256:ea30ab544c057e3a0457194ecd273ffbce58067de534bdfaffe4edf3a4da6357" location="https://github.com/containerd/nerdctl/releases/download/v1.6.2/nerdctl-full-1.6.2-linux-arm64.tar.gz"
DEBU[0001] file "" is cached as "/Users/chasan/Library/Caches/lima/download/by-url-sha256/21921213c0426e38e2f26d2844446767e2a19c0b6655c774f9e4adbb5c368d8f/data"
DEBU[0001] Comparing digest "sha256:ea30ab544c057e3a0457194ecd273ffbce58067de534bdfaffe4edf3a4da6357" with the cached digest file "/Users/chasan/Library/Caches/lima/download/by-url-sha256/21921213c0426e38e2f26d2844446767e2a19c0b6655c774f9e4adbb5c368d8f/sha256.digest", not computing the actual digest of "/Users/chasan/Library/Caches/lima/download/by-url-sha256/21921213c0426e38e2f26d2844446767e2a19c0b6655c774f9e4adbb5c368d8f/data"
DEBU[0001] res.ValidatedDigest=true
INFO[0001] Using cache "/Users/chasan/Library/Caches/lima/download/by-url-sha256/21921213c0426e38e2f26d2844446767e2a19c0b6655c774f9e4adbb5c368d8f/data"
DEBU[0001] [hostagent] ResolveVMType: resolved VMType "qemu" (existing instance, without "/Users/chasan/.lima/default/vz-identifier")
DEBU[0001] [hostagent] ResolveVMType: resolved VMType "qemu" (existing instance, without "/Users/chasan/.lima/default/vz-identifier")
DEBU[0002] [hostagent] Creating iso file /Users/chasan/.lima/default/cidata.iso
DEBU[0002] [hostagent] Using /var/folders/11/07zj9vzj4hq4j9y3kjk4dhg80000gn/T/diskfs_iso4038845048 as workspace
DEBU[0002] [hostagent] Failed to detect CPU features. Assuming that AES acceleration is available on this Apple silicon.
DEBU[0002] [hostagent] OpenSSH version 9.4.1 detected
DEBU[0002] [hostagent] AES accelerator seems available, prioritizing<EMAIL_ADDRESS>and<EMAIL_ADDRESS>INFO[0002] [hostagent] hostagent socket created at /Users/chasan/.lima/default/ha.sock
DEBU[0002] [hostagent] Start udp DNS listening on: <IP_ADDRESS>:49224
DEBU[0002] [hostagent] Start tcp DNS listening on: <IP_ADDRESS>:64661
DEBU[0002] [hostagent] QEMU version 8.1.1 detected
DEBU[0002] [hostagent] firmware candidates = [/Users/chasan/.local/share/qemu/edk2-aarch64-code.fd /opt/homebrew/share/qemu/edk2-aarch64-code.fd /usr/share/AAVMF/AAVMF_CODE.fd /usr/share/qemu-efi-aarch64/QEMU_EFI.fd]
INFO[0002] [hostagent] Starting QEMU (hint: to watch the boot progress, see "/Users/chasan/.lima/default/serial*.log")
DEBU[0002] [hostagent] qCmd.Args: [/opt/homebrew/bin/qemu-system-aarch64 -m 4096 -cpu host -machine virt,accel=hvf -smp 4,sockets=1,cores=4,threads=1 -drive if=pflash,format=raw,readonly=on,file=/opt/homebrew/share/qemu/edk2-aarch64-code.fd -boot order=c,splash-time=0,menu=on -drive file=/Users/chasan/.lima/default/diffdisk,if=virtio,discard=on -drive id=cdrom0,if=none,format=raw,readonly=on,file=/Users/chasan/.lima/default/cidata.iso -device virtio-scsi-pci,id=scsi0 -device scsi-cd,bus=scsi0.0,drive=cdrom0 -netdev user,id=net0,net=<IP_ADDRESS>/24,dhcpstart=<IP_ADDRESS>,hostfwd=tcp:<IP_ADDRESS>:60022-:22 -device virtio-net-pci,netdev=net0,mac=52:55:55:ca:83:9e -device virtio-rng-pci -display none -device virtio-gpu -device virtio-keyboard-pci -device virtio-mouse-pci -device qemu-xhci,id=usb-bus -parallel none -chardev socket,id=char-serial,path=/Users/chasan/.lima/default/serial.sock,server=on,wait=off,logfile=/Users/chasan/.lima/default/serial.log -serial chardev:char-serial -chardev socket,id=char-serial-pci,path=/Users/chasan/.lima/default/serialp.sock,server=on,wait=off,logfile=/Users/chasan/.lima/default/serialp.log -device pci-serial,chardev=char-serial-pci -chardev socket,id=char-serial-virtio,path=/Users/chasan/.lima/default/serialv.sock,server=on,wait=off,logfile=/Users/chasan/.lima/default/serialv.log -device virtio-serial-pci,id=virtio-serial0,max_ports=1 -device virtconsole,chardev=char-serial-virtio,id=console0 -virtfs local,mount_tag=mount0,path=/Users/chasan,security_model=none,readonly -virtfs local,mount_tag=mount1,path=/tmp/lima,security_model=none -chardev socket,id=char-qmp,path=/Users/chasan/.lima/default/qmp.sock,server=on,wait=off -qmp chardev:char-qmp -name lima-default -pidfile /Users/chasan/.lima/default/qemu.pid]
DEBU[0002] received an event                             event="{2023-10-27 17:00:36.442189 +0530 IST {false false false [] 60022}}"
INFO[0002] SSH Local Port: 60022
INFO[0002] [hostagent] Waiting for the essential requirement 1 of 3: "ssh"
DEBU[0002] [hostagent] executing script "ssh"
DEBU[0002] [hostagent] executing ssh for script "ssh": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
DEBU[0002] [hostagent] qemu[stderr]: qemu-system-aarch64: -virtfs local,mount_tag=mount0,path=/Users/chasan,security_model=none,readonly: warning: short-form boolean option 'readonly' deprecated
DEBU[0002] [hostagent] qemu[stderr]: Please use readonly=on instead
DEBU[0002] [hostagent] stdout="", stderr="ssh: connect to host <IP_ADDRESS> port 60022: Connection refused\r\n", err=failed to execute script "ssh": stdout="", stderr="ssh: connect to host <IP_ADDRESS> port 60022: Connection refused\r\n": exit status 255
INFO[0012] [hostagent] Waiting for the essential requirement 1 of 3: "ssh"
DEBU[0012] [hostagent] executing script "ssh"
DEBU[0012] [hostagent] executing ssh for script "ssh": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
DEBU[0013] [hostagent] stdout="", stderr="\"System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8).\"\nConnection closed by <IP_ADDRESS> port 60022\r\n", err=failed to execute script "ssh": stdout="", stderr="\"System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8).\"\nConnection closed by <IP_ADDRESS> port 60022\r\n": exit status 255
INFO[0023] [hostagent] Waiting for the essential requirement 1 of 3: "ssh"
DEBU[0023] [hostagent] executing script "ssh"
DEBU[0023] [hostagent] executing ssh for script "ssh": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
DEBU[0023] [hostagent] stdout="", stderr="\"System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8).\"\nConnection closed by <IP_ADDRESS> port 60022\r\n", err=failed to execute script "ssh": stdout="", stderr="\"System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8).\"\nConnection closed by <IP_ADDRESS> port 60022\r\n": exit status 255
INFO[0033] [hostagent] Waiting for the essential requirement 1 of 3: "ssh"
DEBU[0033] [hostagent] executing script "ssh"
DEBU[0033] [hostagent] executing ssh for script "ssh": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
DEBU[0033] [hostagent] handleQuery lookup SRV failed
DEBU[0034] [hostagent] stdout="", stderr="", err=<nil>
INFO[0034] [hostagent] The essential requirement 1 of 3 is satisfied
INFO[0034] [hostagent] Waiting for the essential requirement 2 of 3: "user session is ready for ssh"
DEBU[0034] [hostagent] executing script "user session is ready for ssh"
DEBU[0034] [hostagent] executing ssh for script "user session is ready for ssh": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
DEBU[0034] [hostagent] stdout="", stderr="+ timeout 30s bash -c 'until sudo diff -q /run/lima-ssh-ready /mnt/lima-cidata/meta-data 2>/dev/null; do sleep 3; done'\n", err=<nil>
INFO[0034] [hostagent] The essential requirement 2 of 3 is satisfied
INFO[0034] [hostagent] Waiting for the essential requirement 3 of 3: "the guest agent to be running"
DEBU[0034] [hostagent] executing script "the guest agent to be running"
DEBU[0034] [hostagent] executing ssh for script "the guest agent to be running": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
DEBU[0034] [hostagent] stdout="", stderr="+ sock=/run/lima-guestagent.sock\n+ timeout 30s bash -c 'until [ -S \"/run/lima-guestagent.sock\" ]; do sleep 3; done'\n", err=<nil>
INFO[0034] [hostagent] The essential requirement 3 of 3 is satisfied
INFO[0034] [hostagent] Waiting for the optional requirement 1 of 2: "systemd must be available"
DEBU[0034] [hostagent] executing script "systemd must be available"
DEBU[0034] [hostagent] Forwarding unix sockets
DEBU[0034] [hostagent] executing ssh for script "systemd must be available": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
INFO[0034] [hostagent] Forwarding "/run/lima-guestagent.sock" (guest) to "/Users/chasan/.lima/default/ga.sock" (host)
DEBU[0034] [hostagent] stdout="", stderr="+ command -v systemctl\n", err=<nil>
INFO[0034] [hostagent] The optional requirement 1 of 2 is satisfied
DEBU[0034] [hostagent] guest agent info: &{LocalPorts:[{IP::: Port:22} {IP:<IP_ADDRESS> Port:53} {IP:<IP_ADDRESS> Port:53}]}
INFO[0034] [hostagent] Waiting for the optional requirement 2 of 2: "containerd binaries to be installed"
DEBU[0034] [hostagent] executing script "containerd binaries to be installed"
DEBU[0034] [hostagent] guest agent event: {Time:2023-10-27 11:31:07.934438501 +0000 UTC LocalPortsAdded:[{IP:<IP_ADDRESS> Port:53} {IP:<IP_ADDRESS> Port:53} {IP::: Port:22}] LocalPortsRemoved:[] Errors:[]}
INFO[0034] [hostagent] Not forwarding TCP <IP_ADDRESS>:53
DEBU[0034] [hostagent] executing ssh for script "containerd binaries to be installed": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
INFO[0034] [hostagent] Not forwarding TCP <IP_ADDRESS>:53
INFO[0034] [hostagent] Not forwarding TCP [::]:22
DEBU[0036] [hostagent] handleQuery lookup SRV failed
DEBU[0046] [hostagent] stdout="/usr/local/bin/nerdctl\n", stderr="+ timeout 30s bash -c 'until command -v nerdctl || test -x /usr/local/bin/nerdctl; do sleep 3; done'\n", err=<nil>
INFO[0046] [hostagent] The optional requirement 2 of 2 is satisfied
INFO[0046] [hostagent] Waiting for the final requirement 1 of 1: "boot scripts must have finished"
DEBU[0046] [hostagent] executing script "boot scripts must have finished"
DEBU[0046] [hostagent] executing ssh for script "boot scripts must have finished": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/chasan/.lima/_config/user" -o IdentityFile="/Users/chasan/.ssh/id_rsa" -o IdentityFile="/Users/chasan/.ssh/id_rsa_git" -o IdentityFile="/Users/chasan/.ssh/podman-machine-default" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^aes128-gcm<EMAIL_ADDRESS>-o User=chasan -o ControlMaster=auto -o ControlPath="/Users/chasan/.lima/default/ssh.sock" -o ControlPersist=yes -p 60022 <IP_ADDRESS> -- /bin/bash]
DEBU[0058] [hostagent] stdout="", stderr="+ timeout 30s bash -c 'until sudo diff -q /run/lima-boot-done /mnt/lima-cidata/meta-data 2>/dev/null; do sleep 3; done'\n", err=<nil>
INFO[0058] [hostagent] The final requirement 1 of 1 is satisfied
DEBU[0058] received an event                             event="{2023-10-27 17:01:32.011059 +0530 IST {true false false [] 60022}}"
INFO[0058] READY. Run `lima` to open the shell.
(vz-default) lima-vm-lima>

Thanks @hasan4791 , so, is it working as expected?

Thanks @hasan4791 , so, is it working as expected?

Yes.

While this only flips what's the default, @AkihiroSuda can we first solve https://github.com/lima-vm/lima/issues/1940?

Split trivial parts into:

https://github.com/lima-vm/lima/pull/1968

Might also be worth waiting for https://github.com/lima-vm/lima/issues/1957 to be mitigated or resolved

Might also be worth waiting for #1957 to be mitigated or resolved

I think that is the plan to delay the 1.0 release until VZ can safely become the default.
Unfortunately this has become even more complex with QEMU seemingly broken on Apple M3 chips #1996. So people with a brand new machine currently have no choice than to switch to VZ.

Might also be worth waiting for #1957 to be mitigated or resolved

Just to clarify that despite the title (which I now changed) this was not specific to vz, and we also got corruption with qemu

@lima-vm/maintainers Are we in a good state to merge this? (after rebasing)

Finch is going to switch the default to vz soon

https://github.com/runfinch/finch/pull/956

Podman Machine VM changed from qemu to vz (through their own vfkit wrapper), in 5.0:
https://blog.podman.io/2024/03/podman-5-0-is-around-the-corner/ (v5.0.0 tagged Mar 19)

Rebased.
If we can merge this, the next release will be v1.0 (with a few beta/RC releases)
@lima-vm/maintainers PTAL.

Rebased

@AkihiroSuda I see that "test / vz (fedora.yaml)" keeps getting skipped, and I seem to be unable to re-run it without re-running all tests.
Let me know if you want to get it to pass, or merge as-is!

Merging, CI is green


Fix replace directive mapping in fetch.go

The replace directive mapping was in the wrong direction, causing any replace directive to be ignored when the replace mapping is looked up later on.

Closing as this seems to be the wrong fix.


How to unactivate all nodes

Ho Ho!
Let say I hold shift and click on three random node of a large tree, those three nodes will be activated. So the function getActiveNodes will return the three nodes.
How is it possible to unactivate all node so getActiveNodes return empty?
Thank you,
Seb

This was my solution:
		let nodes = this.treeComponent.treeModel.getActiveNodes();
		for (let node of nodes) {
			node.toggleActivated(true);
		}

Happy coding!


Setup the model number

Today the library open the x3270 app with model number 2 as default. (24 rows x 80 columns).
Implement the choice of this model in the keyword "Open connection" as a new argument, but to do this, we need access to a mainframe with this different configuration than we have at pub400.com. In order to perform all tests.

I can help! But you probably already figured that out?

I still need access to a mainframe with a different model than pub400 to make this change. Or you can make the modification and send a merge request. after all it is open source.

@samuelpcabral I can also help testing with different models. My Case I need to use
Model Number 2
Oversize  24x87
Font Size 24
Can you pls help

@centhil all of the size references is hard coded inside x3270.py, for example the "def _check_limits" or "def _read_all_screen" you need to research how is the best way to setup the sizes before doing the open connection, (maybe a new argument in the import) and passa this parameters to all of the functions that need the size... I can´t help because I don´t have a different model size to test.

Just to let you know that you can test perfectly with the model number on PUB400.
If you create session files with wc3270 specifying the different model numbers and connect with PUB400 you get different sized screens.
I have not tried this from RF but it is possible to check out directly on PUB400.

I did some testing and you can specify the model number in RF just fine.
If you specify -xrm	wc3270.model: 5 you get a shifted display were lines seem not properly to be aligned.
If I compare the window with sessions specifying the different models and using those models through RF my conclusion is that the problem lies in the window opened to show the screen.
A session with the different models opens a window that is different in dimensions while this package opens a windows each time with the same dimensions leading to weird displays if you choose a different model than 2.
I haven't been able yet to find where these dimensions are set. Maybe someone knows?
@robinmatz It would help if the package is extended by a new command "Open connection from session file". You were planning something for this new command?

The difficult thing is not specifying a different model, you could do that, as Harm said, by
Open Connection    host     extra_args=['-xrm', 'wc3270.model: 4']
for example.
But as Samuel pointed out, there are several functions in the x3270 class that use the screen dimensions. Therefore, it needs to be indicated at some place what model is being used so the library can react accordingly.
The interesting question would be where. As an import parameter? Or as an additional argument to Open Connection? Or maybe both, so that the import parameter is chosen as a default for a new connection, but can be overwritten?

I played around a bit with the ideas of setting the model as an import parameter. We might additionally create a new keyword Set Model to allow changing the model at runtime, too.
For those interested, you can see the experimental changes in the setup-model-numbers on my fork.
However, I wasn't able to test any different models successfully, because running wc3270 with -xrm wc3270.model:4 still gave me the same dimensions.

Published in version 4.0


create xandr simulator api

Create /auth endpoint which simulates a login;
Create /batch-segment-endpoint to simulate files loading operations.

done


HarmonyLib compile errors in 1.17 rc8

From client-main.txt:
[Error] [helvehammerext] Compiler errors during compilation:
[Error] [helvehammerext]     \src\VanillaPatches.cs(2): The type or namespace name 'HarmonyLib' could not be found (are you missing a using directive or an assembly reference?) [CS0246]
[Error] [helvehammerext]     \src\Patches\GetHelveWorkableModePatch.cs(1): The type or namespace name 'HarmonyLib' could not be found (are you missing a using directive or an assembly reference?) [CS0246]
[Error] [helvehammerext]     \src\VanillaPatches.cs(11): The type or namespace name 'Harmony' could not be found (are you missing a using directive or an assembly reference?) [CS0246]
[Error] [helvehammerext]     \src\Patches\GetHelveWorkableModePatch.cs(6): The type or namespace name 'HarmonyPatch' could not be found (are you missing a using directive or an assembly reference?) [CS0246]
[Error] [helvehammerext]     \src\Patches\GetHelveWorkableModePatch.cs(6): The type or namespace name 'HarmonyPatchAttribute' could not be found (are you missing a using directive or an assembly reference?) [CS0246]
[Error] [helvehammerext]     \src\Patches\GetHelveWorkableModePatch.cs(7): The type or namespace name 'HarmonyPatch' could not be found (are you missing a using directive or an assembly reference?) [CS0246]
[Error] [helvehammerext]     \src\Patches\GetHelveWorkableModePatch.cs(7): The type or namespace name 'HarmonyPatchAttribute' could not be found (are you missing a using directive or an assembly reference?) [CS0246]
[Error] [helvehammerext] An exception was thrown when trying to load assembly:
System.Exception: Could not compile from source files due to errors
at Vintagestory.Common.ModCompilationContext.CompileFromFiles(ModContainer mod, IEnumerable`1 paths) in C:\Users\Tyron\Documents\vintagestory\game\VintagestoryLib\Common\API\ModCompilationContext.cs:line 70
at Vintagestory.Common.ModContainer.LoadAssembly(ModCompilationContext compilationContext, ModAssemblyLoader loader) in C:\Users\Tyron\Documents\vintagestory\game\VintagestoryLib\Common\API\ModContainer.cs:line 347
[Warning] One or more source code mods failed to compile. Info to modders: In case you cannot find the problem, be aware that the game engine currently can only compile C# code until version 5.0. Any language features from C#6.0 or above will result in compile errors.

Fixed in 1.3.1


Fix/issue 2467

Discussion
Issue opened is this one.
https://github.com/firebase/firebase-admin-node/issues/2467
Testing
Added test to ensure a valid message is returned with ok, while the one failing validation is returned as failing

will check about the cla.. sorry for the delays.

closing this now, Will re submit on my private time.


Flagged by several antiviruses

Hello. Just so you know, the Windows download for your application is being detected by Windows Defender and a few other anti-viruses, as can be seen here on VirusTotal:
https://www.virustotal.com/gui/file/48c4577490b0c5f482acea19880093f7cbb81d783acee4e7b82c4d5e6b79acbb/detection
I have already submitted the file to Microsoft for analysis. You can also submit it yourself as the software developer here:
https://www.microsoft.com/en-us/wdsi/filesubmission
In the meantime, I might recommend making a note in the readme mentioning this, suggesting users manually review the source and run it directly with python if skeptical.

Thanks for notifying this issue, i'll send a report of false positive to Microsoft as well and also to the other antivirus softwares that detect the app as a virus.
For now i'll keep the issue opened until the false detection problem is gone and add the suggested info on the readme.

The file has been analyzed by Microsoft and is no longer being detected. However, after reanalyzing the file on VirusTotal (same link from the original post), it looks like 4 additional antiviruses are flagging the program now, of note being McAfee (does anyone still use McAfee?).

Update:
Now, according to VirusTotal, only four anti-virus softwares are flagging the application as a malware: https://www.virustotal.com/gui/file/48c4577490b0c5f482acea19880093f7cbb81d783acee4e7b82c4d5e6b79acbb/detection
I'm sending now a false alarm report to Cyren and McAfee, to IKARUS is only possible to send a false report if i use the software, so if someone use it and face the warning, feel free to send it to analysis. And last, i didn't find any way to contact Jiangmin developer since is a engine used by chinese enterprise anti-virus softwares, i don't think that anyone will face problems with it.

Update:
Now, according to VirusTotal, only four anti-virus softwares are flagging the application as a malware: https://www.virustotal.com/gui/file/48c4577490b0c5f482acea19880093f7cbb81d783acee4e7b82c4d5e6b79acbb/detection
I'm sending now a false alarm report to Cyren and McAfee, to IKARUS is only possible to send a false report if i use the software, so if someone use it and face the warning, feel free to send it to analysis. And last, i didn't find any way to contact Jiangmin developer since is a engine used by chinese enterprise anti-virus softwares, i don't think that anyone will face problems with it.

With the v.1.1.1 release all flags returned, i give up. This issue will haunt the app until a definitive version be released. I'll keep the issue open and the disclaimer as well.


Homebrew stuck on 0.19.2

Bug Report
What did you do?
brew install operator-sdk

What did you expect to see?
==> Upgrading 1 outdated package:
operator-sdk 0.19.2 -> 1.0.0
==> Upgrading operator-sdk 0.19.2 -> 1.0.0
...
==> Installing operator-sdk
==> Pouring operator-sdk-1.0.0.catalina.bottle.tar.gz
🍺  /usr/local/Cellar/operator-sdk/1.0.0 42 files, 1.21GW

What did you see instead? Under which circumstances?
Warning: operator-sdk 0.19.2 is already installed and up-to-date
To reinstall 0.19.2, run `brew reinstall operator-sdk`

https://github.com/Homebrew/homebrew-core/pull/59445

We haven't added v1.0.0 to homebrew, and will shortly. Aside: there needs to be a release doc improvement for how to add a new release to homebrew, which doesn't work on some environments.

The instructions on the release guide do not seem to work on Fedora. There are 2 things that should be done.

release v1.0.1 to homebrew (can be done from a Mac if need be)
update the instructions to work on Fedora

https://v0-19-x.sdk.operatorframework.io/docs/contribution-guidelines/release/#6-updating-the-homebrew-formula

/assign @Venkat19967

/close

This issue has been solved. Homebrew already has the latest version of Operator SDK


Feature request: Option for "soft" frozen classes in attrs?

I recently discovered this library and it looks awesome. However, there is a pattern I use quite often that doesn't seem to be supported easily with attrs. I often need an immutable slotted class that will be used very often in my code base for calculations like a Color class with r, g, b, and a attributes and a bunch of methods to convert to and from different color formats and make calculations related to colors or a Vector class with x, y, z attributes with a bunch of vector operations. I think classes like these should be slotted because the user could create a dozen instances and access their attributes very often, so the performance benefits of a slotted class are really handy, and they should be immutable because it makes them much easier to deal with.
Without attrs I'd usually use "soft" immutability. In other words, I'd define the attributes as "private" and provide properties to access them. Something like this:
class Color:
    __slots__ = ("_r", "_g", "_b", "_a")

    _r: float
    _g: float
    _b: float
    _a: float

    def __init__(self, r: float, g: float, b: float, a: float = 1.0) -> None:
        self._r = r
        self._g = g
        self._b = b
        self._a = a

    @property
    def r(self) -> float:
        return self._r

    @property
    def g(self) -> float:
        return self._g

    @property
    def b(self) -> float:
        return self._b

    @property
    def a(self) -> float:
        return self._a

In my opinion, if the user really wants to break immutability, I am not going to stop him. I did my job by declaring the attributes with a leading underscore which signals to the user that he shouldn't mess with these attributes. No matter how many security layers I put to prevent the object's mutation, it's always possible to break them in Python if the user tries hard enough, so I might as well give up the hassle and just inform the user that he shouldn't do that. A user who tries to mutate an object despite my warnings is the sole responsible for anything that happens in his code. This is also the reason I prefer a single leading underscore as opposed to double leading underscores.
In attrs, I'd use:
from attrs import define

@define(slots=True, frozen=True)
class Color:
    r: float
    g: float
    b: float
    a: float = 1.0

Obviously, much more concise than a handwritten class. My problem with this is that according to the docs, attrs implements immutability by overriding the __setattr__ method and raise an error from there. This is quite reasonable until you realize it requires some hacks to instantiate an object in the first place. In the case of a slotted class, it resorts to using object.__setattr__() to instantiate objects which according to the same doc is (still) slower than a plain assignment. The doc goes on to summarize that I should avoid instantiating lots of frozen slotted classes in performance-critical code. This is very disappointing for me because I think the whole idea of immutable slotted classes is to have light, easy to create and easy to replace objects that I can instantiate lots of without worrying about performance (basically a much better alternative to namedtuple).
As I said before, I usually like to just mark the attributes with a leading underscore and provide properties to read them instead of trying really hard to force immutability and I think it's a good solution for most cases, especially since it doesn't compromise on performance. I think we should add the ability to create such classes when requesting frozen=True instead of overriding __setattr__ and using hacks to instantiate objects. Perhaps we could add a flag to define called soft_frozen which implements this soft immutability with properties and attributes with a leading underscore when set to True and uses the original __setattr__ technique when set to False. Setting its default value to False will preserve compatibility and allow the users to explicitly request soft immutability for performance-critical code.

I mean if you're fine with typing-level freezing, maybe just do https://threeofwands.com/attra-iv-zero-overhead-frozen-attrs-classes/?

@hynek That's a nice idea, but I still think there should be some freezing in runtime. I'd really appreciate it if my class told me that I shouldn't assign its attributes even if it tells me by convention.

The question is whether your properties/descriptors don't destroy much more performance than the usage of __setattr__ in __init__. I'm unconvinced that trade-off would be worth it.

I just tested it with these two classes:
from attrs import define

class ManualColor:
    __slots__ = ("_r", "_g", "_b", "_a")

    _r: float
    _g: float
    _b: float
    _a: float

    def __init__(self, r: float, g: float, b: float, a: float = 1.0) -> None:
        self._r = r
        self._g = g
        self._b = b
        self._a = a

    @property
    def r(self) -> float:
        return self._r

    @property
    def g(self) -> float:
        return self._g

    @property
    def b(self) -> float:
        return self._b

    @property
    def a(self) -> float:
        return self._a

@define(slots=True, frozen=True)
class AttrsColor:
    r: float
    g: float
    b: float
    a: float = 1.0

c1 = ManualColor(0.5, 0.8, 1)
c2 = AttrsColor(0.5, 0.8, 1)

The results are:
%timeit ManualColor(0.5, 0.8, 1): 170 ns ± 1.89 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)
%timeit AttrsColor(0.5, 0.8, 1): 495 ns ± 4.49 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)

%timeit c1.r: 65.9 ns ± 0.961 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)
%timeit c2.r: 17.1 ns ± 0.321 ns per loop (mean ± std. dev. of 7 runs, 100,000,000 loops each)

The first two results are quite similar to the results in the docs, and accessing an attribute of an attrs frozen slotted class seems to be approximately 3 times faster than accessing a property of a manual written class. I guess the question is which operation is more frequent: Do we create and throw away many of these objects or do we access their individual attributes a lot?
I am actually not sure what is better in the long term. For my use case, I am making a little graphics engine, so I have a hot game loop that runs every frame to update the graphics and render them to the screen. I imagine that vector and color calculations are going to be very frequent in such a loop, and I don't know what is the best approach to achieve maximum performance.

If performance is paramount, your best approach is to enforce these kinds of contracts not at runtime, hence the link I gave you. It has literally zero overhead.
I’m gonna close this because as you noticed yourself there’s no clear answer and it’s definitely not a case to reimplement immutability based on descriptors. Feel free to ask more questions tho.


Warning: Failed prop type: TabNavigator: prop type tabBarStyle is invalid;

import TabNavigator from 'react-native-tab-navigator';
render() {
return (
<TabNavigator tabBarStyle={{height: 49}}>
{......}

);
}
Error：
Warning: Failed prop type: TabNavigator: prop type tabBarStyle is invalid; it must be a function, usually from the prop-types package, but received undefined.

It's a bug. You need change the code as the following.
export default class TabNavigator extends React.Component {
static propTypes = {
...ViewPropTypes,
sceneStyle: ViewPropTypes.style,
tabBarStyle: ViewPropTypes.style,
tabBarShadowStyle: TabBar.propTypes.shadowStyle,
hidesTabTouch: PropTypes.bool
};

ViewPropTypes

ViewPropTypes is undefined

I'm just deleting this code  tabBarStyle: TabBar.propTypes.style in TabNavigator.js .  It's the fastest method to solve the error.

大佬们这个问题怎么搞呀

上面有了解决文案了。。删了它

Why not fix the bug


Creating Shell Sort in Java

Please search if an issue has already be placed before adding another issue.
If you want to add an algorithm to the repository.
Please include the following in the issue.
Title:
Shell Sort (Java)
Body:
Include the specific variant of the algorithm you want to add.
I am working on it.

Please Review


'npm install -g jslint

Hello,
I have installed the npm package in Visual Studio Code. I need to run
'npm install -g jslint' because of errors.
But how can I run this command within Visual Studio Code?
thanks
regards
hawk

The recommended way is to run the command in the integrated terminal.

sorry, but what di you mean with "integrated terminal."?
Do you mean within Visual Studio Code? How to open the integrated terminal?

Do you mean within Visual Studio Code? How to open the integrated terminal?

yes, pls try the menu item View>IntegratedTerminal


[Proposal] Operator: Chunk

Link to .NET 6 Linq documentation
How it will work in Reaqtive:
Input    1    2        3    4        5    |
------------------------------------------------ Chunk(2)
Output        [1, 2]        [3, 4]        [5] |

There is some functional overlap with Buffer which returns an IList<T> for historical reasons (see below), but we should aim for parity with traditional LINQ to Objects, so I approve of the proposal in principle.
One question could be what to do with Buffer overloads such as int count, int skip and the TimeSpan-based variants. For each such overload, do we provide a Chunk alternative that only differs in its result type? I.e. xs.Chunk(args) == xs.Buffer(args).Select(t => t.ToArray()) where Chunk only differs in its performance profile around allocating arrays and potentially just resizing the last one.
I'm thinking we can add Chunk(int size) (matching the parameter name from the Enumerable operator in .NET 6) and Chunk(int size, int skip) as both can be implemented by new T[size] allocations and a single Array.Resize for the last emitted chunk.
The time-based variants don't have such luxury because they can't predict the size of the chunks upfront, which explains why we ended up choosing IList<T> in the Rx days; we have to allocate a list anyway because we don't know the number of elements that will end up in time-based buffers, so we may as well return the list to the user and allow them to mutate it any way they see fit; it's theirs to party on (rather than us then copying it over to a T[] or even just returning it as an IEnumerable<T>). To make all of the Buffer operators consistent in the Rx days, we picked IList<T> for count-based and time-based operators. (We picked an interface to have some flexibility in how we implemented it, not necessarily being tied to List<T>.)
So, in conclusion, my proposal is to have:
IO<T[]> Chunk<T>(IO<T> source, int size);
IO<T[]> Chunk<T>(IO<T> source, int size, int skip);

where IO<T> is the concept of an observable in whatever shape or form it takes (ISubscribable<T> at the operator level, quoted variants higher up). And the operator implementation is based on new T[size] with a Resize for the last chunk. (As such, the implementation isn't a composition of Buffer with Select and ToArray.)
We should also do this work in http://github.com/dotnet/reactive for IObservable<T>, IAsyncEnumerable<T>, and IAsyncObservable<T>.


Staging PR for ck8s-kubespray v2.24.1-ck8s3

[!warning]
This is a public repository, ensure not to disclose:

[ ] personal data beyond what is necessary for interacting with this pull request, nor
[ ] business confidential information, such as customer names.

What kind of PR is this?
Required: Mark one of the following that is applicable:

[ ] kind/feature
[ ] kind/improvement
[ ] kind/deprecation
[ ] kind/documentation
[ ] kind/clean-up
[ ] kind/bug
[x] kind/other

Optional: Mark one or more of the following that are applicable:

[!important]
Breaking changes should be marked kind/admin-change or kind/dev-change depending on type
Critical security fixes should be marked with kind/security

[ ] kind/admin-change
[ ] kind/dev-change
[ ] kind/security
[ ] kind/adr

What does this PR do / why do we need this PR?

...

Fixes #

Information to reviewers

Checklist

[ ] Proper commit message prefix on all commits

Change checks:

[ ] The change is transparent
[ ] The change is disruptive
[ ] The change requires no migration steps
[ ] The change requires migration steps

Metrics checks:

[ ] The metrics are still exposed and present in Grafana after the change
[ ] The metrics names didn't change (Grafana dashboards and Prometheus alerts are not affected)
[ ] The metrics names did change (Grafana dashboards and Prometheus alerts were fixed)

Logs checks:

[ ] The logs do not show any errors after the change

Pod Security Policy checks:

[ ] Any changed pod is covered by Pod Security Admission
[ ] Any changed pod is covered by Gatekeeper Pod Security Policies
[ ] The change does not cause any pods to be blocked by Pod Security Admission or Policies

Network Policy checks:

[ ] Any changed pod is covered by Network Policies
[ ] The change does not cause any dropped packets in the NetworkPolicy Dashboard

Audit checks:

[ ] The change does not cause any unnecessary Kubernetes audit events
[ ] The change requires changes to Kubernetes audit policy

Falco checks:

[ ] The change does not cause any alerts to be generated by Falco

Bug checks:

[ ] The bug fix is covered by regression tests

Does this need migration steps to set standard config for existing envs? Or will it simply treat it as if everything new is disabled?

Does this need migration steps to set standard config for existing envs? Or will it simply treat it as if everything new is disabled?

Yes, all the new variables are optional and off by default


Speeding Up the Calculation

I'm wondering how can we do to leverage multiple CPUs when doing the annealing algorithm? I try to use GPU for quicker calculation, but it seems does not offer any help :(.
I notice that when I run this code, it only takes up 1 CPU, but my other learning algorithm like simple neural network can take up multiple CPUs to accelerate the calculation.
Thanks for any reply.
Cheers.

The simulated annealing algorithm is inherently serial - each iteration strictly depends on the result of the previous. You can check the literature for "parallel simulated annealing" - there are plenty of good ideas. But this library is focused on experimentation with the classic simulated annealing algorithm. If performance is your goal, you're better off writing it in another language entirely.
Another alternative is to e.g. create an ensemble of runs that can be executed in parallel.

Thanks mate, I really appreciate your helpful comments!
Best regard,
HW


Program for Minimum time taken by each job to be completed given by a Directed Acyclic Graph

Great work @kratos0o please give this repo a star if it really helped you to complete your PR.
Also follow me for follow back if you want to get connected with me for any such open source contribution program. Thank you 😊


Create Python documentation

Maybe using readthedocs:
https://about.readthedocs.com/pricing/#/community
We need both API documentation and usage with examples.

Hello! If you have a task that requires writing documentation then I can do that. Thanks.

Hi @saada865 ! That's great! At the moment this is blocked by #37, but if you have suggestions on what tools to use in the python world I'm all ears.

Currently python docs are minimal and hosted here (we might change that by either paying for readthedocs or hosting ourselves as IronCalc pages and documentation should be 100% ad free):
https://ironcalc.readthedocs.io/en/latest/
The python bindings at the time of writing involve only the "raw" API. Much of the API documentation for that might be found here:
https://docs.rs/ironcalc/latest/ironcalc/index.html
The docs are developed here:
https://github.com/ironcalc/IronCalc/tree/main/bindings/python/docs


[bug] Lambda functions return a function, not a value

When comparing the test for tiny-mustache against the results of mustache.js, I noticed there is a bug in the current lambda implementation.
The Mustache manual states:

Lambdas
When the value is a callable object, such as a function or lambda, the object will be invoked and passed the block of text. The text passed is the literal block, unrendered. {{tags}} will not have been expanded - the lambda should do that on its own. In this way you can implement filters or caching.
Template:
{{#wrapped}}
  {{name}} is awesome.
{{/wrapped}}

Hash:
{
  "name": "Willy",
  "wrapped": function() {
    return function(text, render) {
      return "" + render(text) + ""
    }
  }
}

Output:
Willy is awesome.

However, instead of a function that returns a function, tiny-mustache expects a plain function (i.e. a function that returns a scalar).

A naive fix would be to change
https://github.com/aishikaty/tiny-mustache/blob/ec53eedf187114996a0ef984a31ddf9b4cf19d10/mustache.js#L45
to
              output += name().call(ctx, childCode, function (template) {

but that would break backward compatibility. A check could be added, but I am not sure how that matches the desire to keep the code as small as possible.


Visualise early layers and custom nets

Hello!
Very useful repo, thanks!
Just wondering if

This has this worked well for units in the first few layers of any networks, e.g. VGG net? What does this look like for units in the first two layers?
This has worked for any smaller custom nets, e.g. for MNIST? I've edited my version of the code to allow for a small custom network for a colour MNIST dataset. While the colours are a bit off in all layers, the main issue is that after the first layer (i.e. a maxpool) all regions of the deconvolved image are effected (see image below). If you had to speculate, why might this happen for deconv?

hello，thanks for your attention for this repo.


be able to set the supplementaryGIDs field in the manifest

@dgonyeo Thanks for the merge! This issue can be closed.