Remove trailing whitespace from theme file

There were many spots with trailing whitespace.

Inside selector blocks (probably from auto-indents)
After various lines (probably from Style Settings templates)

I have specifically not modified spacing or removed empty lines at the ends of rules as I am unsure whether you intend to refactor the tab sizes, empty lines, and other inconsistencies later. You can confirm this by checking that the additions and deletions are the same.
You may want to consider an opinionated linter extension like prettier for a CSS file of this size, as manual fixes past these whitespaces would be very difficult. Looking through the code, I don't see a specific personal style being used for everything (e.g. spaces after comments and between different rules) so an opinionated linter may be good compared to something more customization.
Further linting—changing spaces to be 4 may change lines like lines 2607 to 2631 when I am unsure of the intended tab sizes or ideas about spacing between rules—may not match with your style, so I have done the least opinionated linting.

Thank you. I will take a look at prettier; 15-year-old me was a messy coder, haha.


feat: Added support for advanced doc comment checking based on a number of rules in a rules file

We needed a linter to lint Puppet doc comments against our internal code guidelines and I found Puppetlint to have the best basic feature for that.
I hope, this change is in Puppetlints scope and you find it useful.

Have you considered implementing this as a lint plugin?

I didn't find any docs about creating a real separated lint plugin, but I needed the included check-configuration feature as well...

Excellent, great to hear.


Some secondaries start then fail with filesystem errors on buzz/wtf cluster

Describe the bug
A number of secondaries fail on startup but it is unclear why. Creating a new secondary through the registrar website works just fine so suspect config but cannot see anything obvious with docker service inspect.
To Reproduce
Steps to reproduce the behavior:

First these are the secondaries that constantly restart they are scaled back for now to help troubleshooting

q7yik6rzb4fo        2bf9bd8c-ac22-550a-8de9-b25a3c5ca1e5_secondary   replicated          0/0                 atsigncompany/secondary:dev_env        *:2670->2670/tcp
uyfdq36018jt        28c57a2b-df5a-54ff-8751-e3c60690face_secondary   replicated          0/0                 atsigncompany/secondary:dev_env        *:2668->2668/tcp
kf4tl18zw13d        51fae34f-84dd-5e03-8af6-a53b54f391aa_secondary   replicated          0/0                 atsigncompany/secondary:dev_env        *:2667->2667/tcp
kn8vhflaiskf        226aa4e4-d137-5a81-a219-18b0fa59a251_secondary   replicated          0/0                 atsigncompany/secondary:dev_env        *:1767->1767/tcp
qwr806m38zhp        303a1493-95c3-52a1-a1d2-fc651061ac99_secondary   replicated          0/0                 atsigncompany/secondary:dev_env        *:1100->1100/tcp
uzfk75nd9u3x        397a41bc-6808-5b1e-98f7-678a96d08ac8_secondary   replicated          0/0                 atsigncompany/secondary:dev_env        *:1126->1126/tcp
v7rtwa3l8gps        445c6c61-c6d1-5cef-b771-10a05acc3859_secondary   replicated          0/0                 atsigncompany/secondary:dev_env        *:2673->2673/tcp
n5ozcs2s0m7c        540b6a8e-caf8-504e-85c7-4910f99ff600_secondary   replicated          0/0                 atsigncompany/secondary:dev_env        *:1377->1377/tcp
e0yct41zns2d        583fa47c-f9c5-5a60-8762-45febb496715_secondary   replicated          0/0                 atsigncompany/secondary:dev_env        *:2671->2671/tcp
oc1n5km2g84k        599df1ec-b4d6-5530-8e80-4a339f67880c_secondary   replicated          0/0                 atsigncompany/secondary:dev_env        *:2047->2047/tcp
4ytpoml76vmn        599f7c82-c90e-5358-9b92-59783189e29b_secondary   replicated          0/0                 atsigncompany/secondary:dev_env        *:1301->1301/tcp
ag3xdbqdcprn        919de8c3-b940-558b-9984-d3960cdd34cf_secondary   replicated          0/0                 atsigncompany/secondary:dev_env        *:2672->2672/tcp
o7srh5bhg0td        136030ab-f5db-5a9e-a2a3-d2c1cb1a33e4_secondary   replicated          0/0                 atsigncompany/secondary:dev_env        *:2669->2669/tcp
9pihenwgnhi9        943215b0-7977-5855-9450-814b8b439ed9_secondary   replicated          0/0                 atsigncompany/secondary:dev_env        *:1511->1511/tcp
ue3esbqlxkf2        b02deb9f-d85d-52ca-848d-4280612e8a0d_secondary   replicated          0/0                 atsigncompany/secondary:dev_env        *:2666->2666/tcp

Then choose one and start it up

 docker service scale 445c6c61-c6d1-5cef-b771-10a05acc3859_secondary=1

Then watch the log file

 docker service logs -f 445c6c61-c6d1-5cef-b771-10a05acc3859_secondary
example logs
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    |
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | SEVERE|2021-06-16 01:05:26.881653|main|Exception in starting secondary server: FileSystemException: Creation failed, path = 'storage/commitLog' (OS Error: Transport endpoint is not connected, errno = 107)
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    |
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | Unhandled exception:
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | FileSystemException: Creation failed, path = 'storage/commitLog' (OS Error: Transport endpoint is not connected, errno = 107)
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | #0      _Directory.create.<anonymous closure> (dart:io/directory_impl.dart:117)
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | <asynchronous suspension>
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | #1      BackendManager.open (package:hive/src/backend/vm/backend_manager.dart:21)
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | <asynchronous suspension>
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | #2      HiveImpl._openBox (package:hive/src/hive_impl.dart:106)
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | <asynchronous suspension>
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | #3      HiveImpl.openBox (package:hive/src/hive_impl.dart:145)
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | <asynchronous suspension>
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | #4      CommitLogKeyStore.init (package:at_persistence_secondary_server/src/log/commitlog/commit_log_keystore.dart:31)
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | <asynchronous suspension>
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | #5      AtCommitLogManagerImpl.getCommitLog (package:at_persistence_secondary_server/src/log/commitlog/at_commit_log_manager_impl.dart:26)
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | <asynchronous suspension>
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | #6      AtSecondaryServerImpl._initializeHiveInstances (package:at_secondary/src/server/at_secondary_impl.dart:350)
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | <asynchronous suspension>
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | #7      AtSecondaryServerImpl.start (package:at_secondary/src/server/at_secondary_impl.dart:133)
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | <asynchronous suspension>
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | #8      SecondaryServerBootStrapper.run (package:at_secondary/src/server/bootstrapper.dart:50)
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | <asynchronous suspension>
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | #9      main (file:///app/at_secondary_server/bin/main.dart:21)
445c6c61-c6d1-5cef-b771-10a05acc3859_secondary.1.gc2mu2cha0q9@buzz-03    | <asynchronous suspension>

But all the mount points look fine as does gluster ???
Expected behavior
The secondary should start up cleanly
Additional context
Additional load was on the machine as these start and restart as NTP was tracking the docker interfaces and then hitting the resolver library. I have tuned ntp just to bind/watch the main machine ethernet interface

Transport endpoint is not connected seems to be a characteristic error message for glusterfs
GlusterFS transport endpoint is not connected – Quick fix! concludes:

In short, the error glusterfs transport endpoint connection fails mainly due to port unavailability or firewall problems.

This is the sort of thing I'm seeing in buzz-03:/var/log/glusterfs/bricks/gfs-brick.log:
The message "I [MSGID: 139001] [posix-acl.c:252:posix_acl_log_permit_denied] 0-gfs-access-control: client: CTX_ID:68ed0b96-dd76-4789-89a9-bdb05dbc6555-GRAPH_ID:0-PID:3245-HOST:buzz-02-PC_NAME:gfs-client-2-RECON_NO:-0, gfid: 6af565c9-e6d7-458e-b202-460b65caf6ca, req(uid:1024,gid:1024,perm:3,ngrps:0), ctx(uid:0,gid:0,in-groups:0,perm:755,updated-fop:LOOKUP, acl:-) [Permission denied]" repeated 2 times between [2021-06-16 14:01:27.423556] and [2021-06-16 14:01:57.531515]
[2021-06-16 14:01:57.531532] E [MSGID: 115056] [server-rpc-fops_v2.c:507:server4_mkdir_cbk] 0-gfs-server: 25388666: MKDIR<EMAIL_ADDRESS>(6af565c9-e6d7-458e-b202-460b65caf6ca/commitLog) client: CTX_ID:68ed0b96-dd76-4789-89a9-bdb05dbc6555-GRAPH_ID:0-PID:3245-HOST:buzz-02-PC_NAME:gfs-client-2-RECON_NO:-0, error-xlator: gfs-access-control [Permission denied]
[2021-06-16 14:02:04.927044] I [MSGID: 139001] [posix-acl.c:252:posix_acl_log_permit_denied] 0-gfs-access-control: client: CTX_ID:68ed0b96-dd76-4789-89a9-bdb05dbc6555-GRAPH_ID:0-PID:3245-HOST:buzz-02-PC_NAME:gfs-client-2-RECON_NO:-0, gfid: 6af565c9-e6d7-458e-b202-460b65caf6ca, req(uid:1024,gid:1024,perm:3,ngrps:0), ctx(uid:0,gid:0,in-groups:0,perm:755,updated-fop:LOOKUP, acl:-) [Permission denied]
[2021-06-16 14:02:04.927194] E [MSGID: 115056] [server-rpc-fops_v2.c:507:server4_mkdir_cbk] 0-gfs-server: 25393422: MKDIR<EMAIL_ADDRESS>(6af565c9-e6d7-458e-b202-460b65caf6ca/commitLog) client: CTX_ID:68ed0b96-dd76-4789-89a9-bdb05dbc6555-GRAPH_ID:0-PID:3245-HOST:buzz-02-PC_NAME:gfs-client-2-RECON_NO:-0, error-xlator: gfs-access-control [Permission denied]

Why [Permission denied]?
Meanwhile in syslog:
Jun 16 14:04:28 buzz-03 kernel: [378402.380017] docker_gwbridge: port 452(veth2aefcbc) entered disabled state
Jun 16 14:04:28 buzz-03 systemd-networkd[675]: veth2aefcbc: Lost carrier
Jun 16 14:04:28 buzz-03 kernel: [378402.380703] veth68f024e: renamed from eth2
Jun 16 14:04:28 buzz-03 networkd-dispatcher[833]: ERROR:Unknown interface index 678826 seen even after reload
Jun 16 14:04:28 buzz-03 networkd-dispatcher[833]: WARNING:Unknown index 678822 seen, reloading interface list
Jun 16 14:04:28 buzz-03 systemd-udevd[1671286]: ethtool: autonegotiation is unset or enabled, the speed and duplex are not writable.
Jun 16 14:04:28 buzz-03 systemd-networkd[675]: veth2aefcbc: Link DOWN
Jun 16 14:04:28 buzz-03 kernel: [378402.439200] docker_gwbridge: port 452(veth2aefcbc) entered disabled state
Jun 16 14:04:28 buzz-03 kernel: [378402.444198] device veth2aefcbc left promiscuous mode
Jun 16 14:04:28 buzz-03 kernel: [378402.444203] docker_gwbridge: port 452(veth2aefcbc) entered disabled state
Jun 16 14:04:28 buzz-03 systemd-networkd[675]: rtnl: received neighbor for link '678825' we don't know about, ignoring.
Jun 16 14:04:28 buzz-03 kernel: [378402.500693] br0: port 453(veth113134) entered disabled state
Jun 16 14:04:28 buzz-03 kernel: [378402.502776] device veth113134 left promiscuous mode
Jun 16 14:04:28 buzz-03 kernel: [378402.502781] br0: port 453(veth113134) entered disabled state
Jun 16 14:04:28 buzz-03 systemd-networkd[675]: rtnl: received neighbor for link '678825' we don't know about, ignoring.
Jun 16 14:04:28 buzz-03 systemd[1731]: run-docker-netns-0a7d8cdc087f.mount: Succeeded.
Jun 16 14:04:28 buzz-03 systemd[1731]: var-lib-docker-overlay2-5d5cea1a76130c9333485dabed76f51701ac3a32796f0a12cbff5e76bb79febc-merged.mount: Succeeded.
Jun 16 14:04:28 buzz-03 systemd[1]: run-docker-netns-0a7d8cdc087f.mount: Succeeded.
Jun 16 14:04:28 buzz-03 systemd[1]: var-lib-docker-overlay2-5d5cea1a76130c9333485dabed76f51701ac3a32796f0a12cbff5e76bb79febc-merged.mount: Succeeded.
Jun 16 14:04:28 buzz-03 networkd-dispatcher[833]: WARNING:Unknown index 678824 seen, reloading interface list
Jun 16 14:04:28 buzz-03 systemd[1149462]: run-docker-netns-0a7d8cdc087f.mount: Succeeded.
Jun 16 14:04:28 buzz-03 systemd[1149462]: var-lib-docker-overlay2-5d5cea1a76130c9333485dabed76f51701ac3a32796f0a12cbff5e76bb79febc-merged.mount: Succeeded.
Jun 16 14:04:28 buzz-03 dockerd[2060]: time="2021-06-16T14:04:28.929204051Z" level=error msg="fatal task error" error="task: non-zero exit (255)" module=node/agent/taskmanager node.id=jy6p28joumkcdgvtshacoqxj7 service.id=uyfdq36018jt50zz16t26l75i task.id=p80dnvgsnlxyg446r374e0036
Jun 16 14:04:28 buzz-03 networkd-dispatcher[833]: ERROR:Unknown interface index 678824 seen even after reload
Jun 16 14:04:28 buzz-03 networkd-dispatcher[833]: WARNING:Unknown index 678824 seen, reloading interface list
Jun 16 14:04:29 buzz-03 networkd-dispatcher[833]: ERROR:Unknown interface index 678824 seen even after reload

The syslog logs are expected as each docker container joins the network interfaces.. We see the same logs on prod..

Lots of testing today an spotting that the final secondaries that will not start all seem to have inconsitances in the glusterfs
Glusterfs thinks there is nothing wrong, but the files show up differently on buzz-03 as against buzz-01/02
rebooted  02/3 and glusterfs failed to load on 03 on reboot so all secondaries deployed to buzz-02. 900+ on buzz-02 which is pretty impressive, but even with just buzz-02 up the troublesome secondaries would not start.
fix/workaround for faulty secondaries

replicating glusterFS setup @home to make sure removing and adding brick solves this issue..

I went through the process above for all the secondaires that were still failing and they all came back up however with one addition I had to also remove all the lock files once the storage files were copied back.. That resulted in every secondary recovering..
At this point all servers reporting the same bytes used
root@buzz-03:~#  df -k /gluster
Filesystem     1K-blocks    Used Available Use% Mounted on
localhost:/gfs 104806400 3126576 101679824   3% /gluster
root@buzz-03:~#

root@buzz-02:~#  df -k /gluster
Filesystem     1K-blocks    Used Available Use% Mounted on
localhost:/gfs 104806400 3126576 101679824   3% /gluster
root@buzz-02:~#

root@buzz-01:~#  df -k /gluster
Filesystem     1K-blocks    Used Available Use% Mounted on
localhost:/gfs 104806400 3126576 101679824   3% /gluster
root@buzz-01:~#

and all secondaries are up..
root@buzz-01:~# docker service ls |grep 0/0
root@buzz-01:~# docker service ls |grep 0/0|wc -l
0
root@buzz-01:~# docker service ls |grep 1/1|wc -l
919
root@buzz-01:~# docker service ls |grep 0/1|wc -l
0
root@buzz-01:~#

Only outstanding question is do the devs want the certs renewed ?? Due to the ZeroSSL issues this week ? This does not effect android so my suggestion is if you are an Apple dev and hit a problem we will update your certs on demand..
Feedback please
@sarika01
@murali-shris
@purnimavenkatasubbu
@Sameeraja-Bharathula
@cpswan
@nickelskevin

That seems like a reasonable plan to me.

Given that we already have the scripts, it might be easier to just run them rather than responding to onesies and twosies.
I'll have a quick look to see how bad things are.

./checkcerts.sh
unable to load certificate
140458169120064:error:0909006C:PEM routines:get_name:no start line:../crypto/pem/pem_lib.c:745:Expecting: TRUSTED CERTIFICATE
unable to load certificate
140702707995968:error:0909006C:PEM routines:get_name:no start line:../crypto/pem/pem_lib.c:745:Expecting: TRUSTED CERTIFICATE
Invalid certs from April 0
Invalid certs from May

Alright thanks for everyone's help I think we can close this issue... But I will leave open for a few days just in case someone has anything to add..

Closing, as it's been more than a few days, and we've not seen further issues.


[FLINK-32951] Make VertexFlameGraphFactoryTest#testLambdaClassNamesCleanUp working with jdk 11+

What is the purpose of the change
The problem of VertexFlameGraphFactoryTest#testLambdaClassNamesCleanUp is that it assumes that lambda's classnames end with $Lambda$0 while in fact for jdk 11 and jdk 17 it ends with $Lambda$0x0.
That is the reason of build failure during nightly tests
The PR is aiming to fix that
Brief change log
-org.apache.flink.runtime.webmonitor.threadinfo.VertexFlameGraphFactoryTest
Verifying this change
The change is a test itself
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): ( no)
The public API, i.e., is any changed class annotated with @Public(Evolving): ( no)
The serializers: ( no )
The runtime per-record code paths (performance sensitive): ( no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: ( no )
The S3 file system connector: ( no )

Documentation

Does this pull request introduce a new feature? ( no)
If yes, how is the feature documented? (not applicable)

@ruanhang1993 since it is related to https://github.com/apache/flink/pull/22854
could you please have a look here?


Not stable for transporting data to APM server

I tried v4.0.3 and it looks like agent wasn't stable enough. Red rectangle area was time range of v4.0.3 and I downgraded to v3.0.4.

I didn't change any configurations. So, almost configuration is defualt value.

Thanks for the report!
Do you see any indications of what could be wrong in the apm-server logs or the logs of your application?

I'm sorry but that's really difficult. I'm tracing many services with elastic apm which version is 3.0.4, and as I reported before, there are so huge amount of warning log.
{"type":"mapper_parsing_exception","reason":"object mapping for [context.service] tried to parse field [service] as object, but found a concrete value"}

There are too many these warning log, I cannot retrieve any other logs. Almost 10MB of there warning logs are generated in less than 5 seconds.

As you know, it's hard to just upgrade all of agent's version to 4.0.3.

OK, thanks for the update! The context.service issue should be gone in 4.0.3, but I see how it could be difficult to upgrade a whole lot of installations at the same time.
Would it be helpful to you if I backported https://github.com/elastic/apm-agent-python/pull/367 to the 3.x branch? Then you should be able to upgrade to 3.0.5, wait a day or so for the dynamic mapping issue to take care of itself, and then try to upgrade to 4.0.3 again.
I can ship a 3.0.5 with the backport in about an hour or so

Good. I will try upgrade to v3.0.5 and report if there is something weird logs.

@toughrogrammer 3.0.5 with the boto3 fix is now on PyPI: https://pypi.org/project/elastic-apm/3.0.5/

Thank you. Merry Christmas!


Jetur Gavli Readme.md Updated

Readme.md File Updated .
Add My Profile into Readme.md

Thanks

@StackOverflowIsBetterThanAnyAI
How can i merge pull requests.

@StackOverflowIsBetterThanAnyAI
How can i merge pull requests.

You can't, because you do not have the rights to to do. You need to wait for the Owner of this repository to do so.

Ok, thank you.
On Sat, Jun 15, 2024 at 1:22 PM Michael @.***> wrote:

@StackOverflowIsBetterThanAnyAI
https://github.com/StackOverflowIsBetterThanAnyAI
How can i merge pull requests.
You can't, because you do not have the rights to to do. You need to wait
for the Owner of this repository to do so.
—
Reply to this email directly, view it on GitHub
https://github.com/EddieHubCommunity/open-source-practice/pull/3693#issuecomment-2169191275,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZ3K4WRY4F72NYOTD74V53ZHPXDPAVCNFSM6AAAAABJKIAYXCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRZGE4TCMRXGU
.
You are receiving this because you authored the thread.Message ID:
@.***>


Fix drupal_set_title() changing breadcrumb titles

I experienced this with Ctools on export UI page callbacks. Each callback ran drupal_set_title(), so when the breadcrumb was generated every link had the same title.
Object storage sounds good, but I don't know what RequestStack is.

The RequestStack is how \Drupal::request() works, it tracks all the requests being handled. The RetrofitTitleResolver would actually look like the path.current service I think: https://git.drupalcode.org/project/drupal/-/blob/11.x/core/lib/Drupal/Core/Path/CurrentPathStack.php?ref_type=heads


improve handling of the prepared ds path and other cfg defaults

Defaults to saving the prepared dataset, even if it's not going to be used unless explicitly called
warns in red when calling prepare_ds_only without a prepared dataset path set
disable sample packing when doing inference

Doesn't this revert the no cache behavior when prepared dataset config is missing?

it writes the cache, it just doesn't use it. Which I think is safer in most cases, especially if you're explicitly running prepare_ds_only. Like if you're running that command, and not caching the dataset, it serves no purpose, since that's the expectation of running prepare.


implement rule 3

Add transformation for rule 3. Closes #61

Codecov Report

Merging #64 (73a8b07) into master (d3260f6) will increase coverage by 0.25%.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@             Coverage Diff              @@
##             master      #64      +/-   ##
============================================
+ Coverage     88.63%   88.88%   +0.25%
  Complexity        9        9
============================================
  Files             2        2
  Lines            44       45       +1
  Branches          3        3
============================================
+ Hits             39       40       +1
  Misses            5        5

Impacted Files
Coverage Δ

src/main/java/org/eolang/speco/Speco.java
100.00% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

@advasileva the only puzzle #76 is solved here.


As a participant, I want to be sure that my response is fully anonymous, so I can be sure that responses aren't mis-used.

Duplicate of #40


Custom email seems to be ignored when creating an account for a user

Hi, I'm using the User plugin version 1.3.4 in combination with October CMS version 419.
Using the user plugin, I'm creating accounts for some (frontend) users. They receive a welcome mail with this text, even though I have changed it in /backend/system/mailtemplates
HelloUsername,

A user account has been created for you. Please use the following login and password to sign in:

Login<EMAIL_ADDRESS>Password: examplePasswordSetByAdmin

After signing in you should change your password as soon as possible.

Also please note the lack of a space between Hello and Username.
In the settings of the user plugin /backend/system/settings/update/rainlab/user/settings under Notifications setting a specific e-mailtemplate does not have any effect. The mail always reverts to the above text.
Please note that in my setup I've set it up so that only admins can create user accounts. The e-mail we're talking about is the one that's being sent when the checkmark Send invitation by email - Sends a welcome message containing login and password information. is checked.
Could you please look into this? Thanks a bunch.

I can confirm that I am also experiencing this behaviour.

Closing as it has been over a month since any activity on this occurred.


Android: Pressing Back button exits the editor when running the project

Bugsquad note: This issue has been confirmed several times already. No need to confirm it further.

Godot version
V3.5 and 4.0
System information
Android 11
Issue description
When playing a scene whole Godot editor turns of when pressing a back button I just want to close palyed scene and go back to the editor but i can't Sometimes it's working normal and I'm going back to the editor and sometimes not I think that there should be on screen floating button to close the scene and that would be good solution or even opening it as a separate app
Steps to reproduce
I have no idea looks like it's random
Minimal reproduction project
No response

As a workaround, add a button on your game that calls get_tree().quit() when pressed.

As a workaround, add a visible Button node on your game that calls get_tree().quit() when pressed.

Unfortunately, this does not appear to solve the issue (using godot Alpha 13)
https://user-images.githubusercontent.com/34092413/181997131-b2b2d1b9-2fef-4d2e-b66c-ee90e380978a.mp4

I tried everything but nothing helps...

I would like to add that this bug occurs all the time in my current setup:
Operating system: Android 12
Godot version: 4.0 Beta 3
Device: Samsung Galaxy Tab S8

The behavior is not intentional and caused by an input-related crash bug when returning to the editor from the running project.
The issue has already been fixed on the 3.x branch, but still remains on the 4.x branch.

Just tried the latest 3.x branch, doesn't seem to work.
However I do recall a release candidate of 3.5 that actually fixed the problem, however everything after said candidate stil has the problem.

Just tried the latest 3.x branch, doesn't seem to work.

@Liquidful Do you mean you tried a custom build from the 3.x branch and the issue is still present (i.e: pressing back from the running project causes the editor to close as well?) ?

Not a custom build, just the official 3.5.1 package found on the website,
And yes, the same issue is still present. (Android 12, Xiaomi Pad 5)

Not a custom build, just the official 3.5.1 package found on the website, And yes, the same issue is still present. (Android 12, Xiaomi Pad 5)

@Liquidful That's expected. The fixes are being made for the upcoming 3.6 release as they contained some large refactor to the input logic which we deemed unsuitable for the 3.5.x releases.
We'll soon make that release available through the play store which will provide an easier (and automatic) way to keep up-to-date with the latest improvements.

I have a problem, no matter how many times i click return, it doesn't return to the editor, it won't quit even with get_tree().quit()

I have a problem, no matter how many times i click back, it doesn't return to the editor, it won't quit even with get_tree().quit()

I've seen that behavior when the debugger is on and stopped at a breakpoint. Check to ensure that there's no breakpoints in your gdscript code prior to running the project.

Same problem happening in my android device
Infinix Smart 5 android 10, 32-bit
Even i tried godot 4.1.2 and 4.2 beta
Problem is not solved please fix it
As soon as possible.

Not a custom build, just the official 3.5.1 package found on the website, And yes, the same issue is still present. (Android 12, Xiaomi Pad 5)

@Liquidful That's expected. The fixes are being made for the upcoming 3.6 release as they contained some large refactor to the input logic which we deemed unsuitable for the 3.5.x releases.
We'll soon make that release available through the play store which will provide an easier (and automatic) way to keep up-to-date with the latest improvements.

It's already been a year and 3.6.0.beta.3 has been released yet I'm still facing this issue. I've installed the official app from play store still facing the issue

If this only occurs with a script error, see https://github.com/godotengine/godot/issues/77272.

Not a custom build, just the official 3.5.1 package found on the website, And yes, the same issue is still present. (Android 12, Xiaomi Pad 5)

@Liquidful That's expected. The fixes are being made for the upcoming 3.6 release as they contained some large refactor to the input logic which we deemed unsuitable for the 3.5.x releases.
We'll soon make that release available through the play store which will provide an easier (and automatic) way to keep up-to-date with the latest improvements.

It's already been a year and 3.6.0.beta.3 has been released yet I'm still facing this issue. I've installed the official app from play store still facing the issue

@SamiunNafis there was a second fix needed which is being added by https://github.com/godotengine/godot/pull/84279.
That fix hasn't been merged yet but will be part of the next beta release.


Assorted fixes

#2138 Replace TwoWay binding by event handlers in SQL publishing
#1990 Wrong reported default for Use multiline selection
#2058 Goto definition should take selection into account
#2019 Putting $ evaluates the code and shows an error.
#2146 Drag & drop of sql file creates code that doesn't work for mult…
#2147 Incorrect parameter suggested in arguments with nested function…

:+1:


add color to output

We should add an option to enable/disable the color support. Not all terminals or outputs do support color.

I saw I HackerNews thread about https://no-color.org/ recently. They suggest an informal standard of checking the environment variable NO_COLOR.
Here's what the command-line interface guidelines suggest:
Disable color if your program is not in a terminal or the user requested it. These things should disable colors:

* stdout or stderr is not an interactive terminal (a TTY). It’s best to individually check—if you’re piping stdout to another program, it’s still useful to get colors on stderr.
* The NO_COLOR environment variable is set.
* The TERM environment variable has the value dumb.
* The user passes the option --no-color.
* You may also want to add a MYAPP_NO_COLOR environment variable in case users want to disable color specifically for your program.

I'm leaning towards "the user passes the option -no-color", that flags a public logical no_color defined in testdrive.f90. Since this is a dependency in fpm it is counter-intuitive to include checks that fpm already runs to test for color terminals.

I was thinking instead as an optional input to run_testsuite. Not sure if I'd want finer grained control at the level of individual test suites, or unit tests, neither at thread/image level.

I like this PR and agree about having an option to disable colors (env var NO_COLOR seems reasonable).
I wonder about the yellow statuses for unexpected pass and expected fail. Personally I'd expect those to be red (undesired outcome) and green (desired outcome), respectively. In a setting where green and red describe desired and undesired outcomes, to me yellow means some kind of warning. And, there's the issue that the same color is used for two opposite outcomes, thus making the coloring unhelpful. Long story short, I suggest not using the yellow, and using green and red according to the desiredness of the test outcome.

What's the status of this PR - what is missing for it to get merged? We are using test-drive in our CI testing and unfortunately it is way harder than necessary to visually find problematic locations in the GitHub Actions logs if everything is the same shade of grey...

@freevryheid would you be willing to include the proposed changes in your PR such that it can be merged (even though it's been a year...)

@awvwgk can you confirm that the 3 failing jobs (gnu 6, 7, 8) are due to updated ubuntu-latest image (i.e. older GCC versions not available anymore) and we can safely ignore them?
Also, are you OK with ignoring the codecov coverage decrease in this specific case? It seems to me that adding tests to satisfy the coverage here would be overly tedious for little gain.

If we can we should target improving the coverage, but it is not a strict criterium for merging.
Regarding the CI, we should open a new issue on this an fix or remove the respective workflows.


Question about the DDL Schema

For the DDL statements, ie the create table statements, how important is the descriptions of the columns? Does this help the model figure out the columns to use during inference? Also was RAG tested in liu of fine tuning in terms of performance?

Thanks for the question! The model works fairly well without column descriptions or table join comments. Though without those, you might get lower accuracy for vague questions.
For example, with the follow DDL statements without any column descriptions – you still get the right answer what questions like "how much customers do we have", or "what is our total revenue". But answers to less complex questions might fail.
CREATE TABLE products (
  product_id INTEGER PRIMARY KEY,
  name VARCHAR(50),
  price DECIMAL(10,2),
  quantity INTEGER
);

CREATE TABLE customers (
  customer_id INTEGER PRIMARY KEY,
  name VARCHAR(50),
  address VARCHAR(100)
);

CREATE TABLE salespeople (
  salesperson_id INTEGER PRIMARY KEY,
  name VARCHAR(50),
  region VARCHAR(50)
);

CREATE TABLE sales (
  sale_id INTEGER PRIMARY KEY,
  product_id INTEGER,
  customer_id INTEGER,
  salesperson_id INTEGER,
  sale_date DATE,
  quantity INTEGER
);

CREATE TABLE product_suppliers (
  supplier_id INTEGER PRIMARY KEY,
  product_id INTEGER,
  supply_price DECIMAL(10,2)
);

-- sales.product_id can be joined with products.product_id
-- sales.customer_id can be joined with customers.customer_id
-- sales.salesperson_id can be joined with salespeople.salesperson_id
-- product_suppliers.product_id can be joined with products.product_id


Added a simple install.sh script

I don't use any plugin managers for vim, so I thought for others like me, we might benefit from a simple ./install.sh functionality that copies syntax files over into ~/.vim.
What do you think?

Current folder structure is kinda standard in vim plugins. I think people who don't use plugin managers usually come up with a generic way for installing plugins (which is in fact their custom plugin manager).
Anyway, if you send me link to repos which has something like your script we can rethink about it


i18n(es): fix syntax highlighting with diff-like syntax example

What kind of changes does this PR include?

Changes or translations of Starlight docs site content

Description
While reviewing a pull request, I accidentally stumbled upon issues with the authoring content guide for the syntax highlighting with diff-like syntax example:

Extra '
Markdown example not matching the rendered output

Wow, did not expect so many reviews during my break, amazing! Thanks everyone 🚀


[network] Add common NetworkSender network interface.

All network applications will use a wrapped NetworkSender<TMessage>
where TMessage is their own protobuf message format.

NetworkSender handles the "low-level" message-based interface to
network, so the upper network applications only see a nice async-await
API.

Adds a send_to_many method optimized for sending the same message to
many peers. Consensus currently uses something like this for their
proposal broadcast, so we will explicitly pull this into the network
interface.

Adds dial_peer and disconnect_peer methods to support forthcoming
work to pull out gossip-discovery and connectivity-manager into
network application modules.

:hourglass: Testing commit 69afbd9f97b7fe0a4322b2e513dbfa1074f485a4 with merge 669ef88ee341b7054c548585d18cd89bafce3508...

:sunny: Test successful - checks-circle_commit_workflow
Approved by: bothra90
Pushing 669ef88ee341b7054c548585d18cd89bafce3508 to master...


Gamemodes aren't switching correctly when traveling between worlds

Information
Server version: Minecraft 1.16.2, Paper MC jar version #152
Full output of /mv version -b: https://pastebin.com/SZcKbLwN
Server log: https://gist.github.com/TheSirRolfe/8d539ef100261fcc54ef655d0827c48f
Details
I was able to reproduce my issue on a freshly setup and up-to-date server with the latest version of Multiverse plugins with no other plugins and with no kinds of other server or client mods.
Description
Basically on my server I have a hub world and, currently, 2 other worlds (creative and survival) which are accessed through mvportals. When the server is first turned on the default gamemode, adventure mode, is loaded correctly but if I go through one of the portals my gamemode will not change (I'm OP and also have the rank Owner which has access to all permissions, and I have enable_bypass set to false in the mvinv config).
If I use /reload and reload all the server plugins without shutting down the server, if I go through one of the portals my gamemode will now change correctly, however if I then go back through the portal I entered that world from my gamemode won't change back to adventure mode. I've made sure the gamemodes are all set correct in the worlds.yml doc and I've even tried using the /mvmodify command in each world, but nothing has fixed it yet.
Steps to reproduce

I booted up my server
I logged in
I walked through a portal to either the creative or survival world
My gamemode didn't change when l loaded into the world
I did /reload and /reload confirm
I then went back to the hub world and tried again
This time my gamemode now changed going through the portal to creative/survival
But now my gamemode won't change going back through the portal to the hub world

Expected behavior
My gamemode would change when going between worlds but it didn't, or it would change going one way but not the other.

please follow the issue template, I need to know details like your server version, mv version etc.....

Ah, my bad. If you could point me in the direction of the issue template
I'll fix up my post right away.
On Mon, Aug 31, 2020 at 9:30 PM benwoo1110<EMAIL_ADDRESS>wrote:

please follow the issue template, I need to know details like your server
version, mv version etc.....
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Multiverse/Multiverse-Core/issues/2398#issuecomment-683723247,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKOII3PCNREZ452IRBY6ITTSDOCWBANCNFSM4QQM57DQ
.

https://github.com/Multiverse/Multiverse-Core/issues/new?template=report-a-bug.md

Fixed my post according to the template.
On Mon, Aug 31, 2020 at 9:36 PM benwoo1110<EMAIL_ADDRESS>wrote:

https://github.com/Multiverse/Multiverse-Core/issues/new?template=report-a-bug.md
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Multiverse/Multiverse-Core/issues/2398#issuecomment-683725687,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKOII3PMS3X3CAGGK6BWSMDSDODMBANCNFSM4QQM57DQ
.

It would seem the issue is only to do with the Owner rank. By moving myself to each worlds default rank (regardless if OP or not) the portals are functional and the gamemode switching works exactly as intended. My guess would be that even though enable_bypass is set to false, by having the '*' for permissions it bypasses it anyway.

ah I see, there is a mv.bypass.gamemode.WORLDNAME permission node with will cause that, you should set this permission node to false

Ah ok cool. Thank you very much.
On Mon, 31 Aug 2020 at 10:27 pm, benwoo1110<EMAIL_ADDRESS>wrote:

ah I see, there is a mv.bypass.gamemode.WORLDNAME permission node with
will cause that, you should set this permission node to false
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Multiverse/Multiverse-Core/issues/2398#issuecomment-683747697,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKOII3OORBXK3SJG3A5ZI6DSDOJMBANCNFSM4QQM57DQ
.


Implemented argmin & argmax for Series

This PR proposes Series.argmin & Series.argmax.
>>> kser = ks.Series(
...     {
...         "Corn Flakes": 100.0,
...         "Almond Delight": 110.0,
...         "Cinnamon Toast Crunch": 120.0,
...         "Cocoa Puff": 110.0,
...         "Expensive Flakes": 120.0,
...         "Cheap Flakes": 100.0,
...     }
... )
>>> kser.argmin()
0
>>> kser.argmax()
2

Addressed comments.
Thanks, @ueshin !

Thanks! merging.


The R500S modem should not need the PWR_ON pin connected

According to the implementation guide the R500S we're using does not need the PWR_ON pin connected for the modem to work - supplying VCC should be enough.
We should test this. With the current circuit we can simulate this by keep Q4 open so the PWR_ON signal is taken high by the internal pull-up resistor in the modem.
If it works we could remove Q4 and free up an I/O pin.
However we must read the datasheet and see if PWR_ON is used for resetting the modem or similar. If so it might be useful to be able to control it.

Saw a failure where toggling this pin seemed to bring the modem back. So we'll leave it for now.


Add node-based DNS service

Hey folks.
I've implemented a microservice called node-dns-service which you can see at https://github.com/inexorgame/node-dns-service
It is currently live with the following data:

BASE_DOMAIN=inexortestnetwork.tk
the alias config is at https://gist.github.com/Fohlen/9a0f106ab12a0cc4202ed87c6b18fae6
API endpoint is at https://b881xr7vo3.execute-api.eu-central-1.amazonaws.com/dev/

So, what is it, and why do I want to add it to Inexor?
The brief summary is, it let's you register a random UUID-based node for a domain.
It works as follows:

hey API, got me a subdomain for node.inexor.network
there it is, have fun. Please also take this revocationSecret in case you want to invalidate this domain
Thank you very much!
(some time later). I don't need this domain any more. Here is my node id and revocationSecret, can you revoke it for me?
No problemo. Done

It also allows for creating alias domains with a .json file so that you can have a_teammate.node.inexor.network point to your node.
Why do we need it?
In the future, we want to make services such as

public server list served over an API
repositories served with git+http
authentication based on OAuth
(...)

All these services do not by default require https, but it merely makes sense to host them, without SSL. Since only a minority of system administrators is likely to

have an own domain name
configure SSL for it via Let's Encrypt

this would impose a major security issue in our system.
That's why I wrote the dns-service, with the following workflow in mind

SERVER instance of flex asks the service, hey there, got me a subdomain?
API no problemo, here you go
hey there Let's Encrypt, got me a SSL certificate for that domain ?
Let's Encrypt here you go
SERVER delivers content with valid SSL certificate
CLIENT = happy

Why I would use a separate domain
I would suggest to use inexor.network or any other separate domain because of the following reasons:

this is an anonymous service
it will allow anybody to send stuff in our name
this includes, e.g malicious mails
this will very easily lead to inexor.network being blacklisted
no problem for us but it is, once inexor.org pops from Google search (and potentially others) it's no fun any more

It also allows clear difference between what's auto-generated network and what actually belongs to us.
Last but not least, the money
Yup

.network domains currently cost 19 dollar / year
as I elaborated in the node-dns-service README, it's extremely unlikely that we will ever hit the limit, and even if, it would be very cheap
this means that we currently only have the cost for the hosted zone
makes 0.50 dollar month => 6 dollars / year
total: 25 dollar / year

Also AWS has a pretty damn clever Burst algorithm for detecting potentially malicious use of API endpoints, which should make it really save from attacking.

I have archived the repo since this will be solved by the community workflow and since I no longer maintain the repo.


Local LLM Support - LM Studio

Issue with the call when changing baseapi:

It looks like i needed to restart my vs after changing baseapi for it to start working:

Hi @redthista.
Happy that you could solve the issue.


Handle upgrade path for blacklist to blocklist

Closes #894
Description
If someone had installed zmap prior to changing the blacklist -> blocklist, they may have an existing /etc/zmap/blacklist.conf file. If this file had been changed or had any modifications in it, it will not be respected after installing the latest ZMap. The fix is to rename the existing file (if it exists) to the expected etc/zmap/blocklist.conf,
Additionally, (and what I believe caused #894), the contents of zmap.conf would have been
blacklist-file "/etc/zmap/blacklist.conf"

If the zmap.conf file exists and contains that string, we'll replace it with:
blocklist-file "/etc/zmap/blocklist.conf"

Also fixed a typo.
Testing
main when there's a blacklist.conf file
Notice how there are both a blacklist.conf and a blocklist.conf
276f9edbd3c2# mkdir /etc/zmap
276f9edbd3c2# echo "hello" > /etc/zmap/blacklist.conf
276f9edbd3c2# cmake . && make -j4 && make install
...
...
f13c372b071b# ls /etc/zmap
blacklist.conf  blocklist.conf  zmap.conf
f13c372b071b# cat /etc/zmap/blacklist.conf
hello
f13c372b071b# cat /etc/zmap/blocklist.conf
# From IANA IPv4 Special-Purpose Address Registry
# http://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml
# Updated 2013-05-22

<IP_ADDRESS>/8           # RFC1122: "This host on this network"
<IP_ADDRESS>/8          # RFC1918: Private-Use
<IP_ADDRESS>/10       # RFC6598: Shared Address Space
<IP_ADDRESS>/8         # RFC1122: Loopback
<IP_ADDRESS>/16      # RFC3927: Link Local
...

Phillip/894 when there's a pre-existing blacklist.conf file
276f9edbd3c2# mkdir /etc/zmap
276f9edbd3c2# echo "hello" > /etc/zmap/blacklist.conf
276f9edbd3c2# cmake . && make -j4 && make install
...
67fc06685b98# ls /etc/zmap
blacklist.conf  blocklist.conf  zmap.conf
67fc06685b98# cat /etc/zmap/blacklist.conf
hello
67fc06685b98# cat /etc/zmap/blocklist.conf
hello

Phillip/894 with a fresh install
80a30c9ecba2# cmake . && make -j4 && make install
...
80a30c9ecba2# ls /etc/zmap
blocklist.conf  zmap.conf
80a30c9ecba2# cat /etc/zmap/blocklist.conf
# From IANA IPv4 Special-Purpose Address Registry
# http://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml
# Updated 2013-05-22

<IP_ADDRESS>/8           # RFC1122: "This host on this network"
<IP_ADDRESS>/8          # RFC1918: Private-Use
<IP_ADDRESS>/10       # RFC6598: Shared Address Space
<IP_ADDRESS>/8         # RFC1122: Loopback
<IP_ADDRESS>/16      # RFC3927: Link Local
<IP_ADDRESS>/12       # RFC1918: Private-Use
...

I'm a little bit hesitant to do this because it could unexpectedly break things for the user. What if we instead added a symlink?

That seems fine and perhaps less intrusive. We still have the issue with zmap.conf that I just realized and mention in the now updated description. Not sure if we should just leave that as an exercise to the user (could always just do a fresh install) but I added code that should handle it. Tested with a pre-existing zmap.conf and installed latest zmap.
cc: @zakird

Is that an issue if the symlink is there?

Yeah, probably should have expanded a bit more in the PR description. The symlink solves the issue with having a blacklist.conf, we can just create a symlink to blocklist.conf -> blacklist.conf. BUT, there's a 2nd issue with the zmap.conf config file.
We have the "standard options" run with most zmap invocations stored in /etc/zmap/zmap.conf.
The current version looks like:
...
### Blocklist file to use. We encourage you to exclude
### RFC1918, IANA reserved, and multicast networks,
### in addition to those who have opted out of your
### network scans.
blocklist-file "/etc/zmap/blocklist.conf"

...

If the .../zmap.conf file already exists, it won't be re-created by default. See here.
So I believe that in #894, the user's zmap.conf file had the old line: blacklist-file "/etc/zmap/blacklist.conf". That would have caused the error they saw. I think the only fix would be to either always overwrite the old file if it exists, leave it to the user to fix, or replace that string if it exists.


Refs #31385 -- Changed tutorial 1 doc text to more clear explanation

In tutorial 01, it mentioned that it would create a project "next to" the existant
manage.py. Changed the text to instruct it is creating the project "in the same directory"
as the existant manage.py.

https://code.djangoproject.com/ticket/31385#trac-add-comment

@victorcmoura Thanks :+1: Welcome aboard :boat:

Tests failures are not related.


Support attribute block/allow list in data collector

With this change the attribute block and allow list filtering has been extended to the Automate data collector. This will make captured attributes consistent across Automate and Chef Infra Server.
Fixes #10895

Tjhis should be passing everything now, but I want to take a final pass through manual verification of received payload before/after this change.


Scala 3: Incremental compilation bug with top-level definitions

Hey,
When you add a new Scala source file with a def that makes an existing function call ambiguous, this fact isn't detected by the incremental compiler and compilation erroneously succeeds when it should be failing. After a clean, compilation fails like it should.
I originally reported this as an sbt bug, but I have since reproduced it with mill, so I'm going to assume that it's a zinc bug.
mkdir project
echo 'sbt.version=1.9.3' > project/build.properties
echo 'scalaVersion := "3.3.0"' > build.sbt

cat > A.scala << EOF
trait Foo
trait Bar

def foo(f: Foo) = ()
def qux = foo(new Foo with Bar {})
// this call is fine for now, but will be ambiguous once another overload is added
EOF
sbt compile
cat > B.scala << EOF
def foo(b: Bar) = () // add another overload, compilation should now fail
EOF
sbt compile # this succeeds, but shouldn't
sbt clean
sbt compile # now it fails, correctly

Thanks for the report. Scala 3 maintains their own compiler bridge, which is typically the cause for Scala-specific issues. Could you report the issue here please? - https://github.com/lampepfl/dotty/labels/area%3Aincremental-compilation

This is a very easy mistake for bug reports to make — all too easy!
I've updated the repo description here to explicitly say "Scala 2".
I've also submitted https://github.com/sbt/zinc/pull/1240 which updates the bug template and the readme to be clear about this.

Thanks for pointing me to the right repo @eed3si9n


feat: enforce generation of docs for commands

Whenever we create a new top-level command, the feature being introduced in this PR will keep the docs up-to-date.
This will avoid future mistakes e.g. the one that https://github.com/aspect-build/aspect-cli/commit/e4a9dd4fb3df30a4a197bc2fb06e42599c972331 fixes.

@mattem Yeah, makes sense the naming (fixed in 7f690ce). As for the command printing the bzl file instead of saving it as a file directly, I don't see any issue. Bash does this easier and the command is only used with a genrule anyways.


[CT-2326] Model view: display column-level constraints

In the model view (/model/{model_id}) of dbt-docs, display any column-level constraints under the 'Columns' tab.
Differentiate from generic tests - should specify the type of the constraint (not null, unique, etc)

Closing as a duplicate of https://github.com/dbt-labs/dbt-docs/issues/433


document account creation in readme

hm, this kinda duplicates what's in docs/ACCOUNTS.md (which is more verbose but I think that's fine for now). For now I think it's best to have the README just link to ACCOUNTS

I agree with link docs/ACCOUNTS.md to the main repo. Maybe the intro readme can also include a "what is working" list like the picopds  predecessor readme had.  As a new user, I usually take a quick glance at the intro read me if it doesn't seem very explanatory, I move on.
@DavidBuchanan314  I'm very interested in this project and commend you for giving this as a baseline guide (which I definitely used in starting my own PDS).
Quick question.. I'm getting a bit lost in the sauce on did-creation and posting events TO the stream. I am familiar with consuming the firehose, this applications seems to create new accounts on a new repo.  Can these private server did:plc event creations published to Bluesky?
Also, I will create a PR that adds my suggestion.

regarding "what is working", basically everything works aside from what's documented as not-working in the various open issues.

Can these private server did:plc event creations published to Bluesky?

That's kind the whole point. PDSes are not private, the aim is to publish events to any downstream service that'll listen.


Ads are no longer playing on Desktop (Chrome, Safari)

As of about 30 minutes ago, every ad request I've seen now results in a 1009 error.  We have not made any updates to our player code in several days.
This video has a direct test ad, so fill should be 100%:
https://dev.player.dotstudiopro.com/share/57be8615d66da81809a33855?targetelm=.player&companykey=57bdf792d66da8b744a33855&autostart=true&debug=true
The console log is a bit messy, but I do log out ad errors and you'll see the 1009 errors.  This had ads when I was last testing with it some 45 minutes to an hour ago.
The following VMAP tag is called for ads: https://api.dev.myspotlight.tv/vmap/57be8615d66da81809a33855/833/469/57be8615d66da81809a33855/https%3A%2F%2Fdev.player.dotstudiopro.com%2Fshare%2F57be8615d66da81809a33855%3Ftargetelm%3D.player%26companykey%3D57bdf792d66da8b744a33855%26autostart%3Dtrue%26debug%3Dtrue
Which then leads to our ad server, which delivers the Toyota ad.  PLEASE NOTE: I cannot reproduce this in the Video Suite Inspector.
Package Versions:
`"video.js": "5.19.1",`
`"videojs-contrib-ads": "^5.0.3",`
`"videojs-contrib-hls": "5.10.1",`
`"videojs-ima": "^0.5.0"`

We haven't made any changes on our end today - the most recent IMA SDK change was back on 10/20, and the videojs-ima plugin doesn't have an auto-update feature so that code won't change without you changing it. If I check the console log I do see an ad error coming from videojs_hls_ads_desktop_core.js saying that the response didn't contain any valid ads, but that same response plays fine on our video.js test player and in our Video Suite Inspector. (The VSI doesn't use the videojs-ima plugin, but it is using the IMA SDK.) Are you setting any mimeTypes in your adsRenderingSettings? I see that the response only has one mime type and it's an mp4, so if you're changing the mimetypes and disallowing mp4 that could be causing an issue. Could you load ima3_debug.js on that test page so we can see a higher level of logging? Thanks!

Hi Sean,  It looks like the IMA SDK appears to have been updated to version 3.183.1, but the most recent version listed on the release notes page and the ima-sdk forum is 3.182.1

Yeah, I checked the revision history earlier in case that was it, but no dice.
I am not setting any mimetypes.  Here are the options I use when I set up the ads:
var options = {     id: typeof opts.targetelem !== "undefined" ? opts.targetelm : 'dsp-vid-js-player',     adTagUrl: adTag,     numRedirects: 8,     vpaidMode: 'INSECURE' };

If you do google.ima.VERSION in the console it will show the current version... which is ahead of what is listed

So...they did an update and didn't document it?  That seems like it could cause some issues.

It looks like we did have a release earlier this afternoon and we're in the process of updating the release notes now. Are you working on that test page currently? I'm trying to test again but I'm getting "videojs-ima-ad-events.js?bust=1509050606572:645 Uncaught TypeError: Cannot read property 'plugin' of undefined" before it makes the ad request.

Hey Shawn, I'm pushing an update right now; it's an unrelated issue. Check in about 2 minutes.  The ima debug script should be pulled now on that video.

Thanks for the update. I'm still looking into this - at this point it looks like it's isolated to your page. I'm working with the IMA SDK eng team now to see what may have caused this.

Taking a look at the page again, it looks like it's now pulling down ima3.js and ima3_debug.js. Could you remove the call that loads ima3.js? Sorry if my initial instructions were unclear. Thanks!

This is affecting our live player on client sites as well.  It may be isolated to our player but it's not isolated to that page.

Hey Shawn, I just noticed it's pulling both; pushing a fix now.

Thanks for the fix - I'm talking to the team about rolling back today's release to get you back on 3.182.1. Would it be possible to create a static copy of that test page for us so we can continue to test for the next few days? We're still not sure what's causing the error, so we want to make sure we get that nailed down so our next release doesn't break you again.

You should be able to just use that page.  We have periodic dev updates to that player, but you're free to use that page to debug as much as necessary.
When they do roll back, will you let us know, so we can notify our clients?

Thanks for the info - we initiated the roll back now. You should see 3.182.1 being loaded in the next 5-15 minutes (as caches clear).

Hey Shawn, looks like ads are working for me again on desktop.  Thanks for the quick and thorough response.  As mentioned, use that page as much as you need for debug and feel free to let me know if you need anything.

I'm seeing them working on my end as well now, thanks! We'll take a look at that test page to figure out what went wrong and make sure it's fixed before the next release.

Is there a way to subscribe somewhere to get notified when there is an update, or are planning an update, etc?

We do have a thread on the IMA SDK support forum that gets updated with new releases. This one hasn't made it there yet, though. We have them updated within 24 hours.

Awesome, thank you!  I just subscribed to it. I don't suppose there is any way to know beforehand?

Not currently - our release dates aren't set in stone because we have a canary process to make sure things don't break before we release. If the canary shows that something is going wrong, we abandon the release, or cherrypick a fix if we know the issue, or potentially take other action to delay the release.. In this case our canary process didn't catch the breakage because it was only affecting your implementation, so it didn't create enough of a signal to make it through the noise.


Always pop up a messagebox with unins000.exe

VSCode Version: newest version
OS Version: win10

Steps to Reproduce:

After install the VScode, it will pop-up message box with
C:/Program Files/Microsoft VS Code/unins000.exe
Ann error occurred while trying to create a file in destination directory: Access is denied.
Please Retry to try again. Ignore to skip this file (not recommended) or abort to cancel installation

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

You said:

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

Please find out what extension is doing this.

This issue has been closed because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


setUrlStrategy fails in integration test environment

This is called in the app's main method. In the integration test, this exception is thrown upon calling app.main():
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following assertion was thrown running a test:
Assertion failed: org-dartlang-sdk:///lib/_engine/engine/window.dart:25:10
!_isUrlStrategySet
"Cannot set URL strategy more than once."

When the exception was thrown, this was the stack:
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 266:49      throw_
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 29:3        assertFailed
lib/_engine/engine/window.dart 25:11                                              set customUrlStrategy
lib/_engine/engine/initialization.dart 259:5                                      <fn>
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 367:37  _checkAndCall
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 372:39  dcall
packages/flutter_web_plugins/src/navigation/url_strategy.dart 41:19               setUrlStrategy

This issue is a blocker for DevTools to be able to set up up integration tests. Explanation here. @yjbanov is there anyone on your team that can take a look at this to see why this value is already set in the engine for a web test environment?

I'm looking into this.
For background, we don't allow flutter web apps to set the url strategy more than once to prevent them from shooting themselves in the foot. Changing the url strategy is not something a normal app does. The expectation is that the app sets up the url strategy once on start up (or does nothing, in which case we default to the HashUrlStrategy).
Do integration tests run one after the other in the same instance? If that's the case then that explains the error you are seeing.
Solution:
What we can do is expose a unsetUrlStrategy function that you can call after each integration test to reset things.

Discussed this with the team, here's a brief summary:
The url strategy issue you're seeing is just a symptom of the fact that integration tests are NOT running in isolation. This leads to all kinds of weird behavior since the underlying state is preserved across tests. Ideally, you want each integration test to run in isolation (that's how real apps run, you don't run multiple apps consecutively in the same page).
// cc @yjbanov and @ditman for more thoughts.

How do these tests run?

https://github.com/flutter/engine/blob/b197788d963c183ac0477271c2153afb58c68b01/lib/web_ui/test/window_test.dart#L411-L431

Is there anything that can be reused from the engine test runner that can help here?

@ditman those tests work because on tearDown they call window.resetHistory() which resets the state of url strategy.
I'm not sure if they have access to this API from outside the engine. Maybe something like this would work?:
import 'dart:ui' as ui;

// On test tearDown:
(ui.window as dynamic).resetHistory();

Ahhh, cool trick! I think that should be doable, I hope that helps unblock this a little bit :S

The url strategy issue you're seeing is just a symptom of the fact that integration tests are NOT running in isolation. This leads to all kinds of weird behavior since the underlying state is preserved across tests. Ideally, you want each integration test to run in isolation (that's how real apps run, you don't run multiple apps consecutively in the same page).

The issue might be that testWidgets, used by package:integration_test, is designed to logically start its own new app. Having framework state transfer from on testWidgets to another is not a well-trodden path AFAIK, but I may be wrong. If we want to have one runApp and multiple tests interacting with it, then perhaps runApp should be called in a setUpAll and each testWidgets would exercise an already running app through a scenario. But I'm not sure if that's how package:integration_test was designed to work (cc @dnfield).

@kenzieschmoll have you found a fix/workaround for this?

Adding this was an acceptable workaround 👍 Thanks!
  tearDown(() {
    (ui.window as dynamic).resetHistory();
  });

Actually, it appears this workaround is flaky... it sometimes passes sometimes fails.

Ah sorry, this is my bad. I forgot that resetHistory is async.
Try this:
tearDown(() async {
  await (ui.window as dynamic).resetHistory();
});

Ah adding the await seems to have fixed it. This is an acceptable workaround for now, thanks!

The proposed workaround was working for a while, but now I seem to be hitting an assertion error when calling resetHistory();
Assertion failed: org-dartlang-sdk:///lib/_engine/engine/navigation/history.dart:221:12
  _hasSerialCount(currentState) && _currentSerialCount == 0
  is not true
  dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 288:49  throw_
  dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 29:3    assertFailed
  lib/_engine/engine/navigation/history.dart 221:68                             tearDown
  dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 45:50            <fn>
  dart-sdk/lib/async/zone.dart 1406:47                                          _rootRunUnary
  dart-sdk/lib/async/zone.dart 1307:19                                          runUnary
  dart-sdk/lib/async/future_impl.dart 147:18                                    handleValue
  dart-sdk/lib/async/future_impl.dart 767:44                                    handleValueCallback
  dart-sdk/lib/async/future_impl.dart 796:13                                    _propagateToListeners
  dart-sdk/lib/async/future_impl.dart 567:5                                     [_completeWithValue]
  dart-sdk/lib/async/future_impl.dart 640:7                                     <fn>
  dart-sdk/lib/async/zone.dart 1398:13                                          _rootRun
  dart-sdk/lib/async/zone.dart 1300:19                                          run
  dart-sdk/lib/async/zone.dart 1208:7                                           runGuarded
  dart-sdk/lib/async/zone.dart 1248:23                                          callback
  dart-sdk/lib/async/schedule_microtask.dart 40:11                              _microtaskLoop
  dart-sdk/lib/async/schedule_microtask.dart 49:5                               _startMicrotaskLoop
  dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 177:15           <fn>

Taking a step back here. Do you really want your tests to mess with the real browser history and url? I'm assuming the answer is no. But if you don't do anything about it, and your tests perform any kind of flutter navigation, you'll be touching the real browser history.
You have 2 options here:

Disable browser history completely. If you don't care about the browser history or url bar, then you can disable all of that by doing setUrlStrategy(null) (it's better to do this before runApp() or app.main()).

If you do care about the history and the navigation state (e.g. if you are using flutter routes), then you probably should mock the url strategy so that you don't use the real browser history. Here's an example: https://github.com/flutter/flutter/blob/main/dev/integration_tests/web_e2e_tests/test_driver/url_strategy_integration.dart#L22-L22

FWIW, you can wrap this line a a simple isTesting bool:
Main app code:
import 'package:flutter/material.dart';
import 'package:url_strategy/url_strategy.dart';

bool isTesting = false;

/// The main entry point of the application.
void main() {
  // Set the path URL strategy for Flutter web applications. This removes the
  // "#" symbol from the URL and makes it more user-friendly and easier to share.
  if (!isTesting) {
    setPathUrlStrategy();
  }

  runApp(const MyApp());
}

Test app code:
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
import 'package:pam/main.dart' as app;

void main() {
  IntegrationTestWidgetsFlutterBinding.ensureInitialized();

  app.isTesting = true;

  testWidgets('test loading the app', (tester) async {
    // Build our app and trigger a frame.
    await app.main();
    await tester.pumpAndSettle();
  });
}


Add action for deploying a theme to Shopify

@pgrimaud your changes have been merged, thanks for your contribution 👍


Consider adding a stubbing API

Is your feature request related to a problem? Please describe.
Right now, built-in host imports like emscripten are allowed to stub calls such that no host call is made. This is done via writing wasm instructions to return a constant (or no value on nullary).
Stubbing unused callbacks in wasm is more performant than calling a host function that does nothing, and also removes error conditions otherwise possible.
Describe the solution you'd like
I'm considering if we should add a stubbing version of ModuleBuilder.ExportFunction
Describe alternatives you've considered
Do nothing and let people wire up no-op functions. Possibly try to use reflection to see if a function is a no-op and stub automatically. I don't know if this is possible.
Additional context
I think we could cite some ABI that may end up having no-op callbacks, possibly proxy-wasm, and how many of those are in the critical path. maybe @anuraaga might know if this is worth doing routinely.

Personal experience is that I generally stub functions until a binary do finally loads, under the expectation that these aren't actually used in my actual use case. If they're actually used they'd generally need to actually be implemented, not just stubbed I guess.
What could be quite handy for me is not a stubbing API but an option to autostub missing imports, probably either as no-opish (ish being some coercion to zero value for results) and panic. I would often use that I think, and it wouldn't require any explicit stubbing while also providing information to then implement the functions that are actually used at runtime.
This comes from the learning that it's very easy for a compiler to end up adding host imports just because the code exists even when not used in the final binary. For Envoy where I don't control the host I have even rewritten unused imports not available to unrelated functions with the same signature - autostubbing would definitely be better than that :D

Interesting idea on auto-panic ;) That's helpful I suppose for some wasm that imports a great deal of things but not sure what's used. Would have been helpful in the past in WASI I think.
There are callbacks that aren't used, for example memory view refresh, logging when disabled etc. Probably, we can have some benchmarks to show that things like this (maybe not memory view refresh as that's uncommonly code), but certainly things like disabled loggers, or callbacks on certain lifecycle hooks where performance will suffer as crossing the host side is expensive especially only to do nothing. OTOH, it is likely that we can prove this instead of say it. I'll keep this open until the most likely candidates for it (ex proxy-wasm) we can see how often things are called.
Meanwhile, I'll deprioritize this! Thanks for the feedback @anuraaga!

I think stubbing isn't very needed now especially with the reduced performance cost of calling host functions.


Cross Platform Support?

Hi Jeff,
Just saw your recent talk: https://www.youtube.com/watch?v=xmD8wUZ0egQ. I haven't played around with your API yet, but it looks incredibly usable. Your target platforms are all Apple specific - is it at all on your radar to add support for Linux (hardware accelerated or not)?
Having worked with Apple's Measurement framework, unit APIs in Project Haystack / and Fantom as well as colleagues of mine rolling our own (https://github.com/NeedleInAJayStack/Units), the wrapping together of the numerical uncertainty issues, physically meaningful constants, etc. is a nice touch - thanks for putting this together.
If you think this discussion belongs somewhere else, happy to move out of issues - just needed some mechanism to contact.

Hi! Yes, this is something that I was hoping to have time to make available on all platforms. It will take some careful work to re-implement the core part of the Measurement system, dropping the localization part, at least at first, but perhaps there are opportunities to improve on it as well. I'm sure alternatives for vectorization will take some thought as well. I think those are the only two sticking points.
Thanks for the vote on this direction. I didn't know if non-Apple platform support was of interest to others or not.

Cross-platform support will be a target for a future release. Closing this issue for now.


Implement restriction container for draggable elements

Duplicate of #45?

Yeah sure =) - I thought I already deleted it, but probably just got removed from project board.


[build-script] Fix #25547 to handle Xcode-based builds

Xcode puts the bin/ and lib/ directories in a subdirectory based on configuration; account for this when copying over compiler-rt for non-host Apple platforms using one of the existing helpers in build-script-impl.

@swift-ci Please smoke test

Thanks for fixing this! LGTM.


Add rss feed for events

Adds the rss feed to surface events sorted by date desc.

thanks @cnunciato. yeah good call on adding the guid field.
As far as the dates are concerned, i'm not including a <pubDate> field in the items list, just because we don't have any data around when it was actually published and yes would probably look strange in a reader. So I am using a field called <date>, just to indicate the date the event is occuring on, rather than when we added the event to the site. Though I am wondering what a reader will do with the date field since it is not part of the official specification. I am wondering if they will just render fields outside the  spec somehow...? I'll do a bit more digging and testing around this.

@cnunciato, I think I'm just going to have to go with the pubdate here. I think it may look weird in readers, but I don't think we have really any other options here that the specification would allow for.


Update report parameter in rescue stub to match laravel

This updates the rescue function report parameter. It supports both bool and callable.

https://github.com/laravel/framework/blob/dec31b0fb6f5753eb2283e9f3af34ec7d3d33a98/src/Illuminate/Foundation/helpers.php#L753-L756

If the framework has proper generics now then the stub for this method can just be removed

Updated the PR! Thanks for taking a look!

Hmm it looks like it's still needed for Laravel 9 :frowning_face:---we'll have to wait to remove this until v3

The problem is that this file is for Laravel v9, v10, v11 but the improved docblock is only in v11.

No it's on L10:
https://github.com/laravel/framework/blob/c9cc18001e0dd14638320a4a770bbc2486fc9eef/src/Illuminate/Foundation/helpers.php#L735

Well, my original change was consistent with laravel 9. report accepts bool|callable.

L10 has no generics, L9 has no nothing
     * @param  callable  $callback
     * @param  mixed  $rescue
     * @param  bool|callable  $report
     * @return mixed

Yeah, that works, sorry about the run around!

No worries!

Thank you!


workspaceContains does not activate extension on Add a folder to workspace

VSCode Version:  1.34.0
OS Version:  MacOS High Sierra

Steps to Reproduce:
The attached zip file contains the extension which is just the HelloWorld example with this extra line in package.json:
"activationEvents": [
"workspaceContains:*.txt",
"onCommand:extension.helloWorld"
],
The zip file also contains a folder
TestData
|--> Test.code-workspace
|--> tmpNoTxt
|--> tmpWithTxt

Debug the attached extension
In debugged VSCode, open the above Test.code-workspace, which is an empty workspace.
Click "Add folder" to add the above tmpWithTxt folder, the extension is activated. Good.
Remove the folder. Add the tmpNoTxt folder. The extension is not activated. Good.
Add the folder tmpWithTxt, the extension is not activated. Bad.

myextension01.zip


Remove reports tutorial from GAT "happy path"

Unless it regains out of the box support where we can as easily enable it as we did previously.

maybe not? @natefoo reports it is again easy to install? @natefoo do you have configuration for that?


New route is mounting before previous route unmounts

Version
5.2.0
4.3.1
Test Case
https://codesandbox.io/s/react-router-basic-forked-ioc7u?file=/example.js:2209-2229
Steps to reproduce
Home component is being used in both the Home (as the root component to route) and About component (as a child)

turn on console
click Home link to go to home
click on 'about' link to go to about
see the console.

Expected Behavior
the first Home component should be unmounted first before the second Home component (from About) is mounted (render)
Actual Behavior
The component (Home 2) for the next route is mounted before the component (Home 1) from the previous route is unmounted

That's not what I'm seeing:
home will unmount, id: 1
home did mount, id: 2
about did mount

Even then, this is out of scope for React Router. This is just the semantics of how React renders. We don't have any control over that.

@timdorr Thanks for the quick review!
I want to clarify the actual behavior:
The first line: the 'home 2' renders first. Then the 'home 1' unmounts, following with 'home 2' did mount is called.
Home render, id 2
home will unmount, id: 1
home did mount, id: 2
about did mount

So you are saying react-router doesn't control when the next route will mount and the previous route got destroyed/unmounted?

Yeah, we don't control that. That's just the normal React lifecycle. It does renders first and then changes mounts.


Issue #14–“remote authentication required”—solved

I got no help from the developer of the plugin manager.
This morning I noticed that the name of the plugin is fern-hijack.vim not fern-hijack-vim, which is what I had been using.
Using the correct name the plugin installed.

So the issue is solved? Good 🎉

Curious why an incorrect name would trigger that kind of error message. It really threw me off the track. When an email is bounced back to me I can usually identify the problem promptly.Perhaps if I had shared the precise command I used in trying to install the plugin the error would have been detected by others. My experience is that problems like this are usually due to some simple error on my part. I should be more vigilant for simple errors on my part. ----------------------------------------Eric WeirDecatur, GA @."It has all been combustion.”- W.G.  SebaldOn Oct 23, 2023, at 10:30 AM, Λlisue @.> wrote:
So the issue is solved? Good 🎉
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>


Add documentation for logging security events

Customers need to be able to log various security events that take place with Rancher for auditing purposes. We need to better document how this is done.
What kind of request is this (question/bug/enhancement/feature request):
Enhancement

Close in favor of https://github.com/rancher/docs/issues/2101


Add all the pycache stuff in .gitignore file

This is creating conflicts with every fetch. Please resolve this

sorry duplicate


Added a ruidmentary stratification/relevel/isosurface algorithm.

Gives Iris the ability to extract isomorphic isosurfaces. For example, this algorithm could be used to pick off a 2000m surface from data on model level data (which does not have a 1d height coordinate).
I'll be more than happy to add an example to the user guide once this is in (I may even do that before it gets merged).
Ping @cpelley.

Of course, this needs the stratify package... http://github.com/pelson/python-stratify

@pelson this looks really interesting. I know that our in-house solution is problematic in some corner casses, and is based on naive loops. But I would love to hear your thoughts on how stratify compares with ciso. (Also because we do need a better solution and ours is not well maintained :grimacing:)

Thanks @pelson, great stuff.  ping @hdyson.

However, I would love to hear your thoughts on how stratify compares with ciso.

Phew! Well...
python-stratify has been designed to work on N-d arrays, and is simply the generalization of many 1d interpolations (in the interpolation direction) over any number of interpolation dimensions - the remaining dimensions are broadcast in the way that you would get with tools like scipy.interpolate.interp1d. python-stratify is almost entirely an optimisation for the interpolation dimensions for-loop (which is often very big).
The one big caveat to the optimisation statement is that we do not assume that the input values are monotonic:
>>> stratify.interpolate([15, 25, 22], [0, 10, 30, 20, 40], [0, 1, 3, 2, 4])
array([ 1.5,  2.5,  2.2])

The code itself is heavily optimised cython that releases the GIL as often as possible. At some point I'm hoping to benchmark this again rudimentary numba - I'd also like to look at distributing the problem out with dask. I have abstracted "interpolation" and "extrapolation" kernels so that we can pick and choose the scheme using the same underlying infrastructure.
My biggest gripe at the moment with python-stratify is that I require a cython written kernel if I want to extend it interpolation/extrapolation capabilities. I was looking at adding lapse-rate type extrapolation kernel, but this has been a bit irksome (e.g. passing state like the lapse rate itself) and I ended up just retro-fitting values computed as a separate step on top of all values that were NaN (using the NaN extrapolation kernel). I may dig into this some more, and potentially see how scipy has achieve this with its LowLevelCallable type.
A secret-sauce extension is that we don't actually need the source levels to be 1d (https://github.com/SciTools-incubator/python-stratify/blob/master/stratify/_vinterp.pyx#L533). This means that if we had fields of Temperature(x, y, z) and Salinity(x, y, z) we can go straight to Temperature(x, y, Salinity) without the need to have an intermediate (common) 1d z-coordinate. This has proved to be particularly useful for some work I'm doing at the moment, and I may try to refine my ideas in this PR further so that we get useful behaviour out of the box.

Thanks for the explanation @pelson. Even if the performance is slower I can see many other advantages of this compared to ciso. Thanks for https://github.com/SciTools-incubator/python-stratify/pull/1/files BTW!
I will try to put together some comparisons too. I will let you know. (This is a common operation in ocean sciences and we relied on that nested-loop for ages, only the language changed :smile:)

Hello @pelson,
thanks for this - looking good.  We need this for CMIP6 processing as well as ancillaries.  Our timescales are fairly tight for CMIP6 - do you have an aim for getting this in?
I'm a fairly casual iris user so some of the following comments may miss the mark - I hope they don't waste your time.

There is a chance that a user has level_data on Pa and, accidentally passes in target_level values as hPa.  Could the documentation be update to help avoid this, or is there any value in having target_level as a coordinate (with units  that can be checked).
Do you need more stringent tests on the cube coordinates the purely being able to broadcast?  What happens in the case were the number of points on a dimension of phenom and level_data are the same, but the coordinate values are different along that dimension?  Is this so low likelihood that you don't need to test and throw an error in this case?  Or do you see this as the responsibility of the calling/client code?
Because I'm a casual iris user I have a poor understanding of what cube broadcasting means - sorry.  For instance if I don't really know how to cope with a situation like the following.  I have a phenom cube dimensioned [time, level, pseudolevel, lat, lon] and a level_datacube dimensioned [time, level, lat, lon].  How do I ensure these can be broadcast?  Does cube indexing/slicing support np,newaxis?  If this is an inappropriate question for this pr, feel free to drop it - I don't want to hold up getting this ticket in.

Thanks again for working on this - and good luck in getting it in,
Jamie

There is a chance that a user has level_data on Pa and, accidentally passes in target_level values as hPa.
Could the documentation be update to help avoid this, or is there any value in having target_level as a coordinate (with units that can be checked).

I'll add support for target_levels being a coordinate, and will coerce the level data into the target levels units.

Do you need more stringent tests on the cube coordinates the purely being able to broadcast? What happens in the case were the number of points on a dimension of phenom and level_data are the same, but the coordinate values are different along that dimension? Is this so low likelihood that you don't need to test and throw an error in this case? Or do you see this as the responsibility of the calling/client code?

At this point, I see it as the responsibility of the calling code. In general I'd like to see us improve the Iris codebase for input assumptions, but currently the cost of adding those assumptions is a significant code burden. I could envisage a scheme where we annotate our functions to express input validation rather than re-implement validation in each and every function. I definitely think that falls outside the scope of this PR though.

Because I'm a casual iris user I have a poor understanding of what cube broadcasting means - sorry. For instance if I don't really know how to cope with a situation like the following. I have a phenom cube dimensioned [time, level, pseudolevel, lat, lon] and a level_datacube dimensioned [time, level, lat, lon]. How do I ensure these can be broadcast?

I'm not aware of a public function that does the broadcasting automatically. I thought there was, so maybe I'm looking in the wrong place. If not, this would be extremely useful to develop.

Does cube indexing/slicing support np,newaxis? If this is an inappropriate question for this pr, feel free to drop it - I don't want to hold up getting this ticket in.

Currently np.newaxis is not yet supported (PR https://github.com/SciTools/iris/pull/1809 :disappointed:)

Thanks @pelson - your replies all make sense to me.  Good luck in getting this in. Jamie

Hello @pelson - we may have a need for this in mid Feb to help with some ancillary production (this is a shorter time than I'd imagined).  We happy to use a fork if it works - do you think you would have a something we could use on those timescales?
Sorry to put the pressure on - but this would be useful functionality for us.
Jamie

Trying this out on some real data and it looks good! :+1:

@pelson this looks good to me, to summarise the above:

try-except around the broadcast call to provide a helpful message to the user.
A mention of this current requirement of source suitability for broadcasting in the function docstring.

The other points I make above you can ignore for now.  I reckon since this is in experimental the UI can and should evolve as we add new usecases.  We shouldn't dwell on it too much.
Cheers

@pelson stratify is already available on conda-forge and scitools

Ah thanks @bjlittle, then this will just need rebasing in that case.

@cpelley and @jkettleb Are you guys working to a deadline that requires this PR? It would be good to know a specific date if this is a blocker, particularly if @pelson isn't around to service any review actions ...

Hi @bjlittle, we have added @pelsons stratify module as a private module to ANTS so I think there is no blocker right now.  This will allow us to use stratify until a new iris release is tagged and has @pelson stratify UI present.
Cheers

@pelson You need to PEP8 your code fella and add stratify as a travis dependency, thanks.

@bjlittle - hello Bill, we have two potential uses for this - the immediate one is in ANTS and we can use the local copy as Carwyn has said.  The second is for processing our CMIP6 data for submission.  I'd rather not do the same copy trick if we can avoid it.  The CMIP6 work that needs this should (if things go to plan) be starting in earnest in May - what could you deliver by end of March for me to test (April has Easter in it so I think we need end of March)?

@pelson Do you have time and capacity to address this PR? @jkettleb and @cpelley are super keen to see it merged.

@bjlittle - yep. I'll be able to find time in the next few days.

@pelson Nice one, thanks!

Thanks both :)

Replaced by #2471


Clean shutdown and restart

If the node is shut down in the middle of the execution of a block, already executed transactions need to be rolled back. Last block info also needs to be reconciled.

Close due to fixed.


Typing: snap-url-manager

Enable Typescript strict mode.

Didn't get as far as I thought I would with this one. Unassigning if anyone wants to pick this up tomorrow.


Wrong merge order if > 10 files

Hello @gulien !
I want to merge pdf files like this:
$files = [];
foreach ($this->pdf_pages as $name) {
$files[] = Stream::path(Storage::path($this->dirPath . '/tmp/' . $name));
}
    $request = Gotenberg::pdfEngines('http://gotenberg:3000')
        ->outputFilename($resultFileName)
        ->merge(...$files);

But the order is confused when file count > 10
Originally posted by @AndreyZakhvatoshin in https://github.com/gotenberg/gotenberg/discussions/411#discussioncomment-2460897

@AndreyZakhvatoshin Looks like an issue from
my side.


Remove hyper::body::to_bytes or adds a params for size limit?

As pointed out by this article, using hyper::body::to_bytes blindly might cause DoS attack since the function reserve the Vec based on body.size_hint(), which can be way larger than the actual http response data.
This cannot be fixed by using falliable allocation even it's there since overcommit could be enabled.
IMHO the only way to migrate this is to either remove this function or add a size limit to this function.

Perhaps hyper::body::to_body can even be moved to utils?

I'm aware of the article, they reached out privately a few months ago and I tried to explain it is essentially the same as Read::read_to_end, but they felt a big headline claiming hyper is vulnerable was useful to them. :shrug:

I tried to explain it is essentially the same as Read::read_to_end

That's true, but perhaps this function can be put into hyper-utils since read_to_end without length check is not very useful in real world where every client/server is treated as untrusted?

but they felt a big headline claiming hyper is vulnerable was useful to them. 🤷

They even go as far as claiming that function is unsafe (yes, with a code block) while in reality, nothing about this function can trigger UB.

it is essentially the same as Read::read_to_end

If I understand the blog post correctly the main issue is that hyper's to_bytes blindly trusts the attacker-provided Content-Length header. That would be much severe than the Read::read_to_end case. For read_to_end an attacker would actually have to provide MBs or GBs of data to perform a denial of service attack, whereas for hyper's to_bytes an attacker would merely have to claim that the body is multiple MBs or GBs large and to_bytes will happily try to allocate that memory, even if the attacker in the end only sends a few KBs in total.

They even go as far as claiming that function is unsafe (yes, with a code block) while in reality, nothing about this function can trigger UB.

It looks like (even in the first archived version of the blog post) "unsafe" is only colored red but not formatted as code. Though in the context of Rust, using the term "unsafe" is nonetheless quite misleading. @srmish-jfrog, you seem to be one of the authors; would it be possible to reword the blog post to use for example the term "insecure" instead of "unsafe" (2 occurrences) to prevent any misunderstandings in the context of Rust?
@seanmonstar, if the values of SizeHint can indeed be influenced by a potential attacker, would it be possible to add warnings in the documentation to clarify this and to prevent users from blindly trusting the value?
Though it appears this discussion about to_bytes might be a bit obsolete (at least for the upcoming 1.0 version) because that function does not exist anymore since commit 0888623d3764e887706d4e38f82f0fb57c50bd1a (I am not sure though if a similar vulnerability still exists in the new code).
But maybe it would be useful nonetheless to create an advisory to warn any users who might not be aware of this issue and who cannot upgrade to the upcoming 1.0 version directly?
Just as side note, the examples shown in https://github.com/hyperium/hyperium.github.io are currently also using to_bytes without warning the user about the consequences.

Sure thing. I've changed "unsafe" to "insecure", I don't want to confuse
anyone. We did mention many times that the security impact is DoS though so
I don't think someone thinks its UB
On Sun, Jan 8, 2023 at 10:59 PM Marcono1234 @.***>
wrote:

it is essentially the same as Read::read_to_end
If I understand the blog post correctly the main issue is that hyper's
to_bytes blindly trusts the attacker-provided Content-Length header. That
would be much severe than the Read::read_to_end case. For read_to_end an
attacker would actually have to provide MBs or GBs of data to perform a
denial of service attack, whereas for hyper's to_bytes an attacker would
merely have to claim that the body is multiple MBs or GBs large and
to_bytes will happily try to allocate that memory, even if the attacker
in the end only sends a few KBs in total.
They even go as far as claiming that function is unsafe (yes, with a
code block) while in reality, nothing about this function can trigger UB.
It looks like (even in the first archived version of the blog post
https://web.archive.org/web/20230105153358/https://jfrog.com/blog/watch-out-for-dos-when-using-rusts-popular-hyper-package/)
"unsafe" is only colored red but not formatted as code. Though in the
context of Rust, using the term "unsafe" is nonetheless quite misleading.
@srmish-jfrog https://github.com/srmish-jfrog, you seem to be one of
the authors; would it be possible to reword the blog post to use for
example the term "insecure" instead of "unsafe" (2 occurrences) to prevent
any misunderstandings in the context of Rust?
@seanmonstar https://github.com/seanmonstar, if the values of SizeHint
can indeed be influenced by a potential attacker, would it be possible to
add warnings in the documentation to clarify this and to prevent users from
blindly trusting the value?
Though it appears this discussion about to_bytes might be a bit obsolete
(at least for the upcoming 1.0 version) because that function does not
exist anymore since commit 0888623
https://github.com/hyperium/hyper/commit/0888623d3764e887706d4e38f82f0fb57c50bd1a
(I am not sure though if a similar vulnerability still exists in the new
code).
But maybe it would be useful nonetheless to create an advisory to warn any
users who might not be aware of this issue and who cannot upgrade to the
upcoming 1.0 version directly?
Just as side note, the examples shown in
https://github.com/hyperium/hyperium.github.io are currently also using
to_bytes without warning the user about the consequences.
—
Reply to this email directly, view it on GitHub
https://github.com/hyperium/hyper/issues/3111#issuecomment-1374925934,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AV6LQLPRJ7JBMANGPAQRDFTWRMTD5ANCNFSM6AAAAAATUHUOXA
.
You are receiving this because you were mentioned.Message ID:
@.***>

Given how simple the solution is on user-land code, I would recommend to add a size_limit parameter on the function.

For read_to_end an attacker would actually have to provide MBs or GBs of data to perform a denial of service attack, whereas for hyper's to_bytes an attacker would merely have to claim that the body is multiple MBs or GBs large and to_bytes will happily try to allocate that memory, even if the attacker in the end only sends a few KBs in total.

I see what you're getting at now, that specific part is indeed closer to Iterator::collect::<Vec<_>>, which will preallocate based on the iterator's size_hint, which could come from anywhere (even network things). I've pushed #3115 to allocate less. But the greater issue would still exist if the source did send a large body and no limit check was done.

SizeHint [..] to prevent users from blindly trusting the value?

I don't think it's an issue of blindly trusting it. hyper does enforce that no more than content-length bytes are read inside it's protocol state machine. The issue seems to be that allocating all of it immediately allows a slow client to waste memory.

it appears this discussion about to_bytes might be a bit obsolete (at least for the upcoming 1.0 version) because that function does not exist anymore

Correct, we removed it from hyper core. In http_body_util::BodyExt, this is two new methods, limit(max), and collect(). It does seem cleaner to do body.limit(SOME_MAX).collect(), but I can also get behind the argument that people will forget to do so, and so perhaps a max limit is added to the collect method itself.

create an advisory to warn any users

I don't think an advisory is warranted. There is a lot of prior art doing the same thing (otherwise read_to_end, Iterator::collect, etc should have the same), and documentation to be careful (I realize people don't read). And it's only an issue if you've done so without a limit check, and on an untrusted source.
I am considering adding a to_bytes_with_max(body, max) function, and possibly marking to_bytes deprecated.

I think the Limited struct has handle that.

Hi! I'm trying to replace one usage of hyper::body::to_bytes in my project. But I cannot find the limit method mentioned above via search.
Is there any working example? Do I need to implement a limited alternative by myself?

For 0.14, Limited is here: https://docs.rs/http-body/0.4.*/http_body/struct.Limited.html

Another article
https://jfrog.com/blog/watch-out-for-dos-when-using-rusts-popular-hyper-package

which will preallocate based on the iterator's size_hint, which could come from anywhere (even network things)

Out of curiosity, do you actually know of a specific library where the size hint of an iterator is indeed based on untrusted data from the network (without any default upper limit)? If so, then that is bound to lead to vulnerable code too.
It is not necessarily that people don't read, but rather that code is spread around for example on Stack Overflow or in examples (as it is the case for hyper, as mentioned above) and the warning from the documentation is not repeated (or maybe it was only added to the documentation at a later point). So unless the naming of the API makes it clear that it must not be used for untrusted data or prevents insecure usage in the first place it is likely that it will be used in insecure ways.

This function was removed in v1, and exists a helper in http-body-util next to the limit() helper.