Warn when using shouldBe between different types

Is this ready for review ?

Conceptually, sure. I think I'd like to build and run the plugin with the changes for a while before claiming it's good to go for real tho. Just haven't gotten around to it yet.. 🙈

Ok makes sense.
On Mon, 22 Nov 2021 at 15:56, Emil Kantis @.***> wrote:

Conceptually, sure. I think I'd like to build and run the plugin with the
changes for a while before claiming it's good to go for real tho. Just
haven't gotten around to it yet.. 🙈
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kotest/kotest-intellij-plugin/pull/146#issuecomment-975952906,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVSGTYNQBKODC27GXLXFLUNK37DANCNFSM5E6MK3ZA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Managed to install it and played around with it for a bit.. Seems like it can be really useful to me 😄
I also tried to make sure it didn't break performance. I opened some of the heavier files in the kotest and it didn't feel unusually slow to me. Tested with TagsTest and StringMatchersTest, since they to p usage of shouldBe, and DoubleMatchersTest since it's just big in general..

Is it ready for review and test ?
On Wed, 24 Nov 2021, 16:38 Emil Kantis, @.***> wrote:

Managed to install it and played around with it for a bit.. Seems like it
can be really useful to me 😄
I also tried to make sure it didn't break performance. I opened some of
the heavier files in the kotest and it didn't feel unusually slow to me.
Tested with TagsTest and StringMatchersTest, since they to p usage of
shouldBe, and DoubleMatchersTest since it's just big in general..
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kotest/kotest-intellij-plugin/pull/146#issuecomment-978373170,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVSGU3QIEOY2X6N5LR3RLUNVSPHANCNFSM5E6MK3ZA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

I'm sorry, I discovered a couple of problems last night. I ran the inspection on Kotest and Hoplite sources and learnt that shouldBe supports matching T with Matcher<T>. Also, any pair of types that have equals implementations would probably give false alarms. Would be easy to not give any warnings when either type is Matcher, but not sure how to deal with the 2nd case..

What about keeping it simple.
If RHS is Matcher, don't run inspection
If RHS is a primitive or String, then the types must match.
Otherwise, LHS <:< RHS or RHS <:< LHS where <:< means subtype or type

Thanks for the input, makes sense..
Fixed the Matcher handling (by simply checking if RHS is a type named *Matcher*)
Inspection currently passes for primitives which I think kotest handles comparison of gracefully (Int and Long, Double and Float, along with their respective primitive arrays). Should I ditch that?

I don't think ints and longs compare in kotest.
On Wed, 1 Dec 2021 at 18:40, Emil Kantis @.***> wrote:

Thanks for the input, makes sense..
Fixed the Matcher handling (by simply checking if RHS is a type named
Matcher)
Inspection currently passes for primitives which I think kotest handles
comparison of gracefully (Int and Long, Double and Float, along with their
respective primitive arrays). Should I ditch that?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kotest/kotest-intellij-plugin/pull/146#issuecomment-984186589,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVSGR5D7T7S45RH2ZPSNTUO26BPANCNFSM5E6MK3ZA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

@sksamuel this test passes for me, so it feels like they do? Am I missing something?
      test("dummy") {
         val i: Int = 6
         i shouldBe 6L
      }

I thought it failed when I tried.
What about 6L shouldBe 2 ?
On Wed, 1 Dec 2021 at 22:48, Emil Kantis @.***> wrote:

@sksamuel https://github.com/sksamuel this test passes for me, so it
feels like they do? Am I missing something?
  test("dummy") {
     val i: Int = 6
     i shouldBe 6L
  }

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kotest/kotest-intellij-plugin/pull/146#issuecomment-984289767,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVSGUPAFKBXHQGWBR77WTUO33B5ANCNFSM5E6MK3ZA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

      test("dummy 1") {
         6L shouldBe 2
      }

-->
expected:<2L> but was:<6L>
Expected :2L
Actual   :6L

      test("dummy 2") {
         val y: Int = 2
         6L shouldBe y
      }
-->
expected:<2> but was:<6L>
Expected :2
Actual   :6L

There you go.
On Wed, 1 Dec 2021 at 23:18, Emil Kantis @.***> wrote:

  test("dummy 1") {
     6L shouldBe 2
  }

-->
expected:<2L> but was:<6L>
Expected :2L
Actual   :6L
  test("dummy 2") {
     val y: Int = 2
     6L shouldBe y
  }

-->
expected:<2> but was:<6L>
Expected :2
Actual   :6L
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kotest/kotest-intellij-plugin/pull/146#issuecomment-984301814,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVSGUOYLA3ZXFKBZ7O6H3UO36RHANCNFSM5E6MK3ZA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

I dont get it.. It's failing when we have different values, but passing when the same number? Feels like it should be considered fine then to compare ints and longs?

Oh wait, it's always going to fail on different values LOL.
Yeah you're probably right,
What about 6L shouldBe 6 ?
On Wed, 1 Dec 2021 at 23:25, Emil Kantis @.***> wrote:

I dont get it.. It's failing when we have different values, but passing
when the same number? Feels like it should be considered fine then to
compare ints and longs?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kotest/kotest-intellij-plugin/pull/146#issuecomment-984304860,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVSGS3JPOGCQAHGTYAEITUO37LFANCNFSM5E6MK3ZA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

      test("dummy 1") {
         6L shouldBe 6
      } --> pass

      test("dummy 2") {
         val y: Int = 6
         6L shouldBe y
      } --> pass

Ok then I guess it's fine to say int/long compare.
On Wed, 1 Dec 2021 at 23:32, Emil Kantis @.***> wrote:

  test("dummy 1") {
     6L shouldBe 6
  } --> pass

  test("dummy 2") {
     val y: Int = 6
     6L shouldBe y
  } --> pass

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kotest/kotest-intellij-plugin/pull/146#issuecomment-984307674,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVSGS7XNGDACLGW24AHIDUO4AG3ANCNFSM5E6MK3ZA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Awesome :) do you have any hunch as to why the tests fail on just IC-212? 🤔

Nope, perhaps it's just not setup right, that was a recent addition to the
build matrix.
On Thu, 2 Dec 2021 at 02:41, Emil Kantis @.***> wrote:

Awesome :) do you have any hunch as to why the tests fail on just IC-212?
🤔
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kotest/kotest-intellij-plugin/pull/146#issuecomment-984410513,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFVSGT3SE3I4RORXHQ5VPDUO4WKRANCNFSM5E6MK3ZA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Nope, perhaps it's just not setup right, that was a recent addition to the build matrix.

Doh, so I just had to update those plugin.xml files 😂 sorry. Should be ok now.

@sksamuel thx for re-opening.
I haven't gotten much feedback on this one so I'm still unsure if it has acceptable performance impact. I sometimes felt IntelliJ got a bit sluggish in large files, but not sure if it was due to these changes or just IntelliJ struggling. :)


A project launched using the Vue3 template, I don't know why it keeps repeatedly rendering the DOM

Version

Phaser Version: 3.80.1

Operating system: 3.80.1

Browser:3.80.1

Description

Example Test Code

Additional Information

A project launched using the Vue3 template, I don't know why it keeps repeatedly rendering the DOM
App.vue

main.js
const config = {
type: Phaser.AUTO,
width: window.innerWidth * 4,
height: window.innerHeight * 4,
parent: 'game-container',
backgroundColor: '#fcc1db',
scale: {
mode: Phaser.Scale.FIT,
},
scene: [
Game
]
};
const StartGame = (parent) => {
return new Phaser.Game({ ...config, parent });
}
PhaserGame.vue

Game.js
    this.load.on('progress', value => {
        EventBus.emit('current-scene-progress', value);
    });

    this.load.on('complete', () => {
        // progress.destroy();
    });

    this.load.image('people', 'images/people.png');

    BoardsArr.forEach((items) => {
        this.load.image(`lattice${items.id}`, `images/${items.id}.png`);
    })

    this.load.image(`bg`, 'images/bg.jpg');

    this.load.image(`logo`, 'images/logo.png');

    this.load.image(`title`, 'images/title.png');

    this.load.image(`bigshots`, 'images/bigshots.png');

    this.load.image(`myprize`, 'images/myprize.png');

    this.load.image(`gamerules`, 'images/gamerules.png');

    this.load.image(`excludingprops`, 'images/excludingprops.png');

    this.load.image(`opportunities`, 'images/opportunities.png');

    this.load.image(`luckydraws`, 'images/luckydraws.png');

    this.load.image(`bg-intestine`, 'images/intestine.png');
    EventBus.emit('current-scene-ready', this);

    Opening it on WeChat on your phone will keep loading repeatedly

It was ultimately discovered that the width: window. innerWidth * 4 was caused by an excessively large value thanks!
const config = {
type: Phaser.AUTO,
width: window.innerWidth * 4,
height: window.innerHeight * 4,
parent: 'game-container',
backgroundColor: '#fcc1db',
scale: {
mode: Phaser.Scale.FIT,
},
scene: [
Game
]
};


Impossible to leave the coroner's room

Describe the bug
Impossible to leave the coroner's room
To Reproduce
In Part 2: After talking to the Sheriff, Ray and Reyes are going to talk to the coroner, after talking to him, They can't leave the room, this message appears in the log:
[2020-06-18 02: 56: 59.156] [log] [trace] can't find verbCantReach function
The same thing happens in Part 1, when Boris tries to talk to Willie. The same message appears in the log. The rest of the verbs do nothing when used in Willie.
Expected behavior
To be able to leave the room
Screenshots
None
Desktop (please complete the following information):

OS: Windows x64
Version 10

Additional context
Tested on commit: (https://github.com/scemino/engge/commit/dc22e2307408db0dc3d27c9c6432be41ceab9555)

Yeah, sorry about that.
I'm working on it, I try more generally to fix verbs bugs:

Boris talk to Willie
Boris use the rock on lamp
Reyes talk to Sandy
Ransome should be able to push the mime
Reyes talk to Ray
Reyes give the Polaroid film to ray
Ransome give the theremin record to someone else
And more


Replays do not show type icons for Reflect Type

Here are a couple replays of test battles, in which type-changing mechanics are used:
https://replay.pokemonshowdown.com/gen7doublesou-583055003
http://replay.pokemonshowdown.com/gen7doublesuu-616500730
In battle 1, Shuckle becomes Ice type at turn 1, and the replay shows this correctly. Smeargle becomes Ice type at turn 6 (also shown correctly). Noivern gets Grass added to its types at turn 9 (shown correctly), just ahead of Smeargle taking the whole Flying/Dragon/Grass shebang for its own types, but in this instance the replay only puts the "+Grass" part in its status bar.
In battle 2, the operations are done the other way around: Smeargle acquires just two types on turn 24, which are not shown in the replay at all, and the third type is added on turn 26, which is shown correctly.
This is only a bug with respect to the replay; the types were shown perfectly well while the battle was playing out originally. It's probably a rather low priority, then...but it's something I was at least in position to notice, due to the unusual nature of these test battles.

Pokémon types are not loaded at all in replays for faster load times, which is what creates this sort of issues.
However, that predates most type change mechanics as well as the tooltips, so maybe we can consider fixing this? Alternatively, Reflect Type can be ignored if pokemon.types doesn't exist (i.e. in a replay).

There are two reasons why this happen.
Pokémon types are not loaded at all in replays for faster load times, so the replay viewer doesn't know that Noivern is Dragon nor that Stunfisk is Ground/Electric. However, that predates most type change mechanics as well as the type hints, so maybe we can reconsider this.
As far as the replay viewer is concerned, the Reflect Type target could actually be a Zoroark in disguise, so it wouldn't be certain to show the Smeargle as Dragon/Grass, when it could actually be Dark/Grass. For this, we would need some sort of GUI indicator specific to Reflect Type.

Reflect Type's type icon does show up, even in a replay, as long as it's being used on a Pokemon whose type has already been overwritten by some other effect in the battle previously (as happens in battle 1 turn 6).
I can confirm that in the actual game, if you Reflect Type an opponent's Zoroark while their illusion is still intact, clicking for your Pokemon's summary screen does correctly show that you are Dark type (even as the opponent's summary shows their disguised form and type), and of course using your own Zoroark against a wild Ditto that's transformed into your Reflect Type user shows them with the correct Dark typing as well. Replays should therefore be able to look up exactly what type combination is being granted by each instance of Reflect Type, with no worries of leaking undue information to either side.

@SadisticMystic can you confirm which generations show that in the summary screens?

The summary screen is something that was only introduced in 7, so a Reflect Type under 5 or 6 rules wouldn't give the user any feedback to let you know you're facing an illusion or the types you're actually receiving.

Even if both players know that a Pokémon is or isn't Zoroark, we might not want to publish that sort of information in replays, since it could be a privacy violation regarding Zoroark usage.

Just to clarify, you guys are referring to two different things. The summary screen Zarel is talking about is what comes up when clicking "Summary" on this screen:
, and tells you your original stats, types, moves, and Ability. This kind of thing has existed since Gen 1, but it was called the "Stats" screen until Gen 3.
The new thing in Gen 7 is what you get by clicking your or your opponent's minisprite icons while selecting actions.

This info box never lies to you about your own Pokemon, even if you wouldn't otherwise have any idea about certain information due to Transform or other such effects in any other gen. Stuff it won't reveal when clicking opposing Pokemon is their Ability or item, even if you definitely know what they are because you Skill Swapped or Tricked them.

I think the protocol should send this information (including to spectators) even if it's not visible to spectators under normal conditions.

I'm pretty sure modern PS versions send this information, now, so this is fixed.


Sign review

It would be helpful when reviewing signs if the display zoomed in to the selected sign close enough to see if it was correctly identified or not.

You can accomplish this by clicking the magnifying glass icon at the bottom right corner of the image.
This feature is discussed in this blog post: http://blog.improveosm.org/en/2018/11/help-train-openstreetcams-open-sign-detection-platform/

Next to the trip slider, underneath the image, you will find a small magnifying glass button. Clicking this will automatically zoom and pan the image to the detection.

Similar discussion: #194

Excellent! That helps me a lot.
Perhaps this should be ‘ON’ by default?
George Dunbar
GIS Coordinator
26 Court Street
Plymouth, MA 02360
508-747-1620  x10212
https://www.plymouth-ma.gov/gis
From: Malcolm Smith<EMAIL_ADDRESS>Sent: Monday, March 25, 2019 1:22 PM
To: openstreetcam/openstreetcam.org<EMAIL_ADDRESS>Cc: George Dunbar<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [openstreetcam/openstreetcam.org] Sign review (#210)
You can accomplish this by clicking the magnifying glass icon at the bottom right corner of the image.
This feature is discussed in this blog post: http://blog.improveosm.org/en/2018/11/help-train-openstreetcams-open-sign-detection-platform/
Next to the trip slider, underneath the image, you will find a small magnifying glass button. Clicking this will automatically zoom and pan the image to the detection.
Similar discussion: #194https://github.com/openstreetcam/openstreetcam.org/issues/194
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/openstreetcam/openstreetcam.org/issues/210#issuecomment-476297651, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AllM0RROe-oitNElXiTjpcYFdSm31wSwks5vaQWsgaJpZM4b6T60.

Thanks @mds08011
@topmagis is it ok to close this ticket?

Yes, thank you for pointing out that this functionality is already built into the system.


Add strict_types option to the generated configuration file

For consistency reasons I would be nice to have the declare(strict_types=1); setting in the generated configuration file.

Looks like too much effort to implement this now.


Update best-practices-for-using-office-365-on-a-slow-network.md

Updated article - resolves https://github.com/MicrosoftDocs/OfficeDocs-Enterprise/issues/249
(Please advise if these changes work, or how to improve)

@kelleyvice-msft - Can you please assist to check, approve and merge the content for this PR based on issue #249?
Thank you.

@nenonix - This looks great. Thank you!


[1.18.2] [1.0.7] Cannot cast pickaxe heads with aluminium cast

Firstly, only recently found your mod whilst adding a bunch to my own private modpack. Absolutely love it. However I'm not sure if the following is by design or a bug.
Issue is very simple, I can cast the aluminium pick head cast, but I cannot cast pick heads with it. The cast does nothing. I can cast axe heads, tool rods, bindings all fine. But just not the pick head.
When checking JEI there is no corresponding entries either for casting. But select an axe head cast or tool rod cast and I can see the entries for recipes and usage.

Tinkers renamed pickaxe cast to pick cast in 1.18. that's why it's not working. i just fixed it and i'm uploading the jar to curse as we speak. thank for reporting it, i would have found it.


Duplicate Key IDs being generated

Hi there,
I'm encountering a potential bug using a LunaHSM. When generating new key pairs using the object generate ... command I am getting unique handles but duplicate ID values when looking at the object info.
This seems to happen when I create a key pair, back out of graphene and re enter it.
My application uses the graphene-cli tool to programmatically run commands. This means that each time I want to generate a key pair or sign data I have to reopen graphene (npx graphene) and load the module.
This bug doesn't happen when I generate all keys sequentially within the same instance of graphene.
Seems that reloading the module or reopening the slot causes the IDs on generated objects to return to<PHONE_NUMBER>000000.
Also, when signing data using existing objects, the param is called --handle but when passing in the handle value (ex. 1) it cannot find the signing key. Passing in the full ID of<PHONE_NUMBER>000000 works as expected though.
These 2 things in conjunction prevent me from accurately selecting a key to sign with since I have duplicate IDs. Seems random which key actually gets selected when it's time to sign.
I would greatly appreciate any help you can provide.

I'm noticing that when I generate a new object without the token adding the -token argument I'm getting the error
CKR_ATTRIBUTE_TYPE_INVALID
passing in either true or false for this allows a key to be generated following the same unexpected behavior mentioned in my last comment.
Hope this helps a bit more!

@Matt561 The CKR_ATTRIBUTE_TYPE_INVALID error may be the HSM saying it requires that the param associated with the -token param as required. The HSM basically has a set of (poorly documented) criteria it needs to be present for each call and each HSM will vary.
Maybe capture a log using https://github.com/Pkcs11Interop/pkcs11-logger to see the difference in API calling behaviors to help localize whats going on.

I appreciate the quick response and will look into this library you mentioned.
I'm also curious if you'd know why key pairings generated with Luna's provided ckdemo cli-tool have an empty or blank ID when calling "object info -i" with the graphene-cli tool.
Thinking it maybe has to do with one of the flags selected when generating the keys.
I spent more time on the duplicate Key ID found and haven't made significant progress. I found using ckdemo generates keys successfully but the IDs are missing so I can't use graphene to select and sign.
I will continue on this tomorrow and keep this thread posted if I find anything.
Let me know if any additional findings regarding this issue are found.
Thanks again!

@rmhrisk @microshine  When signing the param is called --handle yet it is the ID (ex:<PHONE_NUMBER>000000) that is accepted. Not the handle as described in the
object info -i command.
I may be confusing the two (ID/Handle) but as I understand it, the handle will persist across sessions (assuming token -true is set) and the ID resets back to<PHONE_NUMBER>000000 between sessions (opening/closing slot).
If the Handle is the unique identifier how come it cannot be used to select a key when signing?
I'm am trying to get down to the bottom of this asap so that I am not forced to look elsewhere for a pkcs11 implementation.
Again, I appreciate any support you can provide.

Found the cause of the CKR_ATTRIBUTE_TYPE_INVALID error.
Inside of gen.ts when generating an ecdsa key with token true flag. A key with the attributes of private and sensitive is created.
This combination actually soft locked me out of my hsm and required me to reach out to Thales.
They responded saying that a key can't be private and also sensitive (contradiction).
Will probably to try forking this repo if that's okay?

Each HSM will have its own interpretation of flags; file a bug for that specific thing and we can get a fix for it. PR welcome but please propose a solution first.

I'm looking through the source code. The generate command creates keys with TEST_KEY_ID identifier. And doesn't allow to manage template attributes. The token flag is only supported.
TEST_KEY_ID could be a reason for the CKR_ATTRIBUTE_TYPE_INVALID error. I'm using SoftHSM and it throws that error if a token with the same ID already exists.
I think we need to update generate command and support other key attributes (eg sensitive, key usages, labels).
Examples
Generate RSA2048 key with encrypt, decrypt, sign and verify key usages.
> object generate -a rsa-2048 --token --sensitive --label "My key" --id 01020304 --usage sved
| Name                 | Value                     |
|----------------------|---------------------------|
| Handle               | 4                         |
| Class                | PRIVATE_KEY               |
| Label                | RSA-2048-privKey          |
| Token                | true                      |
| Private              | true                      |
| Modifiable           | true                      |
| ID                   |<PHONE_NUMBER>000000          |
| Mechanism            | RSA                       |
| Local                | true                      |
| Sensitive            | true                      |
| Extractable          | false                     |
| Derive               | false                     |
| Decrypt              | true                      |
| Sign                 | true                      |
| Sign recover         | true                      |
| Unwrap               | true                      |

Some providers don't allow to set false values to object attributes. We could use --no-disabled flag for that
Generate ECDSA key with sign, verify key usages, default label and id
> object generate -a ecdsa-secp256r1 --token --sensitive --usage sv --no-disabled

Also, we need to refuse to Handle usage like object selector. It would be better to use CKA_ID for that. There is only one problem. CKA_ID is not unique. Certificate, private key, and public key may use the same IDs. We could use object type option for that.
> object info --id 01020304 --type private
| Name                 | Value                     |
|----------------------|---------------------------|
| Handle               | 4                         |
| Class                | PRIVATE_KEY               |
| Label                | RSA-2048-privKey          |
| Token                | true                      |
| Private              | true                      |
| Modifiable           | true                      |
| ID                   |<PHONE_NUMBER>000000          |
| Mechanism            | RSA                       |
| Local                | true                      |
| Sensitive            | true                      |
| Extractable          | false                     |
| Derive               | false                     |
| Decrypt              | true                      |
| Sign                 | true                      |
| Sign recover         | true                      |
| Unwrap               | true                      |

Does having a type of private prevent generation using the same IDs?
If not, we could set labels to be unique values and select keys based on the labels. Users would just need to make sure they assign unique labels.
Also, I've noticed when opening a new session and running object list before generating a new key the IDs gets set to the correct value.
For example: without running object list I always get the TEST_KEY_ID value of<PHONE_NUMBER>000000 when generating new objects within a new session.
But listing the objects first ensures the ID of the next generated key is correct<PHONE_NUMBER>000000 for the private key of the second key pairing.

What would the --type private selector provide? In this case is it only grabbing objects with private attribute set to true? Or is it grabbing the private key?

It's grabbing the private key. Option type could be:

private - private key
public - public key
secret - secret key
x509 - X509 certificate

If we can't control which ID is assigned to new keys we could set labels to be unique values and select keys based on the labels. Users would just need to make sure they assign unique labels.

Maybe. But you need to set 2 labels for key pair generation (one for the private key and the other for the public key).
I prefer to use CKA_ID for that. By default, it could be SHA1 from the public key or a randomly generated value.
What if support 2 types of identification (ID (CKA_ID) or Handle)?
For Handle usage option type is not required
object info --id|-id<PHONE_NUMBER>
object info --handle|-H<PHONE_NUMBER>000000

For example: without running object list I always get the TEST_KEY_ID value of<PHONE_NUMBER>000000 when generating new objects within a new session.

It prints <handle> <class> <label>

will you implement the above changes? If so how long do you estimate it taking?

I'm busy on another project and can't implement changes shortly. PR is appreciated

I'm wondering if modifications to the parent graphene library will be necessary to accommodate these changes?

The parent graphene library doesn't require to be changed for these changes


[Project Design Diagrams] Component model is incomplete when a package has more than one un-annotated service

Description:
The service interaction diagrams are dependent on the user-defined display annotations to uniquely identify services. Hence, in the current FE implementation, the unannotated services are not displayed.
To provide a more comprehensive picture, this behaviour is being improved to display all the services available in the workspace, regardless of whether they are annotated or not (difference would be that the interactions can be mapped in annotated services but not for unannotated services).
However, currently, the component models retrieved are incomplete when multiple services in the same package are unannotated. Since the service ID is an empty string for all unannotated services, all such unannotated services in a package update the same entry in the services map, leaving only one unannotated service entry per package .

To address this issue, shall we produce an UUID as the serviceId for unannotated services ?
@NipunaRanasinghe @hevayo

Fixed with https://github.com/ballerina-platform/ballerina-lang/pull/38824


better timezone handling (including dst)

this version also works when DST is in effect ;)

Danke!


Add support for ARM64 Image Build

Signed-off-by: Theo Thomas<EMAIL_ADDRESS>

Description
Removed building images using Maven.
Building Images is now done using Docker directly in the workflow.
Using docker directly enables us to build for multiple architectures.
This is the first step related to https://github.com/odpi/egeria/issues/2391  to enable the use of ARM64 images
Fixes # (issue)
How Has This Been Tested?
Building the images for AMD64/ARM64 (Raspberry PI) on my own Docker repo.
Tested lab exercises on Kubernetes Cluster on Raspberry PI using images from my own Docker Repo.
Any additional notes for reviewers?

@planetf1
In egeria-ui and egeria-react-ui I see that for release only version is used for tag and for master/main latest and version is used in the tag.
In the release workflow for egeria  always the latest and version is used as tag.
As far as I could see this is similar to what we used when using maven for docker build.
Is this done on purpose in the release for egeria or should it be aligned with the other 2 repos?

@planetf1 In egeria-ui and egeria-react-ui I see that for release only version is used for tag and for master/main latest and version is used in the tag.

egeria-ui doesn't have a release workflow currently, so the merge build uses ver+latest for main, and ver for !main
The same applies to egeria-react-ui

In the release workflow for egeria always the latest and version is used as tag. As far as I could see this is similar to what we used when using maven for docker build. Is this done on purpose in the release for egeria or should it be aligned with the other 2 repos?

Egeria has a specific release workflow -- so the decision I took there was the build the docker image as part of that process.
Therefore the merge build only builds for main
Ideally we'd push pre-release images to a staging area, or with an alternate tag automatically to facilitate testing - but that requires more steps.
I would go with the same approach to tags for this PR on the architecture -- but we can certainly discuss improvements to the overall release process in another issue or PR as needed?

Thanks for proposing the change!


Clean dct fuzz changes

@m-holger Please take a look at this. If you agree, feel free to merge (if CI passes). If not, please push back or make additional changes.
I feel strongly against using conditional compilation in qpdf without a very good reason, and in particular, building the library differently for fuzzing is a slippery slope. Conditional compilation is appropriate when there are real OS/Compiler differences that can't be handled any other way or when some part of the system may need to be disabled because of OS limitations, such as avoiding certain file system operations on embedded hardware or avoiding wchar_t on minimal distributions. Otherwise, I prefer configuration.
I added setMaxWarnings to QPDF but did not expose it via a command-line flag. I could do that if we think it's useful. I'm not sure why you added it exactly since warnings are not shown in the fuzz tests, but I wonder whether having a cap on the number of warnings might be sensible. Anyway, I don't think it's that important, but I guess the question is still there about whether we should add a command-line flag like --max-warnings. Adding command-line flags is tricky but documented. I don't think we need it.

Also, I would like you to get into the habit of updating ChangeLog. The ChangeLog format conforms to the gnu format, including the particular line break and indentation style, so let's not reformat ChangeLog. My goal for ChangeLog is that it's a level of granularity between the release notes and the git history. It gives someone a chance to scan the list of changes from one release to another and see what might be relevant. Also, ChangeLogs are chronological, while the release notes are organized by category. I try to do ChangeLog as I go. When working on features, I try to do release notes as I go as well, but I'm also likely to build the release notes by looking at the ChangeLog and diffing public headers.

Closing in favor of #1230


[SPARK-29947][SQL][followup] ResolveRelations should return relations with fresh attribute IDs

What changes were proposed in this pull request?

This is a followup of https://github.com/apache/spark/pull/26589, which caches the table relations to speed up the table lookup. However, it brings some side effects: the rule ResolveRelations may return exactly the same relations, while before it always returns relations with fresh attribute IDs.
This PR is to eliminate this side effect.
Why are the changes needed?

There is no bug report yet, but this side effect may impact things like self-join. It's better to restore the 2.4 behavior and always return refresh relations.
Does this PR introduce any user-facing change?

no
How was this patch tested?

N/A

@wangyum

Test build #123472 has started for PR 28717 at commit 6924118.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/28093/
Test PASSed.

also cc @HyukjinKwon @brkyvz

Test build #123472 has finished for PR 28717 at commit 6924118.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/123472/
Test FAILed.

retest this please

Test build #123485 has started for PR 28717 at commit 6924118.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/28108/
Test PASSed.

Test build #123485 has finished for PR 28717 at commit 6924118.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/123485/
Test PASSed.

thanks, merging to master/3.0!

@brkyvz I tried triple self-join but can't find a buggy case:
sql("select * from t t1 join t t2 join t t3 where t1.a = t3.a").show

sql("select * from t t1 join t t2 on t1.b = t2.a join t t3 on t1.a = t3.a").show

Please let me know if you see some broken join queries.

what if you do something like:

join t with t on a
Do a group by to get distinct values of a and b
Join grouped results again with t on b
so that the expression Ids pass through

sql("select * from (select t1.a, t1.b from t t1 join t t2 on t1.a = t2.a group by t1.a, t1.b) j join t t3 where j.b = t3.b").show

This also works. Please let me know if I miss something, thanks!


Fixed a failing test

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

:exclamation: No coverage uploaded for pull request base (develop@fb26ff2). Click here to learn what that means.

Additional details and impacted files
@@            Coverage Diff             @@
##             develop    #1670   +/-   ##
==========================================
  Coverage           ?   63.18%
==========================================
  Files              ?      248
  Lines              ?     8211
  Branches           ?        0
==========================================
  Hits               ?     5188
  Misses             ?     3023
  Partials           ?        0

Flag
Coverage Δ

epictrack-api
63.18% <0.00%> (?)

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


chore(docs): update homebrew installation note

update the installation note per https://github.com/Homebrew/homebrew-core/pull/200767 merge :)
formula page, https://formulae.brew.sh/formula/macmon

@chenrui333
Thank you for doing that!

macmon is now on MacPorts as well, do you want that in the doc too?

@i0ntempest hi, that would be great. Can you make a PR?

@i0ntempest hi, that would be great. Can you make a PR?

Yup, will do when I get to my computer


[Bug]: JSON issue

Contact Details
<EMAIL_ADDRESS>What happened?
Hi Raine
Everytime I try and add the Olarm back into HA I get the below error. Tried totally removing the device also creating a new API key making sure I don't mess around with the refresh intervals etc.
Not sure why its complaining about unexpected mimetype in the JSON code.
Thanks
Version
2.1.7
Relevant log output
File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 1104, in json
    raise ContentTypeError(
aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/plain; charset=utf-8', url=URL('https://apiv4.olarm.co/api/v4/devices/4df3375f-41b8-4338-b965-9f3a3ea1dc64')

Hi @tommiedw ,
Does this error disappear after a while or is it constant?

It comes up as soon as I add the Olarm integration (and nothing after that) it showed "Failed to setup" immediately after that...
It use to work before a while ago. Since it started with this problem, I just left it and waited for an update release.
Thought I share if anyone else was having the same issue :)
Also just wanted to note, I have two Olarm devices. One for my Texecom 832 and one for my Nemtek electric fence
Full dump
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/olarm_sensors/init.py", line 90, in async_setup_entry
await coordinator.update_data()
File "/config/custom_components/olarm_sensors/coordinator.py", line 96, in update_data
devices_json = await self.api.get_device_json()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/olarm_sensors/olarm_api.py", line 54, in get_device_json
return await response.json()
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 1104, in json
raise ContentTypeError(
aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/plain; charset=utf-8', url=URL('https://apiv4.olarm.co/api/v4/devices/4df3375f-41b8-4338-b965-9f3a3ea1dc64')

I'm having the same issue. Apologies for posting in the wrong place:
https://github.com/rainepretorius/olarm-ha-integration/discussions/59

Hi @Chris-777 and @tommiedw,
I am planning to incorporate a diagnostic feature into the integration that will collect all relevant data to aid in bug fixing both now and in the future. My goal is to release the update containing this feature either later today or tomorrow morning.

Thanks for all the efforts, its appreciated. The diagnostic feature would be awesome, will help with troubleshooting for sure.

This error originated from a custom integration.
Logger: homeassistant.config_entries
Source: custom_components/olarm_sensors/olarm_api.py:54
Integration: Olarm Sensors (documentation, issues)
First occurred: 8:45:01 PM (2 occurrences)
Last logged: 8:45:22 PM
Error setting up entry Olarm Sensors for olarm_sensors
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/olarm_sensors/init.py", line 90, in async_setup_entry
await coordinator.update_data()
File "/config/custom_components/olarm_sensors/coordinator.py", line 96, in update_data
devices_json = await self.api.get_device_json()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/olarm_sensors/olarm_api.py", line 54, in get_device_json
resp = await response.json()
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 1104, in json
raise ContentTypeError(
aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/plain; charset=utf-8', url=URL('https://apiv4.olarm.co/api/v4/devices/8be0f51b-f559-45d6-af6a-09efa5dba872')

Hi there, same this side. Also have two Olarm devices. Before the update it work, but only with the second device. For some reason it did not want to pick my main device. Saw the update and also thought, Ye, finally sorted :-) however also getting the same as @chriscc12345

Ok, did a full restart again, and back to almost working. However it is not working with my second Olarm sensor
See below, picking up the 93 sensor just fine, but nothing on the main device
Any idea?

Hey man. Super excited to have this working. Thank you so much for your effort!!
Looks like I am having the same issue.
2023-06-14 20:48:16.818 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Olarm Sensors for olarm_sensors
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/olarm_sensors/init.py", line 46, in async_setup_entry
await update_listener(hass, config_entry)
File "/config/custom_components/olarm_sensors/init.py", line 224, in update_listener
options[OLARM_DEVICES] = devices
^^^^^^^
UnboundLocalError: cannot access local variable 'options' where it is not associated with a value
2023-06-14 20:48:52.577 ERROR (MainThread) [frontend.js.latest.202306080] http://<IP_ADDRESS>:8123/frontend_latest/17827-INquOPjPYjM.js:1:92699 TypeError: null is not an object (evaluating 'this.contentElement.removeEventListener')
2023-06-14 20:50:18.923 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Olarm Sensors for olarm_sensors
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/olarm_sensors/init.py", line 46, in async_setup_entry
await update_listener(hass, config_entry)
File "/config/custom_components/olarm_sensors/init.py", line 224, in update_listener
options[OLARM_DEVICES] = devices
^^^^^^^
UnboundLocalError: cannot access local variable 'options' where it is not associated with a value
2023-06-14 20:52:45.675 ERROR (MainThread) [frontend.js.latest.202306080] http://<IP_ADDRESS>:8123/frontend_latest/17827-INquOPjPYjM.js:1:92699 TypeError: null is not an object (evaluating 'this.contentElement.removeEventListener')
2023-06-14 20:53:43.255 INFO (MainThread) [custom_components.olarm_sensors] Setting up Olarm device (Angela Home) with device id: 4518c631-3d87-48d8-8bc4-93be23e4e1bd
2023-06-14 20:53:43.456 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Olarm Sensors for olarm_sensors
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
result = await component.async_setup_entry(hass, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/olarm_sensors/init.py", line 90, in async_setup_entry
await coordinator.update_data()
File "/config/custom_components/olarm_sensors/coordinator.py", line 96, in update_data
devices_json = await self.api.get_device_json()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/olarm_sensors/olarm_api.py", line 54, in get_device_json
resp = await response.json()
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 1104, in json
raise ContentTypeError(
aiohttp.client_exceptions.ContentTypeError: 0, message='Attempt to decode JSON with unexpected mimetype: text/plain; charset=utf-8', url=URL('https://apiv4.olarm.co/api/v4/devices/4518c631-3d87-48d8-8bc4-93be23e4e1bd')

I have a single primary device, but 3 x secondary devices Ie 3 x devices that are shared with me.
Might be relevant to know that it doesn’t seem to save the specific device I want to monitor sensors for under the ‘configure’ form. I would select the primary device and submit but when I view again it is not selected:

I kept fiddling and managed to get it to work. I deleted one of the devices that were offline,  I then (because I was bored), added avatars to each zone on Olarm app, Regenerated api key, and then reloaded the integration a few times and then suddenly it worked.
not sure. Either way. Seems to be ok now. Will add alarm panel card etc. and send feedback if any further issues.
Dave

Hi @rainepretorius
Thanks for your work on this. Let me know if you need some help with troubleshooting this issue and / or debug logs.
Version 2.1.8 on fully up to date HA
Same issue for me:
First error on reload / reinstall:
ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Olarm Sensors for olarm_sensors
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/olarm_sensors/__init__.py", line 46, in async_setup_entry
    await update_listener(hass, config_entry)
  File "/config/custom_components/olarm_sensors/__init__.py", line 224, in update_listener
    options[OLARM_DEVICES] = devices
    ^^^^^^^
UnboundLocalError: cannot access local variable 'options' where it is not associated with a value

Second log entry:
ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Olarm Sensors for olarm_sensors Traceback (most recent call last):   File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup     result = await component.async_setup_entry(hass, self)              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/config/custom_components/olarm_sensors/__init__.py", line 46, in async_setup_entry     await update_listener(hass, config_entry)   File "/config/custom_components/olarm_sensors/__init__.py", line 224, in update_listener     options[OLARM_DEVICES] = devices                              ^^^^^^^ UnboundLocalError: cannot access local variable 'options' where it is not associated with a value
Also have the two Olarm devices.
Selecting either device in the Configuration menu and clicking submit does not save the selection (when navigating back to Configuration no device is selected). API key persists on Submit.
I've tried:
Delete / reinstall integration.
Cleaning up stale configuration entries manually
Regenerating API keys and reloading integration

@rainepretorius
This fixed it for me in init.py:

@zakattack-za, only one of my olarm devices are pulling in. for some reason the main one does not pull in. will wait for @rainepretorius to see if he has a fix. when manually creating the sensors it works fine.

@rainepretorius and @zakattack-za, ok so my is working 100%. Did not do anything special to the code, basically I was busy working through all my addin, busy cleaning up and fix all log errors for my ha instance and after a round 4 restarts, I notice that olarm was up and running. hopefully it does not bomb out after a restart but will keep you guys posted

@rainepretorius and @zakattack-za, ok so my is working 100%. Did not do anything special to the code, basically I was busy working through all my addins, busy cleaning up and fixing all log errors for my ha instance and after a round 4 restarts, I notice that olarm was up and running. hopefully it does not bomb out after a restart but will keep you guys posted

Hi @jakesie1309 ,
Yes. It depends on Olarm and how they see a request. If they think there is a too frequent call they block it for a while and then it will sometimes randomly start to work again. Version 2.1.7 and 2.1.7 is exactly the same. 2.1.8 just allows jou to download the logs.

Hi @rainepretorius
Thanks for your work on this. Let me know if you need some help with troubleshooting this issue and / or debug logs.
Version 2.1.8 on fully up to date HA
Same issue for me:
Error on reload / reinstall:
ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Olarm Sensors for olarm_sensors
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 387, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/olarm_sensors/__init__.py", line 46, in async_setup_entry
    await update_listener(hass, config_entry)
  File "/config/custom_components/olarm_sensors/__init__.py", line 224, in update_listener
    options[OLARM_DEVICES] = devices
    ^^^^^^^
UnboundLocalError: cannot access local variable 'options' where it is not associated with a value

Also have the two Olarm devices.
Selecting either device in the Configuration menu and clicking submit does not save the selection (when navigating back to Configuration no device is selected). API key persists on Submit.
I've tried:
Delete / reinstall integration.
Cleaning up stale configuration entries manually
Regenerating API keys and reloading integration

Will look into this error. I should repky to the cause and maybe have a fix tomorrow.

@zakattack-za, only one of my olarm devices are pulling in. for some reason the main one does not pull in. will wait for @rainepretorius to see if he has a fix. when manually creating the sensors it works fine.

Hi @jakesie1309 ,
Can you send me the diagnostic file for the integration? And the name of the main device. I will then check to see what is happening.

@rainepretorius and @zakattack-za, ok so my is working 100%. Did not do anything special to the code, basically I was busy working through all my addins, busy cleaning up and fixing all log errors for my ha instance and after a round 4 restarts, I notice that olarm was up and running. hopefully it does not bomb out after a restart but will keep you guys posted

I had the same errors as others with 2 devices (I had 6, deleted 4). I'd already tried every combination of new api key, delete, reboot, restore HA.
Eventually tried cleaning up my error log like @jakesie1309 . That worked. Magic.

For some reason, the aiohttp  client receives a Content-Type HTTP header with a value of text/plain on the response. I can't reproduce this behaviour with a simple curl command, but it could be caused by one or more of the headers the client is sending.
Disabling the content type check on the response.json()  call (i.e. resp = await response.json(content_type=None) works for me (after a restart of course).

For some reason, the aiohttp  client receives a Content-Type HTTP header with a value of text/plain on the response. I can't reproduce this behaviour with a simple curl command, but it could be caused by one or more of the headers the client is sending.
Disabling the content type check on the response.json()  call (i.e. resp = await response.json(content_type=None) works for me (after a restart of course).

Cool will implement this change and we all can check if this error then persists. I also cannot reproduse the error if I do not use pythons aiohttp library.


ci: use node 16 compatible github actions

Node 12 is deprecated.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 95.756%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
361

Relevant Lines:
377

💛  - Coveralls


Add trigger_subscribers to Signal

Exposes trigger_subscribers function from SignalEmitter to Signal's public interface.

Since we're adding this, would you mind changing all the other instances of self.0.emitter.trigger_subscribers() (in Signal::set and Signal::set_rc) to just self.trigger_subscribers()? Thanks for contributing!

Done :)

:tada:


[go_router] Dialog remains open after context.replace navigation in go_router

What package does this bug report belong to?
go_router
What target platforms are you seeing this bug on?
Android, iOS, Linux
Have you already upgraded your packages?
Yes
Dependency versions
pubspec.lock
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
  async:
    dependency: transitive
    description:
      name: async
      sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
      url: "https://pub.dev"
    source: hosted
    version: "2.11.0"
  boolean_selector:
    dependency: transitive
    description:
      name: boolean_selector
      sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
      url: "https://pub.dev"
    source: hosted
    version: "2.1.1"
  characters:
    dependency: transitive
    description:
      name: characters
      sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
      url: "https://pub.dev"
    source: hosted
    version: "1.3.0"
  clock:
    dependency: transitive
    description:
      name: clock
      sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
      url: "https://pub.dev"
    source: hosted
    version: "1.1.1"
  collection:
    dependency: transitive
    description:
      name: collection
      sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
      url: "https://pub.dev"
    source: hosted
    version: "1.19.0"
  cupertino_icons:
    dependency: "direct main"
    description:
      name: cupertino_icons
      sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
      url: "https://pub.dev"
    source: hosted
    version: "1.0.8"
  fake_async:
    dependency: transitive
    description:
      name: fake_async
      sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
      url: "https://pub.dev"
    source: hosted
    version: "1.3.1"
  flutter:
    dependency: "direct main"
    description: flutter
    source: sdk
    version: "0.0.0"
  flutter_lints:
    dependency: "direct dev"
    description:
      name: flutter_lints
      sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
      url: "https://pub.dev"
    source: hosted
    version: "5.0.0"
  flutter_test:
    dependency: "direct dev"
    description: flutter
    source: sdk
    version: "0.0.0"
  flutter_web_plugins:
    dependency: transitive
    description: flutter
    source: sdk
    version: "0.0.0"
  go_router:
    dependency: "direct main"
    description:
      name: go_router
      sha256: bd7e671d26fd39c78cba82070fa34ef1f830b0e7ed1aeebccabc6561302a7ee5
      url: "https://pub.dev"
    source: hosted
    version: "6.5.9"
  leak_tracker:
    dependency: transitive
    description:
      name: leak_tracker
      sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06"
      url: "https://pub.dev"
    source: hosted
    version: "10.0.7"
  leak_tracker_flutter_testing:
    dependency: transitive
    description:
      name: leak_tracker_flutter_testing
      sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379"
      url: "https://pub.dev"
    source: hosted
    version: "3.0.8"
  leak_tracker_testing:
    dependency: transitive
    description:
      name: leak_tracker_testing
      sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
      url: "https://pub.dev"
    source: hosted
    version: "3.0.1"
  lints:
    dependency: transitive
    description:
      name: lints
      sha256: "4a16b3f03741e1252fda5de3ce712666d010ba2122f8e912c94f9f7b90e1a4c3"
      url: "https://pub.dev"
    source: hosted
    version: "5.1.0"
  logging:
    dependency: transitive
    description:
      name: logging
      sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61
      url: "https://pub.dev"
    source: hosted
    version: "1.3.0"
  matcher:
    dependency: transitive
    description:
      name: matcher
      sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
      url: "https://pub.dev"
    source: hosted
    version: "0.12.16+1"
  material_color_utilities:
    dependency: transitive
    description:
      name: material_color_utilities
      sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
      url: "https://pub.dev"
    source: hosted
    version: "0.11.1"
  meta:
    dependency: transitive
    description:
      name: meta
      sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
      url: "https://pub.dev"
    source: hosted
    version: "1.15.0"
  path:
    dependency: transitive
    description:
      name: path
      sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
      url: "https://pub.dev"
    source: hosted
    version: "1.9.0"
  sky_engine:
    dependency: transitive
    description: flutter
    source: sdk
    version: "0.0.0"
  source_span:
    dependency: transitive
    description:
      name: source_span
      sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
      url: "https://pub.dev"
    source: hosted
    version: "1.10.0"
  stack_trace:
    dependency: transitive
    description:
      name: stack_trace
      sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377"
      url: "https://pub.dev"
    source: hosted
    version: "1.12.0"
  stream_channel:
    dependency: transitive
    description:
      name: stream_channel
      sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
      url: "https://pub.dev"
    source: hosted
    version: "2.1.2"
  string_scanner:
    dependency: transitive
    description:
      name: string_scanner
      sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
      url: "https://pub.dev"
    source: hosted
    version: "1.3.0"
  term_glyph:
    dependency: transitive
    description:
      name: term_glyph
      sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
      url: "https://pub.dev"
    source: hosted
    version: "1.2.1"
  test_api:
    dependency: transitive
    description:
      name: test_api
      sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c"
      url: "https://pub.dev"
    source: hosted
    version: "0.7.3"
  vector_math:
    dependency: transitive
    description:
      name: vector_math
      sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
      url: "https://pub.dev"
    source: hosted
    version: "2.1.4"
  vm_service:
    dependency: transitive
    description:
      name: vm_service
      sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b
      url: "https://pub.dev"
    source: hosted
    version: "14.3.0"
sdks:
  dart: ">=3.6.0 <4.0.0"
  flutter: ">=3.18.0-18.0.pre.54"

Steps to reproduce

Create a Flutter app using go_router with nested routes.
Navigate to /home/settings.
Open a dialog on the SettingsScreen.
Inside the dialog, use context.replace('/home') to navigate back to the home screen.

Expected results
The dialog should close automatically when context.replace is used to navigate to another route.
Actual results
The dialog remains open, even though the route has been replaced.
Code sample
Code sample
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp.router(
      routerConfig: _router,
    );
  }
}

final GoRouter _router = GoRouter(
  initialLocation: '/home',
  routes: [
    GoRoute(
        path: '/home',
        builder: (BuildContext context, GoRouterState state) {
          return HomeScreen();
        },
        routes: [
          GoRoute(
            path: 'settings',
            builder: (BuildContext context, GoRouterState state) {
              return SettingsScreen();
            },
          ),
          GoRoute(
            path: 'profile',
            builder: (BuildContext context, GoRouterState state) {
              return ProfileScreen();
            },
          ),
        ]),
  ],
);

class SettingsScreen extends StatelessWidget {
  const SettingsScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Settings")),
      body: Center(
          child: Column(
        children: [
          ElevatedButton(
            onPressed: () {
              showDialog(
                context: context,
                builder: (context) => AlertDialog(
                  actions: [
                    TextButton(
                        onPressed: () {
                          context.replace('/home');
                        },
                        child: Text('GO back to Home Screen'))
                  ],
                ),
              );
            },
            child: Text("Show Dialog"),
          ),
          Text("This is the settings screen"),
        ],
      )),
    );
  }
}

class ProfileScreen extends StatelessWidget {
  const ProfileScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Profile")),
      body: Center(child: Text("This is the profile screen")),
    );
  }
}

class HomeScreen extends StatelessWidget {
  const HomeScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('HOME'),
      ),
      body: Column(
        crossAxisAlignment: CrossAxisAlignment.center,
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Row(
            crossAxisAlignment: CrossAxisAlignment.center,
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: () {
                  context.go('/home/profile');
                },
                child: Text("Go to Profile"),
              ),
              ElevatedButton(
                onPressed: () {
                  context.go('/home/settings');
                },
                child: Text("Go to Settings"),
              ),
            ],
          ),
          Text("This is the home screen"),
        ],
      ),
    );
  }
}

Screenshots or Videos

Screenshots / Video demonstration
https://github.com/user-attachments/assets/c7048058-b93b-47fd-a138-b3002531584d

Logs
Logs
EMPTY

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.27.0, on Ubuntu 20.04.3 LTS (fossa-kingdra-adl
    X127) 5.13.0-1022-oem, locale en_US.UTF-8)
    • Flutter version 3.27.0 on channel stable at
      /home/USER/snap/flutter/common/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 8495dee1fd (9 days ago), 2024-12-10 14:23:39 -0800
    • Engine revision 83bacfc525
    • Dart version 3.6.0
    • DevTools version 2.40.2

[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    • Android SDK at /home/USER/Android/Sdk
    • Platform android-35, build-tools 35.0.0
    • Java binary at: /snap/android-studio/161/jbr/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11609105)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 10.0.0-4ubuntu1
    • cmake version 3.16.3
    • ninja version 1.10.0
    • pkg-config version 0.29.1

[✓] Android Studio (version 2023.3)
    • Android Studio at /snap/android-studio/157
    • Flutter plugin version 79.0.2
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)

[✓] Android Studio (version 2024.1)
    • Android Studio at /snap/android-studio/161
    • Flutter plugin version 83.0.2
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11609105)

[✓] IntelliJ IDEA Ultimate Edition (version 2024.3)
    • IntelliJ at /snap/intellij-idea-ultimate/555
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.96.0)
    • VS Code at /snap/code/current/usr/share/code
    • Flutter extension version 3.102.0

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Ubuntu 20.04.3 LTS (fossa-kingdra-adl X127) 5.13.0-1022-oem
    • Chrome (web)    • chrome • web-javascript • Google Chrome 95.0.4638.69

[✓] Network resources
    • All expected network resources are available.

• No issues found!

@soufianebenyaala
There's similar open issue describing your case, https://github.com/flutter/flutter/issues/146045, so please follow-up in it for further updates. Closing this as a duplicate. You may share your findings in that issue for better tracking.


Bazel downloads artifacts too often when switching branches

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:
/kind bug
/kind enhancement

What happened:
If I switch branches or only minmal changes are switched in the WORKSPACE file, it redownloads a lot. We can prevent that: https://groups.google.com/forum/#!topic/bazel-discuss/_otGfLuHN_Y.
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

KubeVirt version (use virtctl version):
Kubernetes version (use kubectl version):
VM or VMI specifications:
Cloud provider or hardware configuration:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

/cc @cynepco3hahue FYI

https://docs.bazel.build/versions/master/remote-caching.html#disk-cache

@rmohr I think we mostly interested in

https://docs.bazel.build/versions/master/command-line-reference.html#flag--repository_cache

/reopen


[BUG] Flutter SDK:2.3.0-24.0.pre. addAllowedPointer Method error

Flutter SDK:2.3.0-24.0.pre
@override
void addAllowedPointer(PointerEvent event) {
if (ready) {
ready = false;
_pointerLocations = <int, Offset>{};
}
super.addAllowedPointer(event);
}
addAllowedPointer Method error
PointerEvent no longer exists

Having the same issue here. Any work-arounds?

@luanpotter @renancaraujo
Please give priority to the latest SDK changes

@EricPHassey My solution is to correct the wrong way.

@EricPHassey My solution is to correct the wrong way.
 @override
 void addAllowedPointer(PointerDownEvent event) {
   if (ready) {
     ready = false;
     _pointerLocations = <int, Offset>{};
   }
   super.addAllowedPointer(event);
 }

May I ask where this needs to be fixed? Is this an issue with this package? How or where do I need to apply this fix?

photo_view/lib/src/core/photo_view_gesture_detector.dart
https://github.com/fireslime/photo_view/blob/master/lib/src/core/photo_view_gesture_detector.dart#L101

photo_view/lib/src/core/photo_view_gesture_detector.dart
https://github.com/fireslime/photo_view/blob/master/lib/src/core/photo_view_gesture_detector.dart#L101

When I did this, i face now a new error
" Error: 'PointerEventDown' isn't a type.
void addAllowedPointer(PointerEventDown event) {
^^^^^^^^^^^^^^^^
"

any news ?

@EricPHassey My solution is to correct the wrong way.
 @override
 void addAllowedPointer(PointerDownEvent event) {
   if (ready) {
     ready = false;
     _pointerLocations = <int, Offset>{};
   }
   super.addAllowedPointer(event);
 }

this solution worked for me
thanks

This sol

@EricPHassey My solution is to correct the wrong way.
 @override
 void addAllowedPointer(PointerDownEvent event) {
   if (ready) {
     ready = false;
     _pointerLocations = <int, Offset>{};
   }
   super.addAllowedPointer(event);
 }

This worked for me as well with android, but not IOS. (maybe someone can confirm it's not just me, and I'd be super happy)

Should be included on 0.12.0. Further discussion on this use #441


Extending select directive

I want to write directive that will check for available options in the scope and preselect some option if only one item present inside ngOptions.
For now I wrote something like this:
<select id="provider" name="provider" class="form-control"
        ng-model="foo.provider"
        ng-options="provider.name for provider in providers track by provider.id"
        select-first-if-only-one="providers"
        required>
    <option value="">- Select -</option>
</select>

and my directive:
'use strict';

angular.module('app')
    .directive('selectFirstIfOnlyOne', function() {
        return {
            restrict: 'A',
            require: 'select',
            link: function(scope, elem, attrs, ctrl) {
                scope.$watchCollection(attrs.selectFirstIfOnlyOne, function(values) {
                    if (angular.isDefined(values) && values.length === 1) {
                        scope.$evalAsync(function() {
                            ctrl.ngModelCtrl.$setViewValue(values[0]);
                        });
                    }
                });
            }
        };
    });

And it works. But I want not to pass array values to directive directly but to take them from ngModel or ngOptions.
I found that SelectController doesn't provide methods to get all values from <select>, same for NgModelController.
Same question on StackOverflow.

You should set the scope, not the select. Programatic change should always be driven from the scope. I'd say http://stackoverflow.com/a/33618387/787333 is the way to go.

It's not the way for me. I need use this logic in lots of places so I'd rather have one directive than lots of controllers with duplicates.

I don't see why you'd have lots of controllers and duplicates. The logic of setting on the scope from a directive would be the same in all places.

If I'll do your way then for every <select> where I need this behavior (majority of selects in my app) I will write in controllers smth like:
promise.then(function(items) {
  $scope.items = items;
  $scope.selectedItem = (items.length === 1 ? items[0] : null);
}

This is ugly

I still don't see why you can't just assign the scope value in our directive, similar to the example directive you posted.

Are you are talking about something like this?
ngModel.$setViewValue(items[0]);

because I can't hardcode scope variable names inside directive.
If so then I still have my question - how can I get array of items inside custom directive extending angular's select directive without passing reference to it explicitly? I think it's already duplication of code - why should one try to get values from outside of custom directive if it is already bound to <select> that knows which values contained inside of it.
Also I've written a hack inside of scope.$watchCollection:
scope.$evalAsync(function() { ... })

to be sure that all items were already rendered on the DOM. This is because I can't extend ngOptions which is terminal so I need to write my own bicycle.
In a perfect world I would rather write directive like this:
angular.module('app')
    .directive('selectFirstIfOnlyOne', function() {
        return {
            require: ['ngModel', 'ngOptions'],
            link: function(scope, elem, attrs, ctrls) {
                scope.$watch(ctrls[1].options, function(values)) {
                    if (angular.isDefined(values) && values.length === 1) {
                        ctrls[0].$setViewValue(values[0]);
                    }
                });
            }
        };
    });

Oh, I was focusing on a different aspect of your directive (that you shouldn't use setViewValue). I see how exposing the options could be useful in that case. There's another issue where that has been proposed.https://github.com/angular/angular.js/issues/7417 If you want to open a PR which implements this change, I'll be happy to look at it,


Added explicit setting of the SDK version to ILogger trace calls.

I don't think this actually fixes the problem I was trying to address because I still get telemetry with the base SDK version being reported which doesn't go through this path.  If I recall correctly this logger isn't used except in debug mode with no iKey.

Tests?

Unit test added.


Display data as image preview

Hi
I'm interested on quickly previewing some image data that I save as .pt files with floats between 0.0 and 1.0.  Do you think it could be feasible to have functionality for previewing the files as an image if they have shape (3xHxW) or (HxWx3) for example? I'm looking at alternatives such as using tiff files (because I can also save them as float) and this vscode-tiff extension, but it only works for images saved as uint8.
Thanks!

Thank you for your suggestion! I appreciate your input. I will review it and assess its feasibility as soon as possible.


fix: categorizing LUIS and QNA resources correctly as required or optional in provision flow

Description
AzurePublish extension was always adding luis and qna as optional resources instead of required resources in the provision flow regardless of the underlying bot needing LUIS or QNA.
There is already a selector in client recoil state that does the parsing to determine whether LUIS/QNA are required in the current bot files (allRequiredRecognizersSelector)
This PR adds an accessor function for allRequiredRecognizersSelector that can be called through the Publish Plugin API such that the plug in can correctly categorize whether or not LUIS and QNA are optional.
Task Item
fixes #6775
Screenshots

Coverage decreased (-0.002%) to 56.256% when pulling 26c73d97e5869c9c91798fa5fe6aed5249100c18 on pavolum/fixRequiredResourceBug into e45f95bb2acd4448032b68d44e7646dc13c41ad0 on main.


Camera2D in a viewport while running as an editor plugin doesn't work

Godot version:
Godot v3.1.2
OS/device including version:
Windows 10
Issue description:
Whenever running as an editor plugin, Camera2D nodes won't work in a separate viewport.
Steps to reproduce:

Make an EditorPlugin.
Make a scene with a Viewport, Sprite and a Camera2D node.
Add a script to make the Camera2D node move around.
Run the editor plugin and try to move the camera around.
The Camera2D node doesn't work at all.

Minimal reproduction project:
https://github.com/Flairieve/GraphicsEditor/

I don't think your Camera2D script will actually run, unless you make it a tool, too. At least if I understand this article correctly:

The camera script isn't a tool script on purpose so it doesn't run in the editor scene. I have tried it before as a tool script and that didn't work also. I think it's something that has to do with using viewports in the editor.

You might have to use a custom script which modifies the viewport's "canvas_transform", as Camera2D is specifically made to not run while Engine.editor_hint is true.

If that's the case then shouldn't camera nodes be allowed to run in the editor if they are under a viewport?

The thing in the middle of the editor screen is already a viewport, so this would require some changes to how viewports work.

Wait so the editor can only run a couple of viewports at a time?

Even with that, you should be able to use a viewport with a camera in it as an editor plugin.


Remove installconfig dependency from deploystorage

Which issue this PR addresses:
Part of cleanup for M5: https://msazure.visualstudio.com/AzureRedHatOpenShift/_workitems/edit/14317614
What this PR does / why we need it:
Removes the installconfig dependency in deploystorage, so that it doesn't have to strictly go after it (and also cleans up some of the code).
Test plan for issue:
Created a cluster locally. E2E should also verify.
Is there any documentation that needs to be updated for this PR?
N/A

/azp run e2e
E2E timed out.


fix(v2): improve UI of search

Motivation
Minor UI corrections in the search bar - remove underline on hover, uniform background for the columns (always white), fix overlapping dropdown menu on search input in mobile. See test plan for details.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan

Before
After

Before
After

Wow, a very fast merge!


update Postgres::new constructor

This is my attempt at "deriving" the settlement contract address for order insertion in the least blocking way.
Test Plan
Existing CI.

Closed in favour of more natural solution #908.


Firefox Bug Fix: Dynamic Sample Rate Detection for Audio Compatibility

On Firefox, we get the issue:
Here is the explanation to this fix:
Connecting AudioNodes from AudioContexts with different sample-rate is currently not supported.

getSystemSampleRate(): This helper function will dynamically detect the system's default sample rate by creating a new AudioContext instance and querying its sampleRate property. This is important because different browsers and devices may have different default sample rates, and this will prevent sample rate mismatch issues.

Changes in WavStreamPlayer and WavRecorder: By using new AudioContext().sampleRate as the fallback, the application adapts to the system's default sample rate if none is explicitly provided. This is critical for maintaining compatibility across different browsers, particularly Firefox, which enforces stricter rules on sample rates.

These are the changes needed to ensure your application works seamlessly with the system's default audio configuration without causing issues, particularly in Firefox.

For the Realtime API we need a 24,000 Hz sample rate. Do you think there's another solution to this problem? This is Firefox only, correct?

@khorwood-openai From my brief testing this happens on Firefox and not Safari.

For the Realtime API we need a 24,000 Hz sample rate. Do you think there's another solution to this problem? This is Firefox only, correct?

Ah, I see. I think there might be a way around this but I'm not sure. I'll report back in a few minutes.

Working on a resample Audio to 24,000 Hz solution to this pull request, should be updating this shortly

Ok, I think resampling should be working, just improving a bit on the resampling efficiency. Once I get the resampling efficient I'll update the PR.

@khorwood-openai I've added resampling to this pull request, it should be good to review now.
Please just keep in mind that the realtime endpoint is not available yet, so I think it works, but I can't be 100% sure of it as after connecting I get: Could not connect to "wss://api.openai.com/v1/realtime"

@khorwood-openai any updates on this? This fixes issue #5

hello
is not working on my side, some import errors
int16ArrayToAudioBuffer is not defined processChunk@http://localhost:3002/static/js/bundle.js:60860:27 add16BitPCM@http://localhost:3002/static/js/bundle.js:60880:13 ./src/pages/ConsolePage.tsx/ConsolePage/</<@http://localhost:3002/static/js/bundle.js:1026:25 dispatch@http://localhost:3002/static/js/bundle.js:59326:14 handlerWithDispatch@http://localhost:3002/static/js/bundle.js:58327:14 dispatch@http://localhost:3002/static/js/bundle.js:59326:14 receive@http://localhost:3002/static/js/bundle.js:57944:10 ./src/lib/realtime-api-beta/lib/api.js/connect/<@http://localhost:3002/static/js/bundle.js:57845:14
manually fixing the imports "kind of works" but the speech is broken, is too fast. same happens on other browsers. This happens on a Mac computer, didn't try other

hello is not working on my side, some import errors
I'll find some time to check this out tmrw

ok, so, there were a missing exports and imports, I should update this PR soon

ok, so, this is working on firefox now, but it doesn't work as well on chrome for example. this is all the time I had for today to contribute. I'll check out whats going wrong on chrome on this pull request when I can, hopefully soon.

I'm closing this pull request for now, I don't have time to fully commit to making a high quality contribution for now, I'll revisit this in a few months in case this is still something needed.
note to future self:

it seems to be working in firefox but I'd review the logic again
it breaks in anything that is running on chromium engine, this pull request is not good enough if it fixes one thing and breaks everywhere else
squeaky voice in chrome indicates it is using the wrong sample rate on anything outside of firefox
messing with the sample rate can lead to some funny outcomes, such as a very deep voice

if possible and if not fixed, please don't delete the branch, it might be helpful for future me