Implementations of GPT/GPT-J/GPT-Neox

Hi,
GPT/GPT-J/GPT-Neox have similar nn architecures. In my view, the implementations of them in src/fastertransformer/models (multi_gpu_gpt, gptj,gptneox) are also very similar. I am wondering why they are implemeted separately, instead of into one general implementation.
I guess there may be some historical engineering problems or that each implementation was optimized for the best performance. Could you please let me know your thoughts on this?
Thanks!

Because some modules cannot reuse at the time.

I see, thanks! Recently numerous new GPT models have been open-sourced. I am curious to know if there are any plans to combine GPT-related code into a single, general implementation that can support different types of GPT models. Alternatively, if I wanted to leverage FasterTransformer to work with a different GPT model, which implementation would you suggest I base it on, multi_gpu_gpt, gptj, or gptneox?
Thanks.

For merging codes, we will consider.
If you want to leverage exists implementation, you should understand what's difference of your model and exists models, and choose the closest one.

Thanks. I am just worry about potential compatibility problems. Maybe I can just develop a new model based on current status of FT implementations, and then keep up with any future updates that are released.


homebridge-mrcool.MrCool starts, and crashes.

Thanks for the update. I installed and restarted homebridge.
I notice that homebridge-mrcool.MrCool starts, and crashes.
And then repeats.
[2/12/2023, 9:43:55 PM] Registering platform 'homebridge-mrcool.MrCool'
[2/12/2023, 9:43:55 PM] [homebridge-mrcool] Loaded homebridge-mrcool v1.0.0 child bridge successfully
[2/12/2023, 9:43:55 PM] Homebridge v1.6.0 (HAP v0.11.0) (homebridge-mrcool) is running on port 34070.

/homebridge/node_modules/homebridge-mrcool/node_modules/node-mrcool/MrCool.js:413
        return cookieArray.map((element) => element.split(';')[0]).join(';');
                           ^
TypeError: Cannot read properties of undefined (reading 'map')
    at MrCoolAPIConnection.#getCookiesFromResponse (/homebridge/node_modules/homebridge-mrcool/node_modules/node-mrcool/MrCool.js:413:28)
    at MrCoolAPIConnection.#getApplicationCookies (/homebridge/node_modules/homebridge-mrcool/node_modules/node-mrcool/MrCool.js:237:44)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at MrCoolAPIConnection.establishConnection (/homebridge/node_modules/homebridge-mrcool/node_modules/node-mrcool/MrCool.js:117:36)
    at HomebridgeAPI.<anonymous> (/homebridge/node_modules/homebridge-mrcool/src/platform.ts:57:7)
[2/12/2023, 9:43:55 PM] [homebridge-mrcool] Child bridge process ended
[2/12/2023, 9:43:55 PM] [homebridge-mrcool] Process Ended. Code: 1, Signal: null
[2/12/2023, 9:44:02 PM] [homebridge-mrcool] Restarting Process...

I have the same issue. Were you able to find a resolution?

no :(

I have the same problem. I've tried to do some digging, but I'm having trouble accessing the API the code is using. Has anyone tried with postman to see if you are able to get a response?

Sorry for the radio silence everyone! My installation also broke around the same time, and, after some quick checks on their website, it looks like they changed the way their API works, breaking my plugin/API. I (or anyone really) need to use browser debuggers to do some reverse engineering to figure out how their new API works and change the code to work with it. Some of the changes look good (more RESTful and easier to work with), but I haven't had the time to really dig in yet. If anyone has started, I'd be more than willing to help.

I'm definitely willing to help, but lack experience in this area (usually write self-contained react apps with my own backend). Not used to digging into an API with no documentation. Any suggestions where I should get started?

I have made some progress:
The new API is at https://api.smartcielo.com/web/login as opposed to home.cielowigle.com/auth/login.
I've found a POST for login, however it uses an accessToken which I'm not sure where it is being generated or if it's static. So far mine is unchanged, but of that I'm not sure.
There is a GET for Devices and GET for Appliance List.
Major problem I'm having, when I change temperatures from the web app I'm not seeing any in the "Network" activity in my Chrome dev tools. I honestly don't even know how that's possible, so I'm probably missing something.

OK, more progress. I have determined that there is an API for login and getting appliance/device lists, however it appears to be using a web socket for all controls.
The web socket looks like this for a change temperature command:

Websocket response (status update, which also is periodically/randomly sent):

Nice work! What else is needed then? Also, do I see an option here to turn off the LED using this API? That would be amazing!

The code needs to be altered, which I've begun digging into. Unfortunately I'm not sure how the npm ws package functions (I've never messed with web sockets).
@isaac-webb , are you familiar with this part of things?
The new web socket is at: wss://apiwss.smartcielo.com/websocket/?sessionId=<yourSessionId>&token=<yourToken>
Both <yourSessionId> and <yourToken> come from response to a simple POST https request like this:
 const loginUrl = new URL("https://api.smarcielo.com/web/login");     const loginPayload = {       agent: this.#agent,       headers: {         authority: "api.smartcielo.com",         accept: "application/json, text/plain, */*",         "accept-language": "en-US,en;q=0.9",         "cache-control": "no-cache",         "content-type": "application/json; charset=UTF-8",         origin: "https://home.cielowigle.com",         pragma: "no-cache",         referer: "https://home.cielowigle.com/",         "x-api-key": <notPostingHere>,       },       body: {         user: {           userId: username,           password: password,           mobileDeviceId: "WEB",           deviceTokenId: "WEB",           appType: "WEB",           appVersion: "1.0",           timeZone: "America/Los_Angeles",           mobileDeviceName: "chrome",           deviceType: "WEB",           ipAddress: ip,           isSmartHVAC: 0,           locale: "en",         },       },       method: "POST",     };     const response = await fetch(loginUrl, loginPayload);
That's where I am so far. It appears the cookies the old code was using may no longer be necessary? Though I could be wrong on that...

I have it working (mostly)! I need to do a little more cleanup, commenting, and make sure the states are updating appropriately.

I have it working with the exception of the #pingSocket() function! It appears all the cookie stuff is unnecessary with the new code, so I removed all of it. I'm trying to discover if the ping function is really just a refresh token function.

Still having some issues with #pingSocket, it disconnects and reconnects but other than that it works! I would be willing to submit a PR from my fork if @isaac-webb would like, but it would be nice to get some help figuring out the ping/disconnect issue first. Give it a shot! I named it homebridge-cielo, so it should come up in a homebridge search.
My repo is https://github.com/ryanfroese/homebridge-smartcielo

I forked this and got it working, I would definitely be willing to submit a PR if @isaac-webb  would like.
I currently have my forked version published on homebridge, but it has one problem - it disconnects and reconnects. I think the issue is #pingSocket and could use some help with that function. But I got us mostly there! give it a shot.
I named it homebridge-cielo to avoid confusion.

@ryanfroese did you publish it to NPM? It's unclear to me how to install from GitHub in homebridge

Thanks Ryan! I was able to get it installed and configured and I see the command getting sent but nothing happens to the unit. Can I provide any information that might be helpful?

@friism , I have published it on NPM. It still has some issues, which I will be working on when I have time. Namely, it closes the web socket, and the #pingSocket function needs to be altered.
@jfarlow12 , curious. It's working on my end, but I have Cielo Breez Plus thermostats. Also, mine only works for a time before disconnecting, then it works again when reseting the hub. Still a websocket closing issue. I'll keep playing with it. For your issue, we may have to look into the logs, but unfortunately the code doesn't seem to throw errors if a web socket message isn't formatted correctly, etc. This will also take some further work.
Hopefully someone else can jump in to look at the code, since my time is fairly limited these days.

@ryanfroese no worries at all. I appreciate you getting this far! I’m using the Mr Cool mini splits. Maybe there is a code difference but it seems to use the same vendor/technology on the back-end. I can login to the web portal and adjust there so maybe I need to change up the url it’s posting?

It does work from the smart Cielo app which I think is where you are getting the info from right?

@ryanfroese I don't see your package on npm though? https://www.npmjs.com/search?q=homebridge-smartcielo I'm asking since that's where the homebridge UI installs from

@friism

you can find it from the UI in homebridge. This is the one that I added.

Great, got it installed - same as @jfarlow12 the plugin doesn't work with my mrcool setup either (the plugin works and doesn't error, but the settings on the mini split don't actually change)

@jfarlow12 , if you go to "accessories" in the homebridge UI, does it show the thermostats? How familiar are you with code, and running something on the CLI?
Mine is working, though disconnecting once per hour then reconnecting. It still needs some work/cleanup to be "polished", hoping to have time in a couple weeks.

Hey @ryanfroese ill give it a shot. I’m decent at the code so I’ll let you know in the next day or two. I do see the thermostat in the accessories and when I change the temp it sends the command the same way as in HomeKit but still doesn’t actually change. Thanks!

@jfarlow12 , great. Let me know if it gives you any info, or works, when you do that. I'm crossing my fingers that we at least get some info as to what is different in your situation than mine.

Alright, so it looks like it connected in the log, but nothing happens on the mini-split itself. Here is a screenshot of the message and the demo code. Let me know if I can provide anything else!

Alright, I'm guessing that "off, cool, high, 62, 72" are the current settings for your mini split. So it's connecting successfully, and pulling its current status. It's also showing that the status isn't changing after each command is sent. This means your messages aren't being accepted by their API in the websocket (though it looks like the websocket is successful).
I formatted the websocket messages by inspecting how their web app was formatting them, but I'm not sure which parts of it were unique (like the API-X key). If you know how to do this, I think we can get somewhere: access the developer tools in chrome, then click the network, then click "session", then click a control on to control your device. Let me know what the message is, should be able to copy paste here?

Here's an example captured with Safari with my mr cool system

{"action":"actionControl","macAddress":"E8DB84875E8B","deviceTypeVersion":"BI03","fwVersion":"2.5.3,2.5.0","actionSource":"WEB","applianceType":"AC","applianceId":1663,"actionType":"power","actionValue":"on","connection_source":1,"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNEpINDBHVnY4UCIsImV4cCI6MTY3ODgxMzYwOCwiY3JlYXRlZF9hdCI6IjE2NDc5MDQwNDciLCJkZXZpY2VfdHlwZSI6IldFQiIsIm1vYmlsZV9kZXZpY2VfaWQiOiJXRUIiLCJhcHBsaWNhdGlvbl90eXBlIjoiV0VCIiwiYXBwbGljYXRpb25fdmVyc2lvbiI6IjEuMCIsImlwX2FkZHJlc3MiOiIwLjAuMC4wIiwidXNlcl9uYW1lIjpudWxsLCJsb2NhbGUiOiJlbiIsImlzX3NtYXJ0X2h2YWMiOiIwIiwiZW1haWxfaWQiOiJmcmlpc21AZ21haWwuY29tIiwiaXNfZm90YV9yZXF1aXJlZCI6IjEifQ.17lPVjzZdwD9u7VGMzA5fzVzKPJVsiOWLFA8Gq9Z3R0","actions":{"power":"on","mode":"heat","fanspeed":"low","temp":"75","swing":"auto","turbo":"off","light":"off","oldPower":"on"},"mid":"chrome-1678810007","application_version":"1.0.0","ts":1678810242}<PHONE_NUMBER>.5261207

{action: "actionControl", macAddress: "E8DB84866B26", deviceTypeVersion: "BI03",…} action :  "actionControl" actionSource :  "WEB" actionType :  "power" actionValue :  "on" actions :  {power: "on", mode: "heat", fanspeed: "auto", temp: "72", swing: "pos3", turbo: "off", light: "off",…} applianceId :  1663 applianceType :  "AC" application_version :  "1.0.0" connection_source :  1 deviceTypeVersion :  "BI03" fwVersion :  "2.5.3,2.5.0" macAddress :  "E8DB84866B26" mid :  "chrome-1678810334" token :  "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiQ09zZjlYdFNiciIsImV4cCI6MTY3ODgxNDIwNiwiY3JlYXRlZF9hdCI6IjE2MzA1Mjc0NDYiLCJkZXZpY2VfdHlwZSI6IldFQiIsIm1vYmlsZV9kZXZpY2VfaWQiOiJXRUIiLCJhcHBsaWNhdGlvbl90eXBlIjoiV0VCIiwiYXBwbGljYXRpb25fdmVyc2lvbiI6IjEuMCIsImlwX2FkZHJlc3MiOiIwLjAuMC4wIiwidXNlcl9uYW1lIjpudWxsLCJsb2NhbGUiOiJlbiIsImlzX3NtYXJ0X2h2YWMiOiIwIiwiZW1haWxfaWQiOiJqZmFybG93MTJAZ21haWwuY29tIiwiaXNfZm90YV9yZXF1aXJlZCI6IjEifQ.n2dz6y-1pxXy6XV4HfmGbotYUpvI6E3lVHIbKw5iLLQ" ts :<PHONE_NUMBER>

When I get a chance (hopefully soon), I'll comb through that and see if it's formatted differently than mine.

awesome thanks @ryanfroese!

I also just purchased a Smart Cielo thermostat to test out your same setup rather than the Mr Cool unit directly. Hopefully this will be a good datapoint as well.

Just got the Smart Cielo lite today and configured it in home bridge and this is what I received.

Hey @ryanfroese! Not sure if you had a chance to look this over or if there is anything I can test for you. Like I said, I did get a smart Cielo thermostat but it’s still not working. Which model do you have?

@jfarlow12 , yep I need to return to this - hopefully this next week! Work has been hectic. I will have a bit more time especially the week after next.

I totally get it! No worries at all. Thanks for all your work on this.

I will still return to this, but I just poked around a bit this evening, and it appears they changed the API key. If they do that frequently, I'll have to make a way to put the API key into the config... I'm working on re-working that part. I had hard-coded the API key into this for expediency.
Anyone else have any idea if that' just bad luck, or if the API key may change often?

Hello. Any progress? I downloaded the plugin today and it errors out. My error appears different though. I guess it doesn't matter until the API key issue is resolved? Here's my error anyhoo...
/usr/local/lib/node_modules/homebridge-mrcool/node_modules/node-mrcool/MrCool.js:413
        return cookieArray.map((element) => element.split(';')[0]).join(';');
                           ^
TypeError: Cannot read properties of undefined (reading 'map')
    at MrCoolAPIConnection.#getCookiesFromResponse (/usr/local/lib/node_modules/homebridge-mrcool/node_modules/node-mrcool/MrCool.js:413:28)
    at MrCoolAPIConnection.#getApplicationCookies (/usr/local/lib/node_modules/homebridge-mrcool/node_modules/node-mrcool/MrCool.js:237:44)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at MrCoolAPIConnection.establishConnection (/usr/local/lib/node_modules/homebridge-mrcool/node_modules/node-mrcool/MrCool.js:117:36)
    at HomebridgeAPI.<anonymous> (/usr/local/lib/node_modules/homebridge-mrcool/src/platform.ts:57:7)
[6/30/2023, 1:05:32 PM] [homebridge-mrcool] Child bridge process ended
[6/30/2023, 1:05:32 PM] [homebridge-mrcool] Process Ended. Code: 1, Signal: null

@ryanfroese I was able to issue commands to my Mr. Cool devices by sending the correct deviceTypeVersion; see https://github.com/ryanfroese/node-cielo/pull/1 for the changes.

@Taik what are installation instructions to use your branch of node-cielo with the plugin?

@Taik , thank you I just approved your PR and opened up "issues" on node-cielo#1. They seemed to have made another change to the API shortly after I refactored for their API - but it may be minor.

Woah! It works on my mrcool multi-zone setup

Woah! It works on my mrcool multi-zone setup

@friism How did you manage to get it to work?

Woah! It works on my mrcool multi-zone setup

@friism How did you manage to get it to work?

@arharp The latest version of homebridge-cielo (v1.1.5) should contain the library changes; see here.

I have tried for days to get this to work. I am sure its me....can someone please help
Mac Pro Ventura
[10/26/2023, 8:32:38 PM] [homebridge-cielo] Launched child bridge with PID 6872
[10/26/2023, 8:32:38 PM] Registering platform 'homebridge-cielo.cielo'
[10/26/2023, 8:32:38 PM] [homebridge-cielo] Loaded homebridge-cielo v1.1.5 child bridge successfully
[10/26/2023, 8:32:38 PM] Loaded 0 cached accessories from cachedAccessories.0E5AA137548F.
[10/26/2023, 8:32:39 PM] Homebridge v1.6.1 (HAP v0.11.1) (homebridge-cielo) is running on port 57293.
TypeError: Cannot read properties of undefined (reading 'user')
at /usr/local/lib/node_modules/homebridge-cielo/node_modules/node-smartcielo-ws/Cielo.js:264:52
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at CieloAPIConnection.#getAccessTokenAndSessionId (/usr/local/lib/node_modules/homebridge-cielo/node_modules/node-smartcielo-ws/Cielo.js:260:23)
at CieloAPIConnection.establishConnection (/usr/local/lib/node_modules/homebridge-cielo/node_modules/node-smartcielo-ws/Cielo.js:119:5)
at HomebridgeAPI. (/usr/local/lib/node_modules/homebridge-cielo/src/platform.ts:73:7)
TypeError: Cannot read properties of undefined (reading 'sessionId')
at /usr/local/lib/node_modules/homebridge-cielo/node_modules/node-smartcielo-ws/Cielo.js:123:32
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at CieloAPIConnection.establishConnection (/usr/local/lib/node_modules/homebridge-cielo/node_modules/node-smartcielo-ws/Cielo.js:119:5)
at HomebridgeAPI. (/usr/local/lib/node_modules/homebridge-cielo/src/platform.ts:73:7)
[10/26/2023, 8:32:39 PM] [homebridge-cielo] Child bridge process ended
[10/26/2023, 8:32:39 PM] [homebridge-cielo] Process Ended. Code: 1, Signal: null
[Stairs 4E04] The image snapshot handler for the given accessory is slow to respond! See https://homebridge.io/w/JtMGR for more info.
[10/26/2023, 8:32:46 PM] [homebridge-cielo] Restarting Process...
[10/26/2023, 8:32:46 PM] [homebridge-cielo] Launched child bridge with PID 6890
[10/26/2023, 8:32:46 PM] Registering platform 'homebridge-cielo.cielo'
[10/26/2023, 8:32:46 PM] [homebridge-cielo] Loaded homebridge-cielo v1.1.5 child bridge successfully
[10/26/2023, 8:32:46 PM] Loaded 0 cached accessories from cachedAccessories.0E5AA137548F.
[10/26/2023, 8:32:46 PM] Homebridge v1.6.1 (HAP v0.11.1) (homebridge-cielo) is running on port 57293.
TypeError: Cannot read properties of undefined (reading 'user')
at /usr/local/lib/node_modules/homebridge-cielo/node_modules/node-smartcielo-ws/Cielo.js:264:52
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at CieloAPIConnection.#getAccessTokenAndSessionId (/usr/local/lib/node_modules/homebridge-cielo/node_modules/node-smartcielo-ws/Cielo.js:260:23)
at CieloAPIConnection.establishConnection (/usr/local/lib/node_modules/homebridge-cielo/node_modules/node-smartcielo-ws/Cielo.js:119:5)
at HomebridgeAPI. (/usr/local/lib/node_modules/homebridge-cielo/src/platform.ts:73:7)
TypeError: Cannot read properties of undefined (reading 'sessionId')
at /usr/local/lib/node_modules/homebridge-cielo/node_modules/node-smartcielo-ws/Cielo.js:123:32
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at CieloAPIConnection.establishConnection (/usr/local/lib/node_modules/homebridge-cielo/node_modules/node-smartcielo-ws/Cielo.js:119:5)
at HomebridgeAPI. (/usr/local/lib/node_modules/homebridge-cielo/src/platform.ts:73:7)
[10/26/2023, 8:32:47 PM] [homebridge-cielo] Child bridge process ended
[10/26/2023, 8:32:47 PM] [homebridge-cielo] Process Ended. Code: 1, Signal: null

Haven't been able to spend more time on this, but looks like they added a required reCaptcha step during login, which is why auth step fails.

Just recently been trying to integrate Cielo also to my home project. I've stumbled upon multiple different repos, but havn't gotten any of them to work. Latest ones probably fail as mentioned above, because they have introduced captcha.

I wonder would it be possible to:

Connect your android device to PC
Install Cielo Home (https://play.google.com/store/apps/details?id=com.cielo.app.cielohome&hl=en&gl=US)
Enable adb forward
Login in Cielo Home (no captcha there)
Trace the request with e.g. wireshark

Unfortunately I don't have now time to test it out, but will let you know if I progress some day.

Tried to get this working and it just crashes and forces home bridge to reboot over and over just like all the other versions.

Yup, I believe it's basically dead at this point (due to their changes). I had it working for a whopping 3 months before they changed their API. Unfortunate!

If anyone comes up with a solution, submit a PR and I will approve. For now I don't have time to dissect the new API and take the lead on this one.

I wish I knew enough to take a look, but I'm more of a mechanical person and code is a mystery.


Add new .vex-scrollable wrapper around .vex-content

This PR changes Vex's core markup, as suggested a while back, from

to

This is a breaking change, but one that I think is long overdue.
Why is this needed?
With the current markup, when .vex-content is too tall, it overflows .vex, which is a position: fixed element that expands to fill the viewport. Because .vex has overflow: auto, this causes a scrollbar to appear on the .vex element.
Unfortunately, that scrollbar appears behind .vex-overlay, which is in front of .vex and also expands to fill the viewport. That makes the scrollbar unclickable. (Yep, it's weird that browsers do this. Nope, that's not going to change.) Worse, trying to click the scrollbar will cause the modal to close if overlayClosesOnClick is true. A workaround is to add pointer-events: none to .vex-overlay, but this is not supported in older browsers (e.g. IE9) and doesn't solve the problem of the overlay being rendered in front of the scrollbar.
What breaks under this change?

All theme styles that added padding to .vex (in order to move the content down from the top of the screen) will now need to add that padding to .vex-scrollable instead.
...Probably lots of other things.

So on that note, let's get this ball rolling! Please pull down this PR and play around with it. :baseball:

I specifically came here looking for a fix to this issue.... Really concerns me that this has not been fixed yet when this PR was posted two years ago. Is this project even still in development?

I believe this was addressed in another issue/PR. Cleaning up house atm...


BEHAVIOR task loading existing scene cache

In env_base.py, it overwrites the scene usd with the scene cache usd.
It skips loading the robot if a robot is already in the scene. This seems super hacky.
Also, config file will contain additional objects which will be loaded.
Let's find a unified way to handle all of these.

resolved


Upgrade Linux Kernel for flatcar-4054 from 6.6.43 to 6.6.46

Subject says it all.

Closing in favor of: https://github.com/flatcar/scripts/pull/2243.


Add some documentation for the example

Add documentation/tutorial explaining how to get from the plain heat equation to the instrumented code in example/ with PDI configuration.

@ksiero @tpaluszk you can report on your progress in this issue.

closed

Files provided by @ksiero & @tpaluszk attached:

PDI_API.pdf
PDI_Heat_expained.pdf
PDI_tutorial.pdf
PDI_yaml.pdf


Improve the display options when multiple sync configurations are found

Is your feature request related to a problem?
When attempting a sync using a devspace.yaml with multiple sync configurations, the CLI presents a prompt to select one of the sync configurations to be utilised.
The display of the available options can be a little vague in information, in that it does not provide uniquely identifable information as to which container / image you are making a selection of.
> devspace sync --config=devspace.yaml
[info]   Using namespace 'example'
[info]   Using kube context 'gke_internal-au-se1'

? Multiple sync configurations found. Which one do you want to use?
  [Use arrows to move, space to select, type to filter]
> 0: Sync ./ (local) <-> /srv (container)
  1: Sync ./ (local) <-> /srv (container)
  2: Sync ./public (local) <-> /export/public (container)

Which solution do you suggest?
The messaging in the options should include an unique identifier for the sync entry — this identifier could be the sync configuration's imageName, labelSelector or containerName configuration (any / all of which are defined for each sync configuration)
Which alternative solutions exist?
Using the sync command, it's possible to declare on the command line using --container or --label-selector — but that's moreso a workaround rather than a solution to the display of the selection options

/kind feature

@matthew-muscat thanks for reporting this issue! Yes that makes sense, we can add the image name and label selector to the option text.

@matthew-muscat thanks for reporting this issue! Yes that makes sense, we can add the image name and label selector to the option text.

Thanks @FabianKramm for getting this change introduced — much appreciated.
As these changes were merged in as part of #1302 and released with v5.7.3 — I'll be closing this request

Thanks @FabianKramm for getting this change introduced — much appreciated.
As these changes were merged in as part of #1302 and released with v5.7.3 — I'll be closing this request


Add Ollama as a supported embedding provider

Description
Add support for Ollama as an embedding provider
Fixes #1220
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)
[ ] Documentation update

How Has This Been Tested?
Updated configs/ollama.yaml and validated embedding test are passing. I also tested with local Ollama instance.
Please delete options that are not relevant.

[x] Unit Test
[ ] Test Script (please provide)

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[x] I have checked my code and corrected any misspellings

Maintainer Checklist

[ ] closes #xxxx (Replace xxxx with the GitHub issue number)
[ ] Made sure Checks passed

Any updates on this?

Would love to get this implemented

Would love to have this feature. Game changer

Also need this feature before I can proceed

Will release this feature in the new version later tonight. :)

I was just trying to use this new feature and found that the OllamaEmbedderConfig does not accept the "vector_dimension" and other arguments, only model and base_url. Since ollama allows us to load several models, each with its own vector dimension (afaik, but then I'm completely new to this), shouldn't we also pass the other arguments?
With this hack, simply passing the rest of the config as kwargs, it seems to work:
@register_deserializable
class OllamaEmbedderConfig(BaseEmbedderConfig):
    def __init__(
        self,
        model: Optional[str] = None,
        base_url: Optional[str] = None,
        **kwargs
    ):
        super().__init__(model, **kwargs)
        self.base_url = base_url or "http://<IP_ADDRESS>:11434"

When researching, it looked like Ollama didn't have a way to configure the vector size, so i didn't include it intentionally. Happy to add additional kwargs if that is the right way to go.
For reference: https://github.com/ollama/ollama/issues/651

Even if it is not configurable in ollama, different embedders produce vectors of different dimensions. E.g. I was trying to use avr/sfr-embedding-mistral which produces vectors of 4096, while milkey/gte produces 1024 dimensions. I assumed, that the embedding would then be cut down.
However, I just saw that the chromadb holds embeddings of dim 4096 (for avr/sfr-embedding-mistral) even if the vector_dimension is not set. So obviously, I'm out of my depth here.
In any case it was kinda confusing, that vector_dimension was not recognized as an argument.


Yo office teams toolkit

Looks good @Rick-Kirkham. I have some minor feedback, but also want to clarify that I can't test this yet, right? I have the pre-release version of Teams Toolkit, but don't see the Outlook Add-in option.

I think that is expected. This won't publish until around March 29th. I'll send you the instructions for the bug bash tomorrow in an email. I don't want to put that link in a public place like this.


How do I change time on Flex

I am wondering how i go about changing time on what i believe is flex, It is showing 12hrs behind but displaying at time message went out.

Messages are stored using the timestamp they were received, any timestamp on the message is discarded.
The browser does the timezone conversion so any issue is usually client side.

Ignore previous response - see this Issue https://github.com/pagermon/pagermon/issues/285


Up/Down during LSP document symbols highlights multiple entries

NVIM v0.5.0-728-gf6ac37560
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/gcc-5 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=auto -DINCLUDE_GENERA
TED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/home/travis/build/neovim/bot-ci/build/neovim/build/config -I/home/travis/build/neovim/bot-ci/build/neovim/src -I/home/travis/build/neovim/bot-ci/build/neovim/.deps/usr/include -I/
usr/include -I/home/travis/build/neovim/bot-ci/build/neovim/build/src/nvim/auto -I/home/travis/build/neovim/bot-ci/build/neovim/build/include
Compiled by travis@travis-job-7d98421d-d36d-46f4-bb40-7d1aaad0f65b

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/home/travis/build/neovim/bot-ci/build/neovim/build/nvim.AppDir/usr/share/nvim"

(On commit fe63e4f1defdc0d5f4d09a7026418c464c2e9f79 of telescope.vim)

Looks like the lsp_document_symbols picker isn't using bat for preview. Is there a way to make it use bat instead of the vim buffer for preview?

Ah, sorry I didn't see this earlier.
You can pass a previewer in manually. I can probably also fix this to remove the highlights between each iteration (at some point)

just do previewer = <create previewer here> in the options you pass to the builtin.

Oh yah I have this issue as well. Very wired behavior


Turn matrix to storage mode "double"

Fixes https://github.com/microsoft/LightGBM/issues/3139
Just copy-pasted code snippet from lgb.Dataset initalizer.
As I am still not very familiar with the LightGBM data logic, @Laurae2 and @jameslamb would need to confirm that this makes any sense.

@jameslamb This issue will also solve https://github.com/microsoft/LightGBM/issues/3094

thanks for the contribution and for using LightGBM, @mayer79 !


navigator.onLine false positives

The component currently fails to detect offline status reliably and produces many false positives.
From the navigator.onLine doc: while you can assume that the browser is offline when it returns a false value, you cannot assume that a true value necessarily means that the browser can access the internet.
Relying on navigator.onLine to detect offline status is a good idea. Relying on it to detect online status is not.
I suggest changing to reflect this, basically the logic would go like !navigator.online ? definitelyOffline : pollToDetectOnline
If that makes sense, I can PR this. I understand there's a concern with the polling volume and we don't want to be wasteful but as it currently is, there are tons of false positive conditions.

Hey @ash0x0 We have logic that determines the Browser being used in the user agent. This should prevent any false positives like you are mentioning as they all have different definitions of "online". Can you share a sandbox or example of the false positives ? Particularly , what user agent is causing the false positives?

For me it was electron 12, which is chromium 89. Not sure if electron 13 has the same problem but 11 certainly does.

@ash0x0 It may be the issue of the object's state update.


Multi-language support?

Expect to be able to speak multiple languages in one sentence at the same time, which will be a good thing

It is able to apply multilingual scheme as SANE-TTS, VITS-based multilingual TTS, and apply code-switching like their demo.
Currently, we do not have plans to release support for additional languages.
However, if you're interested in multilingual support, our pull request is open for contributions.

Thank you for your timely reply! Looking forward to the release of training code


⚠ Bofrost.be has degraded performance

In e7a883a, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 2002 ms

Resolved: Bofrost.be performance has improved in c19826f after 2 hours, 6 minutes.


"Expected type table, got 'nil' instead." when indexing new assignment to optional type

In some of my Roblox code, I use a multi-step pattern like this to assign default values to a type:
--!strict
local test: Part? = workspace:FindFirstChildOfClass("Part")

if not test then
	test = Instance.new("Part") -- maybe should refine type to `Part` if it fits?
	test.CFrame = CFrame.lookAt(Vector3.zero, Vector3.one)
	test.BrickColor = BrickColor.Blue()
	test.Anchored = true
	test.Size = Vector3.one * 4
	test.Shape = Enum.PartType.Ball
	test.Name = "Dummy"
	test.Parent = workspace
end

When Luau analyzes this code, each index of test.{X} produces the following warning:
Expected type table, got 'nil' instead.

Some workarounds in this situation include:

Using Part instead of Part? for the type of test
Using test == nil instead of not test, with an assert(test) call after assigning it

The warnings produced here (without the assert) are more correct: Value of type 'Part?' could be nil

Using both workarounds at the same time eliminates the issue completely... at the cost of lying about the type being optional.

In standalone Luau, this snippet can reproduce the issue:
------------------------------------------------------
--!strict

type Test = {
	A: { B: string }?
}

local function maybeGetTest(): Test?
	return nil
end

------------------------------------------------------

local test = maybeGetTest()

if not test then
	test = {}

	test.A = {
		B = "Test"
	}
end

------------------------------------------------------

See https://github.com/Roblox/luau/issues/535 - requires type states, which is on the roadmap.


reaction()

subscribe + redispatch  event
dispatcher.reaction('action', (payload) => ({
    reaction: payload
}))

// Promise
dispatcher.reaction('action', (payload) => Promise.resolve({ reaction: payload }))

// multi
dispatcher.reaction({
  action: (payload) => ({ reaction: payload })
})

dispatcher.subscribe('reaction', (payload) => {})

const dispose = dispatcher.reaction({
  action: (payload) => ({ reaction: payload })
})

export type Reactions<T> = {[P in keyof T]?: (payload: T[P]) => Partial<T> | Promise<Partial<T>>};

export interface Reaction<T> {
    (reactions: Reactions<T>): Function;
}


different api call

Hi,
I'm using another api to list in Datagrid. But when I call it I'm getting an error as follows

The api that I use; https://reqres.in/api/products
Why do i get this error? Can you help me?
Thank you

Hi, and thanks for your question. As explained in the admin-on-rest contributing guide, the right place to ask a "How To" question, get usage advice, or troubleshoot your own code, is StackOverFlow.
This makes your question easy to find by the core team, and the developer community. Unlike Github, StackOverFlow has great SEO, gamification, voting, and reputation. That's why we chose it, and decided to keep GitHub issues only for bugs and feature requests.
So I'm closing this issue, and inviting you to ask your question at:
http://stackoverflow.com/questions/tagged/admin-on-rest
And once you get a response, please continue to hang out on the admin-on-rest channel in StackOverflow. That way, you can help newcomers and share your expertise!

Ok thank you
2018-05-15 15:02 GMT+03:00 Gildas Garcia<EMAIL_ADDRESS>
Closed #16 https://github.com/marmelab/admin-on-rest/issues/16.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/marmelab/admin-on-rest/issues/16#event-1627017739,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AezoGTmhxIxetQoestuaFcMiJ3Ucjvyqks5tysPbgaJpZM4T_VSg
.


Revoke Campaign Manager Acccess

Breakout from #1802
An org admin should be able to revoke a user's campaign manager access.
On the user lister page for the campaign, add a button with a confirmation screen to allow an org admin to revoke campaign manager access from a user

Hi, would I be able to take this task?


Adding check for packages to handle staging account.

Currently the packages source registry does not handle staging account. This points the sourceRegistry to staging during a staging run

/retest

/lgtm
/approve

/cherrypick release-0.14


perf: auto batch flush (more than 2x times performance gain)

Refer to issue: https://github.com/redis/lettuce/issues/2945
Make sure that:

[Y] You have read the contribution guidelines.
[Y] You have created a feature request first to discuss your contribution intent. Please reference the feature request ticket number in the pull request.
[Y] You applied code formatting rules using the mvn formatter:format target. Don’t submit any formatting related changes.
[Y] You submit test cases (unit or integration tests) that back your changes.

The optimization idea comes from group commit in database technology.
Bench result:
Test Env: AWS EC2: t2.2xlarge
Redis Version: 7.1.0
Redis Server: cache.r7g.large
Test Model: multi thread sync get, 512 threads, each thread do 10,000 get
Benchmark code:
package io.lettuce.bench;

import java.text.NumberFormat;
import java.time.Duration;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicLong;

import io.lettuce.bench.utils.BenchUtils;
import io.lettuce.core.AutoBatchFlushOptions;
import io.lettuce.core.ClientOptions;
import io.lettuce.core.RedisClient;
import io.lettuce.core.RedisURI;
import io.lettuce.core.TimeoutOptions;
import io.lettuce.core.api.StatefulRedisConnection;
import io.lettuce.core.codec.ByteArrayCodec;
import io.lettuce.core.internal.LettuceAssert;
import io.netty.util.internal.logging.InternalLogger;
import io.netty.util.internal.logging.InternalLoggerFactory;

/**
 * @author chenxiaofan
 */
public class MultiThreadSyncGet {

    private static final InternalLogger logger = InternalLoggerFactory.getInstance(MultiThreadSyncGet.class);

    private static final int THREAD_COUNT = 32;

    private static final int LOOP_NUM = 500_000;

    private static final int DIGIT_NUM = 9;

    private static final String KEY_FORMATTER = String.format("key-%%0%dd", DIGIT_NUM);

    private static final String VALUE_FORMATTER = String.format("value-%%0%dd", DIGIT_NUM);

    static {
        // noinspection ConstantValue
        LettuceAssert.assertState(DIGIT_NUM >= String.valueOf(LOOP_NUM).length() + 1, "digit num is not large enough");
    }

    void test(boolean useBatchFlush) {
        try (RedisClient redisClient = RedisClient.create(RedisURI.create("<IP_ADDRESS>", 6379))) {
            final ClientOptions.Builder optsBuilder = ClientOptions.builder()
                    .timeoutOptions(TimeoutOptions.builder().fixedTimeout(Duration.ofSeconds(7200)).build());
            if (useBatchFlush) {
                optsBuilder.autoBatchFlushOptions(AutoBatchFlushOptions.builder().enableAutoBatchFlush(true).build());
            }
            redisClient.setOptions(optsBuilder.build());
            final StatefulRedisConnection<byte[], byte[]> connection = redisClient.connect(ByteArrayCodec.INSTANCE);

            logger.info("thread count: {}", THREAD_COUNT);
            final Thread[] threads = new Thread[THREAD_COUNT];
            final AtomicLong totalCount = new AtomicLong();
            final AtomicLong totalLatency = new AtomicLong();
            for (int i = 0; i < THREAD_COUNT; i++) {
                threads[i] = new Thread(() -> {
                    for (int j = 0; j < LOOP_NUM; j++) {
                        final long cmdStart = System.nanoTime();
                        final byte[] resultBytes = connection.sync().get(genKey(j));
                        totalLatency.addAndGet((System.nanoTime() - cmdStart) / 1000);
                        LettuceAssert.assertState(Arrays.equals(genValue(j), resultBytes), "value not match");
                        totalCount.incrementAndGet();
                    }
                });
            }
            final long start = System.nanoTime();
            Arrays.asList(threads).forEach(Thread::start);
            Arrays.asList(threads).forEach(thread -> {
                try {
                    thread.join();
                } catch (InterruptedException e) {
                    Thread.currentThread().interrupt();
                    throw new IllegalStateException(e);
                }
            });
            double costInSeconds = (System.nanoTime() - start) / 1_000_000_000.0;
            logger.info("Total commands: {}", NumberFormat.getInstance().format(totalCount.get()));
            logger.info("Total time: {}s", costInSeconds);
            logger.info("Avg latency: {}us", totalLatency.get() / (double) totalCount.get());
            logger.info("Avg QPS: {}/s", totalCount.get() / costInSeconds);
            BenchUtils.logEnterRatioIfNeeded(logger);
            BenchUtils.logAvgBatchCount(logger);
        }
    }

    private byte[] genKey(int j) {
        return String.format(KEY_FORMATTER, j).getBytes();
    }

    private byte[] genValue(int j) {
        return String.format(VALUE_FORMATTER, j).getBytes();
    }

    public static void main(String[] args) {
        for (boolean useBatchFlush : new boolean[] { true, false }) {
            logger.info("=====================================");
            logger.info("useBatchFlush: {}", useBatchFlush);
            new MultiThreadSyncGet().test(useBatchFlush);
        }
        logger.info("=====================================");
    }

}

Bench result:
=====================================
10:53:11,074 INFO  [main] bench.MultiThreadSyncExists (MultiThreadSyncExists.java:129) - useBatchFlush: true
10:53:11,074 INFO  [main] bench.MultiThreadSyncExists (MultiThreadSyncExists.java:126) - batch size: 512
10:53:58,552 INFO  [main] bench.MultiThreadSyncExists (MultiThreadSyncExists.java:74) - Total commands: 5,120,000
10:53:58,552 INFO  [main] bench.MultiThreadSyncExists (MultiThreadSyncExists.java:75) - Total time: 47.009796512s
10:53:58,553 INFO  [main] bench.MultiThreadSyncExists (MultiThreadSyncExists.java:76) - Avg latency: 4693.2784484375us
10:53:58,553 INFO  [main] bench.MultiThreadSyncExists (MultiThreadSyncExists.java:77) - Avg QPS:<PHONE_NUMBER>7866229/s
=====================================
10:53:58,597 INFO  [main] bench.MultiThreadSyncExists (MultiThreadSyncExists.java:129) - useBatchFlush: false
10:55:53,352 INFO  [main] bench.MultiThreadSyncExists (MultiThreadSyncExists.java:74) - Total commands: 5,120,000
10:55:53,352 INFO  [main] bench.MultiThreadSyncExists (MultiThreadSyncExists.java:75) - Total time:<PHONE_NUMBER>13s
10:55:53,352 INFO  [main] bench.MultiThreadSyncExists (MultiThreadSyncExists.java:76) - Avg latency: 11458.427779882812us
10:55:53,353 INFO  [main] bench.MultiThreadSyncExists (MultiThreadSyncExists.java:77) - Avg QPS: 44625.67527227433/s
=====================================

@tishun Hi, bro, could you help evaluate this PR? Got huge performance gain!

batching will cause latency, AFAIK, netty already has balance handler for this: FlushConsolidationHandler

@Roiocam Thx for the comments! I did a benchmark of my solution against FlushConsolidationHandler,
see: https://github.com/okg-cxf/lettuce-core/blob/test/auto-batch-flush/bench-c5n-2xlarge-exists-b8.bench
https://github.com/okg-cxf/lettuce-core/blob/test/auto-batch-flush/bench-c5n-2xlarge-exists-b64.bench

@tishun Hi, bro, could you help evaluate this PR? Got huge performance gain!

Hey @okg-cxf , thanks for filing this PR.
Since it is a large change that touches quite critical pieces of the code I will need some more time to go through it.
Currently I am mainly focused on #2933 but I will come back to this issue as soon as possible.


Making searchbar appear in all assets

Closes: https://github.com/oceanprotocol/market/issues/335
Changes proposed in this PR:

Small change to the redirect URL to make sure that the search bar is still shown when the user clicks on "all data assets"

Nice. I think you should do the same for the ALL DATA SETS button, right now when clicking that the search bar doesn't appear.

Sure, I'll do the same for the ALL DATA SETS button.
I'm not exactly sure what you mean when you say you can't get all the data when searching, I wasn't able to recreate that. Is it something we should address in a separate issue?

So you go to the page where you see all data sets and search for something. After search you want to see again all the data sets, but you can't, you only see those returned by search. My intuition was to empty the search bar and hit search again to get all the data sets, but not working when the input is empty.
It only make sense now when we have the search bar on the page where you se all the data sets so I think should be handled here.

Thanks for the feedback @KatunaNorbert, I've changed the search function so that if you click on it with nothing in the box, it will show all of the datasets.

personally, I did not consider the missing search bar in the search pages where users arrive via a link a bug. Main reason is that by adding a search bar at all times, we assume all users arriving there want to search. This is especially a problem on viewports where space is critical, e.g. on mobile here 50% of our users are. This is what they are thrown into, on every page of every result:

So the least we should do is to minimize the space this search field takes over, like using a small version, not wrapping input &
button on mobile, whatever helps.
The proper solution would be to find a consistent, global place for a search bar, e.g. in the main menubar. Which could be triggered by a search icon, or be expanded on bigger viewports. Studying how the Rarible search works could be an inspiration https://rarible.com/search?query=ocean

@kremalicious Thanks for feedback, I see your point. One possible (quick) solution here is for the change I made to only be applied to desktop. So the search bar would be visible all of the time for desktop users but nothing would change for mobile users. I implemented that in the last commit to show how it could look.
Otherwise, if that doesn't seem suitable then we can look at redesigning to top banner to have a mobile optimised search bar in a similar style to Rarible.

By the way, there was a change I did to the search function that Norbert requested as part of this (allowing users to submit an empty search and get all results). I have moved it into a separate pull request in case we want to merge it: https://github.com/oceanprotocol/market/pull/561

let's close this as it's not the right solution for the problem of a somewhat hidden search in some view. The better solution is a proper place for a search bar which user can invoke from any screen as described in #665, whereas #672 provides the needed space for adding this into the menubar


Refactor getIsStateAttribute (Old 275)

In gitlab by @A-Lawrence on Aug 31, 2015, 01:08
Refactor getIsStateAttribute to IsState.

In gitlab by @A-Lawrence on Aug 31, 2015, 01:13
Refactored the getIsStateAttribute -> isState.  Also fixed a few other getter names which were missing the "Attribute" suffix.  Resolves issue #488462 (275).
@NFarrington, just to make you aware of this.
ÔåÆ <<cset 3896256a1465>>
ALawrence66 - 2015-02-25T22:26:44.280489+00:00


add working-dir to the katib-ui charm's pebble service

This enables using a rock as a drop-in replacement for the upstream docker image
Fixes #158

Reopened under a different branch here


Make package.json scripts work on Windows

Currently there are several bashisms in the various package.json scripts which makes it impossible to work on boardgame.io natively on Windows without using a Linux emulation layer such as WSL. This commit replaces the bashisms with cross-platform Node commands.
Checklist

[x] Use a separate branch in your local repo (not master).
[x] Test coverage is 100% (or you have a story for why it's ok).

Thanks for taking the time to do this!!  Will take a closer look in a few days (busy this week).

@c-w Made a few changes.  Let me know if they look good to you.
The main addition is to run "build" in prestart so you can just do:
npm install
npm start

when you first clone the repo.

@nicolodavis Changes LGTM.

Thanks Clemens!


Unable to setup AWS authentication

Not sure this is an issue, but I am not able to get SM to scan AWS. I could just be doing something wrong.

If it matters at all I'm on 16.04:
ubuntu@ip-172-31-31-109:/var/log/security_monkey$ uname -a
Linux ip-172-31-31-109 4.4.0-1035-aws #44-Ubuntu SMP Tue Sep 12 17:27:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

I'm using SM master
Only thing I see in the error log is
ubuntu@ip-172-31-31-109:/var/log/security_monkey$ cat security_monkey.error.log
2017/09/19 18:58:35 [error] 1838#1838: *2 open() "/usr/local/src/security_monkey/security_monkey/static/ico/favicon.ico" failed (2: No such file or directory), client: {SOME IP} , server: , request: "GET /static/ico/favicon.ico HTTP/1.1", host: "ec2-{SOME IP}.compute-1.amazonaws.com", referrer: "https://ec2-{SOME IP}.compute-1.amazonaws.com/login?next=https%3A%2F%2Fec2-{SOME IP}.compute-1.amazonaws.com%2F"

You need to restart the scheduler. Please review the documentation here: https://github.com/Netflix/security_monkey/blob/develop/docs/userguide.md#adding-an-account-in-the-web-ui
Alternatively, you can run the monkey find_changes command on the instance.

I have restarted the manager several times
Wouldn't you need the IAM role secret at some point?

What happens if you run the monkey find_changes command?

sorry, missed this section of the guide https://github.com/Netflix/security_monkey/blob/develop/docs/iam_aws.md
I was attempting to use an IAM user, not an EC2 role.


Split out dependency between delete env and fly deploy with lint and test

Split out so there is no dependency of lint and test from environment and fly deploy deletion

I've used this command so far to delete the environments:
gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /repos/seedcase-project/seedcase-sprout/environments --jq '.environments.[].name' | while read line ; do gh api --method DELETE -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /repos/seedcase-project/seedcase-sprout/environments/$line ; done

We aren't prioritizing the GUI any time soon, if at all. Closing.


Add importValueMap option and key-value mock notation

At @purple-technology we use Fn::ImportValue because of our serverless monorepo approach, so adding support for Fn::ImportValue mocking is quite crucial for us.
Also we use a lot of serverless variables in the import names, so I added also implementation of key-value notation.
README:

Key-value mock notation
In some special cases you will need to use key-value mock nottation.
Good example can be case when you need to include serverless stage value (${self:provider.stage}) in the import name.
This notation can be used with all mocks - refMap, getAttMap and importValueMap
provider:
  environment:
    FINISH_ACTIVITY_FUNCTION_ARN:
      Fn::ImportValue: other-service-api-${self:provider.stage}-url

custom:
  serverless-appsync-simulator:
    importValueMap:
      - key: other-service-api-${self:provider.stage}-url
        value: "https://other.api.url.com/graphql"

@FilipPyrek
This is a really cool new feature! Definitely useful.
Thank you!
LGTM.
Please resolve conflict

@FilipPyrek
This is a really cool new feature! Definitely useful.
Thank you!
LGTM.
Please resolve conflict

Thank you @bboure. Conflicts have been resolved. 👍

Released in v0.5.0 🚀


Single Sign On(SSO) is not working

We are developing a Flutter app and need to integrate OAuth2. We also have existing web app that is OAuth2 enabled, and the user can open the web links from our (new) Flutter app.
We have decided to use “oauth2_client” to implement the authentication part mainly to support SSO between the flutter app + the web app that we open inside the mobile app in few screens. And we are using “url_launcher” package to open the web app links.
We can login inside the app using oauth2_client. (Thank you for this amazing package)
However, when I login to the mobile app, and try to open the web app link using “url_launcher” package the web app prompts for the login credentials. But our expectation is that it should not prompt for login again because user already logged in for the same OAuth2 configuration.
I would like to get some understanding on this problem.
P.S
Edited:-
I could able to resolve this in android by using

webAuthOpts: {'preferEphemeral': false}, in "oauth2_client" and
Using ChromeSafariBrowser from "flutter_inappwebview" package.

But the issues remains same in iOS.

I am closing this ticket. Because I realised that this is more related to In-App browser and Apple restrictions.


Correction for raw affiliation Montpellier Interdisciplinary Center on Sustainable Agri-food systems (MoISA), French National Research Institute for Sustainable Development (IRD),

Correction needed for raw affiliation Montpellier Interdisciplinary Center on Sustainable Agri-food systems (MoISA), French National Research Institute for Sustainable Development (IRD),
raw_affiliation_name: Montpellier Interdisciplinary Center on Sustainable Agri-food systems (MoISA), French National Research Institute for Sustainable Development (IRD),
new_rors: 05q3vnk25;043r5t677;011xg1225
previous_rors: 05q3vnk25;043r5t677
works_examples: W4382653036
contact: 9513c9938e9f401c1ec2d5241eff7f02:7edc1124ba1113c1be4509b0c7144d8d700e @ inrae.fr

This issue was accepted and ingested by the OpenAlex team on 2024-12-19. The new affiliations should be visible within the next 7 days.


revert logging stress tests

Revert "tests: logging: Add stress test"
Revert "testsuite: ztress: Add test skipping if system clock is too high"
Revert "logging: Use spin lock"

This is causing lots of failures in main branch.

@nashif any more details what is failing?
I'm running locally tests/subsys/logging/log_stress for all platforms and it is passing.
If something else fails that would indicate that using spin_lock instead of irq_lock triggered some failures.


wemo emulated devices fails

Home Assistant release with the issue:
0.88.1
Last working Home Assistant release (if known):
I don't know :(
Operating environment (Hass.io/Docker/Windows/etc.):
Hass.io
Component/platform:
wemo
Description of problem:
No wemo device appears :(
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
wemo:
  static:
    - <IP_ADDRESS>:21900

Traceback (if applicable):
019-02-24 19:23:02 ERROR (MainThread) [homeassistant.core] Error doing job: Future exception was never retrieved
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.7/site-packages/homeassistant/components/wemo/__init__.py", line 140, in discover_wemo_devices
    device = pywemo.discovery.device_from_description(url, None)
  File "/usr/local/lib/python3.7/site-packages/pywemo/discovery.py", line 45, in device_from_description
    uuid = deviceParser.parseString(xml.content).device.UDN
  File "/usr/local/lib/python3.7/site-packages/pywemo/ouimeaux_device/api/xsd/device.py", line 1596, in parseString
    doc = parsexml_(BytesIO(inString))
  File "/usr/local/lib/python3.7/site-packages/pywemo/ouimeaux_device/api/xsd/device.py", line 64, in parsexml_
    doc = etree_.parse(*args, **kwargs)
  File "src/lxml/etree.pyx", line 3424, in lxml.etree.parse
  File "src/lxml/parser.pxi", line 1857, in lxml.etree._parseDocument
  File "src/lxml/parser.pxi", line 1877, in lxml.etree._parseMemoryDocument
  File "src/lxml/parser.pxi", line 1765, in lxml.etree._parseDoc
  File "src/lxml/parser.pxi", line 1127, in lxml.etree._BaseParser._parseDoc
  File "src/lxml/parser.pxi", line 601, in lxml.etree._ParserContext._handleParseResultDoc
  File "src/lxml/parser.pxi", line 711, in lxml.etree._handleParseResult
  File "src/lxml/parser.pxi", line 640, in lxml.etree._raiseParseError
  File "<string>", line 1
lxml.etree.XMLSyntaxError: Start tag expected, '<' not found, line 1, column 1

@sqldiablo can you help?

I'm using https://github.com/dsandor/fauxmojs for emulation.

It looks like the emulation isn't returning proper/well-formed XML during SSDP discovery. Specifically, the device returns a setup (or description) URL during discovery. When pywemo fetches that URL, it's expecting to get an XML document with API information on how to interact with the device. The error indicates that whatever is being returned by the device's setup/description URL doesn't start with a < character (so it doesn't appear to be well-formed XML).
You're probably going to need to do a packet capture with a tool like Ethereal to see what is happening during SSDP discovery in order to debug this. You can also try turning on debug logging for the wemo component, discovery, and pywemo (see below) to see whether discovery gets far enough to log what the setup URL for the device is. If it doesn, you'll be able to find the setup URL in the log and then use a web browser to see what is being returned at that URL.
logger:
  default: warning
  logs:
    homeassistant.components.discovery: debug
    homeassistant.components.wemo: debug
    pywemo: debug

If I had to wager a fairly uneducated guess as to the cause, I'd guess that the emulation is returning some kind of error or malformed XML when pywemo goes to access the setup/description URL, so you may want to check debug logging on the emulation as well.

I debug and this the result XML:
|
-- | --
  | urn:Fauxmo:device:controllee:1
  | office light
  | Belkin International Inc.
  | Emulated Socket
  | 3.1415
  | uuid:Socket-1_0-0de91340-5c21-4142-8353-9731b5633979
  |

Package capture:
.23 --> HASS.IO
.22 --> EMULATED WEMO
  discoveryService sending device response. { address: '<IP_ADDRESS>' } +0ms
  discoveryService << server got: M-SEARCH * HTTP/1.1
  discoveryService ST: upnp:rootdevice
  discoveryService MX: 2
  discoveryService MAN: "ssdp:discover"
  discoveryService HOST: <IP_ADDRESS>:1900
  discoveryService
  discoveryService  from <IP_ADDRESS>:57892 +4ms
  discoveryService >> sending response string:  HTTP/1.1 200 OK
CACHE-CONTROL: max-age=86400
DATE: 2019-02-04
EXT:
LOCATION: http://<IP_ADDRESS>:21900/0de91340-5c21-4142-8353-9731b5633979/setup.xml
OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01
01-NLS: 10
SERVER: Unspecified, UPnP/1.0, Unspecified
ST: upnp:rootdevice
USN: uuid:Socket-1_0-0de91340-5c21-4142-8353-9731b5633979::upnp:rootdevice

 +1ms
  discoveryService >> sending response string:  HTTP/1.1 200 OK
CACHE-CONTROL: max-age=86400
DATE: 2019-02-04
EXT:
LOCATION: http://<IP_ADDRESS>:21901/3267998a-f46d-46ef-8474-0caab2b099b0/setup.xml
OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01
01-NLS: 10
SERVER: Unspecified, UPnP/1.0, Unspecified
ST: upnp:rootdevice
USN: uuid:Socket-1_0-3267998a-f46d-46ef-8474-0caab2b099b0::upnp:rootdevice

 +2ms
  discoveryService sending device response. { address: '<IP_ADDRESS>' } +0ms
  discoveryService >> sent response ssdp discovery response +3ms
  discoveryService sending device response. { address: '<IP_ADDRESS>' } +0ms
  discoveryService >> sent response ssdp discovery response +1ms
  discoveryService sending device response. { address: '<IP_ADDRESS>' } +1ms

Hass.IO debug
2019-02-24 21:03:25 DEBUG (SyncWorker_8) [homeassistant.components.wemo] Beginning WeMo device discovery...
2019-02-24 21:03:25 DEBUG (SyncWorker_8) [homeassistant.components.wemo] Adding statically configured WeMo devices...
2019-02-24 21:03:25 INFO (MainThread) [homeassistant.components.discovery] Found new service: hassio {}
2019-02-24 21:03:25 ERROR (MainThread) [homeassistant.core] Error doing job: Future exception was never retrieved
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.7/site-packages/homeassistant/components/wemo/__init__.py", line 140, in discover_wemo_devices
    device = pywemo.discovery.device_from_description(url, None)
  File "/usr/local/lib/python3.7/site-packages/pywemo/discovery.py", line 45, in device_from_description
    uuid = deviceParser.parseString(xml.content).device.UDN
  File "/usr/local/lib/python3.7/site-packages/pywemo/ouimeaux_device/api/xsd/device.py", line 1596, in parseString
    doc = parsexml_(BytesIO(inString))
  File "/usr/local/lib/python3.7/site-packages/pywemo/ouimeaux_device/api/xsd/device.py", line 64, in parsexml_
    doc = etree_.parse(*args, **kwargs)
  File "src/lxml/etree.pyx", line 3424, in lxml.etree.parse
  File "src/lxml/parser.pxi", line 1857, in lxml.etree._parseDocument
  File "src/lxml/parser.pxi", line 1877, in lxml.etree._parseMemoryDocument
  File "src/lxml/parser.pxi", line 1765, in lxml.etree._parseDoc
  File "src/lxml/parser.pxi", line 1127, in lxml.etree._BaseParser._parseDoc
  File "src/lxml/parser.pxi", line 601, in lxml.etree._ParserContext._handleParseResultDoc
  File "src/lxml/parser.pxi", line 711, in lxml.etree._handleParseResult
  File "src/lxml/parser.pxi", line 640, in lxml.etree._raiseParseError
  File "<string>", line 1
lxml.etree.XMLSyntaxError: Start tag expected, '<' not found, line 1, column 1

Seems that you expect a XML UDM but it's a plain ID?

       <UDN>uuid:Socket-1_0-0de91340-5c21-4142-8353-9731b5633979</UDN>

Seems that you dont use LOCATION: http://<IP_ADDRESS>:21901/3267998a-f46d-46ef-8474-0caab2b099b0/setup.xml for read xml?

Nothing???

I'm sorry, but I've been busy with work and some personal things as well. I'm not able to look at this right now, as this is a hobby for me that I have to fit in around life and work and other responsibilities. I will let you know once I've had a chance to investigate it. You're welcome to open a PR here or in Pavoni\PyWemo to fix it yourself as well.

Try updating to the latest HA to see if the issue persists. Thanks


Make environment variable mutation work on Java9+

Mutating the environment requires reflection on the
java.util package, so we need to open that package
up to Gradle. Since Gradle is not modularized, this
means opening it up to the whole classpath. This is
less than desirable, but the only way to restore the
behavior we had on Java 8 and below.
We should start limiting access to environment variables
going forward so users don't depend on arbitrary values.
However, this change allows us to unblock users who are
currently either not using Java 9 or running Gradle in
no-daemon mode, both of which are terrible solutions.
Fixes #3468

Well, have you considered making Gradle a single module? We can probably:

When daemon client tries to start a Java 9+ daemon, it puts gradle module jar on module path, instead of classpath
make java.util open to gradle module
make gradle module open to ALL-UNNAMED module

I think that would be a little better to open java.util to the whole ALL-UNNAMED module.

Gradle isn't a single module, it consists of many libraries, often combined in different ways depending on the context. Just putting all those on the module path may have unforseen consequences, which I don't want to get into for a minor release :)

Yes, this should be in the release notes. I'll add something.


Add STARTSWITH and NOT keywords

Codecov Report

Merging #199 into master will increase coverage by 0.08%.
The diff coverage is 86.66%.

@@            Coverage Diff             @@
##           master     #199      +/-   ##
==========================================
+ Coverage    80.9%   80.99%   +0.08%
==========================================
  Files          39       39
  Lines         974      989      +15
  Branches      124      127       +3
==========================================
+ Hits          788      801      +13
- Misses        125      126       +1
- Partials       61       62       +1

Impacted Files
Coverage Δ

...osmosdb/core/generator/AbstractQueryGenerator.java
86.07% <ø> (ø)
:arrow_up:

.../spring/data/cosmosdb/core/query/CriteriaType.java
83.07% <100%> (+1.1%)
:arrow_up:

.../spring/data/cosmosdb/core/DocumentDbTemplate.java
84.32% <81.81%> (-0.11%)
:arrow_down:

Continue to review full report at Codecov.

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


alot: 0.9.1 -> 0.10

Motivation for this change
New release of alot: https://github.com/pazz/alot/releases/tag/0.10
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 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.

@edibopp please review.

@fabaff fixed.
Does anybody know how I can exclude certain unittests? alot uses python setup.py test with the standard lib unitests module from python.  There are exactly two tests that fail in NixOS' sandbox:
======================================================================
FAIL: test_no_spawn_no_stdin_attached (tests.commands.test_global.TestExternalCommand)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/build/source/tests/utilities.py", line 189, in _actual
    return loop.run_until_complete(coro(*args, **kwargs))
  File "/nix/store/i1m8r7mv8h47wr850cdsxksy22lv6gsz-python3-3.9.6/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
    return future.result()
  File "/build/source/tests/commands/test_global.py", line 129, in test_no_spawn_no_stdin_attached
    ui.notify.assert_not_called()
  File "/nix/store/i1m8r7mv8h47wr850cdsxksy22lv6gsz-python3-3.9.6/lib/python3.9/unittest/mock.py", line 868, in assert_not_called
    raise AssertionError(msg)
AssertionError: Expected 'notify' to not have been called. Called 1 times.
Calls: [call('editor has exited with error code 1 -- No stderr output', priority='error')].

======================================================================
FAIL: test_env_set (tests.test_helper.TestCallCmdAsync)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/build/source/tests/utilities.py", line 189, in _actual
    return loop.run_until_complete(coro(*args, **kwargs))
  File "/nix/store/i1m8r7mv8h47wr850cdsxksy22lv6gsz-python3-3.9.6/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
    return future.result()
  File "/build/source/tests/test_helper.py", line 433, in test_env_set
    self.assertEqual(ret[0], 'bar')
AssertionError: '' != 'bar'
+ bar

and because of this we have doCheck=false in the alot derivation.  I would like to deactivate these two and run the remaining tests.

I marked the two problematic tests as expected failure. This is now ready for review (and merge from my point of view).

https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/python.section.md#using-pytestcheckhook-using-pytestcheckhook

@Artturin thanks for the hint that is much nicer.

@SuperSandro2000 resolved.


[Question] How to write unit tests for simple bot applications

I am new to creating bot application using Luis. i want to write the unit test cases for simple bot application using Luis. I already gone through the examples and spend a lot of time on this to understand the test cases which are given in this website.Still didn't understand anyone.Can anyone please give me the very simple test case for bot application using Luis for understanding purpose.
I am using nodejs

Hi @krishan1kamal,
Do you want to test communication between LUIS App and your bot or how your bot handles LUIs results?
We have several tests in this section:
https://github.com/Microsoft/BotBuilder/tree/master/Node/core/tests
There are several frameworks for unit testing out there being Mocha a very popular one:
https://github.com/mochajs/mocha
https://stackoverflow.com/questions/4308786/what-is-the-best-testing-framework-to-use-with-node-js
What is the scenario of your application? What kind of bot you want to build? Can you share some code so we can have an idea of your scope?
Cheers,
Francisco

Error: Dialog[/common] already exists in library[*].

@bilby91 didn't you write a testing framework for bots in node?

Hey!
@JasonSowers We ended up using and contributing in BotTester. I highly recommend it! We are using it at Suttna for all our integration tests.

Great, thanks for the info and recommendation!

Hi @FranciscoPonceGomez can you check the link which you have mentioned, seems like it has been broken. Thanks in advance

@Edwardfelix08 The Bot Builder V3 node sdk tests are here now: https://github.com/Microsoft/BotBuilder-v3/tree/master/Node/core/tests

@EricDahlvang Thanks.


kafka consumer needs to correctly check partition and old message

What did you do?
run kafka consumer
What did you expect to see?
No response
What did you see instead?
simple protocol doesn't check partition and old message
Versions of the cluster
Upstream TiDB cluster version (execute SELECT tidb_version(); in a MySQL client):
(paste TiDB cluster version here)

Upstream TiKV version (execute tikv-server --version):
(paste TiKV version here)

TiCDC version (execute cdc version):
(paste TiCDC version here)

This is not a bug, can be tagged as enhancement.


Update README.md

Description of the change:
Reason for the change:
Link to original source:

Closes #

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hello @llcodeAlphall,Thanks again for the PR!                                         You have earned 1 out of the 5 points needed to receive glorious SendGrid Hacktoberfest swag.                                         Please take a moment to checkout this link to find more issues to get you past the required threshold or to simply continue the celebration.                                         Also, please be sure you have officially registered with us here by November 1, 2018 to qualify.                                         If you have any questions you can email us at<EMAIL_ADDRESS>                                        Thank you and Happy Hacktobering!                                         Team SendGrid


OpenChemLib package

Integrate OpenChemLib sketcher as one of the molecular sketchers
Other cheminformatics functionality

OCL is already in Chem. Closing issue


Potential: roll PR commenter into PR description editor

PR commenting creates more updates and emails than adding to PR descriptions.  Discuss and investigate.  If a yes, then it should be pretty trivial to pull off.

The action-pr-description-add commenter is generating some dups on the PR description. If you check #209 you will see more than one entry. Dunno if this was something that happened only this time or if this was observed in other teams as well.
My suggestion would be to keep the thollander/actions-comment-pull-request on its latest version, as it helps visualize the actual changelog. This also can be used to include comments or failures that happened during the process.
It can add some noise, but it serves the purpose of notifying users about what happened (for things such as deployment failed due to space/resource utilization restrictions).
Just an idea to spark some feedback from the actions to the users/developers

thollander/actions-comment-pull-request has created nine comments in https://github.com/bcgov/nr-forest-client/pull/228.  @paulushcgcj doesn't seem to mind, so this is getting closed!  We can always revisit later.


Release Google.Cloud.Memcache.V1Beta2 version 2.0.0-beta02

Changes in this release:
New features

Maintenance schedules (commit a657157)

Created release for Google.Cloud.Memcache.V1Beta2-2.0.0-beta02


Render a component at a specific position in the DOM

As working with the DOM in Blazor has its limitations, what is the current recommendation for displaying popups like dialogs at specific positions on the page?
For example, showing a window/dialog on a button click inside a Blazor component requires the popup element to be appended to a specific element (let's say the body) in order to be displayed over all other elements on the page. However, there is also the case for showing a popup inside another popup, so basically the position might be determined based on certain conditions.
One way to solve this might be to render a "special" element by using the idea of @(await Html.RenderComponentAsync<App>()) and then use JS interop to manually move elements from their original position to the desired one. However, this will probably break the diffing algorithm.
Are there any better ways to handle this?

This would be nice to have this functionality. Instead of moving the DOM using JSInterop, it is better to render the Blazor component inside a target element.

Thanks for contacting us, @Stamo-Gochev.
You should use CSS to position your elements exactly where you want them to be.

You can have a look at how this is done in Blazor workshop: https://aka.ms/blazorworkshop

@mkArtakMSFT Using CSS is applicable in some scenarios, but it won't work in others.
@danroth27 @SteveSandersonMS
Are there any alternatives? Is there a plan to provide some way to render a component to position that is not known beforehand? Any insights on what can break if the DOM element changes its position are also helpful, especially if there is a way to notify the diff algorithm for the change.

Are there any alternatives? Is there a plan to provide some way to render a component to a position that is not known beforehand? Any insights on what can break if the DOM element changes its position are also helpful, especially if there is a way to notify the diff algorithm for the change.

I'm afraid I don't really understand the questions here. The way all positioning and layout is handled in web apps normally is through CSS, which people successfully use for all kinds of nested dialogs and similar. When CSS is used correctly, the movement of one DOM element will cause other related DOM elements to move to the correct new relative position.
So I'm not sure what else would be needed. If you have specific examples of how other web frameworks (e.g., Vue, React, etc.) address the problem you're describing, and think Blazor is lacking comparible features, please let us know which particular features they are.

Oh wait I think I do understand you now. When talking about positions, you mean positions inside the DOM (like, which other element it's nested inside), not the position it gets rendered to on the screen.
The initial feature set we're going for is similar to other SPA frameworks. So for example if you wanted to render a tooltip that moves to whatever button the mouse is hovering over, you could either:

Have a <MyTooltip> inside each such button, with it being coded to render nothing by default, but render something visible when the mouse hovers over its parent (which itself could be achieved through CSS, or procedural logic with the parent issuing some state change when it gets a mouseover/mouseout event)
Or, render one global "tooltip" somewhere with display:none; position:absolute then use JS interop to move it around and change the visibility on demand.

@SteveSandersonMS Yes, I should have clarified that the question was about the position of the element in the DOM hierarchy. The example you gave with the tooltip is similar to what I am looking for and rendering a special element on the page beforehand (the global tooltip analogy) is what I've found so far. The JS interop approach is fine, I was just wondering if changing the position will interfere with the diff algorithm somehow and if there is a way to fix that - if this is necessary at all.
The alternative that I have thought about was traversing the component hierarchy until the top component () is reached, but I am not sure that this is possible with the current implementation.

Using JS interop to set CSS styles that move the element around won't break the diff updates. But moving the DOM element into a different parent definitely will.

I will add some more details regarding the case in order to clarify things.
Basically, a "global" element that is shown using JS interop can be rendered on the page, but in more complex scenarios I need a way to dynamically add such global elements. For example, let's say that a multiple components that can be nested in other components need to render such a popup, e.g. dropdowns, autocompletes, etc. The popup elements of these components can be appended to the body element and then moved around the page using JS interop.
The problem is that I have no control over how many such popup components will be used by the end user, so probably a "factory" for such elements should be created. Now, when a dropdown is initialized, it should make a call to the factory, which can in turn init a popup component with something like Html.RenderComponent<PopupComponent>() and then provide this popup to the dropdown.

probably a "factory" for such elements should be created

That doesn't really fit within the model of a FRP UI system. The render output is not a stateful thing, but rather is the result of applying a render function to your app state. As such it fits better to have each location that can render a popup contain its own <Popup> that may or may not display visible output depending on application state.

This is similar to the current situation, the structure looks like this:
The MainComponent itself consists of several sub components:
<HeaderComponent>
<PopupComponent>
...

The MainComponent can be rendered anywhere on the page, but the PopupComponents' HTML should be appended to the "body" element and it can be then moved around using JS interop.

Stamo, if you cannot or do not want a component rendered behind a @if(condition) clause in each place it might show up, and if rendering it in one place and moving (or cloning/copying it) via JavaScript breaks the diff algo, the a third option could be to render the needed markup to screen using MarkupString class. That might render it as basic HTML that the diff algo doesn't care about, and you can then move that around as you want with JavaScript.
@SteveSandersonMS can you tell us if the diff algo will break if we use JavaScript to add new HTML inside HTML generated by a component, if the added HTML doesn't contain the "tracking comments" ()?


encode recipes with msgpackr

netlify is using something around compression level 2 or 3:
$ curl 'https://craftingway.app/recipes.json' -H 'Accept-Encoding: gzip, deflate, br' -I
[...]
content-length: 183774

$ brotli -3vf public/recipes.json
Compressed [public/recipes.json]: 2.559 MiB -> 169.192 KiB

with msgpackr in records mode, I'm able to get something 41% smaller after brotli compression
$ brotli -3vf public/recipes.msgpack
Compressed [public/recipes.msgpack]: 480.569 KiB -> 118.525 KiB

there's also another 7 KiB of msgpackr JS
$ curl 'http://localhost:5173/node_modules/.vite/deps/msgpackr_unpack.js' -o m.js

$ brotli -3vf m.js
Compressed [m.js]: 31.917 KiB -> 7.470 KiB

Sweet. Apparently this is even faster than JSON.parse, too.


Update VirtIO to 141 version

Updated the link for the VirtIO drivers to the current stable 141. ( Which I've tested to make sure it works )
Posted the changelog as a note in the example

closing PR, please reopen it when the experimental rebased will be merged to master


[Bug] Timepicker toggle button does not change color when opened

Angular material datepicker changes toggle button color when opened (always primary color)

ngx-mat-timepicker does not change color

Hey, nice catch, thank you. I totally forgot about it. By the way, I've changed the default color as well. It uses icon property in foreground palette (the same as angular material).
Fixed in:

17.0.1
16.0.2
15.0.3


simplify encode/decode in dbc

cut down variable assignment and if/else conditions

nice clean up.


A question about how it works, and a thanks.

I'm a bit of a slowpoke, but i was wondering how does this app work, specifically about moving contents between one domain to another? Does it like temporary downloading the files onto your machine and put it onto the other drive?
 You saved my buns with this. I wish i could send a few bucks to you, but my payment options are limited. ( i'm still under parental guardians' management so i can't really pay anything that's virtual and outside of my country. )

No worries, I'm not accepting payment anymore for this app now that I'm not maintaining it anymore.
The short version is it uses Google Apps Script to host and execute the essential processes. It uses Triggers to schedule the job, and the Drive API to list files in the folder and recursively copy them.
It's not a very well-structured app but it essentially is one large script that runs from the main function. It saves data in the user's own Google Drive in a JSON file to keep track of it's own progress, and also uses Google Apps Script's Properties store, which is limited to a specific user's account, for some additional metadata.


LXD hangs when trying to start containers

Required information

Distribution:
Ubuntu
Distribution version:
16.04.3 LTS
The output of "lxc info":
config:
core.https_address: '[::]:8443'
core.trust_password: true
storage.zfs_pool_name: tank
api_extensions:

id_map
id_map_base
resource_limits
api_status: stable
api_version: "1.0"
auth: trusted
auth_methods: []
public: false
environment:
addresses:

<IP_ADDRESS>:8443
'[2a01:4f8:a0:9417::2]:8443'
<IP_ADDRESS>:8443
'[fde3:f4c2:8bd:ceb9::1]:8443'
architectures:
x86_64
i686
certificate: |
-----BEGIN CERTIFICATE-----
MIIFejCCA2KgAwIBAgIRANN5k8x0YZtMOvJMiSZmGJMwDQYJKoZIhvcNAQELBQAw...
-----END CERTIFICATE-----
certificate_fingerprint: a18304156ee2479d745f83829b6deadff2e8014ee9b6ff7426c2ee38a0d6cf20
driver: lxc
driver_version: 2.1.0-devel
kernel: Linux
kernel_architecture: x86_64
kernel_version: 4.13.0-32-generic
server: lxd
server_pid: 10975
server_version: 2.0.11
storage: zfs
storage_version: "5"

Issue description
I am unable to start containers after copying them from a 'base' container. Even after restarting the server LXD no longer responses to command given via LXC. I have this issue on our development server and on our (new) production server. As long as its this 'unstable' I can not use LXD for our new production setup.
Every time this happens I see some container having multiple processes:
root     15695     1  0 13:20 ?        00:00:00 /usr/bin/lxd forkstart kasdev5 /var/lib/lxd/containers /var/log/lxd/kasdev5/lxc.conf
root     15700 15695  0 13:20 ?        00:00:00 [lxd]
root     15701     1  0 13:20 ?        00:00:00 [lxc monitor] /var/lib/lxd/containers kasdev5
root     15720 15701  0 13:20 ?        00:00:00 [lxc monitor] /var/lib/lxd/containers kasdev5
As soon as I kill them all I can list the containers again:
+-----------------+---------+------------------+----------------------------------------------+------------+-----------+
|      NAME       |  STATE  |       IPV4       |                     IPV6                     |    TYPE    | SNAPSHOTS |
+-----------------+---------+------------------+----------------------------------------------+------------+-----------+
| kasact          | RUNNING | <IP_ADDRESS> (eth0) | fde3:f4c2:8bd:ceb9:216:3eff:fed5:f7cf (eth0) | PERSISTENT | 0         |
+-----------------+---------+------------------+----------------------------------------------+------------+-----------+
| kasact2         | RUNNING | <IP_ADDRESS> (eth0) | fde3:f4c2:8bd:ceb9:216:3eff:fe0d:b624 (eth0) | PERSISTENT | 0         |
+-----------------+---------+------------------+----------------------------------------------+------------+-----------+
| kasdev          | RUNNING | <IP_ADDRESS> (eth0) | fde3:f4c2:8bd:ceb9:216:3eff:fe27:7be2 (eth0) | PERSISTENT | 0         |
+-----------------+---------+------------------+----------------------------------------------+------------+-----------+
| kasdev2         | RUNNING | <IP_ADDRESS> (eth0) | fde3:f4c2:8bd:ceb9:216:3eff:fe33:609f (eth0) | PERSISTENT | 0         |
+-----------------+---------+------------------+----------------------------------------------+------------+-----------+
| kasdev3         | RUNNING | <IP_ADDRESS> (eth0) | fde3:f4c2:8bd:ceb9:216:3eff:fe38:8282 (eth0) | PERSISTENT | 0         |
+-----------------+---------+------------------+----------------------------------------------+------------+-----------+
| kasdev4         | RUNNING | <IP_ADDRESS> (eth0) | fde3:f4c2:8bd:ceb9:216:3eff:fe8b:ffb5 (eth0) | PERSISTENT | 0         |
+-----------------+---------+------------------+----------------------------------------------+------------+-----------+
| kasdev5         | STOPPED |                  |                                              | PERSISTENT | 0         |
+-----------------+---------+------------------+----------------------------------------------+------------+-----------+
| kasdev6         | RUNNING | <IP_ADDRESS> (eth0) | fde3:f4c2:8bd:ceb9:216:3eff:fe3a:854 (eth0)  | PERSISTENT | 0         |
+-----------------+---------+------------------+----------------------------------------------+------------+-----------+
| kasdev7         | RUNNING | <IP_ADDRESS> (eth0) | fde3:f4c2:8bd:ceb9:216:3eff:fe2e:3cc6 (eth0) | PERSISTENT | 0         |
+-----------------+---------+------------------+----------------------------------------------+------------+-----------+
| kasdev8         | RUNNING | <IP_ADDRESS> (eth0) | fde3:f4c2:8bd:ceb9:216:3eff:fe39:3365 (eth0) | PERSISTENT | 0         |
+-----------------+---------+------------------+----------------------------------------------+------------+-----------+
| kasedsntest     | STOPPED |                  |                                              | PERSISTENT | 0         |
+-----------------+---------+------------------+----------------------------------------------+------------+-----------+
| ubuntu-1204-lts | STOPPED |                  |                                              | PERSISTENT | 0         |
+-----------------+---------+------------------+----------------------------------------------+------------+-----------+
But nothing else seems to work:
root@dev ~ # lxc stop kasdev8
error: Put http://unix.socket/1.0/containers/kasdev8/state: EOF
This is what I see in the lxc.log of one of the containers:
root@dev /var/log/lxd/kasdev5 # cat lxc.log
lxc<PHONE_NUMBER>2034.220 ERROR    lxc_cgfsng - cgroups/cgfsng.c:create_path_for_hierarchy:1356 - Path "/sys/fs/cgroup/systemd//lxc/kasdev5" already existed.
lxc<PHONE_NUMBER>2034.220 ERROR    lxc_cgfsng - cgroups/cgfsng.c:cgfsng_create:1430 - Failed to create "/sys/fs/cgroup/systemd//lxc/kasdev5"
lxc<PHONE_NUMBER>2034.220 ERROR    lxc_cgfsng - cgroups/cgfsng.c:create_path_for_hierarchy:1356 - Path "/sys/fs/cgroup/systemd//lxc/kasdev5-1" already existed.
lxc<PHONE_NUMBER>2034.220 ERROR    lxc_cgfsng - cgroups/cgfsng.c:cgfsng_create:1430 - Failed to create "/sys/fs/cgroup/systemd//lxc/kasdev5-1"
lxc<PHONE_NUMBER>2034.254 ERROR    lxc_network - network.c:lxc_setup_network_in_child_namespaces:3021 - WARNING: using "lxc.network." keys to define networks is DEPRECATED, please switch to using "lxc.net.[i]. keys"
lxc<PHONE_NUMBER>2256.410 WARN     lxc_commands - commands.c:lxc_cmd_rsp_recv:130 - Connection reset by peer - Failed to receive response for command "get_cgroup"
Steps to reproduce
Install stable LXD. lxc launch Ubuntu 12.04 LTS. Create 10 copies. Try to start them.

You appear to be running an experimental version of liblxc on your production server, that's at least causing some of the warnings in that log above.

driver: lxc
driver_version: 2.1.0-devel

Ubuntu 16.04 should report 2.0.8 instead.

Thanks for the help! I had installed the feature version first but that was not stable too. This must be a leftover from that install.
There was still an apt config that needed to be removed:
ubuntu-lxc-ubuntu-daily-xenial.list:deb http://ppa.launchpad.net/ubuntu-lxc/daily/ubuntu xenial main
After uninstalling lxd and lxc completely (dpkg --purge lxd, etc) I could reinstall them and now the driver_version is: 2.0.8
Everything seems to be working now.


v4 beta is here!

Please try out the beta via
$ npm i<EMAIL_ADDRESS>--save
There are breaking changes. You can see the changelog here:
https://github.com/kriasoft/node-sqlite/blob/v4/CHANGELOG.md
Updated readme here:
https://github.com/kriasoft/node-sqlite/tree/v4
Please post any v4 issues / feature requests with the beta label.

v4 has now been released to mainline! Please create new issues if you encounter any.


Implement Proper Logging System

The important features are;

Tagging/some kind of categorization for logging output. The idea being that if we can selectively enable and disable logging without having to constantly add and remove logging code.
Log to std out, std err, and files.
Globally accessible (like println!(), don't need to pass objects around to do the logging). This makes the code a bit unsafe but it's worthwhile to make it more ergonomic.

Other desirable features:

Allow for custom logging handlers so that it's easy to add game-specific behavior (showing dialogs and such) without having to write a wrapper around all logging code.

Note: This will probably become a milestone as it's large enough to warrant being split up over multiple issues.


Documentation has broken link

Do you want to request a feature or report a bug?
bug: documentation has broken link
What did you do?
Clicked on the link in the "notes" section of https://docs.traefik.io/configuration/backends/kubernetes/#tls-communication-between-traefik-and-backend-pods
What did you expect to see?
(Probably) a link to https://docs.traefik.io/configuration/commons/#main-section
What did you see instead?
404 not found on https://docs.traefik.io/configuration/backends/configuration/commons/#main-section
Output of traefik version: (What version of Traefik are you using?)
Fetched documentation page on 2018-03-18.
What is your environment & configuration (arguments, toml, provider, platform, ...)?
If applicable, please paste the log output in debug mode (--debug switch)

sorry @emilevauge, I missed that you had already assigned @geraldcroes to the task.
You get the next docs bug, promised. :)

You should feel the opposite of sorry ^^
I still have a lot on my plate, so I won't miss the issue :-)

@JensErat thanks for reporting -- link is now fixed. 😀


chore: pin down semantics of freeze with a bunch of test cases

Added a comment in test/api/freeze.test.js specifying the intended semantics
of the freeze flag and a bunch of tests pinning down all the cases:
/**
 * This test pins down the semantics of the "freeze" option on the generator.
 *
 * When enabled, the entire input map is treated as a strict lockfile, meaning
 * no existing versions of any dependency will be changed by the generator. If
 * there's a secondary lock for "react", for instance, then even a primary
 * install will use that lock rather than latest. Freeze allows new dependencies
 * to be added, however, if they have no existing locks.
 *
 * When freeze is combined with "resolutions", the custom resolutions always
 * always take precedence over any of the freeze behaviour.
 *
 * When freeze is combined with "latest", the latest flag takes precedence and
 * all locks are upgraded to the latest compatible versions.
 */

Perhaps we should change this case specifically?

Makes sense, this still respects the main constraint which is freeze doesn't change existing locks.

Can we just say that freeze and latest are incompatible and that if using both, we throw an error instead?

Yeah, best we don't silently ignore the freeze flag.

The failure here now seems directly related to the freeze test itself.

...freeze test is fixed and works locally, but there's another build failure =( I'm a sad panda.


[Discussion] Isolating guitars?

Awesome project!
I think it'd be awesome to also have a way to isolate guitar tracks.
Found some related discussions:

#3
#62
#551

Right now it works perfectly with the Bass track.
Assuming Bass usually has a relatively "low frequency" in terms of the sound not sure if that helps the model to detect it's a Bass sound in the frequency domain(if FFT is used)(trying to make sense, but not sure I'm understanding this at all).
Wonder is it possible to ("easily") isolate the Lead/Rhythm guitar for rock songs?
Update
It seems using 5 stems and the "other" track contains the guitar tracks for a rock song that I tried.
Though the "volume" of the sound doesn't sound consistent.

Hi @ibigbug
indeed it would be awesome. We actually tried to train 5 stems models were the fifth stem was guitar instead of piano before releasing spleeter, but we got quite unsatisfactory results. We won't have time to work on new models in the near future, but you can also try to train your own model to separate guitar if you have appropriate data.
Regarding your "volume" issue, note that stems should sum up to the mix, so if the volume of a stem seems quite different from the volume in the mix, this is probably because the corresponding instrument was not properly separated and part of it should remain in the other stems.


Question: is this repo still the 'official' way to rename electron?

Not that I don't love this repo - (thanks @paulcbetts ) Its been really useful over the last couple of months, but given the stated need for this repo is to be able to rename the electron .exe on Windows,
does electron 0.23.0 fix the original issue (atom/atom-shell#713), given the Windows release notes for 0.23.0 state:
"__Renaming atom.exe no longer breaks native modules."
Is it possible to simply do:
npm i electron-prebuilt
and then:

rename the .app, helper apps etc
replace the .incs icon
update the plist

If you no longer need to build from src, then could this repo move forward with additional tasks that could:

do the plist changes
replace the icon
get your app ready for release (npm prune --production etc)
asar your app
codesign you app
zip using ditto so autoupdater can be used on the resultant .zip.

Maybe these tasks belong in electron starter instead? Happy to help contribute grunt tasks if this is the correct assumption and direction.

+1

Yep, you're mostly right, that was the main motivation for this package. That being said, this package still has its uses because it makes it super easy to run on non-released branches (either your own fork or being able to run on a specific commit of Electron). However, for most people getting started, grunt-download-atom-shell is sufficient.
@rishson can you send a PR to switch electron-starter to grunt-download-atom-shell? It should be fairly easy because I intentionally kept the parameters very similar

I definitely like the idea of having the task handle some of that other stuff. I have manual tasks for doing a lot of that, having a single task (or at least set of tasks in a package) would be awesome.

Just wanted to throw out there that I'd be down to help with that, if it's deemed the way you wanna take it (Although I can also understand wanting to keep this for building, in case people want that control over things still or if there are other building benefits (e.g. the correct name in the task manager in windows, etc).

Also, if you're mostly using the electron-prebuilt package, https://github.com/paulcbetts/electron-rebuild will do the native module rebuilding bits of grunt-build-atom-shell. I'm working on the rest :)

@paulcbetts doesn't electron-prebuilt just run the app? It doesn't actually create any compiled files or anything. Plus doesn't electron-packager do all of this now? Thanks.

doesn't electron-prebuilt just run the app? It doesn't actually create any compiled files or anything. Plus doesn't electron-packager do all of this now? Thanks.

You still need to rebuild the node native modules you're using against the version of Electron you're using, or else you'll have Problems(tm). That's what electron-rebuild does.

how can i find out which version of node is to be used ? e.g when looking at its not declaring which version of node it uses ... https://github.com/atom/electron/releases/tag/v0.35.0

@matthiasg Just use electron-rebuild and you won't have to know that

@paulcbetts will try thanks

Can confirm, electron rebuild works well. There are a few modules around for renaming your copy of electron prebuilt, cant think of the names of any right now, but I haven't been too satisfied with any of them (theyre all much larger in scope than just that), so I may make one that just renames electron-prebuilt


Update E2E tests to use new UI from redesign

We need to update the E2E tests now that the home page redesign includes a new sort dropdown and changes the location of the search page.

@codemonkey800 Marking this closed since it looks like the relevant PR was merged in, but let me know if there's still more work to be done!