Error messages

The error messages that appear while the user is signing in or logging in is not very user friendly, they are in a very technical language. For example if the click on login without entering any details the error says "Given string is empty or null"
Also, I feel the placement of the error messages should be at the bottom (like a snack bar) rather than in the center as users are used to such UI

hey @ShubhangiiMishRa i can work on this issue. i think it would look better if we use snackback instead of red container. please assign me this issue

i can work on this issue kindly assigned to me


My ID4 not starting with Charging

Version of the custom_component

Version x.x.x
Configuration
Describe your configuration here.
Describe the bug
A clear and concise description of what the bug is.
Debug log

Add your logs here.

I'm new with this intergration.
After installation of the integration my ID4 not starting with charging:

My Settings:

If I put the charge button of My ID4

I get the following error message:

Can you tell me what I doing wrong?
Best Regards,
Ron

I do not have VW, but can you try with automation method?
Leave charger configuration entity empty on integration config, and try with two automations below.
Hope it works...
Start charging automation:
alias: EV Smart Charging - Start
description: ""
mode: single
trigger:
  - platform: state
    entity_id:
      - sensor.ev_smart_charging_charging
    from: "off"
    to: "on"
condition: []
action:
  - service: button.press
      target:
        entity_id: button.id4_start_charging

Stop charging automation:
alias: EV Smart Charging - Stop
description: ""
mode: single
trigger:
  - platform: state
    entity_id:
      - sensor.ev_smart_charging_charging
    from: "on"
    to: "off"
condition: []
action:
  - service: button.press
      target:
        entity_id: button.id4_stop_charging

@jonasbkarlsson , @Obelixje my charger is not controlled by is also not possible to controll it with HA.
Yesterday evening I did a small test with the solution of @Obelixje and I think this will work. This weekend I will do e new test and will inform you.
Thank you in advance

@jonasbkarlsson
What do you recommend if the charger can't work with HA. I think my ID4 should initiate charging?
As you can see below, the status is charging but my car is not connected

If the charging is controlled via the car, then the recommendation is to make an automation that controls the switch.ev_smart_charging_ev_connected, provinding information to the integration that the car is connected to the charger.
The easiest way to do that is, once again, to get information from the charger. See this example.
Now, if that is not posssible, then I guess you need to start being a bit creative.

An automation that use the car's position?

Do you have sensor sensor.id4_plug_connection_state? Or something like that? Could it be used?

@janneho Yes, I have. Do you have it working and if yes, can you help me?
best regards,
Ron

Can you check state of sensor.id4_plug_connection_state when charger is connected, and when it is unplugged from car?

HI @janneho
The status is as below:
connected

disconnected

I create the automation below:
alias: EV Smart Charging - EV connected
description: ""
trigger:

platform: state
entity_id:

sensor.id4_plug_connection_state
condition:

condition: device
device_id: e0f08d93788f2eedae712557a654494c
domain: device_tracker
entity_id: device_tracker.id4_tracker
type: is_home
action:
if:

condition: state
entity_id: sensor.id4_plug_connection_state
state: connected
then:
service: switch.turn_on
data: {}
target:
entity_id: switch.ev_smart_charging_ev_connected
else:
if:

condition: state
entity_id: sensor.id4_plug_connection_state
state: disconnected
then:
service: switch.turn_off
data: {}
target:
entity_id: switch.ev_smart_charging_ev_connected
mode: single

and put it in the configuration below:

Is this coreect?
Do I need also the follow automations:
alias: EV Smart Charging - Start
description: ""
mode: single
trigger:

platform: state
entity_id:

sensor.ev_smart_charging_charging
from: "off"
to: "on"
condition: []
action:

service: button.press
target:
entity_id: button.id4_start_charging

and
alias: EV Smart Charging - Stop
description: ""
mode: single
trigger:

platform: state
entity_id:

sensor.ev_smart_charging_charging
from: "on"
to: "off"
condition: []
action:

service: button.press
target:
entity_id: button.id4_stop_charging

Thank you for your help

Leave charger control switch empty in configuration. You need all 3 automations.
Two of them starts and stops charging in car when integration says so.
Third automation tells that car is home, and charger is plugged in to car. Automation seems about right.
Then i suggest that you automation, that turns integration off, and charging on when car is not home. And vice versa.
If you do not have that, when you charge for example in fast charger on road, integration continues controlling charging (not charging if price is high).
I do not have volkswagen, so no guarantees on this. Report if all is ok, or not.

Hi @janneho
It is not possible to remove in setting:

If you remove it and save it, it is back after open de configuration again.

Can you add one space and nothing more?

That helps :)
The manual start / stop works fine.
Now wait till tomorrow to see if everything works fine.

I will give you an update.

Hi,
The car is not starting with charging.

It is connected and at home.
I’m using the automation below:
alias: EV Smart Charging - EV connected
description: ""
trigger:

platform: state
entity_id:

sensor.id4_plug_connection_state
condition:

condition: device
device_id: e0f08d93788f2eedae712557a654494c
domain: device_tracker
entity_id: device_tracker.id4_tracker
type: is_home
action:
if:

condition: state
entity_id: sensor.id4_plug_connection_state
state: connected
then:
service: switch.turn_on
data: {}
target:
entity_id: switch.ev_smart_charging_ev_connected
else:
if:

condition: state
entity_id: sensor.id4_plug_connection_state
state: Available
then:
service: switch.turn_off
data: {}
target:
entity_id: switch.ev_smart_charging_ev_connected
mode: single

Manual I can start and stop charging.

Do you know what is wrong?

What does it look like in settings -> Devices and services -> ev smart charging. Mine is like this

Is ev connected on?

@janneho
below my overview

I can not think why it should not work. Below is from documentation. If manual start and stop works, i do not know why scheduled charging is not working.
Verifying the configuration
To verify that the integration is able to control the charging, go to Settings -> Devices & Services -> Integrations -> EV Smart Charging -> 1 device -> Controls.
Connect the EV to the charger.
PRESS the Manually start charging.
Check that charging is started.
PRESS the Manually stop charging.
Check that charging is stopped.
PRESS the Manually start charging.
Check that charging is started.

If the above works, the integration is able to control the charging.

Hi @janneho
Charging works fine. Thank you for your help.
I have a another question. As example the care should start with charging at 14.00. If I connect my car at the charger at 10.00 it start already with charging an I must it switch off manual with the STOP charging button. Charging stops and at 14.00 it starts with charging. How can I change that charging not start after I connect the cable but start with charging if the integration says start with charging?
Thanks in advance.
Ron

Try to add charge stop in EV connected script, that is what I have done.
Something like this:
alias: EV Smart Charging - EV connected
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.id4_plug_connection_state
         condition:
  - condition: device
    device_id: e0f08d93788f2eedae712557a654494c
    domain: device_tracker
    entity_id: device_tracker.id4_tracker
    type: is_home
action:
  - if:
    - condition: state
       entity_id: sensor.id4_plug_connection_state
       state: connected
    then:
      - service: switch.turn_on
        data: {}
        target:
        entity_id: switch.ev_smart_charging_ev_connected
      - service: button.press
        target:
        entity_id: button.id4_stop_charging
        else:
         - if:
            condition: state
            entity_id: sensor.id4_plug_connection_state
            state: Available
        then:
           service: switch.turn_off
           data: {}
           target:
           entity_id: switch.ev_smart_charging_ev_connected
           mode: single

Sorry for hijacking this a bit, I'm just wondering if I actually need to set any values in "Low Price" and "Electricity Price limit"?

I have the same issue on my Tesla that the charging isn't started. I did the manual test as per documentation, and it worked. But charging won't start even if it's the lowest price on todays curve:

I want the charging to be done at 05:00, and it can start whenever during the day, preferably Continuously.

Sorry for noise, I've now solved it.

:wave:
I experience similar issues for my Tesla Model 3.
What happens is that the car goes to deep sleep, and makes all the entities unavailable, which in turn makes EV Smart think that the car is not connected/available at all and changes to "No charging planned".
I'm experimenting with waking up the car now if charging is planned, by manually pressing the wake up button that the car have (in another automation). I already have the recommended automation in place when connecting and disconnecting the car, but that doesn't help since all the entities are gone anyway.
My wifes VW e-UP! works without any issues at all on the same settings. Until then, does anyone have any idea how to fix this in the best possible way?
I will keep this issue updated with my progress.

@enoch85 is going to deep sleep and make all the entities unavailable to common behaviour for all Teslas? If so, then it sounds like a major problem. Strange that I haven't heard (much) about it.
For me, it would have been better if the Tesla integration kept the last know values instead of making the entities unavailable...

@jonasbkarlsson

is going to deep sleep and make all the entities unavailable to common behaviour for all Teslas?

I don't know, but I find the car to be very energy conserving, only loosing like 1% over several days if I don't touch it. So I guess, yes, it's a problem. The car will wake up if you plug a charge cable in it (or start charging), but with the entities unavailable it doesn't matter since charging won't start anyway. Would the setting "Keep charger on" help me here?
Right now I have this automation (which worked perfectly fine last night):
alias: Vakna Tesla!
description: Dags att ladda. :)
trigger:
  - platform: time
    at: "23:00:00"
condition:
  - condition: state
    entity_id: sensor.ev_smart_charging_charging
    attribute: Charging is planned
    state: true
action:
  - device_id: 8fc8504659b7162e4270b730466060f4
    domain: button
    entity_id: 243c1fb8746cb0cc34c5038f09e81cb7
    type: press
  - delay:
      hours: 3
      minutes: 0
      seconds: 0
      milliseconds: 0
    enabled: true
  - device_id: 8fc8504659b7162e4270b730466060f4
    domain: button
    entity_id: 243c1fb8746cb0cc34c5038f09e81cb7
    type: press
    enabled: true
mode: single

Usually it goes to sleep around 00:00 if I leave it with charge plugged at around 17:00-18:00, hence the time trigger at 23:00 which will press the wake up button and then do the same thing 3 hours later (charging usually occurs between 01:00-04:00.

For me, it would have been better if the Tesla integration kept the last know values instead of making the entities unavailable...

Agreed. I'm using this integration, so maybe it's time for an issue report? :)
It charged last night, and now I have this:

Maybe if you could save the data in your integration instead, I don't know what's best?

with the entities unavailable it doesn't matter since charging won't start anyway

You know the code. What I was thinking was maybe saving the state of planned charge, and try to charge even without entities available. Or am I not thinking clear?
Maybe a switch that could be called like "Force try charge" or something.  That could later be used in an automation that puts the switch on, during certain conditions set by the user (me). Like, if I know the car is home, or my cellphone is home, or that the car actually is plugged in (can be checked though Easee) or something else, then I could try to force charge, even if the entities of the car is unavailable. Just brainstorming here.

Made an issue now anyway: https://github.com/alandtse/tesla/issues/757

You know the code. What I was thinking was maybe saving the state of planned charge, and try to charge even without entities available. Or am I not thinking clear?

But I thought that when you wrote "with the entities unavailable it doesn't matter since charging won't start anyway" that it meant that it would not be possible to start charging if the car is in deep sleep. Maybe you meant something else.
If you let the car go into deep sleep, and then press button.ev_smart_charging_manually_start_charging, will charging start?

If you let the car go into deep sleep, and then press button.ev_smart_charging_manually_start_charging, will charging start?

I have to test that.

It becomes like this:

If I press the manual start button, it wakes up again it seems. Debugging this from two directions now. Seems to happen after reboot of HAOS.
Previous solutions involved going to the car and physically detach and insert the charging cable.

CONFIRMED: Even after the car is in deep sleep, it's possible to start it by pressing the manual button in EV Smart.

What happens is that the car goes to deep sleep, and makes all the entities unavailable, which in turn makes EV Smart think that the car is not connected/available at all and changes to "No charging planned".

Hi @enoch85! I have looked into this. Are you sure that turning the entities to unavailable makes EV Smart's status change to "No charging planned"? Looking at the code, that should not happen.
If you get an error message in the log saying "SOC sensor not valid" or "Target SOC sensor not valid", that should not cancel a scheduled charging. What happens is that the last known value is continued to be used.
However, if some entities are unavailable at startup (after HA reboot), then the integration will not start at all. It will wait until all entities are available.

However, if some entities are unavailable at startup (after HA reboot), then the integration will not start at all. It will wait until all entities are available.

Ok, then that's the case.
I rebooted quite a lot during the setup of my HAOS. Tested yesterday also to remove all my special fixes I made to be sure it would start, and it worked. So I guess it's all good now.
After reboot: remember to wake up the car, or start a manual charging session.


[TASK] Tooltips for buttons without Text

Estimated story points: 3
Description

small buttons like this one (currently only this one) should have tooltips. This one for example "Close Connection"
https://daisyui.com/components/tooltip/

Acceptance criteria

time: 3.5h


Grammar wrong in  GroovyInAction/listings/appD/Listing_D_02_Lists.groovy

Grammar wrong in  GroovyInAction/listings/appD/Listing_D_02_Lists.groovy
Caught: Assertion failed:

assert [1,2,3].permutations().toList() == [ [1, 2, 3], [2, 3, 1], [3, 2, 1], [3, 1, 2], [2, 1, 3], [1, 3, 2] ]
               |              |        |
               |              |        false
               |              [[1, 2, 3], [3, 2, 1], [2, 1, 3], [3, 1, 2], [1, 3, 2], [2, 3, 1]]
               [[1, 2, 3], [3, 2, 1], [2, 1, 3], [3, 1, 2], [1, 3, 2], [2, 3, 1]]

Assertion failed:

assert [1,2,3].permutations().toList() == [ [1, 2, 3], [2, 3, 1], [3, 2, 1], [3, 1, 2], [2, 1, 3], [1, 3, 2] ]
               |              |        |
               |              |        false
               |              [[1, 2, 3], [3, 2, 1], [2, 1, 3], [3, 1, 2], [1, 3, 2], [2, 3, 1]]
               [[1, 2, 3], [3, 2, 1], [2, 1, 3], [3, 1, 2], [1, 3, 2], [2, 3, 1]]

	at Lists.run(Lists.groovy:38)

Ok, thanks. I will investigate. What Groovy/Java version did you run it with?
Dierk
sent from:mobile

Am 23.07.2016 um 05:49 schrieb Jiawen Geng<EMAIL_ADDRESS>Grammar wrong in GroovyInAction/listings/appD/Listing_D_02_Lists.groovy
Caught: Assertion failed:
assert [1,2,3].permutations().toList() == [ [1, 2, 3], [2, 3, 1], [3, 2, 1], [3, 1, 2], [2, 1, 3], [1, 3, 2] ]
|              |        |
|              |        false
|              [[1, 2, 3], [3, 2, 1], [2, 1, 3], [3, 1, 2], [1, 3, 2], [2, 3, 1]]
[[1, 2, 3], [3, 2, 1], [2, 1, 3], [3, 1, 2], [1, 3, 2], [2, 3, 1]]
Assertion failed:
assert [1,2,3].permutations().toList() == [ [1, 2, 3], [2, 3, 1], [3, 2, 1], [3, 1, 2], [2, 1, 3], [1, 3, 2] ]
|              |        |
|              |        false
|              [[1, 2, 3], [3, 2, 1], [2, 1, 3], [3, 1, 2], [1, 3, 2], [2, 3, 1]]
[[1, 2, 3], [3, 2, 1], [2, 1, 3], [3, 1, 2], [1, 3, 2], [2, 3, 1]]
at Lists.run(Lists.groovy:38)

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Java 8
Groovy 2.4.7


refactor: Split up config package and simplify some code

What this PR does / Why we need it:
Refactors the config writing/loading part.
Most notable points:

Split up config -> config "core", reading, writing, persistence.
Split up some files to multiple files in resulting packages
Config loader no longer loads multiple configs but only one -> moved to project loading
Simplify loadconfigs

I really the changes splitting things into smaller chunks/files and leaving finding files to the project loader.
I am however pretty unsure about the structure of new sub-packages. Overall I think it's better, but it could be even better - just not sure how.
If we don't quickly agree on some great structure, I do think this can be merged as is, and future refactorings might point us to an even better package structure.


Prefix transition

transition: xy;

/* should become */

transition: xy;
-webkit-transition: xy;

According to CanIUse, by not prefixing we lose about 10% usage support due to UC Browser for Android.

http://caniuse.com/#feat=css-transitions

transitions are prefixed, i think this issue is related to the property not being in a & {} block, i'll add a patch for this.
stylis('.something', `

  > h1 {
    transition: xy;
  }

`)

".something > h1 {-webkit-transition: xy;-moz-transition: xy;-ms-transition: xy;transition: xy;}"


LEX's voice button does not have AWSLexInteractionKit available for controlling the voice button delegates

LEX's voice button does not have AWSLexInteractionKit available for controlling the voice button and setting the default session attribute like PIN etc.
We are integrating AWS LEX in our app which have the feature to set the PIN before invoking the voice skill (to authenticate with our bot) but currently there is no provision to set the PIN or manage session attribute or even we can not access the AWSLexInteractionKit object in our (voice view implemented) custom class for voice view. If we tried to create and assign the AWSLexInteractionKit delegates to voice button then the animation does not working.
Can anyone implemented like this or have solution for this?
I really appreciate for your kind help.
Thank you

Hi @ymisal
Currently we do not support customization like this in the button, you can copy the code in your application and make the necessary changes to fit your exact use case. I will take this as feature request to the team.
Thanks,
Rohan


make libxslt version info available as a first-class member of VersionInfo

See #1482 for details around removing the path to libxslt, which is the only piece of metadata that tells us what version of libxslt is being used.
I'd like to see something similar for libxslt as we have for libxml2:

track the version used at compile time
know the version loaded at runtime
emit both versions as part of VersionInfo

This might result in a breaking change to the structure of VersionInfo where libxslt_patches is moved to under its own key and renamed, so the output would be something like:
  nokogiri: 1.10.7
  ruby:
    ...
  libxml:
      binding: extension
      source: packaged
      patches:
      - 0001-Revert-Do-not-URI-escape-in-server-side-includes.patch
      - 0002-Remove-script-macro-support.patch
      - 0003-Update-entities-to-remove-handling-of-ssi.patch
      compiled: 2.9.10
      loaded: 2.9.10
  libxslt:
      binding: extension
      source: packaged
      patches: []
      compiled: 1.1.34
      loaded: 1.1.34

See #1859 for the related PR


Update CBO app to enable app to read multiple ServiceRequests

Query for all servicerequests, not query for all serviceRequests for 1 patient.
Display each ServiceRequest in it's own row on the dashboard.

Use Github Pages for testing. @sravandigitalhie to set up it.

Update from @sravandigitalhie : Updated to pull multiple ServiceRequests and everything is dynamically pulled. The only hard coded info is Owner, Status, Notes/Notes History.


Add cycle check.

Checklist before submitting

[x] Did you read the contributor guide?
[x] Did you update any affected documentation?
[x] Did you write any tests to validate this change?

Description
Fixes #54

Codecov Report

Merging #131 into master will increase coverage by 0.21%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #131      +/-   ##
==========================================
+ Coverage   93.54%   93.75%   +0.21%
==========================================
  Files          10       10
  Lines         666      688      +22
==========================================
+ Hits          623      645      +22
  Misses         43       43

Flag
Coverage Δ

#unittests
93.75% <100.00%> (+0.21%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

open-ce/build_tree.py
97.40% <100.00%> (+0.32%)
:arrow_up:

open-ce/errors.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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

I did some runs and collected the runtime for various numbers of packages:
The maximum one was this run:
./open-ce/build_env.py envs/opence-env.yaml --repository_folder ./repos/ --python_vers 3.6,3.7,3.8 --build_types cuda,cpu --mpi_types openmpi,system

I made pytorch depend on horovod and tried to build the horovod env file, and got the following error:
[OPEN-CE-ERROR-14] Build dependencies should form a Directed Acyclic Graph.
The following dependency cycle was detected in the build tree:
pytorch-base -> horovod-feedstock -> pytorch-meta -> pytorch-base
pytorch-base -> horovod-feedstock -> pytorch-meta -> torchtext-feedstock -> pytorch-base
pytorch-base -> horovod-feedstock -> pytorch-meta -> torchvision-base -> pytorch-base
pytorch-meta -> pytorch-base -> horovod-feedstock -> pytorch-meta
pytorch-meta -> torchtext-feedstock -> pytorch-base -> horovod-feedstock -> pytorch-meta
pytorch-meta -> torchvision-base -> pytorch-base -> horovod-feedstock -> pytorch-meta
torchtext-feedstock -> pytorch-base -> horovod-feedstock -> pytorch-meta -> pytorch-base
torchtext-feedstock -> pytorch-base -> horovod-feedstock -> pytorch-meta -> torchtext-feedstock
torchtext-feedstock -> pytorch-base -> horovod-feedstock -> pytorch-meta -> torchvision-base -> pytorch-base
torchvision-base -> pytorch-base -> horovod-feedstock -> pytorch-meta -> pytorch-base
torchvision-base -> pytorch-base -> horovod-feedstock -> pytorch-meta -> torchtext-feedstock -> pytorch-base
torchvision-base -> pytorch-base -> horovod-feedstock -> pytorch-meta -> torchvision-base
torchvision-meta -> pytorch-base -> horovod-feedstock -> pytorch-meta -> pytorch-base
torchvision-meta -> pytorch-base -> horovod-feedstock -> pytorch-meta -> torchtext-feedstock -> pytorch-base
torchvision-meta -> pytorch-base -> horovod-feedstock -> pytorch-meta -> torchvision-base -> pytorch-base
torchvision-meta -> torchvision-base -> pytorch-base -> horovod-feedstock -> pytorch-meta -> pytorch-base
torchvision-meta -> torchvision-base -> pytorch-base -> horovod-feedstock -> pytorch-meta -> torchtext-feedstock -> pytorch-base
torchvision-meta -> torchvision-base -> pytorch-base -> horovod-feedstock -> pytorch-meta -> torchvision-base
horovod-feedstock -> pytorch-meta -> pytorch-base -> horovod-feedstock
horovod-feedstock -> pytorch-meta -> torchtext-feedstock -> pytorch-base -> horovod-feedstock
horovod-feedstock -> pytorch-meta -> torchvision-base -> pytorch-base -> horovod-feedstock

After seeing that output, I think alot of output could be generated if something went wrong, so I added a limit.
@bnemanich , what do you think?
[OPEN-CE-ERROR-14] Build dependencies should form a Directed Acyclic Graph.
The following dependency cycles were detected in the build tree:
pytorch-base -> horovod-feedstock -> pytorch-meta -> torchvision-base -> pytorch-base
pytorch-base -> horovod-feedstock -> pytorch-meta -> torchtext-feedstock -> pytorch-base
pytorch-base -> horovod-feedstock -> pytorch-meta -> pytorch-base
pytorch-meta -> torchvision-base -> pytorch-base -> horovod-feedstock -> pytorch-meta
pytorch-meta -> torchtext-feedstock -> pytorch-base -> horovod-feedstock -> pytorch-meta
pytorch-meta -> pytorch-base -> horovod-feedstock -> pytorch-meta
torchtext-feedstock -> pytorch-base -> horovod-feedstock -> pytorch-meta -> torchvision-base -> pytorch-base
torchtext-feedstock -> pytorch-base -> horovod-feedstock -> pytorch-meta -> torchtext-feedstock
torchtext-feedstock -> pytorch-base -> horovod-feedstock -> pytorch-meta -> pytorch-base
torchvision-base -> pytorch-base -> horovod-feedstock -> pytorch-meta -> torchvision-base
Cycles truncated after 10...


org.osbuild.systemd: Support masking generators

This adds a new key masked_generators, similar to masked_services, which masks systemd generators from running at boot, by creating symlinks to /dev/null in /etc/systemd/systemd-generators, as described in:
https://www.freedesktop.org/software/systemd/man/latest/systemd.generator.html#Description
This will be useful for the automotive project, as it allows disabling of unsupported things like sysv or rc.local legacy support, while improving boot performance.

The PR extended the current test to also test this feature.

Sorry again, I should have been more clear. I was thinking about a small unit test, I attached what I had in mind. It maybe slightly over the top as the extended stage test checks that the expected mask file is created. The (small in this case) values this new unit test style tests are adding is a) run faster b) more precise, i.e. we can check the link target is correct.
Anyway, sorry for my nitpicks, this looks fine.
0001-stages-systemd-add-unit-test-for-the-new-masked_gene.patch.txt

Added the comment and your unit test.


Unable to rebind ctrl+shift+f

VSCode Version: 1.31.0
OS Version: Windows 7

Steps to Reproduce:

File -> Preferences -> keyboard shortcuts
Click the pencil icon to assign a new keybinding.
Note that "ctrl+shift" followed by any letter except for "f" is accepted.
Note that "ctrl+shift+f" only displays "ctrl+shift+" and if you press ENTER it shows in list as "ctrl+shift+unknown".

Additional Notes:
Manually editing the keybindings.json also does not work.  It appears that ctrl+shift+f might be hardcoded?

Does this issue occur when all extensions are disabled?: Yes

Confirm the issue, also happening with "ctrl + alt + " keybindings.

eyep, after the last hotfix Alt+Ctrl doesn't work. not even in settings.

I holding AltGr all the time , but the moment I hit t k - the  modifier key state just drops.

@Spown why do you think #68182 is related? I can't reproduce this.

@eurico-nerd @Spown you are running into what is explained at https://github.com/Microsoft/vscode/issues/68003#issuecomment-461637032 .
Basically, AltGr+ is no longer equivalent to Ctrl+Alt+ and it is reserved for typing special characters (it no longer has any modifier flags). So, unfortunately, you need to switch to using the longer form of pressing Ctrl+Alt+ for those keybindings.

@hyarionh You have a different issue. For you, the keybinding ctrl+shift+f never reaches VS Code. This is most likely caused by OS configuration / other software on the same machine that "eats up" that keybinding. Is this keybinding available on other software on your machine?

@alexandrudima My apologies.  I've checked again this morning and it's working correctly.  It appears a reboot of my PC solved the issue.  I did not think to do that when I logged the bug as I had only recently booted up  (as a side note, ctrl+shift+f had been working yesterday until I updated vscode).

@roblourens looks like it's not related. I thought it was because these were the only keyboard related fixed in 1.31.1.

Basically, AltGr+ is no longer equivalent to Ctrl+Alt+ and it is reserved for typing special characters (it no longer has any modifier flags)

apparently typing smileys is more important than being able to work...

@Spown This change came to us from upstream (Electron + Chromium). I don't believe typing smileys was their number 1 priority, but rather unblocking users with European keyboard layouts to type their special characters (see https://www.chromestatus.com/feature/5059438092222464). Before, it was not possible for us to distinguish AltGr+ (which is used in a lot of special characters) from Ctrl+Alt+.
For example, on a French keyboard layout, # is generated only by pressing AltGr+3. In the past, this would arrive on our side virtually identical to Ctrl+Alt+3. With their change, we can now allow users on French keyboard to type their #s and not dispatch the ctrl+alt+3 keybinding:

If you don't care much for special characters, you could switch to the English/US keyboard layout and then I believe the AltGr+ key will function like the left-hand-side Alt+ key, so you could bind keybindings to it.

@alexandrudima actually I use German keyboard and I am able to type special characters using both modifiers, but I still expect the shortcuts to override the typing. These special character called special for a reason. For example both Ctrl + Alt + 3 and AltGr + 3 produce ³, but if I set Ctrl + Alt + 3 to a command - means I am fine with this key being inaccessible. But yeah, I know I am not alone in the world and other people have other needs.
installing additional keyboard layout is not an option for a number of reasons, in my case the most important one is that I use 2 layouts (Russian and German) and I switch between them. German absolutely covers English so I don't need a US or GB one. Being able to cycle through 2 layouts (i.e. to always know which one comes next after toggling) is much more important for me than the minute nuances that come with. Also Y and Z are swapped in DEU and EN layouts.
Anyway more accessability is better than less. I only a bit upset that such huge of a change was introduced silently and without a proper means to switch back to legacy.

Anyway more accessability is better than less. I only a bit upset that such huge of a change was introduced silently and without a proper means to switch back to legacy.

I am sorry about that! I honestly didn't know the change came in either, since I don't personally use any Ctrl+Alt+X keybindings (where X is a digit or a letter). The change came in with our upgrade to Electron 3.0. Since 2 months already we have the Insiders channel on Electron 3.0 and we haven't received any single issue regarding this from our users, nor did anyone from the team notice this change regarding AltGr until after we shipped stable and issues starting coming...
May I kindly ask you that you try using the Insiders version, it is quite high quality and we all selfhost on it... We would have found out about this change sooner if we would have had at least one user of Ctrl+Alt+X keybindings that are triggerable via AltGr+ ... We could have documented it in the release notes...

May I kindly ask you that you try using the Insiders version

I am using it, but mostly only to check whether the bug I found in stable was already fixed.


Generate .di files

Always generate .di files (even if unused for now) so developers can discuss them a la "array.di line 23 in master".

I could measure a degradation of debug build time by less than 5%.

What's the purpose of this?

I did not know you could do that, it sure is a useful feature. I like it.

so developers can discuss them a la "array.di line 23 in master".

I don't understand the motivation.  Using github, you can currently refer to array.d line 23 (even at a specific commit) in a convenient link.

I don't understand the motivation either. Why is it necessary for developers to reference line numbers, and how does this PR help? Most of Phobos is templated, meaning the template body gets included in the .di file, so most of the changes checked into Phobos will also change the line numbers in the .di file. So generating .di files doesn't really help retain consistent line numbers either, given the rapid rate at which Phobos changes are merged.

I don't understand the motivation either. Why is it necessary for developers to reference line numbers, and how does this PR help?

Same here and it's looks abandoned.
@andralex  OK to close?


can't disable multiple check-out

We're working with azure DevOps TFVC and android studio IDE
We want to disable multiple checkouts for the files so only one developer can work on the file.
We were able to do it in the Visual Studio .Net Projects easily but we couldn't in android studio using azure devops plugin.
How cant we achieve this in android studio with azure devops TFVC ?
I tried to lock a file but I got error says "... Checkout locks are not supported in local workspaces"
I tried to change the workspace location from local to server but It's disabled !!

Error:TF400022: The item $/Test App Project/app/src/main/java/com/example/testapp1/ui/dashboard/DashboardFragment.java cannot be locked for checkout in workspace WINDOWS-1VTOOGG_TestAppProject;Hosam. Checkout locks are not supported in local workspaces.

Unfortunately, this is true. This plugin doesn't currently support the server workspaces, and, thus, it cannot support the check out locks. At the current moment, there're no plans  I'm aware of to add the server workspaces.

Hello. In scope of #325, we're going to support checkout of new server workspaces (there'll be a checkbox in the checkout dialog). Closing the issue as subset of #325.


Proposed new version of index.py.

Added a custom logging configuration to provide a log file in addition to the console output
Route Handler Identification: added logic to detect route handlers (e.g., Flask or Django endpoints) and flagged them as 'route handler, endpoint' in the logs.
Custom vs. Third-Party Module Detection: Improved the detection of custom modules versus third-party modules.
Accurate Documentation Links: The script now provides correct documentation links for standard library modules and appropriate messages for custom and third-party modules.

Great Work 👍
Merging in


[SUGGESTION] picamera2 preview in pygame

Hello everybody.
I am using pi v2 cameras in a photobooth type système using pygame and a python application, to preview video from pi cameras and to take pictures.
the preview is done with picamera.start_preview() instructions.
The video is then directly played in pygame.
I replaced my cameras with the PiCamera v3 12Mb module. The cameras work fine with libcamera and picamera2. OS and depency are uptodate.
BUT the preview in pygame doesnt work.
I tested all features picamera2.start_previe(xxxxxx), no video streams appears in pygame. Black screen.
Does this feature exist today?  If yes wich syntax to use?
is it planned? at what due date
Thanks a lot
Pascal

Hi, I'm afraid I don't really know enough about pygame to comment. Do I understand from your report that the v2 camera works, but the v3 does not? I can't really give you any explanation for that, unless perhaps the image from the v3 camera is too big? If you had a (very simple!) test case that works with the v2 but not the v3 that might help. Thanks!

Hi!
Here find my simple code to test pygame + picamera2 + cam module v3
thanks for your answer. I tried to modify image size in v3cam but pb is the same.
tested on Raspberry Pi 3B Bulleyes updated from today
cam v2 is working fine with raspivid -f (legacy cam is ENABLED in raspi-config)
cam v3 is working fine with libcamera-hello (legacy cam is DISABLED, glamor is enabled, gpu mem=256m, opengl kms selected)
NOTE camv2 can't be used with picamera2 and camv3 can't be used with picamera. ON/OFF lrgacy cam must be switched if you want use camv2 or camv3 hardware
TEST1: Using camv2 / legacy cam enabled, this code add a video layer to the pygame window
and preview from cam is displayed in pygame window.
We use picam library
===========================================================
#!/usr/bin/python3
-- coding: utf-8 -
import picamera
import os
import pygame
import sys
import time
pygame.init()
res = (1024,800)
#if you want a separate pygame window
#screen = pygame.display.set_mode(res)
#if you want a full screen pygame window
screen = pygame.display.set_mode((0,0),pygame.FULLSCREEN)
camera=picamera.PiCamera()
camera.resolution= (800,600)
camera.start_preview() #pygame screen is black, no preview, no errors
time.sleep(10)
camera.stop_preview()
camera.close()
===============================================================
TEST2: Using camv3 / legacy cam DISABLED, read comments in the code for results
when you want to preview video strem on  pygame window
We use picam2 library
#!/usr/bin/python3
-- coding: utf-8 -
from picamera2 import Picamera2 , Preview
import os
import pygame
import sys
import time
pygame.init()
res = (1024,800)
#if you want a separate pygame window
#screen = pygame.display.set_mode(res)
#if you want a full screen pygame window
screen = pygame.display.set_mode((0,0),pygame.FULLSCREEN)
camera=Picamera2()
#trying to modify image size
camera.preview_configuration.enable_lores()
camera.preview_configuration.lores.size=(800,600)
camera.preview_configuration.main.size = (800,600)
camera.configure("preview")
camera.controls.ExposureTime = 10000
#camera.start(show_preview=True) 	#this show preview in the separate QTGL Window, pygame screen is black
#camera.start_preview(Preview.NULL) #pygame screen is black, no preview, no errors
#camera.start_preview(Preview.DRM)	#pygame screen is black, no preview, no errors
#camera.start_preview(Preview.QT)	#pygame screen is black, separate QTPreview Window opens but is black
#camera.start_preview(Preview.QTGL)	#pygame screen is black, separate QTGLPreview Window opens but is grey
camera.start_preview() #pygame screen is black, no preview, no errors
time.sleep(10)
camera.stop_preview()
camera.close()
======================================================

Hi again, thanks for posting some example code. I've tried some of it out but the only thing I can see that's wrong is that it often calls start_preview but not start. Calling start_preview starts the preview window event loop, but it does not start the camera - so you will not see any frames. Someone has to call start.
As far as I can tell, if I start both the preview and the camera, everything works as expected for both v2 and v3 cameras. It's true that there is nothing in the pygame window, but given that nothing is being rendered there I wouldn't expect it. However, the following works nicely:
from picamera2 import Picamera2
import pygame

pygame.init()
res = (1024,768)
screen = pygame.display.set_mode(res)

camera = Picamera2()
camera.preview_configuration.main.size = res
camera.preview_configuration.main.format = 'BGR888'
camera.configure("preview")
camera.start()

while True:
    array = camera.capture_array()
    img = pygame.image.frombuffer(array.data, res, 'RGB')
    screen.blit(img, (0, 0))
    pygame.display.update()

Does any of that help?

@davidplowman, using your code as a guide, how would I preview at that res, but do a capture at full res.
For example...
i = 0
while True:
    i = i+1
    array = camera.capture_array()
    img = pygame.image.frombuffer(array.data, res, 'RGB')
    screen.blit(img, (0, 0))
    pygame.display.update()
    # some logic to detect that I want to take a pic
    camera.capture_file("test" + str(i) + ".png") #works, but seems to be at preview size?

Hi
effectivly the code of David capture still image at the same resolution
find below a little modification to capture still image at a different resolution
from picamera2 import Picamera2
import pygame
pygame.init()
res = (1024,768)
screen = pygame.display.set_mode(res)
camera = Picamera2()
camera.preview_configuration.main.size = res
camera.preview_configuration.main.format = 'BGR888'
camera.configure("preview")
#####################
here configure still capture
capture_config = camera.create_still_configuration()
camera.still_configuration.main.size = (2500,2500)
#####################
camera.start()
while True:
##################################
depress a key 6> capture image
#################################
events=pygame.event.get()
for e in events:
if (e.type == pygame.KEYDOWN and e.key == pygame.K_a):
print("capture image")
camera.switch_mode_and_capture_file(capture_config, "image.jpg")
print("display image")
img=pygame.image.load("aaaaa.jpg").convert()
rect=img.get_rect()
screen.blit(img, rect)
pygame.display.update()
print("display image 5s")
time.sleep(5)
array = camera.capture_array()
img = pygame.image.frombuffer(array.data, res, 'RGB')
screen.blit(img, (0, 0))
pygame.display.update()

@pascalsoler  Thanks, I took your code and adapted it just a bit but I am getting an error when I press the key to capture.
python3 test.py
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html
[0:00:46.312108119] [1207]  INFO Camera camera_manager.cpp:299 libcamera v0.0.2+55-5df5b72c
[0:00:46.353333397] [1214]  INFO RPI raspberrypi.cpp:1425 Registered camera /base/soc/i2c0mux/i2c@1/imx477@1a to Unicam device /dev/media3 and ISP device /dev/media2
[0:00:46.357623138] [1207]  INFO Camera camera.cpp:1026 configuring streams: (0) 1024x768-BGR888
[0:00:46.357948082] [1214]  INFO RPI raspberrypi.cpp:805 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12 - Selected unicam format: 2028x1520-pBCC
Capturing frame...
[0:00:48.819702618] [1218]  INFO Camera camera.cpp:1026 configuring streams: (0) 4056x3040-BGR888
[0:00:48.823342914] [1214]  INFO RPI raspberrypi.cpp:805 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 4056x3040-SBGGR12_1X12 - Selected unicam format: 4056x3040-pBCC
[0:00:48.827105636] [1214] ERROR V4L2 v4l2_videodevice.cpp:1241 /dev/video14[25:cap]: Unable to request 1 buffers: Cannot allocate memory
Failed to allocate buffers.
Traceback (most recent call last):
  File "/home/pi/camera/test.py", line 37, in <module>
    camera.switch_mode_and_capture_file(configStill, filename)
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 1232, in switch_mode_and_capture_file
    return self.dispatch_functions(functions, wait, signal_function)
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 1163, in dispatch_functions
    return job.get_result() if wait else job
  File "/usr/lib/python3/dist-packages/picamera2/job.py", line 77, in get_result
    return self._future.result()
  File "/usr/lib/python3.9/concurrent/futures/_base.py", line 440, in result
    return self.__get_result()
  File "/usr/lib/python3.9/concurrent/futures/_base.py", line 389, in __get_result
    raise self._exception
  File "/usr/lib/python3/dist-packages/picamera2/job.py", line 47, in execute
    done, result = self._functions[0]()
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 1208, in switch_mode_
    self.configure_(camera_config)
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 956, in configure_
    raise RuntimeError("Failed to allocate buffers.")
RuntimeError: Failed to allocate buffers.

This is my code...
from picamera2 import Picamera2
from libcamera import ColorSpace
import pygame
import time

pygame.init()
appWidth = 1024
appHeight = 768

screen = pygame.display.set_mode((appWidth, appHeight))

camera = Picamera2()

# === Create Configurations ====================================================

configPreview = camera.create_preview_configuration()
camera.preview_configuration.main.size = (appWidth, appHeight)
camera.preview_configuration.main.format = 'BGR888'
camera.configure('preview')

# ------------------------------------------------------------------------------

configStill = camera.create_still_configuration()
camera.still_configuration.enable_raw()
camera.still_configuration.main.size = camera.sensor_resolution
camera.still_configuration.buffer_count = 2
camera.still_configuration.colour_space = ColorSpace.Sycc()

camera.start()

while True:
    events=pygame.event.get()
    for e in events:
        if (e.type == pygame.KEYDOWN and e.key == pygame.K_SPACE):
            filename = 'image.jpg'
            print('Capturing frame...')
            camera.switch_mode_and_capture_file(configStill, filename)

            print('Displaying the captured frame for 5 seconds...')
            capturedFrame = pygame.image.load(filename).convert()
            capturedFrameRectangle = capturedFrame.get_rect()
            screen.blit(capturedFrame, capturedFrameRectangle)
            pygame.display.update()
            time.sleep(5)

    array = camera.capture_array()
    previewFrame = pygame.image.frombuffer(array.data, (appWidth, appHeight), 'RGB')
    screen.blit(previewFrame, (0, 0))
    pygame.display.update()

This is occurring on a Pi 4 8GB.  It occurs with the GPU split set at 64MB or 256MB.

@eat-sleep-code Hi!
I just try to copy paste your code on my:
PI3 + cam v3  (legacy cam is DISABLED, glamor is enabled, gpu mem=256m, opengl kms selected)
It's working fine!

@davidplowman
Hi David!
I have tested several code, to Preview video and Capture Image. (Code QT5 in this GitHub (app_image_capture.py), and code Pygame in this Discussion)
Video Preview an Capture Image are working fine BUT I don't UNDERSTAND the signification of the term RESOLUTION.
Native Image are 4608 x 2592 pixel
if I use 1/3 aspect ratio for preview (1536x864). Normally, I should get the same image (Vue) as at full resolution, but with less pixels: 1536x864.
But the preview actually displays a video of 1536x864 (I think) which is a cropped view of the full resolution image. But the worst thing is that, one could imagine that this cropped image is centered in relation to the full resolution image and this is not the case. there is a strong discrepancy.
My question is:
How to get the same image in preview and capture? for example:
preview in 1536x1024 and capture in 4608x2592 (same view, more pixels, more resolution) or preview in 1024x800 and capture in 2048x1600?
Preview and Capture width and height, can be configured separately, but they do not display the same view.
Thanks
Pascal

Hi, a couple of things you might need to know.

Don't increase gpumem in the config.txt file. The camera system doesn't use it and the memory will probably be wasted. Instead you probably need to increase the amount of CMA. With an 8GB Pi you could probably go all the way to 512MB. Please see section 8.3 of the manual.

Secondly, you can choose particular camera modes to give you a specific field of view.  Try adding

camera.preview_configuration.raw.size = (2304, 1296)

here, specifying the "raw" camera mode resolution  will force the use of a full field of view camera mode. (I notice you create a previewConfig but then don't use it. Actually this is correct, if you're using the preview_configuration structure then don't use create_preview_configuration.)
Finally, if you want to use the structure syntax for configuration, then don't create a separate configuration using create_still_configuration. Rather like you did with the preview mode, use
camera.switch_mode_and_capture_file('still', filename)

A couple of extra tips: you probably don't need a buffer_count of 2 if you're doing a single still capture. 1 should do (and ease pressure in the CMA memory area). It may run quicker if you capture a request as that will both save a JPEG and give you the image that was saved, something like:
request = camera.switch_mode_and_capture_request('still')
request.save('main', filename)
array = request.make_array('name')
request.release()
# Now display array for 5 seconds...

Thanks!   I remembered I had legacy camera support enabled.   After disabling legacy camera support and making the CMA adjustment, it works fine!   I will do the other adjustments saving optimizations in my final program.   Thank you both for the guidance.

@davidplowman Well, I ran into one hiccup.   I went into /boot/config.txt and found this one line #dtaoverlay=vc4-kms-v3d.   I uncommented it and added cma-512 to the end.  I rebooted and when I VNC'd into the machine the camera worked great.
However... later I realized that the LCD connected to the PI no longer worked.   I went back and commented that line out and the display works again.
I found this line in the file dtoverlay=mhs35:rotate=90 for the drivers for the display.    I tried adding ,cma=512 but it seemed to have no affect on the setup.   The display works, but I get the cannot allocate buffer error again.
Here is the full /boot/config.txt as of right this moment:
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# Automatically load overlays for detected cameras
camera_auto_detect=1

# Automatically load overlays for detected DSI displays
display_auto_detect=1

# Enable DRM VC4 V3D driver
#dtoverlay=vc4-kms-v3d,cma-512
max_framebuffers=2

# Run in 64-bit mode
arm_64bit=1

# Disable compensation for displays with overscan
disable_overscan=1

[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1

[all]

[pi4]
# Run as fast as firmware / board allows
arm_boost=1

[all]
hdmi_force_hotplug=1
dtparam=i2c_arm=on
dtparam=spi=on
enable_uart=1
dtoverlay=mhs35:rotate=90,cma=512
hdmi_group=2
hdmi_mode=1
hdmi_mode=16
hdmi_cvt 960 640 120 0 0 0
hdmi_drive=2
gpu_mem=256

I believe this is the LCD that is connected to it: http://www.lcdwiki.com/MHS-3.5inch_RPi_Display

@6by9 Could you maybe comment on the correct solution for using an LCD here? Thanks!

It's an ILI9486 SPI driven screen.
dtoverlay=mhs35 won't work on a standard Raspberry Pi OS system as they haven't bothered to request their overlay to be merged. Support should really come from your screen vendor due to this. (Things that have been accepted we will take a moderate level of support over)
It's relying on the old fbcp driver to copy pixel data from the HDMI output to a secondary framebuffer using dispmanx. DispmanX is incompatible with DRM.
Potentially you could tell pygame to render to /dev/fb1 instead of /dev/fb0, but don't ask me how (Google suggests export SDL_FBDEV=/dev/fb1, or some other options)
Otherwise you need a DRM driver for your display. There is a DRM ILI9486 driver in the kernel, but no currently not built and it doesn't have an overlay to load and configure it.
It looks like I did do some work on the conversion from https://forums.raspberrypi.com/viewtopic.php?t=345063, and I've now pushed it to https://github.com/6by9/linux/tree/rpi-5.15.y-ili9486. I didn't get it fully working with X as I had previously with an ILI9341 screen which is why I hadn't PRed it, but it's not a priority for me.

The easier option is probably to switch to an HDMI, DPI, or DSI screen. All of those can be driven directly from the standard display pipeline.
DPI screens such as the Pimoroni HyperPixel4 panels (800x480 or 720x720) do take up a fair number of the available GPIOs. They are also generally only 18bit RGB to avoid stealing all the GPIOs. However both of those (and the Hyperpixel2Round) all have overlays in the standard Pi kernel.
There are a few DSI screens around, which largely clone the Pi 7" DSI panel at 800x480. Waveshare make a number. There are a few other 3rd party DSI screens available, but do check on the driver arrangements before buying.
HDMI is the easiest option. You'll find a fair number if you search for eg "5" HDMI touchscreen" on Amazon or similar. You'll get a range of resolution options, and generally should all be compatible (do stick with using vc4-kms-v3d as the firmware doesn't handle the weird resolutions that some of these use particularly well).

Is there anything else to investigate here? If not I'll consider closing it in a short while. Thanks!

It's okay for me. Manu Thanks David. Regards.


Using import_from_git with version tag

New Issue Checklist

[+] Updated fastlane to the latest version
[+] I read the Contribution Guidelines
[+] I read docs.fastlane.tools
[+] I searched for existing GitHub issues

Issue Description
If import_from_git lead to update repository, fastlane execute chain of commands:
cd ./my-repository.git && git checkout HEAD && git reset --hard && git pull --all
Command "git pull --all" causes to an error.
Command executed
import_from_git(
url<EMAIL_ADDRESS>branch: 'HEAD',
path: 'SharedFrameworks/Fastfile',
version: ['1.3.0'],
cache_path: File.join(Dir.pwd, 'remote_fastlane')
)
Complete output when running fastlane, including the stack trace and command used
"You are not currently on a branch.
Please specify which branch you want to merge with.
See git-pull(1) for details."

I believe it is a degrade due to the https://github.com/fastlane/fastlane/pull/20958.
import_from_git(
  url<EMAIL_ADDRESS>  branch: "main",
  path: "fastlane/ios/Fastfile",
  version: "1.0.0",
  cache_path: "CACHE_PATH",
)

 -----------------------------
--- Step: import_from_git ---
-----------------------------
Eligible for caching
Cloning remote git repo...
$ git clone<EMAIL_ADDRESS>/Users/me/local_repo_dire/MyRepo/fastlane/CACHE_PATH/MyRepo.git  --no-checkout --branch main
▸ Cloning into ' /Users/me/local_repo_dire/MyRepo/fastlane/CACHE_PATH/MyRepo.git'...
$ cd /Users/me/local_repo_dire/MyRepo/fastlane/CACHE_PATH/MyRepo.git && git tag -l
Found tag 1.0.0. No git repo update needed.
$ cd  /Users/me/local_repo_dire/MyRepo/fastlane/CACHE_PATH/MyRepo.git && git describe --exact-match --tags HEAD

[!] Could not find Fastfile at path ' /Users/me/local_repo_dire/MyRepo/fastlane/CACHE_PATH/MyRepo.git/fastlane/ios/Fastfile'

This is my similar issue

I'm also struggling with this in version 2.221.1.
The issue seems to be that if the branch parameter of import_from_git is actually a git tag, you cannot run git rebase without getting the You are not currently on a branch. error. This is called here:
https://github.com/fastlane/fastlane/blob/5aa842986cbaf5298623e340241623d73901f35f/fastlane/lib/fastlane/fast_file.rb#L346
According to the documentation it is allowed to use both branches or tags with the branch parameter:
https://docs.fastlane.tools/actions/import_from_git/
My tags are not simple "1.2.3" tags but instead e.g. "fastlane/1.2.3" and the latter doesn't seem to be supported by the version parameter of import_from_git - that is why I went with the branch: "fastlane/1.2.3" approach.
Here is my import_from_git config:
import_from_git(
  url: "https://myprivaterepo",
  branch: "fastlane/1.2.3",
  path: "fastlane/Fastfile",
  cache_path: "./cache/fastlane",
)

@joshdholtz this issue is fairly old: Do you have a comment on whether we are doing something wrong of if the import_from_git is actually broken when used with cache_path (is_eligible_for_caching has to be true for ...git rebase to be called)?

Okay, my issue was actually slightly different (having issues with git-rebase and not git-pull). I've created a PR for it here https://github.com/fastlane/fastlane/pull/22121, but I don't think it will fix the issue mentioned in this OP, as you are actually using the version parameter.

@jenskuhrjorgensen, is this issue fixed by #22133?

@revolter  I don't know. I haven't tested the new release out yet as I'm also waiting for this other PR to get merged and released before this becomes really usable for me.
https://github.com/fastlane/fastlane/pull/22135


Mouse selection on tmux not being copied over to os clipboard on fedora wayland

I came here to see if anyone else was having issues with mouse selection and copying the selected text to the OS clipboard on Fedora Wayland.  It turns out that I had to add the following line to my .tmux.conf.local file to get it working.
set -s copy-command 'wl-copy'

Credit goes to the person below.
https://www.guyrutenberg.com/2021/07/02/tmux-wayland-clipboard-integration/

Closing this ticket, leaving this comment here for reference, hopefully it helps someone else.

Hello @smetroid,
I believe this issue is actually a dupe of #666.
Could you please try the gh-666 branch and undo your set -s copy-command 'wl-copy' modification please?

I merged #666, can you please try the most recent master branch while undoing your set -s copy-command 'wl-copy' modification please?

@gpakosz I commented out my update (change above) and updated my local .tmux repo with the latest code from master.  I can confirm that the latest master updates have fixed the mouse selection to OS clipboard on Fedora 39 Wayland ... no need for the change mentioned above.
Thank you for your work and this repo

Thanks @smetroid for the confirmation, much appreciated

Sry, I am new to the tmux here and very much liked its convenience.
I tried to pull the latest repo and enable my mouse mode, I could select the text but could not copy it in the tmux(I know prefix + p could do it, but it's not convenient.) or my Mac clipboard. What should I do here?

Hello @lzy37ld,
Please open a separate issue and detail your OS, tmux version, terminal emulator and what you're trying to achieve and how.
Thank you


Add editable parameter

editable parameter allows the comp to be display in read-only cases
defaulted to true

@awran5 : I was fishing for a star-rating and yours compiles with react 17 and fits my needs beside the editability, I'm pretty new to react and TS :D

This is a nice addition!
You could also pass in optional param for styling when it's not editable? Giving users a visual prompt by changing opacity or colour etc

Hello @laurentbh , @timbryandev
Thank you guys for help. I just added this feature. A new Component RatingView that works as a view or read-only component to keep it clean as possible.  Please check out v2 readme for further info.


Params permitted in ContentBlocks controller should match those sent by form

This was a goof of mine -- I changed the controller without adjusting its tests, so we missed this.
Fixes #1072

What explains this difference in Travis?
 3282.1 Ruby: 2.4.1 RAILS_VERSION=5.0.3 18 min 45 sec
 3282.2 Ruby: 2.4.1 RAILS_VERSION=5.1.1 49 min 58 sec

Is it the Rails 5.1 builds with the timeout issues, consistently? If so, I don't care that much about being on the bleeding edge.

I think it has far more to do with how busy the vm that our travis build is running on than anything we have control over.

I re-ran the 5.1 build and it completed in under 24 minutes.


bpf: dsr: fix parsing of IPv6 AUTH extension header

When walking an IPv6 packet's extension headers to find a DSR extension, only advance the nh variable after calculating the current extension header's length. For AUTH headers we otherwise fail to determine the correct header length.
We recently fixed the same issue in the generic IPv6 code with commit e76d07496f16 ("bpf: fix ipv6 extension header parsing error"), but missed that the nodeport code has its own IPv6 extension header parsing logic.
Fixes: 5fbf127e661b ("datapath: Support multiple IPv6 extensions with DSR")

/test

ci-eks hit https://github.com/cilium/cilium/issues/24774


MAHOUT-1750 - For Review.  FlinkOpABt too many operations to implement?

When (partially) Implementing FlinkOpABt  so far, It seems that there may be too many Flink map/reduce/group/etc operations to finish using this method. NOTE: this is unfinished and is not numerically correct.
Currently, when testing am getting kyro stack overflow exceptions, which as I understand are often caused by a long string of operations:
Job execution failed.
org.apache.flink.runtime.client.JobExecutionException: Job execution failed.
	at org.apache.flink.runtime.jobmanager.JobManager$$anonfun$handleMessage$1$$anonfun$applyOrElse$7.apply$mcV$sp(JobManager.scala:716)
	at org.apache.flink.runtime.jobmanager.JobManager$$anonfun$handleMessage$1$$anonfun$applyOrElse$7.apply(JobManager.scala:662)
	at org.apache.flink.runtime.jobmanager.JobManager$$anonfun$handleMessage$1$$anonfun$applyOrElse$7.apply(JobManager.scala:662)
	at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
	at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
	at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:41)
	at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:401)
	at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
	at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
	at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
	at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.StackOverflowError
	at com.esotericsoftware.kryo.util.DefaultClassResolver.writeClass(DefaultClassResolver.java:74)
	at com.esotericsoftware.kryo.Kryo.writeClass(Kryo.java:488)
	at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:57)
	at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:495)
	at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
{...}

Any comments are appreciated.

How can I reproduce the issue?

@rmetzger To reproduce, you'd have to pull this branch, and set a $MAHOUT_HOME env vaiabler to point at the base directory.  Then from  $MAHOUT_HOME run  mvn clean install -DskipTests && cd flink && mvn test -Dsuites="RLikeDrmOpsSuite".
Or you could run the RLikeDrmOpsSuite suite from IntelliJ, but make sure that you set the MAHOUT_HOME env variable in the "Run/Debug Configurations"  for the test.
Thanks!

or rather mvn clean install -DskipTests && cd flink && mvn test -Dsuites="*RLikeDrmOpsSuite"

I think the problem is the TransposedMatrixView class.
See :

And this code example
def main(args: Array[String]) {

    val ser = new KryoSerializer[TransposedMatrixView](classOf[TransposedMatrixView], new ExecutionConfig())
    val matrix = new SparseMatrix(15, 15)
    val inst = new TransposedMatrixView(matrix)
    ser.serialize(inst, new DataOutputSerializer(64))
  }

which will reproduce the error.

Thank you very much for looking into this, Robert.  It is much appreciated.  I am having trouble understanding what the issue is with this class.  So you think that it is the Enumeration being returned by the getStructure() method in TransposedMatrixView that is the problem?


Dropdown for language only with flags

This package looks great. Thank you.
it would be great to have a second drop down component for choosing languages styled the same way. Same concept - flag on left with language displayed based on currently  selected language.

I solved this. Closing issue. Thank you.

I solved this. Closing issue. Thank you.

closing


Allow 'surface' altitude to be customised

We should add an optional offset to the altitude of the target body's 'surface' level, e.g. to allow mapping of atmospheric structure above/below the nominal 1-bar 'surface'.
~Should be able to implement this with a new kwarg in Body, which then adjusts the r_eq and r_polar values accordingly in __init__. I think everything should then flow automatically from this (mapping, wireframes, coordinate conversions etc.), though obviously need to check this.~

[x] Add new context manager to adjust altitude
[x] Add context manager to:

[x] All ...2lonlat functions
[x] Wireframe plotting functions
[x] All functions called from wireframe plotting (terminator, limb etc.)
[x] LOS intercept functions
[x] Mapping functions
[x] Backplane functions?

[x] Add some detailed documentation
[ ] Add detailed tests
[x] Record altitude in FITS metadata for mapped data files
[ ] Check performance isn't awful
[ ] Check radius values (e.g. for rings) are unchanged
[x] Maybe change the default wireframe title? e.g. SATURN (699) +70km
[ ] ~Maybe make the context manager part of the public API?~ - this could be quite fragile as the context manager only changes one body's attributes, but modifies some global kernel variables, so keep private for now for simplicity. Everything should be doable by just specifying alt=... in the appropriate methods, but we can always think about making the context manager public at some later point if the need arises.

Doing this per-object looks like it'll end up quite complicated (and potentially fragile). I think it will need a whole new target creating dynamically in __init__, with different radii, and all associated kernels, IDs, variables etc. created for each new radius.
It will probably therefore be easier to implement this within each method by adding an alt parameter to any functions which convert to lonlats - i.e. this basically completes the work of #359 (which added an alt parameter for conversions from lonlats). I think the best way to do this will be to define a context manager that temporarily adjusts the kernel variables containing the radii (e.g. BODY599_RADII) when needed. For example, something like:
class AdjustAltitude:
    def __init__(self, target_id: int, alt: float):
        self.target_id = target_id
        self.alt = alt

    def __enter__(self):
        self._original_radii = spice.bodvar(self.target_id, 'RADII', 3)
        spice.pdpool(
            f'BODY{self.target_id}_RADII', [r + self.alt for r in self._original_radii]
        )

    def __exit__(self, exc_type, exc_val, exc_tb):
        spice.pdpool(f'BODY{self.target_id}_RADII', self._original_radii)

def radec2lonlat(ra: float, dec: float, *, alt: float = 0.0) -> tuple[float, float]:
    with AdjustAltitude(code, alt):
        ...

Would obviously need to test this properly to ensure the variables are changed correctly, in particular ensuring that the radius value in the main kernel pool isn't ever left with an adjusted value. Would probably want to add some short-circuit logic for the alt=0 case.

Performance tests
Testing code timings with repeats=100 and number=100

  TIME (s)  |              COMMAND
7.46801e-05 | body.lonlat2radec(lon, lat)
7.92263e-05 | body.lonlat2radec(lon, lat, alt=1)
1.74475e-04 | body.radec2lonlat(ra, dec)
2.69785e-04 | body.radec2lonlat(ra, dec, alt=1)

body.lonlat2radec(lon, lat)       |7.47e-05|████████▎
body.lonlat2radec(lon, lat, alt=1)|7.92e-05|████████▊
body.radec2lonlat(ra, dec)        |1.74e-04|███████████████████▍
body.radec2lonlat(ra, dec, alt=1) |2.70e-04|██████████████████████████████

As expected, lonlat2radec has no difference (as it is just a change in the the length of a targvec), while radec2lonlat has some performance penalty from using the context manager. The 50% difference is fine though, as this is a relatively fast function.
Testing code timings with repeats=100 and number=10

  TIME (s)  |                COMMAND
4.90622e-02 | body.limb_radec_by_illumination()
5.04772e-02 | body.limb_radec_by_illumination(alt=1)

body.limb_radec_by_illumination()     |4.91e-02|█████████████████████████▎
body.limb_radec_by_illumination(alt=1)|5.05e-02|██████████████████████████

Testing code timings with repeats=10 and number=10

  TIME (s)  |                     COMMAND
9.30006e-02 | cc(); body.get_backplane_img("emission")
8.53116e-02 | cc(); body.get_backplane_img("emission", alt=1)

cc(); body.get_backplane_img("emission", alt=1)|8.53e-02|███████████████▋
cc(); body.get_backplane_img("emission")       |9.30e-02|█████████████████

# cc = lambda: body._clear_cache()

Once you apply an alt adjustment to a bigger function, the O(1) altitude adjustment overhead becomes negligible compared to the O(n) transformations :)


Trying to add a custom preprocessor doesn't appear to work

I'm trying to implement google structured data
However, upon trying to stop the plugin from processing these blocks of JSON, I think I've discovered that a custom compiler is not loaded correctly:
My configuration is as follows:
{
  transformers: {
    scss: {
      includePaths: [
        'node_modules',
        'src'
      ]
    },
    structuredData ({ content }) {
      return { code: content, map: '' }
    }
  },
  aliases: [
    ['application/ld+json', 'structuredData']
  ]
}

However, upon booting the app, I think it is trying to resolve the compiler incorrectly:
Error: Module build failed (from ./node_modules/svelte-loader/index.js):
Error: [svelte-preprocess] Error transforming 'structuredData'. Message:
Cannot find module './transformers/structuredData.js'
    at Object.exports.throwError.msg [as throwError] (/home/ant/Projects/beyonk-sapper/node_modules/svelte-preprocess/src/utils.js:25:9)

I expect it to use the function specified in transformers rather than try to load it from disk.

Fixed on v2.4.1 🎉


last_error backtrace showing jobs being run from different release / version of codebase

As the title says, some of my jobs are throwing errors, and the backtrace last_error indicates that the job is being run from a different version of the codebase.
For example, while I was testing my failure hook, I had one of my jobs raise a "Test Exception" and set the max_attempts = 3. Since then I have removed that code, yet the error still gets thrown, and from the backtrace I see that the code that's getting run is from release 87 (see below) where the current version is 91 (code resides in /var/www/staging/releases/87/app/mailers...). Also, the max_attempts value of 3 may or may not be obeyed.
Test Exception
/var/www/staging/releases/87/app/mailers/applog_mailer.rb:9:in `send_open_applications_log'
....

Furthermore, I'll see other jobs (from same deployment version) have a last_error backtrace from different release , not just 87.
I'm using the mina gem to deploy.

You deploy script is failing, leaving workers running old code. I am afraid there is nothing we can do about that.

[SOLUTION]
If it's a problem with the deploy, I should be able get it to work correctly by manually stopping and restarting the delayed_job daemon, right? I've done this and the problem persists. The jobs throw errors from different versions of the code for different attempts of the same job. I.e. one job will get run on release 87 codebase, fail, then try to run again on release 89 codebase.
It's as if there are still different daemons running that are not getting shut off from the deploy. RAILS_ENV=production bin/delayed_job status says there are no jobs running, but this yields different results in different release directories.
When running ps -eLf | grep \delayed_job I see there are several daemons running.

Killing the other instances of the delayed_job daemon did indeed solve the problem. Each instance of the daemon preserves its configs and apparently codebase to execute.


Deadly Invis bug?

So I've tried creating a modpack and while testing it i noticed there were invisible mobs that i couldn't hit or see but could hear them, after looking through my mods i found that apotheosis was the only capable of generating mobs so i figured id see what i could do to fix this issue, i do apologize if it something super simple i am very new to mods and what they can and cant do

This request does not have enough information to be addressed (mc ver, apoth ver, forge ver)


Hitting JSON endpoint with valid "style" param causes timeout and 5xx error

I was trying out using the style parameter:
https://img.shields.io/pypi/format/pycparser.svg?style=plastic
Which worked fine, as expected.
I then wanted to try the other output formats. I switched the URL to point at the JSON endpoint:
https://imgshieldsio/pypi/format/pycparser.json?style=plastic (replaced img.shields.io with imgshieldsio)
Which causes various 5xx errors. The first time I tried, I got a 520, and the second time, I got Cloudflare's 524:

This seems to be a result of the extra ?style=plastic parameter, as the error disappears when I remove it.
Interestingly, this timeout doesn't happen for invalid params (?abc=123), nor invalid styles (?style=abc)
You may want to configure the server to ignore the style parameter for the json format.
I'm letting you know since I was worried that someone might be able to DDOS shields.io by sending requests that use more than their fair share of server resources.

@movermeyer Thank you for reporting this. You're right and this request causes server process crash. This is a known bug https://github.com/badges/shields/issues/1348 and was fixed in https://github.com/badges/shields/pull/1429. We have to wait for deployment.
I've changed domain name from img.shields.io to imgshieldsio in URL you provided, just in case.

We're tracking deploy status in #1538 😄


Won't load extensions after 1.86.2

Does this issue occur when all extensions are disabled?: NA

VS Code Version:
OS Version:

Steps to Reproduce:

Open VSCode
Extensions don't load.

Version: 1.86.2 (user setup)
Commit: 903b1e9d8990623e3d7da1df3d33db3e42d80eda
Date: 2024-02-13T19:40:56.878Z
Electron: 27.2.3
ElectronBuildId: 26908389
Chromium: 118.0.5993.159
Node.js: 18.17.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.22631

sigh.. i restarted my computer and it works now. i think maybe the update left a copy of vscode.exe open.


Set-PnPTraceLog does not work with either -LogFile or -WriteToConsole

Reporting an Issue or Missing Feature
No trace information generated when backing up site template using Get-SiteTemplate in release versions PnP.PowerShell 1.4.0/1.5.0, but works in nightly '1.4.21-nightly' and '1.5.4-nightly'.
Trace generated (this is the only version of PnP module on the machine)
Install-Module -Name PnP.PowerShell -RequiredVersion 1.4.21-nightly -AllowPrerelease
No trace generated (this is the only version of PnP module on the machine)
Install-Module -Name PnP.PowerShell -RequiredVersion 1.5.0
I tried this on Windows (powershell.exe and pwsh.exe) and Ubuntu, it did not generate any logs.
According to discussions, it should generate log. Is the build flags different for nightly and release?
Expected behavior
Generate trace information in log file or console.
Actual behavior
No log generated to file or console. When -LogFile is specified, it creates a 0 byte file, but no content.
Steps to reproduce behavior
<#
Replace values marked as TODO
#>
$AppGuid = "TODO"
$AppSecret = "TODO"
$SiteUrl = "https://TODO.sharepoint.com/sites/TODO"
Import-Module PnP.PowerShell
<#
Set-PnPTraceLog -On -Level:Debug -WriteToConsole
#>
Set-PnPTraceLog -On -Level:Debug -LogFile 'c:\temp\pnptrace.log'
Write-Host "Connecting"
$PnPSiteConn = Connect-PnpOnline -url $SiteUrl -ClientId $AppGuid -ClientSecret $AppSecret -ReturnConnection -ea Stop
$Options =@{
Connection = $PnPSiteConn
Out = 'c:\temp\sitetemplate.pnp'
ErrorAction = 'Stop'
Verbose = $True
Force = $True
IncludeAllClientSidePages =$True
}
Write-Host "Getting site template"
$Info = Get-PnPSiteTemplate @Options
Write-Host "All Done"
What is the version of the Cmdlet module you are running?
1.5.0                PnP.PowerShell                      PSGallery            Microsoft 365 Patterns and Practices PowerShell Cmdlets
Which operating system/environment are you running PnP PowerShell on?

[x ] Windows
[ x] Linux
[ ] MacOS
[ ] Azure Cloud Shell
[ ] Azure Functions
[ ] Other : please specify

Finding same with 1.5.0

Also having this issue with both -WriteToConsole and -Logfile.
The tracelog file is created, but no output is being written.
Using version 1.5

Is there any progress with this problem? I have the same problem and cannot use the library because of this.

Have added a fix for this. Can you please try it after tomorrow's nightly ? Do reopen this issue if it exists again.
Thanks for reporting 👍

When will this be fixed? Tracelog Debugging not working yet for PnP Provisioning Engine...Error-handling impossible...

I am struggling with the same problem. At the moment i couldnt get any informations why a template fails while creation with Get-PnPSiteTemplate or why a template fails with Invoke-PnPSiteTemplate.
PS-Version: 7.1.3
PnP-Version: 1.6.0

@joshua-probst , @schneika - I just checked this in both PS 5 and PS 7 with version 1.6.45 nightly and it works for both these commands
Can you please check at your end ?
If you have old version of PnP installed, can you please delete them first and then try ?

@gautamdsheth Can you please try this with release version (not nightly). I am seeing trace log in 1.6.45-nightly, but not in release version 1.6.0. Is there any difference in release version vs nightly build flags or something? Thanks

I have the same issue. Tracelog is empty.
Checked PS version 5 and 7. Installed PnP version 1.6.0

@sathya-bhat, @ciato - Please update to 1.7.0 released today.

No luck. Still no logs on my side. Tried PS 5 and 7.

@veronicageek In release version (1.7.0, 1.6.0), it does not emit trace log.
However in nightly builds (1.6.45-nightly), it emit trace logs. Strange.

@gautamdsheth - Do you know what would be the difference between 1.6.45-nightly and 1.7.0. that could cause the problem?

Same here. :( It doesn't work - PnP 1.7.0 with both PS 5 and 7


fix: adding the pg_lock for the token

Description
This PR adds an additional pg_advisory_xact_lock based on the device token to prevent data race when concurrent client creations occur with the same token id and different client IDs, because at the moment only the client ID is used for the lock. In such cases, we have an unique constraint violation error for the device token because we have a parallel insert.
The pg_advisory_xact_locks are released at the end of the transaction.
Resolves #292
How Has This Been Tested?
Current functional database tests.
Due Diligence

[ ] Breaking change
[ ] Requires a documentation update
[ ] Requires a e2e/integration test update

LGMT. Can we do both of these in the same statement to save RTT?

Good catch! Yes, we can do SELECT pg_lock.., pg_lock;. Tested it in the local Postgres, and it works as expected.


Gopass: Add Directory Navigation

Description
Added a new functionality to allow users to navigate between the password store's directory tree.
Screencast

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

@5mutawa This is great!

I just thought of the idea to fetch and display favicons. I will leave it for another pull request with other UI changes.


Dataset

Hello, do you have the data of this paper? I'm doing a course assignment. I want to borrow the data of this paper to complete my course assignment. If you have this data and share it with me, I will be very grateful.

https://www.kaggle.com/datasets/siddharthkumar25/malicious-and-benign-urls


glfw-wayland-minecraft: update to glfw 3.4

Description of changes

The set-cursor patch is taken from: https://github.com/Admicos/minecraft-wayland/pull/56
And other changes including fractional scaling is already upstreamed in 3.4 thus not needed anymore. I override the patch on the original glfw to de-duplicate the packaging code.
I tested with prismlauncher.override { withWaylandGLFW = true; }, Minecraft 1.20.2, Java 17, on KDE 6 wayland session with a 125% scaled display. The game is indeed a native wayland window (checked in KWin debug console), and the cursor setting on opening game GUI (https://github.com/NixOS/nixpkgs/pull/293296#issuecomment-2002562523) is working correctly instead of crashing like the unpatched glfw.
The set-cursor patch itself seems quite reasonable and probably is suitable for upstreaming? CC @DanShaders. Also I'm not sure if it's a good idea to patch unconditionally or conditionally on the glfw package, rather than a separated glfw-wayland-minecraft.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[x] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

The set-cursor patch itself seems quite reasonable and probably is suitable for upstreaming?

I mean, it felt like a horrible hack when I was writing it, but you can try upstreaming it, I wouldn't mind

Also I'm not sure if it's a good idea to patch unconditionally or conditionally on the glfw package, rather than a separated glfw-wayland-minecraft

+1. with glfw-wayland being dropped in #293296 and prismlauncher being the only real consumer of this, it'd make perfect sense imo

using this in the standard glfw package would also allow for us to drop the withWaylandGLFW override from prismlauncher entirely, making wayland support a default

Pros:

This is not a breaking change and it makes more fail cases pass. Though the implementation is kinda not ideal, it's a best effort one.
Makes the wayland backend usable by default, which benefits all downstream packages other than Minecraft.
No user overriding or recompilation is required.

Cons:

The author of the patch @DanShaders thinks the patch is too hacky. I'm not sure if it could be upstreamed or the functionality would be "correctly" implemented in the future. I'm not an expert on GLFW and/or wayland.
We need to maintain the patch in-tree in case of future GLFW updates, because they need to be updated together. I don't think I'm competent for it. At least we need another maintainer for the package and/or patch in nixpkgs.

Use the patch in the main package but disabled by default is another approach, but it will requires end-users to override and recompile GLFW (though, it does not take too long).

This is conflict with https://github.com/NixOS/nixpkgs/pull/306827, which drops glfw-wayland-minecraft

Could you add me as a maintainer to the glfw (or common) derivation? I wasn't pinged by ofborg for this PR :(

Closing in favor of #310073


Another attempt at filter to support 1,2,3 syntax

Replaces https://github.com/alex/django-filter/pull/259
@carltongibson How does this look?

Looks good. Away from the computer so need to check it later.
Two questions:

Are the field and filter classes just conveniences? Could we get away without them using the widget keyword arg? Do they need docs?
Why are we checking for MultiValueDict and using getlist in value_from_datadict?  Is the idea not that the widget allows passing a list through a single value, rather than repeating the parameter name? Avoiding this would eliminate the need to convert back to a string later; why's it there?

Will try get some tests working using the extras.widget stuff.

It was just convenience in case someone does a request with multiple query parameters, but I guess it would need smarter logic to actually support it properly, in the expected way.

Hi @carltongibson

I'm battling to use the widget stuff. It's not using the widget when using the filterset. I think it's the same issue I had last time. I might be doing something wrong.

Will commit code for dropping the MultiValueDict supprot.

I'd be inclined to keep it as simple as possible, at least to begin.

I'm battling to use the widget stuff. It's not using the widget when using the filterset. I think it's the same issue I had last time. I might be doing something wrong.

Paste the code you're using. I'm thinking if you declare the filter to use the new CSVFilter it should work...

(Will review this fully after Christmas now)

Thanks for the effort!

I'll give it a couple more tries, and then paste my code. Thanks for the review, @carltongibson

:+1: would be great to have this


Consider updating typography to newest spec

Bug, feature request, or proposal:
Feature request?
What is the expected behavior?
Compliance with newest spec.
What is the current behavior?
Angular Material typography is compliant with old version of the typography spec.
What are the steps to reproduce?

Open https://stackblitz.com/edit/angular-material2-issue-l1jl64
On new tab open https://material.io/design/typography/the-type-system.html#type-scale
Compare and see lots of differences

What is the use-case or motivation for changing an existing behavior?
Compliance with newest spec.
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
all
Is there anything else we should know?

They haven't started implementing the new spec yet

We're still running against the previous version of the Material design spec. We'll start implementing the new version soon.

source

Thx for the info


MNMG XGBoost from SageMaker

Replicate this notebook https://github.com/rapidsai/cloud-ml-examples/blob/main/gke-dask/notebooks/xgboost-gpu-hpo-job-parallel-k8s.ipynb but driven from Sagemaker

https://github.com/rapidsai/cloud-ml-examples/blob/main/k8s-dask/notebooks/xgboost-gpu-hpo-job-parallel-k8s.ipynb


Getting ERROR: Unable to create event: 422 from k8s_event

We try to call k8s_event from our Ansible Operator, using v0.5.0 operator-sdk-ansible-util.
- name: Create Kubernetes Event
  k8s_event:
    state: present
    name: test-k8s-event
    namespace: dtest2
    message: "mycluster getting created Event created"
    reason: Testing event creation
    reportingComponent: Reporting components
    source:
      component: Metering components
    appendTimestamp: true
    type: Normal
    involvedObject:
      apiVersion: v2
      kind: MYCluster
      name: "nfdm"
      namespace: dtest2

and receive the following error
TASK [Create Kubernetes Event] ********************************
The full traceback is:
  File "/tmp/ansible_k8s_event_payload_emz5w5mf/ansible_k8s_event_payload.zip/ansible_collections/operator_sdk/util/plugins/modules/k8s_event.py", line 283, in execute_module
  File "/usr/local/lib/python3.8/site-packages/kubernetes/dynamic/client.py", line 119, in create
    return self.request('post', path, body=body, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/kubernetes/dynamic/client.py", line 57, in inner
    raise api_exception(e)
fatal: [localhost]: FAILED! => {
    "changed": false,
    "invocation": {
        "module_args": {
            "api_key": null,
            "appendTimestamp": true,
            "ca_cert": null,
            "client_cert": null,
            "client_key": null,
            "context": null,
            "host": null,
            "involvedObject": {
                "apiVersion": "v2",
                "kind": "MYCluster",
                "name": "nfdm",
                "namespace": "dtest2"
            },
            "kubeconfig": null,
            "merge_type": null,
            "message": "mycluster getting created Event created",
            "name": "test-k8s-event.2023-07-19 05:53:16.108007+00:00",
            "namespace": "dtest2",
            "password": null,
            "persist_config": null,
            "proxy": null,
            "reason": "Testing event creation",
            "reportingComponent": "Reporting components",
            "source": {
                "component": "Metering components"
            },
            "state": "present",
            "type": "Normal",
            "username": null,
            "validate_certs": null
        }
    },
    "msg": "Unable to create event: 422\nReason: Unprocessable Entity\nHTTP response headers: HTTPHeaderDict({'Audit-Id': '6f22fb6d-242a-4884-b484-e119547c2d83', 'Cache-Control': 'no-cache, private', 'Content-Length': '484', 'Content-Type': 'application/json', 'Date': 'Wed, 19 Jul 2023 05:53:16 GMT', 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains; preload', 'X-Kubernetes-Pf-Flowschema-Uid': 'c2be4a14-8cda-4aab-8a0e-4f6decf987a1', 'X-Kubernetes-Pf-Prioritylevel-Uid': '51d524af-e0da-4476-add1-66e61405e5e0'})\nHTTP response body: b'{\"kind\":\"Status\",\"apiVersion\":\"v1\",\"metadata\":{},\"status\":\"Failure\",\"message\":\"Event \\\\\"test-k8s-event.2023-07-19 05:53:16.108007+00:00\\\\\" is invalid: involvedObject.namespace: Invalid value: \\\\\"\\\\\": does not match event.namespace\",\"reason\":\"Invalid\",\"details\":{\"name\":\"test-k8s-event.2023-07-19 05:53:16.108007+00:00\",\"kind\":\"Event\",\"causes\":[{\"reason\":\"FieldValueInvalid\",\"message\":\"Invalid value: \\\\\"\\\\\": does not match event.namespace\",\"field\":\"involvedObject.namespace\"}]},\"code\":422}\\n'\nOriginal traceback: \n  File \"/usr/local/lib/python3.8/site-packages/kubernetes/dynamic/client.py\", line 55, in inner\n    resp = func(self, *args, **kwargs)\n\n  File \"/usr/local/lib/python3.8/site-packages/kubernetes/dynamic/client.py\", line 270, in request\n    api_response = self.client.call_api(\n\n  File \"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\", line 348, in call_api\n    return self.__call_api(resource_path, method,\n\n  File \"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\", line 180, in __call_api\n    response_data = self.request(\n\n  File \"/usr/local/lib/python3.8/site-packages/kubernetes/client/api_client.py\", line 391, in request\n    return self.rest_client.POST(url,\n\n  File \"/usr/local/lib/python3.8/site-packages/kubernetes/client/rest.py\", line 276, in POST\n    return self.request(\"POST\", url,\n\n  File \"/usr/local/lib/python3.8/site-packages/kubernetes/client/rest.py\", line 235, in request\n    raise ApiException(http_resp=r)\n"
}

Hi just had the same issue, just remove appendTimestamp: true.
The implementation of appendTimestamp [source] is weird and makes an early return in the function, it doesn't include the involved_obj.


Deadlock on main thread when loading dependencies and @Shared values

Description
I noticed my app getting into deadlock on the main thread when using @Shared. I think this is probably the same underlying problem and root cause as my other issue (https://github.com/pointfreeco/swift-composable-architecture/issues/3311), but this one I managed to make a repro for.

Checklist

[ ] I have determined whether this bug is also reproducible in a vanilla SwiftUI project.
[ ] If possible, I've reproduced the issue using the main branch of this package.
[X] This issue hasn't been addressed in an existing GitHub issue or discussion.

Expected behavior
No response
Actual behavior
No response
Steps to reproduce
Here's a repro similar to my app that I was able to finally reduce into something simpler, but still approximating what happens in my app. There's a lot of things at play and changing some subtle things will cause it not to deadlock, but I was able to reliably deadlock every time with this. Just note if you change something and it works, you may need to delete the app and do a fresh install to trigger it again. I didn't have time at the moment to dig further, but I suspect at least some part of it is due to UserDefaults initializing the first time?
Run the app in a simulator, and you'll see Database init() start log and nothing else and the app will be locked. Hit the pause execution  button and you can see where its locked. I think as @mbrandonw suggested in the other issue that changing that mainActorNow to DispatchQueue.main.async would fix it and I'll try that later when I have some more time.
import ComposableArchitecture
import SwiftUI

@main
struct TCATestApp: App {
    var body: some Scene {
        WindowGroup {
            DeadlockView(store: Store(initialState: Deadlock.State(), reducer: {
                Deadlock()
            }))
        }
    }
}

struct DeadlockView: View {
    @Bindable var store: StoreOf<Deadlock>
    @Environment(\.scenePhase) private var scenePhase

    var body: some View {
        NavigationSplitView {
            List(selection: $store.selection) {
                NavigationLink(value: "child") {
                    Text("Go To Child")
                }
            }
            .navigationTitle("Home")
            .listStyle(.sidebar)
            .task {
                await store.send(.task).finish()
            }
        } detail: {
            NavigationStack {
                switch store.destination {
                case .child:
                    if let store = store.scope(state: \.destination?.child, action: \.destination.child) {
                        ChildView(store: store)
                    }
                default:
                    EmptyView()
                }
            }
        }
    }
}

@Reducer
struct Deadlock {
    @Reducer(state: .equatable)
    enum Destination {
        case child(Child)
    }

    @ObservableState
    struct State: Equatable {
        var selection: String? = "child"
        @Presents var destination: Destination.State? = .child(Child.State())
        @Shared(.appStorage("test")) var test: Bool = false
    }

    enum Action: BindableAction {
        case task
        case destination(PresentationAction<Destination.Action>)
        case binding(BindingAction<State>)
    }

    @Dependency(\.database) var database

    var body: some ReducerOf<Self> {
        BindingReducer()
        Reduce { state, action in
            switch action {
            case .task:
                return .merge(
                    .run { _ in
                        print("Querying database…")
                        await database.query()
                        print("… query complete")
                    }.cancellable(id: CancelId.one, cancelInFlight: true)
                )

            case .destination, .binding:
                return .none
            }
        }
        .ifLet(\.$destination, action: \.destination)
    }

    private enum CancelId {
        case one
    }
}

@Reducer
struct Child {
    @ObservableState
    struct State: Equatable {
        @Shared(.appStorage("count")) var count: Int = 0
    }

    enum Action {
        case incrementButtonTapped
    }

    var body: some ReducerOf<Self> {
        Reduce { state, action in
            switch action {
            case .incrementButtonTapped:
                state.count += 1
                return .none
            }
        }
    }
}

struct ChildView: View {
    let store: StoreOf<Child>

    var body: some View {
        VStack {
            Text(store.count.formatted())
                .navigationTitle("Child")
            Button("Increment") {
                store.send(.incrementButtonTapped)
            }
            .buttonStyle(.borderedProminent)
        }
    }
}

struct Database: DependencyKey {
    init() {
        print("Database init() start")
        UserDefaults.standard.set("foo-bar", forKey: "test-key")
        // Will never be called, will deadlock on the UserDefaults notification
        print("Database init() end")
    }

    func query() async {}

    static var liveValue: Database = Database()
}

extension DependencyValues {
    var database: Database {
        get { self[Database.self] }
        set { self[Database.self] = newValue }
    }
}

The Composable Architecture version information
1.14.0
Destination operating system
iOS 17.5
Xcode version information
Xcode 15.4
Swift Compiler version information
No response

Good catch, and thanks for the simple repo! We got a fix with a test in #3356.


Fix clang format in master

Surprisingly, @michael-smirnov's array merge was not checked by clang-format (it was added later). Here is the fix.

/intelci: run