Wrong Matrix block gets cloned

Description
In a Matrix field, the wrong block (and of the wrong type) gets cloned while the entry is in an unsaved state. It was likely the block on which the clone functionality was run previously. Starts working properly on saving the entry but happens again after a few blocks are clones without saving the entry. I was able to see this most commonly on blocks that contained Table fields, but that might be a conincidence.
Steps to reproduce

Clone different blocks randomly and wait for a bit (perhaps for a draft to get auto-saved)
Continue cloning different blocks till you notice the issue 😛 (do not save the entry or refresh the page)

Additional info

Plugin version: 1.1.11
Craft version: 3.4.30
Multi-site: No

Additional context
A few Super Table fields exist in the system but not in the Matrix field in which I observed the issue.

Also encountered errors of the type mentioned in #13 and #14, where a block just wasn't getting cloned at all and the action was failing silently.
From the smith.log file:
2021-01-18 20:16:31 [-][1][-][error][smith] Unable to find block for new1.
2021-01-18 20:16:31 [-][1][-][error][smith] {"type":"timeline","enabled":"1","fields":{"heading":"Early Admission","events":[{"col1":{"date":"05/12/2019","timezone":"Asia/Kolkata"},"col4":{"date":"21/01/2021","timezone":"Asia/Kolkata"},"col2":"dmy","col3":"Last Date of Application"},{"col1":{"date":"04/01/2020","timezone":"Asia/Kolkata"},"col4":{"date":"23/01/2021","timezone":"Asia/Kolkata"},"col2":"my","col3":"Personal Interview"},{"col1":{"date":"01/02/2020","timezone":"Asia/Kolkata"},"col4":{"date":"","timezone":"Asia/Kolkata"},"col2":"my","col3":"Announcement of Selection"}]},"blockId":"new1"}

and
2021-01-18 20:06:05 [-][1][-][error][smith] Unable to find block for new2.
2021-01-18 20:06:05 [-][1][-][error][smith] {"type":"table","enabled":"1","fields":{"table":{"columns":{"colcol0":{"heading":"Item","width":"50%","align":"left"},"colcol1":{"heading":"Amount","width":"20%","align":"left"},"colcol2":{"heading":"Deadline","width":"30%","align":"left"}},"rows":{"rowrow0":{"colcol0":"First semester","colcol1":"30000","colcol2":"30 Nov 2020"},"rowrow1":{"colcol0":"Second semester","colcol1":"35000","colcol2":"3 Jan 2020"}}}},"blockId":"new2"}

Also encountered errors of the type mentioned in #13 and #14, where a block just wasn't getting cloned at all and the action was failing silently.
From the smith.log file:
2021-01-18 20:16:31 [-][1][-][error][smith] Unable to find block for new1.
2021-01-18 20:16:31 [-][1][-][error][smith] {"type":"timeline","enabled":"1","fields":{"heading":"Early Admission","events":[{"col1":{"date":"05/12/2019","timezone":"Asia/Kolkata"},"col4":{"date":"21/01/2021","timezone":"Asia/Kolkata"},"col2":"dmy","col3":"Last Date of Application"},{"col1":{"date":"04/01/2020","timezone":"Asia/Kolkata"},"col4":{"date":"23/01/2021","timezone":"Asia/Kolkata"},"col2":"my","col3":"Personal Interview"},{"col1":{"date":"01/02/2020","timezone":"Asia/Kolkata"},"col4":{"date":"","timezone":"Asia/Kolkata"},"col2":"my","col3":"Announcement of Selection"}]},"blockId":"new1"}

and
2021-01-18 20:06:05 [-][1][-][error][smith] Unable to find block for new2.
2021-01-18 20:06:05 [-][1][-][error][smith] {"type":"table","enabled":"1","fields":{"table":{"columns":{"colcol0":{"heading":"Item","width":"50%","align":"left"},"colcol1":{"heading":"Amount","width":"20%","align":"left"},"colcol2":{"heading":"Deadline","width":"30%","align":"left"}},"rows":{"rowrow0":{"colcol0":"First semester","colcol1":"30000","colcol2":"30 Nov 2020"},"rowrow1":{"colcol0":"Second semester","colcol1":"35000","colcol2":"3 Jan 2020"}}}},"blockId":"new2"}

Both kinds of issues seem a bit random, though, and are reproducible only after multiple trial-and-error attempts.

Both kinds of issues seem a bit random, though, and are reproducible only after multiple trial-and-error attempts.

Should be fixed in 1.1.12, but let me know!

Should be fixed in 1.1.12, but let me know!

Thanks a lot for the quick turnaround, but it looks like the problem of blocks not turning up when cloned still exists...sort of.
I cloned a block containing a table and new block didn't show up. But I tried again and it did the second time. Still feels a bit random and not reliable. I Will test more and share my findings.
Also, when a block fails to clone, the browser scrolls to either the top or bottom of the page. (Probably because the element to scroll to doesn't exist?)

Thanks a lot for the quick turnaround, but it looks like the problem of blocks not turning up when cloned still exists...sort of.
I cloned a block containing a table and new block didn't show up. But I tried again and it did the second time. Still feels a bit random and not reliable. I Will test more and share my findings.
Also, when a block fails to clone, the browser scrolls to either the top or bottom of the page. (Probably because the element to scroll to doesn't exist?)

Hmmm, I'll also try my best to replicate it again!

Hmmm, I'll also try my best to replicate it again!

Is there a chance that my data has become corrupt? Any changes that I should make? I'll also try on a new entry.

Is there a chance that my data has become corrupt? Any changes that I should make? I'll also try on a new entry.

Hi @engram-design
I had updated the plugin to 1.1.14 but am still seeing the issue where the wrong block is sometimes cloned (usually the block that I had cloned earlier).
I'm also seeing another issue in one of the entries where the Clone button stops working altogether (nothing happens when I click it, even the dropdown with the Copy, Paste and Clone options stays open as if the associated click (or equivalent) event didn't fire).
In the above case, I also noticed an error in the console:
Uncaught TypeError: t.blocks.filter is not a function
    at s.constructor.filterBlocks (smith.js:291)
    at smith.js:317
    at Array.forEach (<anonymous>)
    at s.constructor.filterBlocks (smith.js:307)
    at smith.js:317
    at Array.forEach (<anonymous>)
    at s.constructor.filterBlocks (smith.js:307)
    at smith.js:317
    at Array.forEach (<anonymous>)
    at s.constructor.filterBlocks (smith.js:307)

It would be great if you can help with this. Thanks!
Version information:
Craft CMS: 3.7.7
Smith: 1.1.14
Browser: MS Edge for Mac Version 92.0.902.73 (Official build) (arm64)
OS: MacOS Big Sur 11.3.1 (20E241)
(Attaching images to share more information on the system and plugins).

Really struggling to replicate this one, particularly the error being thrown. Wondering if you might be able to share a video of you replicating the issue? If there are any nested fields (or if the Matrix is nested), as well as trying a reduced test case (test an entry with little to no blocks).


map parsing ignores quotes

When i tried to install traefik with helm 2.2.3 and provided a quoted and comma-separated value for the service.annotations key, it seemed to ignore the quotes and assume that the second value is a new key:
helm install --name traefik --namespace kube-system stable/traefik --set dashboard.enabled=true,dashboard.domain=traefik.k8s.example.com,service.labels.dns=route53,service.annotations.domainName=traefik.k8s.example.com,api.k8s.example.com"
Error: failed parsing --set data: key "api" has no value

sorry, wrong repo. closing.


Enable YYYY-mM-dD parsing.

This patch makes ClickHouse be able to parse DateTime string like '2017-2-3', '2017-02-3' and '2017-2-03' correctly.

We should try to test for performance regression.

How to test:

Get a table with many dates.
Run clickhouse-benchmark <<< "SELECT count() FROM test.hits WHERE NOT ignore(toDate(toString(EventDate)))"
This will do many roundtrip (Date <-> String) transformations in a loop.
Keep the results (example):

QPS: 28.321, RPS: 251319059.531, MiB/s: 479.353, result RPS: 28.321, result MiB/s: 0.000.
0.000%  0.027 sec.
10.000% 0.028 sec.
20.000% 0.028 sec.
30.000% 0.033 sec.
40.000% 0.037 sec.
50.000% 0.038 sec.
60.000% 0.038 sec.
70.000% 0.039 sec.
80.000% 0.039 sec.
90.000% 0.039 sec.
95.000% 0.040 sec.
99.000% 0.041 sec.
99.900% 0.056 sec.
99.990% 0.057 sec.

Compare with the version after modification.

Don't worry if there will be noticeable performance degradation.
Usually it's possible to write the function in the way when there are no degradation in "fast path", and sometimes it will be the reason for further optimizations.

Thanks.

QPS: 0.971, RPS: 169956710.977, MiB/s: 324.167, result RPS: 0.971, result MiB/s: 0.000.
0.000%  1.028 sec.
10.000% 1.028 sec.
20.000% 1.028 sec.
30.000% 1.028 sec.
40.000% 1.028 sec.
50.000% 1.028 sec.
60.000% 1.028 sec.
70.000% 1.028 sec.
80.000% 1.028 sec.
90.000% 1.028 sec.
95.000% 1.028 sec.
99.000% 1.028 sec.
99.900% 1.028 sec.
99.990% 1.028 sec.

Queries executed: 466.

QPS: 0.985, RPS: 172334823.321, MiB/s: 328.703, result RPS: 0.985, result MiB/s: 0.000.
0.000%  1.020 sec.
10.000% 1.020 sec.
20.000% 1.020 sec.
30.000% 1.020 sec.
40.000% 1.020 sec.
50.000% 1.020 sec.
60.000% 1.020 sec.
70.000% 1.020 sec.
80.000% 1.020 sec.
90.000% 1.020 sec.
95.000% 1.020 sec.
99.000% 1.020 sec.
99.900% 1.020 sec.
99.990% 1.020 sec.

Queries executed: 467.

QPS: 0.979, RPS: 171402420.272, MiB/s: 326.924, result RPS: 0.979, result MiB/s: 0.000.
0.000%  1.121 sec.
10.000% 1.121 sec.
20.000% 1.121 sec.
30.000% 1.121 sec.
40.000% 1.121 sec.
50.000% 1.121 sec.
60.000% 1.121 sec.
70.000% 1.121 sec.
80.000% 1.121 sec.
90.000% 1.121 sec.
95.000% 1.121 sec.
99.000% 1.121 sec.
99.900% 1.121 sec.
99.990% 1.121 sec.

Queries executed: 468.

QPS: 0.996, RPS: 174340655.922, MiB/s: 332.528, result RPS: 0.996, result MiB/s: 0.000.
0.000%  0.904 sec.
10.000% 0.904 sec.
20.000% 0.904 sec.
30.000% 0.904 sec.
40.000% 0.904 sec.
50.000% 0.904 sec.
60.000% 0.904 sec.
70.000% 0.904 sec.
80.000% 0.904 sec.
90.000% 0.904 sec.
95.000% 0.904 sec.
99.000% 0.904 sec.
99.900% 0.904 sec.
99.990% 0.904 sec.
^CStopping launch of queries. SIGINT recieved.

Queries executed: 470.

QPS: 1.049, RPS: 183538445.406, MiB/s: 350.072, result RPS: 1.049, result MiB/s: 0.000.
0.000%  0.852 sec.
10.000% 0.879 sec.
20.000% 0.899 sec.
30.000% 0.908 sec.
40.000% 0.917 sec.
50.000% 0.933 sec.
60.000% 0.949 sec.
70.000% 0.976 sec.
80.000% 1.009 sec.
90.000% 1.058 sec.
95.000% 1.104 sec.
99.000% 1.152 sec.
99.900% 1.297 sec.
99.990% 1.305 sec.

Test result with this patch
Queries executed: 305.

QPS: 0.988, RPS: 173014779.264, MiB/s: 330.000, result RPS: 0.988, result MiB/s: 0.000.
0.000%  1.012 sec.
10.000% 1.012 sec.
20.000% 1.012 sec.
30.000% 1.012 sec.
40.000% 1.012 sec.
50.000% 1.012 sec.
60.000% 1.012 sec.
70.000% 1.012 sec.
80.000% 1.012 sec.
90.000% 1.012 sec.
95.000% 1.012 sec.
99.000% 1.012 sec.
99.900% 1.012 sec.
99.990% 1.012 sec.

Queries executed: 306.

QPS: 0.976, RPS: 170877424.448, MiB/s: 325.923, result RPS: 0.976, result MiB/s: 0.000.
0.000%  1.023 sec.
10.000% 1.023 sec.
20.000% 1.023 sec.
30.000% 1.023 sec.
40.000% 1.023 sec.
50.000% 1.023 sec.
60.000% 1.023 sec.
70.000% 1.023 sec.
80.000% 1.023 sec.
90.000% 1.023 sec.
95.000% 1.023 sec.
99.000% 1.023 sec.
99.900% 1.023 sec.
99.990% 1.023 sec.

Queries executed: 307.

QPS: 0.923, RPS: 161509778.349, MiB/s: 308.055, result RPS: 0.923, result MiB/s: 0.000.
0.000%  1.086 sec.
10.000% 1.086 sec.
20.000% 1.086 sec.
30.000% 1.086 sec.
40.000% 1.086 sec.
50.000% 1.086 sec.
60.000% 1.086 sec.
70.000% 1.086 sec.
80.000% 1.086 sec.
90.000% 1.086 sec.
95.000% 1.086 sec.
99.000% 1.086 sec.
99.900% 1.086 sec.
99.990% 1.086 sec.

Queries executed: 308.

QPS: 0.995, RPS: 174201433.916, MiB/s: 332.263, result RPS: 0.995, result MiB/s: 0.000.
0.000%  1.105 sec.
10.000% 1.105 sec.
20.000% 1.105 sec.
30.000% 1.105 sec.
40.000% 1.105 sec.
50.000% 1.105 sec.
60.000% 1.105 sec.
70.000% 1.105 sec.
80.000% 1.105 sec.
90.000% 1.105 sec.
95.000% 1.105 sec.
99.000% 1.105 sec.
99.900% 1.105 sec.
99.990% 1.105 sec.

It seems there is a 5% performance penalty.

Almost Ok.
But I don't see total report (the last report after you press Ctrl+C). I want to compare minimum time:
0.000%  0.852 sec.

Oh, i didn't notice the last one is a summary :)
Test without this patch
QPS: 1.049, RPS: 183538445.406, MiB/s: 350.072, result RPS: 1.049, result MiB/s: 0.000.
0.000%  0.852 sec.
10.000% 0.879 sec.
20.000% 0.899 sec.
30.000% 0.908 sec.
40.000% 0.917 sec.
50.000% 0.933 sec.
60.000% 0.949 sec.
70.000% 0.976 sec.
80.000% 1.009 sec.
90.000% 1.058 sec.
95.000% 1.104 sec.
99.000% 1.152 sec.
99.900% 1.297 sec.
99.990% 1.305 sec.

Test with this patch
QPS: 0.945, RPS: 165406462.828, MiB/s: 315.488, result RPS: 0.945, result MiB/s: 0.000.
0.000%  0.971 sec.
10.000% 0.980 sec.
20.000% 0.995 sec.
30.000% 1.010 sec.
40.000% 1.028 sec.
50.000% 1.048 sec.
60.000% 1.073 sec.
70.000% 1.091 sec.
80.000% 1.114 sec.
90.000% 1.143 sec.
95.000% 1.162 sec.
99.000% 1.233 sec.
99.900% 1.447 sec.
99.990% 1.475 sec.

Ok.
There is 14% performance difference.
Also there is missing test for the modification.

I will totally rewrite this code in separate PR.
But I like to see you in contributors, so I will merge this pull request :)

https://github.com/yandex/ClickHouse/pull/1495
Now the code is actually faster than before (+8%).
Also added functional and performance test.

Great!


Validation

HI, Reviewer 👋👋
In This PR:

Add the following validations:

For the User model:

Name must not be blank.
PostsCounter must be an integer greater than or equal to zero.

For the Post model:

Title must not be blank.
Title must not exceed 250 characters.
CommentsCounter must be an integer greater than or equal to zero.
LikesCounter must be an integer greater than or equal to zero.

Add unit specs for all of your models' methods and validations.

😊👏🙌

Hi Student  ,
Status: Approved :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:

To Highlight 💪🏻

Changes Implemented ✔

Good job implementing the requirements  :+1: Your project is complete!  There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
Optional Suggestions  :

N/A

Every comment with the [OPTIONAL] prefix is not crucial enough to stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag  ichala in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Recreating dd2cced908c8_adblock-dns-server_adblock_dns_1 ... error
Starting adblock-dns-server_logs_viewer_1                ... done
ERROR: for dd2cced908c8_adblock-dns-server_adblock_dns_1  Cannot start service adblock_dns: driver failed programming external connectivity on endpoint adblock-dns-server_adblock_dns_1 (f3496794e507c25e080c696277e5bb9e100689caadb7d4b71c1241267628dfdb): Error starting userland proxy: listen tcp <IP_ADDRESS>:53: bind: address already in use
ERROR: for adblock_dns  Cannot start service adblock_dns: driver failed programming external connectivity on endpoint adblock-dns-server_adblock_dns_1 (f3496794e507c25e080c696277e5bb9e100689caadb7d4b71c1241267628dfdb): Error starting userland proxy: listen tcp <IP_ADDRESS>:53: bind: address already in use
ERROR: Encountered errors while bringing up the project.

Hello, got the above error after trying to run it.... wondering if I did all right... the .env file has just the extension... no name, is that right? Left domain and ipv6 in the file blank.

Hi @DeathWithKebab , thanks for reaching out.
It turns out that, modern linux distros using systemd also spin up a local dns service called systemd-resolved. This local dns is meant to reduce dns requests on the system to improve performance. However, since it is also using port :53, it will conflict with our adblock dns server.
Therefore, we need to disable it. I haven't documented the steps for that just yet, but it goes roughly as follows for ubuntu 20.04:

Disable and stop the systemd-resolved service:

sudo systemctl disable systemd-resolved.service
sudo systemctl stop systemd-resolved

Edit the following file: file /etc/resolv.conf, maybe replacing with google dns

nameserver <IP_ADDRESS>
nameserver <IP_ADDRESS>

Try the start script again.

Additional references:

https://gist.github.com/zoilomora/f7d264cefbb589f3f1b1fc2cea2c844c
https://askubuntu.com/questions/907246/how-to-disable-systemd-resolved-in-ubuntu

I'll try out as soon I'll get to my PC. I'll let you know

Worked out like a charm, the server is on!
The only problem is during testing fase nslookup could reach no server

@DeathWithKebab , I'm glad it works out!
If you have any suggestions, or if you think there are better ways I could document the steps, do let me know.
Feel free to close this issue ticket if you believe that it is resolved for you.

@ragibkl
The documentation is clear and got nothing to say about it!
wandering if I have to open another issue ticker or can I ask you directly here for the problem said in the last comment.

I'm fine either way if the issue is closely related. For this ticket, I'd like to at least add the troubleshooting steps here in the README file, that way future users have less trouble. Maybe we can close this ticket after that.
Good luck with your server!!

Well, not sure if it's related to the machine I'm actually using or I got something wrong while I was setting it up. In the testing phase I tried
nslookup zedo.com <server public ip>
the command returned as it can't reach the server.

Is it at least running from inside the server? If you ssh into the server, run the following, do you see anything?
nslookup zedo.com <IP_ADDRESS>

Also, do you see any logs while in the server?
docker-compose logs -f

@DeathWithKebab , can I know what kind of specs did you provision for this server? The adblock dns container now loads about > 1.5 millions domains. It would take a minimum amount of RAM of 2 GiB to run this server.

@DeathWithKebab , the other think I could think of, is maybe you have some rules in your Digitalocean firewall settings, that prevents any queries from hitting your server. You need to open up tcp/udp ports 53.
Otherwise, there could be some firewall software running inside your server itself. Maybe try find some guildes online on how to turn it off?
Can I know what OS you tried this with? If I have the time, I'll try setting up myself and see if I can reproduce the issue.

Hello! The server is Droplet by Digital Ocean on Ubuntu System, the latest one.

Yes, it might be a memory shortage problem but the machine had no lag spike or other latencies while starting the server

Try with 2 GiB or 3 GiB then. Maybe you'll get more stable server. 1GiB is too small.
If you really need to save on budget, you may try to setup swapfile. But I don't recommend this. I don't know if it will perform well.

Hi @DeathWithKebab , Can I know if you managed to run the server? I'm updated the readme now, and would like to know if there is there is anything else missing in the readme that I should add to help future users.

Hello @ragibkl, I'm actually trying to set u the server from zero... I'll let you asap. Ty

Doc updated here: https://github.com/ragibkl/adblock-dns-server/pull/66
Changes merged in.

Sorry for very late response.
First things first, happy new year.
I took all this time experimenting and trying your code on virtual machines, physical servers and finally decided that a little server was the best solution for me.
I read the updated readme and it's good and understandable. Thank you!

Sorry for very late response.
First things first, happy new year.
I took all this time experimenting and trying your code on virtual machines, physical servers and finally decided that a little server was the best solution for me.
I read the updated readme and it's good and understandable. Thank you!


blend() documentation example not shown on website reference

Looks like there's no example in the website reference: http://p5js.org/reference/#p5.Image/blend
But the global function alias has an example here: https://github.com/processing/p5.js/blob/master/src/image/p5.Image.js#L515

looks like there's an example here for the global method, but no example for the p5.Image method here. will add now..

oh, maybe that's what you were saying in your initial comment, sorry. anyway, will fix. :)

fixed with https://github.com/processing/p5.js/commit/6eaa75c90e780c4c03d6bd11822b8a1e43f42cd5


[OASIS-12] Allow serializerexporter to consume APM stats

What does this PR do?
Add stats in channel to serializerexporter to consume APM stats
Split from https://github.com/DataDog/datadog-agent/pull/25759
Motivation
Consume and send APM stats from DD connector.
Describe how to test/QA your changes
n/a will be covered in https://github.com/DataDog/datadog-agent/pull/25759

/merge


Update Owl

Coverage remained the same at 69.154% when pulling bb2ecd5ea5388a9ba5ae46581c4c98bf86d6594d on fix-crash-in-getting-old-jobs into 4623661add068b3f41f5c088a6cace7d47a02724 on main.


Bump Splinter version in init.py

Fixes #1012

@niccolomineo thanks for you contribution. Can you resolve the conflicts in your branch?

Thanks for the contribution, but I'm closing this in favour of #990.


Added a note on the compilation with numpy to avoid confusion.

I think that it wasn't clear enough in which case the user needed to compile with numpy header files.

Right. Good one!


Vulnerability roundup 83: samba-4.11.5: 2 advisories

search, files

[ ] CVE-2018-1057 CVSSv3=8.8 (nixos-unstable)
[ ] CVE-2018-1050 CVSSv3=3.1 (nixos-unstable)

Scanned versions: nixos-unstable: 8130f3c1c2b. May contain false positives.

These don't seem to apply to 4.11.5, it's just the patterns in CVE not updated.  https://www.samba.org/samba/history/security.html


read_dimensions not all categoryids are lower case

As it turns out, (at least some) non-ASCII characters that appear in the name of a Dimensions categoryid will not be in lower case in the categorymap. An example is a variable merged into the Dimensions data from SPSS with the varlabel 'Återbruket'. In that case looking for the category in the categorymap needs to look for exactly 'Återbruket', not 'återbruket', as would currently be the assumption.

Resolved by #552.


Option for xsv cat row to raise error if input files differ in field names

An error is raised if records are different lengths (differing number of columns/field) across input files, but is silent if the number of columns/fields are the same even if the names are different.
Could we have a flag that forces an error if the input files have columns of different names, even if the number is the same?
Example:
data1.csv:
f1,f2,f3
 1, 2, 3
 4, 5, 6

data2.csv:
f1,f4,f5
 1, 2, 3
 4, 5, 6

Calling xsv cat rows --check-field-names data1.csv data2.csv raises an error.

That actually seems like pretty reasonable default behavior. Perhaps the flag should be for disabling that error check?

You are right: the other way around makes more sense.
By the way, great, great, great toolkit. I use CSV files a LOT, and even started my toolkit to do some of these things, but was so relieved to find yours because it saved me a lot of work! THANK you !

@jeetsukumaran Thanks. :-)
Out of curiosity, have you tried/heard of csvkit? If so, what did you find lacking about it? (For me it was mostly performance, but also some UI complaints.)

Yes, I did. I discovered it after I started down my own (aborted) toolkit, as with yours, and I actually have it installed side-by-side with yours.
I like what csvkit does, but yes, it is a UI thing:
(1) I am all for "one program that does one thing well", but the fact that there were lots of little programs made things tricky. It was just difficult to always get a list of available csv* programs, and the figure out what it does. I so much prefer the more modern "<program> <subcommand> ..." (like git does) approach to <program-subcommand> approach.
(2) The other minor quibble is that many csvkit programs take a single file from the command like as an argument. So if I want to, e.g. check the headers of multiple files, I have to for f in *.csv; do csv ... $f  ; done instead of xsv headers *.csv.
So far, the negative for me about xsv is the Rust dependency for building it (which is an unfair criticism, I know!). I have no problems having it setup on my personal machines, but I work with a number of clusters on which I have no administrative rights. Worse, some of these are REALLY old, with many out-of-date libraries, so building Rust there has proven problematical. I tried the pre-compiled binary you provide, but I get this issue on the old cluster. Looking forward to a fully static  build of xsv!
As I said, I have both tools side-by-side, and I end up using xsv 90% of time because the UI is easier to work with.


Add get_warming_level_from_period, rename old function

Pull Request Checklist:

[x] This PR addresses an already opened issue (for bug fixes / features)

This PR fixes #xyz

[x] (If applicable) Documentation has been added / updated (for bug fixes / features).
[x] (If applicable) Tests have been added.
[x] This PR does not seem to break the templates.
[x] CHANGELOG.rst has been updated (with summary of main changes).

[x] Link to issue (:issue:number) and pull request (:pull:number) has been added.

What kind of change does this PR introduce?

Adds xs.get_warming_level_from_period to find the warming level associated to a given period.

Does this PR introduce a breaking change?

For clarity, I changed get_warming_level to get_period_from_warming_level.

Other information:

This function is needed if we want to easily implement @coxipi's modified warming levels.

We'll also eventually need a column in our global_tas file with the observed temperatures.

Don't we already have 6 such sources ?
>>> ds.where(ds.experiment == 'obs', drop=True).source
<xarray.DataArray 'source' (simulation: 6)> Size: 384B
array(['Berkeley-Raw', 'Berkeley', 'GISTEMPv4', 'HadCRUT5',
       'NOAAGlobalTempv5', 'JRA-55'], dtype='<U16')
Coordinates:
    mip_era      (simulation) <U5 120B 'obs' 'obs' 'obs' 'obs' 'obs' 'obs'
    source       (simulation) <U16 384B 'Berkeley-Raw' 'Berkeley' ... 'JRA-55'
    experiment   (simulation) <U6 144B 'obs' 'obs' 'obs' 'obs' 'obs' 'obs'
    member       (simulation) <U10 240B '' '' '' '' '' ''
    data_source  (simulation) <U33 792B 'Computed following WMO guidelines' ....
Dimensions without coordinates: simulation

Do we want get_horizon_from_warming_level instead of period, to match the return_horizon argument?

Do we want get_horizon_from_warming_level instead of period, to match the return_horizon argument?

Horizon is a more precise word than the general period, as it refers specifically to if we are showing data by temporal horizon or warming level. I like it. But then, I would also have get_warming_level_from_horizon to keep the symmetry.

Do we want get_horizon_from_warming_level instead of period, to match the return_horizon argument?

Horizon is a more precise word than the general period, as it refers specifically to if we are showing data by temporal horizon or warming level. I like it. But then, I would also have get_warming_level_from_horizon to keep the symmetry.

Done. To be fully consistent, I rename return_horizon with return_period, since this is closer to what it does.

@lpcaron has a strong opinion against horizon and I'm beginning to catch on. I think "period" is more adequate for the use we make of it.  Horizon as a notion of "limit" that doesn't apply.

@lpcaron has a strong opinion against horizon and I'm beginning to catch on. I think "period" is more adequate for the use we make of it. Horizon as a notion of "limit" that doesn't apply.

not sure I get the notion of "limit" with horizon...
Note that the IPCC atlas uses "periods" to choose between time horizon/period and GWL

We use horizon in multiple places throughout xscen, including as a dimension/coordinate and as an argument. Does that mean that we should change all of those to period?

The Copernicus Interactive Climate Atlas also uses the word near term, medium term and long term. get_term_from_warming_level ?

We use it in xscen because Ouranos uses it everywhere...
Sorry to raise this somewhat unrelated issue on this PR. We could also merge this with whatever solution and discuss the rest in a larger group.
But, the "limit" I'm mentioning comes from the first meaning of "horizon". When used temporally, I hear it as a blurry timeframe set in the future in a way a bit slightly precise than "term". I feel that the canadians translators agree with me : https://www.btb.termiumplus.gc.ca/tpv2alpha/alpha-eng.html?lang=eng&i=1&srchtxt=Horizon&index=alt&codom2nd_wet=1#resultrecs
Like, a common construction like "Horizon 2050" means a deadline set in 2050. In climate terms, we usually assume that it means that 2050 is in the middle (ish) of the period from which we want statistics, but that's not what the term means, rather it is our scientific analysis of what data is needed.

I think we can keep horizon in xscen but with a specific definition.

Use period(s) we are cutting time to a given period but we keep the frequency (usually day). The format is ['XXXX','XXXX'].
Use horizon, we have a single value for that horizon (usually a climatological mean) with a horizon coord that has the format "XXXX-XXXX" or even "+XdegC". Like the output of 'xs.produc_horizon`.

With this logic, we would have get_period_from_warming_level because the output is a list and the climatological mean has not been done yet.

Right, so this is my suggestion:

get_warming_level --> get_period_from_warming_level(realization, wl, window, ..., return_period)
New function get_warming_level_from_period(realization, period).

And I think Ouranos needs to clearly define the vocabulary for explaining the framework used to show results: GWL or time [enter consensus word here].

Agreed. I'm working hard to remove the mentions and the use of the word horizon, but there is a lot of inertia in the system...


Quick format citation dialog: Insert entire BibTeX record?

Dear all,
Thanks for your fantastic work! I'm using the following command with a custom keyboard shortcut to call the quick format citation dialog:
elinks "http://localhost:23119/better-bibtex/cayw?format=BibLaTeX&clipboard=yes"

I'm looking for the right format= to paste the entire BibTeX record of a reference.
Any ideas which format is the right one?
Thankfully,
Robert

Wow. That is currently not possible, but I'll have a look at it.

Dear @retorquere,
That would be great, thank you!
This would ease the workflow with Zotero and Authorea.

Cool. I'm currently doing performance work on #385 that I want to finish before anything else, after that I'm diving back into features.
There may be another way to get what you want: you could set up git access to your article, set up auto-export in BBT, and then use auto-commit to push it to Authorea. I have not tested this (!!) but in theory that should get you near-realtime updated bib files on Authorea. For autocommit you could use something like SparkleShare or a shell script; there are without a doubt others.

@retorquere
Thanks for your alternative suggestion! I think I would try it out if my initial request is technically not feasible.
I still think it offers many benefits that go beyond the concrete use of Authorea. :)
~ Robert

1.6.1 will be out in a bit, documentation has been updated

Great, thank you!
I had a look at the documentation and figured must be the following command which, however, only pastes the cite element:
elinks "http://localhost:23119/better-bibtex/cayw?format=translate&translator=csljson&clipboard=yes"

That URL is correct, and for me it does indeed put the Better CSL JSON reference on the clipboard. Can you submit an error report?

@retorquere,
Apologies. I forgot to update to v1.6.2....
It is working now! :)
~ Robert

Cool, thanks for the confirmation.


Use errSerializer to standardize the Error object

Detect if object is Error object, use errSerializer to standardize the Error object.
If not, just merge the msg object to the entry

@khoinguyen I spent some time playing around with the logger after this PR. I think the functionality you added already existed - if you log an error in the format {err: ErrorObject} it should do the same thing as you implemented for {msg: ErrorObject}.  I've reverted the code in onServiceReady. Please give version 0.2.3 a try and let me know if this works for you. Thanks!


Add flag --cache-all

What is the purpose of this change? What does it change?
Adds the flag --cache-all
When set, all files (including key, config, lock) are cached.
To do so, when the flag is set, the cache directory does not use repo ID
but the repo string given by -r.
Note: In order to correctly cache the config file, the PR #2505 is also required!
Was the change discussed in an issue or in the forum before?
See issue #2504.
Checklist

[x] I have read the Contribution Guidelines
[ ] I have added tests for all changes in this PR
[ ] I have added documentation for the changes (in the manual)
[ ] There's a new file in changelog/unreleased/ that describes the changes for our users (template here)
[x] I have run gofmt on the code in all commits
[x] All commit messages are formatted in the same style as the other commits in the repo
[ ] I'm done, this Pull Request is ready for review

@MichaelEischer @greatroar  Thank you for your comments.
Actually I'm moving a bit towards the following  re-implementation of the Cache structure:

use a Backend to actually store the Cached objects
make it possible to wrap multiple Caches into a CachedBackend which is finally used by restic.

This approach simplifies the caching code base and would allow much more options (and hence obsoletes this PR) like 2 layers of caches where one layer (caching all) could be on local disc but also on a remote storage.
It's still WIP; if you are interessted see https://github.com/aawsome/restic/tree/cache-as-repo

I haven't thought that much about which functionality a cache should provide. It's probably something like the normal backend functionality plus features for cache invalidation. Sooner or later restic will need a method to remove files from the cache which were apparently damaged. Performancewise there is a difference between the cache implementation and the local backend, the former does not use fsync, while the latter does. And your cache backend will need some sort of size limiting, otherwise it will just end up as another copy of the repository, which wouldn't make that much sense.

Performancewise there is a difference between the cache implementation and the local backend, the former does not use fsync, while the latter does.

Thanks for that hint! I wasn't aware of this.

And your cache backend will need some sort of size limiting, otherwise it will just end up as another copy of the repository, which wouldn't make that much sense.

There is already a very effective sizing limit by not storing data blobs in the cache. In basically all real-life repos I've seen, the size of data blobs was more than 99% of the repo size. (see e.g. #2543)

Is it a good idea to add this feature? What's the use case?
I was always very reluctant to cache the config file and the keys for security reasons...

Is it a good idea to add this feature? What's the use case?

I'm using it in combination with my cold storage repos. But I wanted to open a new issue to openly discuss the way how to support cold storage with restic. Then we can openly discuss the best way how to implement this and discuss a roadmap.
I just updated this as I'm using it now for over a year quite successfully. But it's still marked as draft as I think we should discuss the way first.

I was always very reluctant to cache the config file and the keys for security reasons...

Mhh... we have a zero trust model about the storage backend where those files are actually stored. And we assume that we can trust the environment where restic acutally runs. So from a security point of view, I actually see no issues :smiley:

Using the repo string as cache directory name can't be great in the long run. Imagine if the hostname or some other part of the repo URL changes, the cache directory name will have to be changed as well. There's a reason the current design is using the non-changing repo ID as the name :)

closing this PR as #3235 IMO is more general and solves the same problem.

closing this PR as #3235 IMO is more general and solves the same problem.


New category: Workspaces

Research good spots for remote work like public libraries and coffee shops that are actually furnished for long hours like Starbucks in Warsaw - those have furniture unlike any other coffee shop i visited, perfect for working on a laptop

Integrate https://www.coworker.com/lithuania/kaunas/designfriends ?


allow passing ESLint's --ignore-path flag

it's useful to provide .gitignore as --ignore-path for ESLint. Unfornutelly currently with eslint-interactive is impossible so he stucks in my project until I figured that he lint all ignored files node_modules/, dist/, etc.

Thanks for your proposal! I can probably implement it easily. I will try it later.

@B2o5T This feature shipped in v10.3.0. Please check it out :)
https://github.com/mizdra/eslint-interactive/releases/tag/v10.3.0

@mizdra Amazing, thank you for this library btw 🥳


Add support for Visual Studio 2019

Happy user for older VS versions.
Is there any plan to add support for the current Visual Studio 2019?

Seconded.   haven't had time to look at updating it myself, you can just snag the .natvis files out of the code and drop them into a directory listed here:   https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects?view=vs-2019

Great hint, works fine for VS2019 16.2.0 Preview 2.0 (put the .natvis files of the .vsix package into
C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\Packages\Debugger\Visualizers)
Thanks a lot!


Update to promises.json

Added a YouTube video tutorial playlist about Promises, their syntax, and how to use the race( ) and all( ) methods.

Thank you. 💛


Installers requiring interaction in UI don't work via SSH

Brief description of your issue
I should start by saying that I am not entirely surprised by this but trying to install an application with a installer requiring interaction (such as WinSCP) over an SSH connection just results in the installation hanging at Installing....

Steps to reproduce

SSH into a machine with winget installed (note I am SSHing into an admin account and thus the prompt is elevated.
Try to install (for example) WinSCP with winget install winwcp

Expected behavior

I guess winget should detect the installer is hanging and kill it providing some useful feedback.
Actual behavior

Installation just hangs at Installing...
Cancelling the install with ctrl+c and running get-process -name winscp* shows two process running:
NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
     10     4.67       8.38       0.11   22476   0 WinSCP.WinSCP.5.17.5
     14     6.86      12.94       0.08   94084   0 WinSCP.WinSCP.5.17.5.tmp

RDPing into the machine and trying to install the same way gives a file access error (presumably due to these processes).
Killing these processes allows the command to work when run locally via RDP and the installer window pops up asking to install for all users or not.
I haven't tried with a X11 server running to see if I can catch the GUI
Environment
[winget --info]
Windows Package Manager v0.1.41331 Preview
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.18363.836
Package: Microsoft.DesktopAppInstaller v1.0.41331.0

Any other software?

@TomBrien how did you even manage to launch winget via ssh? Did you find a workaround for #513?


Add support for nested objects in default TranslateLoader

Hi guys
So I saw that nested objects are currently not supported in the default translate loader. This line disables it: https://github.com/tflori/angular2-translator/blob/master/angular2-translator/TranslateLoaderJson.ts#L48
Maybe including support for nested objects in the default translate loader would be a good idea? So something like this would be possible: translate.translate("app.loginText")
cheers

Hi Marc,
it should already be possible by defining it as key:
{
  "app.loginText": "Please log in before continuing!"
}

But you are right may be some one want this. It needs some more work (recursive searches for translation). If you want you can create a PR for it. Otherwise it will need some time till I developed it.

Yeah, I ment something like:
{
  "app": {
    "loginText": "Login"
  }
}

Will try to open up a PR.

Hey, good news: I couldn't stop thinking of it and found an easy solution

I create the PR #5 . if this is ok for you I can create version 1.3. or you see another problem here?

I couldn't stop thinking as well and opened another PR :) Maybe we could combine them?

I checked out your PR @tflori and missed the the test that the return string needs to have dots included...

You missing a test? What test? In lines 184 and 185 in TranslateLoaderJson.spec.ts i'm testing that a dot is included in the translation key

yeah, I ment, that I am missing the test in my code... So I'm gonna add it now. The new PR is up soon.

@BorntraegerMarc npm update thanks for your contribution :smile:


Add Dfe.Testing.Pages.UnitTests

Parking for now - integration tests are probably easier to write against both providers, while the internal uow might change.


Support custom styles on DashboardMenuItem

My task is changing color of active resource.
I use my own menu. I can change background-color of MenuItemLink:
const styles = {
...
  button: {
    backgroundColor: 'red',
  }
...
};
...
<MenuItemLink
    style={ isActive ? styles.button : null}
    primaryText={item}
    key={item}
    to={`/${item}`}
    onClick={()=>{this.handlerCLickResource(item)}}
    leftIcon={icons[item] || null}
/>
...
          )

It works:

But if I add it in DashboardMenuItem, it doesn't work;
        <DashboardMenuItem
          style={styles.button}
          onClick={()=>{this.handlerCLickResource('Dashboard')}}
        />

Maybe the reason is that in admin-on-rest/src/mui/layout/MenuItemLink.js you pass properties (line 24,  27)
And in admin-on-rest/src/mui/layout/DashboardMenuItem.js you don't do it.

You can already pass custom style to the DashboardMenuItem component in the next branch. In addition, We'll implement a custom style for the current menu natively in the next version (see #1487).


Allow selecting nodes by CIDR policy

This PR adds a new option, policy-cidr-selects-nodes, which means that cluster nodes can be selected by CIDR network policies. Normally nodes are only accessible via remote-node entity selectors.
How it works:
We already have the notion of an "identity scope" -- if the top 8 bits of the 32-bit identity are 0, we assume the ID is global. If the top bits are 0x01, then the ID is a local CIDR identity. This PR declares the scope 0x02 to be for node identities.
A separate identity scope is needed because the datapath needs to be able to quickly determine if a given identity corresponds to a remote node. Previously, all nodes had reserved identities 4 or 7. By using a separate identity scope, a fast bit comparison can be done without any additional map lookups.
So, most of this PR consists of refactoring commits to prepare for scoped local identity allocators. Then, a few commits at the end enable the behavior, switching nodes to the new identity scope and attaching cidr: labels to the local-node identity.

Fixes: https://github.com/cilium/cilium/issues/20550

CI is not interesting because this is all behind a feature flag. I'll add a do-not-merge commit that changes the default.

Test failures are all uninteresting; mostly checkpatch related issues (which is intentional) and one test that needs to be updated to handle node identities being enabled by default. Nice!

All remaining functional tasks are done. This PR is ready for full review. Un-marking as draft.
Note: there is still a do-not-merge commit which forces the feature-flag on. This will be removed before merging. We're working on adding integration tests; these may be added in a follow-up commit, as they will require cilium-cli support.

/test

(I didn't look in detail at the first 9 commits yet, but they seemed less controversial overall)

@joestringer / @christarazi I've thought a bit more about restoration. A few of the topics brought up

The existing code is debugged.

Except for all the bugs we keep finding :-).

Dumping the bpf ipcache is expensive.

Very true, a good argument for wedging in to the existing flow

This is a layering violation

ipcache restoration is necessarily a layering violation. We need to take what is only a set of ip -> identity pairs, and try and reconstruct the set of labels those IPs had. Somewhere there needs to be business logic tied with the map dumping. In other words, right now, the NodeManager understands that "scope 0x02 means reserved:remote-node". Either it lives there, or in the ipcache.
One future direction I'd like to take this code is to (eventually) allocate a single identity for a node and attach all node addresses to it. In order to accomplish this, we'll have to add more business logic in the restoration process, since all IPs for a given identity will have to be aggregated and their labels back-filled.
However, it should be easy enough to wedge ourselves in to the existing restoration logic, so I'll start with that and we can go from there.

OK, I've updated the restoration logic. It relies on a small amount of hard-coding in resolveIdentity() but it could be a lot worse. It will do for now.
This drops two commits and makes the diff decently smaller.
Remaining TODO is, based on @nathanjsweet's suggestion, renaming the option to PolicyCIDRSelectsClusterEntities

/test

OK, I've addressed all review feedback with one exception: we should probably rename IdentityScopeLocalCIDR to IdentityScopeLocal. Since this change has a bit of tedium, I want to get soft consensus before actually doing the typing to do so.
Once this lands, we can start to work on adding testing for the feature flag. I'd like to address that in a follow-up PR.

/test

Test failures are pretty uninteresting; a test that was fixed in main, some <IP_ADDRESS> blips. And a spelling err0r.

/test

argh, #28008 broke image builds for this branch.

Summary of outstanding discussion items:

Who should be responsible for adding CIDR labels to node prefixes: the NodeManager or resolveIdentity().
Should we rename IdentityScopeLocalCIDR to IdentityScopeLocal (and other similar names)? (Probably yes, it can theoretically have non-CIDR identities).

OK, all items have been resolved, and the do-not-merge commit that forces the flag to on as been removed.
@nathanjsweet, this appears to be waiting your review. Then this should be ready to merge.

/test

/test

/test

@gandro I added you to the reviewers to review the "helm" parts. Thanks :pray: .


Enable Cross Compilation of Arm SVE on x86 Cl (Binary only)

Subsequent to the merge of pull request #2614, which introduced ARM as a supported CPU platform, we have implemented preliminary support for cross-compiling ARM backend on the x86 continuous integration (Cl) system.
This enhancement allows for validating ARM builds.
What's available:

A new Cl task is created for arm compilation on x86 hosts, this pipeline builds both daal and oneapi components for ARM.
Introduction of cross-compilation variable across Cl build scripts (tbb.sh, openblas.sh & build.sh)

Limitations:

Examples build and tests for both daal and oneapi is currently disabled.

/intelci: run

/intelci: run

/intelci: run

@keeranroth @rakshithgb-fujitsu any comments/changes here? I do not have anything major from my side and we can merge once vi would pass on latest changes

/intelci: run

/intelci: run

All looking good from my point of view, thanks

Looks there open BLAS pipeline failure @rakshithgb-fujitsu can you take a look?

/intelci: run

@napetrov looks like something is breaking in internal pipeline again, could you please have a look at let me know?

@napetrov looks like something is breaking in internal pipeline again, could you please have a look and let me know?

Just a sporadic failure, nothing meaningful - CI looks good.


feat(persistState): added encryption configuration for data persistence

PR Checklist

[x] The commit message follows our guidelines: https://github.com/datorama/akita/blob/master/CONTRIBUTING.md#commit
[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?
Prior to this change, sensitive data could be stored in the storage without any encryption security. This meant that any data, regardless of its sensitivity, was stored in plain text, making it vulnerable to unauthorized access and potential data breaches
What is the new behavior?
With the new change, sensitive data is now stored securely using encryption. This means that before any data is stored, it is first encrypted using a secure encryption algorithm. This significantly enhances the security of the data, making it much harder for unauthorized individuals to access or decipher the stored data. This is particularly beneficial for sensitive data, as it adds an extra layer of protection against potential data breaches.
In addition to the encryption feature, it is strongly recommended to personalize the security key in the project. This key can be obtained from an .env file, GitHub secrets, or other secure sources. Using a personalized security key greatly enhances the security of the encryption. It is not advised to use the default encryption secretKey, as this could potentially weaken the security of the stored data. By using a unique and secure key, you ensure that your encrypted data remains as secure as possible.
Does this PR introduce a breaking change?
[ ] Yes
[x] No

fixed @lucbevilaqua


format issue

just testing out the format check

Codecov Report

Merging #9902 (b9e7cfb) into main (46a2afc) will increase coverage by 0%.
The diff coverage is n/a.

@@         Coverage Diff          @@
##           main   #9902   +/-   ##
====================================
  Coverage    63%     63%
====================================
  Files       203     203
  Lines      9827    9827
  Branches   1564    1564
====================================
+ Hits       6242    6253   +11
+ Misses     3086    3076   -10
+ Partials    499     498    -1

Impacted Files
Coverage Δ

src/platform/errors/errorHandler.ts
70% <0%> (+3%)
:arrow_up:

...rc/platform/common/dataScienceSurveyBanner.node.ts
70% <0%> (+5%)
:arrow_up:


Use X-Forwarded-For header to define X-Real-IP header

What does this PR do?
It's implementing a mechanism similar to nginx to determine the x-real-ip by excluding proxy IPs
Motivation
I stumbled on this issue while reviewing my freshly installed traefik v2,
noticing that the x-real-ip header was not properly populated... #3097
(I referred the feature request opened by @basro 2 years ago)
More
I added a couple of test, the 1st to validate the feature
...the 2nd to avoid to break old behaviour
Additional Notes
Also the logging shall be policed. Right not the ClientAddr is
taken from the X-Forwarded-For just because it is present
...the proposed X-Real-IP would be a valid substitute

fails on origin/v2.4
FAIL: grpc_test.go:365: GRPCSuite.TestGRPCBufferWithFlushInterval

grpc_test.go:423:
    c.Assert(err, check.IsNil)
... value *fmt.wrapError = &fmt.wrapError{msg:"try operation failed: failed to receive stream data", err:(*errors.errorString)(0xc000e6e980)} ("try operation failed: failed to receive stream data")

failure on master
FAIL: docker_test.go:184: DockerSuite.TestDockerContainersWithLabels

docker_test.go:221:
    c.Assert(err, checker.IsNil)
... value *fmt.wrapError = &fmt.wrapError{msg:"try operation failed: got status code 404, wanted 200", err:(*errors.errorString)(0xc000951140)} ("try operation failed: got status code 404, wanted 200")

I guess that you are trying to run the integration tests locally.
To do that:

first: make pull-images (only once)
then CI=1 make test-integration

@ldez I'm indeed... since I wanna see my PR passing xD
...trying with an empty image set, lets see... CI=1 this time

ok, all green even on my workstation...
thanks for the heads-up @ldez & for kicking the CI process again :)

Hello,
Thanks for your contribution!
This PR is now labeled needs-design-review,
as you can see in our contribution guide, this means that we have to take a closer look at the scope of impact for that PR to see, how it would interact with the other parts of Traefik.
We will come back to you soon when we did the first design review iteration.

@jbdoumenjou I stepped on this issue this morning https://github.com/traefik/traefik/issues/7884
...eventually this X-Real-IP properly populated could be the new reference for the Middleware IpWhitelist
and make https://doc.traefik.io/traefik/middlewares/ipwhitelist/#ipstrategyexcludedips obsolete

@jbdoumenjou I'll wait ur heads-up before doing a rebase, seems that the merge is not possible automatically anymore

Any update on this?

Hello @zeph,
We had a first look and want to clarify the purpose of the PR.
It seems that the addressed case here is when Traefik trusts the previous proxy that provides a X-Forwarded-For header but no X-Real-Ip header.
Currently, when the X-Real-Ip header is not set, Traefik creates it using the remote IP address.
This PR uses the X-Forwarded-For as a source to populate the X-Real-Ip, as it should contain the chain of previous client IPs.
Looking at the implementation, it uses the forwardedHeader.trustedIPs list to ignore all trusted IPs in the X-Forwarded-For and apply the first "non trusted" IP as X-Real-Ip header value.
This trustedIPs option is currently used to define the IPs (the request remote address) from which the forwarded headers will be trusted, so not deleted and used.
Why using this option, which is not expected, to filter out the IPs from the X-Forwarded-For to find the X-Real-Ip value? It does not seem to be appropriate.
Moreover, if the previous proxy is trusted, the X-Forwarded-For header should be trusted too and the X-Real-Ip value should be the first IP of the X-Forwarded-For.
WDYT?

@jbdoumenjou This PR is useful when you put traefik behind an AWS ALB (Application Load Balancer).
In this case, the request flows like this:
Client => ALB => Traefik => Application

Because ALB appends client IP to X-Forwarded-For, when the request reaches the application, the HTTP headers becomes:
X-Forwarded-For: <client_ip>, <alb_ip>
X-Real-Ip: <alb_ip>

Further more, the client can forge X-Forwarded-For, so the HTTP headers becomes:
X-Forwarded-For: <fake_client_ip> <client_ip>, <alb_ip>
X-Real-Ip: <alb_ip>

But what we are really expecting is:
X-Forwarded-For: <client_ip>, <alb_ip>
X-Real-Ip: <client_ip>

Hello,
Thanks to this PR, we realized that we have several concerns about the X-Real-Ip expected behavior.
Moreover, this implementation will not be backward compatible as it will change the current behavior.
So we will close this PR and continue the discussion in the original issue #3097

@jbdoumenjou can you make some examples of configurations that are going to break if introducing this "new behaviour", please?

@zhiguangwang with my patch the <alb_ip> is going to be removed from the list if it has been passed in the "trusted proxies" list
-> it is not going to be presented as "" as in your example

@zhiguangwang to clarify... ok, in my infrastructure I have 2 reverse proxies in front of my traefik ... I remove from the game the 1st set with the trustIPs as main cluster configuration... and the 2nd instead is addressed when doing real IP filtering with this middleware
$ cat templates/ipwhitelist.yml
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: geo
spec:
  ipWhiteList:
    sourceRange:
 [ ... trusted 3rd parties ... ]

    ipStrategy:
      # https://doc.traefik.io/traefik/middlewares/ipwhitelist/#ipstrategyexcludedips
      excludedIPs:
        - <IP_ADDRESS>/32 # <IP_ADDRESS>,.71,.72 SNAT
        # https://www.cloudflare.com/ips-v4
        - <IP_ADDRESS>/22
        - <IP_ADDRESS>/22
        - <IP_ADDRESS>/22
        - <IP_ADDRESS>/12
        - <IP_ADDRESS>/18
        - <IP_ADDRESS>/22
        - <IP_ADDRESS>/18
        - <IP_ADDRESS>/15
        - <IP_ADDRESS>/13
        - <IP_ADDRESS>/20
        - <IP_ADDRESS>/20
        - <IP_ADDRESS>/20
        - <IP_ADDRESS>/22
        - <IP_ADDRESS>/17
        # https://www.cloudflare.com/ips-v6
        - 2400:cb00::/32
        - 2606:4700::/32
        - 2803:f800::/32
        - 2405:b500::/32
        - 2405:8100::/32
        - 2c0f:f248::/32
        - 2a06:98c0::/29

in your case... you need to exclude the ip ranges declared by AWS as the subnets for your <alb ip>

@zhiguangwang I pass the trustedIPs with this... in this case the IP of the 1st reverse proxy
    # https://community.traefik.io/t/how-to-properly-use-x-forwarded-for-in-v2/3834
    - "--entrypoints.websecure.forwardedHeaders.trustedIPs=x.x.x.x/32"
    - "--entrypoints.web.forwardedHeaders.trustedIPs=x.x.x.x/32"

@Zeph,
The trustedIPs is a way to trust the forwarded headers sent by a Client by checking its address. Therefore, It could be defined to trust only specific proxy/servers.
Using the trustedIPs option to set the X-Real-IP is a workaround and could impact the other forwarded headers as Traefik could trust unwanted servers. For example, as soon as one trusted proxy reaches Traefik and does not provide the X-Real-IP header, the X-Real-IP value would be then different from the proxy IP. We understand that this is the behavior you were expecting, thus it is a breaking change as the X-Real-IP value will change without modifying the existing configuration.
As said in the original issue (#3097), the current implementation is naive/simple but there is no real specification to oppose to it that would define the expected behavior.
In other words, we want to keep the contract for X-Real-IP header identical as for forwarded headers, the chain of trust is enforced by trusting or not the client which is reaching Traefik, and as for now we think that more specific/custom behaviors/capabilities should be handled with plugins and not by Traefik itself.


Apply MAX_PATH path and optimize get module file name calls

I'll send a pull request to fix a minor issue I noticed while reading Ocran's code.
In the loaded_dlls method within the LibraryDetector module, the process of obtaining the path of DLL files using the GetModuleFileNameW function might potentially truncate the retrieved path. In Windows, the maximum path length is defined as MAX_PATH, which is 260 characters. The current implementation limits it to 256 characters.
While Windows allows longer path names, RubyInstaller for Windows doesn't support extended path names, so I defined MAX_PATH as 260 in response.
If there is a future enhancement to support longer path names, we could adjust the MAX_PATH constant to match the maximum path length supported by Windows. However, this would require Windows-based Ruby to support longer path names.
I've made improvements to the code, optimizing the loop that calls the GetModuleFileNameW function and applying the MAX_PATH constant. The buffer string used to receive path names only needs to be created once, so it doesn't consume additional memory with each loop iteration. Additionally, using modulefilename_length for character counting purposes makes the code more readable.
Let me know if you have any questions or suggestions regarding this pull request.

Thanks for your contribution!
I'm looking into it. Do you think there are any possible security concerns?

Thank you for reviewing my pull request.
I'd like to address the security concerns regarding this issue.
The issue at hand is whether it's possible to reference any arbitrary file by reducing file paths longer than 260 characters to 260 characters.
I believe it is possible.
One scenario to consider is when the attacker's target file path matches a 259-character fully qualified path. In this case, you can place a library file that points to a file with a path longer than 260 characters in a GEM.
(The GetModuleFileNameW function returns the fully qualified path of the library file.)

From my research, it appears that Ruby applications on Windows can indeed use long file paths.
Handling Long Paths in Windows
Windows has supported long path names since version 1607 (August 2, 2016).
https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry#enable-long-paths-in-windows-10-version-1607-and-later

Starting in Windows 10, version 1607, MAX_PATH limitations have been removed from common Win32 file and directory functions. However, you must opt-in to the new behavior.

Handling Long Paths in Ruby
The current version of Ruby supports long path names (as of May 17, 2021).
Merged:  [Win32] long path name support [Bug #12551] #4505
https://github.com/ruby/ruby/commit/229cb0fcdb7957b19d7042b000d803ae58cc6593
https://github.com/ruby/ruby/pull/4505#issuecomment-872215901

That means that all versions of the next release series from 2.5 to 3.0 will include it. And it's already present in RubyInstaller-head.

Examples of Using Long Paths in Ruby Applications
Windows, Ruby and Long Paths

The conclusion is that extended-length paths should be supported. I plan to make the necessary code modifications.

I have pushed the fix commit. In the commit message, I have detailed my thought process for the fix.
When the GetModuleFileNameW function is given an appropriate buffer length, it will not cause buffer overflows.


[Issue #1359] hipModuleLoad/hipModuleUnload is leaking file descriptor

(Thanks to @JehandadKhan to find the issue and to create the minimal reproduce example), creating this issue on GitHub on his behalf)

[Symptom]:

During MIOpen exhaustive tuning (e.g. MIOPEN_FIND_ENFORCE=3), MIOpen needs to open a large number of modules, even though we proactively close the ones not been used (e.g. #1221), the program still fails with
terminate called after throwing an instance of 'miopen::Exception'
  what():  /long_pathname_so_that_rpms_can_package_the_debug_info/src/extlibs/MLOpen/src/hipoc/hipoc_program.cpp:162: Failed creating module from file

This issue was previously discussed in #1359 #1360

[Steps to reproduce and Findings]:

Using the minimal reproducible example below:
module_api.zip
(need hip enabled docker, in this case any public docker should be able to reproduce the issue)
ROCm version where this issue can be reproduced:
ROCm 5.5
cannot reproduce in ROCm 5.4.3
cd module_api
make clean
make
./hip_module_api

and we will see
Iteration: 65399
An error encountered: "shared object initialization failed" at main.hip:57

[Hypothesis]:

The test code is very simple, essentially:
while(true) {
	std::cout << "Iteration: " << ++idx << std::endl;
    // std::this_thread::sleep_for(std::chrono::milliseconds(50));
    hipModule_t module;
    HIP_CHECK(hipModuleLoad(&module, module_path.u8string().c_str()));

    HIP_CHECK(hipModuleUnload(module));
}

however, using the following monitoring command:
watch -n1 'cat /proc/sys/fs/file-nr | tee -a log.log'

we can observe the # of FD that was left open (leaked) keep increasing till the HIP program crashes.

[Discussions]:

is hipModuleUnload leaking FD?
the # of FD that was left open (leaked) causes crashes well before it reaches ulimit, so is there any HIP limitation on the # of FD?

CC: @atamazov @averinevg @DrizztDoUrden @dmikushin @CAHEK7

One quick workaround that comes to mind is to replace hipModuleLoad with hipModuleLoadData on memory buffer instead of a file, and perform the load of module file content into that buffer ourselves, with proper open and close.

I think the "leak" can be legitimate due to the lazy binding of executable code. Suppose you have a dll, and you loaded one symbol from it for use. Then could the dll be ever fully unloaded? No, because the lazy loader cannot guarantee the symbol might decide to jump at a random address of that dll. Therefore, a single lazily-loaded symbol will hold the dll file descriptor forever.

Thanks @dmikushin  for the quick reply!

"hipModuleLoadData vs. hipModuleLoad: check out here: https://github.com/ROCmSoftwarePlatform/MIOpen/blob/7b98d8cf4e2b2967c72f6e8c98eb2c0649d338c1/src/hipoc/hipoc_program.cpp#L169
The complication of issues with hipModuleLoadData  so that we have to use the other https://github.com/AMDComputeLibraries/MLOpen/pull/2501
Maybe these WAs are not needed anymore, assuming hipModuleLoadData has been fixed properly. However, we need throughout test with it.

"I think the "leak" can be legitimate due to the lazy binding of executable code."
Yep, it might be beneficial in some cases, such as for debugger and profiler, and quote "It would improve ROCm performance by using mmap to load the specific kernels to the GPU. So the file decriptors would need to be valid throughout the life time of the usage of the module".
However, according to https://ontrack-internal.amd.com/browse/SWDEV-354045 the hipModuleUnload is documented to release file resources, and if that behavior changed, we need to document it and get some heads up.

This is a regression from ROCm 5.4.3 and begin to manifest in ROCm 5.5, I guess something indeed has changed in hipModuleUnload

Fix from hip runtime/ROCr is proposed and should be merged soon.

@junliume Which rocm versions have this bug? #2225 can be narrowed to provide w/a for them.


change font

Is there an easy way to change the font?
I have some readers on my website with dyslexia. I would like to help them with the font https://github.com/antijingoist/opendyslexic

Yes just set the font using CSS in the usual way. The theme only uses one font family, defined in https://github.com/joeroe/risotto/blob/main/static/css/typography.css, so you could e.g. override the variable --font-monospace or re-set the font family of body or any descendent element,


problems with special characters in logs

updated to read and write config files in utf-8 format

corrected
added
encoding="utf-8"


[Feature] Support rabbitmq connector

Search before asking

[X] I had searched in the issues and found no similar issues.

Feature Request
event mesh supports rabbitmq connector
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

@mroccyen good suggestion, look forward to it.

i will try my best to do it，please assign to me


audio panning doesn't work

Operating system or device, Godot version, GPU Model and driver (if graphics related):
Windows 10
godot 2.1.3
sound:
AMD High Definition Audio Device
Realtek High Definition Audio
Issue description:

Changed panning of a voice playing on a sample player. Sound stays the same in both ears.
Sometimes it works, if I leave my PC for an hour and come back and hit play, panning works. The next time I run it it won't work.
Restarting godot editor doesn't fix it, and neither does exporting it as a build and running the exe.
I've run several audio tests on youtube and the panning works in my headphones.
Steps to reproduce:
create a project with a sample player playing a track on loop, add some controls to change the panning in real time.
Link to minimal example project:

Use left and right arrows to adjust panning
audiopantest.zip

The 2.1 branch is no longer actively worked on by engine developers, unless critical fixes are needed for current games in production. As such we are now closing non-critical bug reports affecting only the 2.1 branch.
Please comment if this was incorrectly triaged and is still relevant in 3.x versions.


Erroneously reads long file names as unreadable.

It either writes the file into the md5 file as hashed but reads as unreadable upon checking or completely ignores it and just hashes less than the total amount of files in the folder. If I use another program, say Rapidcrc to hash the same files with no issues to force Hashcheck to read them and not ignore them, they will still turn out unrradable.

My solution:
HashCheckCommon.c:
HANDLE __fastcall OpenFileForReading( PCTSTR pszPath )
{
	#define LONG_PATH_MAX 32767
	WCHAR longPathAwarePath[LONG_PATH_MAX];
	StrCpy(longPathAwarePath, L"\\\\?\\");
	StrCatN(longPathAwarePath, pszPath, LONG_PATH_MAX - 4);

	return(CreateFile(
		longPathAwarePath,
		GENERIC_READ,
		FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
		NULL,
		OPEN_EXISTING,
		FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN,
		NULL
	));
}


Execute registered commands from code

Hello. I am currently moving my project from my "quasi" console that i had implemented while ago.
I wonder if it is somehow possible to execute registered commands from inside like console.runCommand("mode 5")
or simpler console.println("mode 5") which will act as if i were inputting this command directly to console. How can i achieve execution of the command  using Your implementation of the console?
The intention for using that is for example i want to execute commands remotely via bluetooth low energy and i have function and its arguments passed by String so i need to execute it from the "inside".

The underlying console command of the ESP-IDF offers a command for that esp_console_run().
That is basically what this library calls internally. What this function does not offer is the command interpolation feature using "environment variables" (as this is done by the ESP32Console library itself).
And you should note that the executed command outputs to the configured stdout, so if the command prints something, you will not be able to catch it programmatically (or at least not easy)

Thank you, i did my own function based on the while(1) loop that i found in the repl task function. I ommited everything about linenoise just straight esp_console_run() with returning errors and it is working flawlessly. I do not need interpolation for now so it is okay for me.
I have one more question about statement that the one can not use Serial.print() after initializing console. Using Serial.println() is working for me. Is it intentional or am I missing something?


Nonwiz patch 1

Adding my personal site and blog to showcase.

Added my fourth iteration with lume to showcase.

Thanks for your pull request!
Just a couple of things:
* Can you move the site to the 2nd position (after lume.land site)? I'm adding new entries to the top, so they are more visible.

* The image is not correctly loaded. I left you a comment about that.

Somehow when I run locally, the screenshot also is not being rendered although I already converted them into webp format. Is there anything I missed?

You need to change the extension only in the yaml file, but keeping the png file in the source folder. Lume converts automatically png files to webp.

Thanks!!


Global keyborad hooking slows down MessageBox.Show()

When I use global keyboard hooking with MessageBox.Show() in OnKeyDown event, the message box freezes for some seconds!
How can I prevent this from occuring?

You should NOT be doing a lot of work in the keyhandler event, just use it to flag work to be done, create a new thread and offload it.  If need be, make a queue that runs tasks, if you have to do some sort of fifo work.


add checks for valid input data given to parameters

Adding some checks to avoid problems like described here
https://github.com/Itseez/opencv/issues/5104

@mshabunin or @vpisarev a quick question, does MaxOSX support the use of mkdir command?

@StevenPuttemans , since MacOSX build is fine, I think this function is supported.

@mshabunin okay fine! I just updated it a bit this morning, had wrong checks :)

:+1:


Restructure platform support

This work is a prerequisite to factoring out platforms into their own repos. It also addresses many of the issues in  https://github.com/PX4/Firmware/issues/7705

What do you think about flattening it a bit and further concentrating all pieces of a particular board and config?
${PX4_SOURCE_DIR}/platforms/${OS}/${BOARD}/${CONFIG}.cmake

The full config name (eg nuttx_px4fmu-v2_default) would be an artifact of the layout.
The board_config.h, board driver, sensors init, nuttx-config, etc for each board would live in ${PX4_SOURCE_DIR}/platforms/${OS}/${BOARD}. This would make it very easy for someone to add an entirely new board.
The platform support could flatten (somewhat) to the top level of ${PX4_SOURCE_DIR}/platforms/${OS}/.

cmake/${OS}/px4_impl_${OS}.cmake and src/firmware/${OS}/CMakeLists.txt -> CMakeLists.txt.

As a more general side note, one minor hesitation I have with this approach is that it's going to be even easier to let the system further fragment. For example a common airframe configuration across boards/configs would be hugely beneficial.

@LorenzMeier SemaphoreCI failed because the machine was powered off!

@dagar @davids5 Rebased and moved to https://github.com/PX4/Firmware/pull/7806


add SHA-512 authentication

Add SHA-512 authentication alongside SHA-256 (RFC-7616)

Not sure if we need a release cut to get this added to pytest-httpbin. @sigmavirus24?

A pytest-httpbin release would be handy for adding my test code into Requests for the same SHA-256, SHA-512 feature.


Loop unPOLA

So loop blocks are great, they allow the programmer to write the oh-so-infamous infinite loops.
As any infinite loop should go, we should be able to escape them anytime we'd like, via the good old break statement.
And oh was I surprised when I got this:
loop do
    break
end
print "x"

This yields an error at compile-time: Error: unreachable statement. print "x"
You got it, the do end is a simple block and the break escapes the block, not the loop, and the rest is history !
In all seriousness, maybe a warning should be raised when doing a loop do or the construction should be parsed as a loop block, not as a loop encompassing a block.
NOTE: Should it be tagged as Bug or as It's not a bug, it's a feature ?

+1 for the bug label
Le 3 juin 2015 17:22, "Lucas Bajolet"<EMAIL_ADDRESS>a écrit :

So loop blocks are great, they allow the programmer to write the
oh-so-infamous infinite loops.
As any infinite loop should go, we should be able to escape them anytime
we'd like, via the good old break statement.
And oh was I surprised when I got this:
loop do
breakendprint "x"
This yields an error at compile-time: Error: unreachable statement. print
"x"
You got it, the do end is a simple block and the break escapes the block,
not the loop, and the rest is history !
In all seriousness, maybe a warning should be raised when doing a loop do
or the construction should be parsed as a loop block, not as a loop
encompassing a block.
NOTE: Should it be tagged as Bug or as It's not a bug, it's a feature ?
—
Reply to this email directly or view it on GitHub
https://github.com/privat/nit/issues/1437.

I do not remember why I created the label. #1392 maybe


Add "Response"

Adds "Response" to models to follow the pattern we are using when making
requests.
Also fixes an issue where we had an inline object being created in the ruby library because a "tag" object was missed.

:shipit:


Improve error messaging from "spyOn"

While developing, I found annoying that an invalid spyOn returns a very cryptic error, caused by the lack of checking on fn; it calls fn._isMockFunction, without checking if fn is actually something.

This PR improves the messaging we give when we find these kind of errors.
Passing something that is not an object or a function:

Primitive keys cannot be spied because how they work, see the ECMA-262 specification for more info:

If the value is not an object, the property lookup is performed using a wrapper object appropriate for the type of the value [...]

Obtaining something that is not a function:

Please make sure node 6 will pass.

I'm not very sure if it's a good idea to add a full representation of an object on a message Error, especially when it includes ANSI escape sequences (as printExpected does). I'd rather prefer to have a concise message for those ones.

I'm fine without colors for now, but the other suggestions seem good.

What I mean is that this error is a thrown error, not something that's going to be nicely printed; so I think fully stringifying the object + adding colors is too much for a throw new Error(...).

I'm fine with this then.


Very many spaces output when decoding with kenlm decoder

I have successfully finetuned and done decoding with good results on librispeech data and the small librispeech model.

This is my decoding command:
python examples/speech_recognition/infer.py /idiap/temp/rbraun/work/wav2vec/cv_datadir/ --task audio_pretraining --nbest 1 \
--path outputs/2021-03-25/22-20-42/checkpoints/checkpoint_best.pt --gen-subset dev --results-path decode --w2l-decoder kenlm \
--lm-model /idiap/temp/rbraun/data/am-data/commonvoice/de/o3.arpa.bin   --criterion ctc --labels ltr --max-tokens 4000000 \
--post-process letter --lexicon /idiap/temp/rbraun/work/wav2vec/lexicon

I thought I must have done something wrong in training but since basic decoding works I'm guessing there's something wrong with my language model? It's a normal arpa model that I converted to binary format with kenlm's build_binary so I don't think I did something wrong there... the lexicon looks like
xiome a x i o m e
mager m a g e r
sonderbericht s o n d e r b e r i c h t

What's your environment?
Collecting environment information...
PyTorch version: 1.8.0
Is debug build: False
CUDA used to build PyTorch: 11.1
ROCM used to build PyTorch: N/A

OS: Debian GNU/Linux 10 (buster) (x86_64)
GCC version: (Debian 8.3.0-6) 8.3.0
Clang version: 7.0.1-8+deb10u2 (tags/RELEASE_701/final)
CMake version: version 3.13.4

Python version: 3.8 (64-bit runtime)
Is CUDA available: False
CUDA runtime version: 11.1.74
GPU models and configuration: GPU 0: GeForce GT 1030
Nvidia driver version: 455.32.00
cuDNN version: Could not collect
HIP runtime version: N/A
MIOpen runtime version: N/A

Versions of relevant libraries:
[pip3] numpy==1.20.1
[pip3] torch==1.8.0
[pip3] torchaudio==0.8.0a0+a751e1d
[pip3] torchvision==0.9.0
[conda] blas                      1.0                         mkl
[conda] cudatoolkit               11.1.1               h6406543_8    conda-forge
[conda] ffmpeg                    4.3                  hf484d3e_0    pytorch
[conda] mkl                       2020.2                      256
[conda] mkl-service               2.3.0            py38he904b0f_0
[conda] mkl_fft                   1.3.0            py38h54f3939_0
[conda] mkl_random                1.1.1            py38h0573a6f_0
[conda] numpy                     1.20.1                   pypi_0    pypi
[conda] pytorch                   1.8.0           py3.8_cuda11.1_cudnn8.0.5_0    pytorch
[conda] torchaudio                0.8.0                      py38    pytorch
[conda] torchvision               0.9.0                py38_cu111    pytorch

Was because of me not setting --lm-weight which for some reason has a default value of 0.2.
Don't understand why having a small LM value would cause for paths with more blanks to be chosen when doing viterbi decoding with no LM shows no such issues. Makes me think something is not done right in the decoder.


Preserving empty line nodes

I am using commonmark library to generate emails. It is a really nice and easy to use library. It have both HtmlRenderer for rich email body, and TextContentRenderer for plain text email body. Looks like perfect solution. The person who sends an emails, prepares it using markdown syntax, then content is processed by both parsers and embedded to the email as plain and html body. But the problem is that parser discards line breaks (or empty lines).
Example:
Parser parser = Parser.builder().build();

Node document = parser.parse("foo\n\nbar\n\nbaz");

HtmlRenderer htmlRenderer = HtmlRenderer.builder().build();
TextContentRenderer textRenderer = TextContentRenderer.builder().build();

htmlRenderer.render(document);
textRenderer.render(document);

will result in for html

foo

bar

baz

for plain text:
foo
bar
baz

Parser just discards the empty lines completely. While for html this is acceptable cause each line will be wrapped with paragraph, for plain text renderer it is critical as the text looses its formatting.
What I expect is that parser will handle empty lines as a separate nodes, but renderers can process them differently, html renderer can just skip it, while plain text renderer will append them to the ouptut:
foo

bar

baz

I was not dig too deep in the sources, so not sure if there is some possible solution for that at the current state...

Hi @ijioio. As far as I understand, you're just unhappy with what the TextContentRenderer does with paragraphs, right? If it rendered it as follows:
foo

bar

baz

You would be happy?
I'm honestly not sure why it renders it this way at the moment:
foo
bar
baz

@JinneeJ do you remember what the reason was for this? We might have to make this configurable for backwards compat reasons, but it would still be good to know why.

@ijioio Also note, you can already change this behavior with existing API via TextContentRenderer.builder().nodeRendererFactory(myFactory) and overriding the rendering of Paragraph nodes.

@JinneeJ do you remember what the reason was for this? We might have to make this configurable for backwards compat reasons, but it would still be good to know why.

@robinst I don't remember exactly 😅 I guess it didn't occur to me that we might need adding extra empty lines for paragraphs. But anyway having backward compatibility would be great.

Hi @ijioio. As far as I understand, you're just unhappy with what the TextContentRenderer does with paragraphs, right? If it rendered it as follows:
foo

bar

baz

You would be happy?

Yes, exactly! I just want plain emails still keep some logical structure of the original text.

@ijioio Also note, you can already change this behavior with existing API via TextContentRenderer.builder().nodeRendererFactory(myFactory) and overriding the rendering of Paragraph nodes.

Thank you for the suggestion. Not sure is it a universal solution though. I mean, that I can never know in advance in which commonmark syntax block these new line breaks will be used. Is that implies I need to override all possible cases?

+1 for the original feature request of actually preserving empty lines. As a specific use case, I'm using commonmark to build a sort of rich text editor using markdown as the data, which requires maintaining a mapping between the literal and rendered text. So, e.g., in
An _italic_ text.

when the user places the cursor at index 5 in the rendered text, this actually maps to index 6 in the markup text, to account for the first underscore.
Unfortunately this breaks with newlines since they are simply discarded, so I have no way of knowing how many newlines the user entered.

@mattrob33 I think that's a different use case than the original reporter, which is for the TextContentRenderer. Could you create a new issue with your use case please? It sounds like you want the empty lines to be represented in the AST (Node) somehow? You might be able to do something with source spans, see includeSourceSpans on Parser.Builder?

I merged a fix which will be included in the next release, which will allow you to have blocks separated by a blank line using this configuration:
var renderer = TextContentRenderer.builder().lineBreakRendering(LineBreakRendering.SEPARATE_BLOCKS).build();

See #344 for an example. I'll comment here once the release is out.

Hey @robinst , thank you so much for this improvement, this is exactly what we needed! Could you please share with us an approximate date for releasing this? (I guess I'll be included in the 0.24.X but I don't know what's the deadline, if any, for that release)

@alvarogimenez I'm planning to release 0.24.0 in the next few days.

0.24.0 has been released now with the new lineBreakRendering option: https://github.com/commonmark/commonmark-java/blob/commonmark-parent-0.24.0/CHANGELOG.md#0240---2024-10-21


Add guard against double prefixes in org description

Currently, Frontend is in charge of appending the prefix to open organisations. We want Whitehall to take care of its data. This will also allow us to highlight the organisation description correctly.
The work for that is in: https://github.com/alphagov/whitehall/pull/2314
To prevent double prefix when Whitehall is migrated, we add a temporary guard here. This can be removed entirely once Whitehall has been migrated.

This has been deployed now.


Cortex Website & Positioning (Embeddable)

[ ] Migrate https://nitro.jan.ai to https://cortex.jan.ai
[ ] New website copy & listing

done thanks @urmauur


add tide-log

Description

A basic request logger that only uses the log crate and nothing else.
Resolves https://github.com/rustasync/tide/issues/152
Resolves https://github.com/rustasync/tide/issues/107

Motivation and Context

https://github.com/rustasync/tide/issues/162
Progress https://github.com/rustasync/tide/issues/8

How Has This Been Tested?

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

Also rebased over #220 while tweaking the manifest.

#220 was merged, this should be ready for a rebase!


Update dependent functions to deal with "const" pointers.

The (updated) param builder helpers missed a couple of casts.  This adds them.
The recent PR's are a result of one of our (non-OpenSSL) guy's having difficulties with the new OSSL_PARAM MAC APIs.  They are error prone or worse :(  The param builders are an improvement but still tricky in places.
The older ctl calls seem to be more manageable.

#9651 is a cleaner solution.
Closing this in favour of that.


Revert "Initial migration of Dockerfile and Dockerfile.aarch64 to Alpine"

Reverts ManoMarks/docker-swarm-visualizer#51
Sorry merged too soon. Will comment on Dockerfile.

Yes. I suppose you seen allready, keys are as found on official node alpine Dockerfile soory for that, the problem is that it doesn exist official aarch64/node:4.7-alpine images, yet.


[BUILD] Correct test-jar scope

Why are the changes needed?

Following #471
How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

thanks, merged to master for v1.2.0


seo fixes try 2

second try at https://github.com/pulumi/pulumi-tailscale/pull/87
fixes https://github.com/pulumi/pulumi-tailscale/issues/89
this is fixing a few seo issues

Replaced by #97


Audio volume delay adjustement on Android emulator (VS2019)

First I'm not sure if I'm at the right place. Is this the Microsoft repo for MediaElement?
If yes, using MediaElement on Xamarin Form project 4.5:
There is a delay on the Android emulator (using VS2019) while setting the volume before playing an audio file. It takes about 3 seconds before the volume is adjusted as given to the MediaEllement control. The audio start and the voume is adjusted around 3 seconds after althought the volume was set before the audio start.

hi @EricOuellet2,  This sounds like it would be an issue with the MediaElement in Xamarin.Forms, rather than a documentation issue.  You can log your issue here -> https://github.com/xamarin/Xamarin.Forms/issues. They have a template so you can provide some more details about system and projects.

Thanks you veru much!!!


Can I use nan_to_num to define a number that approaches zero, but is not exactly zero?

I answered this here in my group https://github.com/ubsuny/23-Homework6G1/issues/18

I answered this here in my group ubsuny/23-Homework6G1#18

Thank for the elucidation

Thanks so much for the clarification.


Being able to deactivate autosave

Describe the enhancement you'd like to see
Being able to deactivate autosave when you are editing a YAML file, as sometimes it conflicts with the actual writing.

the user should be able to deactivate autosave and formatting globally
the user should be able to deactivate formatting and autosave temporarily for a file.

Additional context
AutoSave is formatting while editing the yaml files there should be an option to turn off autosave as it hinders when we are writing the yaml files from scratch

Yesterday I found out that VSC also introduced Auto Save which you can toggle as seen in the screenshot below:

You can find it under the "File" dropdown.

Let's add this to the configuration too,.


⚠ Bofrost.lu has degraded performance

In 8ee070c, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1871 ms

Resolved: Bofrost.lu performance has improved in ec19855 after 6 minutes.


Help Wanted: Examples

We need some examples of writing brain code. These will end up in the examples/ directory in the project.
You can draw inspiration from things like:

your own programming
online programming questions/challenges

If you find that you need a feature that has not been implemented yet, please add a :+1: reaction to the issue for that feature indicating that you want that. It also helps if you add a comment on that issue describing your use case and the problem you were trying to solve so when we implement that feature we know we did it right. If such an issue does not exist, you can create one requesting what you need and why you need it.
Add your example as a comment in this thread or open up a pull request adding it to the examples directory (make sure you use the .brn file extension).
Feel free to add a line at the top of the file with your GitHub profile (or whatever) and even a license if you want. (Try to keep the license permissive.) If you don't provide an explicit license, your example will be added to the repo as is and the license of the repo (MIT) will apply.

Example idea: polish notation calculator
When dynamic arrays are implemented: reverse polish notation calculator


v1.3 scan: Facilities API Med 1

CampDAPI_Med&Lows.xlsx
Application Information Leakage is an application weakness
where an application reveals sensitive data, such as
technical details of the web application or environment.
Application data may be used by an attacker to exploit the
target web application, its hosting network, or its users.
Therefore, leakage of sensitive data should be limited or
prevented whenever possible. Information Leakage, in its most
common form, is the result of one or more of the following
conditions: A failure to scrub out HTML/Script comments
containing sensitive information or improper application or
server configurations.
Failure to scrub HTML/Script comments prior to a push to the
production environment can result in the leak of sensitive,
contextual, information such as server directory structure, SQL
query structure, and internal network information. Often a
developer will leave comments within the HTML and/or script
code to help facilitate the debugging or integration process
during the pre-production phase. Although there is no harm in
allowing developers to include inline comments within the
content they develop, these comments should all be removed prior
to the content's public release.
Software version numbers and verbose error messages (such as
ASP.NET version numbers) are examples of improper server
configurations. This information is useful to an attacker by
providing detailed insight as to the framework, languages, or
pre-built functions being utilized by a web application. Most
default server configurations provide software version numbers
and verbose error messages for debugging and troubleshooting
purposes. Configuration changes can be made to disable these
features, preventing the display of this information.
Error Message Exposed via 'GET api.epa.gov/easey/staging/facilities-mgmt/facilities/*'

I think there is no application leakages.
%0a%2fusr%2fbin%2fenv%0a = usr/bin/env
When scanning this application, they try to pull the usr/bin/env file by using https://api.epa.gov/easey/staging/facilities-mgmt/
%2Fusr%2Fbin%2Fenv
?page=100&perPage=100&stateCode=AL&epaRegion=string-without-format then the Nginx throw the error 500 internal server error instead of 403: Access Denied/Forbidden . I believe it is good throw error rather than leaking the urs/bin/env data.

False Positive. Approved reclassification on 3/4/2040


feat: add openscad_lsp

This server is a fork of sorts of the openscad_ls server that is
already supported by nvim-lspconfig. I have no insight into either
projects, but the openscad-lsp Cargo package seems to be more
actively maintained, see:

openscad_ls: https://github.com/dzhu/openscad-language-server
openscad_lsp (this pr): https://github.com/Leathong/openscad-LSP

I believe as of April 2022 openscad files are recognized, but I could be wrong.

I believe as of April 2022 openscad files are recognized and have a filetype pattern, however maybe I just misunderstood the issue here.

Ah, cool! Removed that section from the docs.


Support for extensions

In graphene-tornado, we've added support for extensions similar to Apollo Server. These extensions provide the capability to do things like add Apollo Tracing or distributed tracing to requests.
This capability would be great to add to graphql-server-core (it's a blocker for graphene-tornado to migrate). Is there interest in having this functionality in this project? Specifically, I'm suggesting we add the extension points defined here.

Hi @ewhauser,
Does this issue still required or it has been solved on graphene-tornado?

@KingDarBoja I have built a version of this in graphene-tornado but would love to see these extension points graphql-server-core. In graphene-tornado, you'll note that we have extension points for Apollo Tracing and OpenCensus that are built on top of this functionality. I'm sure there are a lot of Python GraphQL users who could benefit from those extensions.
I'm willing to submit a PR for this if there is interest. If we could get the extensions into graphql-server-core, then I'll convert graphene-tornado over to using it.

That's great, I have already migrated graphql-server-core to use graphql-core v3, which is the latest available version, being compatible with Graphql.js v15. Right now, merging flask-graphql into it too and will do the same with sanic-graphql and so on.
Feel free to push a PR :rocket:


CSS 'border-bottom' overwritten/missing on .commandBarWrapper and 'Site Header'

Target SharePoint environment
SharePoint Online
What SharePoint development model, framework, SDK or API is this about?
not applicable
Developer environment
macOS
What browser(s) / client(s) have you tested

[ ] 💥 Internet Explorer
[X] 💥 Microsoft Edge
[X] 💥 Google Chrome
[ ] 💥 FireFox
[X] 💥 Safari
[ ] mobile (iOS/iPadOS)
[ ] mobile (Android)
[ ] not applicable
[ ] other (enter in the "Additional environment details" area below)

Additional environment details
No response
Describe the bug / error
Sometime in the last few months, I noticed bottom-borders on SPO site headers have been missing. This is OOTB without any site modification or SPFx webparts/extensions.
Initially when a site loads, you can see a bottom border on the Site Header and Command Bar section (split second). It then disappears.
Looking into the developer console, while a bottom-border CSS property is set, there is an additional CSS rule overwriting the border property. I'm not sure why this was deliberately added. When you have headers with a white background and content on a white background, you don't have any separation between the header, command bar, and content below. It appears to be "floating" without any separation.
Here are the CSS properties:
Site Header
div[data-sp-feature-tag="Site header host"] {
    border-bottom-style: none;
}

[data-sp-feature-tag="Site header host"] {
    border-bottom: 1px solid;
    border-color: #F0F0F0;
}

Command Bar
Dynamic class name is added to .commandBarWrapper div
.commandBarWrapper {
    border-bottom: 1px solid;
    border-color: #F0F0F0;
}

.hs_ah_ada2ac09 {
    border-bottom-style: none!important;
}

Steps to reproduce

Load any SPO site (Teams site, Communication site, etc) - OOTB
View header and command bar
Open Developer Console/Inspect to confirm CSS properties

Expected behavior
Keep existing border-bottom or remove property that overwrites this property (not sure for the rationale why it was added in the first place).
Perhaps this was added to remove a border if a theme other than white or background color was applied, and there is enough contrast without? Not sure, but when the background is white and content is white all of these elements are "floating" on the page without separation.

This seems like an oob feature issue - or if you are taking dependency on the styles, that's not technically supported. We will not guarantee that the CSS or the html structure will not have changes. Your specifically reported issue seems like a but in the oob rendering and not about the extensibility, so closing the issue.


"User Has no posts yet" doesn't go away

The "User has no posts yet" remains even after user posts things (note: posts are visible and seem to work correctly)

While fixing this, may want to put message form on top of the messages, to make it so that the user doesn't have to scroll down


Fix for issue #74 and support for template spec semantic versioning

Please refer to issue #74 for more info on the bug observed using Azure_Ephemeral_OS_Disk as the storage type.
Regarding the use of semantic versioning (e.g., 1.0.0) for the value of machine_profile_template_spec_version, the expression resourceType := strings.Split(machineProfileSegments[lastIndex], ".")[1] returns the MINOR version number. Consequently, this result does not evaluate to 'templatespecversion'.

The changes in this PR have been made in the newest release. Closing this PR


[Build] CI Fix

Get the CI build working again. The core problem appears to be that updates to the openai package mean that it does not accept a 1-element string list for the version argument anymore. Instead, this must be a string.
We have also moved to having the endpoint information in regular variables, rather than secrets.

This is the key build:
https://github.com/guidance-ai/guidance/actions/runs/10427239552


serial ical is not working

Serial ical is not being tested because of a unites.skip

Fixed. Problem in global solution.