Pico Enrolls, Press Works, Nothing happens

Describe The Bug:
I enrolled the devices and they show up on homekit no propblem. When I assign an action to the button it saves it no problem. Upon clicking the button the press shows. However nothing happens afterwards. The actual automation of turning on the light or off doesnt work.
Expected behavior:
When I hit the on the PJ2-3BRL I wanted to turn on a light
Logs:
[22/08/2022, 13:35:25] [Lutron] Button /button/128 on Pico remote Kitchen Above Kitchen Pico got action Press
[22/08/2022, 13:35:25] [Lutron] Button /button/128 on Pico remote Kitchen Above Kitchen Pico got action Release
[22/08/2022, 13:35:26] [Lutron] button /button/128 got a short press
[22/08/2022, 13:35:45] [Lutron] Button /button/128 on Pico remote Kitchen Above Kitchen Pico got action Press
[22/08/2022, 13:35:45] [Lutron] Button /button/128 on Pico remote Kitchen Above Kitchen Pico got action Release
[22/08/2022, 13:35:46] [Lutron] button /button/128 got a short press
[22/08/2022, 13:36:53] [Lutron] Button /button/128 on Pico remote Kitchen Above Kitchen Pico got action Press
[22/08/2022, 13:36:53] [Lutron] Button /button/128 on Pico remote Kitchen Above Kitchen Pico got action Release
[22/08/2022, 13:36:54] [Lutron] button /button/128 got a short press
[22/08/2022, 15:02:50] [Lutron] Button /button/153 on Pico remote Pico Pico got action Press
[22/08/2022, 15:02:50] [Lutron] Button /button/153 on Pico remote Pico Pico got action Release
[22/08/2022, 15:02:50] [Lutron] button /button/153 got a short press

More Logs
[22/08/2022, 20:53:31] [Lutron] Button /button/154 on Pico remote Office Pico got action Press
[22/08/2022, 20:53:31] [Lutron] btrk /button/154 got event Press in state 0
[22/08/2022, 20:53:31] [Lutron] btrk /button/154 now in state DOWN
[22/08/2022, 20:53:31] [Lutron] Button /button/154 on Pico remote Office Pico got action Release
[22/08/2022, 20:53:31] [Lutron] btrk /button/154 got event Release in state 1
[22/08/2022, 20:53:31] [Lutron] btrk /button/154 cleared timer
[22/08/2022, 20:53:31] [Lutron] btrk /button/154 now in UP state
[22/08/2022, 20:53:31] [Lutron] btrk /button/154 double press expiry
[22/08/2022, 20:53:31] [Lutron] btrk reset to IDLE
[22/08/2022, 20:53:31] [Lutron] button /button/154 got a short press
[22/08/2022, 20:53:57] [Lutron] Button /button/155 on Pico remote Office Pico got action Press
[22/08/2022, 20:53:57] [Lutron] btrk /button/155 got event Press in state 0
[22/08/2022, 20:53:57] [Lutron] btrk /button/155 now in state DOWN
[22/08/2022, 20:53:57] [Lutron] Button /button/155 on Pico remote Office Pico got action Release
[22/08/2022, 20:53:57] [Lutron] btrk /button/155 got event Release in state 1
[22/08/2022, 20:53:57] [Lutron] btrk /button/155 cleared timer
[22/08/2022, 20:53:57] [Lutron] btrk /button/155 now in UP state
[22/08/2022, 20:53:57] [Lutron] btrk /button/155 double press expiry
[22/08/2022, 20:53:57] [Lutron] btrk reset to IDLE
[22/08/2022, 20:53:57] [Lutron] button /button/155 got a short press
[22/08/2022, 20:54:00] [Lutron] Button /button/154 on Pico remote Office Pico got action Press
[22/08/2022, 20:54:00] [Lutron] btrk /button/154 got event Press in state 0
[22/08/2022, 20:54:00] [Lutron] btrk /button/154 now in state DOWN
[22/08/2022, 20:54:01] [Lutron] btrk /button/154 long press timeout
[22/08/2022, 20:54:01] [Lutron] btrk reset to IDLE
[22/08/2022, 20:54:01] [Lutron] button /button/154 got a long press
[22/08/2022, 20:54:01] [Lutron] Button /button/154 on Pico remote Office Pico got action Release
[22/08/2022, 20:54:01] [Lutron] btrk /button/154 got event Release in state 0
[22/08/2022, 20:54:01] [Lutron] btrk /button/154 no-op IDLE action Release
[22/08/2022, 20:54:23] [Lutron] Button /button/154 on Pico remote Office Pico got action Press
[22/08/2022, 20:54:23] [Lutron] btrk /button/154 got event Press in state 0
[22/08/2022, 20:54:23] [Lutron] btrk /button/154 now in state DOWN
[22/08/2022, 20:54:23] [Lutron] Button /button/154 on Pico remote Office Pico got action Release
[22/08/2022, 20:54:23] [Lutron] btrk /button/154 got event Release in state 1
[22/08/2022, 20:54:23] [Lutron] btrk /button/154 cleared timer
[22/08/2022, 20:54:23] [Lutron] btrk /button/154 now in UP state
[22/08/2022, 20:54:23] [Lutron] Button /button/154 on Pico remote Office Pico got action Press
[22/08/2022, 20:54:23] [Lutron] btrk /button/154 got event Press in state 2
[22/08/2022, 20:54:23] [Lutron] btrk /button/154 pressed before double-tap expiry
[22/08/2022, 20:54:23] [Lutron] btrk reset to IDLE
[22/08/2022, 20:54:23] [Lutron] button /button/154 got a double press
[22/08/2022, 20:54:23] [Lutron] Button /button/154 on Pico remote Office Pico got action Release
[22/08/2022, 20:54:23] [Lutron] btrk /button/154 got event Release in state 0
[22/08/2022, 20:54:23] [Lutron] btrk /button/154 no-op IDLE action Release
[22/08/2022, 20:54:27] [Lutron] Button /button/154 on Pico remote Office Pico got action Press
[22/08/2022, 20:54:27] [Lutron] btrk /button/154 got event Press in state 0
[22/08/2022, 20:54:27] [Lutron] btrk /button/154 now in state DOWN
[22/08/2022, 20:54:27] [Lutron] btrk /button/154 long press timeout
[22/08/2022, 20:54:27] [Lutron] btrk reset to IDLE
[22/08/2022, 20:54:27] [Lutron] button /button/154 got a long press
[22/08/2022, 20:54:30] [Lutron] Button /button/154 on Pico remote Office Pico got action Release
[22/08/2022, 20:54:30] [Lutron] btrk /button/154 got event Release in state 0
[22/08/2022, 20:54:30] [Lutron] btrk /button/154 no-op IDLE action Release
[22/08/2022, 20:54:40] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/3/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/3/status',
      Level: 0,
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 20:54:42] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/3/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/3/status',
      Level: 0,
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 20:56:06] [Lutron] Button /button/154 on Pico remote Office Pico got action Press
[22/08/2022, 20:56:06] [Lutron] btrk /button/154 got event Press in state 0
[22/08/2022, 20:56:06] [Lutron] btrk /button/154 now in state DOWN
[22/08/2022, 20:56:06] [Lutron] Button /button/154 on Pico remote Office Pico got action Release
[22/08/2022, 20:56:06] [Lutron] btrk /button/154 got event Release in state 1
[22/08/2022, 20:56:06] [Lutron] btrk /button/154 cleared timer
[22/08/2022, 20:56:06] [Lutron] btrk /button/154 now in UP state
[22/08/2022, 20:56:06] [Lutron] btrk /button/154 double press expiry
[22/08/2022, 20:56:06] [Lutron] btrk reset to IDLE
[22/08/2022, 20:56:06] [Lutron] button /button/154 got a short press
[22/08/2022, 20:56:26] [Lutron] Button /button/154 on Pico remote Office Pico got action Press
[22/08/2022, 20:56:26] [Lutron] btrk /button/154 got event Press in state 0
[22/08/2022, 20:56:26] [Lutron] btrk /button/154 now in state DOWN
[22/08/2022, 20:56:27] [Lutron] Button /button/154 on Pico remote Office Pico got action Release
[22/08/2022, 20:56:27] [Lutron] btrk /button/154 got event Release in state 1
[22/08/2022, 20:56:27] [Lutron] btrk /button/154 cleared timer
[22/08/2022, 20:56:27] [Lutron] btrk /button/154 now in UP state
[22/08/2022, 20:56:27] [Lutron] btrk /button/154 double press expiry
[22/08/2022, 20:56:27] [Lutron] btrk reset to IDLE
[22/08/2022, 20:56:27] [Lutron] button /button/154 got a short press
[22/08/2022, 21:04:29] [Lutron] Button /button/154 on Pico remote Office Pico got action Press
[22/08/2022, 21:04:29] [Lutron] btrk /button/154 got event Press in state 0
[22/08/2022, 21:04:29] [Lutron] btrk /button/154 now in state DOWN
[22/08/2022, 21:04:29] [Lutron] Button /button/154 on Pico remote Office Pico got action Release
[22/08/2022, 21:04:29] [Lutron] btrk /button/154 got event Release in state 1
[22/08/2022, 21:04:29] [Lutron] btrk /button/154 cleared timer
[22/08/2022, 21:04:29] [Lutron] btrk /button/154 now in UP state
[22/08/2022, 21:04:30] [Lutron] btrk /button/154 double press expiry
[22/08/2022, 21:04:30] [Lutron] btrk reset to IDLE
[22/08/2022, 21:04:30] [Lutron] button /button/154 got a short press
[22/08/2022, 21:04:38] [Lutron] Button /button/154 on Pico remote Office Pico got action Press
[22/08/2022, 21:04:38] [Lutron] btrk /button/154 got event Press in state 0
[22/08/2022, 21:04:38] [Lutron] btrk /button/154 now in state DOWN
[22/08/2022, 21:04:38] [Lutron] btrk /button/154 long press timeout
[22/08/2022, 21:04:38] [Lutron] btrk reset to IDLE
[22/08/2022, 21:04:38] [Lutron] button /button/154 got a long press
[22/08/2022, 21:04:42] [Lutron] Button /button/154 on Pico remote Office Pico got action Release
[22/08/2022, 21:04:42] [Lutron] btrk /button/154 got event Release in state 0
[22/08/2022, 21:04:42] [Lutron] btrk /button/154 no-op IDLE action Release
[22/08/2022, 21:04:46] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/3/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/3/status',
      Level: 100,
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:10] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/20/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/20/status',
      Level: 100,
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:11] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/14/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/14/status',
      Level: 100,
      SwitchedLevel: 'On',
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:11] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/14/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/14/status',
      Level: 100,
      SwitchedLevel: 'On',
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:17] [Lutron] Button /button/128 on Pico remote Kitchen Above Kitchen Pico got action Press
[22/08/2022, 21:05:17] [Lutron] btrk /button/128 got event Press in state 0
[22/08/2022, 21:05:17] [Lutron] btrk /button/128 now in state DOWN
[22/08/2022, 21:05:17] [Lutron] Button /button/128 on Pico remote Kitchen Above Kitchen Pico got action Release
[22/08/2022, 21:05:17] [Lutron] btrk /button/128 got event Release in state 1
[22/08/2022, 21:05:17] [Lutron] btrk /button/128 cleared timer
[22/08/2022, 21:05:17] [Lutron] btrk /button/128 now in UP state
[22/08/2022, 21:05:17] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/14/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/14/status',
      Level: 100,
      SwitchedLevel: 'On',
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:17] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/14/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/14/status',
      Level: 100,
      SwitchedLevel: 'On',
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:17] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/15/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/15/status',
      Level: 100,
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:17] [Lutron] btrk /button/128 double press expiry
[22/08/2022, 21:05:17] [Lutron] btrk reset to IDLE
[22/08/2022, 21:05:17] [Lutron] button /button/128 got a short press
[22/08/2022, 21:05:26] [Lutron] Button /button/123 on Pico remote Living Room Pico got action Press
[22/08/2022, 21:05:26] [Lutron] btrk /button/123 got event Press in state 0
[22/08/2022, 21:05:26] [Lutron] btrk /button/123 now in state DOWN
[22/08/2022, 21:05:26] [Lutron] Button /button/123 on Pico remote Living Room Pico got action Release
[22/08/2022, 21:05:26] [Lutron] btrk /button/123 got event Release in state 1
[22/08/2022, 21:05:26] [Lutron] btrk /button/123 cleared timer
[22/08/2022, 21:05:26] [Lutron] btrk /button/123 now in UP state
[22/08/2022, 21:05:26] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/13/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/13/status',
      Level: 100,
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:26] [Lutron] btrk /button/123 double press expiry
[22/08/2022, 21:05:26] [Lutron] btrk reset to IDLE
[22/08/2022, 21:05:26] [Lutron] button /button/123 got a short press
[22/08/2022, 21:05:27] [Lutron] Button /button/126 on Pico remote Living Room Pico got action Press
[22/08/2022, 21:05:27] [Lutron] btrk /button/126 got event Press in state 0
[22/08/2022, 21:05:27] [Lutron] btrk /button/126 now in state DOWN
[22/08/2022, 21:05:27] [Lutron] Button /button/126 on Pico remote Living Room Pico got action Release
[22/08/2022, 21:05:27] [Lutron] btrk /button/126 got event Release in state 1
[22/08/2022, 21:05:27] [Lutron] btrk /button/126 cleared timer
[22/08/2022, 21:05:27] [Lutron] btrk /button/126 now in UP state
[22/08/2022, 21:05:27] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/13/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/13/status',
      Level: 39,
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:27] [Lutron] Button /button/124 on Pico remote Living Room Pico got action Press
[22/08/2022, 21:05:27] [Lutron] btrk /button/124 got event Press in state 0
[22/08/2022, 21:05:27] [Lutron] btrk /button/124 now in state DOWN
[22/08/2022, 21:05:28] [Lutron] Button /button/124 on Pico remote Living Room Pico got action Release
[22/08/2022, 21:05:28] [Lutron] btrk /button/124 got event Release in state 1
[22/08/2022, 21:05:28] [Lutron] btrk /button/124 cleared timer
[22/08/2022, 21:05:28] [Lutron] btrk /button/124 now in UP state
[22/08/2022, 21:05:28] [Lutron] btrk /button/126 double press expiry
[22/08/2022, 21:05:28] [Lutron] btrk reset to IDLE
[22/08/2022, 21:05:28] [Lutron] button /button/126 got a short press
[22/08/2022, 21:05:28] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/13/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/13/status',
      Level: 50,
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:28] [Lutron] Button /button/127 on Pico remote Living Room Pico got action Press
[22/08/2022, 21:05:28] [Lutron] btrk /button/127 got event Press in state 0
[22/08/2022, 21:05:28] [Lutron] btrk /button/127 now in state DOWN
[22/08/2022, 21:05:28] [Lutron] btrk /button/124 double press expiry
[22/08/2022, 21:05:28] [Lutron] btrk reset to IDLE
[22/08/2022, 21:05:28] [Lutron] button /button/124 got a short press
[22/08/2022, 21:05:28] [Lutron] Button /button/127 on Pico remote Living Room Pico got action Release
[22/08/2022, 21:05:28] [Lutron] btrk /button/127 got event Release in state 1
[22/08/2022, 21:05:28] [Lutron] btrk /button/127 cleared timer
[22/08/2022, 21:05:28] [Lutron] btrk /button/127 now in UP state
[22/08/2022, 21:05:28] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/13/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/13/status',
      Level: 34,
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:28] [Lutron] Button /button/125 on Pico remote Living Room Pico got action Press
[22/08/2022, 21:05:28] [Lutron] btrk /button/125 got event Press in state 0
[22/08/2022, 21:05:28] [Lutron] btrk /button/125 now in state DOWN
[22/08/2022, 21:05:28] [Lutron] Button /button/125 on Pico remote Living Room Pico got action Release
[22/08/2022, 21:05:28] [Lutron] btrk /button/125 got event Release in state 1
[22/08/2022, 21:05:28] [Lutron] btrk /button/125 cleared timer
[22/08/2022, 21:05:28] [Lutron] btrk /button/125 now in UP state
[22/08/2022, 21:05:29] [Lutron] btrk /button/127 double press expiry
[22/08/2022, 21:05:29] [Lutron] btrk reset to IDLE
[22/08/2022, 21:05:29] [Lutron] button /button/127 got a short press
[22/08/2022, 21:05:29] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/13/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/13/status',
      Level: 0,
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:29] [Lutron] Button /button/124 on Pico remote Living Room Pico got action Press
[22/08/2022, 21:05:29] [Lutron] btrk /button/124 got event Press in state 0
[22/08/2022, 21:05:29] [Lutron] btrk /button/124 now in state DOWN
[22/08/2022, 21:05:29] [Lutron] Button /button/124 on Pico remote Living Room Pico got action Release
[22/08/2022, 21:05:29] [Lutron] btrk /button/124 got event Release in state 1
[22/08/2022, 21:05:29] [Lutron] btrk /button/124 cleared timer
[22/08/2022, 21:05:29] [Lutron] btrk /button/124 now in UP state
[22/08/2022, 21:05:29] [Lutron] btrk /button/125 double press expiry
[22/08/2022, 21:05:29] [Lutron] btrk reset to IDLE
[22/08/2022, 21:05:29] [Lutron] button /button/125 got a short press
[22/08/2022, 21:05:29] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/13/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/13/status',
      Level: 50,
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:29] [Lutron] btrk /button/124 double press expiry
[22/08/2022, 21:05:29] [Lutron] btrk reset to IDLE
[22/08/2022, 21:05:29] [Lutron] button /button/124 got a short press
[22/08/2022, 21:05:35] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/20/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/20/status',
      Level: 94,
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:37] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/14/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/14/status',
      Level: 0,
      SwitchedLevel: 'Off',
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:37] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/14/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/14/status',
      Level: 0,
      SwitchedLevel: 'Off',
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:46] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/11/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/11/status',
      Level: 100,
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:47] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/11/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/11/status',
      Level: 0,
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}
[22/08/2022, 21:05:49] [Lutron] bridge 0272671e got unsolicited message Response {
  Header: {
    MessageBodyType: 'OneZoneStatus',
    StatusCode: ResponseStatus { message: 'OK', code: 200 },
    Url: '/zone/13/status/level'
  },
  CommuniqueType: 'ReadResponse',
  Body: OneZoneStatus {
    ZoneStatus: {
      href: '/zone/13/status',
      Level: 0,
      Zone: [Object],
      StatusAccuracy: 'Good'
    }
  }
}

**Plugin Config:**

        {
            "name": "Lutron",
            "options": {
                "filterPico": false,
                "filterBlinds": true,
                "clickSpeedLong": "default",
                "clickSpeedDouble": "default"
            },
            "secrets": [
                {
                    "bridgeid": "<removed>",
                    "ca": "<removed>",
                    "key": "<removed>",
                    "cert": "<removed>"
                }
            ],
            "platform": "LutronCasetaLeap"
        },

Screenshots:
https://www.youtube.com/shorts/QavB03Q82gI
Environment:

Plugin Version: 2.4.2
Homebridge Version: 1.5
Node.js Version: 16.17.0
NPM Version: 8.15
Operating System:

I had an old instance of Homebridge, I completely reset the RPI and started fresh. the same problem is happening even with a fully updated version.

I fixed my own problem. I removed the association with the bridge and reconnected it. now its working fine.
the difference in connecting this time around was this -
[22/08/2022, 22:00:46] [Homebridge UI] [homebridge-lutron-caseta-leap] Incoming Request: /associate
[22/08/2022, 22:00:46] [Homebridge UI] [homebridge-lutron-caseta-leap] Got request to associate with  at <IP_ADDRESS>
[22/08/2022, 22:00:46] [Homebridge UI] [homebridge-lutron-caseta-leap] association phase connected  <IP_ADDRESS>
[22/08/2022, 22:00:52] [Homebridge UI] [homebridge-lutron-caseta-leap] got message {
Header: { StatusCode: '200 OK', ContentType: 'status;plurality=single' },
Body: { Status: { Permissions: [Array] } }
}
[22/08/2022, 22:00:52] [Homebridge UI] [homebridge-lutron-caseta-leap] Physical access confirmed

Glad you got this sorted. I suspect the issue was in HomeKit, and re-associating kicked it hard enough to stick. Once the button press is recognized, the plugin updates HomeKit and it's out of the plugin's control. The association message you've pasted is a normal part of bridge setup, and would have appeared for any successful connection to the bridge, which you demonstrated. If it recurs, please feel free to re-open this ticket, and thank you for the report.


feat(robot-server): Present error codes in error responses

This PR does the equivalent of #12936 for the non-protocol-engine robot server error responses - both the LegacyErrorResponse (which now has an errorCode entry as well as a message, but otherwise not a whole lot else) and the ErrorResponse and MultiErrorResponse, which now have a top level errorCode and also properly intern the exception chain in their multiple-error-body responses.
We also go through and add a couple new useful errors, which is a process that will continue.
Review Requests

Does the way we treat MultipleErrorResponse and ErrorResponse make sense? What's the point of the multi error response anyway, given that error response can hold multiple errors?

Testing

[x] Make sure that in practice, errors from both legacy and non-legacy routes that don't have anything to do with protocol engine send back errors properly

Next steps
Similarly to #12936 , now that the catchalls and structure is in place we need to go through and make sure that the exceptions that we raise to start any given error response off have error codes and tuned messages.

Openapi docs and spec now show the error code in error response schemas with a default of 4000!


NullPointerException at "BuildCause.getUpstreamBuild()"

This is issue #125 revisited
public class BuildCause {
   ...
    private Integer upstreamBuild;
   ...
    public BuildCause() {
        this.upstreamBuild = new Integer(0);
    }

    public int getUpstreamBuild() {
        return upstreamBuild;
    }

    public void setUpstreamBuild(Integer upstreamBuild) {
        this.upstreamBuild = upstreamBuild;
    }

NullPointerException is thrown when getUpstreamBuild() is called.
Probably setting it to default value in the constructor has no effect, as it is being rewritten afterwards.
We use jenkins-client ver. 0.3.5 and Jenkins ver. 1.639

First thanks for your check. I have found the real issue which is caused by the BuildWithDetails class which initialised in its method getCauses() the BuildCause but simply overwrote the initialised values which could cause a NPE.


TypeError: Cannot read property 'filter' of undefined

Laravel Mix Version: ^5.0.1
Node Version 14.12.0:
NPM Version 6.14.8:
OS Linux (Arch Linux):

Description:
I'm trying to compile JS/CSS assets for production, but after typing npm run production or yarn run production I get this error
ModuleBuildError: Module build failed (from ./node_modules/postcss-loader/src/index.js):
TypeError: Cannot read property 'filter' of undefined

Steps To Reproduce:

npm install
npm run dev
npm run production

Error Log
ERROR in ./resources/sass/app.scss
Module build failed (from ./node_modules/css-loader/index.js):
ModuleBuildError: Module build failed (from ./node_modules/postcss-loader/src/index.js):
TypeError: Cannot read property 'filter' of undefined
    at /path/into/site/files/node_modules/@fullhuman/postcss-purgecss/lib/postcss-purgecss.js:1:483
    at LazyResult.run (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:295:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:208:26)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at /path/into/site/files/node_modules/postcss/lib/lazy-result.js:250:14
    at new Promise (<anonymous>)
    at LazyResult.async (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:246:23)
    at LazyResult.then (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:127:17)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:212:17)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at /path/into/site/files/node_modules/postcss/lib/lazy-result.js:250:14
    at new Promise (<anonymous>)
    at LazyResult.async (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:246:23)
    at LazyResult.then (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:127:17)
    at /path/into/site/files/node_modules/postcss-loader/src/index.js:142:8
    at /path/into/site/files/node_modules/webpack/lib/NormalModule.js:316:20
    at /path/into/site/files/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /path/into/site/files/node_modules/loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (/path/into/site/files/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at /path/into/site/files/node_modules/postcss-loader/src/index.js:208:9
 @ ./resources/sass/app.scss

ERROR in ./resources/sass/app.scss (./node_modules/css-loader??ref--5-2!./node_modules/postcss-loader/src??postcss0!./node_modules/sass-loader/dist/cjs.js??ref--5-4!./resources/sass/app.scss)
Module build failed (from ./node_modules/postcss-loader/src/index.js):
TypeError: Cannot read property 'filter' of undefined
    at /path/into/site/files/node_modules/@fullhuman/postcss-purgecss/lib/postcss-purgecss.js:1:483
    at LazyResult.run (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:295:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:208:26)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at /path/into/site/files/node_modules/postcss/lib/lazy-result.js:250:14
    at new Promise (<anonymous>)
    at LazyResult.async (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:246:23)
    at LazyResult.then (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:127:17)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:212:17)
    at LazyResult.asyncTick (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:221:14)
    at /path/into/site/files/node_modules/postcss/lib/lazy-result.js:250:14
    at new Promise (<anonymous>)
    at LazyResult.async (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:246:23)
    at LazyResult.then (/path/into/site/files/node_modules/postcss/lib/lazy-result.js:127:17)
    at /path/into/site/files/node_modules/postcss-loader/src/index.js:142:8
 @ ./resources/sass/app.scss 2:14-196
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

SCSS code
https://gist.github.com/ousid/91c5887fb6dd4a79bf00f85646a434be

Include what's in your webpack.mix.js file.

Hey, @JeffreyWay here is what in webpack.min.js file
const mix = require("laravel-mix");

require("laravel-mix-tailwind");

mix.js("resources/js/app.js", "public/js/app.js")
    .js("resources/js/follow.js", "public/js/follow.js")
    .js("resources/js/chart.js", "public/js/chart.min.js")
    .js("resources/js/carousel.js", "public/js/swiper.min.js")
    .sass("resources/sass/app.scss", "public/css/app.css")
    .tailwind("./tailwind.config.js")
    .sourceMaps();

if (mix.inProduction()) {
    mix.version();
}

Tough to say. Nothing immediately jumps out at me.
Can you slowly chip away at your webpack.mix.js file until you're able to get the build to compile? Try to figure out exactly where the build blows up.

I had the exact same error because I messed up the whitelist options in my tailwind.config.js ...
Before (purge: was double)
module.exports = {
    purge: [
         './vendor/laravel/jetstream/**/*.blade.php',
         './storage/framework/views/*.php',
         './resources/views/**/*.blade.php',
    ],
    purge: {
         // These options are passed through directly to PurgeCSS
         options: {
             whitelist: ['bg-red-500', 'px-4'],
         }
    },
    // ...
}

Fixed
module.exports = {
     purge: {
          content: [
              './vendor/laravel/jetstream/**/*.blade.php',
              './storage/framework/views/*.php',
              './resources/views/**/*.blade.php',
          ],

          // These options are passed through directly to PurgeCSS
          options: {
              whitelist: ['bg-red-500', 'px-4'],
          }
     },
     // ...
}

I had the exact same error because I messed up the whitelist options in my tailwind.config.js ...
Before (purge: was double)
module.exports = {
    purge: [
         './vendor/laravel/jetstream/**/*.blade.php',
         './storage/framework/views/*.php',
         './resources/views/**/*.blade.php',
    ],
    purge: {
         // These options are passed through directly to PurgeCSS
         options: {
             whitelist: ['bg-red-500', 'px-4'],
         }
    },
    // ...
}

Fixed
module.exports = {
     purge: {
          content: [
              './vendor/laravel/jetstream/**/*.blade.php',
              './storage/framework/views/*.php',
              './resources/views/**/*.blade.php',
          ],

          // These options are passed through directly to PurgeCSS
          options: {
              whitelist: ['bg-red-500', 'px-4'],
          }
     },
     // ...
}

Thanks @speoman  Your Answer Solved the issue,
thanks @JeffreyWay  for your response, appreciate it.

Thank you for the explanation! I accidentally had a purge block within a purge block, so changing it to content fixed it for me.

Hey folks. Just wanted to say, I had this error as well and this thread led me to the purge config as well, BUT mine was failing because it was commented.
This broke:
  purge: {
    // enabled: true,
    // content: ['./src/**/*.js'],
  },

Had the same error,
turns out I had contents instead of content.


Add an “Area” data-type into CAMARA_common.yaml

Problem description
Multiple APIs are using a similar data type (a profiled variant) for describing an Area, which allows a description of a service area or geographical area in form of a circle and/or a polygon.

The location-retrieval API (Device Location),  region-device-count API and the proposed NetworkSliceBooking API allow an Area definition in form of a circle or a polygon.
The geofencing-subscriptions API (Device Location) and the location-verification (Device Location) API only allow circles.
The population-density-data API only allows a polygon.

Note, a similar ‘Area’ definition is also available in 3GPP (TS 29.572). There are some differences, like the data type is named GeographicArea or the PointList is a list of GeographicalCoordinates (no Points).
Expected action

A new data type for describing service areas is added to CAMARA_common.yaml.
Potential restrictions (e.g. allowing intersecting polygon lines, etc) should be discussed and documented.

@jlurien FYI for any consideration. Issue is going to be enhanced with more info.

When creating an Area Data-Type in CAMARA_common.yaml, the following modifications/ extensions should be discussed

Rename the Point Data-Type to GeographicalCoordinate (see 3GPP LMF Location) to make it more developer friendly.
Make the AreaType definition extensible (forward compatible), so that additional types (like a 3D polygon to capture also drone/UAV use-cases) can be easily added in future.
Allow different units in the circle definition. Currently, the unit of the radius is always in meters.
Add constrains to the polygon definition to simplify implementations. For example, prohibit intersections.

@tlohmar I support the idea. In fact, when defining areas in RegionDeviceCount and NetworkSliceBooking, we referred to the definition of area in DeviceLocation due to the lack of a common definition. If 3GPP has a complete definition standard, I believe it is reasonable to follow 3GPP's definition to create a common definition for area.

having a consistent representation of the same area is a good idea.
From the PopulationDensity API group point of view the important criteria we must secure are:

every API can decide which type of areas it supports. For example, an API can support only circles or only polygons or both.
the structure representation must stay simple (afaik, this was one of the reasons why people did not take TS 29.572 "as is")

Besides this, there are two other issues which one need to decide:
a. Should Camara API on the global level introduce limitations like 15 vertexes for a polygon? Why exactly 15 and why all APIs must follow it for input and output?
b. Renaming (like  Point -> GeographicalCoordinates) is a not backward compatible change, therefore it should better be agreed and adapted by all APIs before September meta release.
PS: regarding renaming suggested in the comment

Rename the Point Data-Type to GeographicalCoordinate (see 3GPP LMF Location)

TS 29.572 uses GeographicalCoordinateS (plural)

Another source of inspiration for the data type could be objects defined by The GeoJSON Specification (RFC 7946). See:

https://geojson.org/
https://datatracker.ietf.org/doc/html/rfc7946

Completely aligned on having a consistent representation across our API.
Now about the value itself I'm bit more mixed.

in GeoJson I did no see a circle representation in the rfc9646 (I missed something @tanjadegroot ?)
In 3GPP TS129 572 I did not find either circle & got a POINT_UNCERTAINTY_CIRCLE which is not very nice to put in our API for non-telco developer (I missed something @tlohmar @gregory1g? )

Could worth to have some discussion about keep it standard (and which standard?) vs keep simple.

Our model in DeviceLocation is almost the same as 3GPP LMF Location API (TS29.572), but with different names. 3GPP PointUncertaintyCircle (point + uncertainty) is equivalent to our Circle (center + radius), and Polygon is also an array of coordinates delimiting the boundary (pointList vs boundary), both with length 3-15 (we copied the limit from them).
GeoJson uses a more complex, and I would say less intuitive, model. Polygons for example are defined as an array of arrays of arrays, allowing the definition of polygons with holes. And Circles are not explicitly specified AFAIK.
It would be good to include the common schemas in the common artifact and find some way to reference them from the specs. e.g. "$ref": "CAMARA_common.yaml#/components/schemas/XXX"


Added option to include hidden files is listings

Added an option (Include hidden files in output?) which, went set, will ignore files who's name starts with a period(.)

Hi @juggledad , many thanks for contributing.
Just a quick check.  This module should be cross-platform.

I thought I responded several hours ago but don'tsee it...
No I can't test it on Windows since I only have access to my Mac and Pi.

Julian...did you ever get time to check this out?

Hi, apologies this has taken so long.
While I am not going to merge this PR, I have used the code. There were a few tweaks that I wanted to make. For example, the default setting is true rather than false since the previous version defaults to including them. Changing the default would mean creating a new major version.
So I am closing this but rest assured that the feature will appear in v1.0.2 which is about to be published. Many thanks for your input and I've added you to the contributors.


Proposals Frontend

To the frontend/ folder added a React project containing UI for:

displaying live proposals
voting on live proposals
creating new proposals

Running now at http://<IP_ADDRESS>/


chore(deps): update dependency @types/node to v22

This PR contains the following updates:

Package
Type
Update
Change
Pending

@types/node (source)
devDependencies
major
^20.11.28 -> ^22.0.0
22.10.1 (+7)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Renovate Ignore Notification
Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future 22.x releases. But if you manually upgrade to 22.x then Renovate will re-enable minor and patch updates automatically.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.


make run-in-broker fails

Hi there,
I just tried to follow your instructions to build rabbitmq-websockets and I hit an error during building:
make: *** No rule to make target `src/rabbitmq_websockets.app.src', needed by `ebin/rabbitmq_websockets.app'.  Stop.

You can look at https://gist.github.com/1610912 for the full build output.
It would be great if you could help me here!

Hi,
I will take a look later tonight probably. CET time

Just fixed it. Try with the latest repo.


boards: arm: pinetime: Enable ST7789v driver

When the application requests CONFIG_DISPLAY, then automatically
enable the display driver using CONFIG_ST7789V.
Signed-off-by: Casper Meijn<EMAIL_ADDRESS>

Is the build failure related to my changes? Or did it timeout for another reason?

Is the build failure related to my changes? Or did it timeout for another reason?

It doesn't look related to your changes. Can you try rebasing please?


support custom templates via helm

top-level templates is dict of filename: contents, e.g.
templates:
  "page.html": |
    {% extends "templates/page.html" %}
    ...

mount custom templates dir in /etc/binderhub/templates

Existing template config already supports this, so it's just getting the files to the container that we needed.
Possibly more general solution to #1471

Hm, we have a problem in CI because it's now impossible to update the helm schema and pass tests, because the same config is passed both to the current and previous version of binderhub.
If the schema weren't so strict (i.e. rejecting addtionalProperties), this would be less of an issue.

This seems like [hub|singleuser].extraFiles but specialized for templates. Should we go for the even more general approach of extraFiles instead of this?

Z2JH configuration reference
Z2JH code implementation

extraFiles helpers defined. These can perhaps also be reused directly from this helm chart as it depends on the jupyterhub Helm chart.
extraFiles helpers referenced from a k8s Secret

This seems like [hub|singleuser].extraFiles but specialized for templates

It is! I actually used your extraFiles implementation as reference. JupyterHub is much more infinitely extensible, so there are more general files that make sense to drop-in, especially files we as chart maintainers don't need to know about. I'm not sure I see a similar arbitrary files use case in BinderHub, so I thought this would be simpler, both to implement (the whole thing is smaller than just the helpers for extraFiles) and use (deployments don't need to know where we put templates). On the other hand, I can imagine expert JupyterHub deployers (and maintainers) liking the familiarity of extraFiles consistently applied everywhere.

I went with a simple test under pytest.mark.remote. It's not 100% correct semantically (remote doesn't mean it's our helm test config), but it is correct practically (those are the tests we run against this config).

Looks like I wasn't quite right about the condition, trying a fix

New test (new helm mark) now runs only when --helm is passed, verifying that extraFiles is working as intended.


a test issue for whether gardener-robot exlcludes this repo

What happened:
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know:
Environment:

/ping

/ping

/ping

/ping


Marymount links to cover images

Marymount has cover image jpg filenames in some records' 856 $u. Launchpad is creating a non-working link to the jpg, "available to all".
http://findit.library.gwu.edu/item/12932387

Could this fix be wrapped in to the changes from #1060 ?

The problem seems more that the url is lacking an http:// and doesn't work, than the fact that it's a jpg. There may be reasons to link to an image as an online resource? I don't know, but am addressing this by checking that the url starts with http://
BTW, the example book here is a good one, worth reading.

Fixed in #1064 by looking for http (in order to also catch https) in URL.


SITL bind failed

Ubuntu 16.0.4, builds fine however the initial output is:
px4 starting.

INFO  [dataman] Unkown restart, data manager file 'rootfs/fs/microsd/dataman' size is 11797680 bytes
INFO  [platforms__posix__drivers__ledsim] LED::init
INFO  [platforms__posix__drivers__ledsim] LED::init
WARN  [simulator] bind failed

Followed instructions on px4.io for linux. Please advise.

UPDATE: Seems as though current build stays open on 14560 port.


Updated parameter for swapfile as per #18408

https://github.com/MicrosoftDocs/azure-docs/issues/18408

Microsoft authors of articles need to make updates through the private repository so the updates can be staged and validated by the current validation rules. After you review staging and fix all validation issues, you can add the sign-off comment to let the PR reviewers know the updates are ready to be merged.It's easy to access the private repo version of your articles in GitHub. Just add -pr to the URL, as follows:
Public repo URL: https://github.com/Microsoft/azure-docs/blob/master/articles/azure-portal-overview.md
Private repo URL: https://github.com/Microsoft/azure-docs-pr/blob/master/articles/azure-portal-overview.md
We have closed this pull request. Please resubmit the updates through the private repo. If you need perms to the private repo, see the contributor guide instructions


The default player should gracefully handle multiple streams

Ingesting multiple streams or streams with unknown flavors, the player shouldn't just give up, but try to nicely render the existing streams. Right now. Paella will just show a massive error.
 You get nothing but a big error message:

The player does that even though valid video streams are published:
❯ curl -s -u admin:opencast 'https://develop.opencast.org/search/episode.json?id=0660c600-78cd-43a9-a771-cc4e7770353c' | jq -r '.["search-results"].result.mediapackage.media.track[] | .type + "  ->  " + .url'
c/preview  ->  https://develop.opencast.org/static/mh_default_org/engage-player/0660c600-78cd-43a9-a771-cc4e7770353c/a73fabaf-9f44-4877-8399-7a07a1ffa2e6/goat.mp4
b/preview  ->  https://develop.opencast.org/static/mh_default_org/engage-player/0660c600-78cd-43a9-a771-cc4e7770353c/96aa5320-7f3f-4179-918b-05d6fb6f229a/goat.mp4
a/preview  ->  https://develop.opencast.org/static/mh_default_org/engage-player/0660c600-78cd-43a9-a771-cc4e7770353c/9208f55d-88e9-411c-93a7-59b07354c559/goat.mp4

Improvement
As a last resort, before giving up, the player should engage an auto mode:

Get all tracks
Filter our audio-only tracks
Group tracks by flavor/type
Show one video of each flavor in the player

Long term, we might even make this the default

The videos are displayed in a dynamic layout, i.e. in one row. Would that be enough or should we split the videos across multiple rows?

While there could be a better layout in some cases (e.g. a grid would certainly be better for four videos), having one or two videos is the default (the layout works great for that on a landscape mode display) and having three videos occurs sometimes (the layout is okay for that). So, I think that's a good start.
If you want to do some improvements (vertical layout for portrait mode, grid layout with 4 (3?) or more videos), sure, but that can also be a separate pull request.

Thankfully, dynamic layouts already support vertical layout in portrait mode.


uart_ow: Initial support for Dallas 1-wire over UART support for MRAA

This commit introduces support for Dallas Semiconductor (DS) 1-wire
compliant device support using an available UART device.
The principle of operation is described in the following Application
note by Maxim Electronics:
https://www.maximintegrated.com/en/app-notes/index.mvp/id/214
It has been tested on Galileo 2 and Edison, with 2 DS 1-wire devices,
the DS18B20 and DS2413 connected to the bus.  A UPM driver for the
DS2413 is already complete and a PR will be submitted after this one.
It is important that you use a UART with CMOS/TTL level voltages
(3.3v/5v) RX and TX lines.  DO NOT use standard RS232 level voltages
or you are going to have a bad day.
In order for this to work, a simple interface circuit, using a single
diode must be constructed:
(forgive my "Asciihematic" :)
-|
U|
A| TX---|<--+
R|          |
T| RX-------o--------o 1-wire data bus
-|
The diode on TX is a 1N4148 (cheap and common), with the cathode
connected to TX, and the anode connected to RX and the 1-wire data
line.
The 1-wire data line requires a pull-up resistor, as the DS 1-wire
spec requires. 4.7-5K is typical for DS 1-wire buses.
NOTE: DHT-type (temp/humidity sensor) 1-wire devices ARE NOT DS 1-wire
compliant, and will not work with this code/circuit unfortunately.
Also note, this will use up one of your UARTs, which cannot be used
for any other purpose (ie: to access true UART-type serial devices).
You can however, connect as many DS 1-wire devices as feasible to this
UART, as it will function as a DS 1-wire bus master.
Signed-off-by: Jon Trulson<EMAIL_ADDRESS>

@arfoll my understanding was that this was updated and should be now ready to go? Anything else that needs to be done here?

This is merged, I must have failed to close it :/


Color Settings / Load Color profile

Describe the bug
Is there a way to create a Custom CMYK Color profile and later load it?
By hand I do it in here

where I can set the values for Dot Gain, Separation Type, ...
however, I haven't seen a sample on how to do it using the python wrapper.
thx!
P.S. Otherwise a very good library!

@integral-llc
This library is a wrapper for photoshop javascript

In other words, if javascript can do it, we can do some simple conversions.
Load color settings
from photoshop import Session

with Session() as ps:
    ps.app.colorSettings = "North America General Purpose 2"

For other operations, we may need to use ScriptingListener to get the code

References:

https://www.photoshopforums.com/applescript-rgb-to-cmyk-vt20038.html
https://simulatedesign.com/scripting-color-management-in-photoshop/


feat: Update terms and privacy

Closes #525 #526

[x] Add a new route to our viewer /terms that will display the terms of use;
[x] Update existing route for /privacy with the new privacy doc

@shelegdmitriy what values should we use for these two new environment variables across Production and Development?

@shelegdmitriy what values should we use for these two new environment variables across Production and Development?

I've just added these two new environment variables to the Vercel and created a note in 1Password

I found a problem with tables and some html tags on privacy page. That doc needs to be updated

There is small problem with a new privacy documents. This document contains a couple of tables and they can't be loaded/displayed properly on a page. Here is en example how it looks like right now:

html tags are not a part of markdown syntax which means we have a few ways of how to solve this problem:

First, and the most easy for me 🙂 is to ask somebody to change tables to lists of something else.
I can convert such table to markdown syntax using library and upload new version of document to the infura account.

After conversation with @charleslavon we decided to go with option 2.


Layout fix: On settings node selection when the screen is narrow node URLs get cut-off.

[ ] drop node URLs to the second line

@yanivkalfa Here is where URLs don't fit into the drop-downs

Is this an actual Cryptonomic Conseil node URL or is it going to be shorter?

@polinasoshkina i dont think they are going to be any shorter.

which branch is this?

Merged


Raw styles?

style({type: 'text/css'}, `body {
        position: relative;
      }

      @media (min-width: 769px) {
        .container {
          position: absolute;
          top: 50%;
          left: 50%;
          -webkit-transform: translateX(-50%) translateY(-50%);
          transform: translateX(-50%) translateY(-50%);
        }
      }

      @media (max-width: 768px) {
        .container {
          position: absolute;
          top: 50%;
          -webkit-transform: translateX(0%) translateY(-50%);
          transform: translateX(0%) translateY(-50%);
        }
      }`)

Doesn't work, right? Any recommendations?

link does not work either.

@brandonros Sounds like you're looking for a CSS in JS library, not this package.

You won't add valid HTML elements to an HTML library?
 and

@brandonros Seems you were looking for a Hyperapp's react-helmet or similar. There isn't one at the moment, but if you build it they will come! 😄

I'm literally asking you to add two lines to https://github.com/hyperapp/html/blob/master/vars.json and publish it on npm so I can pull it in and not have to maintain my own fork of this project because they are missing in my eyes.
Why wouldn't you want to add <link> and <style>? Are they not standard or something?

@brandonros I think you are under the impression that adding them to vars.json would make any difference. Hyperapp can't create <head> or <style> tags and neither can React/Preact/Vue, etc.

module.exports = function(state, actions) {
  return (

    div({style: {height: '100%'}}, [
      h('style', {type: 'text/css'}, `body {
  position: relative;
}

@media (min-width: 769px) {
  .container {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%);
  }
}

@media (max-width: 768px) {
  .container {
    position: absolute;
    top: 50%;
    -webkit-transform: translateX(0%) translateY(-50%);
    transform: translateX(0%) translateY(-50%);
  }
}`),

I have this code and it seems to be working fine?

The <style> tag should go inside the document's head, and the <head> tag should not be put inside the <body>. The correct solution to this issue is a CSS in JS library or hyperap-helmet.


[PUB] Normalize access_rights to standard values and always fill in access_rights as default to copyright

Decided to never fill in copyright or access rights if the source doesn't provide it. Exception is current logic where we made agreements with institutes where we would fill it in for them.


Change the style of the website based on the browsers theme

Currently the site uses have dark mode and have light mode,
this PR fixes part of it by changing a lot of ui elements to the correct theme.
Dark mode

Light mode

Looks (really) good so far ! 👍

I would remove navbar-dark from the index.html files and move what's needed to SCSS (to avoid any confusion)
I would add a switch so people can change the theme
I would also apply light/dark theme to the baselayer (switch between light-v10 and dark-v10) unless the user specified the style to use with app.style (see Belgrade)

Those changes will have an impact on the HTML files for each city, this is not an issue (see https://github.com/EqualStreetNames/equalstreetnames/issues/202#issuecomment-849353164).
Let me know if you need help woth the JavaScript part.

You don't need to recreate the whole map, you can just change the style (see https://docs.mapbox.com/mapbox-gl-js/example/setstyle/)

Yes that is a options but then all the custom data doesn't show up.
Using map.setStyle

Using the current 'solution'

I have added a theme dropdown in the template (https://github.com/wjtje/equalstreetnames-template/commit/279c16d5b477573081eb124409b4ebeae400298e) that will override the system setting.

I have added a theme dropdown in the template (wjtje/equalstreetnames-template@279c16d) that will override the system setting.

That works but to be honest I would prefer just a switch (light/dark) with the system as default.

I have replaced the dropdown menu with a toggle switch.

This is starting to look REALLY nice !
Text "Light/dark mode" is a bit too long.
I would replace it by an icon (like fa-adjust for instance).
Your screenshots also made me realize we will need to change the default color of the ways/relations in light mode.

Maybe it's an idea to create two sperate colour pallets, one for light mode and one for dark mode. Because there is a readability issue with some colours in the chart with the darker background.

Sounds like a good idea ... but the color selection always have been tricky.
It should also still be easily customizable (like they did for Berlin).

Maybe it's an idea to create two sperate colour pallets, one for light mode and one for dark mode. Because there is a readability issue with some colours in the chart with the darker background.

Yes, the purple streets are also very hard to spot on the dark map, even more so because there are only so few of them. I quite like Berlin's colours.

I find the "male (cis) yellow" and "blue intersex" a bit hard to read on a white background in Berlin's color selection.
But maybe we can try current color selection (with darker default color for the ways/relations) for light mode and Berlin's color selection for dark mode. Worth the try ! 😄

Light mode with a darker default color

Full dark mode with the colors from Berin

I do like it ! 🤩
Buuut ... in dark mode, I would switch "male (cis)" and "female (cis)" color so we keep the yellow-ish color for "male (cis)" and it's stay consistent when we switch.
I would also keep the same color for "male (trans)" and "female (trans)" like we do currently.

Changed it

I have added the separate color pallets but I don't know a good way to switch between them.
You can use this to figure out if the site is in dark mode or not:
(document.getElementById('themeSwitch') as HTMLInputElement).checked

No worries, I'll have a look this weekend :)

@wjtje I've refactored a few things to apply the theme switch to the map and chart.

Looks good!
I have create a pull request on the template with the theme switch (https://github.com/EqualStreetNames/equalstreetnames-template/pull/4)

Not a big fan of the last 2 updates (bbc728304bdbc3d8350c7adea951af55b8002dd2 & 311ae275bbc908d520644c54aff4a3ed022257f1) to be honest.
What was the issue with typeof ?
I really dislike the if (variable) check, it's too loose.
For the icons, it seems strange to mix use of FontAwesome CSS font with "hardcoded" SVG ; it makes it confusing if we want to update the icon.
Why is the icon not showing on mobile ?

The icon wasn't showing on mobile because there isn't a navbar-dark or navbar-light class on the navbar. (I will change the icon to use FontAwesome CSS)
The typeof check wasn't working:

Screenshot from @RobinLinde
console.log(typeof themeSwitch) if the switch doesn't exsist:

console.log(typeof themeSwitch) if the switch exsist:

Then your typeof check (typeof themeSwitch !== 'undefined') would always return True, I will change to check to typeof themeSwitch?.checked !== 'undefined' because that works.

The icon wasn't showing on mobile because there isn't a navbar-dark or navbar-light class on the navbar. (I will change the icon to use FontAwesome CSS)

👍
(sorry, I didn't understand you were referring to the "burger icon" from Bootstrap)

Then your typeof check (typeof themeSwitch !== 'undefined') would always return True, I will change to check to typeof themeSwitch?.checked !== 'undefined' because that works.

Also seems strange. 😄
But no worries, I'll need to dive into it a bit more. I'll check that this weekend.

@wjtje You're right.
Check should have been themeSwitch !== null instead of typeof themeSwitch !== 'undefined' in my previous commit.
But typeof themeSwitch?.checked !== 'undefined' works just as fine! 👍

I've update the dark color palette:

Add missing color for non-binary
Use same color for transgender, intersex, and non-binary to stay consistent with light color palette
Change color for unknown ; it was too close to the color used by transgender, intersex, and non-binary

@wjtje If you think this is production ready, here is my "battle plan" for next week : #231 🚀

It's probably best to update bootstrap to version 5 before adding these changes. (In case something brakes)

Thanks a lot for your great work @wjtje ! 👍


Admin entity global tab update

Task #: 23667069

@kenny-niu I think it's best to review this yourself please.
thanks @khaled9h


Dependency Injection

Hello.
This concise API for creating Chevrotain Lexers looks great. 👍
I was think that perhaps instead of having a direct dependency to Chevrotain.
It may be better to use a peer-dependency.
const chevrotain = require("chevrotain")
// expose a factory function that accepts the chevrotain object.
const LD = require('lexdoc')(chevrotain)

This is because:

Chevrotain also supports custom Parser APIs so if each custom API ("plugin") has a direct dependency we are going to have conflicts...
Also I'm guessing lexdoc uses a limited subset of Chevrotain's APIs, so it should not be too hard
to implement a runtime validator that inspects all the APIs that are required are provided.

This would reduce the need to track Chevrotain versions (perhaps only major versions would require modifications), and allow supporting a range of versions of Chevrotain.

Hello! Thanks for the compliment, I'm glad you think so.
I think this is a good suggestion and dependency injection would be a better approach. I threw Lexdoc together pretty quickly without giving much thought to how it fits into the bigger scheme of things, and it would certainly be easier to maintain this way. I'll get to work on it shortly.

Implemented. Thanks for the suggestion (and all your work on Chevrotain itself).

👍


API for injecting VMI access credentials (ssh pub keys and more)

Overview
The ability to dynamically inject access credentials, such as ssh public keys, into a vm guest is a common feature supported by public cloud Iaas providers. AWS, GCP, Azure, and even OpenStack all have support for propagating access credentials into VMs. Administrators can use this functionality to control access to infrastructure for both users and automation tools like ansible. It's a pretty handy feature.
In KubeVirt we don't support propagating access credentials to VMs directly. As a result, this leaves people needing to create custom cloud-init userdata scripts to inject ssh keys along with whatever host setup needs to occur. The issue with this is it couples access control of the vm with the setup of the vm. So, if someone wants to add/delete/rotate a public key, they'd have to modify every cloud-init script related to every vm that needs to pick up that credential.
That's where this PR's proposed AccessCredentials API comes into play. This API allows administrators to place access credentials (like ssh public keys) into a kubernetes secret, and assign that secret to a KubeVirt VMI. If the secret changes, it is propagated to the VMI's pod, which gives us a path to propagating access control changes to running VMIs.
AccessCredentials API field
The AccessCredentials API is a list of credentials that map to kubernetes secrets. Each entry has a type field, which tells us what kind of credential it is, and a propagationMethod field which tells us how to inject the credential into the VMI.
The goal here is to structure the API in a way that can grow with us as new functionality is added. The initial functionality provided by this PR only adds one propagation method that can be used for public ssh keys. In the future this API could be used to support things that go beyond ssh access, like windows remote access using x509 certs.
For a working example, here's what it looks like to inject multiple ssh keys from a secret into a vm using the cloud-init configDrive provider as the propagation method.
apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachineInstance
metadata:
  name: vmi-fedora
spec:
.
.
.
  accessCredentials:
  - sshPublicKey:
      source:
        secret:
          name: my-pub-key
      propagationMethod:
        configDrive: {}
.
.
.

Dynamic Credential Propagation
The initial propagation method introduced by this PR uses the cloud-init configDrive provider to inject ssh public keys into the VMI at boot via cloud-init metadata. This method does not support dynamic propagation into the VMI while it is running.
By creating a API that separates where the credential comes from (k8s secret) from how it is propagated to the VMI, we open the door to much more advanced functionality in the future which can dynamically update the credential within a running guest. This could be done via an agent of some sort running in the vmi guest, a shared virtiofs directory, or some other method yet to be identified. The point is, this leaves the door open to do some pretty interesting things in the future as well as provide an initial practical working solution today with the configDrive implementation.
Working Example
add public ssh key to secret (it's possible to add more than one key to the same secret)
kubectl create secret generic my-pub-key --from-file=id_rsa.pub

post a VMI referencing the secret as an ssh access credential.
apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachineInstance
metadata:
  name: vmi-fedora
spec:
  domain:
    devices:
      disks:
      - disk:
          bus: virtio
        name: containerdisk
      - disk:
          bus: virtio
        name: cloudinitdisk
    resources:
      requests:
        memory: 1024M
  accessCredentials:
  - sshPublicKey:
      source:
        secret:
          name: my-pub-key
      propagationMethod:
        configDrive: {}
  volumes:
  - containerDisk:
      image: registry:5000/kubevirt/fedora-cloud-container-disk-demo:devel
    name: containerdisk
  - cloudInitConfigDrive:
      userData: |-
        #cloud-config
        password: fedora
        chpasswd: { expire: False }
    name: cloudinitdisk

Example Use Cases
Granting SSH Provisioning access used across all VM infrastructure in namespace

An ops team can create a single secret containing all the authorized ssh public keys their ansible provisioner uses.
Users can create VMs and attach the standard authorization keys used to automatically provision the VMs

Granting team member ssh access to VMs in namespace

All team member's public ssh keys are added to a k8s secret
All VMs reference this secret as their ssh public key access credential

Key rotation

An ops team can create a single secret containing all the authorized ssh public keys their ansible provisioner uses.
VMs created in namespace all reference this secret which injects ssh public keys.
Ops team can rotate keys by updating new public keys in secret and rebooting VMs (a dynamic provisioning propagation method will be able to do this live once we implement one)

Dynamically Granting/Revoking user access (requires yet to be implemented propagation method that supports updating running VMIs)

All team member's public ssh keys are added to a k8s secret
All VMs reference this secret as their ssh public key access credential
Adding or revoking access to VMs would be as simple as adding/removing a key from the k8s secret. This would propagate to all VMI pods and ultimately into the guest.

Adds new accessCredentials API field to VMI spec for injecting ssh public keys and more into vm guests

/hold
this is a WIP

apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachineInstance
metadata:
name: vmi-fedora
spec:
.
.
.
accessCredentials:
- secretName: vm-pub-keys
propagationMethod: configDrive
type: ssh
.
.
.

Would it make sense to express this with structs instead of a type field? Different methods may implement different options.
How about something like this:
accessCredentials:
  - secretName: vm-pub-keys
    ssh:
      configDrive:
        key: val

another example:
accessCredentials:
  - secretName: vm-pub-keys
    x509:
      ignition:
        key: val

Would it make sense to express this with structs instead of a type field? Different methods may implement different options.
How about something like this:

@rmohr yes. I've revised the API in a few new ways.
Now each access credential has a category "ssh, x509, etc..." and each category has both a source and propagation method. All of this is represented using structs without usage of any sort of type fields.
Here's a example of ssh public key pulling from a k8s secret as the source and using the configDrive propagation method. This works in the PR today.
  accessCredentials:
  - sshPublicKey:
      source:
        secret:
          name: my-pub-key
      propagationMethod:
        configDrive: {}

Building off your previous examples, here's a "theoretical" example of a x509 cert propagated via ignition.
  accessCredentials:
  - x509:
      source:
        secret:
          name: my-pub-key
      propagationMethod:
        ignition: {}

The main difference from your previous examples is I'm opening up the possibility of pulling credentials from sources other than secrets in the future.
Thoughts?

The main difference from your previous examples is I'm opening up the possibility of pulling credentials from sources other than secrets in the future.
Thoughts?

Works for me. I like it more than my example. My main agenda is just to have the possibility to clearly express supported combinations of propagation type and content. This is given this way.

/hold cancel
@rmohr I fleshed this out with webhook validation + unit/functional tests. The description now has some use cases as well.

That's a really interesting PR :open_mouth:
And I have some questions... if you don't mind answering
I was looking at the example you gave and comparing with the k8s documentation on how to mount secrets within a pod.
One thing I noticed is one small difference between how you are naming the secret's name attribute
Where you have:
accessCredentials:
   - sshPublicKey:
       source:
         secret:
           name: my-pub-key     # name
       propagationMethod:
         configDrive: {}

And the example at the docs
  volumes:
  - name: foo
    secret:
      secretName: mysecret   # secretName
      items:
      - key: username
        path: my-group/my-username

If KubeVirt wants to be similar to how Kubernetes does its thing, does it makes sense to look for similar attributes names that do similar things? Maybe it would be possible to even just treat ssh pub keys as a simple volume that is being mounted by a secret
Please don't see this comment as a change request, I'm really just curious about your thought process

If KubeVirt wants to be similar to how Kubernetes does its thing, does it makes sense to look for similar attribute's name that do similar things?

Yeah, i think changing name to secretName is a good idea. i'll make this change.

Maybe it would be possible to even just treat ssh pub keys as a simple volume that is being mounted by a secret

at least on the pod level, that's what's happening. behind the scenes we're mapping the secret as a volume to the Pod. virt-launcher is then taking that secret passed as a volume to the pod and injecting it into the vm guest.

@davidvossel Do we have docs for this?

/hold
I'd like to further investigate a supportable option for dynamic key propagation

Should this API also support injecting local/console access credentials?
Speak passwd/shadow changes.

i'm reworking this.


Retroactive order history

- Do you want to request a feature or report a bug?
Feature.
- What is the current behavior?
If user signs up with an email used for some other orders previously, these orders do not show up in API response.
- What is the expected behavior?
See also orders made previously for this email.
- Please mention your Go version, and operating system version.

This is already possible by using the /claim endpoint. Therefore we decided not to take any action on this. If this is fine, please consider closing the issue.
Otherwise please describe what is missing in the claiming functionality.

If so, this should work out of the box, I think. Thanks!


Slowly ramp up sizes of int[]s in IntList to keep sizes small when data sets are small

One of the items that I listed in jira: https://issues.apache.org/jira/browse/PARQUET-580 was to ensure that we slowly ramp up the size of the int[] we create in IntList instead of 64K arrays directly. This ensures that we don't allocate large 64K arrays at the start(which is potentially wasteful if there are only a few hundred bytes).
So rather than create arrays of size 64K at a time, we could create say a 4K int[], then when it fills up an 8K[] and so on till we reach 64K (at which point the behavior is the same as the current implementation).
Reporter: Piyush Narang / @piyushnarang
Assignee: Piyush Narang / @piyushnarang
PRs and other links:

PR #341

Note: This issue was originally created as PARQUET-585. Please see the migration documentation for further details.

Ryan Blue / @rdblue:
Committed. Thanks for working on this @piyushnarang!


{Misc.} Update NOTICE

This file is generated by Component Governance UI: https://dev.azure.com/azclitools/public/_componentGovernance/200168?_a=components&typeId=12492962&alerts-view-option=active
I excluded coverage docutils flake8 homebrew-pypi-poet myexpressapp nh3 nose pycodestyle pytest readme_renderer from the component list, which are not distributed in final package.
They are detected in /tools/setup.py and /scripts/release/homebrew/docker/requirements.txt

Misc.


Test: touch support

[ ] win @aeschli
[ ] mac @chrmarti
[ ] linux @octref
[ ] standalone editor @alexandrudima

Refs: https://github.com/Microsoft/vscode/issues/37917
Complexity: 3
We have refactored how we are listening to touch events in the workbench and the editor. Take a touch laptop and verify we behave as before:

You can use touch tap to focus / execute varios parts in the workbench (status bar, input boxes, activity bar, editor)
You can use scroll using touch in the editor / tree / list and this respects the balistic scroll behavior (the faster you touch the faster it scrolls)
You can use touch to trigger a context menu

If you are not sure what the behavior should be you can just take the current stable vscode and compare against it.

I don't have any touch laptop. How do I test it?
And AFAIK there is no Mac that has touch screen.

I think @kieferrm has a surface book tucked somewhere ... so giving to you.
I agree @isidorn can remove the mac option.

@alexandrudima anybody ever tried touchscreen testing on a Surface Book? I created a live USB ubuntu 16.04.3 LST drive and can boot from i. But the touch screen is not detected as an input device and xinput listconfirms that. It seems I need to run patched kernels and even then would have only limited chances to get the touch screen reliably working.

@Tyriar does your linux laptop has touch screen support and does it work?

I have never managed to use a touch device on Linux either, so removing Linux now.


Building VisIt CLI without xcb

Currently VisIt requires the Qt6 xcb backend/plugin/platform. Multiple HPC platforms (such as Perlmutter at NERSC) do not have all dependencies installed to build Qt6 with that support. While it is possible to install just the VisIt server components (VISIT_SERVER_COMPONENTS_ONLY:BOOL=ON) and launch VisIt from a remote workstation, it is desirable to be able to run the VisIt CLI directly on HPC platforms.
I did try to "hack" VisIt to compile it on Perlmutter with a Qt6 without xcb (see attached patch). Disabling some functions in src/winutil/WindowMetrics.C enabled me to compile VisIt on Perlmutter. I am also able to run the bin/visit -cli -nowin but haven't tested launching a compute engine, yet.
I am wondering what it would take to make the attached hack patch bit more general so that it could be possible to build VisIt on systems like Perlmutter at least with CLI support.
hack.patch

I did an additional test. I can at least run a serial compute engine on the login node and render a Pseudocolor plot of hardyglobal of noise.silo with the resulting executable.
bin/visit -cli -nowin
Running: cli -dv -nowin
Running: viewer -dv -nowin -noint -host <IP_ADDRESS> -port 5600
>>> OpenDatabase("../data/silo_hdf5_test_data/noise.silo")
Running: mdserver -dv -host <IP_ADDRESS> -port 5600
Running: engine_ser -dv -host <IP_ADDRESS> -port 5600
1
>>> AddPlot("Pseudocolor", "hardyglobal")
1
>>> DrawPlots()
1
>>> SaveWindow()
VisIt: Message - Rendering window 1...
VisIt: Message - Saving window 1...
VisIt: Message - Saved visit0000.png
'visit0000.png'
>>>

Perhaps the solution would be to have a VISIT_OFFSCREEN_ONLY build option.

@ghweber, could you attache your cmake configuration lines for vtk and visit to this issue?  Also any diff or patch for visit?


Fix request parsing

Use the context.request instead of the req during validation
Split already parsed query parameters by the Application (Express for instance)

Hi @Galiley, could you explain the rationale for the first change?
Maybe add a test to explain the case you’re fixing with this change

The reason behind that is kinda related to #144

Any chance you could device a test that demonstrates this to document better what's being fixed?
Since this change affects how all requests are parsed and while I don't see any huge issues here, I'm a little uncomfortable merging without fully understanding the need for this change.

Sorry, I'm really struggling to understand what problem this PR is solving so I've decided to close it. Feel free to reopen and give a better explanation of why this is needed.


Create TUSHAR.md

First-Ever PR

Thanks @tusharkandpal :partying_face:

#75 Please check this. @tusharkandpal, @johnjacobkenny, @sarathkumar6

Congratulations on your first pr


Fix: remove replace function when inserting emoji

Details
Remove replace function when inserting emoji
Fixed Issues

$ https://github.com/Expensify/App/issues/19289
PROPOSAL: https://github.com/Expensify/App/issues/19289#issuecomment-1554618705
Tests

Open any chat
Type :em
Move cursor before colon
Type :em and select any emoji
Verify that the text after emoji is remained

[x] Verify that no errors appear in the JS console

Offline tests

Same above
QA Steps

Open any chat
Type :em
Move cursor before colon
Type :em and select any emoji
Verify that the text after emoji is remained

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/129500732/29467fb5-3c96-4f27-9df6-77f49eb92466

Mobile Web - Chrome
https://github.com/Expensify/App/assets/129500732/84cb713b-fccd-4230-9163-d26c93b42c1d

Mobile Web - Safari
https://github.com/Expensify/App/assets/129500732/d7532074-0a7c-43ce-9c7f-3b061a7812f8

Desktop

https://github.com/Expensify/App/assets/129500732/9743f27e-fc3d-482f-a6aa-438431e64415

iOS

https://github.com/Expensify/App/assets/129500732/f6e75dfd-649c-48b7-9295-87126058c327

Android
https://github.com/Expensify/App/assets/129500732/3c249796-7025-43eb-bb3d-a45401979424

Reviewer Checklist

[X] I have verified the author checklist is complete (all boxes are checked off).
[X] I verified the correct issue is linked in the ### Fixed Issues section above
[X] I verified testing steps are clear and they cover the changes made in this PR

[X] I verified the steps for local testing are in the Tests section
[X] I verified the steps for Staging and/or Production testing are in the QA steps section
[X] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[X] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[X] I checked that screenshots or videos are included for tests on all platforms
[X] I included screenshots or videos for tests on all platforms
[X] I verified tests pass on all platforms & I tested again on:

[X] Android / native
[X] Android / Chrome
[X] iOS / native
[X] iOS / Safari
[X] MacOS / Chrome / Safari
[X] MacOS / Desktop

[X] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[X] I verified proper code patterns were followed (see Reviewing the code)

[X] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[X] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[X] I verified that comments were added to code that is not self explanatory
[X] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[X] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[X] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[X] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[X] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[X] I verified the JSDocs style guidelines (in STYLE.md) were followed

[X] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[X] I verified that this PR follows the guidelines as stated in the Review Guidelines
[X] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[X] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[X] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[X] If a new component is created I verified that:

[X] A similar component doesn't exist in the codebase
[X] All props are defined accurately and each prop has a /** comment above it */
[X] The file is named correctly
[X] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[X] The only data being stored in the state is data necessary for rendering and nothing else
[X] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[X] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[X] All JSX used for rendering exists in the render method
[X] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[X] If any new file was added I verified that:

[X] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[X] If a new CSS style is added I verified that:

[X] A similar style doesn't already exist
[X] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[X] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[X] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[X] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[X] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[X] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[X] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

https://github.com/Expensify/App/assets/16493223/97638c24-fe67-451b-a07e-dd4a364abc2f

Mobile Web - Chrome

https://github.com/Expensify/App/assets/16493223/129a340a-3826-4fe9-b438-6b5e1ef9f501

Mobile Web - Safari

https://github.com/Expensify/App/assets/16493223/279f1e6d-b702-4202-a6e4-f46443b9a951

Desktop

https://github.com/Expensify/App/assets/16493223/47b65f8a-d29f-4e8e-aafe-5b9e5935b708

iOS

https://github.com/Expensify/App/assets/16493223/8e798569-5f1d-4fb8-82ea-89687ba15e62

Android

https://github.com/Expensify/App/assets/16493223/7bcbbbbe-8d65-4d22-8624-56c9507dbdaa

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Cherry-picked to staging by https://github.com/chiragsalian in version: 1.3.24-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.24-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.24-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
cancelled 🔪

🍎 iOS 🍎
cancelled 🔪

🕸 web 🕸
success ✅


We can use WinSCP to download

This article said ssh client does not support download but I confirmed that we can use WinSCP (or Teraterm) in order to download a file. I hope you add this information into this document.
https://docs.microsoft.com/ja-jp/azure/bastion/vm-upload-download-native
This command can be used to upload files from your local computer to the target VM. File download is not supported.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 56c09bee-48e5-7893-c645-0a774a3e5051
Version Independent ID: c4b35b75-edf4-364f-fcb6-559901e117ee
Content: Upload or download files - native client - Azure Bastion
Content Source: articles/bastion/vm-upload-download-native.md
Service: bastion
GitHub Login: @cherylmc
Microsoft Alias: cherylmc

@hisasima , thank you for your feedback. We'll review this and get back to you shortly!

@hisasima , I reached out to the Azure Bastion Product group team and they have mentioned that they will look into WinSCP download, and will update both English & Japanese docs to reflect the correct information soon.
We are closing this issue for now. If there are further questions regarding this matter, please reply and we will gladly continue the discussion.


Wider language interoperability and language bindings

A few key points from http://xmlsoft.org/python.html

python bindings are generated from an XML API description file
ruby has it's own bindings
a number of other language bindings

This module should be taking account of the API description file which is produced by the libxml team.
Would be good to start work on secondary modules that implement some of the other language interfaces:

LibXML::Python - that conforms to the python interface
LibXML::Ruby for - for the Ruby interface
etc,...

A LibXML::Perl5 for compatibility/orthogonality? Maybe.

David,
Sending encouragement your way.  Currently using Perl 6 module XML with 20+ second load times per (frequent) > 4 MB XML, hoping that your work will save my skin.  Watching closely.
Thanks for working on this!
Mark
From: David Warring<EMAIL_ADDRESS>Sent: Tuesday, August 13, 2019 17:29
To: p6-xml/LibXML-p6<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [p6-xml/LibXML-p6] Wider language interoperability and language bindings (#11)
A few key points from http://xmlsoft.org/python.html

python bindings are generated from an XML API description filehttp://xmlsoft.org/libxml2-api.xml
ruby has it's own bindingshttp://libxml.rubyforge.org/
a number of other language bindings

This module should be taking account of the API description file which is produced by the libxml team.
Would be good to start work on secondary modules that implement some of the other language interfaces:

LibXML::Python - that conforms to the python interface
LibXML::Ruby for - for the Ruby interface
etc,...

A LibXML::Perl5 for compatibility/orthogonality? Maybe.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/p6-xml/LibXML-p6/issues/11?email_source=notifications&email_token=AHRJF2PASPMRSMW5LEBSERTQEMRSTA5CNFSM4ILO6HF2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HFB7NBQ, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AHRJF2IUZID2DGMOYBSZR7LQEMRSTANCNFSM4ILO6HFQ.