WIP: MacOS Standalone 4.1.0

Description of Changes

[ ] Wrote at least one-line docstrings (for any new functions)
[ ] Added unit test(s) covering the changes (if testable)

[ ] Included a screenshot or animation (if affecting the UI, see Licecap)

Modified create_app.py in attempt to create standalone MacOS application.
This PR is intended for discussion purposes only.
Issue(s) Resolved
Addresses spyder-ide/mac-application#2
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct:
@mrclary

Hello @mrclary! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file tools/create_app.py:

Line 32:1: W191 indentation contains tabs
Line 32:4: E128 continuation line under-indented for visual indent
Line 33:1: W191 indentation contains tabs
Line 33:4: E128 continuation line under-indented for visual indent
Line 34:1: W191 indentation contains tabs
Line 34:4: E128 continuation line under-indented for visual indent
Line 35:1: W191 indentation contains tabs
Line 35:4: E128 continuation line under-indented for visual indent
Line 36:1: W191 indentation contains tabs
Line 36:4: E128 continuation line under-indented for visual indent
Line 37:1: W191 indentation contains tabs
Line 37:4: E128 continuation line under-indented for visual indent

closing in favor of #12011


Adding contributors page

Describe the feature
Adding contributors page in the website
Add ScreenShots
.
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

@SiddharthBahuguna please assign this to me i am GSSOC'24 contributor and have 2+ years of experience in development

@SiddharthBahuguna please assign this to me i am GSSOC'24 contributor and have 2+ years of experience in development


Cards: sections reloading/refreshing causing flickering

Which version of Room Card?
1.08.02
Describe the bug
When using Firefiox, Cards listed under cards: repeatedly reload/refresh causing a flickering effect.
experiencing issue with weather cards, media control, markdown cards,
To Reproduce
Load a page with Room Card featuring a card: element
Expected behavior
cards should be static.
Screenshots
Desktop (please complete the following information):

OS: windows 11
Browser: Firefox
Version: 118.0.2 (64-bit)

Smartphone (please complete the following information):
unaffected as far as I can tell
Additional context
cant be 100% sure, but think it started after latest HA update

Can you share your yaml?

Can confirm same observation on Android 14.
On Sun, Oct 29, 2023, 22:34 systanford @.***> wrote:

Which version of Room Card?
1.08.02
Describe the bug
When using Firefiox, Cards listed under cards: repeatedly reload/refresh
causing a flickering effect.
experiencing issue with weather cards, media control, markdown cards,
To Reproduce
Load a page with Room Card featuring a card: element
Expected behavior
cards should be static.
Screenshots
Desktop (please complete the following information):

OS: windows 11
Browser: Firefox
Version: 118.0.2 (64-bit)

Smartphone (please complete the following information):
unaffected as far as I can tell
Additional context
cant be 100% sure, but think it started after latest HA update
—
Reply to this email directly, view it on GitHub
https://github.com/marcokreeft87/room-card/issues/283, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACURVVAJIBPHQ45Q4F5IHGTYB24TVAVCNFSM6AAAAAA6VDTURWVHI2DSMVQWIX3LMV43ASLTON2WKOZRHE3DOMJWGI4DCNY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Can you share your yaml?
Difficult without Doxxing myself

I can't help without

anyway I can send privately?

Rather not. But you can mask your sensitive data in the yaml

`title: ''
views:

theme: Backend-selected
icon: mdi:home
title: Main
path: default_view
badges: []
cards:

square: false
type: grid
cards:

type: horizontal-stack
cards:

type: tile
entity: alarm_control_panel.home_alarm
vertical: true
show_entity_picture: false

type: custom:room-card
title: Who's in?
entity: null
icon: mdi:home
show_icon: true
state_color: true
show_state: false
content_alignment: center
info_entities:

entity: input_boolean.xxxxxxxxxxxxxxxx_teeth
show_icon: true
show_state: true
icon:
conditions:
- icon: mdi:tooth
condition: equals
value: 'on'
styles:
color: white
hide_if:
conditions:
- condition: equals
value: 'off'
entity: sensor.recycling_collection
show_icon: true
show_state: true
icon:
conditions:
- icon: mdi:recycle
condition: below
attribute: days
value: 2
styles:
color: green
- icon: mdi:recycle
condition: equals
attribute: days
value: 2
styles:
color: '#FBCD41'
hide_if:
conditions:
- condition: above
value: 2
attribute: days
entity: sensor.general_waste_collection
show_icon: true
show_state: true
icon:
conditions:
- icon: mdi:trash-can
condition: below
attribute: days
value: 2
styles:
color: green
- icon: mdi:trash-can
condition: equals
attribute: days
value: 2
styles:
color: yellow
hide_if:
conditions:
- condition: above
value: 2
entity: sensor.general_waste_collection
attribute: days
entity: binary_sensor.frost_warning
show_icon: true
icon: mdi:snowflake-alert
hide_if:
conditions:
- condition: equals
value: 'off'
entities:
entity: person.xxxxxxxxxxxxxxxx
name: xxxxxxxxxxxxxxxx
hide_if:
conditions:
- condition: equals
value: not_home
- condition: equals
value: unknown
entity: person.xxxxxxxxxxxxxxxx
name: xxxxxxxxxxxxxxxx
hide_if:
conditions:
- condition: equals
value: not_home
- condition: equals
value: unknown
entity: person.xxxxxxxxxxxxxxxx
name: xxxxxxxxxxxxxxxx
hide_if:
conditions:
- condition: equals
value: not_home
- condition: equals
value: unknown
entity: person.xxxxxxxxxxxxxxxx
name: xxxxxxxxxxxxxxxx
hide_if:
conditions:
- condition: equals
value: not_home
- condition: equals
value: unknown
entity: person.xxxxxxxxxxxxxxxx
name: xxxxxxxxxxxxxxxx
hide_if:
conditions:
- condition: equals
value: not_home
- condition: equals
value: unknown
entity: person.maxxxxxxxxxxxxxxxxx
name: xxxxxxxxxxxxxxxx
hide_if:
conditions:
- condition: equals
value: not_home
- condition: equals
value: unknown
cards: null

square: true
columns: 6
type: grid
cards:

type: button
tap_action:
action: navigate
navigation_path: /lovelace/bedroom
hold_action:
action: call-service
service: light.turn_off
service_data:
entity_id: light.bedroom_group
icon: mdi:bed
entity: light.bedroom_group
show_name: false
type: button
tap_action:
action: navigate
navigation_path: /lovelace/xxxxxxxxxxxxxxxx
entity: light.xxxxxxxxxxxxxxxxs_room_group
icon: mdi:lava-lamp
show_name: false
hold_action:
action: call-service
service: light.turn_off
service_data:
entity_id: light.xxxxxxxxxxxxxxxxs_room_group
show_name: false
show_icon: true
type: button
tap_action:
action: navigate
navigation_path: /lovelace/back_bedroom
hold_action:
action: call-service
service: light.turn_off
service_data: {}
target:
entity_id: light.back_bedroom_group
icon: mdi:bed-king
entity: light.back_bedroom_group
type: button
tap_action:
action: navigate
navigation_path: /lovelace/bathroom
hold_action:
action: call-service
service: light.turn_off
service_data: {}
target:
entity_id: light.bathroom_group
icon: mdi:shower
entity: light.bathroom
show_name: false
type: button
tap_action:
action: navigate
navigation_path: /lovelace/landing
hold_action:
action: call-service
service: light.turn_off
service_data: {}
target:
entity_id: light.upstairs_toilet
entity: light.upstairs_toilet
show_name: false
show_name: false
show_icon: true
type: button
tap_action:
action: navigate
navigation_path: /lovelace/landing
hold_action:
action: call-service
service: light.turn_off
service_data: {}
target:
entity_id: light.landing_group
icon: mdi:stairs-up
entity: light.landing_group
type: button
tap_action:
action: navigate
navigation_path: /lovelace/living-room
hold_action:
action: call-service
service: light.turn_off
service_data:
entity_id: light.living_room_group
icon: mdi:sofa
entity: light.living_room_group
show_name: false
show_name: false
show_icon: true
type: button
tap_action:
action: navigate
navigation_path: /lovelace/kitchen
hold_action:
action: call-service
service: light.turn_off
service_data:
entity_id: light.kitchen_group
entity: light.kitchen_group
icon: mdi:knife
show_name: false
show_icon: true
type: button
tap_action:
action: navigate
navigation_path: /lovelace/dining-room
entity: light.dining_room_group
icon: mdi:table-chair
hold_action:
action: call-service
service: light.turn_off
data: {}
target:
entity_id: light.dining_room_group
show_name: false
show_icon: true
type: button
tap_action:
action: navigate
navigation_path: /lovelace/office
entity: light.office_group
icon: mdi:desk
hold_action:
action: call-service
service: light.turn_off
data: {}
target:
entity_id: light.office_group
type: button
tap_action:
action: navigate
navigation_path: /lovelace/hallway
hold_action:
action: call-service
service: light.turn_off
service_data: {}
target:
entity_id: light.downstairs_toilet
entity: light.downstairs_toilet
show_name: false
type: button
tap_action:
action: navigate
navigation_path: /lovelace/hallway
hold_action:
action: call-service
service: light.turn_off
service_data:
entity_id: light.hallway_group
entity: light.hallway_light
show_name: false
icon: mdi:door

square: false
type: grid
cards:

type: thermostat
entity: climate.living_room
name: ' '
type: vertical-stack
cards:

type: tile
entity: sensor.outside_temperature_humidity
name: Outside
icon: mdi:sun-thermometer-outline
type: tile
entity: sensor.climate_upstairs_averages
name: Upstairs
icon: mdi:stairs-up
type: tile
entity: sensor.climate_downstairs_averages
name: Downstairs
icon: mdi:stairs-down
columns: 2

type: conditional
conditions:

entity: input_boolean.xmas_time
state: 'on'
card:
type: custom:room-card
title: Christmas
content_alignment: center
entity: null
icon: mdi:pine-tree
show_icon: true
state_color: true
show_state: false
tap_action:
action: toggle
double_tap_action:
action: more-info
hold_action:
action: more-info
info_entities: null
entities:

entity: light.christmas_tree
name: Christmas Tree
tap_action:
action: toggle
entity: light.wled_holly_bush
name: Holly Bush
tap_action:
action: toggle
hold_action:
action: more_info
entity: light.tree_frame_v2
name: Tree Frame
tap_action:
action: toggle
hold_action:
action: more_info
entity: light.photo_string_lights
name: Photo Lights
tap_action:
action: toggle
hold_action:
action: more_info
entity: switch.fence_and_tree
name: Fence & Tree
tap_action:
action: toggle
hold_action:
action: more_info
cards: null

type: custom:room-card
title: Outside
entity: null
content_alignment: center
icon: mdi:outdoor-lamp
show_icon: true
state_color: true
show_state: false
tap_action:
action: toggle
double_tap_action:
action: more-info
hold_action:
action: more-info
info_entities:

entity: binary_sensor.back_door_sensor
show_icon: true
state_color: true
entity: binary_sensor.garage_door
show_icon: true
state_color: true
entity: binary_sensor.front_door_sensor
show_icon: true
state_color: true
entities:
entity: light.front_garden_lights
name: Front
tap_action:
action: toggle
entity: switch.rope_light
name: Rope Light
tap_action:
action: toggle
hold_action:
action: more-info
entity: light.outside_led
name: Window
tap_action:
action: toggle
hold_action:
action: more-info
entity: switch.pool_filter_pump
name: Pool Filter
tap_action:
action: toggle
hold_action:
action: more-info
entity: switch.slitinto_2
name: Water Pump
tap_action:
action: toggle
hold_action:
action: more-info
entity: light.garage_light
name: Garage Light
tap_action:
action: toggle
hold_action:
action: more-info
cards: null
columns: 1

type: custom:room-card
title: Weather
content_alignment: center
entity: weather.met_office_xxxxxxxxxxxxxxxx_3_hourly
show_icon: true
state_color: true
show_state: true
tap_action:
action: toggle
double_tap_action:
action: more-info
hold_action:
action: more-info
info_entities: null
entities:

entity: input_boolean.weather_hourly_menu_toggle
name: Hourly
state_color: true
show_state: false
tap_action:
action: toggle

entity: input_boolean.weather_daily_menu_toggle
name: Daily
state_color: true
show_state: false
tap_action:
action: toggle
cards:

type: weather-forecast
style: |
ha-card {
border: 0px;
background: none;
box-shadow: none;
}
entity: weather.met_office_xxxxxxxxxxxxxxxx_3_hourly
name: Hourly
hide_if:
conditions:
- condition: equals
entity: input_boolean.weather_hourly_menu_toggle
value: 'off'
show_current: true
show_forecast: true

show_current: true
show_forecast: true
type: weather-forecast
entity: weather.met_office_xxxxxxxxxxxxxxxx_daily
hide_if:
conditions:
- condition: equals
entity: input_boolean.weather_daily_menu_toggle
value: 'off'
name: Daily
forecast_type: legacy

type: markdown
hide_if:
conditions:
- condition: equals
entity: input_boolean.xxxxxxxxxxxxxxxx_trip
value: 'off'
style: |
ha-card {
border: 0px;
background: none;
box-shadow: none;
}
content: >
The Forecast for xxxxxxxxxxxxxxxx is {{
states('weather.met_office_xxxxxxxxxxxxxxxx_3_hourly')
| replace("pouring", "Heavy Rain")
| replace("rainy", "Raining")
| replace("fog", "Foggy")
| replace("cloudy", "Cloudy")
| replace("clear-night", "a Clear Night")
| replace("partlycloudy", "Partly Cloudy") }} with a "real feel"
of {{
states('sensor.met_office_xxxxxxxxxxxxxxxx_feels_like_temperature_3_hourly',
with_unit=True) }}.
{% set feels_like_temp =
states('sensor.met_office_xxxxxxxxxxxxxxxx_feels_like_temperature_3_hourly')
| float %}
{% set weather_condition =
states('weather.met_office_xxxxxxxxxxxxxxxx_3_hourly') %}
{% if feels_like_temp < 8 %}
It's chilly, best take a coat!
{% endif %}
{% if weather_condition == "rainy" %}
{% if feels_like_temp < 8 %}
Maybe a brolly too!
{% else %}
Take a brolly!
{% endif %}
{% endif %}
{% if weather_condition == "sunny" %}
{% if feels_like_temp > 16 %}
It's a warm and sunny day!
{% endif %}
{% endif %}
{% if weather_condition == "snowy" %}
{% if feels_like_temp < 1 %}
Be prepared for snow and icy conditions!
{% endif %}
{% endif %}
{% if weather_condition == "windy" %}
It's windy out there! Drive Safe!
{% endif %}
ETA: {{ states('sensor.drive_xxxxxxxxxxxxxxxx_lane') | int // 60 }}h {{
states('sensor.drive_xxxxxxxxxxxxxxxx_lane') | int % 60 }}m, Driving
from your location.

type: markdown
hide_if:
conditions:
- condition: equals
entity: input_boolean.sheffield_trip
value: 'on'
style: |
ha-card {
border: 0px;
background: none;
box-shadow: none;
}
content: >
In xxxxxxxxxxxxxxxx it's likely to be {{
states('weather.met_office_xxxxxxxxxxxxxxxx_3_hourly')
| replace("pouring", "Raining Heavily")
| replace("rainy", "Raining")
| replace("fog", "Foggy")
| replace("cloudy", "Cloudy")
| replace("clear-night", "a Clear Night")
| replace("partlycloudy", "Partly Cloudy") }} with a "real feel"
of {{
states('sensor.met_office_xxxxxxxxxxxxxxxx_feels_like_temperature_3_hourly',
with_unit=True) | join}}.
{% set feels_like_temp =
states('sensor.met_office_xxxxxxxxxxxxxxxx_feels_like_temperature_3_hourly')
| float %}
{% set weather_condition =
states('weather.met_office_xxxxxxxxxxxxxxxx_3_hourly') %}
{% if feels_like_temp < 8 %}
It's chilly, layer up!
{% endif %}
{% if weather_condition == "rainy" %}
{% if feels_like_temp < 8 %}
Take a brolly too!
{% else %}
Take a brolly!
{% endif %}
{% endif %}
{% if weather_condition == "sunny" %}
{% if feels_like_temp > 16 %}
Warm and sunny today!
{% endif %}
{% endif %}
{% if weather_condition == "snowy" %}
{% if feels_like_temp < 1 %}
Be prepared for snow and icy conditions - Wrap Up!
{% endif %}
{% endif %}
{% if weather_condition == "windy" %}
It's windy out there!  Can you limit it to the dashboard that flickers? Or are they all flickering?

you asked and I provided haha
Thats just one dashboard
All cards that use 'cards:' flicker
this is an example of one
type: custom:room-card
title: Weather
content_alignment: center
entity: weather.met_office_harrogate_3_hourly
show_icon: true
state_color: true
show_state: true
tap_action:
  action: toggle
double_tap_action:
  action: more-info
hold_action:
  action: more-info
info_entities: null
entities:
  - entity: input_boolean.weather_hourly_menu_toggle
    name: Hourly
    state_color: true
    show_state: false
    tap_action:
      action: toggle
  - entity: input_boolean.weather_daily_menu_toggle
    name: Daily
    state_color: true
    show_state: false
    tap_action:
      action: toggle
cards:
  - type: weather-forecast
    style: |
      ha-card {
        border: 0px;
        background: none;
        box-shadow: none;
        }
    entity: weather.met_office_xxxxx_3_hourly
    name: Hourly
    hide_if:
      conditions:
        - condition: equals
          entity: input_boolean.weather_hourly_menu_toggle
          value: 'off'
    show_current: true
    show_forecast: true
  - show_current: true
    show_forecast: true
    type: weather-forecast
    entity: weather.met_office_xxxxx_daily
    hide_if:
      conditions:
        - condition: equals
          entity: input_boolean.weather_daily_menu_toggle
          value: 'off'
    name: Daily
    forecast_type: legacy
  - type: markdown
    hide_if:
      conditions:
        - condition: equals
          entity: input_boolean.xxxxx_trip
          value: 'off'
    style: |
      ha-card {
        border: 0px;
        background: none;
        box-shadow: none;
        }
    content: >
      The Forecast for **xxxxx** is {{
      states('weather.met_office_xxxxx_3_hourly')

      | replace("pouring", "**Heavy Rain**")

      | replace("rainy", "**Raining**")

      | replace("fog", "**Foggy**")

      | replace("cloudy", "**Cloudy**")

      | replace("clear-night", "a **Clear Night**")

      | replace("partlycloudy", "Partly Cloudy") }} with a "real feel" of **{{
      states('sensor.met_office_xxxxx_feels_like_temperature_3_hourly',
      with_unit=True) }}**.

      {% set feels_like_temp =
      states('sensor.met_office_xxxxx_feels_like_temperature_3_hourly') |
      float %}

      {% set weather_condition = states('weather.met_office_xxxxx_3_hourly')
      %}

      {% if feels_like_temp < 8 %}
        It's chilly, best take a coat!
      {% endif %}

      {% if weather_condition == "rainy" %}
        {% if feels_like_temp < 8 %}
        Maybe a brolly too!
        {% else %}
        Take a brolly!
        {% endif %}
      {% endif %}

      {% if weather_condition == "sunny" %}
        {% if feels_like_temp > 16 %}
          It's a warm and sunny day!
        {% endif %}
      {% endif %}

      {% if weather_condition == "snowy" %}
        {% if feels_like_temp < 1 %}
         Be prepared for snow and icy conditions!
        {% endif %}
      {% endif %}

      {% if weather_condition == "windy" %}
        It's windy out there! Drive Safe!
      {% endif %}

      ETA: {{ states('sensor.drive_xxxxx_lane') | int // 60 }}h {{
      states('sensor.drive_xxxxx_lane') | int % 60 }}m, Driving from your
      location.
  - type: markdown
    hide_if:
      conditions:
        - condition: equals
          entity: input_boolean.xxxxx_trip
          value: 'on'
    style: |
      ha-card {
        border: 0px;
        background: none;
        box-shadow: none;
        }
    content: >
      In **xxxxx** it's likely to be {{
      states('weather.met_office_xxxxx_3_hourly')

      | replace("pouring", "**Raining Heavily**")

      | replace("rainy", "**Raining**")

      | replace("fog", "**Foggy**")

      | replace("cloudy", "**Cloudy**")

      | replace("clear-night", "a **Clear Night**")

      | replace("partlycloudy", "Partly Cloudy") }} with a "real feel" of **{{
      states('sensor.met_office_xxxxx_feels_like_temperature_3_hourly',
      with_unit=True) | join}}**.

      {% set feels_like_temp =
      states('sensor.met_office_xxxxx_feels_like_temperature_3_hourly') |
      float %}

      {% set weather_condition = states('weather.met_office_xxxxx_3_hourly')
      %}

      {% if feels_like_temp < 8 %}
        It's chilly, layer up!
      {% endif %}

      {% if weather_condition == "rainy" %}
        {% if feels_like_temp < 8 %}
        Take a brolly too!
        {% else %}
        Take a brolly!
        {% endif %}
      {% endif %}

      {% if weather_condition == "sunny" %}
        {% if feels_like_temp > 16 %}
          Warm and sunny today!
        {% endif %}
      {% endif %}

      {% if weather_condition == "snowy" %}
        {% if feels_like_temp < 1 %}
        Be prepared for snow and icy conditions - Wrap Up!
        {% endif %}
      {% endif %}

      {% if weather_condition == "windy" %}
        It's windy out there! Drive Safe!
      {% endif %}

      {% if weather_condition == "pouring" %}
        100% a Brolly Day
      {% endif %}

Ah ok. I have to admit, this is the most complex use of my room card. Could be that you ask too much of it and the companion app/browser struggles

It's happening with clean/new dashboard, with a basic set up as below.
The problem doesnt occur in the companion app.
It also wasn't an issue before the last HA update
`type: custom:room-card
title: Media
entity: null
icon: mdi:multimedia
show_icon: true
state_color: true
show_state: false
tap_action:
action: toggle
hold_action:
action: more-info
cards:

type: media-control
entity: media_player.living_room_tv
`

Unfortunately yes

I know that every mediaplayer type card refreshes a lot.
I see I've got the same issue now I'm playing media and the media player card pops up.
Only the card part flickers right?

Hmm weird, I see the flickering in the browser on my phone, but not on my laptop.

Yeah, just the card part,
It also happens with markdown cards, iframes and sometimes, but not always weather cards.
Props for the card though.
Until this issue arose after the update, it had zero issues putting up with the torture I put it through 😁

Yeah, just the card part, It also happens with markdown cards, iframes and sometimes, but not always weather cards.
Props for the card though. Until this issue arose after the last HA update, it had zero issues putting up with the torture I put it through 😁

Haha good to hear that! Don't think its the card tbh. I've tested it on my work laptop too just now, and there it also doesnt flicker. But it does on my phone. Super weird.
I've tried different resolutions but that doesnt matter. Let me check what the last HA update changed

I'm also experiencing the issue on safari and firefox on my iPhone, but not the iOS companion app.

I'm also experiencing the issue on safari and firefox on my iPhone, but not the iOS companion app.
Just tested for certainty sake, the aforementioned cards don't flicker outside of room-card for me.

That that don't flicker outside the card is expected, room-card is just another layer between if they are in the room-card.
But I see the problem, you are using an iPhone ;-)
Do you have a laptop or a tablet? Can you test with that?

I'm in the design world... I'm deep in the ecosystem 🤣
already on it... bare with me

I think I'm experiencing the same issue with the Android companion app as well. The custom:collapsable-cards entry keeps resetting to the collapsed position due to the media player cards refreshing. Not sure if it's something to do with room-card specifically though.
type: custom:room-card
title: Living Room
entity: light.living_room_main_lights
show_icon: true
icon: mdi:sofa
state_color: false
info_entities:
  - entity: binary_sensor.g3_instant_motion
    sohw_name: false
    show_icon: true
  - entity: sensor.ths004_temperature
rows:
  - entities:
      - entity: light.living_room_main_lights
        name: Light
      - entity: switch.bubbles
        show_icon: true
        icon: mdi:chart-bubble
      - entity: media_player.do_not_use_2
        name: TV
        tap_action: toggle
  - entities:
      - entity: media_player.living_room_tv
    hide_if:
      conditions:
        - condition: not_equals
          entity: media_player.do_not_use_2
          value: 'on'
cards:
  - type: custom:mini-media-player
    entity: media_player.do_not_use_2
    name: TV (HDMI-1)
    toggle_power: false
    group: true
    hide:
      volume: true
      play_pause: true
      prev: true
      next: true
      info: true
    source: full
    volume_stateless: false
    artwork: none
    hide_if:
      conditions:
        - condition: not_equals
          entity: media_player.do_not_use_2
          value: 'on'
  - type: custom:mini-media-player
    entity: media_player.living_room
    sound_mode: full
    source: full
    artwork: none
    info: scroll
    volume_step: '5'
    name: Audio Reciever
    group: true
    volume_stateless: true
    hide:
      play_pause: true
      volume_level: false
    hide_if:
      conditions:
        - condition: not_equals
          entity: media_player.do_not_use_2
          value: 'on'
  - type: custom:collapsable-cards
    title_card:
      type: custom:mini-media-player
      group: true
      entity: media_player.living_room_tv
      hide:
        volume: true
        next: true
        prev: true
        play_pause: true
      info: none
      sound_mode: icon
    style: |
      ha-card, ha-card button:focus {
      border: none
      }
    cards:
      - type: custom:android-tv-card
        media_player_id: media_player.living_room_tv
        remote_id: remote.living_room_tv
        rows:
          - - back
            - home
            - power
          - - null
          - - - volume_up
              - null
              - volume_down
            - - navigation_buttons
          - - null
          - - rewind
            - play_pause
            - fast_forward
        touchpad_height: 300px
        alt_volume_icons: true
    hide_if:
      conditions:
        - condition: not_equals
          entity: media_player.do_not_use_2
          value: 'on'

Can confirm I started experiencing this behavior also.

Using Firefox on a PC, and Android Companion app I experienced the same behavior with the custom collapsible card which keeps on collapsing.  I do not have any media player, just entity cards with sensors.
I reverted to Room Card 1.07.30 and the issue stopped.

I tried reverting to 1.08.01.... No good for me.
Shows what it is doing:
https://github.com/marcokreeft87/room-card/assets/12599300/7b62dc07-8436-4ea8-affe-976c85f296d1
And this is the code.
              - type: custom:room-card
                title: Sound Machines
                entities: []
                entity: switch.sound_machines
                show_icon: false
                tap_action: !include ui/popups/sound_machines.yaml
                style:
                  .: |
                    ha-card {
                      background: var(--material-secondary-background-color) !important;
                      box-shadow: none !important;
                    }
                    .card-header {padding-top: 0px;}
                    .entities-info-row {
                      padding: 50px;
                      right: 50px;
                      top: 50px;
                    }
                cards:
                  - type: custom:mushroom-chips-card
                    chips:
                      - type: template
                        content: >
                          {% set soundMachines = expand('switch.sound_machines') %}
                          ({{ soundMachines | selectattr('state','eq','on') | list | count }}) Sound Machines On
                        icon: emf:sound-machine
                        icon_color: >
                          {% set soundMachines = expand('switch.sound_machines') %}
                          {% if (soundMachines | selectattr('state','eq','on') | list | count > 0) %}
                            orange
                          {% else %}
                            gray
                          {% endif %}
                        tap_action:
                          action: more-info
                        entity: switch.sound_machines
                    alignment: end
                    card_mod:
                      style:
                        .: |
                          ha-card {
                            --chip-box-shadow: none;
                            --chip-spacing: 0;
                            --chip-border-width: 0;
                            --chip-background: none;
                            background: var(--material-background-color) !important;
                            border-radius: 0px 0px 12px 12px !important;

And without the mushroom card?

Interestingly no... seems fine.    But i have mushroom cards at the top of the page that don't seem to be doing it.  So there is something with the mushroom cards within the room card.

But are the mushroom cards on top in a room card?

No.  So it only seems to happen to the mushroom chips that are within the room card.

But are the mushroom cards on top in a room card?
But why are you using it like this? XD

Because there was something about the chips that I liked... I just can't remember what.  Some flexibility that didn't exist in the straight room card.

But are the mushroom cards on top in a room card?
But why are you using it like this? XD

Because there was something about the chips that I liked... I just can't remember what.  Some flexibility that didn't exist in the straight room card.

What I see in the video is possible in the room card

I can reproduce the flickering of the room card in various scenarios. It is not related to the mushroom cards, but occurs as soon as I use templating in my auto-entities. The following configuration flickers:
type: custom:room-card
title: Küche
show_icon: false
entities:
  - entity: light.kuechentisch
    name: Küchentisch
    tap_action:
      action: toggle
cards:
  - type: custom:auto-entities
    card:
      type: entities
    filter:
      include:
        - entity_id: scene.kuche*
          options:
            type: custom:card-templater
            card:
              type: button
              show_icon: false
              entity: this.entity_id
              name_template: |
                {{ state_attr("this.entity_id", "name") }}
      exclude: []
    sort:
      method: none

The flickering does not occur with version 1.08.00 of the room-card.
If I use auto-entities including templating outside the room-card, I have no problems. The refresh problem only occurs when using it as a card within the room-card.

Just to confirm, having re-read my previous responses, reverting to 1.08.00 of room-card has stopped the issue for me.
Re-downloading versions 1.08.01 or 1.08.02 of room-card has instances repeatedly flicker/refresh again.

A this late stage, I don't know if it helps but I had the same problem with media refreshing every five seconds or so when using media control options in the card. As soon as I removed the media_player command in the card, the problem was resolved.

I'm a new user of room-card, and downloaded 1.08.02 today.
I have the same flickering issue whenever I embed any form of media card into room-card.
Even in an empty card with nothing else in it, it's a consistent issue for me.
Here's an example of it happening side by side with the same card not embedded on the left:
https://imgur.com/a/mrs0D9n
Here's my yaml:
type: custom:room-card
title: Cinema Room
entity: camera.cinema_room_camera_4
show_icon: true
tap_action: null
rows:
  - entities:
      - entity: switch.nspanellivingroom_relay_2
        name: Uplights
        icon: mdi:wall-sconce-flat-variant
        show_icon: true
        state_color: true
        tap_action:
          action: toggle
      - entity: switch.nspanellivingroom_relay_1
        name: Downlight
        icon: mdi:wall-sconce-flat
        show_icon: true
        state_color: true
        tap_action:
          action: toggle
  - entities:
      - entity: select.cinema_room_harmony_hub_activities
        icon:
          state_on: mdi:gate
          state_off: mdi:gate-open
        show_icon: true
        state_color: true
        name: Cinema Activity
        tap_action:
          action: select
      - entity: switch.sl_living_room_wall_socket_2
        name: Sonos
        show_icon: true
        state_color: true
        icon: mdi:power-socket-uk
        tap_action:
          action: toggle
cards:
  - type: custom:mini-media-player
    entity: media_player.sonos_playroom
    artwork: material
    source: full
    sound_mode: full
    info: scroll
    show_states:
      - playing
  - type: custom:mini-media-player
    entity: media_player.atv_cinema_room
    artwork: material
    source: full
    sound_mode: full
    info: scroll
    show_states:
      - playing
info_entities:
  - entity: binary_sensor.everything_presence_one_dacd10_pir
    show_icon: true
    state_color: true
  - entity: sensor.living_room_temperature
    state_color: true

Any help would be appreciated.

V 1.08.02
Can confirm this is happening for me as well.
If I look at the html, I can see that everything in "Cards" is recreated from scratch (once per minute or so?), which messes up the CSS for me (causing a short time-window in which the room-card grows, then shrinks again)
This only happens with cards, not with entities or entity-info.
Video: https://gyazo.com/69a96358431fb6df6c3b2d754cf2a477
Yaml for specific room-card: https://pastebin.com/M2h1LngK

V 1.08.02
Can confirm this is happening for me as well.
If I look at the html, I can see that everything in "Cards" is recreated from scratch (once per minute or so?), which messes up the CSS for me (causing a short time-window in which the room-card grows, then shrinks again)
This only happens with cards, not with entities or entity-info.
Video: https://gyazo.com/69a96358431fb6df6c3b2d754cf2a477
Yaml for specific room-card: https://pastebin.com/M2h1LngK

I see what buttons and stuff you have in the room card, but wouldn't it be better to use another card for this case? The room card isn't designed for this. You are using it more like a button card now

V 1.08.02
Can confirm this is happening for me as well.
If I look at the html, I can see that everything in "Cards" is recreated from scratch (once per minute or so?), which messes up the CSS for me (causing a short time-window in which the room-card grows, then shrinks again)
This only happens with cards, not with entities or entity-info.
Video: https://gyazo.com/69a96358431fb6df6c3b2d754cf2a477
Yaml for specific room-card: https://pastebin.com/M2h1LngK

I see what buttons and stuff you have in the room card, but wouldn't it be better to use another card for this case? The room card isn't designed for this. You are using it more like a button card now

I'm using 4 different room-cards, with this being the only one enveloping other cards (since I needed somewhere to put my blinds).

Can confirm this is NOT happening in 1.07.30.
Likely cause: contained cards are re-created from scratch upon an update, instead of the existing cards being updated/re-rendered.
(it not reproing in 1.07.30 might be a red-herring based on states not being tracked/forwarded, and thus an update never occurring?)

I've rolled back to 1.07.30 today and can confirm it's still doing it.


Warning when use esptool.py to write a pre-encrypted bootloader to flash (IDFGH-4055)

Environment

Module or chip used: ESP32-WROOM-32D
IDF version: v4.3-dev-1197-g8bc19ba893e5
Build System: idf.py
Compiler version: xtensa-esp32-elf-gcc (crosstool-NG esp-2020r3) 8.4.0
Operating System: Linux
Power Supply: USB

Problem Description
When I use esptool.py to write a pre-encrypted bootloader, the esptool.py shows
"Warning: Image file at 0x1000 doesn't look like an image file, so not changing any flash settings.".
Such warning looks scary, I'm not sure if it's a bug or something I missed.
(And it does not suggest how to fix/silence the warning)
but it looks like it does write the image to flash and my device can boot.
Note, it does not show the warning if I write a pre-encrypted  application firmware.
Below is the command to write pre-encrypted bootloader:
$ esptool.py --chip esp32 -b 921600 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 4MB 0x1000 bootloader-enc.bin
esptool.py v3.0-dev
Found 1 serial ports
Serial port /dev/ttyUSB0
Connecting......
Chip is ESP32-D0WD (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: f0:08:d1:79:8c:60
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Warning: Image file at 0x1000 doesn't look like an image file, so not changing any flash settings.
Compressed 23520 bytes to 23536...
Wrote 23520 bytes (23536 compressed) at 0x00001000 in 0.3 seconds (effective 684.3 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
Expected Behavior
The warning message is not expected.
Actual Behavior
Got below warning:
"Warning: Image file at 0x1000 doesn't look like an image file, so not changing any flash settings."
Steps to reproduce
Just use esptool.py to flash a pre-encrypted bootloader image. (as the command mentioned above).

Hi @AxelLin ,
The reason for this warning is that esptool.py has the capability to update the header of a binary image at the time of flashing. The arguments that control this are:
--flash_mode dio --flash_freq 40m --flash_size 4MB

If the settings in a plaintext bootloader .bin file are different to this, they'll get updated as the binary is written.
In the case of an encrypted image, esptool.py can't recognise the .bin file is an image and also can't change anything in the binary file safely - so it prints a warning that it can't necessarily do everything which has been asked of it.
To not print the warning now, you can change the write_flash arguments as follows:
esptool.py --chip esp32 -b 921600 --before=default_reset --after=hard_reset write_flash ----flash_size keep 0x1000 bootloader-enc.bin

(Specifically: the --flash_mode & --flash_freq args have been dropped entirely, --flash_size currently defaults to detecting the image size so we have to tell it to "keep" the existing size instead.)

Expected Behavior
The warning message is not expected.

We have a plan to update the IDF build system so it no longer prompts to pass any of these arguments to esptool.py write_flash. Once this change is made, the warning won't be printed when following the default IDF flashing steps.
Will update this issue once that is the case.

I use arduino-cli  for compile and load program into ESP32-wroom
My log in cli
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00005fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x0011dfff...
Warning: Image file at 0x1000 is protected with a hash checksum, so not changing the flash frequency setting. Use the --flash_frequency=keep option instead of --flash_frequency=80m in order to remove this warning, or use the --dont-append-digest option for the elf2image command in order to generate an image file without a hash checksum
Compressed 17488 bytes to 12168...


Rename of ERC165 implementation to SupportsInterface and tests for it.

LGTM. Resolve conflicts and go ahead and merge.


Error rendering output item using 'jupyter-ipywidget-renderer'

Environment data

code-server: v4.17.1
VS Code version: 1.82.2
Jupyter Extension version (available under the Extensions sidebar): v2023.7.100
Python Extension version (available under the Extensions sidebar): v2023.18.0
OS (Windows | Mac | Linux distro) and version: Rocky Linux 8.8
Miniconda version: conda 4.14.0
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): conda
Jupyter server running: Local

Expected behaviour
Plotting with %matplotlib widget as backend shows an interactive plot.
Actual behaviour
Plotting with %matplotlib widget as backend gives an error:
Error rendering output item using 'jupyter-ipywidget-renderer'

    i is not a function

Note that when I use %matplotlib inline instead, a png of the plot is shown as expected.
Steps to reproduce:

Setting up the environment

env_name=interactive_plots

conda create -n ${env_name} -y python=3.10
source activate ${env_name}
conda install -y nodejs==18.16.0

pip install --upgrade pip
pip install ipywidgets widgetsnbextension ipympl
pip install jupyter jupyter_contrib_nbextensions
pip install --upgrade notebook==6.4.12

python -m ipykernel install  --prefix=~/.local/ --name interactive_plots

jupyter contrib nbextension install --user
jupyter-nbextension enable --py widgetsnbextension --sys-prefix

Creating a plot in a notebook

%matplotlib widget
import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(3*x)
ax.plot(x, y)
plt.show()

Screenshot of the result

Logs

Output for Jupyter in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Jupyter)

code-server (1.82.2, ondemand.hpc.kuleuven.be, server-distro)
Jupyter Extension Version: 2023.7.100.
Python Extension Version: 2023.18.0.
Platform: linux (x64).
Workspace folder ~/windfarms/speed_tests/osp-wind-3, Home = /user/leuven/337/vsc33716
13:57:26.390 [info] User belongs to experiment group 'FastKernelPicker'
13:57:26.390 [info] User belongs to experiment group 'NewRemoteUriStorage'
13:57:26.390 [info] User belongs to experiment group 'PasswordManager'
13:57:26.390 [info] User belongs to experiment group 'NewJupyterSession'
13:57:26.872 [info] Start refreshing Kernel Picker<PHONE_NUMBER>872)
13:57:26.878 [info] Using Pylance
13:57:33.331 [info] End refreshing Kernel Picker<PHONE_NUMBER>872)
13:57:33.936 [info] Process Execution: /data/leuven/337/<username>/miniconda3/envs/science/bin/python -m pip list
13:57:53.081 [info] Start refreshing Interpreter Kernel Picker
13:57:53.081 [info] Start refreshing Kernel Picker<PHONE_NUMBER>081)
13:57:54.510 [info] End refreshing Kernel Picker<PHONE_NUMBER>081)
14:43:36.931 [info] Handle Execution of Cells 0 for ~/test_plot.ipynb
14:43:36.972 [info] Starting Kernel startUsingPythonInterpreter, .jvsc74a57bd0f0ec76e37bf13a9c5b565ddcac905d3e51f60dafe00400496f3573ffff25706f./data/leuven/337/<username>/miniconda3/envs/interactive_plots/python./data/leuven/337/<username>/miniconda3/envs/interactive_plots/python.-m#ipykernel_launcher  (Python Path: /data/leuven/337/<username>/miniconda3/envs/interactive_plots/bin/python, Conda, interactive_plots, 3.10.13) for '~/test_plot.ipynb' (disableUI=false)
14:43:39.101 [info] Process Execution: /data/leuven/337/<username>/miniconda3/envs/interactive_plots/bin/python -m pip list
14:43:39.161 [info] Process Execution: /data/leuven/337/<username>/miniconda3/envs/interactive_plots/bin/python -c "import ipykernel; print(ipykernel.__version__); print("5dc3a68c-e34e-4080-9c3e-2a532b2ccb4d"); print(ipykernel.__file__)"
14:43:39.186 [info] Process Execution: /data/leuven/337/<username>/miniconda3/envs/interactive_plots/bin/python -m ipykernel_launcher --ip=<IP_ADDRESS> --stdin=9003 --control=9001 --hb=9000 --Session.signature_scheme="hmac-sha256" --Session.key=b"6fc8aa5e-e637-48c5-b59a-9d0064615302" --shell=9002 --transport="tcp" --iopub=9004 --f=~/.local/share/jupyter/runtime/kernel-v2-630256pPluwPaB084T.json
    > cwd: ~
14:43:40.319 [info] ipykernel version & path 6.26.0, /data/leuven/337/<username>/miniconda3/envs/interactive_plots/lib/python3.10/site-packages/ipykernel/__init__.py for /data/leuven/337/<username>/miniconda3/envs/interactive_plots/bin/python
14:43:43.386 [info] Process Execution: /data/leuven/337/<username>/miniconda3/envs/interactive_plots/bin/python /data/leuven/337/<username>/.config/code-server/extensions/ms-toolsai.jupyter-2023.7.100-universal/pythonFiles/printJupyterDataDir.py
14:43:43.397 [info] Kernel acknowledged execution of cell 0 @<PHONE_NUMBER>391
14:43:48.691 [info] End cell 0 execution @<PHONE_NUMBER>683, started @<PHONE_NUMBER>391, elapsed time = 5.292s
14:46:11.146 [info] Handle Execution of Cells 1 for ~/test_plot.ipynb
14:46:11.214 [info] Kernel acknowledged execution of cell 1 @<PHONE_NUMBER>208
14:46:11.787 [info] End cell 1 execution @<PHONE_NUMBER>785, started @<PHONE_NUMBER>208, elapsed time = 0.577s
14:46:20.829 [info] Handle Execution of Cells 0 for ~/test_plot.ipynb
14:46:20.886 [info] Kernel acknowledged execution of cell 0 @<PHONE_NUMBER>875
14:46:21.217 [info] End cell 0 execution @<PHONE_NUMBER>215, started @<PHONE_NUMBER>875, elapsed time = 0.34s
14:46:27.495 [info] Handle Execution of Cells 0 for ~/test_plot.ipynb
14:46:27.554 [info] Kernel acknowledged execution of cell 0 @<PHONE_NUMBER>539
14:46:27.634 [info] End cell 0 execution @<PHONE_NUMBER>632, started @<PHONE_NUMBER>539, elapsed time = 0.093s
14:46:33.771 [info] Handle Execution of Cells 0 for ~/test_plot.ipynb
14:46:33.852 [info] Kernel acknowledged execution of cell 0 @<PHONE_NUMBER>833
14:46:33.928 [info] End cell 0 execution @<PHONE_NUMBER>926, started @<PHONE_NUMBER>833, elapsed time = 0.093s

did not repro for me on Windows/venv

@stevenvdb
I too cannot repro this
Please update your version of vscode and Jupyter extension to the latest versions
let me more of this still repros

The problem is solved for me by downgrading the Jupyter extension from v2023.7.100 to v2022.10.110. This issue can remain closed, for me this is an ok solution at the moment.


Majorly update this extension

This majorly updates org-capture-extension, by doing the following:

Adding an options pane, making it so that users can select which org-capture template to use when capturing.
Updating the method of performing captures, providing a command rather than just a browser action.
Addig store-link functionality
Adding open-source functionality
Enabling the use of both old and new style links
Updating (minorly) the manifest to include an icon.

Please note, this and #29 are mutually exclusive.  Please choose one or the other.

Supercedes #27 and #25.

Thanks for your contribution! I'm still going over it.
One thing I'd like to note is that I purposefully did not include the icons in the extension, as I am not sure what their licensing terms are. I felt that it would be safe to use the standard icons in the app store extension as it can be easily replaced if someone asks me to, but the git repository would be much harder to fix (esp. if the request would be regarding previous versions as well).
As such, I would prefer it if the pull request did not have icons in them. Perhaps instructions on where to get them would be appropriate, if I didn't include them in the readme yet.

I am also not sure why you removed the EmacsClient.app from the repo

I saw no reason to include the EmacsClient.app, as I saw no reference to anywhere.
Icons are likely GPL'd or similarly freely licensed (can be assumed that it's fine to use, see http://orgmode.org/worg/org-faq.html#unicorn).

EmacsClient.app is referenced in the readme.
GPL cannot apply to art, AFAIK. Perhaps they have some CC license or something else similar.
I agree that it is reasonable to assume that no one would object to using the icons - this is why I use them for the extension in the chrome/mozilla app stores. However, to add them to the repository I'd want explicit permission or explicit license clause. I'll ask about it on the org mailing list.

And EmacsClient.app.zip is added back in.

Do we have any progress on the licensing of the Unicorn?

Sorry - was busy - sent the question just now.
I will continue reviewing the code. As to your question posed (I think) in the other PR - I prefer the smaller PR precisely because it is easier to review a smaller PR compared to a larger one.

I found out that I had to an extra slash in order for things to work in Chrome (same as here: https://github.com/alphapapa/org-protocol-capture-html#chrome).

(The issue is that I'm running Linux of course)

@nerikj, Where does the extra slash need to be?

@swflint To get it working, I only needed to add it in createCaptureURL (I'm using new style links but I assume it will affect old style links as well): https://github.com/sprig/org-capture-extension/pull/30/files#diff-a163ccb1fb82b424cf3f4d98ce75b361R15

Fixed it.

Awesome, thanks (and thanks for the PR)!

Do we have any info about the logo?  Or should I just remove it?

There were no answers regarding the logo on the mailing list. I am conflicted on this, but unless I get permission, I think I still would rather not have the logo in the official repo so yes, please remove.

@swflint @nerikj The issue with the triple '/' was discussed at length in #16, and instructions regarding it were added to the readme. Please remove that part from the PR.

I'm running Gnome (and don't have any KDE-stuff installed) but get the same issue so maybe it affects certain versions of xdg-open or something like that (I haven't investigated which program it delegates to yet). My point is that it doesn't seems to be only KDE-related.
Anyway, since Linux (xdg-open) is the culprit, I'm fine with the workaround and reverting 725a545.

@nerikj ah, that's good to know! It appeared previously to be strictly a KDE problem...
Actually, now that #29 is in, I think it should be very simple to add another option for constructing "///" links. I've opened a ticket (#31) for this issue, and if no one beats me to it, I will add this feature in the near future.

@swflint I committed #29 and then added some additions on top of it myself.
Some of the reasons I chose #29 over #30 are;

It is smaller and thus much simpler to review.
It does not require new (user-visible) permissions. Unless there is a good reason (some killer feature), I rather like the fact that currently the extension requires no special permissions. I am open to adding those in principle, but there should be good cause, discussion, and hopefully also more user input.
Some of the added features here seem redundant. For example, I don't see the utility of adding "open-source" functionality, unless I misunderstand what that means. Right now, if I click opt-cmd-i I can already see the page source and more. Why would someone need an extension to do that?
The icons issue.

I am not exactly sure what you mean by "Updating the method of performing captures, providing a command rather than just a browser action".
I do think that adding store-link functionality could be useful. I think it could be nicely implemented in the context of #32 if you or someone else (potentially me) wanted to do it.
Anyway, thanks for this PR and for #29. I hope to read more of your code in the future!

So, the new permissions let it perform the various other commands (store link and open source).  I added the open-source as an "example" of how to build a new command.
Browser actions and commands behave differently, a command doesn't have the same permissions, and thus using commands for all of them lets a lot of the commands just be a template (just modify it a bit).
The permissions are required for it to be usable with the other features.

Sorry, I don't really understand what you are talking about.
Could you elaborate please on what you mean by commands and actions, with
perhaps an example and also references to the documentation of both?

Sure!
An extension can define infinitely many commands, whereas there are three browser action (window, tab, and another that I can't remember).  While tab actions confer certain privileges automatically (access to window.), as you can only have one tab action per extension, commands with the tab privilege allow multiple actions (capture, store link, &c).

Thanks for the explanation. I am starting to get an idea of what you mean.
If I understand correctly, you are referring to these commands.
If so, what do you want to accomplish by using "commands"?
Would users want to accept elevated permissions in order to use them?

Yes, that's correct.
We use those to have more than just one action.  One command for each action.
The elevated permissions are just for tab data access, nothing more.

@nerikj: I know I'm just chasing the white rabbit at this point, but I'm dreadfully curious!  I'd really like to know what xdg-open is doing in your case!
So, the way I traced xdg-open down to kde-open5 was pretty simple, and took maybe 15 seconds.  I just ran this command:
bash -x $(which xdg-open) org-protocol:///capture://L/a/b/c

The output for me is here in this gist.  In my case, the output is quite short, and notably, the last line that does anything special is the call to kde-open5.
I would expect the output to be similarly short if it is delegating the job to something else on your end.  (on the other hand, if you don't see anything quite so obvious in your trace output, or if your output is significantly longer than mine, then its possible that xdg-open is using its own fallback logic for parsing URLs and handling .desktop files)

@ExpHP Well, on my system, xdg-open ends with:
case "$DE" in
    kde)
    open_kde "$url"
    ;;

And that function looks like this:
open_kde()
{
    if kde-open -v 2>/dev/null 1>&2; then
        kde-open "$1"
    else
        if [ x"$KDE_SESSION_VERSION" = x"4" ]; then
            kfmclient openURL "$1"
        else
            kfmclient exec "$1"
            kfmclient_fix_exit_code $?
        fi
    fi

    if [ $? -eq 0 ]; then
        exit_success
    else
        exit_failure_operation_failed
    fi
}

It also has open_gnome, open-xfce, and open_generic_xdg_mime.

Fascinating! Please keep us posted with your findings!

@ExpHP This is my output: https://gist.github.com/nerikj/530c64404520b5143d9db6a550caf3bc#file-xdg-open-trace-three-slashes
It seems to end up using gio and works fine.
If I remove a slash (org-protocol://capture...), I get this output: https://gist.github.com/nerikj/530c64404520b5143d9db6a550caf3bc#file-xdg-open-trace-two-slashes and Emacs only opens a buffer named "c".

I have looked further into this, specifically testing the open_generic function embedded into xdg-open (i.e. the fallback for when it can't find a desktop environment)
I wrote up about my findings in this MD document.
The summary is as follows:

xdg-open itself never deletes the second colon, not even when you let it do all of the work itself.  (open_generic)

if you force it to do all of the work itself, then Exec=_emacs-client %u (no quotes!) or Exec=_emacs-client will produce the correct behavior.

gio open and kde-open5 share the exact same colon-eating bug!

They probably use the same library for something... but what?

There is no solace. Only pain and misfortune.

xdg-open and kde-open5 disagree about how to handle a double-quoted "%u", or the omission of %u.
Either the .desktop format is horribly underspecified, or all of its implementations just suck.


DataDog Cluster Agent v7.46.0 has slow memory leak

Agent Environment

We are running the DataDog cluster agent as a deployment on AWS EKS, K8s version 1.26. Here is the output of agent status on one of the pods experiencing the leak:
2023-12-21 18:51:51 UTC | CLUSTER | WARN | (pkg/util/log/log.go:618 in func1) | Unknown environment variable: DD_POD_NAME
2023-12-21 18:51:51 UTC | CLUSTER | WARN | (pkg/util/log/log.go:618 in func1) | Agent configuration relax permissions constraint on the secret backend cmd, Group can read and exec
Getting the status from the agent.
2023-12-21 18:51:51 UTC | CLUSTER | INFO | (pkg/util/log/log.go:590 in func1) | 2 Features detected from environment: kubernetes,orchestratorexplorer

===============================
Datadog Cluster Agent (v7.46.0)
===============================

  Status date: 2023-12-21 18:51:51.612 UTC<PHONE_NUMBER>612)
  Agent start: 2023-10-12 17:34:18.794 UTC<PHONE_NUMBER>794)
  Pid: 1
  Go Version: go1.19.10
  Build arch: amd64
  Agent flavor: cluster_agent
  Check Runners: 4
  Log Level: INFO

  Paths
  =====
    Config File: /etc/datadog-agent/datadog-cluster.yaml
    conf.d: /etc/datadog-agent/conf.d

  Clocks
  ======
    System time: 2023-12-21 18:51:51.612 UTC<PHONE_NUMBER>612)

  Hostnames
  =========
    host_aliases: [i-0286ce77ff1a8d387]
    hostname: ip-10-196-85-58.us-west-2.compute.internal-xxxxxxxx-xxx-xxx
    socket-fqdn: datadog-cluster-agent-768d84fffd-2phwf
    socket-hostname: datadog-cluster-agent-768d84fffd-2phwf
    hostname provider: container
    unused hostname providers:
      'hostname' configuration/environment: hostname is empty
      'hostname_file' configuration/environment: 'hostname_file' configuration is not enabled
      aws: Unable to determine hostname from EC2: status code 401 trying to GET http://<IP_ADDRESS>/latest/meta-data/instance-id
      azure: azure_hostname_style is set to 'os'
      fargate: agent is not runnning on Fargate
      fqdn: FQDN hostname is not usable
      gce: unable to retrieve hostname from GCE: GCE metadata API error: status code 401 trying to GET http://<IP_ADDRESS>/computeMetadata/v1/instance/hostname
      os: OS hostname is not usable

  Metadata
  ========

Leader Election
===============
  Leader Election Status:  Running
  Leader Name is: datadog-cluster-agent-768d84fffd-2phwf
  Last Acquisition of the lease: Thu, 12 Oct 2023 17:35:01 UTC
  Renewed leadership: Thu, 21 Dec 2023 18:51:51 UTC
  Number of leader transitions: 41 transitions

Custom Metrics Server
=====================

  Data sources
  ------------
  URL: https://api.datadoghq.com

  External metrics provider uses DatadogMetric - Check status directly from Kubernetes with: `kubectl get datadogmetric`

Cluster Checks Dispatching
==========================
  Status: Leader, serving requests
  Active agents: 2
  Check Configurations: 3
    - Dispatched: 3
    - Unassigned: 0

Admission Controller
====================

    Webhooks info
    -------------
      MutatingWebhookConfigurations name: datadog-webhook
      Created at: 2022-08-10T15:53:20Z
      ---------
        Name: datadog.webhook.auto.instrumentation
        CA bundle digest: e69965098279567
        Object selector: &LabelSelector{MatchLabels:map[string]string{admission.datadoghq.com/enabled: true,},MatchExpressions:[]LabelSelectorRequirement{},}
        Rule 1: Operations: [CREATE] - APIGroups: [] - APIVersions: [v1] - Resources: [pods]
        Service: monitoring/datadog-cluster-agent-admission-controller - Port: 443 - Path: /injectlib
      ---------
        Name: datadog.webhook.config
        CA bundle digest: e69965098279567
        Object selector: &LabelSelector{MatchLabels:map[string]string{admission.datadoghq.com/enabled: true,},MatchExpressions:[]LabelSelectorRequirement{},}
        Rule 1: Operations: [CREATE] - APIGroups: [] - APIVersions: [v1] - Resources: [pods]
        Service: monitoring/datadog-cluster-agent-admission-controller - Port: 443 - Path: /injectconfig
      ---------
        Name: datadog.webhook.tags
        CA bundle digest: e69965098279567
        Object selector: &LabelSelector{MatchLabels:map[string]string{admission.datadoghq.com/enabled: true,},MatchExpressions:[]LabelSelectorRequirement{},}
        Rule 1: Operations: [CREATE] - APIGroups: [] - APIVersions: [v1] - Resources: [pods]
        Service: monitoring/datadog-cluster-agent-admission-controller - Port: 443 - Path: /injecttags

    Secret info
    -----------
    Secret name: webhook-certificate
    Secret namespace: monitoring
    Created at: 2022-08-10T15:53:19Z
    CA bundle digest: e69965098279567
    Duration before certificate expiration: 4845h6m20.370172864s

=========
Collector
=========

  Running Checks
  ==============

    kubernetes_apiserver
    --------------------
      Instance ID: kubernetes_apiserver [OK]
      Configuration Source: file:/etc/datadog-agent/conf.d/kubernetes_apiserver.d/conf.yaml.default
      Total Runs: 403,510
      Metric Samples: Last Run: 0, Total: 0
      Events: Last Run: 1, Total: 353,678
      Service Checks: Last Run: 5, Total: 2,017,355
      Average Execution Time : 1.909s
      Last Execution Date : 2023-12-21 18:51:37 UTC<PHONE_NUMBER>000)
      Last Successful Execution Date : 2023-12-21 18:51:37 UTC<PHONE_NUMBER>000)

    orchestrator
    ------------
      Instance ID: orchestrator:c640d4e943da6c1d [OK]
      Configuration Source: file:/etc/datadog-agent/conf.d/orchestrator.d/conf.yaml.default
      Total Runs: 605,266
      Metric Samples: Last Run: 0, Total: 0
      Events: Last Run: 0, Total: 0
      Service Checks: Last Run: 0, Total: 0
      Average Execution Time : 50ms
      Last Execution Date : 2023-12-21 18:51:50 UTC<PHONE_NUMBER>000)
      Last Successful Execution Date : 2023-12-21 18:51:50 UTC<PHONE_NUMBER>000)

=========
Forwarder
=========

  Transactions
  ============
    Cluster: 605,260
    ClusterRole: 81,883
    ClusterRoleBinding: 73,395
    CronJob: 196,156
    CustomResource: 0
    CustomResourceDefinition: 0
    DaemonSet: 54,854
    Deployment: 72,217
    Dropped: 0
    HighPriorityQueueFull: 0
    Ingress: 32,507
    Job: 298,182
    Namespace: 605,260
    Node: 108,119
    OrchestratorManifest: 702,578
    PersistentVolume: 0
    PersistentVolumeClaim: 0
    Pod: 7
    ReplicaSet: 125,489
    Requeued: 23
    Retried: 23
    RetryQueueSize: 0
    Role: 37,464
    RoleBinding: 38,413
    Service: 52,952
    ServiceAccount: 85,446
    StatefulSet: 0
    VerticalPodAutoscaler: 0

  Transaction Successes
  =====================
    Total number: 4.088426e+06
    Successes By Endpoint:
      check_run_v1: 403,510
      intake: 111,224
      orchestrator: 2,467,604
      orchmanifest: 702,578
      series_v2: 403,510

  Transaction Errors
  ==================
    Total number: 3
    Errors By Type:

  On-disk storage
  ===============
    On-disk storage is disabled. Configure `forwarder_storage_max_size_in_bytes` to enable it.

==========
Endpoints
==========
  https://app.datadoghq.com - API Key ending with:
      - 990b0

=====================
Orchestrator Explorer
=====================
  Collection Status: The collection is at least partially running since the cache has been populated.
  Cluster Name: xxxxxxxxxx-xxx-xxx
  Cluster ID: 8d31b2bb-1676-4d67-ac9b-4c13fc608d2e
  Container scrubbing: enabled
  Manifest collection: enabled

  ======================
  Orchestrator Endpoints
  ======================
    https://orchestrator.datadoghq.com - API Key ending with: 990b0

  ===========
  Cache Stats
  ===========
    Elements in the cache: 517

    ClusterRoleBinding
      Last Run: (Hits: 105 Miss: 1) | Total: (Hits: 6.0328655e+07 Miss: 3.421972e+06)

    ClusterRole
      Last Run: (Hits: 120 Miss: 1) | Total: (Hits: 6.8920838e+07 Miss: 3.908689e+06)

    Cluster
      Last Run: (Hits: 0 Miss: 1) | Total: (Hits: 0 Miss: 605260)

    CronJob
      Last Run: (Hits: 4 Miss: 0) | Total: (Hits: 2.191971e+06 Miss: 229069)

    DaemonSet
      Last Run: (Hits: 7 Miss: 0) | Total: (Hits: 3.623867e+06 Miss: 206014)

    Deployment
      Last Run: (Hits: 18 Miss: 0) | Total: (Hits: 1.0309211e+07 Miss: 585481)

    Ingress
      Last Run: (Hits: 2 Miss: 0) | Total: (Hits: 760427 Miss: 43156)

    Job
      Last Run: (Hits: 15 Miss: 1) | Total: (Hits: 8.684529e+06 Miss: 636450)

    Namespace
      Last Run: (Hits: 11 Miss: 1) | Total: (Hits: 6.29963e+06 Miss: 963490)

    Node
      Last Run: (Hits: 3 Miss: 0) | Total: (Hits: 1.69772e+06 Miss: 118727)

    PersistentVolumeClaim
      Last Run: (Hits: 0 Miss: 0) | Total: (Hits: 0 Miss: 0)

    PersistentVolume
      Last Run: (Hits: 0 Miss: 0) | Total: (Hits: 0 Miss: 0)

    Pod
      Last Run: (Hits: 0 Miss: 0) | Total: (Hits: 0 Miss: 10)

    ReplicaSet
      Last Run: (Hits: 55 Miss: 1) | Total: (Hits: 4.349065e+07 Miss: 2.4678e+06)

    RoleBinding
      Last Run: (Hits: 30 Miss: 0) | Total: (Hits: 1.7183497e+07 Miss: 974318)

    Role
      Last Run: (Hits: 27 Miss: 0) | Total: (Hits: 1.5465208e+07 Miss: 876829)

    ServiceAccount
      Last Run: (Hits: 75 Miss: 0) | Total: (Hits: 4.2567131e+07 Miss: 2.420444e+06)

    Service
      Last Run: (Hits: 18 Miss: 0) | Total: (Hits: 9.923741e+06 Miss: 563996)

    StatefulSet
      Last Run: (Hits: 0 Miss: 0) | Total: (Hits: 0 Miss: 0)

    VerticalPodAutoscaler
      Last Run: (Hits: 0 Miss: 0) | Total: (Hits: 0 Miss: 0)

  =====================
  Manifest Buffer Stats
  =====================
  Buffer Flushed : 702580 times
  Last Time Flushed Manifests : 64
  ==============================
  Manifests Flushed Per Resource
  ==============================
    ClusterRole : 3.908689e+06
    ClusterRoleBinding : 3.421972e+06
    CronJob : 229069
    DaemonSet : 206014
    Deployment : 585481
    Ingress : 43156
    Job : 636450
    Namespace : 963490
    Node : 118727
    Pod : 10
    ReplicaSet : 2.4678e+06
    Role : 876829
    RoleBinding : 974318
    Service : 563996
    ServiceAccount : 2.420444e+06

Describe what happened:
The DataDog cluster agent is experiencing a slow memory leak, as can clearly be seen in the below DataDog graphs:
% of CPU requests over three months (each line is a single deployment)

% of memory requests over three months (each line is a single deployment)

Describe what you expected:
Memory and CPU usage to hold roughly steady over time and not increase forever
Steps to reproduce the issue:
Unknown, but this is occurring across all our EKS clusters
Additional environment details (Operating System, Cloud provider, etc):
AWS EKS, nodes are running an AMI built on Amazon Linux 2

I also have similar issue.

I have the same issue.
AWS EKS 1.26 running "gcr.io/datadoghq/cluster-agent:7.46.0" in Fargate pods.

I have the same issue.

Same issue. I suppose the workaround is to downgrade the agent to v7.45.0?


Infra Alert Conditions: support thresholds with float values

Objective
Infrastructure alert condition thresholds can apparently be set to float values via the New Relic UI. Our Go client should support this as well. The type update would happen here.
The original issue was reported in the terraform-provider-newrelic project.
Acceptance Criteria

Infrastructure alert condition thresholds support using float values.

Resolved in #71


Should we require test coverage for new features?

Pros

Runners already exist locally/in CI
Improving test coverage over time
Higher confidence in code quality
Less need for backports/Z-Stream releases

Cons

Slows development process
Harder for open source contributions
Maybe overkill for a pre-1.0 project

My opinion is that we shouldn't do this until we're sure with the direction we're going in with RHEL AI.

My opinion is that we shouldn't do this until we're sure with the direction we're going in with RHEL AI.

I think this discussion should be framed around the open source project, not downstream productization efforts.

I think this discussion should be framed around the open source project, not downstream productization efforts.

Not that I disagree, but I feel like it's relevant here since it would affect this directly.
If we find that we need to radically evolve how the current project works, then this would work against that.

I think this discussion should be framed around the open source project, not downstream productization efforts.

Not that I disagree, but I feel like it's relevant here since it would affect this directly.
If we find that we need to radically evolve how the current project works, then this would work against that.

This is just a discussion - no one is talking about doing this anytime soon :smile:

How many regressions have been slipped through so far? Any metrics on things that used to work, but broke by accident?

How many regressions have been slipped through so far? Any metrics on things that used to work, but broke by accident?

This is a young project, and unfortunately, we don't have specific metrics available yet. However, one metric we could consider is the number of Z-stream releases we've completed.


Class inheritance should not bypass generic parameter contravariance

Bug Report
🔎 Search Terms
contravariance bypass inheritance variance annotation
🕗 Version & Regression Information

This is the behavior in every version I tried, and I reviewed the FAQ for entries about variance.

⏯ Playground Link
Playground link with relevant code
💻 Code
In this example we use contravariance to make Comparator<Animal> assignable to Comparator<Dog> : something than can compare animals can compare dogs.
class Animal { }

class Dog extends Animal {
  wouf = true;
}

class Comparator<in T> {
  public compare(a: T, b: T): boolean {
    return true;
  }
}

class DogComparator extends Comparator<Dog> {
  compareDogs = true;
}

// [ok] an Animal comparator can compare Dogs, so then it is assignable to Comparator<Dog>
const okCompareDogs: Comparator<Dog> = new Comparator<Animal>();

// [error as expected] a Dog comparator cannot compare Animals as it may require specific props of Dog for comparison
const okCompareAnimals: Comparator<Animal> = new Comparator<Dog>();

// [should be an error] It should be the same here, the fact that DogComparator is a subclass of Comparator<Dog> should not bypass contravariance
// DogComparator which extends Comparator<Dog> is still not a subclass of Comparator<Animal> as Animal is not a subclass of Dog
const nokCompareAnimals: Comparator<Animal> = new DogComparator();

🙁 Actual behavior
The following line is accepted by the compiler:
const nokCompareAnimals: Comparator<Animal> = new DogComparator();

I think the problem is that as DogComparator is a subclass of Comparator, the compiler only checks for
(a: Dog, b: Dog) => boolean to be assignable to (a: Animal, b: Animal) => void, regardless of contravariance annotation put on the generic type.
🙂 Expected behavior
The nok line above should give a compilation error as contravariance on Comparator's generic parameter should prevent DogComparator (which extends Comparator<Dog>) from being treated as a Comparator<Animal>.
Even if  (a: Dog, b: Dog) => boolean is assignable to (a: Animal, b: Animal) => void, there should be a second contraint to check if Animal is a subtype of Dog (which will give the error) because of contravariance on the generic parameter.
For information this is the case in Kotlin: see this playground sample
Thanks 😃

I believe this is essentially the same problem described at https://github.com/microsoft/TypeScript/pull/48240#issuecomment-1066527593.
In your example the generic parameter T in class Comparator<in T> is still NOT really contravariant even you use the in annotation, because ts will use structural relations when comparing between different generic types (Comparator vs DogComparator), and T will be treated as bivariant.

Okay I understand the problem.
But in any case, when a parameter is marked with the in keyword, then it should be contravariant, not "contravariant but not really". For me this feature is unfinished.

While I’m inclined to agree this is surprising, it’s a fundamental design limitation because the type system is structural.  If contravariance isn’t witnessed in the structure of the type then you’re going to lose that information when using a type identity that doesn’t include the in  hint.
From what I understand variance annotations were added more for the benefit of the implementer than the consumer, for exactly this reason.  So in T should be read as “T is at least contravariant, but may be more permissive”, because that’s how the compiler will read it too.

Put another way: If you write in T, you’re merely asserting that Foo<T> is assignable to Foo<U> where U is a subtype of T, and this is what the compiler will check for when you write the type.  If the actual definition of the type says the type parameter is bivariant instead of only contra-, the constraint is still met.

This is the intentional behavior. Variance annotations only apply when you're comparing two instantiations of the same type; this is the only place it even makes sense to think about doing it in the first place.
POLA is ungeneralizable, but to me this isn't surprising at all. TypeScript is a structural type system and DogComparator -> Comparator<Animal> is a structural operation (since it's not guaranteed to be a correct operation to upcast DogComparator to Comparator<Dog>), and the structural comparison succeeds on account of method parameter bivariance. That's what should happen, and that's what does happen.
The only plausible diff I could imagine here would be erroring on the in annotation since it only subsets the actual variance, but it's unclear how that's a real improvement. Variance annotations are an advanced feature and it's assumed you understand what you are doing and what the trade-offs are.

Well, then indeed I have to admit I'm facing the limits of TypeScript's design, which makes things like that being accepted although they don't make any sense.
Anyway, thank you all for your answers.

By the way I tried the code snippet given in the Why are function parameters bivariant? FAQ section and it actually gives a compile error (which is very welcome 😀) playground example
Is this section outdated?

Alright thank you! It is clearer for me now.


Minimum PHP version of 7.0 for 2.0 release

Is it possible to support only PHP 7 in version 2.0 ? Do we have any valid reasons to stay with PHP 5.6 ?

2.0 is already bumping a lot in terms of minimum supported version, currently we support 5.3+.
This was discussed at long here.
The point is that the Sentry userbase has a lot of projects that are on older versions (there's even a fork for PHP 5.2!) so being too drastic in terms of minimum language version required was considered not feasible.
2.0 is currently in development but it should be near its completion, switching minimum supported version right now could just delay the release a lot, since we would have to reconsider a lot of stuff. IMHO we should wait for a 3.x, where the bump could go up even to 7.1, where having void and nullable type hints could be a real benefit.

Let me know if you have any other concerns but @Jean85 explains very well why the decision was made for 5.6+ and not 7.0+.

@Jean85 @stayallive thank you both for clarification.

Hey, I just wanted to point out that the dependency chain of the package is not supporting 7.0 anymore. I want to speak up for old php version since error managing is a topic where migration paths are important.
Do you guys plan supporting old php versions? Its very important to us. Its not about your package. The dev dependecies are requesting 7.1 but its not needed. We had to fork it....

PHP 7.1 is required as we're using some features introduced with that version. Also PHP 7.0 is one year old more or less, so if you're using it you're using an unsupported version that may not only have unfixed bugs but also unfixed security issues. Said this, even though we're not actively developing the 1.x branch anymore that version should more or less still be compatible with PHP 7.0 :wink:

FTR, we changed that decision since #670: we had lengthy discussion about this topic, and the PHP ecosystem moved a lot forward in the meantime, so it seemed to us that PHP 7.1+ was a good balance between nice language features and a wide support, also because 1.x is still a working client for older PHP versions, if needed.


New version: FredData v0.3.2

Registering package: FredData
Repository: https://github.com/micahjsmith/FredData.jl
Created by: @micahjsmith
Version: v0.3.2
Commit: ffa1ebfe4d6fbc8bd68c22863a88a97aa037c9ab
Reviewed by: @micahjsmith
Reference: https://github.com/micahjsmith/FredData.jl/commit/ffa1ebfe4d6fbc8bd68c22863a88a97aa037c9ab#commitcomment-37119246

ugh, please close this


SearchRequest using database_code

According to the docs here: https://www.quandl.com/docs/api#dataset-search we can use the search endpoint to get all the datasets within a database by hitting something like datasets.csv?database_code=WIKI. I'd like to submit a pull request enabling this functionality, unfortunately with the current implementation, the Query parameter is required even though it's not required according to the docs. In order to enable the database only query we'd need the Query parameter to not be required.
I'm not sure if there's a nice way to enable this workflow with the exception of breaking backwards compatibility. What are your thoughts on doing that? I'm also happy to try something else if you have a better suggestion.

So the reason the current docs are different is that it's a different API
version being supported. I hit the v1 endpoints. We should move to v3
though (from what I can tell v2 was internal or something). My suggestion
to resolve this but retain compatibility is:

@Deprecate the of(query) static factory.
Add a public no-arg constructor to the builder.
Add with() methods for query and database code to the builder.
Add appropriate optional handling of query and database code arguments to
the request builder.
Make sure the request hits the v3 endpoint.
figure out what else needs updating and at least create issues.

If there's any of that you can put in a pull request, I'll happily review
it. If you do, it would be helpful if you could match the code style.
Have I missed anything?
Cheers,
Jim
On 1 Nov 2015 3:52 am, "hkothari"<EMAIL_ADDRESS>wrote:

According to the docs here: https://www.quandl.com/docs/api#dataset-search
we can use the search endpoint to get all the datasets within a database by
hitting something like datasets.csv?database_code=WIKI. I'd like to submit
a pull request enabling this functionality, unfortunately with the current
implementation, the Query parameter is required even though it's not
required according to the docs. In order to enable the database only query
we'd need the Query parameter to not be required.
I'm not sure if there's a nice way to enable this workflow with the
exception of breaking backwards compatibility. What are your thoughts on
doing that? I'm also happy to try something else if you have a better
suggestion.
—
Reply to this email directly or view it on GitHub
https://github.com/jimmoores/quandl4j/issues/12.

First attempt at a PR here: https://github.com/jimmoores/quandl4j/pull/13

I've refactored the examples, javadocs and tutorial and added your github user to the contributors file.  Let me know if your full name if you want that included.
Thanks again!
Jim

My full name is Hamel Ajay Kothari, I'll add it with my next PR whenever that comes around :)


[YUNIKORN-55] Add pod labels and annotations to allocation ask attributes

Updated the PR with your review items.
Right now all the labels and annotation have been dropped off from the patch. This doesn't really make sense without at least a few of them, so @yangwwei @wilfred-s could you please list a few of them that we are going to need in the scheduler-core side?
Thanks!

Updated the PR with the offline comments. Please don't merge until YUNIKORN-135 and the SI part of this issue is pushed.

Using the constants from SI side. Please review https://github.com/apache/incubator-yunikorn-scheduler-interface/pull/20 first.

Recreated the diff because of YUNIKORN-153.
@yangwwei @wilfred-s could you please review?

hi @adamantal  could you please rebase this as apache/incubator-yunikorn-scheduler-interface#20 now is merged.

Thanks @yangwwei for reminding me. Rebased the patch, pending on jenkins.

Codecov Report

Merging #107 into master will increase coverage by 0.41%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##           master     #107      +/-   ##
==========================================
+ Coverage   53.13%   53.54%   +0.41%
==========================================
  Files          32       32
  Lines        3030     3046      +16
==========================================
+ Hits         1610     1631      +21
+ Misses       1357     1348       -9
- Partials       63       67       +4

Impacted Files
Coverage Δ

pkg/common/si_helper.go
52.57% <64.70%> (+18.00%)
:arrow_up:

pkg/cache/task.go
60.16% <100.00%> (ø)

pkg/dispatcher/dispatcher.go
85.32% <0.00%> (-1.84%)
:arrow_down:

Continue to review full report at Codecov.

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

When reimplemented the patch, somehow some commits got lots (like use the constants from the SI change and to remove the annotations).
Readded the changes and fixed the review items.

Thanks for merging this @yangwwei


Fix creation of 3D multipoint from array. Closes #437.

This PR fixes a bug in the creation of MultiPoints from numpy arrays with 3 dimensions.
This bug has been present since at least Shapely 1.2, but this PR is only aimed at the maint-1.5 branch. I hope that's the right thing to do?

Coverage remained the same at 78.41% when pulling 38f160045d41339a93f4ccabf0291bcfbad85b96 on snorfalorpagus:maint-1.5 into fc34f4229738d4098291a5149aea11e632a86b4c on Toblerity:master.

Coverage remained the same at 78.41% when pulling 38f160045d41339a93f4ccabf0291bcfbad85b96 on snorfalorpagus:maint-1.5 into fc34f4229738d4098291a5149aea11e632a86b4c on Toblerity:master.

Closed in favour of a PR for maint-1.6.


Add 'Extending Wagtail' section to docs

Given our "Wagtail as a platform" ambitions, it's likely we'll be creating a lot more documentation aimed at developers extending the Wagtail admin (as opposed to routine site-building), so I think this is a good time to make that its own top-level section in the documentation rather than making "advanced topics" even more of a dumping-ground than it is already. :-)
Along with shuffling things out of Advanced Topics, I've added a new howto on writing admin views - pretty straightforward "it's just Django" stuff that was left out up to now because there wasn't really a place for it (so people had to pick it up from the reference docs and source code instead).
The dividing line between "modelling a particularly complex site" and "extending Wagtail functionality" is a bit of a grey area, so the selection of pages being moved here is up for debate - I've taken the stance that things like custom admin forms and StreamField blocks are the sort of thing you might deal with during data modelling for a site, while things like audit logs and workflow tasks would only come up during bona-fide "custom Wagtail development".
In Diátaxis framework terms, this section will be firmly how-to material - reference docs will remain in the Reference section (because it's impossible to make a call on which bits of that are relevant to site implementers vs core developers).
(Note: as and when this gets merged, we'll need to set up redirects in readthedocs.)

View this on readthedocs: https://wagtail--7367.org.readthedocs.build/en/7367/extending/index.html

This is lovely.

Redirects now added to readthedocs:
/advanced_topics/adding_reports.html => /extending/adding_reports.html
/advanced_topics/audit_log.html => /extending/audit_log.html
/advanced_topics/customisation/custom_account_settings.html => /extending/custom_account_settings.html
/advanced_topics/custom_tasks.html => /extending/custom_tasks.html
/advanced_topics/customisation/customising_group_views.html => /extending/customising_group_views.html
/advanced_topics/customisation/extending_draftail.html => /extending/extending_draftail.html
/advanced_topics/customisation/extending_hallo.html => /extending/extending_hallo.html
/advanced_topics/customisation/rich_text_internals.html => /extending/rich_text_internals.html

This looks like a solid addition to the documentation to me. Logical, well-organized and a useful addition for folks looking to build a more customized backend.

Thanks for the feedback, all!


Let us use at (@) notation in go get in GOPATH mod

Many projects have screwed up go modules, and require a different dependency management tool, such as raw go get... with traditional GOPATH in order to function. Please allow at (@) notation to facilitate this. Otherwise, developers have to resort to a lot of twisted shell script just to manage Go dependencies.

Please allow at (@) notation to facilitate this.

Please see https://github.com/golang/go/issues/41330#issuecomment-690709405. A relevant part from that comment:

(You might ask: why not just add those things to GOPATH? The answer is: we did, and the result is Go modules.)

Many projects have screwed up go modules, and require a different dependency management tool

This statement is very broad and doesn't provide any references. What are these projects, and why is it that they require a different tool? It's not possible to investigate this issue without additional information.
If there's a specific issue with the cmd/go command that's preventing a specific project from using it, please file a new issue and provide details by filling in the template. We want to address such issues, and such a report would be very helpful.
The Go project doesn't use issue tracker for general discussion, please see golang.org/wiki/Questions for a list of better places to use.


Add support to hyper v1.0

It would be good to prepare the code to support the new version of hyper, which changes a lot. It is still in rc, but very soon it will be released as a stable version.

Close in favor of #2039?


Add Event Location for Big Calendar

Resolves #125

@asimonok There is an error in the tests.
 PASS  src/components/BigCalendar/BigCalendar.test.tsx
  ● Console

    console.error
      Warning: validateDOMNesting(...): <p> cannot appear as a descendant of <p>.
          at p
          at p
          at Description (/Users/mikhail/GitHub/VolkovLabs/volkovlabs-calendar-panel/node_modules/@grafana/ui/src/components/Card/Card.tsx:167:24)
          at CardInner (/Users/mikhail/GitHub/VolkovLabs/volkovlabs-calendar-panel/node_modules/@grafana/ui/src/components/Card/CardContainer.tsx:17:22)
          at div
          at CardContainer (/Users/mikhail/GitHub/VolkovLabs/volkovlabs-calendar-panel/node_modules/@grafana/ui/src/components/Card/CardContainer.tsx:52:3)
          at Card (/Users/mikhail/GitHub/VolkovLabs/volkovlabs-calendar-panel/node_modules/@grafana/ui/src/components/Card/Card.tsx:50:49)
          at event (/Users/mikhail/GitHub/VolkovLabs/volkovlabs-calendar-panel/src/components/EventDetails/EventDetails.tsx:24:49)
          at div
          at div
          at div
          at $a7a032acae3ddda9$export$20e40289641fbbb6 (/Users/mikhail/GitHub/VolkovLabs/volkovlabs-calendar-panel/node_modules/@react-aria/focus/dist/packages/@react-aria/focus/src/FocusScope.tsx:83:8)
          at div
          at DrawerPanel (/Users/mikhail/GitHub/VolkovLabs/volkovlabs-calendar-panel/node_modules/rc-drawer/lib/DrawerPanel.js:15:25)
          at div
          at DomWrapper (/Users/mikhail/GitHub/VolkovLabs/volkovlabs-calendar-panel/node_modules/rc-motion/lib/DomWrapper.js:20:34)
          at /Users/mikhail/GitHub/VolkovLabs/volkovlabs-calendar-panel/node_modules/rc-motion/lib/CSSMotion.js:41:32
          at div
          at DrawerPopup (/Users/mikhail/GitHub/VolkovLabs/volkovlabs-calendar-panel/node_modules/rc-drawer/lib/DrawerPopup.js:31:25)
          at /Users/mikhail/GitHub/VolkovLabs/volkovlabs-calendar-panel/node_modules/@rc-component/portal/lib/Portal.js:35:20
          at Drawer (/Users/mikhail/GitHub/VolkovLabs/volkovlabs-calendar-panel/node_modules/rc-drawer/lib/Drawer.js:19:27)
          at Drawer (/Users/mikhail/GitHub/VolkovLabs/volkovlabs-calendar-panel/node_modules/@grafana/ui/src/components/Drawer/Drawer.tsx:52:3)
          at div
          at height (/Users/mikhail/GitHub/VolkovLabs/volkovlabs-calendar-panel/src/components/BigCalendar/BigCalendar.tsx:32:48)

      254 |     const selectedEvent = calendarProps.events.find(({ title }: any) => title === event.text) as Event;
      255 |     expect(selectedEvent).toBeDefined();
    > 256 |     await act(() => calendarProps.onSelectEvent(selectedEvent, {} as any));
          |              ^
      257 |
      258 |     /**
      259 |      * Event Details

      at printWarning (node_modules/react-dom/cjs/react-dom.development.js:86:30)
      at error (node_modules/react-dom/cjs/react-dom.development.js:60:7)
      at validateDOMNesting (node_modules/react-dom/cjs/react-dom.development.js:10849:7)
      at createInstance (node_modules/react-dom/cjs/react-dom.development.js:10930:5)
      at completeWork (node_modules/react-dom/cjs/react-dom.development.js:22187:28)
      at completeUnitOfWork (node_modules/react-dom/cjs/react-dom.development.js:26593:16)
      at performUnitOfWork (node_modules/react-dom/cjs/react-dom.development.js:26568:5)
      at workLoopSync (node_modules/react-dom/cjs/react-dom.development.js:26466:5)
      at renderRootSync (node_modules/react-dom/cjs/react-dom.development.js:26434:7)
      at performConcurrentWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:25738:74)
      at flushActQueue (node_modules/react/cjs/react.development.js:2667:24)
      at act (node_modules/react/cjs/react.development.js:2582:11)
      at node_modules/@testing-library/react/dist/act-compat.js:46:25
      at Object.<anonymous> (src/components/BigCalendar/BigCalendar.test.tsx:256:14)


api: log instead of panic when a response could not be marshaled/written

In order to avoid killing Clair when there is simply a broken pipe..

We should check the proper error for this. It was a panic because the encoding should never fail unless the code itself is incorrect.

LGTM


I was getting errors like this:

root@vps:/opt/hubot# /opt/hubot/bin/hubot -a hipchat -n "Rupert Bot"
[Fri, 10 Feb 2012 05:27:08 GMT] ERROR Cannot load adapter hipchat - Error: Cannot find module 'hubot'
[Fri, 10 Feb 2012 05:27:08 GMT] INFO Loading scripts from /opt/hubot/scripts
[Fri, 10 Feb 2012 05:27:08 GMT] INFO Loading scripts from /opt/hubot/src/scripts
TypeError: Cannot call method 'run' of null
at Robot.run (/opt/hubot/src/robot.coffee:290:27)
at Object. (/opt/hubot/bin/hubot:102:11)
at Object. (/opt/hubot/bin/hubot:105:4)
at Module._compile (module.js:402:26)
at Object.run (/root/local/node/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:68:25)
at /root/local/node/lib/node_modules/coffee-script/lib/coffee-script/command.js:135:29
at /root/local/node/lib/node_modules/coffee-script/lib/coffee-script/command.js:110:18
at [object Object]. (fs.js:107:5)
at [object Object].emit (events.js:61:17)
at afterRead (fs.js:878:12)
They went away afterI made this change.

Agreed. Looks like you just had it in the wrong spot. :)

Sorry, what is the "right" spot? I am getting this error as well.


Fix: bigmapdiff search

 Big_map search: should be the most recent diff in group, got old one

 Big_map search: should be the most recent diff in group, got old one


Text not showing up on single qubit gates

Steps to reproduce the problem

Go to any page of the textbook that includes a circuit rendered via code cell such as the following

https://learn.qiskit.org/course/introduction/the-atoms-of-computation
https://learn.qiskit.org/course/introduction/grovers-search-algorithm
https://learn.qiskit.org/course/ch-algorithms/bernstein-vazirani-algorithm#implementation

See error

What is the current behavior?
The text inside of the gate (eg. the "x" in an x gate) is not being rendered
What is the expected behavior?
The text should be rendered
Screenshots (optional but very helpful)

Environment (optional but very helpful)

Device: laptop
OS: macos
Browser: firefox and chrome

Additional context (optional)
Add any other context that could help debug the problem.

FYI @frankharkins


Export connectivity map using some standard graph format

This should be a variant of ConnectivityMapQuery with self.output_config.outputFormat set to the required graph format.
Use either tgf or GraphML or DOT.
Graphs can then be viewed using yEd Live website or yEd desktop application.

Done.


added clusterise, pep8 style checked

I had been using this wrapper for more than a year now and thought it would be time to suggest including it in the source package. It takes the output of tokenise and clusters consonants and vowels together. This can't be achieved with the merge argument. I've added one unittest for this function, all tests are passing. Added a description to the readme. And added clusterise and clusterize to __init__.py.
Apart from that I style checked all the .py files with pep8online.com so that they all fit the pep8 standards (spaces instead of tabs, max. line length of 79 chars etc), this doesn't affect functionality.

Thank you very much! :green_heart:
The new function does indeed look like a good addition to the package! I am curious: what exactly do you use the clusters for? My first thought was that inferring the vowel clusters can be used as first step in an automatic syllabification.
And thank you for moving the project to PEP8, this had been on my to-do list for way too long.
I will publish a new release before the end of the week.

Ah, I'm so happy you appreciate the changes, I was a bit nervous to be fair, as this was one of my first pull requests ever. I'm using the clusters for aligning Hungarian and Proto-Uralic words to infer (clusterwise) sound changes. The first consonant cluster of each word is paired up, the rest follows sequentially. If the two words have a different number of clusters then the difference is a suffix.
Thank you for sharing! I would be curious to read more once you are done with the project – i.e. please feel free to come back in a few months to share a link :)

You are welcome!
Thank you for sharing! I would be curious to read more once you are done with the project – i.e. please feel free to come back in a few months to share a link :)

Yes will do so, it's all going to happen soon :)


Grammar Typo Fix

closes #ISSUE-NO
What does this PR do?
Description of Task to be completed?
How can this be manually tested?
Any background context you want to provide?
What is the relevant issue link?
Screenshots (if appropriate)
Questions:

Thanks, @BOLT04  sir for reminding me. Issue resolved.


Add changelog note for CodeQL v2.10.5 deprecation

I should follow my own instructions! :)
Merge / deployment checklist

[ ] Confirm this change is backwards compatible with existing workflows.
[ ] Confirm the readme has been updated if necessary.
[ ] Confirm the changelog has been updated if necessary.

@aeisenberg Did you mean to approve?


App can take pictures even if the permission is denied!

please read https://github.com/ArthurHub/Android-Image-Cropper/issues/858
And update to the new repository


[Settings] Capitalize Mouse Utilities

Summary of the Pull Request
What is this about:
Capitalize Mouse Utilities in the PT FindMyMouse settings under Windows System Commands
What is include in the PR:
Changes to resource files.
How does someone test / validate:
No test is required.
May require to send to loc-team for other languages.
Quality Checklist

[x] Linked issue: #14064
[ ] Communication: I've discussed this with core contributors in the issue.
[ ] Tests: Added/updated and all pass
[ ] Installer: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Docs: Added/ updated
[ ] Binaries: Any new files are added to WXS / YML

[ ] No new binaries
[ ] YML for signing for new binaries
[ ] WXS for installer for new binaries

Contributor License Agreement (CLA)
A CLA must be signed. If not, go over here and sign the CLA.

we won't cap it as it isn't a product name.  sorry,


Update from View.propTypes to ViewPropTypes to match RN v0.44.0

Update the ViewPropTypes to match the last revision of React Native V0.44.0

View.propTypes to ViewPropTypes (53905a5) - @bvaughn

https://github.com/facebook/react-native/releases

+1

Can someone please merge this in so we can get rid of this bloody warning? :) https://github.com/react-community/react-navigation/issues/1352

Please merge this. It's not a big change but it's necessary.

Please merge!

You should merge this guys

@leecade : Anything we can do to help merging this?

I switch to the latest RN this morning ,seems its an error now, so this definitely needs to repair.

@leecade @leecades - Can you, or one of your friends who help maintain this great library, please have a look at this pull request soon? Thanks

A bit strange that I didn't see warnings at RN 0.44, but they are showing now after upgrade to RN 0.45?
console:
Warning: PropTypes has been moved to a separate package. Accessing React.PropTypes is no longer supported and will be removed completely in React 16.  Use a plain JavaScript class instead.   Accessing React.checkPropTypes is no longer supported and will be removed completely in React 16.  :) The merge seems to have been approved over two weeks ago now?

Ping @samanthacampisi @breogangf ? Do you have the rights to merge ?

Would love to see this merged! Is this project still being maintained?

+1 to get this merged!

@leecade, at least a heads up if you don't have time to maintain this?

Please, merge!

There's a lot of comments asking for merge. Why keep adding duplicates? This project is MIT. Fork it.

+1
@bvaughn cause we're lazy and want to use the existing npm package instead of creating a whole new set of dependencies to maintain and potentially have to switch back later on.

A lingering warning still on RN 0.47.1:
ExceptionsManager.js:73 Warning: PropTypes has been moved to a separate package. Accessing React.PropTypes is no longer supported and will be removed completely in React 16.  Use a plain JavaScript class instead.

Sorry for the trouble guys. I will be maintaining this package from now on.
This issue has been resolved with #483

Thanks @mrdezzods ! 👏

Hurray this package is alive again! Some nice PRs pending ;)


Always install the latest stimulus-reflex in CI

We want to always install the latest javascript for stimulus-reflex so that we can catch any regressions and take these into account at a later stage.

Codecov Report

Merging #39 (4524eea) into master (c91cd4c) will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master     #39   +/-   ##
======================================
  Coverage    2.71%   2.71%
======================================
  Files          12      12
  Lines         295     295
  Branches       30      30
======================================
  Hits            8       8
  Misses        287     287

Continue to review full report at Codecov.

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


[AutoPR eventgrid/data-plane] Update the MediaServices.json file in the EventGrid DataPlane SDK

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/4111

(message created by the CI based on PR content)

This PR has been merged into https://github.com/Azure/azure-sdk-for-python/pull/3629


Spam new

Hi
I'm receiving spam in the form
xxxx.com.seocheckupx.net
where xxxx.com is my site
can we block with htacces?
Thank you
Boris

Thanks borisdifiore! I've added seocheckupx.net, hope it helps 👍