Add support for smartmeter device

This is a new device, but it must be validated how the API structure look like for the smartmeter .
Is it included in the scene info response for the site?
Does it need separate endpoints to get the values?
System export examples are needed with smartmeter devices included in the power system.

possible Interpretation:
"grid_info": {
"grid_list": [
{
"device_pn": "pn",
"device_sn": "SN",
"device_name": "Smart Meter",
"device_img": "",
"create_time":<PHONE_NUMBER>,
"status": "1", => same cloud connection coding as for other devices (0/1)
"bind_site_status": "",
"wireless_type": "" => Missing, typically indicates the connected network type in relation to wifi list response
}
],
"photovoltaic_to_grid_power": "0", => grid export in W
"grid_to_home_power": "669", => grid import in W
"grid_status": 0, => translation table needed
"has_history_data": true => App indicator field to display extra tab for grid statistics?
},

A translation table for the grid_status is needed with possible codes seen and their actual meaning to the smart meter or grid, e.g. outage, connection loss, AI mode activation etc.

@thealkly do you have capability to test various conditions with the Smartmeter to verify grid_status code changes in the solarbank Monitor? You could watch the App with the main account meanwhile to see and compare messages with the Status code.
Following tests might change the status:

Remove a clamp (may not change anything, will just measure power to 0W on this phase?
Reverse a clamp (may not change anything, will just measure power incorrectly?
Remove the clamps connection cable /all clamps disconnected
if you have the smartreader phases after a circuit breaker:

break one phase
break all phases => This should switch off the smartreader too, so no longer reporting to the cloud?

Reverse a clamp (may not change anything, will just measure power incorrectly?

Since I did install the clamp the wrong way at first, I can confirm it will measure the power incorrectly. So negative values when you are using power from the grid and positive if you are sending electricity.
My installation needs only one clamp, but nothing about that is visible inside the app, so we must use the API to check that point.

Hi, as far as I can see from the manual, the communication between the smart meter and the Solix 2 is done without cloud access, using either Bluetooth or Wi-Fi (LAN, no internet needed). This explains why it is able to react so fast to changes in the current energy consumption. If so, it would be awesome if someone could capture the traffic between the Solix 2 and the smart meter (I do not own a smartmeter). Maybe those packets are not encrypted, or at least we might find the endpoint with which we can communicate without cloud access (this might also be a nice workaround for the 0W responses).
However, there's a chance that the LAN interface is only available if a smart meter is connected.

using either Bluetooth or Wi-Fi

The Smart Meter 2 is connected through Wi-Fi only. And I think you're right, it's a direct LAN connection between the two.

I just gave it another try and scanned Solarbank and Smartmeter for open ports. All closed. So no possibility for a direct TCP connection.
Furthermore I captured all traffic from both. But there is only a connection to ec2-3-78-2-21.eu-central-1.compute.amazonaws.com.8883
So I see only a cloud based MQTT-connection. There could be a BT connection but that doesn't make sense if both devices are separated further.

@thealkly do you have capability to test various conditions with the Smartmeter to verify grid_status code changes in the solarbank Monitor? You could watch the App with the main account meanwhile to see and compare messages with the Status code. Following tests might change the status:

Remove a clamp (may not change anything, will just measure power to 0W on this phase?

Reverse a clamp (may not change anything, will just measure power incorrectly?

Remove the clamps connection cable /all clamps disconnected

if you have the smartreader phases after a circuit breaker:

break one phase
break all phases => This should switch off the smartreader too, so no longer reporting to the cloud?

I only have one phase. Perhaps someone else can test this. But it seems to add all phases as I did not change any setting.
I did also a wrong installation first. Back than I had a different beta app. But the behavior is as described by @nicolinuxfr it will assume I exported the power instead of import.
if I disconnect:

    "retain_load": "200W",
    "scene_mode": 1,
    "home_load_power": "324",
    "updated_time": "01-01-0001 00:00:00",
    "power_site_type": 5,
    "site_id": "9b8e5636-f604-4249-844c-44c11cc110ad",
    "powerpanel_list": [],
    "grid_info": {
      "grid_list": [
        {
          "device_pn": "123",
          "device_sn": "123",
          "device_name": "Smart Meter",
          "device_img": "",
          "create_time": 123,
          "status": "1",
          "bind_site_status": "",
          "wireless_type": ""
        }
      ],
      "photovoltaic_to_grid_power": "0",
      "grid_to_home_power": "324",
      "grid_status": 0,
      "has_history_data": true

offline:
"grid_info": {
      "grid_list": [
        {
          "device_pn": "123",
          "device_sn": "123",
          "device_name": "Smart Meter",
          "device_img": "",
          "create_time": 123,
          "status": "1",
          "bind_site_status": "",
          "wireless_type": ""
        }
      ],
      "photovoltaic_to_grid_power": "0",
      "grid_to_home_power": "0",
      "grid_status": 0,
      "has_history_data": true
    },

I think Grid Status is still 0 because the smart meter is connected and assuming grid is available.
I'm not sure if bluetooth is an option. My electrical installation is quite fare away, with many walls in-between.
I could try in the next days to disable the internet for a couple of minutes and check if 0 grid is still working.
If it is still working, there is probably some local connection. Perhaps some local MQTT?

Yeah, maybe the grid_status is just changed when there is power loss on 1-2 phases, because on total grid loss the smartmeter is down too and cannot report anything.
So will keep this 0 reported as OK and if it will every report anything different in future it will have to be added via an issue.
I think for the smart meter we are good then, unless someone finds anything missing or wrong for it in the solarbank monitor.
The smart meter is not listed in the auto-update devices. Is not not supported either in the App for auto-update settings?

The smart meter is not listed in the auto-update devices. Is not not supported either in the App for auto-update settings?

Indeed, only the main Solarbank 2 unit. Even the battery extension seems not to be auto-updatable.

This YouTuber got a bunch of questions answered (by Anker themself).
https://www.youtube.com/watch?v=X4WQUk2X8lM&t=53s   (it's in German but maybe auto-subtitles work)
The first one is interessting: Is the communication between the SolarBank and the SmartMeter still possible if no internet is available: Answer from Anker is YES  within the same LAN (he even explains a certain option you need to enable for the very popular FritzBox (in Germany at least))


Export apps with broken instances throws error

https://www.notion.so/Export-apps-with-broken-instances-throws-error-4f83299bdf6c4fca92cccd6c913abbfa

Duplicate issue


Log maven resolution exceptions

Log details of exceptions thrown during maven artifact resolution.

@spyrkob could you please rebase and resolve the conflicts?

@jmesnil updated the PR now

@spyrkob thanks!


Implement code to guard against toggling the incorrect line

Expected Behavior
When I toggle a task using the Tasks plugin, I expect the task that is completed to match the text of the task I toggled.
Current Behavior
Very, very occasionally, I find that the task completed is not the correct task.
I do not yet have a reproduction, but it is the exact same behaviour as is observed in #688, except it is never reproducible.
I'm starting this issue as a place-holder, to capture more ideas, and information on it.
Steps to Reproduce
Not yet known. I believe it is a timing issue.
Context (Environment)
Unknown.
Possible Causes

Sometimes Tasks handles a change after the 2 second file-saving interval. It is possible by then that more than one line has changed, and the line/task numbers in the Task may no longer be correct
I think I have seen code in Tasks that reads a file from the cache, which may be out-of-date. Once Tasks has read all files, perhaps it should read the file directly, instead of the cached copy?
Perhaps multiple nearby tasks in a file where changed within a 2 second interval?
Perhaps the heading information in the task became stale in the 2 second interval?

Possible Solution

I keep coming back to the idea that when Tasks completes a task, it should do some kind of safety check that the line it is completing has a description that is sufficiently similar to the one in the Task being completed.
In the initial implementation, it might just pop up a message and say 'I couldn't find that task. Please try to complete it again.
In a later implementation, it could search the file to see if there was a unique line that matched. This might provide a workaround for both #688 and the failure to find tasks within callouts in Live Preview - as discovered in https://github.com/obsidian-tasks-group/obsidian-tasks/pull/953#issuecomment-1204768555

I keep coming back to the idea that when Tasks completes a task, it should do some kind of safety check that the line it is completing has a description that is sufficiently similar to the one in the Task being completed.

If the safety check is to ensure the description of the task is sufficiently similar I'm afraid that only partially solves this issue.
currently, afaik (based on reading tryRepetitive in File.ts) task UIDs = (file path + section + section index)
so it seems that the description doesn't have anything to do with what uniquely identifies a task and indeed there may be two unique tasks with identical descriptions.
Compare task desc could then only be a heuristic check that goes as, "we are reasonably sure that this task is the same one but not entirely".

My current thoughts on a potential solutions are:
1
Ensure that the following sequence of operations occur atomically: 1. read file, 2. create new Task(), 3. modify Task, 4. write new one.
with the new Ob API of vault.process(...) I think that would be a good direction.
2
Change the UID of tasks to actually be originalMarkdown with the current UID as a perf opt for finding it.

As for (2.) I think this is particularly risky and goes against the goal to reduce breaking changes. As per Hyrums Law the undocumented but implicit contract of the Tasks plugin is the Task UID that I mentioned above.
...
I'm going to continue to investigate further...!!!

I have limited capacity to parse the above at the moment, but a few thoughts on first reading:

If the safety check is to ensure the description of the task is sufficiently similar I'm afraid that only partially solves this issue.

Absolutely agree. But it is a low hanging and rather important fruit.
Incidentally, the underlying file reading and writing may change significantly if we move to using datacore as the underlying mechanism. Therefore, I personally am focussing my time on other areas, until we know for sure if we can adopt datacore.
I saw the discussion about vault.process() today and it looks good.
I believe that Tasks in some places uses a cached read before updating a task, and I feel a non-cached read would be a safer thing to.

Absolutely agree. But it is a low-hanging and rather important fruit.

Agreed!

I'll take a stab at a PR for this. I have some ideas brewing ...
the scope of the PR would be:

before writing to a line in a file, check that the line is the exact same as "before". Before is what was used to create the Task.

a stab at the timing issues ... seeing if vault.process can help, with a potential dive into what the caching code impl is

as for using vault.process it seems I get a Property 'process' does not exist on type 'Vault' so I suspect that some sort of Obsidian dependency needs to be updated?

as for using vault.process it seems I get a Property 'process' does not exist on type 'Vault' so I suspect that some sort of Obsidian dependency needs to be updated?

I don't know what version vault.process was released in.
But yes, I am behind on updating dependencies in general - the smoke-testing takes time - but specifically there hasn't been any urgency to update Obsidian/CodeMirror deps as we weren't needing any of the newer features.

Re: vault.process I've investigated and found it to be in 1.1.0 of Ob API

Re: vault.process I've investigated and found it to be released in 1.1.0 of Ob API

Excellent. If I am reading the release notes correctly, that is still only available for insiders...
https://forum.obsidian.md/c/announcements/13

interesting ... I did test locally calling this func, but I'm not an insider so I'll take another look ...

interesting ... I did test locally calling this func, but I'm not an insider so I'll take another look ...

Now I'm really doubting myself!

The last release announced in the #releases channel in Discord is:
https://discord.com/channels/686053708261228577/694235607810965636/1055894252569231421

🤦  I am very sorry for misleading you - I conflated 1.1.0 and 1.1.10... 😊
You are absolutely correct...

So 1.1.0 was released to all users on 20 December 2022.

Just to note that with the check you added in #1663, @BluBloos, I have actually once been able to manually trigger the conflict in my own vault.
I need to do some more experimenting, but I am slightly hopeful that with a lot of exploratory testing I might be able to identify the cause of the bug...
I'm not at all sure about the following but....
I wonder about a first release of the above anti-corruption fix, using the current Obsidian dependency...
And then a later release with the Obsidian minimum version updated to 1.1.0 for even more robust editing for users able to update...
I would welcome your thoughts...

I have actually once been able to manually trigger the conflict in my own vault.
I need to do some more experimenting, but I am slightly hopeful that with a lot of exploratory testing I might be able to identify the cause of the bug...

Just to make sure I understand,  a timing issue occurred and the guard didn't get hit? And then some line got overwritten that wasn't supposed to? I'm not sure exactly what you repro on your end ...

Just to make sure I understand, a timing issue occurred and the guard didn't get hit? And then some line got overwritten that wasn't supposed to? I'm not sure exactly what you repro on your end ...

No - A timing issue occurred and the guard did get hit! 🎉 ❤
And I got useful information in the (slightly reformatted) error message.
In maybe 200 to 400 very rapid completions of recurring tasks, spread across multiple sections, I have received the error message twice, preventing overwriting of the line.
I am super happy that I can now detect the issue, enabling me to try some systematic rapid testing and see if I can spot any patterns.

Reproduction 1
in vault with sync enabled

Setup

Left pane: Source mode
Right page: Reading mode
Sync enabled

Create a section with, say, 20 tasks in
Delete a load of tasks before the last task in the section
Then quickly toggle the last one
It finds the wrong line, triggering the check added in #1663

The cause is that Obsidian will only save-and-re-parse the edited file automatically every 2 seconds, so if you toggle what was the 20th task in a section, but there are no longer 20 tasks in the section, it will pick the wrong one.
I think Sync may compound the problem, as sometimes Obsidian reports that a file has been changed outside of Obsidian when I was only editing it in Obsidian, and my suspicion is that Sync's merging results in an edited file that was uploaded to the server being re-downloaded and sometimes being seen as an externally modified file.
in sample vault in Tasks

Above occurs when in vanilla vault, and no sync

Workaround

Hit Save (Cmd+S) after deleting lines, and before toggling the line

This forces Obsidian to quickly re-parse the file, and usually then the task index is correct by the time you manually toggle the last task.

My current thinking is approximately something like this:
The problem:

Obsidian has a 2-second cycle for auto-saving edits
The current retry mechanism in replaceTaskWithTasks() attempts to handle cases where the markdown file has not yet been parsed
But I think it does not behave well when the file was previously parsed but has since been modified
Types of edits to the file might include:

Pasting in before the task a large chunk of markdown that may add extra sections or extra tasks
Deleting multiple sections
Deleting tasks before the task being toggled

When the file has since been modified, all bets are off as to whether a pre-existing task's position information in the file is valid at all
Does the anti-corruption fix cause replaceTaskWithTasks() to bail out after the first attempt - or the first attempt that reaches that far?

Potential band-aids:
I am struggling to express this clearly, but I think the ultimate fix for this is going to be something like:

If we failed to find the exactly-matching task line based on section number and task number in section inside the file after 10 attempts...

Then read each of the tasks in the given section index, and if there is an exactly matching mark-down source line, replace that

If we still haven't found an exactly matching mark-down source line,

Then read the whole file and repeat the search

If we still haven't found an exactly matching mark-down source line after searching the whole file,

Write out the error message that is currently written out on first failure to match

Whatever we do, it's gonna need some pretty thought unit tests...

Or does vault.process() make all my ramblings above go away? 🤣

Reproduction 2 - change level of indentation

Setup

Left pane: Source mode
Right page: Reading mode
Sync enabled

Indent a task line (in left pane)
Then quickly complete it (in right pane)

With original guard code:
Tasks: Unable to find task in file Jannett/sdfafa.md.
Expected task:     - [ ] #task  XXX Throw the trash away 3 🔁 every day 📅 2023-02-23. Found task line: - [ ] #task  XXX Throw the trash away 3 🔁 every day 📅 2023-02-23.

With lightly-reformatted error message in not-yet-pushed code - still using Task.identicalTo():
Tasks: Unable to find task in file:
.../sdfafa.md
Expected task:
    - [ ] #task  XXX Throw the trash away 3 🔁 every day 📅 2023-02-23
Found task line:
- [ ] #task  XXX Throw the trash away 3 🔁 every day 📅 2023-02-23

Note to self: Try these same reproduction steps in dataview

Reproduction 3 - edit the line the complete it

Setup

Left pane: Source mode
Right page: Reading mode
Sync enabled

edit some text in a task line (in left pane)
Then quickly complete it (in right pane)

Output:
Tasks: Unable to find task in file:
Jannett/sdfafa.md
Expected task:
- [ ] #task  XXX Throw the tradsfsdfsdfsfdssh away 3 🔁 every day 📅 2023-02-23
Found task line:
- [ ] #task  XXX Throw the trash away 3 🔁 every day 📅 2023-02-23

Thoughts - 2023-02-18 - 1
The weird thing with all of these is that:

when I edit a task line in Source mode in one pane

the task is immediately updated in the matching Reading pane

But if immediately toggle the task by clicking its checkbox in the Reading pane

I get the task mismatch error

But if, between the edit and the toggle, I Save the file manually (Cmd+S/Ctrl+S) the file is re-parsed in time for the Task to correctly be toggled

Also:

when I edit a task line in Source mode in one pane
and I immediately toggle it with Tasks' 'Toggle task done' command in the Source pane

The task is updated correctly

Observations when testing on Desktop
So for me in this testing, the problem seems to fundamentally be the 'up to 2 seconds' between:

the task line being edited in the Source pane
the corresponding Task object being updated in the Reading pane up to 2 seconds later

When I usually see this in the wild - usually on Mobile
When I have generally had the problem for real, it is:

when I am using Tasks on my iPhone
and the synced vault is not open on any other machine
and I am in Reading mode, with no other panes open
and I toggle a few tasks relatively quickly
then, rarely, the wrong task is completed

Thoughts - 2023-02-18 - 2

When I edit a file in Live Preview
And try to catch it out with quick actions
It all works correctly

So the problem scenarios seem to be:

Editing a task in one pane, and interacting with it in Reading view before the 2-second save-and-reparse happens
Acting on a synced file in Reading view several times in quick succession, before the round-trip sync-and-re-parse occurs

Hi clare, I am able to repro these same cases!

Hi clare, I am able to repro these same cases!

Thanks for testing. @BluBloos.
This has been bugging me for ages - then your message made the issue visible and I have made so much progress in understanding the various things going on since then - at the risk of repeating myself, very many thanks indeed!

pushed a PR that fixes this :)
(I've adjusted the name also from "Data integrity 2" - that was a mistake)

This was fixed in #1663 - thanks to BluBloos.


Making the week numbers selectable

An option to select the week numbers from the datetimepicker.
Currently only calendarWeeks: boolean value can be set to display it but no option to select those numbers or display it.
Or toggle between week and day.

I am also looking for a solution to select a week number in the calendar. It would be a great enhancement for datetimepicker.

:+1:

Yes please..! Can we have that?

+1

This would be awesome!


Consider adding a license file

Project license is specified as MIT in Cargo.toml:
https://github.com/Gankra/cargo-mommy/blob/df726f21340dca34f565d8ff1b5e59c5a602f84a/Cargo.toml#L4
But LICENSE file is not present in the repository. You might consider adding it.

i think it should be GPL because yes

i think it should be GPL /LGPL because yes

why mommy~

it should be mommy license~~

PRS WELCOME


⚠ Processors has degraded performance

In d4a1185, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 50 ms

Resolved: Processors performance has improved in e315eaf.


[Bug]I can't install BetterDiscord

Describe the Bug

The installer did not succeed in installing BetterDiscord.

To Reproduce

Open the installation program

Install BetterDiscord > Discord > Install

Expected Behavior

BetterDiscord cannot be installed

Screenshots

Discord Version

Stable

Additional Context

None

Fully close Discord before running the installer. Installer issues belong in the corresponding repo https://github.com/BetterDiscord/Installer


test(CI): fix pr done on develop script

bash is no game
hotfix

I recommend http://www.shellcheck.net/ as a shell linter. Helped be catch a lot of edge-cases and made me code better :)


Re-captcha for login works only when account locking is enabled for login

Noted that re-captcha for login works only when account locking is enabled in login policies.
IMO, enabling re-captcha for login flow should be independent from account locking policies. The only consideration there should be that the no of failed login attempts for re-captcha should be less than the no of failed login attempts for account locking.
Shouldn't this be the case. WDYT?

@malithie re-captcha for login does not work even if account locking is enabled in login policies (we use 5.9.0)
I think we encounter this issue https://github.com/wso2/product-is/issues/7457, is there any workaraound that you know?

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


pkg/controller: fix incorrect backoff time for next retry

It is observed that on agent start, controller "ipcache-inject-labels" will take several minutes or even longer to succeed, with status like,
$ cilium status --brief
error in controller ipcache-inject-labels: failed to inject labels into ipcache: k8s cache not fully synced

$ cilium status --all-controllers | grep "ipcache-inject-labels"
ipcache-inject-labels                         never          4m10s ago 331     failed to inject labels into ipcache: k8s cache not fully synced

It can be assured that k8s cache synchronizes quite fast, in about 1~2s.
Digging into the code, we found that the agent received much events (NodeUpdated), which will trigger one ControllerUpdate per events, and which in turn makes the controller loop increased retry count hundreds of times in several ms (during which period k8s cache is not ready), and when the event storm gone, the controller has to wait hundreds of seconds to hit case runTimer.After(interval), although the k8s cache is already.  Related code in v1.11.10 (same logic in master): https://github.com/cilium/cilium/blob/v1.11.10/pkg/controller/controller.go#L266
This patch fixes the problem by distinguishing different retry types, and increasing backoff time only with the "timerExpired" type. Besides, detailed retry stats are also included into scoped log for better observability.
Fix long-time failure of "ipcache-inject-labels" controller due to incorrect backoff time for retry

Signed-off-by: ArthurChiao<EMAIL_ADDRESS>

/test

@christarazi  thanks for your detailed explaination, and your concerns make sense to me.
Actually I've also considered the approch 1 you've mentioned before, but I regarded it as an add-on to my patch then.
If we're going to mitigate the problem with a max retry duration, I've had another patch in this branch: https://github.com/ctripcloud/cilium/commits/set-max-retry-duration-for-controller-github. If you think it's OK, I can overwrite the current changes in this PR with it. Thanks!

Yes that looks like a better starting point. Could you update this PR with that implementation? I still have some comments about that. It looks to me like default retry duration will be 1m and that will actually take effect for all controllers, right? I don't think we want to do that. We just want to turn this one for this one specific controller, ipcache-inject-labels.

Thanks @christarazi ， just pushed it.

It looks to me like default retry duration will be 1m and that will actually take effect for all controllers, right?

Yes, the current code is.

I don't think we want to do that. We just want to turn this one for this one specific controller, ipcache-inject-labels.

How would you like this to be implemented? Several ways current in my mind:

Check controller name and only perform the logic for ipcache-inject-labels;
Add a maxRetryInterval field to Controller struct and initialize the ipcache-inject-labels controller with an explicit value, leaving all other controllers using a default value (with those controllers behave like before).

In any of the above fashions, seems there is no need to add the CLI option (unless make it more specific to only controls ipcache-inject-labels  behavior) ?

@ArthurChiao I was thinking more of option 2. I would agree that there's no need for a new CLI flag.

I was thinking more of option 2. I would agree that there's no need for a new CLI flag.

Made a tentative change towards that direction.

/test


reduce the size of aws dependencies

What changes were proposed in this pull request?
Due to the large size of the AWS cloud vendor's client JARs, this PR aims to keep AWS s3 module only to reduce the AWS dependency size from over 296MB to around 2.3MB
Why are the changes needed?
Does this PR introduce any user-facing change?
How was this patch tested?

tested on lab shown as above picture

@FMX  plz help review

Would you like some help creating a new issue to track this PR?

Look like there are dependency check failures, plz fix them.

This PR reduced the binary package with AWS from 481M to 194M. I'll merge it after the tests are done.


Document how to set up cron jobs in README.md [$25]

[ ] Configure _cron/hourly/backup-database.sh (path, username, password, database)
[ ] Configure for _cron/hourly/clean-and-optimize.php
[ ] Example crontab.
[ ] Disable cleaning in requests.

---
There is a **[$25 open bounty](https://www.bountysource.com/issues/30201755-document-how-to-set-up-cron-jobs-in-readme-md?utm_campaign=plugin&utm_content=tracker%2F10163092&utm_medium=issues&utm_source=github)** on this issue. Add to the bounty at [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F10163092&utm_medium=issues&utm_source=github).

final solution

This issue is no longer in progress.


Nuxt router seems unusable in my static site

Hi, Nuxt routing seems to be unusable in my static site. It breaks SEO and I can't seem to find a good config solution to fix it.
Versions

nuxt: v2.15.7
node: v14.0.0

Reproduction
I'm not sure I can provide a minimal reproduction as it requires a sitemap being sent to the google search console.
Steps to reproduce
Give a Nuxt site & sitemap to the google search console and wait for the crawl results.
No router config in nuxt.config.js.
What is Expected?
Nuxt to work with Google Crawler.
What is actually happening?
Google Crawler reports redirect error.
Details

Out of the box, with no router config in nuxt.config.js, Google Search's Coverage page reports a redirect error, which means "A redirect chain that was too long; a redirect loop; a redirect URL that eventually exceeded the max URL length; there was a bad or empty URL in the redirect chain." Surely I'm not the only person to hit this?
~Working locally, I tried setting trailingSlash to true but NuxtLink stopped working, causing a not found error~. I'd rather avoid trailing slashes, if possible, as they look weird.
That seems to leave me with one more option, setting trailingSlash to false. I'll accept this if it works, but it adds a trailing slash to the url in the browser, which seems like a bug, so I'm reluctant to use that in case it's fixed with a breaking change in the near future.
In case it's relevant, this crawler error is happening on a dynamic route, but that could just be because it's the first page it found since I migrated to Nuxt and updated the sitemap.
I feel I must be doing something wrong. Surely it should work out-of-the-box with Google Crawler?
Secondary concern
A secondary concern is that the network tab always shows a redirect from the non trailing slash url to the trailing slash, regardless of the url shown in the browser and the trailingSlash config. Is this expected?

Previewing locally, I also noticed that without a router config, i.e the scenario which breaks the crawler, when I send the browser to the non-slash url a trailing slash quickly appears then disappears on the url bar.

I would guess you might be deploying to netlify, which automatically adds trailing slashes to your urls. (Or it might be a similar issue on another provider.)
But it's not possible to investigate without a reproduction or more info. (You can ignore the trailing slash behaviour when previewing locally; it's a glitch caused by serve-static, not an issue with Nuxt.) For what it's worth, we have a different solution for trailing slashes in Nuxt 3 which is not prone to this issue.


[4.0] [QoI] Fix crash while trying to compute default parameters

Description: Arguments and parameters are not guaranteed to line-up perfectly,
because failure diagnostics sometimes has to match one argument
to different "candidate" parameters to see which one is closer,
so let's teach computeDefaultMap to respect that.

Origination: One of the code completion crashers.

Risk: Low.

Tested: Added new tests, Swift CI.

Reviewed by: Doug Gregor, Ben Langmuir.

Resolves: rdar://problem/33433087.
(cherry picked from commit 2d49d1202cd432188619776f07a7eef3c5c49034)

@swift-ci please test

@swift-ci please test source compatibility


.stack produces large chunks

What happened?
Xarray stack  does not chunk along the last coordinate, producing huge chunks, as described in #5754. Dask, seeing code like this:
da2 = da.stack(new=("z", "t")).groupby("new").map(sum).unstack("new")

produces warning and suggestion to use context manager:
with dask.config.set(**{"array.slicing.split_large_chunks": True}):
       da2 = da.stack(new=("z", "t")).groupby("new").map(sum).unstack("new")

This fails with message IndexError: tuple index out of range.
What did you expect to happen?
I expect this to work. #5754 is closed.
Minimal Complete Verifiable Example
import dask.array
import numpy as np

import xarray as xr

var = xr.Variable(
    ("t", "z", "u", "x", "y"),
    dask.array.random.random((1200, 4, 2, 1000, 100), chunks=(1, 1, -1, -1, -1)),
)
da = xr.DataArray(var)

def sum(ds):
    return ds.sum(dim="u")

with dask.config.set(**{"array.slicing.split_large_chunks": True}):
    da2 = da.stack(new=("z", "t")).groupby("new").map(sum).unstack("new")
da2

MVCE confirmation

[ ] Minimal example — the example is as focused as reasonably possible to demonstrate the underlying issue in xarray.
[X] Complete example — the example is self-contained, including all data and the text of any traceback.
[ ] Verifiable example — the example copy & pastes into an IPython prompt or Binder notebook, returning the result.
[ ] New issue — a search of GitHub Issues suggests this is not a duplicate.
[X] Recent environment — the issue occurs with the latest version of xarray and its dependencies.

Relevant log output
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
Cell In[21], line 5
      2     return ds.sum(dim="u")
      4 with dask.config.set(**{"array.slicing.split_large_chunks": True}):
----> 5     da2 = da.stack(new=("z", "t")).groupby("new").map(sum).unstack("new")
      6 da2

File ~/mambaforge/envs/icec/lib/python3.11/site-packages/xarray/core/dataarray.py:2855, in DataArray.unstack(self, dim, fill_value, sparse)
   2795 def unstack(
   2796     self,
   2797     dim: Dims = None,
   2798     fill_value: Any = dtypes.NA,
   2799     sparse: bool = False,
   2800 ) -> Self:
   2801     """
   2802     Unstack existing dimensions corresponding to MultiIndexes into
   2803     multiple new dimensions.
   (...)
   2853     DataArray.stack
   2854     """
-> 2855     ds = self._to_temp_dataset().unstack(dim, fill_value, sparse)
   2856     return self._from_temp_dataset(ds)

File ~/mambaforge/envs/icec/lib/python3.11/site-packages/xarray/core/dataset.py:5500, in Dataset.unstack(self, dim, fill_value, sparse)
   5498 for d in dims:
   5499     if needs_full_reindex:
-> 5500         result = result._unstack_full_reindex(
   5501             d, stacked_indexes[d], fill_value, sparse
   5502         )
   5503     else:
   5504         result = result._unstack_once(d, stacked_indexes[d], fill_value, sparse)

File ~/mambaforge/envs/icec/lib/python3.11/site-packages/xarray/core/dataset.py:5395, in Dataset._unstack_full_reindex(self, dim, index_and_vars, fill_value, sparse)
   5393 if name not in index_vars:
   5394     if dim in var.dims:
-> 5395         variables[name] = var.unstack({dim: new_dim_sizes})
   5396     else:
   5397         variables[name] = var

File ~/mambaforge/envs/icec/lib/python3.11/site-packages/xarray/core/variable.py:1930, in Variable.unstack(self, dimensions, **dimensions_kwargs)
   1928 result = self
   1929 for old_dim, dims in dimensions.items():
-> 1930     result = result._unstack_once_full(dims, old_dim)
   1931 return result

File ~/mambaforge/envs/icec/lib/python3.11/site-packages/xarray/core/variable.py:1820, in Variable._unstack_once_full(self, dims, old_dim)
   1817 reordered = self.transpose(*dim_order)
   1819 new_shape = reordered.shape[: len(other_dims)] + new_dim_sizes
-> 1820 new_data = reordered.data.reshape(new_shape)
   1821 new_dims = reordered.dims[: len(other_dims)] + new_dim_names
   1823 return type(self)(
   1824     new_dims, new_data, self._attrs, self._encoding, fastpath=True
   1825 )

File ~/mambaforge/envs/icec/lib/python3.11/site-packages/dask/array/core.py:2219, in Array.reshape(self, merge_chunks, limit, *shape)
   2217 if len(shape) == 1 and not isinstance(shape[0], Number):
   2218     shape = shape[0]
-> 2219 return reshape(self, shape, merge_chunks=merge_chunks, limit=limit)

File ~/mambaforge/envs/icec/lib/python3.11/site-packages/dask/array/reshape.py:285, in reshape(x, shape, merge_chunks, limit)
    283             else:
    284                 chunk_plan.append("auto")
--> 285         outchunks = normalize_chunks(
    286             chunk_plan,
    287             shape=shape,
    288             limit=limit,
    289             dtype=x.dtype,
    290             previous_chunks=inchunks,
    291         )
    293 x2 = x.rechunk(inchunks)
    295 # Construct graph

File ~/mambaforge/envs/icec/lib/python3.11/site-packages/dask/array/core.py:3095, in normalize_chunks(chunks, shape, limit, dtype, previous_chunks)
   3092 chunks = tuple("auto" if isinstance(c, str) and c != "auto" else c for c in chunks)
   3094 if any(c == "auto" for c in chunks):
-> 3095     chunks = auto_chunks(chunks, shape, limit, dtype, previous_chunks)
   3097 if shape is not None:
   3098     chunks = tuple(c if c not in {None, -1} else s for c, s in zip(chunks, shape))

File ~/mambaforge/envs/icec/lib/python3.11/site-packages/dask/array/core.py:3218, in auto_chunks(chunks, shape, limit, dtype, previous_chunks)
   3212 largest_block = math.prod(
   3213     cs if isinstance(cs, Number) else max(cs) for cs in chunks if cs != "auto"
   3214 )
   3216 if previous_chunks:
   3217     # Base ideal ratio on the median chunk size of the previous chunks
-> 3218     result = {a: np.median(previous_chunks[a]) for a in autos}
   3220     ideal_shape = []
   3221     for i, s in enumerate(shape):

File ~/mambaforge/envs/icec/lib/python3.11/site-packages/dask/array/core.py:3218, in <dictcomp>(.0)
   3212 largest_block = math.prod(
   3213     cs if isinstance(cs, Number) else max(cs) for cs in chunks if cs != "auto"
   3214 )
   3216 if previous_chunks:
   3217     # Base ideal ratio on the median chunk size of the previous chunks
-> 3218     result = {a: np.median(previous_chunks[a]) for a in autos}
   3220     ideal_shape = []
   3221     for i, s in enumerate(shape):

IndexError: tuple index out of range

Anything else we need to know?
The most recent traceback entry point to an issue in dask code.

Could you help me understand the relevance of the stack trace? Is that because of the large chunks?
I'll change the title of the issue, if that's OK

When you run
da.stack(new=("z", "t")).groupby("new").map(sum).unstack("new")

dask will respond with a warning:
/home/george/mambaforge/envs/icec/lib/python3.11/site-packages/xarray/core/variable.py:1787: PerformanceWarning: Reshaping is producing a large chunk. To accept the large
chunk and silence this warning, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': False}):
    ...     array.reshape(shape)

To avoid creating the large chunks, set the option
    >>> with dask.config.set(**{'array.slicing.split_large_chunks': True}):
    ...     array.reshape(shape)Explictly passing ``limit`` to ``reshape`` will also silence this warning
    >>> array.reshape(shape, limit='128 MiB')
  result = result._stack_once(dims, new_dim)

I  followed the above advice. I suspect this is a dask issue, but I decided to post it here because it seems to be closely related to #5754.

dask will respond with a warning:

Yes I get the same thing. My question is whether xarray should be intervening here...

I followed the above advice. I suspect this is a dask issue, but I decided to post it here because it seems to be closely related to #5754.

OK, that does seem like a dask bug — xarray is just doing a reshape. So I think we can separate that issue and push it upstream, unless I'm missing something (though will take some work to create a minimal dask example)

Thanks @yt87 I could reproduce with only dask (https://github.com/dask/dask/issues/10603). So closing here.


perf: improve accuracy of field IAI benchmarks

Extract FP element sample creation into a util function to allow
exclusion from measurement.
Likewise for getting a quadratic residue by squaring the sample.
Replace the apprpriate call in IAI and Criterion benches.

Type of change

[x] Bug fix

Codecov Report

Merging #412 (a660cd2) into main (15246ff) will decrease coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #412      +/-   ##
==========================================
- Coverage   94.12%   94.09%   -0.03%
==========================================
  Files          62       62
  Lines        7741     7741
==========================================
- Hits         7286     7284       -2
- Misses        455      457       +2

see 1 file with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Test on Windows Authenticated SQL Server

Need to validate that this code works with windows account authenticated sql server

This has been completed. The trick is to set username and password to empty strings and it works fine


Fix include so docs will generate

Requirements (place an x in each [ ])

[x] I've read and understood the Contributing Guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.

Codecov Report

Merging #181 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #181   +/-   ##
=======================================
  Coverage   48.86%   48.86%
=======================================
  Files           7        7
  Lines         440      440
  Branches      120      120
=======================================
  Hits          215      215
  Misses        213      213
  Partials       12       12

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 47244b0...322756b. Read the comment docs.


Missing ComImport gives Cast Exception in AudioClient.cs

Added  ComImport to IAudioCaptureClient to make it work with .NET native toolchain:
[Guid("C8ADBD64-E71E-48A0-A4DE-185C395CD317"),
 InterfaceType(ComInterfaceType.InterfaceIsIUnknown), ComImport]

thanks for reporting


Automated Package Upgrade

:tada: This PR is included in version 2.2.256 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Make benchmark setup consistent

Objective

Benchmarks are inconsistently setup, there are several that do not compile, and several others that need to be reformatted.
Related / precursor to #16647, this is part of my attempt migrating bevy-bencher to the official benchmarks.

Solution

[!TIP]
I recommend reviewing this PR commit-by-commit, instead of all at once!

In 5d26f56eb9404d14b8272ce8fa47e7eb318c2b18 I reorganized how benches were registered. Now this is one [[bench]] per Bevy crate. In each crate benchmark folder, there is a main.rs that calls criterion_main!. I also disabled automatic benchmark discovery, which isn't necessarily required, but may clear up confusion with our custom setup. I also fixed a few errors that were causing the benchmarks to fail to compile.
In afc8d33a87d52df65d52392d207acfdfe189f5b2 I ran rustfmt on all of the benchmarks.
In d6cdf960abe27bf68a19fdcd5aa97d4aedd2d314 I fixed all of the Clippy warnings.
In ee94d48f5085002566a5a6eada9225a10ff067cb I fixed some of the benchmarks' usage of black_box(). I ended up opening https://github.com/rust-lang/rust/pull/133942 due to this, which should help prevent this in the future.
In cbe1688dcd7998771ec99f8765896fa859c7da00 I renamed all of the ECS benchmark groups to be called benches, to be consistent with the other crate benchmarks.
In e701c212cdc6bb57f1af37316e7834f2ac982630 and 8815bb78b0d8a87326f365da51940a01cf37e1f9 I re-ordered some imports and module definitions, and uplifted fragmentation/mod.rs to fragementation.rs.
Finally, in b0065e0b0bf53c9159cb5c210214c2576a803ec5 I organized Cargo.toml and bumped Criterion to v0.5.
Testing

cd benches && cargo clippy --benches
cd benches && cargo fmt --all

@BD103 once this is merge conflict free I'll press the button. Thanks for this: the benchmarks folder has been in a state of disarray for way too long.

Whoops, looks like I messed up fixing merge conflicts. Please hold!

@alice-i-cecile should be good to go now!


WIP: Investigate miri issues

This is WIP PR to address miri issues. it builds on @phil-opp's existing miri branch.

This first set of changes fixes a couple issues.
The primary issues addressed so far are:

The tests should not be blindly casting heap.bottom and assuming that the first Hole will be there. When the data is not aligned, it won't be.
Some of the tests assume that the heap that will be created will always be created with an alignment that matches the Hole type. This is probably always practically true, but not in Miri.

To address the former, I added a pub(crate) accessor function for the hole list, rather than casting the pointer. This fixed some Miri warnings about casting with alignment.
To verify the former, I made a little helper type that forces the alignment to some large amount, which made some of the failures go away. This fixed a number of "size isn't as expected", which I think were mostly just not handling the "shrunk heap due to alignment" case (the CODE seems to, but the TESTS seemed not to).
#[repr(align(128))]
struct Chonk<const N: usize> {
    data: [MaybeUninit<u8>; N]
}

This probably isn't the right fix, but it helped verify things. The right fix is to probably either exposing how much of the heap space was lost to alignment somehow.

The second commit also applies the force-alignment trick to the max_stack tests, which now allows all tests to pass in a "standard" miri run:
MIRIFLAGS="-Zmiri-ignore-leaks" cargo +nightly miri test

However, taking it one (or a few?) steps further, the following configuration now fails:
MIRIFLAGS="-Zmiri-tag-raw-pointers -Zmiri-ignore-leaks" cargo +nightly miri test

Digging in further!

So, in this latest commit, I'm now sort of stuck on this issue:
test test::align_from_small_to_big ... error: Undefined Behavior: attempting a write access using <238798> at alloc100033[0x200], but that tag does not exist in the borrow stack for this location
    --> /home/james/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1342:9
     |
1342 | ...   copy_nonoverlapping(&src as *const T, dst, 1);
     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |       |
     |       attempting a write access using <238798> at alloc100033[0x200], but that tag does not exist in the borrow stack for this location
     |       this error occurs as part of an access at alloc100033[0x200..0x210]
     |
     = help: this indicates a potential bug in the program: it performed an invalid operation, but the rules it violated are still experimental
     = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information
help: <238798> was created by a retag at offsets [0x0..0x10]
    --> src/hole.rs:152:19
     |
152  |             addr: self as *mut Hole,
     |                   ^^^^
help: <238798> was later invalidated at offsets [0x8..0x10]
    --> src/hole.rs:276:32
     |
276  | ... = previous.next.as_mut().unwrap().next.take();
     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: inside `core::ptr::write::<hole::Hole>` at /home/james/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:1342:9
     = note: inside `core::ptr::mut_ptr::<impl *mut hole::Hole>::write` at /home/james/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mut_ptr.rs:1406:18
note: inside `hole::allocate_first_fit` at src/hole.rs:293:25
    --> src/hole.rs:293:25
     |
293  | / ...   ptr.write(Hole {
294  | | ...       size: padding.size,
295  | | ...       next: previous.next.take(),
296  | | ...   })
     | |________^

I had to rework a couple of pointer types to get here, but I think there is some kind of issue between split_hole and allocate_first_fit, creating multiple mutable aliases to the same data in some way.
When doing some print debugging, I see the following memory ranges:
fn allocate_first_fit(mut previous: &mut Hole, layout: Layout) -> Result<HoleInfo, ()> {
    loop {
        let allocation: Option<Allocation> = previous
            .next
            .as_mut()
            .and_then(|current| split_hole(current.info(), layout.clone()));
        match allocation {
            Some(allocation) => {
                // link the front/back padding
                // Note that there must be no hole between following pair:
                // previous - front_padding
                // front_padding - back_padding
                // back_padding - previous.next
                let prev = previous as *mut Hole as usize;
                println!("prev: {:016X}..{:016X}", prev, prev + previous.size);
                if let Some(padding) = allocation.back_padding {
                    let back = padding.addr as usize;
                    println!("back: {:016X}..{:016X}", back, back + padding.size);
                }
                if let Some(next) = previous.next.as_mut() {
                    let nxt = (*next) as *mut Hole as usize;
                    println!("next: {:016X}..{:016X}", nxt, nxt + next.size);
                }
                panic!();

---- test::align_from_small_to_big stdout ----
prev:<PHONE_NUMBER>23B7B0..000000000023B7B0
back:<PHONE_NUMBER>23CC80..000000000023D048
next:<PHONE_NUMBER>23CA80..000000000023CE68
thread 'main' panicked at 'explicit panic', src/hole.rs:274:17

I'm not certain, but it looks weird to me that back and next overlap like this. I'll keep digging for a bit longer, but I'd be open to any feedback from you!

Specifically, it looks like mutating previous.next.next via this line of code:
let new_next = previous.next.as_mut().unwrap().next.take();

Is what triggers the miri failure (I think it's the call to take(), which writes to previous.next.next).

Thanks a lot for investigating!
If I remember correctly, the split_hole function does not update the previous.next pointer. So the allocation and the front and back padding is expected to overlap with the next range. We then update previous.next to skip the hole corresponding to allocation:
let new_next = previous.next.as_mut().unwrap().next.take();
previous.next = new_next;

I guess miri is not happy because there is aliasing of *mut across allocation and previous.next. The cleaner solution would probably be to make split_hole take the Hole out of the linked list before returning the allocation.
We probably need to rework the split_hole function anyway because the range end of the back padding should always equal the range end of next, which does not seem the case in your tests.

We probably need to rework the split_hole function anyway because the range end of the back padding should always equal the range end of next, which does not seem the case in your tests.

Ok, this seems to be caused by your recent change to HoleList: https://github.com/phil-opp/linked-list-allocator/commit/7a03f759bc9e8b6a2f8fca01f3db6f77956ad096#diff-bc1158565eb1de7d4bb32e95497e98fb9f57599f10a10140360598d73ca769f7L159-R161 . By changing addr from *mut u8 to *mut Hole, the wrapping_offset call in https://github.com/phil-opp/linked-list-allocator/blob/7a03f759bc9e8b6a2f8fca01f3db6f77956ad096/src/hole.rs#L228-L230 became incorrect (since offset is in units of size_of::<T>()).

I started to rework split_hole in https://github.com/phil-opp/linked-list-allocator/tree/rework-split-hole, based on your commit 23ae87d.

Nice! I thought I caught all those, the goal of that was to fix the "tried to access something with align 8 via an align 1 pointer", which might have been fixed/masked by the Chonk alignment fixer.
It's probably worth adding forced-misalignment tests in the future, e.g. starting with Chonk, and then skipping 1..align_of(Hole) to make sure everything handles misaligned data correctly.

Hey @phil-opp, I'll likely have a little time later this afternoon to work on this some more, let me know how you want to collab on this.
Mostly let me know if you are "tagging out" of a branch, and I can pick up where you left off.

I don't have time to continue working on this today, so feel free to continue on my branches. I also just send you an invite to the repo to give you write access, then we don't need to synchronize across forks. Thanks again for looking into this!

So uh, @phil-opp, I sort of rewrote the hole module to use a linked list cursor API, which made more sense to me, and avoided mixing and matching references and pointers.
As of this commit, all tests are now passing with tagged pointers and strict provenance rules:
MIRIFLAGS="-Zmiri-disable-isolation -Zmiri-strict-provenance -Zmiri-tag-raw-pointers -Zmiri-ignore-leaks" cargo +nightly miri test
    Finished test [unoptimized + debuginfo] target(s) in 0.00s
     Running unittests src/lib.rs (target/miri/x86_64-unknown-linux-gnu/debug/deps/linked_list_allocator-676c14ab1258310d)

running 17 tests
test hole::test::aff ... ok
test hole::test::cursor ... ok
test test::align_from_small_to_big ... ok
test test::allocate_and_free_double_usize ... ok
test test::allocate_double_usize ... ok
test test::allocate_multiple_sizes ... ok
test test::allocate_usize ... ok
test test::allocate_usize_in_bigger_block ... ok
test test::deallocate_middle ... ok
test test::deallocate_right_before ... ok
test test::deallocate_right_behind ... ok
test test::empty ... ok
test test::extend_empty_heap ... ok
test test::extend_fragmented_heap ... ok
test test::extend_full_heap ... ok
test test::oom ... ok
test test::reallocate_double_usize ... ok

test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

   Doc-tests linked_list_allocator

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

I probably should take a crack at the dealloc API, since I think it could be made simpler with the new Cursor API. But first, I wanted to check in with you to see if this is a direction you are comfortable going in. I tried to comment everything pretty extensively, if you have any feedback or questions, I'd be happy to answer them!

I know significant rewrites are bad form - so if you'd like me to walk this back or find a way to make this change more minimal, just let me know! Otherwise I'll try and move the deallocate API to use the cursor API, and then clean up the hacks and try and get this ready to merge.
If this ends up not being immediately (or ever) mergeable, no worries!

Hey @phil-opp, I'm marking this as ready for review, as I've completed the work to switch deallocate over to the Cursor based API.
I know this is a pretty substantial change, let me know if you have any questions, or want to chat about this sync somewhere.

@phil-opp this should be ready to merge, added Miri checks to CI!

One quick note - while investigating whether this fixed #60, I realized that containing a *mut u8 makes the Heap item !Send, where it formerly was. I'll add an unsafe impl, but let me know if you'd like me to back that out.

Published as v0.10.0

Thanks, thank so much :tada:


[UI] [Connection Wizard] Render adapter icons dynamically

Description
Icons for respective adapters will be rendered when they are found to be active.
And if they are not found, black and white logo of Meshery will be rendered.
https://user-images.githubusercontent.com/75248557/131216581-4b96b0bc-3aa3-4545-a633-fb1a5104b42e.mov
Signed commits

[x] Yes, I signed my commits.

Task linked: CU-7qag19 Change Adapters step icon to meshery icon when inactive

Codecov Report

Merging #4018 (02321df) into master (89ed2a4) will decrease coverage by 7.41%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #4018      +/-   ##
==========================================
- Coverage   26.31%   18.90%   -7.42%
==========================================
  Files          64       64
  Lines        5004     5004
==========================================
- Hits         1317      946     -371
- Misses       3282     3769     +487
+ Partials      405      289     -116

Flag
Coverage Δ

gointegrationtests
?

unittests
18.90% <ø> (ø)

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

Impacted Files
Coverage Δ

mesheryctl/internal/cli/root/system/status.go
0.00% <0.00%> (-62.83%)
:arrow_down:

mesheryctl/internal/cli/root/system/start.go
1.05% <0.00%> (-53.69%)
:arrow_down:

mesheryctl/internal/cli/root/system/stop.go
0.90% <0.00%> (-39.10%)
:arrow_down:

mesheryctl/internal/cli/root/system/restart.go
1.78% <0.00%> (-32.15%)
:arrow_down:

mesheryctl/internal/cli/root/system/update.go
1.17% <0.00%> (-29.42%)
:arrow_down:

mesheryctl/internal/cli/root/system/check.go
1.39% <0.00%> (-22.38%)
:arrow_down:

mesheryctl/internal/cli/root/system/logs.go
0.00% <0.00%> (-21.60%)
: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 88d1c7c...02321df. Read the comment docs.

Good stuff.


What APK editor?

Could you please leave a link to the APK editor you use for this project? I have tried many different applications and none of them have the options you provided in the readme, and none of them let me save a modified APK.

Hello,
For APK Editor, the app is no longer available on the Google Play Store.
Nevertheless, you can use this one :
http://www.mediafire.com/file/bsktdr7asf43leu/APK_Editor_Pro.ver.1.10.0.build.121.apk/file
You can also press the "Download latest APK" on the ReadMe to download the latest SxClient's build.

Alright, thanks for the quick response


Structs don't copy when assigned by out when assignee is ref.

Structs don't copy when assigned by out when assignee is ref.
Steps To Reproduce
https://deck.net/93c8466cda41dc6279076d52b4c50a5a/third
https://dotnetfiddle.net/IpCDZK
public class Program
{
    public struct Int
    {
        public int Value;

        public void Increment() => Value++;
    }

    public static void Main ()
    {
        Int? num = new Int(), num2;
        Set(out num2, ref num);
        num.Value.Increment();
        Console.WriteLine(num2.Value.Value + " should be 0.");
    }
    public static void Set<T>(out T target, ref T input) => target = input;
}

Hi @vladsch! Was looking through the relevant code and got an idea: can't we make CheckValueTypeClone a bit more smart and make it emit something like Bridge.cloneMeMaybe(T, variable) in places where type is a generic parameter? cloneMeMaybe then can check if T is a struct in runtime and return variable.$clone() or, if it's not, simply return value.
I cannot see any issues apart from runtime costs here, but given it can always be optimized by supplying [Template] attribute or using Script.Call / Script.Write for performance-critical paths, I guess we can live with it.

Hi guys! Created #4097. Please review.


add tests for create verification use case

add tests plz review :D

Edited method naming

merged as suggestions are addressed


ENS collectibles tokens being mislabeled as ETH

Issue:
The Collectible token ENS is being mislabeled as ETH for incoming or outgoing txs
Safes on Rinkeby:
https://safe-team.dev.gnosisdev.com/app/#/safes/0x1230B3d59858296A31053C1b8562Ecf89A2f888b/transactions
https://safe-team.dev.gnosisdev.com/app/#/safes/0xf2565317F3Ae8Ae9EA98E9Fe1e7FADC77F823cbD/transactions

Adding some context:

https://safe-transaction.rinkeby.gnosis.io/api/v1/safes/0x1230B3d59858296A31053C1b8562Ecf89A2f888b/all-transactions/

Backend seems to return the correct data, i.e. ERC721 transfer with token symbol ENS. So I assume this is a client bug.
Marking this as high until the cause and impact is figured out.

Issue exists on mainnet, too: https://gnosis-safe.io/app/#/safes/0xA063Cb7CFd8E57c30c788A0572CBbf2129ae56B6/transactions
 https://etherscan.io/tx/0xf1affb71f43990a2f130b8fe233bf577c41c0e4c922e74e8aad714016ee47aa6


Release v6.0.3

Removed sentry from catch handler for paymentform
Creator

[ ] Build relevant tests if any apply
[ ] Ensure there are no new warnings
[ ] Upload an animated GIF showcasing the solution (if it applies)
[ ] Set a relevant reviewer

Reviewer

[ ] Run test and make sure all tests pass
[ ] Review function and form on iOS
[ ] Review function and form on Android
[ ] Review function and form on Web
[ ] Review new test logic

@FrankGrand @conrad-vanl @richarddubay This is a hotfix for our current giving issue. It seemed that Sentry was causing a memory leak whenever we had to log a new error from a user. This is a temporary fix while we look for a better solution moving forward.


NodeModulesReferenceDetector is too aggressive...

Many webpack.config.js module.rules loader configurations would have an explicit excludes of a /node_modules/ pattern. We should allow these kinds of references. I think maybe we should only have the detector deal with things inside a require() or import statement. This will make the rule not catch 100% of stuff, but it can at least allow the proper uses of these node_modules appearances. Alternative is to have disable-single-line kind of thing so that we don't have to disable the entire rule altogether.

This feature seems to have been implemented (with boll-disable), can it be closed?


Query regarding the testing setup for Action Localization

In the supplementary file, it has been written that for Action Localization , in ActivityNet dataset, each snippet consists of 768 frames ? This is extremely dense feature , because normal benchmarked approaches use 8 or 16 frames ! Is this claim correct ? If yes, can you share this feature atleast if not the code ?

Sorry for misleading of the "snippet".
Normal benchmarked approaches combine 8 or 16 frames to form a "snippet", which is similar to down-sampling the video fps by 8 or 16 times. Then they divide (rescale) the video into video clips of equal snippet numbers.
Our work (following AFSD) uses the original video fps, then divides the video into video clips of 768 frames. And we call the video clip as the "snippet".
We will make this clear in the next version. Thanks.

Thanks for your clarification !
Also I have a additional question regarding the Action Localization setup : so in the paper it is written that a off-the-shelf action detector is used ! So is it the pretrained weights that the authors have released is used for the detectors ?

Since we use the CLIP pre-trained features instead of two-stream I3D features, we train the proposal detector from scratch. By the way, congratulations on your work at ECCV2022.

Thanks for the response ! And also congratulations to you too for ECCV 2022 !


Uploading scores doesn't update - logged out - players table

Example:
Scores uploaded, players table was still empty when logged out

Can view cached entries at the following address (when logged in)
https://couragescoresdev.azurewebsites.net/data/api/status/cache

Closing as unable to reproduce, can use tools to diagnose what is going on more thoroughly


Composer install failed  - "doctrine/doctrine-migrations-bundle" > 2.X.X

PHP version
$ php -v
PHP 7.4.5 (cli) (built: Apr 23 2020 02:25:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.5, Copyright (c), by Zend Technologies

Subject
Composer install failed when the version of doctrine/doctrine-migrations-bundle / doctrine/migrations is upper of 2.X.X
Steps to reproduce
You must set the version of doctrine/doctrine-migrations-bundle / doctrine/migrations at 3.0.1
Expected results
Executing script cache:clear [KO]
 [KO]
Script cache:clear returned with error code 1
!!
!!  In ArrayNode.php line 319:
!!
!!    Unrecognized options "dir_name, namespace" under "doctrine_migrations".
Script @auto-scripts was called via post-update-cmd

https://jmsche.fr/en/blog/upgrade-doctrine-migrations-from-2-x-to-3-0


Doesn't seem to work on Stremio-Web

URL: https://web.strem.io/#/detail/movie/kuroinu-1
Works fine one Stremio Desktop and http://<IP_ADDRESS>:11470/
Somehow, but Stremio-Web is very good and lightweight, it also looks better and probably the future of stremio, we should consider supporting it!

Try with latest, @dexter21767 made a fix


Can't able to import

Hi,
I updated your code for swift 3. I can't able to access methods for JTSplashView. its showing error kindly do needfully

Hi, this seems more like a problem with module import. The project is not updated for Swift 3.2 nor 4 btw, please try the example project.


bump dtype version

ok.. this again :smile:
It should be noted that<EMAIL_ADDRESS>no longer includes Buffer... So this patch basically makes it work like it did before in 0.1.0.

Hey @hughsk any chance of this merging? Currently any module using array-pack-2d is including all of Buffer.

Actually nevermind, it turns out my particular use-case doesn't need this module anyways, so no rush at all. :smile:

Aha! I just fixed this and saw your PR now :') Thanks for sending it through all the same, and sorry for the delay!


return correct exit code

fixes #7990

Not tested yet.

@amaltaro Alan I updated as you suggested. Please review again. Thanks,

Thanks Brian for the review.

However, this changes two things that I don't like:
The stdout / stderr is buffered in memory instead of being dumped straight to the WMCore out/err.

I didn't quite understand about "WMCore out/err"? Are you saying instead of putting in memory and print out, just pass to sys.stdout? If that is the case, one problem I am having is that we save that output in error case and stick to the exception massage which later extracted then reported to wmstats.
This code is used only for Stageout, Are we expecting a lot of output when commend succeed.

stdout/stderr is no longer intermixed but printed out separately.

Hmm, I am not sure how to fix this with generic code.

test this please

@amaltaro, Alan actually there are places still use runCommand method. I added back the code. Could you test again? Thanks,

test this please

Thanks, Seangchan! Looks much better now and all DMWM workflows ran without any issues (at CERN and FNAL).
I'm going to create a new issue to replace that call on all the stage out plugins. I see no reason to keep using one plugin that doesn't return the stdout/err.

test this please

This specific patch works fine.
However, we still have an issue with the stage out commands themselves. I did a test with an nonexistent command
xrdcp-old-old -d 0 -f  /storage/local/data1/condor/execute/dir_1228949/glide_Fc7TQJ/execute/dir_1242379/job/WMTaskSpace/cmsRun1/RAWSIMoutput.root  root://cmsdcadisk01.fnal.gov//dcache/uscmsdisk/store/unmerged/DMWM_Test/Pythia8_Dijet15_pp502_TuneCUETP8M1/GEN-SIM/MonteCarlo_Ext_PhEDEx_July_Validation_TEST_Alan_v17-v11/00000/545E4D98-9F6B-E711-85F4-0025905B8606.root\?eos.targetsize=16075518\&eos.checksum=ae4f996a ; if [ $? -eq 0 ] ; then exit 0; else echo "Error: xrdcp exited with $?"; exit 60311 ; fi

and this was the error message:
Message: 2017-07-18T05:25:45 : Command exited non-zero ExitCode:151
Output: (stdout: Error: xrdcp exited with 1

stderr: /bin/sh: xrdcp-old-old: command not found
)

The problem lies on the shell variable $?, which always has the exit status from the latest command executed. Which means, when the code reaches the else clause, it has the exit status of the if statement, and the exit status of the xrdcp command is gone now.
IMO, we should first fix those stage out commands and then we patch the production agents. Anyways this execute issue is there for several months already.


Change call to change listener to invoke on updated value

CentralDogmaBeanFactory changed documented parameter from "bean" to "defaultValue".
ChangeListener called with up-to-date value.

Thanks, @jmostella !


Does Pinocchio provide an analytical expression for the mass matrix ?

Hello,
I am not sure that the following feature comes with Pinocchio : analytical expression for the mass matrix. Is it the case ? If yes is there a running example that I could rely one ?
Thanks in advance.
best
Vincent

@vpadois I'm on it now, just to be sure of your needs. Do you only want to:

evaluate the Mass Matrix according to the current configuration of the robot, in this case:
crba(model,data,q) will do the job
having a function of type computeMassMatrix(q), in this case code generation will do the job
or having a Latex file with the whole formula

Pinocchio can provides the three, but I would prefer to not waisting time by providing a side feature which is not needed.
Thanks in advance for your quick reply.

Thx @jcarpent.
What we really need is a symbolic expression of the mass matrix, possibly in the form of a function.  I guess this corresponds to the second option you describe ? The more this expression is factorized with respect to the symbolic variable q, the better it is for us.
best
Vincent

Dear @vpadois, you can find the solution of your issue in #1059.
I will add the feature for generating latex equations soon.

Dear @vpadois, you can find the solution of your issue in #1059.
I will add the feature for generating latex equations soon.

Thank you so much for your reactivity. We will work on it and give you feedback as soon as possible.
Best
Vincent

Dear @jcarpent,  I would be very interested in an example of generating latex equations using CppAD,  do you think you would be able to add this feature soon?
Thank you!


DOCS-1921: Adds broken component to MDXComponents.js

Bug fix. The calicoq download URL didn't display correctly for CE 3.17+. This PR adds a component to the list of MDXComponents.js, which allows it to display correctly for different versions.
Product Version(s):

Issue:

Link to docs preview:

SME review:

[ ] An SME has approved this change.

DOCS review:

[ ] A member of the docs team has approved this change.

Additional information:

Merge checklist:

[ ] Deploy preview inspected wherever changes were made
[ ] Build completed successfully
[ ] Test have passed

@doucol PTAL
CC @bmckercher123


Running init with an existing config installs PHP 7.4

Description
When using an existing configuration file, nitro init will install PHP 7.4 even if the config file has the version set as "7.3".
Steps to reproduce

Create a machine with PHP 7.3
Destroy the machine
Change the version to 7.4 in the config
Run nitro init and see that PHP 7.4 is installed by default

Additional info

Nitro version: beta.10
Multipass version: all

hey, I don't know why but I'm actually still getting this issue. I am up to date on 1.1.1. It was not finding the 7.3 service and defaulting to 7.4 when I already had global config. I deleted the global config and tried it from scratch and it worked. I was wondering what the resolution of this was, or if it was just closed because nobody else reported it.


Don't provision for pods with nominated node

1. Issue, if available:
Fixes #1050
2. Description of changes:
When a pod can evict other pods due to preemption, scheduler sets pod.Status.NominatedNodeName to track that scheduler has considered the pod suitable for the given node. As such, Karpenter does not need to take action on the particular node and can instead focus on the evicted pods.
3. Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: link to issue
[X] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Looks like nominatednodename will be cleared if the pod fails to preempt another pod (e.g. another pod is scheduled). https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#user-exposed-information. This should work quite nicely.

Thanks!


cifar10/norm_all_batch_data.npy

Excuse me，I read the code you wrote and it feels good, but there is no such file：cifar10/norm_all_batch_data.npy
Without it ,I can't run the Experiment_CIFAR10.py
Can you provide this file？Thank you very much！

@vickyqi7 The norm_all_batch_data.npy is too large to upload on Github. I have updated README.md and you could download it via BaiduNet

Thank you very much~

My pleasure. If you don't have other issues, I would close this issue.


Create an alloy feature to consume influxdb line protocol metrics

Background
I currently am utilizing the Grafana stack (Loki, Alloy, Mimir) to consume, process and store and metrics and logs. Some of the infrastructure uses influx DB and natively supports Influxdb line protocol and graphite metric exports.
I would like a clean migration path from Influxdb to mimir and have alloy deployed as a service to consume metrics similar to the Prometheus receive endpoint.
As a user I would expect this functionality to exist or a service agnostic implementation to consume various metric formats that users can then split by line, json array, etc and process and convert the metrics themselves but an influx line protocol mechanism feels like the right first approach.
Proposal
I am proposing adding a new influx.line_protocol component that will create an endpoint that systems can pass metrics to. see line protocol docs
I am interested in working on this feature and submitting a PR if Grafana thinks it is an ideal candidate for the Alloy repo.

This sounds solid. Would love to see a PR! Thank you.

So this functionality would essentially be bringing the Influxdb Write Proxy (and possibly Graphite Write Proxy & Datadog Write Proxy) into Grafana Alloy natively? That sounds like a great solution.


Bad exposure 202920

Hi @akremin @abhi0395, can you mark exposure 202920 (tile 83423) from 20231031 as bad? (Guiding was lost during that exposure.)

@rongpu I'm on daily dataops duty now, so I'll flag that as bad.  Thanks for catching that.

I flagged night=20231031 expid=202920 tile=83423 as bad and purged it.  That tile was also observed on 20231101 expid=203052, so I also purged and reran that so that the cumulative redshifts won't have the bad 20231031 data.  I reran tsnr and nightqa for both nights.
@rongpu @schlafly heads up: this tile is still listed in tiles-specstatus as EFFTIME_SPEC=275.3, albeit with ZDONE=false QA=none, though now after purging it is listed in tiles-daily as EFFTIME_SPEC=241.2 .  I've lost track of what the procedure is here to get tiles-specstatus in sync with tiles-daily.  I can figure it out if you don't immediately know either.
tiles-specstatus:
TILEID EFFTIME_SPEC GOALTIME ZDONE  QA
------ ------------ -------- ----- ----
 83423        275.3    300.0 false none

tiles-daily:
TILEID EFFTIME_SPEC
------ ------------
 83423        241.2

exposures-daily:
 NIGHT   EXPID  TILEID EXPTIME EFFTIME_SPEC
-------- ------ ------ ------- ------------
20231031 202920  83423   530.5          0.0
20231101 203052  83423  1077.2        241.2

tiles-specstatus will get updated automatically the next time desi_update_tiles_specstatus is run as part of QA.  Don't worry about it.  Thank you!  241.2 is short of 0.85 * 300 = 255 so we should technically put this one back into the night plan for another 60 s.  @rongpu, would you mind doing that for tonight?  Ugh, I thought these were done.  Thanks!

The remaining observation on tile 83423 was completed 20231103. @schlafly I think we can close this issue now.

Thanks, closing!


Adjust right padding in Margin Trade pair Select

Applied tailwind class to override default padding, but the CSS is ordered differently from dev -> prod build

Class applied in commit:
https://github.com/DistributedCollective/Sovryn-frontend/commit/1d6bf15b9395c6383f78c51b55331a994fca71d6

I don't get it, could you create a screenshot of what is wrong exactly? I tried it on testnet and it looks fine and we don't have it in the production yet, right?


Update dependencies with pyup

Update requirements.txt of this repository with pyup
Add example for gitlab how to update dependencies

pyup is activated. Missing is example in gitlab ci.


Github Issues

Should we close the Github Issues for this project so that we are forced to use JIRA instead?

I would leave it open like PNC (for any community contributions?). But for preference use internal JIRA  ?

+1 for the nicks comment.We'll use JIRA external contributors can use this issue tracker

Makes sense to me! :+1:


unsupported data type:

GORM Playground Link
https://github.com/go-gorm/playground/pull/26
Description
unsupported data type: <P> when the GC runs between the clause and the finaliser with a new session

tx = tx.Session(&gorm.Session{})

should be
tx = tx.Session(&gorm.Session{WithConditions: true})

Refer http://v2.gorm.io/docs/method_chaining.html for details


669 Add abort reason to runWithRetry

AB#669
How contribute to this repo.
Guidelines for Pull Requests.
Description
We've seen a few cases where a host bug manifests as triggering an error with message "runWithRetry was Aborted". This message doesn't give any hint as to which API was being called when it was aborted, or the reason for the cancellation.
This PR provides a new-and-improved version of runWithRetry that returns a result (failed, or aborted) instead of throwing when something goes wrong, allowing us to move the error instrumentation to the caller (Container.attach() in this case), where we can put the appropriate level of detail in the error message.
See https://github.com/microsoft/FluidFramework/pull/11000
Upcoming breaking change
This PR will have an upcoming breaking change which replaces the implementation of runWithRetry with the new runWithRetry2. The new method will be removed at the same time this change is made.

@kian-thompson, the approach you took is more explicit, but also results in more code written.
I wonder if you considered passing the reason to AbortController.abort (see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort & https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/reason), and having runWithRetry() through properly formatted error object where callers do not need to do anything.
I believe I've heard from someone that maybe this extra arg is not supported in Node or something like that, but even if that's the case, it feels like it's easy to remedy.

This is likely bonus point, and possibly needs to be handled in separate task / PR: It's worth taking a look at ODSP implementation of runWithRetry. While its shape and implementation differ a lot, looking at call sites I see code that will eventually need to pass AbortySignal through the stack too (eventually), and thus it will need similar handling for abort flow. Is there a way to reuse at least some of the logic here?

This is likely bonus point, and possibly needs to be handled in separate task / PR: It's worth taking a look at ODSP implementation of runWithRetry. While its shape and implementation differ a lot, looking at call sites I see code that will eventually need to pass AbortySignal through the stack too (eventually), and thus it will need similar handling for abort flow. Is there a way to reuse at least some of the logic here?

AB#2994


Add any kind of graphical setting screen to the default list of excluded GUIs

These UIs can benefit massively from having a transparent background, so users can see graphical changes live as they tinker, without having to menu-dive between each edit. In particular, Iris (or maybe it's Sodium?) has transparent backgrounds for the graphics and shader settings UI pages - I imagine that'd include a large proportion of Blur users. As a lay-user I'm not sure how to go about finding the names of Minecraft's UI panels (especially mods' panels) - that might be a useful link for Blur's readme, too. Love the mod, it works absolutely gorgeously on the vanilla UIs!

There's a config option that enables the display of the current screen's path.
I'm also working on wildcards to allow the easy disabling for screens of the same mod, I'll finish it when I have time.

This was added in 2.5.0, so I'll close this issue.


feat: migrate to motore 0.3 & new callopt

Motivation
feat: migrate to motore 0.3 & new callopt

 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.


Object open failed because 'Singleton' key value of '1' was not found


ERROR: CDVDVideoCodecAndroidMediaCodec::GetOutputPicture unknown index(-10000)

Bug report
Your Environment

Netflix add-on version: 1.0.0
Operating system version/name:
Device model:
Beelink GT King Pro

Used Operating system:

[ X ] Android
[ ] iOS
[ ] Linux
[ ] OSX
[ ] Raspberry-Pi
[ ] Windows

Describe the bug

ERROR: CDVDVideoCodecAndroidMediaCodec::GetOutputPicture unknown index(-10000)

I got an error message while attempting video play.
Expected behavior

It play smoothly without any problems.
Actual behavior

Video did not played.
Steps to reproduce the behavior

Possible fix

Debug log

The debug log can be found from this link:
ERROR: CDVDVideoCodecAndroidMediaCodec::GetOutputPicture unknown index(-10000)
Additional context or screenshots (if appropriate)
Installation

[ x] I'm using other Netflix Repo
[ ] I'm using a different source

Other information

When I turned off the hardware acceleration, I can listen audio, but when it turned on the error message popped up and both video and audio not work.
Screenshots

the one specified is not a problem of this addon
already other users have complained that this device does not work
your device has a firmware problem or something inherent
then i can not do anything


Allow to specify a list of routes to ignore

Is this something that could be useful? We could filter by routeId.

I think for now we should focus on #62 , it should be enough for most cases without doing too many checks in the hooks. I am removing it from the milestone .

Let's keep the on hold now that we released #62 .

I think we can close this one now.


Add option to disable LSP snippets

Is your feature request related to a problem? Please describe.
I manage my snippets with Ultisnips. With some language servers, the snippets it provides collides with my own and has higher priority, which is super annoying:

Describe the solution you'd like
When specifying nvim_lsp = true I mean that I want completion suggestions from the LSP, like function names, local variables, instance variables and so on, but I don't want snippets, as I handle those with a different plugin. I would like a setting to hide snippet suggestions from the LSP.
Describe alternatives you've considered
I have tried disabling LSP snippets in the LSP client settings, as I have seen suggested in other places:
lspconfig.yang_lsp.setup {
  on_attach = _G.pylsp_on_attach,
  capabilities = {
    textDocument = {
      completion = {
        completionItem = {
          snippetSupport = false
        }
      }
    }
  }
}

But this simply doesn't work...
Additional context
I'm using yang-lsp with nvim-lspconfig and this custom config:
-- Custom config for YANG language server
--
local lspconfig_configs = require("lspconfig/configs")

lspconfig_configs.yang_lsp = {
  default_config = {
    cmd = { "yang-language-server" },
    filetypes = { "yang" },
    root_dir = function(fname)
      return lsputil.root_pattern("yang.settings")(fname)
    end,
  },
  docs = {
    description = [[
TODO
    ]],
  },
}

You should be able to override client's capability and disable snippet support for specific language server.

You should be able to override client's capability and disable snippet support for specific language server.

Any suggestions on how I do that? As you can see from my post, I have tried and failed.

Ah, apologies, I did miss that bit somehow! You can print resolved_capabilities for that lsp and see if it is sending false as you expect.

Ah, apologies, I did miss that bit somehow! You can print resolved_capabilities for that lsp and see if it is sending false as you expect.

Output from: :lua print(vim.inspect(vim.lsp.get_active_clients())):
    resolved_capabilities = {
      call_hierarchy = false,
      code_action = true,
      code_lens = true,
      code_lens_resolve = true,
      completion = true,
      declaration = false,
      document_formatting = true,
      document_highlight = true,
      document_range_formatting = true,
      document_symbol = true,
      execute_command = false,
      find_references = true,
      goto_definition = true,
      hover = true,
      implementation = false,
      rename = true,
      signature_help = true,
      signature_help_trigger_characters = <3>{ "(", "," },
      text_document_did_change = 2,
      text_document_open_close = true,
      text_document_save = true,
      text_document_save_include_text = false,
      text_document_will_save = false,
      text_document_will_save_wait_until = false,
      type_definition = false,
      workspace_folder_properties = {
        changeNotifications = false,
        supported = false
      },
      workspace_symbol = true
    }

    server_capabilities = {
      codeActionProvider = true,
      codeLensProvider = {
        resolveProvider = true
      },
      completionProvider = {
        resolveProvider = false,
        triggerCharacters = { "." }
      },
      definitionProvider = true,
      documentFormattingProvider = true,
      documentHighlightProvider = true,
      documentRangeFormattingProvider = true,
      documentSymbolProvider = true,
      hoverProvider = true,
      referencesProvider = true,
      renameProvider = true,
      semanticHighlighting = {
        scopes = {}
      },
      signatureHelpProvider = {
        triggerCharacters = <table 3>
      },
      textDocumentSync = 2,
      workspaceSymbolProvider = true
    },

I don't see snippets mentioned anywhere :thinking:

Could this be related as to why I'm getting repeated suggestions on completion?

:confused:


don't call DMA region add callabck when duplicate region is added

Signed-off-by: Thanos Makatos<EMAIL_ADDRESS>

I think I'm missing a bit of context here. Is this working around a qemu bug or something?
Do we need something in the spec to say we are required to ignore duplicate exact mappings?

Small typo in the commit title too

Small typo in the commit title too

ok

I think I'm missing a bit of context here. Is this working around a qemu bug or something?
Do we need something in the spec to say we are required to ignore duplicate exact mappings?

QEMU sends two DMA map requests with the same DMA region. In our DMA code we don't re-add this region so I assumed that this behavior is legitimate. But I suppose your question makes sense, we need establish whether this behavior should be allowed by the spec.

I think I'm missing a bit of context here. Is this working around a qemu bug or something?
Do we need something in the spec to say we are required to ignore duplicate exact mappings?

QEMU sends two DMA map requests with the same DMA region. In our DMA code we don't re-add this region so I assumed that this behavior is legitimate. But I suppose your question makes sense, we need to establish whether this behavior should be allowed by the spec in the first place.

@jlevon we already cover this in the spec:

A command to map over an existing region must be failed by the server with EEXIST set in error field in the reply.

So we need to tell JJ to fix it in QEMU. I'll implement a unit test for this.

Haven't hit this in a very long time, closing.


Add test-262 framework

I suggested this in #298 but now that I've brought in all those test cases I don't know what to do with it?!
Since Babel is parsing the code into AST, I'm not sure those untyped examples would be useful to test against. We can still sanity test the type checker with all those untyped example ASTs. However I'm not sure if that's exactly useful. Please advise.

Oh, it's a complicated question.
Because test262 test the latest syntax of ECMAScript specification, and Hegel supports the same syntax as babel, the valid syntax evidence of valid program.
A simple example:
const a: number = "2" + "4";

So, I don't know, actually, do we need test262 for Hegel or not(

Yes, these tests are gonna be all unyped vanilla JavaScript. However there could be cases in this test suite that breaks Hegel's type checking for some reason. For instance you might not considered JavaScript like this to be able to pass type checking (event thought there is no type information):
@Decorartor()
class Foo extends Bar {
  #bar = #{what: "is this even JS"} ?? #{}
  constructor(@ArgDecorator() foo = throw new Error("No way")) {
    this.#bar = foo;
  }
}

So it is a good idea to keep testing the type checker against whatever is coming up to JavaScript


Updates for Swift 2.2 deprications

Just replacing the calls that were deprecated in Swift 2.2, and will be removed in Swift 3.0

Thanks man. Appreciate it. I'm not doing so much more iOS development ATM. But hopefully I'll get back to it at some point.


🌱 Remove skipping e2e upgrade test workaround

What this PR does / why we need it:
This PR remove the implicit logic to skip upgrade e2e when running other feature e2e (pivoting, remediation ..). After this we will explicitly skip tests from the JJB.
This PR depends on https://github.com/metal3-io/project-infra/pull/454

/hold until merging :
https://gerrit.nordix.org/c/infra/cicd/+/16370
https://github.com/metal3-io/project-infra/pull/454

Whats the benefit for this change?

Whats the benefit for this change?

We are using ginkgo focus/skip to select the e2e tests that should be running for each job. So far we got two Jobs: *e2e feature [pivoting, remediation and live iso] and *e2e upgrade. And we where either focusing on upgrade when running upgrade jjb or skipping it when running feature. soon we will have integration and k8s upgrade jobs the logic to focus or skip will be more complex and it will be proper and explicit to use ginkgo focus or skip on the jjb level not in capm3 makefile (that was a quick workaround when we introduced e2e upgrade)

Whats the benefit for this change?

We are using ginkgo focus/skip to select the e2e tests that should be running for each job. So far we got two Jobs: *e2e feature [pivoting, remediation and live iso] and *e2e upgrade. And we where either focusing on upgrade when running upgrade jjb or skipping it when running feature. soon we will have integration and k8s upgrade jobs the logic to focus or skip will be more complex and it will be proper and explicit to use ginkgo focus or skip on the jjb level not in capm3 makefile (that was a quick workaround when we introduced e2e upgrade)

Thanks
/approve

/test-ubuntu-integration-main

/hold cancel
/test-ubuntu-e2e-main

/test-ubuntu-e2e-main

/test-upgrade-e2e-main

/cherry-pick release-1.2


show message, description, metadata conditionally

Showing of message, description, metadata fields in Status is controlled by showMessage, showDescription, showMetadata (was implemented)
This feature was implemented in Status.toString() method, which will result logging and responding the same status.
There's a requirement in real world makes more sense to have a limited Status response but a more detailed logging of Status.
Thus, showMessage, showDescription, showMetadata will only control the showing for response with setExchangeStatus() method, but not logging. For logging, always log all the info

test

test

test 1

test 1

test 2

test 2

 show message, description, metadata conditionally light-4j master

 show message, description, metadata conditionally light-4j master


Corrected Links on Integrations Page

What kind of changes does this PR include?

Minor content fixes (broken links, typos, etc.)

Description
Fixes Links on integrations page to be pointed internally to the corresponding integrations pages within the docs

Closes #1183

LGTM! Thanks @aFuzzyBear !  🥳


Launch a Kubernetes cluster configured with multi-vc

Find and implement a mechanism to launch a Kubernetes cluster configured with multi-vc for testing purpose

Dupilcate https://github.com/vmware/kubernetes/issues/408


[NEW]: want to add light mode UI

Please assign me this task so that I can start working on it

@Ks103 Assigned , Start Contributing

Are you still working ?

@apoorvaron please assign me this task under GSSOC'23, I can work upon it

@sagarb2003 , @Ks103 Already someone created this issue before , so i m closing this


First version of this will just do forward geocoding

In #1 I got a bit stuck on the huge range of potential features unlocked by the rich JSON returned by OpenCage.
I'm going to release the first version of this with one very simple feature: forward geocoding which turns an address into a latitude/longitude.

User enters a {{ column }} template string (it even suggests the default for you if it spots an address column)
If an API key is configured in metadata then that's it - otherwise they get a password field to enter an API key
The don't get to chose columns: it uses the latitude and longitude columns, creating them if the do not exist

That's enough for a useful initial release, especially since it will work well with datasette-cluster-map.

I'm going to have an optional column which will store the full JSON in.

Got this working:

Released: https://pypi.org/project/datasette-enrichments-opencage/


Large files processing kills due to lack of RAM

I have 180GB db, and when I try to convert it to CSV I run out of memory very fast (64 GB RAM), is there a way to do some sort of pipe thing or anything else?

With the changes in https://github.com/alephdata/cronodump/pull/19, the memory footprint now should be around the size of the range of what CroBank.tad weighs.
If even that is too much, the PR adds an option (--compact) to trade 15 % more conversion time with a lot less memory consumption, typically it's static and less 10 MB.

I guess I need a large swap then😅

No. Why? Did you try the PR? It was made specifically to not use as much memory. Just go ahead and please try it. As I wrote, for me there was no significant difference in conversion speed using the PR, but if you use the --compact option to use even less memory, then you will have to wait a little more, around 15 % more time than without the --compact flag.

The PR is merged. Closing as fixed.

No. Why?

Because, if my memory serve, I have DB with ~80GB CroBank.tad :D


Just doing some clean up

fixes
/.../python3.7/distutils/dist.py:259: UserWarning: 'licence' distribution option is deprecated; use 'license'
warnings.warn(msg)

Thanks


pb: Add package specifiers

Needed so the generated Java classes have a package. Also added the proto package as well because it's a good practice.

how should I be importing now?
getting this on SDK when simply updating to the new release version


Mako stub improvements

This is an attempt to mitigate https://github.com/knative/pkg/issues/728 and fix https://github.com/knative/pkg/issues/799

mako-stub now writes columns before the message output
mako-stub now REQUIRES the dev.config in the config-mako ConfigMap
mako-stub now serves results with http (I included a script to use it)

/assign grantr

/uncc @coryrc

Part of #728 is glog having bad semantics. I'm going to ask Mako to change to klog (it's nearly source-compatible).

Part of #728 is glog having bad semantics. I'm going to ask Mako to change to klog (it's nearly source-compatible).

@coryrc this fake Mako stub is the temporary solution for the issue that the real Mako cannot accept data from non-google developers - https://github.com/google/mako. It does not use glog.

@grantr I've done a PR to remove usage of SetupWithBenchmarkConfig from eventing https://github.com/knative/eventing/pull/2202. I think we can remove the hold since there is no usage in serving

/hold
Question for @chizhg: if the Mako config is embedded in the same ConfigMap as the environment name, how will we set the environment to prod in CI clusters?
In https://github.com/knative/test-infra/blob/master/scripts/performance-tests.sh#L54, we create the config-mako ConfigMap with the environment key, but that won't work with this change because the configmap will have the dev.config keys as well.
Maybe the ConfigMap specifying the benchmarking environment should be a separate ConfigMap from the one specifying the Mako configs. We could do this with projected volumes.

/hold cancel
Canceling the hold because @chizhg has to approve this anyway :)

/hold
Question for @chizhg: if the Mako config is embedded in the same ConfigMap as the environment name, how will we set the environment to prod in CI clusters?
In https://github.com/knative/test-infra/blob/master/scripts/performance-tests.sh#L54, we create the config-mako ConfigMap with the environment key, but that won't work with this change because the configmap will have the dev.config keys as well.
Maybe the ConfigMap specifying the benchmarking environment should be a separate ConfigMap from the one specifying the Mako configs. We could do this with projected volumes.

I think we can add the configmap in the xxx-setup.yaml for continuous runs, or patch the configmap in the update_benchmark function in https://github.com/knative/eventing/blob/e46fbaf28665e0774779ac8a37621819c3e73031/test/performance/performance-tests.sh#L47.
I prefer the latter one. But either way, I think we can still reuse the configmap.

cc @chaodaiG for approval

Since Chao is OOO
/cc @adrcunha

/approve