Unable to see bumble servers on raspberry pi

I want to connect the virtual heart rate server example to my raspberry pi running Raspberry Pi OS as a virtual device.
So, the virtual device running on the same machine with a real (or virtual) adapter, that can see this virtual device.
My goal is to be able to see the the virtual device from the built-in bluetooth controller, so I can use bumble to emulate a bluetooth LE heart rate monitor.
I've tried to start with run_controller.py from the examples by following the README.md instructions. But I ran into some problems.
I see an unknown HCI command error in btmon when trying to run run_controller.py in the examples folder. I have tried both vhci and pty transport options, but see the same error from btmon and am unable to bring up the virtual hci device.
Of the three terminals I have open on the pi to run this (excluding the sudo btattach -P h4 -B hci_pty command):
btmon terminal
 MGMT Open: btmon (privileged) version 1.18                  {0x0002} 0.748678
= New Index: 00:00:00:00:00:00 (Primary,UART,hci1)             [hci1] 24.018439
= Open Index: 00:00:00:00:00:00                                [hci1] 24.022026
< HCI Command: Reset (0x03|0x0003) plen 0                   #1 [hci1] 24.023114
> HCI Event: Command Complete (0x0e) plen 4                 #2 [hci1] 24.027083
      Reset (0x03|0x0003) ncmd 1
        Status: Success (0x00)
< HCI Command: Read Local Supported.. (0x04|0x0003) plen 0  #3 [hci1] 24.027215
> HCI Event: Command Complete (0x0e) plen 12                #4 [hci1] 24.037368
      Read Local Supported Features (0x04|0x0003) ncmd 1
        Status: Success (0x00)
        Features: 0x00 0x00 0x00 0x00 0x60 0x00 0x00 0x00
          BR/EDR Not Supported
          LE Supported (Controller)
< HCI Command: Read Local Version I.. (0x04|0x0001) plen 0  #5 [hci1] 24.041859
> HCI Event: Command Complete (0x0e) plen 12                #6 [hci1] 24.049616
      Read Local Version Information (0x04|0x0001) ncmd 1
        Status: Success (0x00)
        HCI version: Bluetooth 5.0 (0x09) - Revision 0 (0x0000)
        LMP version: Bluetooth 5.0 (0x09) - Subversion 0 (0x0000)
        Manufacturer: internal use (65535)
< HCI Command: Read BD ADDR (0x04|0x0009) plen 0            #7 [hci1] 24.050056
> HCI Event: Command Complete (0x0e) plen 10                #8 [hci1] 24.056559
      Read BD ADDR (0x04|0x0009) ncmd 1
        Status: Success (0x00)
        Address: 00:00:00:00:00:00 (OUI 00-00-00)
< HCI Command: LE Read Buffer Size (0x08|0x0002) plen 0     #9 [hci1] 24.056802
> HCI Event: Command Complete (0x0e) plen 7                #10 [hci1] 24.065323
      LE Read Buffer Size (0x08|0x0002) ncmd 1
        Status: Success (0x00)
        Data packet length: 27
        Num data packets: 64
< HCI Command: LE Read Local Suppo.. (0x08|0x0003) plen 0  #11 [hci1] 24.065413
> HCI Event: Command Complete (0x0e) plen 12               #12 [hci1] 24.072635
      LE Read Local Supported Features (0x08|0x0003) ncmd 1
        Status: Success (0x00)
        Features: 0xff 0x49 0x01 0x00 0x00 0x00 0x00 0x00
          LE Encryption
          Connection Parameter Request Procedure
          Extended Reject Indication
          Slave-initiated Features Exchange
          LE Ping
          LE Data Packet Length Extension
          LL Privacy
          Extended Scanner Filter Policies
          LE 2M PHY
          LE Coded PHY
          Channel Selection Algorithm #2
          Minimum Number of Used Channels Procedure
< HCI Command: LE Read Supported S.. (0x08|0x001c) plen 0  #13 [hci1] 24.072747
> HCI Event: Command Complete (0x0e) plen 12               #14 [hci1] 24.075034
      LE Read Supported States (0x08|0x001c) ncmd 1
        Status: Success (0x00)
        States: 0x000003ffff3fffff
          Non-connectable Advertising State
          Scannable Advertising State
          Connectable Advertising State
          High Duty Cycle Directed Advertising State
          Passive Scanning State
          Active Scanning State
          Initiating State
            and Connection State (Master Role)
          Connection State (Slave Role)
          Non-connectable Advertising State
            and Passive Scanning State
          Scannable Advertising State
            and Passive Scanning State
          Connectable Advertising State
            and Passive Scanning State
          High Duty Cycle Directed Advertising State
            and Passive Scanning State
          Non-connectable Advertising State
            and Active Scanning State
          Scannable Advertising State
            and Active Scanning State
          Connectable Advertising State
            and Active Scanning State
          High Duty Cycle Directed Advertising State
            and Active Scanning State
          Non-connectable Advertising State
            and Initiating State
          Scannable Advertising State
            and Initiating State
          Non-connectable Advertising State
            and Connection State (Master Role)
          Scannable Advertising State
            and Connection State (Master Role)
          Non-connectable Advertising State
            and Connection State (Slave Role)
          Scannable Advertising State
            and Connection State (Slave Role)
          Passive Scanning State
            and Connection State (Master Role)
          Active Scanning State
            and Connection State (Master Role)
          Passive Scanning State
            and Connection State (Slave Role)
          Active Scanning State
            and Connection State (Slave Role)
          Initiating State
            and Connection State (Master Role)
            and Master Role & Master Role
          Low Duty Cycle Directed Advertising State
          Low Duty Cycle Directed Advertising State
            and Passive Scanning State
          Low Duty Cycle Directed Advertising State
            and Active Scanning State
          Connectable Advertising State
            and Initiating State
            and Master Role & Slave Role
          High Duty Cycle Directed Advertising State
            and Initiating State
            and Master Role & Slave Role
          Low Duty Cycle Directed Advertising State
            and Initiating State
            and Master Role & Slave Role
          Connectable Advertising State
            and Connection State (Master Role)
            and Master Role & Slave Role
          High Duty Cycle Directed Advertising State
            and Connection State (Master Role)
            and Master Role & Slave Role
          Low Duty Cycle Directed Advertising State
            and Connection State (Master Role)
            and Master Role & Slave Role
          Connectable Advertising State
            and Connection State (Slave Role)
            and Master Role & Slave Role
          High Duty Cycle Directed Advertising State
            and Connection State (Slave Role)
            and Slave Role & Slave Role
          Low Duty Cycle Directed Advertising State
            and Connection State (Slave Role)
            and Slave Role & Slave Role
          Initiating State
            and Connection State (Slave Role)
            and Master Role & Slave Role
< HCI Command: Read Local Supporte.. (0x04|0x0002) plen 0  #15 [hci1] 24.075101
> HCI Event: Command Complete (0x0e) plen 68               #16 [hci1] 24.078791
      Read Local Supported Commands (0x04|0x0002) ncmd 1
        Status: Success (0x00)
        Commands: 66 entries
          Disconnect (Octet 0 - Bit 5)
          Read Remote Version Information (Octet 2 - Bit 7)
          Set Event Mask (Octet 5 - Bit 6)
          Reset (Octet 5 - Bit 7)
          Read Transmit Power Level (Octet 10 - Bit 2)
          Set Controller To Host Flow Control (Octet 10 - Bit 5)
          Host Buffer Size (Octet 10 - Bit 6)
          Host Number of Completed Packets (Octet 10 - Bit 7)
          Read Local Version Information (Octet 14 - Bit 3)
          Read Local Supported Features (Octet 14 - Bit 5)
          Read BD ADDR (Octet 15 - Bit 1)
          Read RSSI (Octet 15 - Bit 5)
          Set Event Mask Page 2 (Octet 22 - Bit 2)
          LE Set Event Mask (Octet 25 - Bit 0)
          LE Read Buffer Size (Octet 25 - Bit 1)
          LE Read Local Supported Features (Octet 25 - Bit 2)
          LE Set Random Address (Octet 25 - Bit 4)
          LE Set Advertising Parameters (Octet 25 - Bit 5)
          LE Read Advertising Channel TX Power (Octet 25 - Bit 6)
          LE Set Advertising Data (Octet 25 - Bit 7)
          LE Set Scan Response Data (Octet 26 - Bit 0)
          LE Set Advertise Enable (Octet 26 - Bit 1)
          LE Set Scan Parameters (Octet 26 - Bit 2)
          LE Set Scan Enable (Octet 26 - Bit 3)
          LE Create Connection (Octet 26 - Bit 4)
          LE Create Connection Cancel (Octet 26 - Bit 5)
          LE Read White List Size (Octet 26 - Bit 6)
          LE Clear White List (Octet 26 - Bit 7)
          LE Add Device To White List (Octet 27 - Bit 0)
          LE Remove Device From White List (Octet 27 - Bit 1)
          LE Connection Update (Octet 27 - Bit 2)
          LE Set Host Channel Classification (Octet 27 - Bit 3)
          LE Read Channel Map (Octet 27 - Bit 4)
          LE Read Remote Used Features (Octet 27 - Bit 5)
          LE Encrypt (Octet 27 - Bit 6)
          LE Rand (Octet 27 - Bit 7)
          LE Start Encryption (Octet 28 - Bit 0)
          LE Long Term Key Request Reply (Octet 28 - Bit 1)
          LE Long Term Key Request Neg Reply (Octet 28 - Bit 2)
          LE Read Supported States (Octet 28 - Bit 3)
          LE Receiver Test (Octet 28 - Bit 4)
          LE Transmitter Test (Octet 28 - Bit 5)
          LE Test End (Octet 28 - Bit 6)
          Read Authenticated Payload Timeout (Octet 32 - Bit 4)
          Write Authenticated Payload Timeout (Octet 32 - Bit 5)
          LE Remote Connection Parameter Request Reply (Octet 33 - Bit 4)
          LE Remote Connection Parameter Request Negative Reply (Octet 33 - Bit 5)
          LE Set Data Length (Octet 33 - Bit 6)
          LE Read Suggested Default Data Length (Octet 33 - Bit 7)
          LE Write Suggested Default Data Length (Octet 34 - Bit 0)
          LE Add Device To Resolving List (Octet 34 - Bit 3)
          LE Remove Device From Resolving List (Octet 34 - Bit 4)
          LE Clear Resolving List (Octet 34 - Bit 5)
          LE Read Resolving List Size (Octet 34 - Bit 6)
          LE Read Peer Resolvable Address (Octet 34 - Bit 7)
          LE Read Local Resolvable Address (Octet 35 - Bit 0)
          LE Set Address Resolution Enable (Octet 35 - Bit 1)
          LE Set Resolvable Private Address Timeout (Octet 35 - Bit 2)
          LE Read Maximum Data Length (Octet 35 - Bit 3)
          LE Read PHY (Octet 35 - Bit 4)
          LE Set Default PHY (Octet 35 - Bit 5)
          LE Set PHY (Octet 35 - Bit 6)
          LE Enhanced Receiver Test (Octet 35 - Bit 7)
          LE Enhanced Transmitter Test (Octet 36 - Bit 0)
          LE Read Transmit Power (Octet 38 - Bit 7)
          LE Set Privacy Mode (Octet 39 - Bit 2)
< HCI Command: Set Event Mask (0x03|0x0001) plen 8         #17 [hci1] 24.078937
        Mask: 0x200080000204e890
          Disconnection Complete
          Encryption Change
          Read Remote Version Information Complete
          Command Complete
          Command Status
          Hardware Error
          Number of Completed Packets
          Data Buffer Overflow
          Encryption Key Refresh Complete
          LE Meta
> HCI Event: Command Complete (0x0e) plen 4                #18 [hci1] 24.084287
      Set Event Mask (0x03|0x0001) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Set Event Mask (0x08|0x0001) plen 8      #19 [hci1] 24.084351
        Mask: 0x0000000000080e7f
          LE Connection Complete
          LE Advertising Report
          LE Connection Update Complete
          LE Read Remote Used Features Complete
          LE Long Term Key Request
          LE Remote Connection Parameter Request
          LE Data Length Change
          LE Enhanced Connection Complete
          LE Direct Advertising Report
          LE PHY Update Complete
          LE Channel Selection Algorithm
> HCI Event: Command Complete (0x0e) plen 4                #20 [hci1] 24.088763
      LE Set Event Mask (0x08|0x0001) ncmd 1
        Status: Success (0x00)
< HCI Command: LE Read Advertising.. (0x08|0x0007) plen 0  #21 [hci1] 24.088827
> HCI Event: Command Complete (0x0e) plen 4                #22 [hci1] 24.093838
      LE Read Advertising Channel TX Power (0x08|0x0007) ncmd 1
        Status: Unknown HCI Command (0x01)
= Close Index: 00:00:00:00:00:00                               [hci1] 24.093945

run_controller.py terminal
python run_controller.py 00:AA:01:01:00:24 device1.json pty:hci_pty
DEBUG:asyncio:Using selector: EpollSelector
>>> connecting to HCI...
DEBUG:bumble.transport.pty:pty open at /dev/pts/5
DEBUG:bumble.transport.pty:linked pty at hci_pty
>>> connected
DEBUG:bumble.link:new controller: <bumble.controller.Controller object at 0x75b768f8>
DEBUG:bumble.controller:new random address: 00:AA:01:01:00:24
DEBUG:bumble.link:new controller: <bumble.controller.Controller object at 0x75b76928>
DEBUG:bumble.keys:JSON keystore: /home/pi/.local/share/Bumble/Pairing/f0-f1-f2-f3-f4-f5.json
Service(handle=0x0001, end=0x0005, uuid=UUID-16:1800 (Generic Access))
CharacteristicDeclaration(handle=0x0002, value_handle=0x0003, uuid=UUID-16:2A00 (Device Name), properties=READ)
Characteristic(handle=0x0003, end=0x0003, uuid=UUID-16:2A00 (Device Name), properties=READ)
CharacteristicDeclaration(handle=0x0004, value_handle=0x0005, uuid=UUID-16:2A01 (Appearance), properties=READ)
Characteristic(handle=0x0005, end=0x0005, uuid=UUID-16:2A01 (Appearance), properties=READ)
Service(handle=0x0006, end=0x0009, uuid=UUID-16:180A (Device Information))
CharacteristicDeclaration(handle=0x0007, value_handle=0x0008, uuid=UUID-16:2A29 (Manufacturer Name String), properties=READ)
Characteristic(handle=0x0008, end=0x0009, uuid=UUID-16:2A29 (Manufacturer Name String), properties=READ)
Descriptor(handle=0x0009, type=UUID-16:2901 (Characteristic User Description), value=4d79204465736372697074696f6e)
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_RESET_COMMAND
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_RESET_COMMAND
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_RESET_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_RESET_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_READ_LOCAL_SUPPORTED_COMMANDS_COMMAND
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_READ_LOCAL_SUPPORTED_COMMANDS_COMMAND
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_READ_LOCAL_SUPPORTED_COMMANDS_COMMAND
  return_parameters:<PHONE_NUMBER>00c000000000e40000002822000000000000040000f7ffff7f00000030f0f9ff01008004000000000000000000000000000000000000000000000000
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_READ_LOCAL_SUPPORTED_COMMANDS_COMMAND
  return_parameters:
    status:             0
    supported_commands:<PHONE_NUMBER>c000000000e40000002822000000000000040000f7ffff7f00000030f0f9ff01008004000000000000000000000000000000000000000000000000
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_LE_READ_LOCAL_SUPPORTED_FEATURES_COMMAND
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_LE_READ_LOCAL_SUPPORTED_FEATURES_COMMAND
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_READ_LOCAL_SUPPORTED_FEATURES_COMMAND
  return_parameters:       00ff49010000000000
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_READ_LOCAL_SUPPORTED_FEATURES_COMMAND
  return_parameters:
    status:      0
    le_features: ff49010000000000
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_READ_LOCAL_VERSION_INFORMATION_COMMAND
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_READ_LOCAL_VERSION_INFORMATION_COMMAND
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_READ_LOCAL_VERSION_INFORMATION_COMMAND
  return_parameters:<PHONE_NUMBER>ffff0000
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_READ_LOCAL_VERSION_INFORMATION_COMMAND
  return_parameters:
    status:             0
    hci_version:        9
    hci_subversion:     0
    lmp_version:        9
    company_identifier: 65535
    lmp_subversion:     0
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_SET_EVENT_MASK_COMMAND:
  event_mask: ffffffffffffff3f
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_SET_EVENT_MASK_COMMAND:
  event_mask: ffffffffffffff3f
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_SET_EVENT_MASK_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_SET_EVENT_MASK_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_LE_SET_EVENT_MASK_COMMAND:
  le_event_mask: fffff00000000000
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_LE_SET_EVENT_MASK_COMMAND:
  le_event_mask: fffff00000000000
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_EVENT_MASK_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_EVENT_MASK_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_LE_READ_BUFFER_SIZE_COMMAND
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_LE_READ_BUFFER_SIZE_COMMAND
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_READ_BUFFER_SIZE_COMMAND
  return_parameters:       001b0040
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_READ_BUFFER_SIZE_COMMAND
  return_parameters:
    status:                           0
    hc_le_acl_data_packet_length:     27
    hc_total_num_le_acl_data_packets: 64
DEBUG:bumble.host:HCI LE ACL flow control: hc_le_acl_data_packet_length=27,hc_total_num_le_acl_data_packets=64
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_LE_READ_SUGGESTED_DEFAULT_DATA_LENGTH_COMMAND
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_LE_READ_SUGGESTED_DEFAULT_DATA_LENGTH_COMMAND
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_READ_SUGGESTED_DEFAULT_DATA_LENGTH_COMMAND
  return_parameters:       001b004801
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_READ_SUGGESTED_DEFAULT_DATA_LENGTH_COMMAND
  return_parameters:
    status:                  0
    suggested_max_tx_octets: 27
    suggested_max_tx_time:   328
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_LE_WRITE_SUGGESTED_DEFAULT_DATA_LENGTH_COMMAND:
  suggested_max_tx_octets: 251
  suggested_max_tx_time:   2120
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_LE_WRITE_SUGGESTED_DEFAULT_DATA_LENGTH_COMMAND:
  suggested_max_tx_octets: 251
  suggested_max_tx_time:   2120
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_WRITE_SUGGESTED_DEFAULT_DATA_LENGTH_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_WRITE_SUGGESTED_DEFAULT_DATA_LENGTH_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_READ_BD_ADDR_COMMAND
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_READ_BD_ADDR_COMMAND
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_READ_BD_ADDR_COMMAND
  return_parameters:<PHONE_NUMBER>0000
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_READ_BD_ADDR_COMMAND
  return_parameters:
    status:  0
    bd_addr: 00:00:00:00:00:00/P
DEBUG:bumble.device:BD_ADDR: 00:00:00:00:00:00/P
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_LE_SET_RANDOM_ADDRESS_COMMAND:
  random_address: F0:F1:F2:F3:F4:F5
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_LE_SET_RANDOM_ADDRESS_COMMAND:
  random_address: F0:F1:F2:F3:F4:F5
DEBUG:bumble.controller:new random address: F0:F1:F2:F3:F4:F5
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_RANDOM_ADDRESS_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_RANDOM_ADDRESS_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_LE_CLEAR_RESOLVING_LIST_COMMAND
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_LE_CLEAR_RESOLVING_LIST_COMMAND
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_CLEAR_RESOLVING_LIST_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_CLEAR_RESOLVING_LIST_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_LE_SET_ADVERTISING_DATA_COMMAND:
  advertising_data: 070942756d626c65
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_LE_SET_ADVERTISING_DATA_COMMAND:
  advertising_data: 070942756d626c65
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_ADVERTISING_DATA_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_ADVERTISING_DATA_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_LE_SET_SCAN_RESPONSE_DATA_COMMAND:
  scan_response_data:
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_LE_SET_SCAN_RESPONSE_DATA_COMMAND:
  scan_response_data:
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_SCAN_RESPONSE_DATA_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_SCAN_RESPONSE_DATA_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_LE_SET_ADVERTISING_PARAMETERS_COMMAND:
  advertising_interval_min:  2000
  advertising_interval_max:  2000
  advertising_type:          0
  own_address_type:          1
  peer_address_type:         0
  peer_address:              00:00:00:00:00:00
  advertising_channel_map:   7
  advertising_filter_policy: 0
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_LE_SET_ADVERTISING_PARAMETERS_COMMAND:
  advertising_interval_min:  2000
  advertising_interval_max:  2000
  advertising_type:          0
  own_address_type:          1
  peer_address_type:         0
  peer_address:              00:00:00:00:00:00/P
  advertising_channel_map:   7
  advertising_filter_policy: 0
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_ADVERTISING_PARAMETERS_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_ADVERTISING_PARAMETERS_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_LE_SET_ADVERTISING_ENABLE_COMMAND:
  advertising_enable: 1
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_LE_SET_ADVERTISING_ENABLE_COMMAND:
  advertising_enable: 1
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_ADVERTISING_ENABLE_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_ADVERTISING_ENABLE_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_LE_SET_SCAN_PARAMETERS_COMMAND:
  le_scan_type:           1
  le_scan_interval:       96
  le_scan_window:         96
  own_address_type:       1
  scanning_filter_policy: 0
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_LE_SET_SCAN_PARAMETERS_COMMAND:
  le_scan_type:           1
  le_scan_interval:       96
  le_scan_window:         96
  own_address_type:       1
  scanning_filter_policy: 0
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_SCAN_PARAMETERS_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_SCAN_PARAMETERS_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### HOST -> CONTROLLER: HCI_LE_SET_SCAN_ENABLE_COMMAND:
  le_scan_enable:    1
  filter_duplicates: 0
DEBUG:bumble.controller:<<< [C2] HOST -> CONTROLLER: HCI_LE_SET_SCAN_ENABLE_COMMAND:
  le_scan_enable:    1
  filter_duplicates: 0
DEBUG:bumble.controller:>>> [C2] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_SCAN_ENABLE_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.host:### CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_SCAN_ENABLE_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.controller:<<< [C1] HOST -> CONTROLLER: HCI_RESET_COMMAND
DEBUG:bumble.controller:>>> [C1] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_RESET_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.controller:<<< [C1] HOST -> CONTROLLER: HCI_READ_LOCAL_SUPPORTED_FEATURES_COMMAND
DEBUG:bumble.controller:>>> [C1] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_READ_LOCAL_SUPPORTED_FEATURES_COMMAND
  return_parameters:<PHONE_NUMBER>60000000
DEBUG:bumble.controller:<<< [C1] HOST -> CONTROLLER: HCI_READ_LOCAL_VERSION_INFORMATION_COMMAND
DEBUG:bumble.controller:>>> [C1] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_READ_LOCAL_VERSION_INFORMATION_COMMAND
  return_parameters:<PHONE_NUMBER>ffff0000
DEBUG:bumble.controller:<<< [C1] HOST -> CONTROLLER: HCI_READ_BD_ADDR_COMMAND
DEBUG:bumble.controller:>>> [C1] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_READ_BD_ADDR_COMMAND
  return_parameters:<PHONE_NUMBER>0000
DEBUG:bumble.controller:<<< [C1] HOST -> CONTROLLER: HCI_LE_READ_BUFFER_SIZE_COMMAND
DEBUG:bumble.controller:>>> [C1] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_READ_BUFFER_SIZE_COMMAND
  return_parameters:       001b0040
DEBUG:bumble.controller:<<< [C1] HOST -> CONTROLLER: HCI_LE_READ_LOCAL_SUPPORTED_FEATURES_COMMAND
DEBUG:bumble.controller:>>> [C1] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_READ_LOCAL_SUPPORTED_FEATURES_COMMAND
  return_parameters:       00ff49010000000000
DEBUG:bumble.controller:<<< [C1] HOST -> CONTROLLER: HCI_LE_READ_SUPPORTED_STATES_COMMAND
DEBUG:bumble.controller:>>> [C1] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_READ_SUPPORTED_STATES_COMMAND
  return_parameters:       00ffff3fffff030000
DEBUG:bumble.controller:<<< [C1] HOST -> CONTROLLER: HCI_READ_LOCAL_SUPPORTED_COMMANDS_COMMAND
DEBUG:bumble.controller:>>> [C1] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_READ_LOCAL_SUPPORTED_COMMANDS_COMMAND
  return_parameters:<PHONE_NUMBER>00c000000000e40000002822000000000000040000f7ffff7f00000030f0f9ff01008004000000000000000000000000000000000000000000000000
DEBUG:bumble.controller:<<< [C1] HOST -> CONTROLLER: HCI_SET_EVENT_MASK_COMMAND:
  event_mask: 90e8040200800020
DEBUG:bumble.controller:>>> [C1] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_SET_EVENT_MASK_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.controller:<<< [C1] HOST -> CONTROLLER: HCI_LE_SET_EVENT_MASK_COMMAND:
  le_event_mask: 7f0e080000000000
DEBUG:bumble.controller:>>> [C1] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_SET_EVENT_MASK_COMMAND
  return_parameters:       HCI_SUCCESS
DEBUG:bumble.controller:<<< [C1] HOST -> CONTROLLER: HCI_LE_READ_ADVERTISING_PHYSICAL_CHANNEL_TX_POWER_COMMAND
WARNING:bumble.controller:--- Unsupported command HCI_LE_READ_ADVERTISING_PHYSICAL_CHANNEL_TX_POWER_COMMAND
DEBUG:bumble.controller:>>> [C1] CONTROLLER -> HOST: HCI_COMMAND_COMPLETE_EVENT:
  num_hci_command_packets: 1
  command_opcode:          HCI_LE_READ_ADVERTISING_PHYSICAL_CHANNEL_TX_POWER_COMMAND
  return_parameters:       HCI_UNKNOWN_HCI_COMMAND_ERROR

hcitool terminal
hciconfig
hci1:	Type: Primary  Bus: UART
	BD Address: 00:00:00:00:00:00  ACL MTU: 27:64  SCO MTU: 0:0
	DOWN
	RX bytes:182 acl:0 sco:0 events:11 errors:0
	TX bytes:60 acl:0 sco:0 commands:11 errors:0

hci0:	Type: Primary  Bus: UART
	BD Address: B8:27:EB:7B:B5:EE  ACL MTU: 1021:8  SCO MTU: 64:1
	UP RUNNING PSCAN
	RX bytes:1568388 acl:0 sco:0 events:56495 errors:0
	TX bytes:98471 acl:0 sco:0 commands:11391 errors:0

What is the best way to move forward?

I have been digging into this more and if I use the same commands listed below, I can reproduce the unsupported command error on Ubuntu MATE 22.04. I have tried the pypi repository version of bumble as well as version 0.0.1.
Operating system and software
OS: Ubuntu Mate 22.04
Bluez: 5.64 (also see issue with 5.50)
bumble: 0.0.1, 0.0.136, 0.0.137.dev3+g17db5dd
Steps to reproduce
Download any of the aforementioned tags
Install bumble: cd $BUMBLEROOT; python3 -m pip install -e .
Attempt to create virtual bluetooth controller: cd examples;  python3 run_controller.py F0:F1:F2:F3:F4:F5 device1.json pty:hci_pty
Connect bluez to virtual bluetooth controller (in another terminal): cd $BUMBLEROOT/examples; sudo btattach -P h4 -B hci_pty
List hci controllers (in another terminal): hciconfig
Expected output
something similar to
hci*:	Type: Primary  Bus: UART
	BD Address: F0:F1:F2:F3:F4:F5  ACL MTU: 1021:4  SCO MTU: 96:6
	UP RUNNING PSCAN
	RX bytes:11 acl:40 sco:0 events:26 errors:0
	TX bytes:11 acl:67 sco:0 commands:25 errors:0

This controller should be visible to bluetoothctl for use with virtual devices
Observed output
The virtual controller never comes up and therefore cannot be seen by bluetoothctl
hci1:	Type: Primary  Bus: UART
	BD Address: 00:00:00:00:00:00  ACL MTU: 27:64  SCO MTU: 0:0
	DOWN
	RX bytes:190 acl:0 sco:0 events:12 errors:0
	TX bytes:64 acl:0 sco:0 commands:12 errors:0

Hi.
Attaching an HCI PTY to the BlueZ stack does work, but there's an even simpler way to attach a virtual controller to the BlueZ stack, using the vhci interface (see https://google.github.io/bumble/platforms/linux.html#using-vhci).
That being said, I'm not sure if attaching a virtual controller to the BlueZ stack is exactly what you're looking for. From your first post, you say that you want to "see the the virtual device from the built-in bluetooth controller". That's not really possible as described. You can't really mix physical and virtual controllers. Physical controllers can communicate with other physical controllers, and virtual controllers communicate with virtual controllers. The bumble stack can be used in either mode. If you want a virtual device using a virtual controller (in your example, a heart rate monitor) to be "seen" by the Linux BlueZ stack, you would attach both your virtual heart rate monitor and the BlueZ stack to the same virtual controller, so that they can see each other. Using the "link relay" (https://google.github.io/bumble/apps_and_tools/link_relay.html) is a way to have several virtual controllers communicate with each other (that part of the project may be a bit rusty, let us know if you use it and run into issues, we may need to fix a couple things). The other option is, of course, to have two physical controllers on your machine (the builtin one and an additional one, like a USB dongle), and have those two controllers communicate with each other.
I hope that clarifies things somewhat. We can continue the discussion on this thread once we clarify which of the two scenarios mentioned here best fits what you're trying to do.

Thanks for the response, I'm a novice with bluetooth so I may have been unclear.
My goal is to have an application which has access to the raspberry pi OS bluetooth stack (bluez?) see the virtual device so I can emulate various virtual capabilities in the virtual device for use in developing a bluetooth enabled application.
vhci sounds great for this. I had tried your suggesion (https://google.github.io/bumble/platforms/linux.html#using-vhci) but, it does not work on my pi.
I do see a virtual controller listed by hciconfig, but am unable to bring up that virtual controller. The steps to reproduce are the same as my second post except that I specify the vhci protocol rather than the hci_pty protocol.
Because I have seen the same problem on Ubuntu and Raspberry pi OS with different version of bumble and bluez, I think maybe I am experiencing operator error, but I can't determine what step(s) I am missing. Maybe you can verify these steps your side?
My exact steps are:
Raspberry pi Terminal A

Raspberry pi Terminal B
hciconfig
hci1:	Type: Primary  Bus: Virtual
	BD Address: 00:00:00:00:00:00  ACL MTU: 27:64  SCO MTU: 0:0
	DOWN
	RX bytes:0 acl:0 sco:0 events:11 errors:0
	TX bytes:64 acl:0 sco:0 commands:11 errors:0

hci0:	Type: Primary  Bus: UART
	BD Address: B8:27:EB:7B:B5:EE  ACL MTU: 1021:8  SCO MTU: 64:1
	UP RUNNING PSCAN
	RX bytes:1568388 acl:0 sco:0 events:56495 errors:0
	TX bytes:98471 acl:0 sco:0 commands:11391 errors:0

This diverges from the example link in that the virtual controller is down. Unfortunately hciconfig cannot bring up the controller:
sudo hciconfig hci1 up
Can't init device hci1: Invalid request code (56)

This invalid request is (I think) the same issue I had seen with the uart interface.
Please let me know some things I could try to root cause this,
Cheers!

I think I found the issue. I don't have a raspberry pi to test on (they're hard to get these days, and mine broke), but I'll test the fix on some other linux host and post a PR shortly.

The fix has been merged now. If you can try again, let me know if it works for you.

Hi. The 00:00:00:00:00:00 BD address here isn't a concern, that only applies to Bluetooth Classic, but in your case you're working with Bluetooth Low Energy (BLE).
What you're trying to do should be entirely possible. Your app would use Linux's BlueZ stack (via whatever library you choose) and communicate with a virtual heart rate monitor written in Python with Bumble. For that to work, the virtual controller attached to the BlueZ stack and the virtual controller attached to the Bumble stack need to communicate with each other (in a non-virtual setting, "real" controllers would communicate via their radios). In the VHCI example referred to here examples/run_controller.py), a virtual controller is attached to BlueZ, and a second controller is attached to a Bumble stack, in the same app, which in this case is a simple virtual device that exposes a GATT service (both controllers run in the same process). One option is to use the same model as run_controller.py (i.e run both controllers as part of the same process, same python app, in which case they communicate directly via API calls). You'd of course replace the GATT service in the run_controller.py example with a heart rate service. The other option (more flexible but a bit more complex) is to run each controller in a separate python app/process, and have them communicate via a relay. If you look at the Link Relay doc, you should see an example of that. In this case, you'd have one process creating a controller attached to BlueZ (via VHCI) and to the relay, and a second process, running the heart rate monitor, also connected to the relay. The relay, of course, has to be started before both of those, so that they can connect to it. It is more flexible, because you're separating your heart rate monitor "app" in a standalone app, and can start/stop it independently. It is more complicated, because now you have 3 apps to run (the relay, the BlueZ<->relay bridge, and the HR<->Relay app).

Thanks this is very helpful!
I know there are some limits with supported commands.
I am unable to connect to the virtual controller provided by examples/run_controller.py from gatttool so I want to check if what I am seeing is expected.
Window A
Run the bumble example to connect a virtual controller to BlueZ stack
sudo chmod 766 /dev/vhci
python3 examples/run_controller.py F6:F7:F8:F9:FA:FB examples/device1.json vhci

Window B
get available handles from virtual controller
gatttool -b F0:F1:F2:F3:F4:F5 -I
[F0:F1:F2:F3:F4:F5][LE]> connect
Attempting to connect to F0:F1:F2:F3:F4:F5
Error: connect error: Connection refused (111)

Similar steps work for a real ble device (heartrate monitor) in that I see a list of services after I connect successfully to the monitor from gatttool and do primary. A big difference with the real device is that sudo hcitool lescan shows the MAC address of the real heart rate monitor, but the bumble virtual MAC does not show if I try lescan in a separate terminal after starting the example.
What do you think?

In theory what you're describing here should work. I'll give it a try on an RPi to see if I can get it to work (I did a brief test with just advertising and scanning, and was able to see the virtual device in my lescan, but I have not played with gatttool yet.

I just ran some tests on a Raspeberry pi, and was able to verify that this scenario works.
The first issue you're running into is that you are not specifying which HCI device you want to use with hcitool (for lescan) and gatttool. The first thing to check after launching the run_controller.py example is which HCI device number the Linux kernel has allocated. If you don't have any other controller on the system, that would typically be hci0, but in your case, since it looks like you do have a real radio enabled, the second, virtual controller, would likely be at hci1.
Just running hciconfig will show you all the controllers. The virtual controller will be the one where it says Bus: Virtual.
Now, assuming your virtual controller is hci1, you would then use: sudo hcitool -i hci1 lescan to scan with the virtual controller,  and gatttool -i hci1 -t random -b F0:F1:F2:F3:F4:F5 -I for gatttool.
The second issue, which is a bit obscure I have to say, is that with Bluetooth LE, you need to specify if an address is public or random (it can't tell by just looking at the address). Here, we're using random addresses, and you need to let gatttool know about that with -t random.
With that options, and the right -i hciX selection, you will then be able to connect from gatttool and try any of the other discovery and read/write commands.
Here the output on my system (in my case, I don't have a physical controller, so my virtual controller is at hci0):
pi@raspberrypi:~/bumble $ gatttool -i hci0 -t random -b F0:F1:F2:F3:F4:F5 -I
[F0:F1:F2:F3:F4:F5][LE]> connect
Attempting to connect to F0:F1:F2:F3:F4:F5
Connection successful
[F0:F1:F2:F3:F4:F5][LE]> primary
attr handle: 0x0001, end grp handle: 0x0005 uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle: 0x0006, end grp handle: 0x0009 uuid: 0000180a-0000-1000-8000-00805f9b34fb
[F0:F1:F2:F3:F4:F5][LE]> characteristics
handle: 0x0002, char properties: 0x02, char value handle: 0x0003, uuid: 00002a00-0000-1000-8000-00805f9b34fb
handle: 0x0004, char properties: 0x02, char value handle: 0x0005, uuid: 00002a01-0000-1000-8000-00805f9b34fb
handle: 0x0007, char properties: 0x02, char value handle: 0x0008, uuid: 00002a29-0000-1000-8000-00805f9b34fb

and
pi@raspberrypi:~/bumble $ sudo hcitool -i hci0 lescan
LE Scan ...
F0:F1:F2:F3:F4:F5 Bumble
F0:F1:F2:F3:F4:F5 Bumble
F0:F1:F2:F3:F4:F5 Bumble
F0:F1:F2:F3:F4:F5 Bumble

Thanks!
Once I specified hci1 to either hcitool or gatttool I was successfully able to connect to the bumble device:
gatttool -i hci1 -t random -b F0:F1:F2:F3:F4:F5 -I
[F0:F1:F2:F3:F4:F5][LE]> connect
Attempting to connect to F0:F1:F2:F3:F4:F5
Connection successful
[F0:F1:F2:F3:F4:F5][LE]>

I was then able to see the virtual device in the pi's bluetooth manager GUI, so clearly it is visible throughout the bluez stack

Thanks for keeping this issue open until you were able to direct me as to how I can use bumble to create virtual devices visible to non-bumble applications on the pi via bluez.
If successful in the application I am trying to develop, do you have an example zoo or some other place people can link their bumble projects as recipes for others?
Cheers!


Add Sort, Edit command for user guide

Codecov Report

Merging #196 into master will increase coverage by 0.04%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #196      +/-   ##
============================================
+ Coverage     24.21%   24.26%   +0.04%
  Complexity      172      172
============================================
  Files           105      105
  Lines          1660     1657       -3
  Branches        133      133
============================================
  Hits            402      402
+ Misses         1223     1220       -3
  Partials         35       35

Impacted Files
Coverage Δ
Complexity Δ

...ain/java/seedu/address/logic/parser/CliSyntax.java
0.00% <ø> (ø)
0.00 <0.00> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 29f3c53...ef0d7c3. Read the comment docs.


Is the Svelte Kit tutorial updated for v2?

I'm going throught the tutorial and enjoying it. Great work!
Now I just got the the Part 3 / Loading data / Page data section. I got curious about how error works so I consulted the docs, only to find that apparently in SvelteKit V2 I don't need to use throw:
import { error } from '@sveltejs/kit'

- throw error(500, 'something went wrong');
+ error(500, 'something went wrong');

See:

https://kit.svelte.dev/docs/errors
https://kit.svelte.dev/docs/migrating-to-sveltekit-2#redirect-and-error-are-no-longer-thrown-by-you

This got me wondering: why is the tutorial teaching me SvelteKit V1? Is this intentional, or did we forget to update the tutorial to V2..?
So I just wanted to ask/bring this to your attention.
Other than that, keep up the nice work!

It's not updated, if you look at package.json it's using<EMAIL_ADDRESS>I forked it to update it but it's not straight forward, sveltekit 2 requires sveltejs/vite-plugin-svelte package, but when you install it the dev mode breaks.
build & preview work but the lesson dropdown selector stops working for some reason (all the options disappear). I don't want to update the tutorial code if I can't setup the environment without breaking anything first.
maybe a maintainer with a better knowledge of the code base could tackle this update


Terminal embedded in vscode does not display correct color after 3.47.3

Prerequisites

[x] I have read and understand the CONTRIBUTING guide
[x] I looked for duplicate issues before submitting this one

Description
Terminal embedded in vscode does not display correct color after 3.47.3.
Environment

Oh my Posh version: 3.47.3
Theme: material
Operating System: Windows 10
Shell: Powershell
Terminal: vscode

Steps to Reproduce

Reinstall 3.47.3 and config it
open terminal in vscode
change theme to material
toggle terminal panel size

Expected behavior: [What you expected to happen]

Actual behavior: [What actually happened]

before toggle panel size

after toggle panel size

2 issues: vscode can't handle inverted ANSI (that's a bug on their end, see #182). And the toggle size is something I have no idea where it comes from but it also ANSI related (#211).

@Vixb1122 the inverted ANSI will be gone so that should bring most things back to normal (#214). I'm closing this as a duplicate.


Get rid of deprecated NPY_CHAR warning

...by removing it.

Can one of the admins verify this patch?


[BUG] YSFX effect has a CLAP version, YSFX instrument has no CLAP version

YSFX effect has a CLAP and VST3 versions but YSFX instrument has a VST3 version but no CLAP version.

Good catch! Was added in https://github.com/JoepVanlier/ysfx/pull/52 . Will be in the next release.

Thanks a lot !


fix reader getting wrong posting offsets when querying multiple values

[x] I added CHANGELOG entry for this change.
[ ] Change is not relevant to the end user.

Changes
Index header reader has 2 methods to get posting offsets.
PostingsOffset receives only a single value and PostingsOffsets receives multiple values. Both methods rely on the  same underlying function postingsOffset to iterate over the posting offset table and get the index range.
PostingsOffset is used in Store Gateway for query and PostingsOffsets is only used in lazy postings.
For a given slice of values, we expect that both of them return the same index ranges, using the following code.
// Batched
rngs, err := reader.PostingsOffsets(name, values...)

// Non Batched
for _, value := range values {
  rng, err := reader.PostingsOffset(name, value)
  // Add rng to a range slice.
}

However, we observed that PostingsOffsets returned wrong index range when lazy expanded postings is enabled and querying multiple values. The bug is caused by https://github.com/thanos-io/thanos/blob/main/pkg/block/indexheader/binary_reader.go#L949 when the current index header reader is pointing to the last entry in the posting offset table but continue iterating further. This might cause invalid index size bug (reproduced in the new unit test I added) or wrong index range (end < start).
Example returned index ranges. The last one {517099476 111} is wrong. Others are either not found range {-1, -1} or normal range with start value (the first one) < end value (the second one)
[{-1 -1} {512174520 515605200} {-1 -1} {-1 -1} {515605208 517099468} {-1 -1} {-1 -1} {517099476 111}]

This will result in wrong cardinality calculation in lazy posting optimization and make the query performance worse. https://github.com/thanos-io/thanos/blob/main/pkg/store/lazy_postings.go#L64
Verification
I added a unit test to reproduce and also a test case to compare results from batched and non batched implementation.

Ok.. good catch.
I had to pull this PR and run the test to see what was going on but now I understand. :P
Good catch.. LGTM.
We could just add an extra validation on this lines as in this case the decoder buff also returned an error:
https://github.com/thanos-io/thanos/blob/17afd29c6c97adf18280438423d421bdb18328f2/pkg/block/indexheader/binary_reader.go#L947-L949

Thanks for the review. I am going to merge this pr since I believe this change is only used in lazy postings.


Update github workflows to use amazon-ecr-login v2

Fix mask password warning.
TODO(barak): they updated the docs but didn't release v2 yet
Example:
Test lakeFS Hadoop FileSystem compatibility (0.92.0)Your docker password is not masked. See https://github.com/aws-actions/amazon-ecr-login#docker-credentials for more information.

IIUC we didn't expose our password, just got a dummy warning, right? (Do we even pull with a password??)

We just need to registry address. The new version set the default to mark true - so they just need to release it and we will be good.


Dependency Analysis Error in XCode 9.2

On IOS when i build my app ; I'm facing a dependency analysis error resulting in a build failure.
Could not determine generated file paths for Core Data code generation: Error Domain=com.apple.dt.ModelingTools Code=1 "Error, failed to read Core Data data model from /Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/XEP-0115/CoreDataStorage/XMPPCapabilities.xcdatamodel: unknown model format" UserInfo={NSFilePath=/Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/XEP-0115/CoreDataStorage/XMPPCapabilities.xcdatamodel, NSLocalizedDescription=Error, failed to read Core Data data model from /Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/XEP-0115/CoreDataStorage/XMPPCapabilities.xcdatamodel: unknown model format}
Could not determine generated file paths for Core Data code generation: Error Domain=com.apple.dt.ModelingTools Code=1 "Error, failed to read Core Data data model from /Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/Roster/CoreDataStorage/XMPPRoster.xcdatamodel: unknown model format" UserInfo={NSFilePath=/Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/Roster/CoreDataStorage/XMPPRoster.xcdatamodel, NSLocalizedDescription=Error, failed to read Core Data data model from /Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/Roster/CoreDataStorage/XMPPRoster.xcdatamodel: unknown model format}
Could not determine generated file paths for Core Data code generation: Error Domain=NSCocoaErrorDomain Code=260 "No current version for model at path /Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/XEP-0054/CoreDataStorage/XMPPvCard.xcdatamodeld:" UserInfo={NSFilePath=/Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/XEP-0054/CoreDataStorage/XMPPvCard.xcdatamodeld, NSLocalizedDescription=No current version for model at path /Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/XEP-0054/CoreDataStorage/XMPPvCard.xcdatamodeld:}
Could not determine generated file paths for Core Data code generation: Error Domain=NSCocoaErrorDomain Code=260 "No current version for model at path /Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/XEP-0045/HybridStorage/XMPPRoomHybrid.xcdatamodeld:" UserInfo={NSFilePath=/Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/XEP-0045/HybridStorage/XMPPRoomHybrid.xcdatamodeld, NSLocalizedDescription=No current version for model at path /Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/XEP-0045/HybridStorage/XMPPRoomHybrid.xcdatamodeld:}
Could not determine generated file paths for Core Data code generation: Error Domain=NSCocoaErrorDomain Code=260 "No current version for model at path /Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/XEP-0136/CoreDataStorage/XMPPMessageArchiving.xcdatamodeld:" UserInfo={NSFilePath=/Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/XEP-0136/CoreDataStorage/XMPPMessageArchiving.xcdatamodeld, NSLocalizedDescription=No current version for model at path /Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/XEP-0136/CoreDataStorage/XMPPMessageArchiving.xcdatamodeld:}
Could not determine generated file paths for Core Data code generation: Error Domain=NSCocoaErrorDomain Code=260 "No current version for model at path /Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/XEP-0045/CoreDataStorage/XMPPRoom.xcdatamodeld:" UserInfo={NSFilePath=/Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/XEP-0045/CoreDataStorage/XMPPRoom.xcdatamodeld, NSLocalizedDescription=No current version for model at path /Users/agruet/mobile-dev/react-projects/goer/node_modules/react-native-xmpp/XMPPFramework/Extensions/XEP-0045/CoreDataStorage/XMPPRoom.xcdatamodeld:}
react-native : 0.54
Xcode: 9.2
Could you give me some advices?

I also encountered the same problem, the reason seems to be XMPPFramework removed in his latest version, because I use the previous version, I found XMPPFramework from previous node_modules/react-native-xmpp/ and copy it. However, in the latest xcode 9.3, kissXml will also report an error, I can only copy a copy from the pod file.
The author should recommend using CocoaPods.

Does anybody have solution to the problem, currently I cannot build it.

Found similar issue.

this library has gotten extremely frustrating ever since xcode 9.3 has come up. I have spent countless hours on this and can find no solution. each time i end up downgrading to xcode 9.2.

@aksonov
I'm encountering the same problem. Has anyone come up with a solution?


Prepend site.base_url to everything

This missed the social buttons

hey @eric-wieser thanks for this, it took me a few years to catch up with this repository. It was a good approach but I saw Jekyll now has a relative_url filter.  Thank for your PR.


Give Gradle action better control over command output

Addresses https://github.com/fastlane/fastlane/issues/4385
Actions.sh does not currently have a way to control printing of the command text to be executed separately from printing the output of that command.
The CommandExecutor does handle this, so this adds that capability to the Actions.sh family of methods. This capability is then used by the gradle action to allow people to suppress printing of the command text. This allows them to pass sensitive information (like passwords) as part of the command without having them become part of the log, but still view the output of the running command.

Add options to control printing command text and printing command output
Augment Actions.sh to add inputs that control printing command text separately from command output

Just the one question, otherwise GTG!

💯


Constraints for Keccak gate (without lookups)

This PR brings constraints for the keccak gate for the mips demo repo, as proposed in the 1-row optimization of 1965 columns (here).
It also includes constraints for the values of the selectors (flags) to decide whether it is a sponge or a round type of gate, which were not included in the above PR as this was encoded as gate coefficients before.

Closing because I will be splitting this PR across smaller chunks


 This PR removes the typed min/max functions in favor of a single generic min and max function in the numbers package. This is a fairly big change that would require everyone to update to 1.18 and introduces a new dependency to golang.org/x/exp as the generic packages are in googles experimental branch until generics get more field testing, however the expectation is these will move to the standard library in a future version of go. I think this would be worth a larger discussion before adding generics to gonomics so I am adding a do not merge tag for the time being.

This is exciting!  What is the down side?  I know you mentioned the dependency on exp and also needing everyone to be on 1.18 or greater.  Those seem acceptable to me (other people's thoughts?).  Any other read/potential downside that you see?

Does anyone have concerns about this?  Biggest thing I see would be making sure this doesn't break things for people when they go to run/compile main, but don't have >=1.18.  Can we have everyone upgrade their systems over the next couple days before we merge this so that once this gets merged, everyone is already on 1.18?

I've upgraded to golang1.18 both locally and on DCC and am ready to merge when others are


Sorted Data

User Story
AS A payroll manager

I WANT AN employee payroll tracker SO THAT I can see my employees' payroll data and properly budget for the company

Acceptance Criteria
GIVEN an employee payroll tracker

WHEN I choose to cancel THEN my employee data is displayed on the page sorted alphabetically by last name, and the console shows computed and aggregated data

The starter code already sorted employee data


Consumers should be able to create Order Subscriptions

The CallbackSubscription object wasn't being serialized at all, and the 'url' attribute must be in all uppercase when serialized to xml

Thank you @sginn!


Animals cannot be familiarized

For some reason, all of our animals won't accept grain to be familiarized. We have cows and pigs.

they do, i have tamed multiple animals sheeps, cows, pigs, it takes a while though.
also legit has tamed animals too so its not just me.


Remove unnecessary IPv4/6 options from various calicoctl commands

This is a fix for enhancement #102
See comment in this issue for details of the changes.

LGTM


"Invalid certificate or key" returned from awx when trying to create machine credential

Hi,
I have a bash script which worked perfectly with ansible tower 3.1.x and api v1.
I am now trying to get it working with awx <IP_ADDRESS>3 build and api v2.
Even trying to do this on the command line I get the same error - so I assuming this is user error...
I've assigned the id_rsa key to a variable name (fred) and it includes the begin and end of the key
tower-cli credential create --insecure --name="Andy" -d "tower cli test" -h http://hostname -u admin -p passwd --credential-type="Machine" --organization org --inputs='{"username": "$user", "ssh_key_data": "$fred"}' --fail-on-found.
Clearly I am missing something here ?
Any help appreciated, tried looking for examples but found none doing this on command line.
Andy

Reproduced the situation with:
tower-cli credential create --insecure --name="Andy" -d "tower cli test" --credential-type="Machine" --organization Default --inputs='{"username": "$user", "ssh_key_data": "$fred"}' --fail-on-found

Yes, this gives "Invalid certificate or key", and this pertains to the content inside ssh_key_data in inputs.
This is a gnarly, tricky, subject. By using ssh_key_data, you are trying to provide a full ssh key, which is rather large. I made one example of one way you can provide it:
https://github.com/ansible/tower-cli/blob/1a662f51f900b089dd2d74956fd1d90b466da2f3/docs_deprecated/examples/fake_data_creator.sh#L93-L111
That's a starting place, but it's still frustrating. #356 is sorely needed, but more work is needed to hammer out the exact use cases and the syntax patterns that we get when sourcing it from a file.
Unfortunately, even my testing of a pattern like --inputs="{username: root, ssh_key_data: $(cat ~/.ssh/id_rsa)}" still yields no results. This is because the server is actually expecting line breaks, and (on my machine at least) these are dropped in the process of coercing the output to data in the CLI option (although they are not inside of the prior example).
You can see where this comes from in AWX:
https://github.com/ansible/awx/blob/353a9a55c77e0f5a0ad43860fbdc9de5f22f29b8/awx/main/validators.py#L50-L62
Reproduce by using the ^(-{4,}) *BEGIN ([A-Z ]+?) *\1[\r\n]+(.+?)[\r\n]+\1 *END \2 *\1[\r\n]?(.*?)$ pattern inside of:
https://pythex.org/
and selecting DOTALL.
This will show you that
-----BEGIN RSA PRIVATE KEY-----
foobar
-----END RSA PRIVATE KEY-----

is accepted, but
-----BEGIN RSA PRIVATE KEY----- foobar -----END RSA PRIVATE KEY-----

is not.

@AlanCoding I've got this working - now based on your example - thanks. However I now need to also specify (I assume as additional --inputs) the following
PRIVATE KEY PASSPHRASE
PRIVILEGE ESCALATION METHOD
PRIVILEGE ESCALATION USERNAME
Can you confirm what the keywords for the above are for use with inputs ? I've looked - nothing in the docs I can see
Thanks
Andy

@AlanCoding don't worry I managed to figure this out - they are -
ssh_key_unlock: "${passphrase}"
become_method: "${become_meth}"
become_username: "${sudouser}"
It threw me because on the previous versions of tower these were all separated by dash not underscore ie become-method now is become_method
Andy

Could you please share the solution please? Will there be a PR to fix this?

I can tomorrow give a more detailed one but it was using Alan’s examples and then just getting the key properly formatted.
Sent from my iPhone

On 1 Feb 2018, at 18:40, Brian Duffy<EMAIL_ADDRESS>wrote:
Could you please share the solution please? Will there be a PR to fix this?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Hi @akcrisp and @AlanCoding,
I made a PR #1116 on this because it is currently blocking me from moving forward on a downstream project using ansible-tower-cli.  I should probably add additional keys to the unit tests to cover the case you described but the following passes the unit tests that are there;
    pem = re.compile(
        r'^-{5}\ *BEGIN ([A-Z ]+?)\ *-{5}' +
        r'\s*(.+?)\s*' +
        r'-{5}\ *END [A-Z ]+?\ *-{5}' +
        r'\s?(.*?)$',
        re.DOTALL
    )

I removed the back references because the create an unnecessary match group and back references are more expensive. Also match on whitespace: \s=[ \t\n\r\f\v] not just [\r\n].

Hi @akcrisp, just wondering how you worked around this issue? It would be good to know.

So the work around is to generate the key in the format required. We typically generate 2 types of credential - machine or for git.
I have a bash script which prompts the user for info required to generate credential ie Unix user / whether it uses escalation and what user etc.
So I create an ssh key in a secure directory having asked whether it’s a machine or git credential required.
Each credential type has a yaml template file associated with it.
I then set cred_template variable to use the appropriate cred template.
So machine cred template  has :-
—-
username: “${user}”
ssh_key_unlock: “${passphrase}”
become_method: “${becom_meth}”
become_username: “${sudouser}”
ssh_key_data: |
${awk ‘{printf “      %s\n”, $0}’ < ${user}_rsa)
user_rsa is the ssh key i generate.
Git template just has the ssh_key_data lines
All the variables I’d user passphrase get passed into the template and file generated using below piece of script with in the same bash code -
( echo “cat << EOF > cred_out.yml”;
cat $cred_template;
echo “EOF”;
) >temp.yml
. temp.yml
Finally I pass the complete cred_out.yml to the tower-cli command using variables from the script to provide the data required for other prompts ie
tower-cli credential create —name=“$credname” -d “$creddes” -h $towerhost -u $toweruser -p “$towerpass” —credential-type=“$cred_type” —organization $org<EMAIL_ADDRESS>—fail-on-found
Hope that’s useful
Andy
Sent from my iPhone

On 4 Feb 2018, at 16:42, Brian Duffy<EMAIL_ADDRESS>wrote:
Hi @akcrisp, just wondering how you worked around this issue? It would be good to know.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

Hi @akcrisp, yes that is really helpful! Thank you very much.

Closing as this is being addressed in https://github.com/ansible/tower-cli/issues/356

Pull request is still sitting there :(
Another workaround, a dumbed down version of @akcrisp's solution
This can go straight into a bash script
cat <<EOF > /tmp/cred.yaml
---
username: ubuntu
ssh_key_data: |
`awk '{printf "      %s\n", $0}' < ~/.ssh/id_rsa`
EOF
exit
tower-cli credential create --name="Local SSH" --credential-type="Machine" --organization="Default"<EMAIL_ADDRESS>rm -f /tmp/cred.yaml


Not possible to create emission glow

Current Behavior
Increasing "Emissive Scale" above 1 should create a glow/halo effect in MSFS via increasing "emissive factor" in glTF file above 1: there is a very useful quirk/feature of MSFS - if in the following code the "emissiveFactor" goes beyond 1, for example especially if any of the RGB values is around 30 or higher, there is a nice "glow" around the area. This is how people make collision lights and other glowing lights on buildings. It's extremely useful, but it seems that it's not possible to do with the exporter. We have to manually modify the .gtLF file for each LOD after each export, because it gets overwritten, which is very tedious.
This is how the material works for a nice collision light - it has an image texture which is made brighter and has a mild halo / glow around it in MSFS:
"emissiveFactor" : [                 30,                 0,                 0             ],
But if I just use the exporter, it looks like any emissive color only goes to 0.5 (so white is 0.5,0.5,0.5), and if "Emissive Scale" parameter is set above 1 (3, for example) it goes to 1 (so white is 1,1,1), and at some point the new parameter appears:
        `"extensions" : {
            "KHR_materials_emissive_strength" : {
                "emissiveStrength" : 1.5
            },`

It looks brighter in Blender, but it's ignored by MSFS and has no glow/halo effect. I wento to the mas of 100 in Blender and there is no difference. Only going to 30+ inside the glTF file has that effect. We need this effect in the Blender/exporter somehow, even if it is not what the colour is supposed to be represented as. This is what makes lights realistic and similar to other lights in MSFS. It would be nice to have a way - maybe an "Emissive Scale" actually working towards adding those values instead of creating an extension values that do not work in MSFS?
Expected Behavior
Increasing "Emissive Scale" above 1 should create a glow/halo effect in MSFS via increasing "emissive factor" in glTF file above 1.
Steps To Reproduce
increase "Emissive Scale" to any value up to 100 - no glow/halo in MSFS. Edit glTF file for "emissiveFactor" to 30,0,0 for a 30x red value, and there is a nice glow/halo around the material.
Environment
- OS: Win11
- Blender: 3.3.8LTS
- glTF-Blender-IO-MSFS: 1.3.1

Anything else?
No response

bug still open :)
https://github.com/AsoboStudio/glTF-Blender-IO-MSFS/issues/213


Have port as cli argument

Have a CLI argument so it is possible to specify the port the service is running on via the CLI

Closed cf8a582b9285aacc21294e3c10623b93ee299ee8


Alternative Lighter Materials

The current shader are quite heavy, there should be an option to switch to lighter ones. Maybe just a checkbox in the main menu.

gawag wrote elsewhere: "I just looked up your card and compared that to my old one ;-) http://www.videocardbenchmark.net/compare.php?cmp[]=1275&cmp[]=2152
4119 points vs 178 points, that's a big difference. My current GTX 770 has 6146 points and USP really feels ~50% faster, FPS still drop when I spawn multiple torches (via L) but it holds a bit more as before. Those points seem to be quite accurate"
I can do even worse than my NVIDIA GeForce 8600M GT.  My HP Elitebook 6930p laptop has integrated AMD Radeon HD 3450 graphics.  124 points!  Actual performance I've observed on various benchmarks is 1/2 the GeForce.  It currently scores 1.5 FPS in USP.

Now that D3D11 is actually working, I'm seeing performance on that HP Elitebook of ~1 FPS.

Just finished updating the "Creating a new Urho3D Project" wiki page and made a relative minimal sample project for that: https://github.com/gawag/UrhoSampleProject
How is that working? How are the FPS?
I have no errors with DirectX11 but the shadows are quite broken, with lines everwhere.

I didn't follow your directions.  :-)  I just fired up the CMake GUI like I always do, and it built fine.  17 FPS.  Shadows on the torch are missing though.  Piles of read-only stencil errors in the log.  So, maybe the underlying Urho3D problem isn't cured.  A simpler test, like you've made, would be good to submit to their issue tracker.

Just updated http://urho3d.wikia.com/wiki/First_Project to Urho 1.5 and works perfectly for me in DirectX11, even with shadows. I guess it's something with custom materials or custom shaders and DirectX11 in the stable 1.5. That sample should work really good for you as there's not much in there.

Hm, I would suggest putting that "this is based on..." URL at the bottom of the page, not the top.  Usually when someone gives me a GitHub repository, I go to it, looking to clone something.  Yes you gave directions but people are on auto-pilot when they already know how to do things.  :-)  If you weren't telling me about a GitHub repository, I would have figured out that I needed to copy the code on the page.
Will test shortly.  Had to write this up.

Just tried UrhoSampleProject against latest greatest Urho3D.  Shadows render correctly.  No failures about read-only depth stencil, just warnings due to new Urho3D fallback policy.
[Mon Dec 14 14:57:28 2015] WARNING: Failed to create read-only depth-stencil view for texture

16 FPS in both Debug and Release.


feat(acr): azure container registry plugin

Tracks: https://github.com/janus-idp/backstage-plugins/issues/216
This is based on https://github.com/janus-idp/backstage-plugins/pull/313
Description: Azure container registry plugin allows Backstage users to view details of an image related to a catalog resource deployed from your Azure Container Registry.
Screenshots/Gif:
Light Theme:

Dark Theme:

API Failure:

Tests:

TODO:

[x] Handle open review comments on https://github.com/janus-idp/backstage-plugins/pull/313
[x] Refactor code and clean up
[x] Error handling
[x] Add Dev Setup
[x] Add Tests

The registry should be a link
acr

quay

The registry repo should be a link acr
quay

am not sure why they kept in dev mode but in actual it is not, check below

The sort on the manifest column is not working. Try using the column render instead of modifying the Table data.

The SonarCloud quality gate can be solved later with the slow refactoring of shared components into @janus-idp/shared-react. This can be a separate task.


Rename reg keys from IIS ANCM V1 to V2

For #1014

Does it make sense to change reg key names? Who are they for?
@shirhatti

@shirhatti ping.


The installation process is corrupted in some way.

I tried to install with ember install ember-carousel, the installation works fine, but in the
/node_modules/ember-carousel/addon/templates/components/carousel-container.hbs. There is only single line of{{yeild}} in the file. Obviously the component does not work.

The installation is not corrupt,  the version in master had not yet been published. https://github.com/selvagsz/ember-carousel/blob/e6565bcffac67847ceb08e91f49e6b97cb84acb3/README.md is the documentation for the last published version.

ok 👍


Date/Time reverts three hours back when filling in new fields

The user reports that the date/time field changes 3 hours back automatically when filling in the other fields in the transcriber panel.
The user tried to reload the page to see if the issue reoccurred. The user tried browsers including Chrome, Firefox and Edge.
https://user-images.githubusercontent.com/46582468/120856921-7ff7cf80-c54e-11eb-9629-80b38027b4d7.mp4

I am unable to replicate this problem. Is there more information, was the user's machine in a different timezone?


MWPW-141392: Tooltip On Focus & Aria-checked

Adding isChecked prop for radio button states, adjusting aria-checked attributes, and handling tooltips for screen reader support
Resolves: MWPW-141392
Resolves: MWPW-141394
Resolves: MWPW-141395
Test URLs:
Before: https://main--dc--joaquinrivero.hlx.live/acrobat/online/compress-pdf?martech=off
After: https://main--dc--joaquinrivero.hlx.live/acrobat/online/compress-pdf?milolibs=mwpw-141392--milo--joaquinrivero&martech=off

aem-psi-check requires a test URL from the forked repo. It won't recognize the URL if it's .adobecom.hlx. and your branch is from your fork. I've already updated it in your ticket description so just FYI for next time.


Add (void)clearSharedInstance to IterableAPI.

The current implementation of IterableAPI does not allow client code to re-initialize a shared instance of IterableAPI once it has already been created.
We have a use case in which push notifications are managed using an Iterable campaign. We send notifications to both authenticated and anonymous users. Therefore it is necessary for us to register  a device token with a new email address when the user logs in or out.
This PN simply exposes a static method +(void)clearSharedInstance that will set the static property 'sharedInstance' to nil. Additionally each static initializer (overloads) were updated to use @synchronized to provide thread safety as the use dispatch_once would no longer make sense.
I believe this change would resolve #36
If I can clarify further please let me know. Hope this is helpful.

hey @nmartin867 , thanks for the PR!
Yes, this is an oversight on our part. At the moment, you could create your own IterableAPI and hold on to them instead of using the sharedInstance. But I agree, we should add an option to clear/reset the shared instance.
Can you revert the whitespace changes you made, and then I'll take another look? And yes, I agree with the synchronized/dispatch_once change.
P.S. We'll probably add an option to call disable on reset (see my response https://github.com/Iterable/iterable-ios-sdk/issues/36#issuecomment-313267173)

@dontgitit Whoops! Sorry. Looks like I let XCode re-indent. Yes, I will fix that and resubmit.

@dontgitit I reverted the formatting changes. Is this acceptable?
Thanks!

The old behavior of sharedInstanceWithApiKey was to return the existing instance when called multiple times. The new behavior will create a new instance every time, even if it's not nil. I'm not sure I have a strong preference either way.
@davidtruong thoughts?

@dontgitit You're right! It used to be wrapped in a dispatch_once block. It would (IMHO) be better to check if the instance is set and return it; otherwise create a new instance. I'd be happy to make that change and send another pull req if you like.

Works for me!
 It used to be
wrapped in a dispatch_once block. It would (IMHO) be better to check if the
instance is set and return it; otherwise create a new instance. I'd be
happy to make that change and send another pull req if you like.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Iterable/iterable-ios-sdk/pull/37#issuecomment-313529879,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEFh1HRISsuVzEPdjrBg2L2XeQ9vRn_Uks5sLVddgaJpZM4OOp2p
.

@dontgitit In both static initializers I've added a check to determine whether a shared instance already exists. A new instance will only be created when one does not already exist.
Have a good weekend!


[FEATURE] Alertmanager supports main stream receivers

Is your feature request related to a problem? Please describe.

For better customized integration of alertmanager, main stream receivers should be supported in Harvester Alertmanager.
Describe the solution you'd like

For better customized integration of alertmanager, main stream receivers should be supported in Harvester Alertmanager.
Harvester dashboard supports add/change/remove of alertmanager receiver.  Harvester dashboard supports multi receivers in parallel.
https://github.com/harvester/harvester/issues/2643
Describe alternatives you've considered

Additional context

The detailed description about the AlertmanagerConfig and how to config it, is added in HEP:
HEP PR:
HEP: Harvester supports alertmanager #2545
https://github.com/harvester/harvester/pull/2545

Known limitation:
The AlertmanagerConfig is enforced by namespace. But, not all alerts having namespace. Meanwhile, create same receiver in each namespace is also tedious.
The is a workaround as per below link. It allows to add a gloabl config to Alertmanager, which in turn removes namespace check in AlertmanagerConfig.
Unfortunately,  the alertmanagerConfiguration is supported in Harvester used rancher-monitoring.
https://github.com/prometheus-operator/prometheus-operator/issues/3737#issuecomment-1220906714

For TEST:
First validate the webhook type receiver is well supported.
Reference:
https://github.com/w13915984028/harvester/blob/fix2517/enhancements/20220720-alertmanager.md#story-3

Verified fixed on master-4c2242cd-head (09/21). Close this issue.
Result
Now we can add webhook type receiver from the Altermanager Config page for the given namespace

Please be noted, currently we can't create the receiver to collect all namespace alert which will be tracked in
https://github.com/harvester/harvester/issues/2760

Can applied the changes to alertmanagerconfig pod in Harveser

harv0921:~ # kubectl get alertmanagerconfig -A -o yaml
apiVersion: v1
items:
- apiVersion: monitoring.coreos.com/v1alpha1
  kind: AlertmanagerConfig
  metadata:
    creationTimestamp: "2022-09-21T08:16:21Z"
    generation: 1
    name: alert-receiver
    namespace: default
    resourceVersion: "14566"
    uid: 8f9c30a2-42c1-4831-92b5-8abf71134333
  spec:
    receivers: []
    route:
      groupBy: []
      groupInterval: 5m
      groupWait: 30s
      matchers: []
      repeatInterval: 4h
- apiVersion: monitoring.coreos.com/v1alpha1
  kind: AlertmanagerConfig
  metadata:
    creationTimestamp: "2022-09-21T08:48:38Z"
    generation: 2
    name: alertmanager
    namespace: default
    resourceVersion: "39171"
    uid: 32f813c3-24fd-4faf-a270-1e7723a5dfdf
  spec:
    receivers:
    - name: webhook
      webhookConfigs:
      - httpConfig:
          tlsConfig: {}
        sendResolved: false
        url: http://<IP_ADDRESS>:8094
    route:
      groupBy: []
      groupInterval: 5m
      groupWait: 30s
      matchers: []
      repeatInterval: 4h
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""

Test Information

Test Environment: 1 node Harvester on local kvm machine
Harvester version: master-4c2242cd-head (09/21)

Verify Steps

Prepare another VM or machine have the same subnet with the Harvester
Prepare a webhook server on the VM, reference to https://github.com/w13915984028/harvester-develop-summary/blob/main/test-log-event-audit-with-webhook-server.md
You may need to install python3 web package, refer to https://webpy.org/install
Run export PORT=8094 on the webhook server VM
Launch the webhook server python3 simple-webhook-server.py

davidtclin@ubuntu-clean:~$ python3 simple-webhook-server.py
usage: export PORT=1234 to set http server port number as 1234
start a simple webhook server, PORT 8094 @ 2022-09-21 16:39:58.706792

http://<IP_ADDRESS>:8094/

Access Harvester Alertmanager Configs page in Monitoring
Create an Alertmanager config

Access the created Alertmanager config
Click Add receiver

Select webhook page
Click Add webhook

Add `http://server_ip:8094 to the URL

Access Harvester node
Run kubectl get alertmanagerconfig -A -o yaml
Check the webhook server have applied to the Altertmanagerconfig pod
Check the webhook receiver can be created

Additional Context
Refer to HEP document for more details
https://github.com/w13915984028/harvester/blob/fix2517/enhancements/20220720-alertmanager.md


Reload simbrief

Hi. Now after the latest GSX update (v2.7.6) in order to reset VDGS info for the next flight on the turnaround the Reload Simbrief button should be pressed in GSX menu. Would it be possible to sync that button press with importing new flight on the EFB? Or any better idea to make it happen seamlessly on turnarounds. Thanks

great! thanks


Stream endless load - local issue

Streaming on localhost and the 192 address seems to endless load, even when I change port to be public it doesnt work on the host server. Although, when I use my phone and go to the 192 address, the stream works just fine...on mobile. I go to one of my other pc's and load the 192 address, I get the same problem as the host server, endless load for the stream output. But not once having this problem on mobile -> wifi/externally so long as I was able to see it, it worked on mobile.
But not once have I managed to make it work on the host pc, or locally from a different pc without setting the port to be open externally while using a pc. But somehow works on mobile just fine.
When clicking stream it also seems like it long polls both tabs, to the point where I have to close them both, then go back to the url in new tabs because of the endless buffering/loading

Closing this as there's no response, feel free to reopen if needed

Hello !
I'm having the same problem right now.
Whenever I'm trying to access the streaming page with the actual IP of my host : 192.168.x.x for example the page keeps loading endlessly.
2021-05-16 17:10:26,367 [DEBUG] __main__:: Requested stream page 2021-05-16 17:10:26,480 [DEBUG] __main__:: Starting stream 2021-05-16 17:10:33,636 [DEBUG] __main__:: Requested stream page 2021-05-16 17:11:55,281 [DEBUG] __main__:: Requested stream page 2021-05-16 17:12:00,562 [DEBUG] __main__:: Requested stream page
The three last attempts shows that the stream does not start. It just tries to load the page.


Add sr_only style, add colgroup tags

With this commit we are (again) introducing and use
a custom style for visually hide content but allow it
to still be used with the screen reader as govuk-visually-hidden
did not work as expected. We have also added the missing
colgroups in the data tables to further improve accessibility

All works as expected in Voiceover iOS. Seems good to me.


what's your original learning rate? on my training，the loss is in plateau.

Can you show me your train loss and val loss ？plz


Twinning: Support twinning for complex commands in the protocol api

Closing in favor of utilizing the specified twinning context tickets.


Investigate uncommitted changes + table rename

We store table's path id in LockRanges, but it doesn't seem to be ever updated when renaming tables. This makes me wonder what would happen when table is renamed while it has persistent uncommitted changes active (and when tx tries to commit those changes), especially when tablet is then restarted. Need to investigate, there may be a bug.

Found some problems:

Trying to commit a transaction after renaming a table fails, but uncommitted changes are not rolled back (presumably they would rollback after a restart when lock is restored, but I haven't checked that yet). We should rollback changes more explicitly (transaction that crosses a rename boundary must not be able to commit).
Trying to commit a transaction after a restart causes a check:

2024-05-28T12:25:02.951235Z node 1 :TX_DATASHARD TRACE: KqpCommitLock LockId:<PHONE_NUMBER>15659 DataShard:<PHONE_NUMBER>4037888 Generation: 1 Counter: 0 SchemeShard:<PHONE_NUMBER>6644480 PathId: 2 HasWrites: true
VERIFY failed (2024-05-28T12:25:02.951246Z): Unexpected failure to find table [72057594046644480:2:0] in datashard<PHONE_NUMBER>4037888
  ydb/core/tx/datashard/datashard_user_db.cpp:306
  CommitChanges(): requirement localTid failed

That happens because the persistent lock is restored on restart, and we apparently don't validate transaction body enough and don't detect an attempt to commit with a changed schema here. Lock has a table id, but that table no longer exists, so it crashes trying to commit.
We need to detect that persistent lock is no longer valid and clean it up asynchronously. It certainly shouldn't be possible to either validate or commit that lock after rename.


Nav mesh in editor does not stay hidden

When you have a nav mesh object in your mission simgroup and you hide it, it will hide, but when you exit the editor and open the editor again it is no longer hidden but visible, even thought it is still marked as hidden. Same is when you hide it and quit the game and then re open the level in editor, it will be visible again.
This is only for the nav mesh, all other objects work fine with hiding etc I think.

for me is working ok, can you confirm again this issue?
How you hided the nav mesh? like this

You can either test again with your compiled version or try with my release from here https://github.com/John3/Torque3D_Unofficial/releases/tag/v1.0.15 just download the exe and copy to your project.

Hm did not see that option, I hid it in the scene tree, where you normally hide all objects as well.
So that seems to be a global option in the editor if the mesh should be visible or not, so maybe that overrides the set hidden option in the scene tree.

hmmmm so you are using this option, from the properties?

This option TMK is not for the navmesh, you need to use the the provided options from navigation editor in the first pic.

Yes, it was just a bit confusing since normally you always use that option, it works for all objects, but apparently nav mesh is special.
So close this issue now or do others have problems with that as well? I had the navMesh using a lot of performance so I tried to hide it in the mission group.

So close this issue now or do others have problems with that as well? I think is safe to close, because the hidden options is for other kind of objects. Maybe we can remove that option.
I had the navMesh using a lot of performance so I tried to hide it in the mission group. What kind of performance issue? You need to disable the intermediates and rebuild in the background. With the intermediates disabled will help with this performance issue. (I have a few tuto videos about this if you want to see it)

If the intermediates is not the problem, you need tune the tiles size according your level. Ex, if you have the tile size too small and the navmesh is too big... well you know what I mean.

I have a navMesh with 1x1 km size with tile size 10, that goes on the performance quite a bit.

Yeah, rendering that in debug mode won't be very fast! :( Making the editing hidden checkbox work properly would probably be the ideal solution.

The hidden checkbox works it can just be confused with the regular hidden feature in the mission tree.
Or what did you mean?

I meant the regular one. Both should work!

Yes, it works for when you activate it, but it resets when restarting the editor, probably because the value gets overwritten by the other checkbox.


Minor optimization to take_slice

Codecov Report
Base: 86.94% // Head: 86.80% // Decreases project coverage by -0.14% :warning:

Coverage data is based on head (181c9b8) compared to base (1c8c772).
Patch coverage: 68.71% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3096      +/-   ##
==========================================
- Coverage   86.94%   86.80%   -0.15%
==========================================
  Files          83       83
  Lines       33092    33100       +8
==========================================
- Hits        28773    28733      -40
- Misses       4319     4367      +48

Impacted Files
Coverage Δ

src/encoder.rs
87.08% <ø> (-0.04%)
:arrow_down:

src/predict.rs
79.36% <46.47%> (-2.14%)
:arrow_down:

src/asm/x86/predict.rs
43.29% <55.26%> (+2.03%)
:arrow_up:

src/header.rs
68.97% <66.66%> (-0.05%)
:arrow_down:

src/asm/x86/ec.rs
100.00% <100.00%> (ø)

src/dist.rs
98.95% <100.00%> (-0.04%)
:arrow_down:

src/ec.rs
83.51% <100.00%> (ø)

src/frame/plane.rs
100.00% <100.00%> (ø)

src/partition.rs
75.84% <100.00%> (-1.90%)
:arrow_down:

src/rdo.rs
85.64% <100.00%> (-0.03%)
:arrow_down:

... and 7 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Removing Git crashes or lags the editor

VSCode Version: Code 1.12.2 (19222cdc84ce72202478ba1cec5cb557b71163de, 2017-05-10T13:13:11.413Z)
OS Version: Darwin x64 16.5.0
Extensions:

Extension
Author
Version

erb
CraigMaslowski
0.0.1

vscode-docker
PeterJausovec
0.0.14

erb
Riey
0.1.1

ruby-on-rails-snippets
atefth
0.0.1

vscode-whitespacer
deerawan
1.0.0

LogFileHighlighter
emilast
1.1.1

ruby
groksrc
0.0.6

ruby-linter
hoovercj
1.0.0

ruby-rubocop
misogi
0.3.5

prettify-json
mohsen1
0.0.3

Ruby
rebornix
0.12.1

simple-ruby-erb
vortizhe
0.2.0

Removing Git from a REPO causes all files in the filesystem to load in the github tab, and the editor to lag or crash.
Steps to Reproduce:

Have a git repo that has a ruby script that removes git (( This is what I'm using FileUtils.rm_r "../.git"))
Copy the repo and open in in vscode
control + ` To get terminal
Run Ruby Script in your copied
See that 99+ new git adds have been added to the sidebar tab.
To Ignore I had to reopen the editor

You have another .git folder somewhere above your folder directory. Find it and figure out whether you really need it.


Mcolomer/juno detector

Add JUNO detector into sntools

Merged, thank you for the nice contribution, @mcolomermolla! 🎉
I’ll tag another release in a bit, so you and JUNO collaborators can more easily use sntools in your research.


file .env with docker secret

Hello,
I put the passwords of an elastic stack in a ".env" file.
File .env:
ELASTIC_PASSWORD=elastic
…
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.16.3
env_file:
.env
…
When executing the stack, it works very well and the environment variables are updated in the stack. stack is ok.
Now when I put this ".env" file in secret docker the environment variables are not updated.
....
secrets:
elk_secret:
file: .env
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.16.3
secrets:
elk_secret
....
Is there a trick to be able to put the ".env" file in docker secret and have the stack environment variables updated.
docker version
Client:
Version: 18.03.1-ce
API version: 1.37
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:17:14 2018
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarm
Server:
Engine:
Version: 18.03.1-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:15:24 2018
OS/Arch: linux/amd64
Experimental: false
docker-compose version
docker-compose version 1.21.2, build a133471
docker-py version: 3.3.0
CPython version: 3.6.5
OpenSSL version: OpenSSL 1.0.1t 3 May 2016
Best regard
Olivier

not resolved


api rpc with a secret request for admin only with wallet status

an 'getinfo' api request for admins would be nice. This should only be able to be requested in combination with a secret to enable access for admins and monitoring purposes only.
-List of wallets (id, ip, wallet status, blockheight, amount of tix)

https://github.com/decred/vspd/blob/master/docs/deployment.md#voting-wallet-status
I think this covers what you are looking for.

Where is my mind?
The only missed info i would request at this point is the amount of tickets for each of these wallets. Since the wallets are set on manualtickets i can query these trough rpc via: 'dcrctl --wallet ticketinfo 499000 | jq '. | length' but having the information of the registered tickets for each individual wallet in your api endpoint would really help on the operational side. Not sure if these could pottentially become out of sync at all and if this would need monitoring.

The number of live tickets on each of the voting wallets is not a useful thing to measure for monitoring, the values will rarely be the same.
When one ticket is added to multiple wallets, and the ticket is called to vote, the wallets race to broadcast the vote. Only one of the wallets will succeed, the others will receive errors like tx already exists. The successful wallet will update the ticket status from live to voted, but it will remain with status live on the other voting wallets.
So long as vspd can connect to the voting wallets, it will always ensure they all have all of the correct tickets. Monitoring the connectivity is enough.

Closing for the reasons above


The doubt about anchor-free

I'm confused that the paper said DenseTNT is anchor-free, however, in the code, all the lane boundary point(goals_2D) is the model input, Is this contradictory？

The meaning of anchor here is the same as in object detection, where anchors are used to regress bounding boxes. TNT uses anchors to regress final goals, which is anchor-based. In DenseTNT, no regression is needed.

e used to regress bounding boxes. TNT uses anchors to regress final goals, which is anchor-based. In DenseTNT, no regression is needed.

OK, Got it


"curl -L https://git.io/getIstio | sh -"  is not working

(NOTE: This is used to report product bugs:
To report a security vulnerability, please visit https://istio.io/about/security-vulnerabilities/
To ask questions about how to use Istio, please visit https://discuss.istio.io
)
Bug description
Affected product area (please put an X in all that apply)
[ ] Configuration Infrastructure
[ ] Docs
[X] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Expected behavior
istioctl binary in my path
Steps to reproduce the bug
curl -L https://git.io/getIstio | sh -
Version (include the output of istioctl version --remote and kubectl version)
How was Istio installed?
Environment where bug was observed (cloud vendor, OS, etc)
Additionally, please consider attaching a cluster state archive by attaching
the dump file to this issue.
https://istio-releases.github.io/v0.1/docs/tasks/installing-istio.html#installation-steps

The script is curl -L https://git.io/getLatestIstio | ISTIO_VERSION=1.2.2 sh -
as indicated by https://istio.io/docs/setup/kubernetes/#downloading-the-release
Are you looking at old docs maybe?

Sorry! Google took me directly there


User is able to submit blank text in positive feedback

User is able to submit blank text in positive feedback. In my opinion this shouldn't be blank because this could be done by mistake.
I understand in case of negative feedback it makes sense to leave it optional as some kind of feedback has already been shared by selecting the options before but in case of positive feedback nothing is conveyed.
Please let me know if it is a valid issue, I would love to work on it. Thanks!

@nikit19, we are interested in positive feedback numbers, even when the comment box is left blank, so don't plan to change this.


docs: Update link and text regarding code of conduct

See https://github.com/tensorchord/envd/pull/456.

Thanks for your contribution! :tada: :+1:


had to install pandas, should be automatic

Make sure pandas is listed in the requirements before next pip version

the stellar_matchmaker.py import pandas but it's not used in the code for now. Are you gonna use pandas in the future?


helm dependency includes incorrect version with semantic versioning

We build charts for multiple hyperscalers and they sometimes have same version but differs with plus sign (GCP, AWS ..).
Like here we have two "other-chart" with same version but different hyperscaler.
2311.2.1-RC.1+GCP
2311.2.1-RC.1+AWS

We have following in our Chart.yaml
name: somechart
version: 2311.2.1
dependencies:
- condition: other-chart.enabled
  name: other-chart
  repository: PROPER_REPO_URL
  version: 2311.2.1-RC.1+GCP

However when we check the contents of charts directory inside of "somechart" that was created it has not the GCP version but AWS
apiVersion: v2
appVersion: 2311.2.1-RC.1+AWS
name: other-chart
version: 2311.2.1-RC.1+AWS

We tried to fetch the chart manually using helm fetch and that gets us proper chart with +GCP.
helm fetch testing/other-chart --version 2311.2.1-RC.1+GCP

The issue seems to be only with dependencies.
It is easily reproducable also by deleting charts directory and then running locally
helm dependency build

Can you please check/explain why helm dependencies does not pick proper version +GCP but +AWS instead when there are two same versions with different name after plus sign?
Output of helm version:
version.BuildInfo{Version:"v3.14.0", GitCommit:"3fc9f4b2638e76f26739cd77c7017139be81d0ea", GitTreeState:"clean", GoVersion:"go1.21.6"}
Output of kubectl version:
any
Cloud Provider/Platform (AKS, GKE, Minikube etc.):
any

Build metadata isn't included in version comparisons (emphasis added):

Build metadata MAY be denoted by appending a plus sign and a series of dot separated identifiers immediately following the patch or pre-release version. Identifiers MUST comprise only ASCII alphanumerics and hyphens [0-9A-Za-z-]. Identifiers MUST NOT be empty. Build metadata MUST be ignored when determining version precedence. Thus two versions that differ only in the build metadata, have the same precedence. Examples: 1.0.0-alpha+001, 1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85, 1.0.0+21AF26D3----117B344092BD.

https://semver.org/#spec-item-10
I suspect helm dependency build is simply ordering the available dependencies, and choosing "the first" (ie. ignoring the build metadata). I'm unsure if buildmeta tag should be used as a filter like this. (open question; I can see arguments on both sides).