Dockerized deployment

Proposed solution

OpenRefine runs on baremetal machine, seeing the current trends having a dockerised deployment is no longer considered a feature yet a basic requirement from any well-used project. Proposal to have a Dockerfile & containerised way to run openrefine on user local system. As well as setup a dockerhub repo to push latest images for openrefine.
Additional context

This thread is to initialise a discussion on having containerised deployments for OpenRefine.
Would love to get feedback from the community, on the idea.

Added Dockerfile and GitHub CI. Getting there! :)
https://github.com/OpenRefine/containers/pull/3

Hello, I'm getting error messages when trying to run the docker-compose.yml file (docker-compose up -d).
Unresolveable build extension: Plugin org.sonatype.plugins:nexus-staging-maven-plugin:1.6.13 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.sonatype.plugins:nexus-staging-maven-plugin:jar:1.6.13
Any idea of what is going on?
Thanks
`$ docker-compose up -d
[+] Building 48.5s (20/26)                                                                                docker:default
=> [openrefine internal] load build definition from Dockerfile                                                                        0.1s
=> => transferring dockerfile: 1.47kB                                                                                0.0s
=> [openrefine internal] load .dockerignore                                                                                0.1s
=> => transferring context: 2B                                                                                0.0s
=> [openrefine internal] load metadata for registry.opensuse.org/opensuse/bci/openjdk:latest                                          3.7s
=> [openrefine internal] load metadata for registry.opensuse.org/opensuse/bci/nodejs:latest                                           3.6s
=> [openrefine internal] load metadata for registry.opensuse.org/opensuse/bci/openjdk-devel:latest                                    3.7s
=> [openrefine internal] load metadata for registry.opensuse.org/opensuse/git:latest                                                  3.6s
=> [openrefine stage-3 1/8] FROM registry.opensuse.org/opensuse/bci/openjdk:latest@sha256:ec56dcc7c24ebcd50b1741ebc2af06e969c485382  38.1s
=> => resolve registry.opensuse.org/opensuse/bci/openjdk:latest@sha256:ec56dcc7c24ebcd50b1741ebc2af06e969c485382f6d11f7e47242bd63158  0.1s
=> => sha256:ec56dcc7c24ebcd50b1741ebc2af06e969c485382f6d11f7e47242bd6315824c 1.42kB / 1.42kB                                         0.0s
=> => sha256:ae8fb7f89475c84a346036a703d4644b1f0fd52eef67c38dd5f7fcc1f0f2b8ca 755B / 755B                                             0.0s
=> => sha256:c783d33ac11799a2f79dbde6c8e987ae349330d4ea287b26a4e7202de83e45b5 13.98kB / 13.98kB                                       0.0s
=> => sha256:0f0de3fafa7ab7408b98c033da6b964db79b861031356910b07f32e470d02008 49.21MB / 49.21MB                                      19.3s
=> => sha256:e701d34700d694820acafc29eea17fa6bdcafa4fdcfbdf03c42db1c8151964ed 73.11MB / 73.11MB                                      35.9s
=> => extracting sha256:0f0de3fafa7ab7408b98c033da6b964db79b861031356910b07f32e470d02008                                              1.6s
=> => extracting sha256:e701d34700d694820acafc29eea17fa6bdcafa4fdcfbdf03c42db1c8151964ed                                              1.8s
=> [openrefine internal] load build context                                                                                0.1s
=> => transferring context: 1.90kB                                                                                0.0s
=> [openrefine backend 1/4] FROM registry.opensuse.org/opensuse/bci/openjdk-devel:latest@sha256:b6be812c5f0d8a9f7f7f62edc02de04485e  38.5s
=> => resolve registry.opensuse.org/opensuse/bci/openjdk-devel:latest@sha256:b6be812c5f0d8a9f7f7f62edc02de04485efeabf6eab9474aa1a1fc  0.2s
=> => sha256:0f0de3fafa7ab7408b98c033da6b964db79b861031356910b07f32e470d02008 49.21MB / 49.21MB                                      19.3s
=> => sha256:e701d34700d694820acafc29eea17fa6bdcafa4fdcfbdf03c42db1c8151964ed 73.11MB / 73.11MB                                      35.8s
=> => sha256:c89052aabd23ae5d0b5ac28b032febd5825584a416fe96d29170372f1ebaf5ca 30.54MB / 30.54MB                                      22.6s
=> => sha256:b6be812c5f0d8a9f7f7f62edc02de04485efeabf6eab9474aa1a1fce0b79a112 1.42kB / 1.42kB                                         0.0s
=> => sha256:83319043cbd3d2fc92d8ea1498800b1a45a0900438199ec21f52978a72092cab 970B / 970B                                             0.0s
=> => sha256:383611c1dc5ba2df8ea91b2dba587ae3951cfa8584435d4dbf84a67f877b64b0 23.23kB / 23.23kB                                       0.0s
=> => extracting sha256:0f0de3fafa7ab7408b98c033da6b964db79b861031356910b07f32e470d02008                                              1.6s
=> => extracting sha256:e701d34700d694820acafc29eea17fa6bdcafa4fdcfbdf03c42db1c8151964ed                                              8.5s
=> => extracting sha256:c89052aabd23ae5d0b5ac28b032febd5825584a416fe96d29170372f1ebaf5ca                                              0.4s
=> [openrefine frontend 1/4] FROM registry.opensuse.org/opensuse/bci/nodejs:latest@sha256:f37491fe3c9b2cfce9b4df2ccce7681481a2c77b2  40.7s
=> => resolve registry.opensuse.org/opensuse/bci/nodejs:latest@sha256:f37491fe3c9b2cfce9b4df2ccce7681481a2c77b2d5d0962565b03b3ee12c4  0.2s
=> => sha256:f37491fe3c9b2cfce9b4df2ccce7681481a2c77b2d5d0962565b03b3ee12c459 1.76kB / 1.76kB                                         0.0s
=> => sha256:fd5222b70cedbc4be3c5a62908c2f23b92824274f3a088e3db3fade2416e8f83 755B / 755B                                             0.0s
=> => sha256:21a604445140cd704b06b8dfc5fe5cc9460ddb40a371454091cc72a578dbe800 13.00kB / 13.00kB                                       0.0s
=> => sha256:0f0de3fafa7ab7408b98c033da6b964db79b861031356910b07f32e470d02008 49.21MB / 49.21MB                                      19.3s
=> => extracting sha256:0f0de3fafa7ab7408b98c033da6b964db79b861031356910b07f32e470d02008                                              1.6s
=> => sha256:7241ff6d95ea4e03977b59fc74783bb3412c0cd48ca142dbda879cf2cf0a4756 45.47MB / 45.47MB                                      38.6s
=> => extracting sha256:7241ff6d95ea4e03977b59fc74783bb3412c0cd48ca142dbda879cf2cf0a4756                                              1.6s
=> [openrefine sources 1/3] FROM registry.opensuse.org/opensuse/git:latest@sha256:92f3f08fd3e3bcef13303a4726de1c982b48130d4cc9a0223  32.3s
=> => resolve registry.opensuse.org/opensuse/git:latest@sha256:92f3f08fd3e3bcef13303a4726de1c982b48130d4cc9a022335650dec79555ec       0.2s
=> => sha256:92f3f08fd3e3bcef13303a4726de1c982b48130d4cc9a022335650dec79555ec 1.76kB / 1.76kB                                         0.0s
=> => sha256:8ec17574fafc1c5f6a5e82c12621a74363b93afd47afd2fb8c0eec01658eb792 754B / 754B                                             0.0s
=> => sha256:e8e64b3d733963bfe91eb3831a3a97614efb155db8f60322a43c55c570e418e6 3.77kB / 3.77kB                                         0.0s
=> => sha256:5b61929b5ce78ddbce29263e8596d7498f06da551e107a671317f81d08c930a7 11.40MB / 11.40MB                                      24.5s
=> => sha256:13c548a39054c35d0829bef92346fffe706b9c72854c71db44e015af40bda1f3 18.57MB / 18.57MB                                      31.6s
=> => extracting sha256:5b61929b5ce78ddbce29263e8596d7498f06da551e107a671317f81d08c930a7                                              0.7s
=> => extracting sha256:13c548a39054c35d0829bef92346fffe706b9c72854c71db44e015af40bda1f3                                              0.3s
=> [openrefine sources 2/3] WORKDIR /opt/openrefine                                                                                0.1s
=> [openrefine sources 3/3] RUN git clone https://github.com/OpenRefine/OpenRefine.git --depth 1 --branch master .                    5.1s
=> CANCELED [openrefine stage-3 2/8] RUN zypper --non-interactive install gettext-tools which                                         6.5s
=> [openrefine backend 2/4] WORKDIR /opt/openrefine                                                                                0.1s
=> [openrefine backend 3/4] COPY --from=sources /opt/openrefine .                                                                     0.2s
=> ERROR [openrefine backend 4/4] RUN --mount=type=cache,target=/root/.m2     mvn -B process-resources compile test-compile           5.7s
=> [openrefine frontend 2/4] WORKDIR /opt/openrefine/main/webapp                                                                      0.2s
=> [openrefine frontend 3/4] COPY --from=sources /opt/openrefine/main/webapp .                                                        0.1s
=> CANCELED [openrefine frontend 4/4] RUN --mount=type=cache,target=/root/.npm     npm install                                        3.6s

[openrefine backend 4/4] RUN --mount=type=cache,target=/root/.m2     mvn -B process-resources compile test-compile:
1.349 [INFO] Scanning for projects...
1.605 [INFO] Downloading from jenkins-repo: https://repo.jenkins-ci.org/releases/org/sonatype/plugins/nexus-staging-maven-plugin/1.6.13/nexus-staging-maven-plugin-1.6.13.pom
5.285 [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/sonatype/plugins/nexus-staging-maven-plugin/1.6.13/nexus-staging-maven-plugin-1.6.13.pom
5.656 [ERROR] [ERROR] Some problems were encountered while processing the POMs:
5.656 [ERROR] Unresolveable build extension: Plugin org.sonatype.plugins:nexus-staging-maven-plugin:1.6.13 or one of its dependencies could
not be resolved: Failed to read artifact descriptor for org.sonatype.plugins:nexus-staging-maven-plugin:jar:1.6.13 @
5.656  @
5.657 [ERROR] The build could not read 1 project -> [Help 1]
5.657 [ERROR]
5.657 [ERROR]   The project org.openrefine:openrefine:3.8-SNAPSHOT (/opt/openrefine/pom.xml) has 1 error
5.657 [ERROR]     Unresolveable build extension: Plugin org.sonatype.plugins:nexus-staging-maven-plugin:1.6.13 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.sonatype.plugins:nexus-staging-maven-plugin:jar:1.6.13: The following artifacts could not be resolved: org.sonatype.plugins:nexus-staging-maven-plugin:pom:1.6.13 (absent): Could not transfer artifact org.sonatype.plugins:nexus-staging-maven-plugin:pom:1.6.13 from/to jenkins-repo (https://repo.jenkins-ci.org/releases/): PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 2]
5.657 [ERROR]
5.657 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
5.657 [ERROR] Re-run Maven using the -X switch to enable full debug logging.
5.657 [ERROR]
5.657 [ERROR] For more information about the errors and possible solutions, please read the following articles:
5.657 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
5.657 [ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/PluginManagerException

failed to solve: process "/bin/sh -c mvn -B process-resources compile test-compile" did not complete successfully: exit code: 1`

Hi, I get the following log error message when trying to run the docker compose file.
Any idea what is going wrong?
Thanks
2024-01-23 11:30:17 openrefine-1  | + template=refine.ini.template
2024-01-23 11:30:17 openrefine-1  | + '[' -f refine.ini.template ']'
2024-01-23 11:30:17 openrefine-1  | + envsubst
2024-01-23 11:30:17 openrefine-1  | + exec /opt/openrefine/refine -i <IP_ADDRESS> -d /workspace run
2024-01-23 11:30:17 openrefine-1  | Using refine.ini for configuration
2024-01-23 11:30:17 openrefine-1  | No host specified while binding to interface <IP_ADDRESS>, guessing localhost.
2024-01-23 11:30:17 openrefine-1  | -------------------------------------------------------------------------------------------------
2024-01-23 11:30:17 openrefine-1  | You have 31939M of free memory.
 of memory.11:30:17 openrefine-1  | Your current configuration is set to use 2000M
2024-01-23 11:30:17 openrefine-1  | OpenRefine can run better when given more memory. Read our FAQ on how to allocate more memory here:
2024-01-23 11:30:17 openrefine-1  | https://openrefine.org/docs/manual/installing#increasing-memory-allocation
2024-01-23 11:30:17 openrefine-1  | -------------------------------------------------------------------------------------------------
2024-01-23 11:30:17 openrefine-1  |
2024-01-23 11:30:17 openrefine-1  | Invalid initial heap size: -Xms2000M
2024-01-23 11:30:17 openrefine-1  | Error: Could not create the Java Virtual Machine.
2024-01-23 11:30:17 openrefine-1  | Error: A fatal exception has occurred. Program will exit.

@heryk I cannot reproduce; are you on a 32 bit system?

I updated https://github.com/ninanor/openrefine. I have been using it in production for a while, and updated through various versions. Images for 3.8, 3.8.2 and master are published on the GitHub Registry.
I do not see the images being published here, which would be nice.

Hi @frafra,
I don't know what could prevent the image hosted in this repository from being publicly shared. I don't have experience with publishing containers on GitHub. Would you like to be part of the OpenRefine org so that you can apply any necessary fixes to this repository?

Sure @wetneb, I can do it and if needed to be a maintainer of this repository.

Great! I've sent you an invite as admin of this repository and another one to be member of the OpenRefine org.

I cannot change the visibility of the image because it is prevented by the settings at the organization level:

Could you please check that? I think you should be able to change it under https://github.com/organizations/OpenRefine/settings/packages

Indeed! I have just enabled Public and Internal packages.

Problem solved. I think we can close this issue then.


Fahrenheit scale option not retained in temperature sensor device

The Fahrenheit scale option value is not retained in temperature sensor devices. Attempts to have Alexa interact with temperature sensor devices that use the Fahrenheit scale produce "Doesn't support that" response from Alexa. To reproduce the issue:

Add a device by clicking the 'Add Device' button at https://red.cb-net.co.uk/devices
Give the new device a name and description; select the 'Temperature Sensor' checkbox and choose Scale Option '°Farenheit' [note: spelling should be corrected to '°Fahrenheit']; click Save
Click the 'Edit' button next to the newly-created device. The Fahrenheit setting is missing.

Temporary workaround: use Celsius

Sorry...posted to wrong repository.


Rename Monolog\DateTimeImmutable to something else, e.g. JsonSerializableDateTimeImmutable

First of all, thanks for this amazing package 💙
So this is something that I'm bothered by for a long time. Every time I want to import DateTimeImmutable, PHPStorm asks me which one I want to import:

Even though the version of Monolog is namespaced, it's still annoying to think which one to pick.
I want to propose the following:

Rename Monolog\DateTimeImmutable to something different, for example: Monolog\JsonSerializableDateTimeImmutable
Keep the old Monolog\DateTimeImmutable as an alias for Monolog\JsonSerializableDateTimeImmutable, and mark it as deprecated.
In the next major, remove Monolog\DateTimeImmutable

Or if there is a better way to do this, I'm all ears. I would be happy to create the PR.
/cc @Seldaek

Yeah i wonder if marking it internal would help? Can you try that locally maybe? There's a minor use case of passing it directly to addRecord but i dont think many people do that..
Renaming would be cleaner but a longer term solution.
Not sure what else is possible.

And did you try if an alias helps? Because I'm guessing it would also still suggest the alias, if so that'd only be fixed in 4.0

The alias won't hide it :(
So it will be a long time before I can enjoy it, but I still think it's good to prepare this for 4.0, so I created the PR:

https://github.com/Seldaek/monolog/pull/1928


Support passing headers to download if Bazel supports it

Rather than falling back to curl let's actually pass the headers to the native Bazel downloader if we're running a version of Bazel that supports them (i.e. >= 7.1.0). I had to bring the bazel_features repo to detect this.
Note that I've kept support for curl rather than introducing the breaking change (as #562 discusses) so that we can start taking advantage of it without breaking for people still on older versions of Bazel.

This is already landed on 2.x via https://github.com/bazel-contrib/rules_oci/pull/528
See https://github.com/bazel-contrib/rules_oci/blob/2.x/oci/private/pull.bzl

ah oops I didn't realize there was a 2.x branch...


Enhance color scheme testing

I'd appreciate the develop branch of @gerardroche being merged into master here.
Compare: https://github.com/randy3k/UnitTesting/compare/master...gerardroche:develop

This is for me to keep track of events...

Awesome. I will look into it.

I intend on sending a PR once the feature the stable, which it pretty much is at this point. I'll send a  PR. I think it can be added as is, it gets the job done.

We also need to extend the appveyor script.

Appveyor wasn't a priority for me. I also know little to nothing of PowerShell. I'm not sure when I'd get time to add support for appveyor, but I think it's something that can be added later.

Does color-scheme-unit" run on Windows? I am happy to modify the appveyor script of Windows is supported.

@randy3k @gerardroche Thanks to both of you.

Yes it runs on windows. Appveyor support would be great. I'll try send a PR later today.


LLVM, clang, and lldb 3.6

Clang required a minor patch to fix a bug in their build scripts when operating in standalone mode, which should probably be upstreamed. My nixos machine is on the stable channel, so these haven't been tested on master yet (and I had to test without the stdenv.cc.libc business at clang.nix:20), but that aside things seem to work
I omitted lld, dragonegg, and polly as I don't use them.

This clang actually seems to have issues on my stable-channel nixos. I strongly suspect this is due to changes in nixpkgs since stable, however. Looks like travis is broken on master, so can someone test it?

Will test on master.

libc++{,-abi} fail because clang is unable to build anything. Building int main () { return 0; } fails to link with:

"/nix/store/3yw32gs5mwp2nlarqnqrnjrhpkm5a4qp-clang-wrapper-3.6.0/bin/ld" --eh-frame-hdr -m elf_x86_64 -o tst /nix/store/93zfs0zzndi7pkjkjxawlafdj8m90kg5-glibc-2.20/lib/crt1.o /nix/store/93zfs0zzndi7pkjkjxawlafdj8m90kg5-glibc-2.20/lib/crti.o crtbegin.o -L/nix/store/93zfs0zzndi7pkjkjxawlafdj8m90kg5-glibc-2.20/lib -L/nix/store/qbsyxraq0gixjj6k5cacn7n0m0ylynr8-clang-3.6.0/bin/../lib -dynamic-linker /nix/store/93zfs0zzndi7pkjkjxawlafdj8m90kg5-glibc-2.20/lib/ld-linux-x86-64.so.2 /tmp/test-850583.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed crtend.o /nix/store/93zfs0zzndi7pkjkjxawlafdj8m90kg5-glibc-2.20/lib/crtn.o
/nix/store/lcv1lkgmxdhpiw7b9k25xr9yfpxpilzc-binutils-2.23.1/bin/ld: cannot find crtbegin.o: No such file or directory
/nix/store/lcv1lkgmxdhpiw7b9k25xr9yfpxpilzc-binutils-2.23.1/bin/ld: cannot find -lgcc
/nix/store/lcv1lkgmxdhpiw7b9k25xr9yfpxpilzc-binutils-2.23.1/bin/ld: cannot find -lgcc_s

It's unclear whether this is an error of not providing the right linker search paths or clang passing unnecessary -l flags.

Note that these clang problems are already on master with 3.5. http://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.libcxxabi.x86_64-linux
Superficially, I don't see why clang should (try to) link stuff against libs from gcc.

See also https://github.com/NixOS/nixpkgs/issues/6449
It would be great if someone could solve clang linker problem.
Currently, no project can be successfully built with clang on NixOS.

May have found a fix, testing now.

@Ralith Can I get collab rights to your fork? I'm testing the fix on 3.5 now and if it works I'd like to add it to this PR (and possibly add lld, dragonegg, and polly)

Ah actually I'll just open a PR to your branch if it's working, gotta embrace the dvcs

Yeah, it doesn't seem like clang should need gcc, especially since we have a gcc-less clang on Mac OS.

Confirmed on #llvm (on OFTC) that the gcc dep is needed on Linux and will be for the foreseeable future, for crtbegin at least and for libgcc when not using compiler-rt

Dammit :smile:. We're using compiler-rt on darwin, so I assume we could at least whittle the dependency down to just crtbegin, right?

Patches welcome :tongue: Not a priority as long as we have the gcc dep anyway, libgcc is all statically compiled tightly-optimized routines

Our llvm seems to use compiler-rt, but I guess it isn't a priority, as on Linux you typically have some other references to gcc as well.

Tested this on top of #6688 and all seems well. I'll give some time for people to review that, and if all looks good I'll merge it and this into staging.

Merged into staging.

3.6.1 has just been released. I think that could be a nice default for the upcoming release. As it's just maintenance update, I expect just bumping version+hash should be enough. Are you interested in it, or do you prefer to wait with master for 3.7? (In that case I'd probably try myself in order to have less bugs in GPU drivers for the release.)

All in favor of the bump, but don't have time in the next month or so to test it out myself.

I concur that it should be a simple matter. I should be able to get to it some time this week; I certainly don't want us on an outdated minor release for the next stable nixos. What's the timeframe necessary for that?

http://thread.gmane.org/gmane.linux.distributions.nixos/17102 says a week. @domenkozar, how flexible do you expect to be here?

@shlevy @Ralith In general I'll branch off on Monday, but I'm flexible merging work a few days after the branch was made.

It was there on master 386575c0c2, I just didn't notice.


Document Python API?

I could be wrong, but I haven't been able to find documentation for the command itself. Either for the command line API nor for the Python API that looks like it might be coming in 3.0.
Am I blind? If not, this would be great to get. If so, my apologies!
Looks like a great project.

You can run ocrmypdf --help in 3.0, which prints documentation from main.py.
I believe it's ./OCRmyPDF.sh -h for 2.x.
There isn't really a Python API as yet in 3.0. To be precise, it's not set up so that you can import the ocrmypdf package and then write a Python script for your own custom pipeline. If you want to do something custom, you'd have to edit the ocrmypdf source files yourself. In future releases I will probably move the code in a direction that makes it unnecessary.
For now, I set it up as an importable package is that the Python packaging machinery is for ease of distribution: pip install ocrmypdf is all it should take for someone who has previously installed 2.x.


How to do recurring payments ?

recurring payments are not yet supported

Hi, I am not able to see any documentation for recurring payments, if you have any information sources and I will also need your merchant staging credentials. Let's make this conversation private beyond this.
Connect with me on Gitter.
https://gitter.im/anandsiddharth

Has there been any progress on this as it is something we are interested in to for a project. Thanks

No there hasn't been, I don't see any reference to recurring payments. If you have please provide.

I’m going to have to develop one myself then. As will require in couple of months
Kind Regards
Joel Ireland

From: Anand Siddharth<EMAIL_ADDRESS>Sent: Thursday, November 29, 2018 11:00 PM
To: anandsiddharth/laravel-paytm-wallet
Cc: Joel Ireland; Comment
Subject: Re: [anandsiddharth/laravel-paytm-wallet] How to do recurring payments ? (#20)
No there hasn't been, I don't see any reference to recurring payments. If you have please provide.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/anandsiddharth/laravel-paytm-wallet/issues/20#issuecomment-442774978, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AfksqxCN0X9JMrQvKZGvPWwC1J7IyQo1ks5uz7AdgaJpZM4XjN3k.

No! Like I said, I didn't find any reference or docs for recurring payments.

This link explains use. Full dev api only available for merchants. https://business.paytm.com/developers-api/integration/recurring-payment/overview

You can send those to gitter.im

Hey mate trying to get ahold of you on gitterim but wont let me direct chat. I have a pdf with all the documentation on recurring payments for you :)

is there any update on recurring payment support?

@kanu786 and others
Recurring payments documentation is confidential to only registered merchants and confidential for them so hence can't be implemented in this package. If you are one of those merchants, please fork and extend and make use of it privately.


Won't paste into payment fields on boostmobile.com

Hello. I have appreciated your extension on many sites but for some reason I cannot get it to work when trying to paste my debit card info into any of the payment fields on the boostmobile site. I tried deleting all of the 'exclude' addresses in options & it still doesn't work. I don't know anything about java script regular expressions so maybe I just don't know the proper thing to add to the 'include' section in options.
Thank you for your time & help and of course the extension. Blessings to you & yours! Amanda

TL;DR:
It sounds like this site isn't blocking the paste event, instead is doing something else to prevent pasting of text. Try right-clicking on the form field, and then select "Paste" from there.
Longer version:
When you attempt to paste text into a text box in a browser, there's a specific event called paste thats triggered, which allows the creators of websites to hook into those events if they so choose. This extension essentially prevents the website's JavaScript code from receiving those paste events, that's because a common reason for a website to hook into the paste event is to block it. Instead the extension hooks into the event and tells the browser to perform it's normal action.
Unfortunately, there are other ways that website creators can use JavaScript to interfere with how users interact with their site; there are other events that they can hook into that could effectively block pasting of text. And, there's no extension that can fix all the ways that a website creator can interfere with user interaction and also keep the website in question working properly.
It sounds like this site isn't blocking the paste event, instead is doing something else to prevent pasting of text. Try right-clicking on the form field, and then select "Paste" from there. Even if you can paste the text in, there's no guarantee that the site will behave normally.
I recently made a car rental reservation with https://www.avis.com, and I was able to paste my credit card number into their form field, but whenever I submitted the form, it always claimed "Invalid card number." It wasn't until I typed out the credit card number digit-by-digit that it accepted my credit card number as valid. I didn't go diving into their code to see what they were doing exactly, but it seems they were hooking into one of the key press events, and as each number was pressed they were storing that number somewhere else in addition to the form field itself. Then, when the form was submitted, they then used the data from this other location to validate the card number. Which is a really weird/stupid way of doing things, but that's what their programmers have done, and there's no way for me to fix their code as an extension author. Anyway, this is a long story to just say that there's no browser extension that can fix a poorly built website.

Ty I appreciate your response. I've tried right-clicking and keyboard commands to no avail. Until recently I could always click on my clipboard manager and select 'paste to active window' and get around it that way but not anymore.
Could you tell me the proper javascript regular expression to type to add the boostmobile site to the 'Include URL Patterns' list? I left the default one: */ and added: */https://boostmobile.com. Should I try to add "https://myaccount.boostmobile.com/" since that is the actual url where I actually enter my payment information?
Thank you again. Be blessed! Amanda

If you still have the default value (.*) in the "Include URL Patterns", then you just want to make sure you don't have anything that would match the URL in the "Exclude URL Patterns". So, you don't want .* nor anything with boostmobile as an exclude pattern.
I don't have a boostmobile account, so I can't get to the page where you are having trouble, but it seems like they are being very controlling of user interaction on their website via JavaScript, and this extension is not going to be able to fix that.

Ok thank you. I did try it and they do have it blocked. This being the only site so far that I've had this issue with is probably not going to kill me. I will just have to type it out. I appreciate your help. Be blessed! Amanda
  From: Jacob Swanner<EMAIL_ADDRESS>
To: jswanner/DontFuckWithPaste<EMAIL_ADDRESS>Cc: miraclemandi<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Sent: Thursday, October 27, 2016 4:06 PM
Subject: Re: [jswanner/DontFuckWithPaste] Won't paste into payment fields on boostmobile.com (#17)
If you still have the default value (.) in the "Include URL Patterns", then you just want to make sure you don't have anything that would match the URL in the "Exclude URL Patterns". So, you don't want . nor anything with boostmobile as an exclude pattern.I don't have a boostmobile account, so I can't get to the page where you are having trouble, but it seems like they are being very controlling of user interaction on their website via JavaScript, and this extension is not going to be able to fix that.—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Python release instructions

Adds python release instructions to the documentation.
Reformat the changelog to be included in the sphinx docs.
Bumped the version number.

I see that this PR also includes the update of the schema paths from 0.6.0a9 to 0.6.0a10. Are there merge timing implications to this? Other than that, everything looks copacetic. +1

close #753

@dcolligan let's put the maven release instructions into a separate PR.  +1


Update the ignore files to ensure builds work properly.

this whole thing needs moving into modulesync_config too plz


incorrect link error for "Ensure Azure File Sync has access to the storage account"

3 reference hyperlinks for "[Ensure Azure File Sync has access to the storage account]"
Points to an unrelated file sync error code page:
(https://learn.microsoft.com/en-us/azure/storage/file-sync/file-sync-troubleshoot-sync-errors?tabs=portal1,portal#troubleshoot-rbac))."
it appears it should just scroll to the page page section that covers the topic instead of redirecting to an error code page.

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 534b3ef3-5664-973e-b146-8c1f960bf536
Version Independent ID: 57c3ce18-2857-8ed0-10a5-5061d391a079
Content: Frequently asked questions (FAQ) for Azure Files
Content Source: articles/storage/files/storage-files-faq.md
Service: storage
Sub-service: files
GitHub Login: @khdownie
Microsoft Alias: kendownie

@jsimsmsft
Thanks for your feedback! We will investigate and update as appropriate.

@khdownie
Can you please check and add correction on this doc update request as applicable.

Fixed, will merge with the next publishing pass.

The fix didn't work for some reason. I will try again today. Sorry about that.

Fixed: https://learn.microsoft.com/en-us/azure/storage/files/storage-files-faq
#please-close


fix: add go-sdk package groups

CC @pmuir @craicoverflow

@pmuir Repository is missing team setup.

Fixed @wtrocki


Structuring Metafields and Metaobjects

Hi, consequently I love how fast this headless Shopify solution is. It's such a great way to jumpstart into entering a market using tools that offers more features and options. One thing I don't understand though, is trying to grab both metafields and metaobjects from the API. I tried to make sense of it but always came up short.
I was wondering if you can nudge me in the right direction, and which files need to be changed?

This sounds more like a Storefront API question than an issue with the repo.
Read these docs here, the answers are on a silver platter.


Minor improvements

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

Comparison is base (dcee4ec) 100.00% compared to head (013f5bf) 100.00%.

:exclamation: Current head 013f5bf differs from pull request most recent head 00756ac. Consider uploading reports for the commit 00756ac to get more accurate results

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #385   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           61        61
  Lines         2159      2159
  Branches       381       381
=========================================
  Hits          2159      2159

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


Suggestion: Comment differences with Thunder Client

Given that this extension appears to be a clone of Thunder Client, it would help to clearly show the differences (if any) and the main reason to pick this extension.
Something like this:

It's completely FREE unlike Thunder Client, which has price tiers.

It took me a bit of scouring through reviews to determine that.
Also would be nice to open-source this.

Ok will try.


Validate model that doesn't have fields

Environment

Ember Version:
Ember CLI Version: 2.16
Ember CP Validations Version: > 3.0

Hi
i am using cp validation for validating my model
Right now i have
const validations = buildValidations({
name1: validator('presence', {
description: 'name',
presence: true,
ignoreBlank: true,
message: 'name cannot be left blank'
}),
name2: validator('presence', {
description: 'name',
presence: true,
ignoreBlank: true,
message: 'name cannot be left blank'
}),
})
and my model is having
export default Model.extend(validations , {
name1: attr('number'),
});
I have only name1 in my model but cp validation not validating my model

@ankitmadhwani24 can you recreate your issue in an Ember Twiddle?

HI
please check
https://ember-twiddle.com/741952a5d8f7558e41560f49cfafad68?openFiles=templates.application.hbs%2C
i have only one attribute in my model but and i have 2 fields in
const validation
and in my {{v-get helper}} i m getting false
please tell what i m doing wrong

@ankitmadhwani24 you should write validation in controller or component for fields which don't exist in the Ember model. Working twiddle. Kindly check it and let me know.
and you should use model=this for name2 field in your hbs

@rinoldsimon Thanks Its work for me
Thanks a lot


Remove extra babel transform when upstream fixes land

Babel's regenerator implementation has a bug around nested arrow functions. So we added the arrow function transform to Babel so that the regenerator wouldn't encounter nested arrow functions. Once this PR lands, that bug will be fixed in Babel, so we can remove the redundant arrow transform.

We also added the class transform because async functions don't support super via babel: https://github.com/babel/babel/issues/3930

The PR mentioned here has landed, so this is ready to be fixed

Closing these out since they belong in denali-babel.

Also, the class transform mentioned above has already been removed from denali-babel. The mentioned bug has not been fixed, but Babel's ES5 transpiled classes can't interop with native ES6 classes, so it's a shortcoming Babel users will have to deal with.


Incorrect ordering of geofence events - Tile38 for historical analyses.

Hi,
I have a use case where I want to use my tile38 pipeline to also geofence historical data. In particular, there a about 100 geofences and 1 object that is moving in space with >100k locations a few seconds apart. When sending the locations sorted (by time) into tile38, then events are sent to a Kafka topic and polled by a consumer.
When analysing the events in Kafka, they are not ordered in time anymore, thus entering and exiting a geofence are not logical.
Reproduction
Set up 100 geofences (non overlapping) with DETECT inside
Send 10k + locations for same "agent" e.g.
await tile38.set('agents', agent_id).fields({"ts":ts }).point(lat, lon).exec()
SUBSCRIBE  to geofences.
Analyse "ts" of each event against the previous event -> they are not monotonously increasing
When I add a time.sleep(0.001) between each SET, then tile38 seems to be completing the geofencing operations in time before the next SET du to the concurrent nature. However for the same agent I would expect them to happen in the same order as the SET operations.
Operating System

OS: Mac OS
CPU: Apple M1
Version: Ventura
Container: Docker

Hi,
Here's a high level view of how Tile38 sends events.
Each SET command runs atomically.
For example, for the SET command:
> SET fleet truck POINT 33 -112

The server will effectively do:
server-lock          # lock server for one write command at a time
update-collection    # update the point in the fleet collection
evaluate-geofences   # see if any geofences are affected
queue-events         # write geofence events, if any, to the queue.db
signal-webhooks      # send webhook signals that new events are waiting
server-unlock        # unlock the server for the next write command

Each geofence webhooks, on the other hand, run asynchronously.
> SETHOOK geofence1 kafka://topic1 INTERSECTS fleet BOUNDS ...

server-lock
update-geofence-webook           # insert/update geofence1
start-geofence-webhook-manager   # runs in a background thread
server-unlock

Each webhook has is own background manager that is responsible for processing its own events.
All the manager does is wait for a signal that there are new events, and when there are, it sends them, in order, over its own network connection to  its assigned endpoint.
for-loop
  wait-for-signal   # wait for signal that there are pending events
  send-events       # send queued events over network

In short:
Server-wide, all event are queued in order with monotonically increasing timestamps.
Per each geofence webhook, all events are sent over its own network connection, in order.
There's no guarantee of order between different webhooks, even if they share the same endpoint, because each webhook sends events independently in the background.

When analysing the events in Kafka, they are not ordered in time anymore, thus entering and exiting a geofence are not logical.

The enter/exit ordering for a specific geofence should always be in order.
If this is not happening then I would like to look into it further, and reproduce on my side.

@tidwall , have you been able to find a clue?
i am noticing similar problem even with only 1 or 2 fences
12:16:18  -send 3 SETs
13:12:55  -send 16 SETs
14:15:40 - receive 1 event from the 3 SETs
14:17:03 - receive 1 event from  the 16 SETs
i am sending the SET commands  plus a GC at the end  each time with  Promise.all  as described in auto-pipelining from https://github.com/redis/node-redis
the same set of SET commands are sent to 2 instances of tile38, 1 with 1 fence, another with 2 fences
the delay are larger in the instance with 2 fences
both 2 instances of tile38 running on azure containerapp with 2cpu 4G memory

Please correct me if I am wrong, but I am pretty sure Promise.all does not guarantee that commands resolve in order. It only attempts to send both at the same time, but due to transit, both can resolve at different points in time.
await Promise.all([
   tile38.set('agents', agent_id).fields({"ts":ts }).point(lat, lon).exec(),
   tile38.set('agents', agent_id).fields({"ts":ts + 1 }).point(lat + 1, lon + 1).exec(),
   tile38.gc()
])

The GC might resolve earlier than the SET and the second SET might resolve earlier than the first.

the same set of SET commands are sent to 2 instances of tile38, 1 with 1 fence, another with 2 fences
the delay are larger in the instance with 2 fences

What do you mean here?
Can you please provide a reproducible code example?

your code snippet was what i did  but i actually haven't noticed ordering problem yet within 1 batch ( 1 call to Promise.all)
the problem was among different batches
i.e.
i got the inside/outside event from some SETs in a batch (earlier timestamp)  later  than another batch with a later timestamp
(see below, SET in batch A event triggered after batch C , and apart from the ordering, there are diff delays.... )
batch C -  38mins,  batch A - 2h42mins, batch B -1h37mins
12:13:19 - await Promise.all (multiple SETs)  A
13:19:17 - await Promise.all (multiple SETs)  B
14:01:25 - await Promise.all (multiple SETs)  C
14:39:38 - receive event from above ( 1 SET from the batch at 14:01:25) C
14:55:06 - receive event from above ( 1 SET from the batch at 12:13:19) A
14:56:43 - receive event from above ( 1 SET from the batch at 13:19:17) B
for the 2 instances, i was just trying out to reproduce problem with different number of fences where i noticed the delay is different

below is the code snippet
async function cmd_to_tile38(client, cmds) {
    await Promise.all ( cmds.map((c) => client.sendCommand(c)) )
}

async function process_points(.....) {
    const commands = []
    for ( const p of pts) {
      commands.push ( [
           'SET', 'key', 'id' , 'POINT', p.lat, p.lon,
      ])
    }
    await Promise.all( tile38clients.map( (t) => cmd_to_tile38( t, commands) ))
}

Please correct me if I am wrong, but I am pretty sure Promise.all does not guarantee that commands resolve in order. It only attempts to send both at the same time, but due to transit, both can resolve at different points in time.
await Promise.all([
   tile38.set('agents', agent_id).fields({"ts":ts }).point(lat, lon).exec(),
   tile38.set('agents', agent_id).fields({"ts":ts + 1 }).point(lat + 1, lon + 1).exec(),
   tile38.gc()
])

The GC might resolve earlier than the SET and the second SET might resolve earlier than the first.

the same set of SET commands are sent to 2 instances of tile38, 1 with 1 fence, another with 2 fences
the delay are larger in the instance with 2 fences

What do you mean here? Can you please provide a minimum viable reproducible code example?

and actually, when there is just a few IDs  (means less latlon points), it did work properly, so i guess the auto-pipelining should have no problem..........

I'm sorry I lost you. I cannot seem to properly understand what you do and what you expect to happen.
If you send 10 SET in a Promise.all you cannot expect Tile38 to send 10 inside events in the order of the timestamps in your SET. It will return 10 inside events in the order it receives the SET commands.
You are stacking promises here to the max, and I'm not surprised that this causes issues.
If you're doing async maps, consider using bluebird.
I sense that this is more your applications problem, then Tile38.

I just realized that auto pipelining from https://github.com/redis/node-redis is not that pipelining of redis
anyways, i turn to use https://github.com/luin/ioredis which supports redis pipelining ,  the problem seem resolved.....
thx

Glad you found a solution @eduardotang 🙏


ESP32-AT HTTPS connection

Hi,
I am trying to create SSL connection using ESP32-AT commands on ESP32-WROOM. i have release /v2.2.0 AT firmware version.

My setps are:
AT+CWMODE=1
AT+CWJAP="",""
AT+CIPSNTPCFG=1,1245,"0.pool.ntp.org","time.google.com"
AT+CIPSTART="SSL","iot.espressif.cn",8443
AT+CIPSEND=42
for the last command i'm getting the following message.

+IPD,61:{"status": 400, "message": "io error, may be idle too long"}
CLOSED

Am i missing some setps?
i'd be very gratful for any king of help

@Nesrine352 i think the steps you did are right, esp-at also documented it at https://docs.espressif.com/projects/esp-at/en/latest/esp32/AT_Command_Examples/TCP-IP_AT_Examples.html#esp-device-as-an-ssl-client-in-single-connection
the web server (http://iot.espressif.cn/#/) said that "the IOT platform will stop maintenance on January 30, 2022".
Further more, you can enable ssl debug log by:

./build.py menuconfig -> Component config -> mbedTLS -> Enable mbedTLS debugging -> Verbose
./build.py menuconfig -> Component config -> Log output -> Default log verbosity -> Debug

See what happened.

Hi @ustccw ,
it works! thanks for your reply :)


Missing/unclear docs in contrib/manyclangs

[ ] Maybe put something about how to build and install compdb2line
[ ] Missing requirement on git-list-between - ../elfshaker/contrib/manyclangs-build-month: line 26: git-list-between: command not found
[ ] pv command not found
[ ] time command not found

(these are being found on a fresh docker 18.04 image)

(where might I get git-list-between from? - google doesn't show much up)

Oh! Got it. That makes sense: thanks!

Maybe related to?
# _manyclangs_build_parts
bash: _manyclangs_build_parts: command not found

I'll check the docker build into a branch for visibility: https://github.com/compiler-explorer/clang-builder/pull/34
you can try something like:
$ git clone https://github.com/compiler-explorer/clang-builder.git
$ cd clang-builder
$ docker build . --tag test; and docker run --rm -it test bash
...

# build/build-manyclangs.sh

(or keep pointing me in the right direction, of course :))

It's difficult to tell because of jobserver. I would try running with MANYCLANGS_NPARALLEL=1 in the environment to disable parallel builds which should also give better errors, but I'm not terribly familiar with that code.

will do: thanks!

# env MANYCLANGS_PARALLEL=1 manyclangs-build-month 2022 01

Command exited with non-zero status 123
	Command being timed: "jobserver -j41 xargs --max-procs=5 -n1 bash -c _manyclangs_build_parts "$@" -- 2022 01"
	User time (seconds): 0.24
...same output....

I think I've spotted a bug in the handling of NPARALLEL -- surely it should be && not ||.
https://github.com/elfshaker/elfshaker/blob/e38fe11c2706ce70f8894ef0a9524a42d78aadcd/contrib/manyclangs-build-month#L201
@pwaller might be of more help with this. Mind sharing the command you use to kick off the builds? I might get some time to play with https://github.com/compiler-explorer/clang-builder/pull/34 over the weekend if we don't figure this out.

I've fixed the typo in https://github.com/elfshaker/elfshaker/commit/9d3d7551634004d6cce3c8af73ca6a218cbbbedc which resulted in the build always running with jobserver. A special fork of ninja and a more recent git are also necessary (and Ubuntu 18.04 doesn't have that in the default repos). https://github.com/veselink1/clang-builder-manyclangs/commit/5e90cb6ba49d2f7273a8933873ee270c5f4e21c2
I haven't been able to fully test manyclangs-build-month though, because my VM can't take it.

Thanks Vesko -- I'll try that. I should also note that we need to move to 20.04 (or later!) soon enough, if that helps or hinders

Looking a lot better now - will update the first post's list with the findings so far.

Despite being on an x86_64 machine, the pack built was ./elfshaker_data/packs/aarch64-ubuntu2004-manyclangs-202201.pack
It also seemed to complet "ok" for 2022 01:
Packing loose/20220131-03572T230441-8306968b592d942 1
[INFO (main) 175.475496ms]: Load index loose/20220131-03573T230442-186dcd4aab77f45 /root/llvm-project/elfshaker_data/packs/loose/20220131-03573T230442-186dcd4aab77f45.pack.idx
Packing loose/20220131-03573T230442-186dcd4aab77f45 1
[INFO (main) 175.548385ms]: Load index loose/20220131-03574T231915-9aa2c914b9710f9 /root/llvm-project/elfshaker_data/packs/loose/20220131-03574T231915-9aa2c914b9710f9.pack.idx
Packing loose/20220131-03574T231915-9aa2c914b9710f9 1
[INFO (main) 175.622353ms]: Load index loose/20220131-03576T232852-8a9e4f245b66b90 /root/llvm-project/elfshaker_data/packs/loose/20220131-03576T232852-8a9e4f245b66b90.pack.idx
Packing loose/20220131-03576T232852-8a9e4f245b66b90 1
[INFO (main) 175.705291ms]: --frames=0: using suggested number of frames = 1
Compressing objects...
[INFO (main) 176.001121ms]: Creating 1 compressed frames...
Compressing objects... 100%
[INFO (main) 845.630299ms]: Write index: /root/llvm-project/elfshaker_data/packs/aarch64-ubuntu2004-manyclangs-202201.pack.idx
[INFO (main) 847.833559ms]: Current HEAD: loose/20220128-03221T125822-4f7352840394462:20220128-03221T125822-4f7352840394462
[INFO (main) 847.877136ms]: Updating HEAD to point to the newly-created pack...

real	0m0.887s
user	0m0.484s
sys	0m0.360s

but:
 ls -l elfshaker_data/packs/
total 440
-rw-r--r-- 1 root root  60047 May 14 03:43 aarch64-ubuntu2004-manyclangs-202201.pack
-rw-r--r-- 1 root root 206439 May 14 03:43 aarch64-ubuntu2004-manyclangs-202201.pack.idx
drwxr-xr-x 2 root root 180224 May 14 03:43 loose

(there's a ton of stuff in loose/*.pack.idx but ... I'm lost now :) I checked in everything so far into the branch mentioned above and can take another look another time. Hopefully @peterwaller-arm will go "ah! I know what that is...!"

The pack name is hardcoded to be aarch64-ubuntu2004-manyclangs-YYYYMM. The loose/*.pack.idx files are normal and are not cleaned up automatically after creating a pack by design. The pack seems to not contain much stuff, so it is safe to say it failed overall.
One other dependency that just came to mind is ccache -- which I don't think was installed in the image and IIRC we don't have any checks to not use it.
Still, this was very helpful and I think we have a number of things to document/fix. Thanks Matt!

I'll add ccache and try again -- the issue above seems like it built one thing and then stopped? The packfile being only 60k seems a bit too small even for the cunning things elfshaker does :D

60k seems a bit too small even for the cunning things elfshaker does :D

Heh, one would need a stronger incantation to achieve that kind of compression.
I don't think it built anything really, but we are using DCMAKE_C_COMPILER_LAUNCHER=ccache to configure the build, so ccache missing is definitely going to be a problem. I just didn't think of that earlier.
If this happens to fail once more (hope it doesn't!), it would be really great if you could attach one of the .log files manyclangs-build-month generates. They tend to contain more information about the build process.

I installed ccache but it still apparently completed OK but with no actual work done:
[INFO (main) 140.483218ms]: Load index loose/20220131-03576T232852-8a9e4f245b66b90 /root/llvm-project/elfshaker_data/packs/loose/20220131-03576T232852-8a9e4f245b66b90.pack.idx
Packing loose/20220131-03576T232852-8a9e4f245b66b90 1
[INFO (main) 140.548769ms]: --frames=0: using suggested number of frames = 1
Compressing objects...
[INFO (main) 140.814221ms]: Creating 1 compressed frames...
Compressing objects... 100%
[INFO (main) 832.620225ms]: Write index: /root/llvm-project/elfshaker_data/packs/aarch64-ubuntu2004-manyclangs-202201.pack.idx
[INFO (main) 837.932702ms]: Current HEAD: loose/20220131-03576T232852-8a9e4f245b66b90:20220131-03576T232852-8a9e4f245b66b90
[INFO (main) 838.035174ms]: Updating HEAD to point to the newly-created pack...

real	0m0.850s
user	0m0.472s
sys	0m0.355s

as before. Progress though! :)


Chrome: receiver.track can be null, causing issue with "track" event shim

Browsers and versions affected
Chrome Canary 62
Description
In Chrome, RTCRtpReciever's track can be null. This causes an error in the "track" event shim.

Offer with offerToReceiveAudio: true
Answer with a=msid:stream track1
Offer with offerToReceiveAudio: true
Answer, replacing a=msid:stream track1 with a=msid:stream track2

Steps to reproduce
See JSFiddle
Expected results
Two "track" events for track1 and track2 (track1 should end)
Actual results
adapter-latest.js:827 Uncaught TypeError: Cannot read property 'id' of null
    at https://webrtc.github.io/adapter/adapter-latest.js:827:34
    at Array.find (native)
    at MediaStream.<anonymous> (https://webrtc.github.io/adapter/adapter-latest.js:826:46)

@henbos looks like pc.getReceivers() has a single element whose track is null. Can you take a look?

a variant: https://jsfiddle.net/sxy2khzo/ -- pc.getReceivers() is empty in the .then after the second remoteDescription. This does not look good.

https://jsfiddle.net/sxy2khzo/2/ -- and e.receiver is undefined in the first ontrack. That looks like a timing issue.

also an issue in 61.0.3163.13

filed https://bugs.chromium.org/p/chromium/issues/detail?id=751785


Added a simple makefile for flame package

Description
Small Makefile to simplify common tasks during development.
If this proves useful, a similar makefile can be added in the future to other flame projects.
Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors and are passing (See Contributor Guide).
[x] My PR does not decrease the code coverage, or I have a very special case and explained on the PR description why this PR decreases the coverage.
[ ] I updated/added relevant documentation (doc comments with ///) and updated/added examples in doc/examples.
[x] I have formatted my code with flutter format and the flutter analyze does not report any problems.
[x] I read and followed the Flame Style Guide.
[x] I have added a description of the change under [next] in CHANGELOG.md.
[x] I removed the Draft status, by clicking on the Ready for review button in this PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change

[x] No, this is not a breaking change.

I vote no for this, imho Makefiles should be deprecated with their obscure syntax.
If it would have been a standard in the Flutter world I would have voted yes just to keep consistency, but luckily it is not. :smile:

I vote no for this, imho Makefiles should be deprecated with their obscure syntax. If it would have been a standard in the Flutter world I would have voted yes just to keep consistency, but luckily it is not. 😄

I agree, it is just wrapping things that are already available on the Flutter CLI anyway.

The purpose of this makefile is not to implement the build process (which was the original purpose of makefiles, now outdated), but to provide a simple way to perform common developer tasks from CLI.
For example, I need to run flutter analyze and flutter format before each push. They have to run in that particular order. It's much easier to say make format then. Similarly for coverage. It's easier to say make coverage then trying to remember and then typing out the necessary instructions.

For example, I need to run flutter analyze and flutter format before each push. They have to run in that particular order.
This sounds very much like a setup for individual developers, I think most have this integrated into their IDE.

then trying to remember and then typing out the necessary instructions.
Now it will be two ways of doing things instead, going via the Makefile, or straight to the flutter CLI, and to keep consistency with other Flutter projects we shouldn't invent a new way of doing things I think.

How do you guys usually generate coverage?
For me at least, I very rarely generate that myself, but let the GitHub action generate that. The few times I do generate that myself I simply press ctrl+r and type cov and it'll pop up.

This sounds very much like a setup for individual developers

Absolutely. Some developers will have powerful IDEs with everything integrated. Others won't be so lucky. This makefile helps those others, without negatively affecting the first group.

Now it will be two ways of doing things instead

As you have mentioned before, there are already two ways of doing this: one is via the IDE magic button, another is via the flutter command in the terminal. So, this PR adds a third way: via the make command. I don't think having multiple ways to accomplish the same task is bad, if those ways have different sets of pros and cons.

I simply press ctrl+r and type cov and it'll pop up.

This obviously only works on your computer.
I mean, we have the question "does your PR reduce coverage?" in the PR checklist, so there should be at least some easy way for a contributor to verify whether that's true or not.

Absolutely. Some developers will have powerful IDEs with everything integrated. Others won't be so lucky. This makefile helps those others, without negatively affecting the first group.

We don't add IDE specific settings to the repo, so neither should we have something that is only targeted to the small group that is not running an IDE, after all the recommended way from Flutter when installing it is either Android Studio or VSCode. And I mean, even Erick that it running pure vim is voting this down.

As you have mentioned before, there are already two ways of doing this: one is via the IDE magic button, another is via the flutter command in the terminal. So, this PR adds a third way: via the make command. I don't think having multiple ways to accomplish the same task is bad, if those ways have different sets of pros and cons.

The user knows that it goes through flutter when that happens, and it is usually done on save, so no active action to perform this. If I see a makefile in a project I would think that that is the project owners preferred way of running things.

This obviously only works on your computer.
Yeah, it was only an example since you said you had a hard time remembering the command, but the point is that you shouldn't need to remember it, the GitHub action will do this for you.

I mean, we have the question "does your PR reduce coverage?" in the PR checklist, so there should be at least some easy way for a contributor to verify whether that's true or not.
We could rephrase that to that the cicd doesn't report reduced coverage. We could even add coveralls like we have on ordered_set if we want it to be a bit more visual, but that should be discussed in an issue.

Anyhow, we are discussing something that hasn't been an issue for any contributor that we have heard of, if we would have seen that the community had problems with this, we'd probably bring back the script folder that we used to have and the coverage script that was in there. I'll close this since none in the team doesn't wants us to introduce a makefile.


Failed to connect to WakaTime, API Key or endpoint URL invalid ?

Describe the bug
Hello, I would like connect my Wakatime account to Wakapi from https://wakapi.dev/settings#integrations, but when I submit the form, I've this error:

Error: Failed to connect to wakatime, api key or endpoint url invalid?

System information
Wakapi version : v2.8.1-a9364e3 @ mysql
On https://wakapi.dev/

What did you put as the API url and did you make sure your WakaTime key is valid?

What did you put as the API url and did you make sure your WakaTime key is valid?

Yes of course, for testing another key, I regenerated an another.

What did you put as the API url?

What did you put as the API url?

This one https://wakatime.com/api/v1

I added some more detailed logging. Please try again and I'll check the server logs afterwards.

Owww... I just tested with my WakaTime classic key, and not from https://wakatime.com/developers#authentication

You can connect Wakapi with the official WakaTime (or another Wakapi instance, when optionally specifying a custom API URL) in a way that all heartbeats sent to Wakapi are relayed. This way, you can use both services at the same time. To get started, get your API key and paste it here.

All are imported correctly!

I also got this issue on a self-hosted instance (Using HTTP and accessing via IPs, not public domain). When I run your suggestion above in console I get this:
 ~ curl https://wakatime.com/api/v1/users/current/data_dumps -H "Authorization: Basic $(echo 'waka_xxx' | base64)"

{"data": [{"id": "xxx", "type": "heartbeats", "download_url": "https://wakatime.s3.amazonaws.com/coding-activity-exports/xxx/wakatime-xxx.json?AWSAccessKeyId=xxx&Signature=xxx%3D&Expires=1710753747", "status": "Completed", "percent_complete": 100.0, "expires": "2024-03-18T09:20:24Z", "created_at": "2024-03-11T08:46:40Z", "is_processing": false, "has_failed": false, "is_stuck": false}], "total": 1, "total_pages": 1}%

I have got a valid JSON download from Wakatime's page, but not sure how to use it (is it possible?). When I enter my details in settings / integrations page, I am stuck on Error: Failed to connect to wakatime, api key or endpoint url invalid?. I notice the server logs show that the request is taking 10.009 seconds, so I guess it's timing out? The curl command responds in about a second or so running on the server.
wakapi  | 2024-03-11T21:12:27.871698498Z [INFO ] [request] status=400, method=POST, uri=/settings, duration=10.009982447s, bytes=48332, addr=<IP_ADDRESS>:37392, user=xxx

I've tried various variations of inputs and legacy mode https://wakatime.com/api/v1/ and my api key, also re-generated my API key, but no luck. How can I get my data imported?

Super weird! It's probably the same issue as in https://github.com/muety/wakapi/issues/602#issuecomment-1923564691, where we also had the problem that requests from cURL or a browser went fine, but timed out in Go. The workaround described in that comment would probably work here as well. But I'd rather find the root cause of the problem.
Can you please try https://api.wakatime.com/api/v1 instead of https://wakatime.com/api/v1 as the API URL (even though I don't think that's gonna change anything)?
Also, what Go- and Wakapi versions are you using and which OS are you on? Do you have both IPv4 and IPv6 available with your ISP?

Tried both URLs, same result. Using Debian, running in Docker. ISP got both IPv4 and IPv6 here. Version of Wakapi is latest, recently pulled, this is my first time setting up.
Building on your hunch, I went inside the docker container and tried to run the command from there... and no response! (using wget instead of curl, as curl/apt is not available inside the container)
docker compose exec -it wakapi /bin/sh;
$ wget -O- --header="Authorization: Basic $(echo -n 'waka_xxx' | base64)" https://wakatime.com/api/v1/users/current/data_dumps
Connecting to wakatime.com (<IP_ADDRESS>:443)
# And it just hangs.... forever 👻

So blaming this one on the container/docker! Then I switched the network mode in docker-compose from port: 3000:3000 to network_mode: host to see if it would be able to connect, and yes it does!
docker compose exec -it wakapi /bin/sh;
$ wget -O- --header="Authorization: Basic $(echo -n 'waka_xxx' | base64)" https://wakatime.com/api/v1/users/current/data_dumps
Connecting to wakatime.com ([2604:a880:4:1d0::fd:3000]:443)

writing to stdout
-                    100% |***************************************************************************************************************************************|    42  0:00:00 ETA
written to stdout

Also looks like it switched to using IPv6 to connect now, first time it attempted over IPv4? An odd but maybe inconsequential observation. Alright, at least it works, but not optimal to run this way. So I'm switching back to port mode and turning off host-mode, to test some more:
# Can we connect to the internet? Yes:
docker compose exec -it wakapi /bin/sh;
$ wget -O- http://httpbin.org/get
Connecting to httpbin.org (<IP_ADDRESS>:80)
writing to stdout
{
  "args": {},
  "headers": {
    "Host": "httpbin.org",
    "User-Agent": "Wget",
    "X-Amzn-Trace-Id": "Root=1-65f0b048-5ce731233c15cf02723fce25"
  },
  "origin": "<IP_ADDRESS>",
  "url": "http://httpbin.org/get"
}
-                    100% |**************************************************************|   225  0:00:00 ETA
written to stdout

# Ok some more IP testing, can we do IPv6?
$ wget -qO- http://ipv6-test.com/api/myip.php
<IP_ADDRESS>
# No, that's certainly an IPv4 address, outside the container it returns as IPv6

Alright so maybe you're hunch about IPv4 / IPv6 is correct. Building on that theory, outside the container I force WakaTime API to query via IPv4:
$ wget -O- -4 https://api.wakatime.com/api/v1/meta
--2024-03-12 21:00:42--  https://api.wakatime.com/api/v1/meta
Resolving api.wakatime.com (api.wakatime.com)... <IP_ADDRESS>
Connecting to api.wakatime.com (api.wakatime.com)|<IP_ADDRESS>|:443... connected.
<NOTHING>

And nothing, no response! Remove the -4 flag and the API works again. So I try the same query to WakaTime API over IPv4 on my local machine and it work! ... wait what?
My conclusion so far:

The Wakapi docker container got an issue with IPv6 in general
Wakatime API confimed works fine with both IPv4/IPv6
My server has an issue dealing with IPv4 with WakaTime specifically

I do not comprehend why I cant query Wakatime API on some of my VMs via IPv4, one thing those VMs have in common is using Proxmox 8 SDN, but I am not seeing issues with other IPv4 services. What should maybe be investigated is making IPv6 work inside the container?

Wow, thanks a lot for your detailed investigations!

The Wakapi docker container got an issue with IPv6 in general

Last time I checked, Docker didn't even support IPv6 whatsoever, so curl / wget shouldn't ever even attempt to connect via v6. But apparently either I was wrong or things have changed meanwhile, see Enable IPv6 support.
But still, could you please check if (a) your container actually has an IPv6 and (b) you can force curl to use v6 (-6) and then try request some other host (like https://6.ipwho.de/ip) again?
Please also try different combinations of IPv4 vs. IPv6, inside vs. outside container and with vs. without --no-keepalive (as the connection reuse had been problematic in the issue I linked above).

I've tried "everything", only ting I can pinpoint is that my IPv6 handling in a certain subnet I got is not working reliably. And it seems that the IPv4 connection to WakaAPI also is struggling in that subnet.
# Both of these queries either fail or work (at least on my weird network)
wget -qO- -6 https://6.ipwho.de/ip
wget -qO- -4 https://api.wakatime.com/api/v1/meta

Thanks for your help, seems like this is a me problem and not a Wakapi problem.

Keep me posted, would love to learn how you got this fixed in the end! Also, let me know if I can provide further help.


Create navigation bar

The nav bar should:

[ ] Be responsive, with the logo sticking to the left side of the page and the navigation links sticking to the right. The navigation links should collapse into a hamburger menu icon on smaller screens which, when clicked, can expand and collapse the navigation links.
[ ] Include working links to the Home, Mission, Story, Membership, News, Shop, and Contact pages, with News and Shop linking to external pages that open in a new tab when clicked.
[ ] Match the current style of the navigation bar
[ ] Be present at the top and bottom of every page on the site

Refer to the current DSC site and below screenshots for details.

Merged, but need edits to the collapse effect and footer text.

Closing since the navigation bar has been created and the footer text has been updated. Created a new issue to track the collapse effect which still needs to be added.


[WIP] Fix for #123

Simple fix for #123
WIP because I didn't know what to do with internal _num_samples in fit_estimator.py (there is some custom logic for msmbuilder, which probably should be decoupled, but I am not sure how to do it)

Thanks for the PR! I think the best way to do handle it is to consolidate fit_estimator._num_samples into num_samples.The msmbuilder_api keyword seems to just indicate if the object is a list of lists, so maybe just get rid of it and add a new condition:
if all(isinstance(xx, list) for xx in x):
    return sum(len(xx) for xx in x)

@cxhernandez Thanks, though it is slightly scary, what if the dataset has examples being lists, but the number of samples is actually number of lists? If that' fine, I have updated the PR with the suggested fix :)

Thanks, though it is slightly scary, what if the dataset has examples being lists

Good point! Also, my idea wouldn't work anyways because msmbuilder returns lists of numpy arrays rather than lists of lists (still haven't had my morning coffee :disappointed:)
Perhaps, let's keep the keyword in num_samples but pick a better name (e.g. is_nested)?

Cool :) Added is_nested

Thanks a lot!


Index fields from nested array of objects?

Given a document like:
{
  "some_field": "foo",
  "meta": [
    {
       "nested": "First meta"
    },
    {
      "nested": "Second meta"
     }]
}

How can I index the "First meta" and "Second meta" values? I tried meta.nested and meta[].nested but they do not seem to work.

Sorry, I did not implement deep fields for this plugin. A PR for something like meta[0].nested would be welcome, though! :)


Fix "Get started" image is not adaptive to the browser window size.

Description
It makes the image on get-started page to be adaptive to the window size.
Category
Bug fix
Why these changes are required?
To make layout adaptive.
What is the old behavior before changes and new behavior after changes?
Before that the size prop of EuiImage was xl, which translates to width: 600px according to docs. So when the size of the container got smaller with page ( less than 600px ) the image started overflowing. The behavior is shown in https://github.com/opensearch-project/security-dashboards-plugin/issues/1386. It was also centered using div container with text-align: center property,
Now the size changed to fullWidth which make image to take full width of the container. To keep previous expected behavior, the EuiImage component was placed in a EuiFlexItem container with maximum width 600px, which prevents image from getting too big. As the result when the window size is small, the image adapts to it. Screenshot:

The EuiFlexGroup was used to keep the image centered, as it is not possible to do it with  text-align: center anymore.
Issues Resolved
Fixes https://github.com/opensearch-project/security-dashboards-plugin/issues/1386
Testing
Tested by resizing window to see if it adapts to the window size.
Check List

[ ] New functionality includes testing
[ ] New functionality has been documented
[X] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Hi @curq, thank you for this change. Nice find and great job writing up your findings. This looks good to me.

@curq Could you also modify snapshot used in unit tests?
You can add following after https://github.com/opensearch-project/security-dashboards-plugin/blob/5e99582ea55176a16f0190998abcc99c99e7f974/public/apps/configuration/panels/test/snapshots/get-started.test.tsx.snap#L242
style={
            Object {
              "maxWidth": "100%",
              "height": "auto",
              "width": "auto",
            }
          }

Without this the unit tests would fail

@DarshitChanpura, Thank you for the feedback! I applied the suggestions and updated PR

Codecov Report

Merging #1396 (acc7202) into main (da7d1fe) will not change coverage.
The diff coverage is n/a.

: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           @@
##             main    #1396   +/-   ##
=======================================
  Coverage   71.67%   71.67%
=======================================
  Files          88       88
  Lines        2037     2037
  Branches      277      277
=======================================
  Hits         1460     1460
  Misses        511      511
  Partials       66       66

Impacted Files
Coverage Δ

public/apps/configuration/panels/get-started.tsx
90.90% <ø> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Windows CI tests failed with:
Run tar -xzf opensearch-min-3.0.0-SNAPSHOT-windows-x64-latest.zip
Run 'y' | .\opensearch-3.0.0-SNAPSHOT\bin\opensearch-plugin.bat install file:$(pwd)\opensearch-security.zip
The following usage of the path operator in batch-parameter
substitution is invalid: %~nxI

For valid formats type CALL /? or FOR /?
The syntax of the command is incorrect.
Error: Process completed with exit code 1.
Run cat ./opensearch-3.0.0-SNAPSHOT/logs/opensearch.log
cat: ./opensearch-3.0.0-SNAPSHOT/logs/opensearch.log: No such file or directory
Error: Process completed with exit code 1.

Re-ran the tests to see if it was a one-off error as no changes related to windows were made in this PR


XIVY-12289 return selection after deletion

When calling deleteFirstSelectedRow the selection in the table is changed by using some logic. The value of the new selection is usually needed after calling this function. E.g. in the data class editor, after deleting the selected row, the selected field needs to be set to the same selection in the table. Instead of recalculating this value using the same logic, it will be returned from deleteFirstSelectedRow.

  const deleteField = () => {
    const newFields = deleteFirstSelectedRow(table, dataClass.fields);
    const newDataClass = structuredClone(dataClass);
    newDataClass.fields = newFields;
    setDataClass(newDataClass);
    if (newFields.length === 0) {
      setSelectedField();
    } else if (selectedField === newFields.length) {
      setSelectedField(selectedField - 1);
    }
  };

turns into:
  const deleteField = () => {
    const { newData: newFields, selection } = deleteFirstSelectedRow(table, dataClass.fields);
    const newDataClass = structuredClone(dataClass);
    newDataClass.fields = newFields;
    setDataClass(newDataClass);
    setSelectedField(selection);
  };


Code organization (train_first.py and related utils)

Actually, I'll clean up some more before putting up a PR.


Support composer.json generating for an empty module

magento2:generate:module - generates an empty module without module's composer.json.

@larylaz We're open to doing this -- do you have an example of a complete compose.json file or thoughts on which of the many fields should be populated?

Suggest composer.json like as follow
{
"name": "namespace/module-name",
"description": "some desc",
"type": "magento2-module",
"require": {
"php": "^7.1.0",
"magento/framework": "^101.0.0"
},
"license": [
"OSL-3.0",
"AFL-3.0"
],
"autoload": {
"files": ["registration.php"],
"psr-4": {
"Namespace\ModuleName\": ""
}
}
}


Option to specify java memory requirement on the command line also updated StringTie cmd

Jun pointed out that for really big samples, < 35 M, markduplicates could occasionally crash. Upping the requested memory for each JVM solves this issue. So I added this as a specifiable  CL flag
Also added support for the stringTie --rf and --fr options

tested it and you are correct, good to know. Changing the docs accordingly
On Mon, Apr 3, 2017 at 11:40 AM, Phil Ewels<EMAIL_ADDRESS>wrote:

@ewels commented on this pull request.
In docs/usage.md
https://github.com/SciLifeLab/NGI-RNAseq/pull/106#discussion_r109375241:

@@ -123,6 +123,16 @@ for common RNA-seq library preparation kits.
| --pico  | SMARTer Stranded Total RNA-Seq Kit - Pico Input | 3     | 0     | 0     | 3     |

+### strand direction for StringTie and feturecounts
+The strandedness of the library can be set py using the --forward_stranded  and --reverse_stranded flags. Both are set as
+false by default but reversed is cahnged to true in the Uppmax config file. If you library instead is forward oriented simply specify the--forward_stranded flag as true
cahnged -> changed
I'm not sure that you need to do --forward_stranded true, I think you
just do --forward_stranded
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/SciLifeLab/NGI-RNAseq/pull/106#pullrequestreview-30471946,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AP_zvAYJpDY5fmjai45jJPqyjBkiVbyKks5rsL6UgaJpZM4Msx8U
.

Build failing because the docker image has the old version of stringtie. Should pass on merge.
Nice work! Merging :)


Support for Ghost 1.x

I really like your theme and have been using it for a long time. There are some breaking changes in Ghost 1.x . Do you plan to adjust to those?

The theme is now updated. Sorry it took so long, I just couldn't find the time and the backlog got larger and larger... I ended up pretty much having to rewrite the whole thing.

Anyway, it's here now, and personally I think it's better than ever. Let me know what you think!


Stuck: Building Course Data

I am having this exact problem:
https://github.com/FaisalUmair/udemy-downloader-gui/issues/145
with only 1 course (downloaded 30 ok)
Java Certification (1Z0-815) Exam Simulation [2020]
v1.8.2 any suggestion?

Even I am facing same issue I am using updated version of udeler
I am facing issue only for one course name : ACCA: MA (F2) - Management Accounting
I have tried with all the options like skip attachements , start course from 2 3 but still its not downloading its showing only building course data.
I have waited almost 2-3 hours but its not started.

Me

too

I have downloaded some cuorse with an older version and now I wish to download them one more time with the old version and the new version of Udeler and I get in 5/8 downloads the same: Building Course Data and nothing happens for hours.
Tried with 1.4, 1.5 version and I can't log in into buisnes account. Tried all the setings ON/OFF left/right in the 1.8.2 version whit no luck.
So I'm stuck in the Building Course Data.
Any solution?


SSL Pinnig Missing

This is a great package I am using in my project. But now I need to implement SSL pinning in the current project. Is there any way to implement it?

Probably not going to add it to this project. But all you need to do is initialize the BaseSessionManager with a URLSession properly configured for SSL pinning.


[@lit-labs/nextjs] reflect: true on props are throwing error

Which package(s) are affected?
SSR (@lit-labs/ssr)
Description
When props are reflected in the component, like count: { type: Number, reflect: true }, I'm getting following error in the dev tools console: extra attributes from the server.
It looks like Next.js is having hard times running hydration because server template and client templet don't match.
There are many cases where we need to reflect props, is there a way to fix this somehow?
Reproduction
The bug can be reproduced here:
https://stackblitz.com/edit/nextjs-lit-ssr-cwhzrk?file=src/simple-greeter.js

Run example
Check DevTools and console

Workaround
Removing reflect: true from property declaration solves the issue
Is this a regression?
No or unsure. This never worked, or I haven't tried before.
Affected versions
Failing: 0.1.1
Browser/OS/Node environment
Browser: Chrome Version 112.0.5615.121

I've seen the "extra attributes from the server" errors while trying out solutions for https://github.com/lit/lit/issues/3418 as well. This might be unavoidable so it's worth considering suppressing this via https://react.dev/reference/react-dom/client/hydrateRoot#suppressing-unavoidable-hydration-mismatch-errors which we'll add to the host element during SSR.

Per offline convo with @justinfagnani this is something we could have bespoke handling in the @lit-labs/react wrapper where we're able to check property options and include it to the host element on hydrate/initial render, but that won't exactly help with using bare Lit components like this, so I'm still leaning towards suppressing hydration warning.

Hi, just a suggestion, not even sure if that can be achieved ...
Would it be possible to add props that have reflect: true and default value set in constructor as part of template render on the server?

The hydration warnings are specifically happening when the server add attributes that weren't included in the original template as props. Having defaults on the server won't prevent that.
To prevent this hydration warning, we need to either not reflect attributes on the server (I don't think we should do this), or find a way to include the added attribute as props at React hydration time.
For users of the nextjs plugin or the labs/ssr-react package, I think we might include logic for this on the client jsx functions or patch createElement. Right now, our client versions of jsx and createElement simply re-export the original React ones, but we could patch those like we do for the server environment.
I do wonder if there's benefit to adding all of this extra logic instead of just adding suppressHydrationWarning={true}.

Thanks for coming back.
I don't think that suppressHydrationWarning={true} is way forward either. On Next.js page I see that there is a pitfall using this solution: 'This approach makes hydration slower because your components have to render twice. Be mindful of the user experience on slow connections.`.
For now, we are passing all reflected props that have a default value set in constructor, something along those lines:
in our component class we have:
export class McButton extends LitElement {
  @property({ type: String, reflect: true })
  public fit: Fit = 'medium';
}

and then when we use component:
<mc-button fit="medium">Button<mc-button>
This seems to solve template mismatch errors, but of course is not ideal. In some cases we also set some extra aria attributes in  the firstUpdated life cycle function - this is also causing template mismatches.

@augustjk the logic to bind reflected properties as attributes could be added both to the React wrapper and to the createElement patch... not sure if it's a good idea, but it's possible.

So the logic would be to patch createElement (and runtime JSX functions) so that if the tag provided is a Lit component, look at the Lit component class, find all properties with reflect: true, if there are no user provided prop for those create an instance to grab default values for them, and provide them to React as props, any user provided prop will override this.
We really only need to do this on the initial client render/hydration of the React component, but there isn't a flag that we can use for that. React docs suggest creating a separate state to track that https://react.dev/reference/react-dom/client/hydrateRoot#handling-different-client-and-server-content.

We've done a team huddle on this and we're going with adding suppressHydrationWarning client-side for these components.
@aneta-kjeldsen your concern about the pitfall

This approach makes hydration slower because your components have to render twice. Be mindful of the user experience on slow connections.

is mentioned specifically with regards to using a state to do a 2-pass render on the client to explicitly show different content on the client versus what the server rendered.
React's note about the suppressHydrationWarning flag states

This only works one level deep, and is intended to be an escape hatch. Don’t overuse it. Unless it’s text content, React still won’t attempt to patch it up, so it may remain inconsistent until future updates.

In our case the warnings are about mismatching attributes that don't actually change the content of the component from what was rendered on the server versus the client. The nature of reflecting properties to attributes is that the discrepancy is expected and therefore okay to suppress.
As we're talking about attributes and not text content, React "won't attempt to patch it"  so there's actually no extra work happening during hydration due to this mismatch.
Lastly, we're considering the best fix for #3418 to be adding defer-hydration attribute to the host element so that we can imperatively add initial properties to the element before triggering the element's initial update on the client. The addition of the defer-hydration can trigger the same warning during React's hydration which we still consider to be innocuous and should suppress.
An interesting observation I had is even without using the @lit-labs/nextjs plugin, using Lit components with attribute reflecting properties emits the same warning because the element already contains the reflected attribute from the custom element upgrading by the time React tries to hydrate, even though the HTML from the server never contained the attribute.

Thanks for looking into it.

Discussed this case a bit more during our eng meeting just now. Since the suppressHydrationWarning prop needs to be set on the client side, we can easily do this for components using @lit-labs/react which we're planning to add with https://github.com/lit/lit/pull/3885.
But for bare custom elements, we'd need to also patch client-side createElement or jsx-runtime to add the prop, which currently are just passthroughs of the React ones.
Or we need to do extra logic during SSR to not reflect attributes if they come from default prop which might be hard to do. (This could become much simpler to do with new decorators but that'll still take some time)
For the time being we're looking to not do anything for this case for bare custom elements. The hydration warnings only happen during dev mode and could be ignored. Or, users would have to add the default value in as JSX prop, or add the suppressHydrationWarning themselves to the custom element to prevent the warning.
We'll definitely revisit this when the better custom element support for React lands (maybe React 19?) as we'll likely need to touch client side element creation then.
@aneta-kjeldsen Sorry this ultimately means we're not solving your specific use case. Is getting rid of the hydration warning for bare custom elements a high priority for you?

For now, as an interim solution, we can just ask users to pass all reflected props with default values to our components - that's fine. For other attributes (like aria-labels) we will have to find another solution - maybe move the logic from firstUpdated to some other life cycle method.

Discussed some more options with @michaelwarren1106 about this.
Plugin option to suppress hydration for custom elements, and making it take a list of custom elements or a pattern match (like prefix) on the tag name, would be a potential stop gap for this.
The "proper" solution might involve reading the registered component class, and if it's a Lit element, try to read property option to see if it reflects, and try and get the default value and include that extra as a prop, but only do this for the very first time.

useSyncExternalStore apparently has a code path that'll run on the server and on hydration, which allows us to have some bespoke logic there. Source https://twitter.com/tkdodo/status/1741068994981826947 and credit to @ceiia for suggesting we might make use of this.
Unfortunately, while we can use this to detect the hydration pass, that still means creating a React component wrapper for the custom element, do the inspection for the reflecting attributes, and provide those to React as props to satisfy the hydration check. For bare custom elements in JSX, that means monkeypatching React.createElement or an alternate jsx-runtime for the client too.


BMSUserErrorInvalidInput in az dataprotection backup-instance adhoc-backup for Kubernetes Service

Describe the bug
I am using Azure Kubernetes Service and Azure Backup Vault to generate regular backups of my cluster.
I am now trying to script the creation of an On-demand backup using Azure CLI. However, after thoroughly validating all inputs, I keep getting a BMSUserErrorInvalidInput. Using Az-PowerShell and the REST API led to similar results, even when it works correctly whenever I trigger it from the portal.
Related command
az dataprotection backup-instance adhoc-backup --rule-name "Default" -n $BACKUP_INSTANCE_NAME -g $RESOURCE_GROUP_NAME --subscription $SUBSCRIPTION_ID -v $BACKUP_VAULT_NAME
Errors
(BMSUserErrorInvalidInput)  The user's input for the call is incorrect
Code: BMSUserErrorInvalidInput
Message:  The user's input for the call is incorrect
Additional Information:Type: UserFacingError
Info: {
    "message": " The user's input for the call is incorrect",
    "recommendedAction": [
        "Please check the required inputs"
    ],
    "code": "BMSUserErrorInvalidInput",
    "target": "",
    "isRetryable": false,
    "isUserError": false,
    "properties": {
        "ActivityId": "xxx-xxx-xxx-xxx-xxx"
    }
}

Issue script & Debug output
(Tomorrow I will update with the debug logs because I'm now getting this error The operation is blocked, as a security precaution, since multiple attempts were made beyond an internal limit.)
Expected behavior
Successfully triggers and creates an Azure Kubernetes Service backup, which works fine when triggered from the portal.
Environment Summary
{
  "azure-cli": "2.60.0",
  "azure-cli-core": "2.60.0",
  "azure-cli-telemetry": "1.1.0",
  "extensions": {
    "account": "0.2.5",
    "azure-iot": "0.17.0",
    "dataprotection": "1.4.0"
  }
}

Additional context
resource "azurerm_data_protection_backup_policy_kubernetes_cluster" "this" {
  name                = "bup-pol-${var.environment}-${var.location}"
  resource_group_name = var.resource_group_name
  vault_name          = azurerm_data_protection_backup_vault.this.name

  backup_repeating_time_intervals = ["R/2024-04-24T05:00:00+00:00/P1D"]

  retention_rule {
    name     = "Custom"
    priority = 25

    life_cycle {
      duration        = "P14D"
      data_store_type = "OperationalStore"
    }

    criteria {
      absolute_criteria = "FirstOfDay"
    }
  }

  default_retention_rule {
    life_cycle {
      duration        = "P360D"
      data_store_type = "OperationalStore"
    }
  }
}

Thank you for opening this issue, we will look into it.

Is this resolved? I Am also facing same issue while trying to configure backup. Unable to indicate what the issue is exactly


Terraform populates Datahub Key Vault secrets into environment variables

BACKEND PULL REQUEST
Related Issue

Prepares for #3644

Changes Proposed

Datahub API keys are stored as secrets in SimpleReport's global Azure Key Vault
These changes will populate environment variables with these secrets, allowing us to access those values in code

Additional Information

N/A

Testing

I will deploy and make sure we do not experience any Terraform errors
For testing, one could apply these changes to the #3714 PR and deploy, making sure the expected secrets are accessible

Checklist for Reviewers

[ ] Any large-scale changes have been deployed to test, dev, or pentest and smoke tested
[x] ~Any content updates (user-facing error messages, etc) have been approved by content team~
[x] ~Any changes that might generate questions in the support inbox have been flagged to the support team~
[x] ~GraphQL schema changes are backward compatible with older version of the front-end~
[x] ~Changes comply with the SimpleReport Style Guide~
[x] ~Changes with security implications have been approved by a security engineer (changes to  authentication, encryption, handling of PII, etc.)~
[x] ~Any dependencies introduced have been vetted and discussed~

Has this been tested on any of our lower environments? It looks great to me from what I've seen, but I would like to make sure we've done our due diligence.

@DanielSass @rin-skylight I deployed this out to test and can see the the expected environment variables are present and correctly populated from the correct Key Vault entry:

There is currently no code in the application that reads these values, so true acceptance testing will have to wait for Dan's follow-up #3644 work.
Just between us, though, I manually squashed together Dan's branch with this one and deployed it to test a few days ago and it worked great. I wouldn't expect any issues.


Clean Bootstrap dependencies

https://github.com/NuGet/Engineering/issues/1729
I determined what tasks in the Gruntfile.js we actually use and removed all others and the dependencies pulled in by them. I then deleted the node-modules folder and package-lock.json file and reinstalled everything to "refresh" the lock file, which pulled in the latest versions of all the dependencies that are actually used.
npm install
grunt

still runs and emits the exact same output as before

CI failed due to lack of disk space...investigating now


Python crashing when VS Code is open on MacOs

This was reported by a user. It's happening almost every time that VS Code is opened, and the user already tried uninstalling an reinstalling Python

Closing (discussed)


Port changes from the Releases/2024/4

PR with CI fix:
https://github.com/openvinotoolkit/openvino_tokenizers/pull/249


fix:redpanda Set loadbalancer address only when extDns is enabled

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

Hi, @josedev-union Could you sign CLA?

https://github.com/redpanda-data/helm-charts/blob/e0403548ceb6a831de8fda3330453e61f3264f41/charts/redpanda/Chart.yaml#L26
I forgot about asking you to bump patch version.


Minor: Debug code left in datagrid.ts

[x] bug
[ ] feature request
[ ] enhancement

Expected behavior
No messages printed to the console from normal datagrid behavior.
Actual behavior
Prints the number of empty rows.
Reproduction of behavior
Can be seen in demo app here.
Environment details

Angular version: 2.1.0

Clarity version:  0.7.0

OS and version: Win8.1 x64

Browser: All

Line of code in question is here.

Thanks for noticing, we removed it as part of a "misc fixes" for Datagrid, which should go in tonight. 0.7.1 will not have the log anymore.


Updated Remote Controller

The coding style is almost equal to mine except local variables.
Comment about style:
and ‘continue’ are banned
Why? Use goto? x.x

@roboderpy 3 pull requests... Do you realize you can reopen the first one and re-write the history..?

Comment about style:
and ‘continue’ are banned
Why? Use goto? x.x

Because, continue statement is unsupported in Lua (5.1), it was added by @garrynewman..
There is no goto statement in GLua.
You would simply invert the condition, for example:
for k, v in pairs(TBL) do
    if foo() or not IsValid(v) and k == "__skip" then
        continue
    end
    if func(k, C) then
        break
    end
    if not bar(k) or func2(k, v) == nil or not isfunction(_G[k]) then
        continue
    end
    C = C + 1
    k(v, C)
end

Is pretty much the same as (but, yeah it can get ugly if you have many nested if statements, for example):
for k, v in pairs(TBL) do
    if not foo() and IsValid(v) or k ~= "__skip" then
        if func(k, C) then
            break
        end
        if bar(k) then
            if func2(k, v) ~= nil then
                if isfunction(_G[k]) then
                    C = C + 1
                    k(v, C)
                end
            end
        end
    end
end

I tried to squash by rebase. It got messed up

@CaptainPRICE goto wasn't removed by Garry, what are you on about?

@bigdogmat I haven't said it was removed. Derp. I though it wasn't there (as it is Lua 5.1), but apparently it is, yeah..
In anyway, you should not really use those..

@CaptainPRICE I said removed because you said they aren't there in GLua, when they are there in LuaJIT 2.0.3 which is what Gmod uses.
And yeah, you should really only use them in nested loops (e.g. jumping out of a doubly nested loop)

Most of DarkRP server are still can be exploited with this. Any updates?

What was it this fixed again?

@Divran #1171

Alright I don't see anything wrong with the code.

welp I forgot about this before I went away for a week. merging now


Wrong result of NEGEMMLowpMatrixMultiplyCore with two QASYMM8_SIGNED input

My need is to multiply two int8 tensors ([-127, 127]) to get the result S32 tensor (signed int32).
I run the codes below:
q_src1.allocator()->init(TensorInfo(TensorShape(2, 2), 1, DataType::QASYMM8_SIGNED, src1_qinfo));
q_src2.allocator()->init(TensorInfo(TensorShape(2, 2), 1, DataType::QASYMM8_SIGNED, src2_qinfo));
q_res.allocator()->init(TensorInfo(TensorShape(2, 2), 1, DataType::S32));
NEGEMMLowpMatrixMultiplyCore qgemm;
qgemm.configure(&q_src1, &q_src2, nullptr, &q_res);
// I manually set the values of q_src1 and q_src2, and allocate the three tensors.

qgemm.run();

printf("q_src1.print(): \n");
q_src1.print(std::cout);
printf("q_src2.print(): \n");
q_src2.print(std::cout);
printf("q_res.print(): \n");
q_res.print(std::cout);

The result is:
q_src1.print():
 -2  -3
124  97

q_src2.print():
 4 -110
64  -87

q_res.print():
 75033  22979
117419  35901

How can I get the correct signed int32 results?

Hi @zjersey
You have to call the allocate() method after configure()
Please take a look at the following example: https://github.com/ARM-software/ComputeLibrary/blob/main/examples/neon_gemm_qasymm8.cpp#L241
Hope this helps.


How to persist structured objects

I have an observable range object that I want to persist. It is defined as follow:
range = {
    start: moment(),
    end: moment()
}

where start and end are moment.js objects.
With plain serializr I would do something like
const rangeSerializer = ({start, end}) => {
	return {start: start.unix(), end: end.unix()}
}

const rangeDeserializer = ({start, end}) => {
	return {start: moment.unix(start), end: moment.unix(end)}
}

class Store {
    @serializable(custom(rangeSerializer, rangeDeserializer)) @observable range = {}
}

but using @persist(custom(rangeSerializer, rangeDeserializer)) @observable range = {} does not work. I get no erros but data are never written to localStorage. When instead I remove that persist the other persisted data contained in Store are correctly written to localStorage.

Just use @serializable(custom(rangeSerializer, rangeDeserializer)) instead of @persist
class Store {
    @serializable(custom(rangeSerializer, rangeDeserializer)) @observable range = {}
}
hydrate('store', Store)

Thanks.
I found also another solution that preserves the persist decorator.
const momentSerializer = (m) => m.unix()
const momentDeserializer = (m) => moment.unix(m)
const rangeSchema = createSimpleSchema({
	start: custom(momentSerializer, momentDeserializer),
	end: custom(momentSerializer, momentDeserializer)
})

class Store {
    @persist('object', rangeSchema) @observable range = {}
}