Benchmark automation

Adding a bench.py script that runs benchmark on a cloud provider.
Fixes #899.

I don't think using python for scripting is that much different than using bash for scripting, and we do have quite a number of bash scripts.  Using golang for scripting purposes seems a little strange to me.

I agree in theory that using python for scripting isn't that different from using bash for scripting. But I also see a lot of value in unification so I think the fact that we have a lot of bash scripts is a much stronger argument for more bash than for introducing python.
Looking at the particulars of your script I think it would be cleaner, both in absolute terms and in terms of fitting in better with our codebase, if it was a combination of go and shell/make.
A lot of the python functions are just shelling out to subprocesses which is easier to do in shell/make.
The regex stuff you're doing to get the manifest you want seems fragile to me. Considering that the file you're modifying with regexes is actually programmatically generated by pachctl I think you'd be better off just extending that programmatic generation to do what you want. It's already pretty close I think and this would have the added benefit that this behavior can now be easily used in other places. For example being able to build an image and push it out into a big cluster seems pretty useful for correctness testing as well as benchmarks.
Lastly I'm a little bit dubious of using the latest tag and a pull policy of Always, that's screwed me so many times in the past that I think it'd be a lot safer to just use explicit tags and bake them into the manifest.
All this being said, @sjezewski's point about prototyping being nicer in scripts still stands. I agree with him that when it comes time to merge this it'd be better not to have the python script but feel free to stick to whatever lets you get something working fast for now and deal with this later. You'll probably know a lot more about the problem constraints by then.

The latest tag is just a default; you can specify whatever images you want to use.  There doesn't seem to be any downside with using Always though?  As in, if you use a versioned tag like 1.2.1, then Always does the same thing as IfNotPresent.  If you use something like latest, then Always does the thing you want which is that it will pull the image again even if there's already a latest image locally.
Anyways, sounds like you guys would both rather have this be golang/bash, but don't have a strong objection to merging this in for now so we can work on the actual performance stuff.  I'm certainly down to take a look at this again later once this script gets more users and more feedback.
Can I get a LGTM?

Usually I'd say at the time of PR it should be in a non-scripting language. But it sounds like you want to run w this to try and use it to run actual benchmarks before finalizing it. I'm ok w that in the spirit of 'more frequent PRs' that we've discussed. I'd just request that we make a new GH issue in 1.3 to remember to get to this.
Other than that, LGTM if @jdoliner is good w the PullPolicy stuff

Merging to master seems fine I guess, since this won't block development.
Still I feel pretty strongly that keeping our codebase strictly go and shell/make is pretty important so merging stuff like this does make me a little uneasy. How about if we add an issue in the 1.3 milestone to rewrite this?
Also @sjezewski has a few outstanding comments you should respond to. Particularly the one about the unused command line arg.

Also the downside with Always/:latest is that there's a lot of ways it can confuse you.
Especially if someone is updating the Docker repo at the same time as you. Pods getting rescheduled can lead to a cluster with mismatched versions. Also there's a bit of lag between when an image is pushed and when it gets published on Docker Hub. I suspect due to caching. So you may run into situations where you rebuild, redeploy, and wind up with the old version of your code. Very easy to get confused and accidentally think that your performance tweaks did nothing.
All of this is avoided if you use a static tag, or maybe even better a hash.


Unable to connect to OpenSSL TLS1.3 Server

Hi,
We are trying to connect mbed TLS 1.3 client(right now in Win32) to an OpenSSL server, but always it ends up as ECP - The signature is not valid error.
ssl_tls13_messaging.c:2706: |5| <= read record
ssl_tls13_generic.c:2076: |3| Certificate Verify: Signature algorithm ( 0503 )
ssl_tls13_generic.c:2115: |1| mbedtls_pk_verify() returned -19968 (-0x4e00)
ssl_tls13_generic.c:1986: |2| <= parse certificate verify
ssl_tls13_client.c:4185: |1| ssl_read_certificate_verify_process() returned -19968 (-0x4e00)
ssl_tls.c:6082: |2| <= handshake
 failed
  ! mbedtls_ssl_handshake returned -0x4e00

We could make the same certificates work with mbed TLS 1.3 server + client and also with OpenSSL TLS1.3 server + client. It is not working when either of them is attempted with other.
What are we missing?

We introduced a bug in the signature algorithm handling when refactoring the code. The bug fix is here: https://github.com/hannestschofenig/mbedtls/pull/32
It is also worthwhile mentioning that the compability mode needs to be enabled in order for the exchange to work with OpenSSL. I will double-check this...

Hi,
Thanks a lot for your response. Unfortunatly still we are facing the same issue. Please find the logs attached herewith.
And yes, compatibility mode is needed.
[
log.txt
](url)

I fixed the issue and you can find the working code in https://github.com/hannestschofenig/mbedtls/pull/32
I have tested it against OpenSSL with the following configuration setting:

openssl s_server -cert certs/server.crt -key certs/server.key -accept 4430 -debug -tls1_3

./ssl_client2  debug_level=5 force_version=tls1_3 server_name=localhost server_addr=IP_ADDRESS key_exchange_modes=ecdhe_ecdsa auth_mode=none force_ciphersuite=TLS_AES_128_GCM_SHA256 server_port=4430 named_groups=secp256r1 key_share_named_groups=secp256r1 sig_algs=ecdsa_secp256r1_sha256 tickets=0

(Note: you could configure the certificates appropriately so that verification works as well and the auth_mode=none isn't required)

Thanks a lot Hannes!  It is working with TLS_AES_128_GCM_SHA256 .
But still TLS_AES_256_GCM_SHA384 is failing. Is it possible for you to have a quick look into it?

Thanks for checking. I fixed the bug in https://github.com/hannestschofenig/mbedtls/pull/32/commits/3b2660978cf22bb82f1e37b75aa43573efb8a27e
Note that I added some more code to the branch to allow more flexible configuration for the ssl_client2.c and ssl_server2.c example programs, which you are probably not interested in.
I tested the code with the following configuration setting:

openssl s_server -cert certs384/server384.crt -key certs384/server384.key -accept 4430 -debug -tls1_3 -ciphersuites TLS_AES_256_GCM_SHA384

./ssl_client2 debug_level=5 force_version=tls1_3 server_name=localhost server_addr=IP_ADDRESS key_exchange_modes=ecdhe_ecdsa auth_mode=none force_ciphersuite=TLS_AES_256_GCM_SHA384 server_port=4430 named_groups=secp384r1 key_share_named_groups=secp384r1 sig_algs=ecdsa_secp384r1_sha384 tickets=0

Note that I created new certificates that use SHA384 and I also tweaked the parameters on the client side to force the selection of this signature algorithm and the related curves.
I hope this works for you

Hi!
Thanks a lot and it works. We are able to pull in HTTPS data from Apache server with the same.
But when we try to run MQTT stack on top if it, we are getting error -0x7180 (SSL - Verification of the message MAC failed).
What could be the reason?

TLS shouldn't actually care what protocol you run on top of it. So, MQTT and HTTP should behave the same when secured by TLS.
Do you have a log file to see whether the TLS configuration changed in some way? At what point in the exchange does the MAC failure occur? After the handshake was completed successfully?

Maybe we should do a quick call to look at this together. Drop me an email at<EMAIL_ADDRESS>if you have time.

After discussions we found out that the application data traffic secrets were computed with the full transcript as input while OpenSSL uses (correctly) only the transcript up to the server.finished message. This bug has been corrected with https://github.com/hannestschofenig/mbedtls/pull/32

Dear Hannes,
Greetings!

 We have succesfully ported the stack to STM32 and we are able to do both MQTT and HTTPS communication. One point we observed it is that there seems to be a memory leak after we make a connection and close it.

 The function mbedtls_set_traffic_key sets up ciphers using mbedtls_cipher_setkey( &transform->cipher_ctx_enc, ...) and mbedtls_cipher_setkey( &transform->cipher_ctx_dec,...) calls. The memory allocated inside mbedtls_cipher_setup function is not cleared using mbedtls_cipher_free. We have called all the free functions at the end of the connection (mbedtls_ssl_close_notify, mbedtls_ssl_del_client_ticket and mbedtls_free_resource).

 Are we missing some thing?

 Apart of these there is one more leak involving some 8 bytes, which we are yet to identify.

 BTW still we are using the code based on signature_algorithms branch. I see that you have removed it. What is the code base you recommend us to move to?

Regards,
Saravana Pandian.S.A.
From: Hannes Tschofenig
Sent: Monday, October 5, 2020 6:22 PM
To: hannestschofenig/mbedtls
Cc: embien ; Author
Subject: Re: [hannestschofenig/mbedtls] Unable to connect to OpenSSL TLS1.3 Server (#28)
Closed #28.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


No Previews for LF Except Text Files on Gentoo

Hi,
My setup is:
Gentoo 64bit (Multilib) / OpenRC / EloginD / Xorg-Server / Nvidia-Proprietary Drivers / newly built, updated.
Packages from Gentoo Package Manager: Latest versions of ffmpeg, ffmpegthumbnailer, ueberzug, poppler, bat, libreoffice, pdftoppm (also tried installing ueberzug with pip3).

Edited ~/.config/lf/lfrc accordingly for ctpv.
All files are in $PATH.
I can only see text files' previews on lf. Other type of files are seen as "binary". With the same setup on Arch and Artix Linux I could have seen image previews with my own scripts. Now using my own scripts stuck on "loading" where images should be at and I can't even see text previews. With ctpv, there is no "loading" that is stuck but videos, pdfs, images are seen as "binary" files.
I am suspecting if it is related with policy, session management or any type of related stuff, since they are a little bit different in Gentoo as far as I understand. My other configs on lf work as before such as shortcuts, icons and other functions.
Any type of help is appreciated.
Thanks!

Solved: Recompile Python with "tk" use flag since Ueberzug requires tkinter. Found out about this by trying the command ueberzug layer which had output that states "no modules for tkinter".


XRD Plugin: Phi and Omega Rotation Scanning Data and Reciprocal Space Mapping  (RSM) Data are not parsed

When I try to use XRD plugin (from commit: 8326872c40ec41cdbd4e5ca82ae40aa4abd47b86) in the path https://github.com/FAIRmat-NFDI/nomad-measurements/tree/main/src/nomad_measurements/xrd  with a scan involving a single angle rotation,  I get this error from log:
"root":{
"normalizer":string"MetainfoNormalizer"
"section":string"ELNXRayDiffraction"
"event":string"could not normalize section"
"proc":string"Entry"
"process":string"process_entry_local"
"process_worker_id":string"AVDEYx0XSMO5hpT00-iGQA"
"parser":string"parsers/archive"
"step":string"MetainfoNormalizer"
"logger":string"nomad.processing"
"exception":string"Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/nomad/normalizing/metainfo.py", line 35, in normalize_section normalize(self.entry_archive, logger) File "/app/plugins/nomad_measurements/xrd/schema.py", line 671, in normalize line_linear = px.line( File "/usr/local/lib/python3.9/site-packages/plotly/express/_chart_types.py", line 264, in line return make_figure(args=locals(), constructor=go.Scatter) File "/usr/local/lib/python3.9/site-packages/plotly/express/_core.py", line 1990, in make_figure args = build_dataframe(args, constructor) File "/usr/local/lib/python3.9/site-packages/plotly/express/_core.py", line 1405, in build_dataframe df_output, wide_id_vars = process_args_into_dataframe( File "/usr/local/lib/python3.9/site-packages/plotly/express/_core.py", line 1245, in process_args_into_dataframe raise ValueError( ValueError: All arguments should have the same length. The length of argument `y` is 1799, whereas the length of previously-processed arguments ['x'] is 1"
"timestamp":string"2023-12-12 16:23.40"
"level":string"ERROR"
}

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/nomad/normalizing/metainfo.py", line 35, in normalize_section
    normalize(self.entry_archive, logger)
  File "/app/plugins/nomad_measurements/xrd/schema.py", line 671, in normalize
    line_linear = px.line(
  File "/usr/local/lib/python3.9/site-packages/plotly/express/_chart_types.py", line 264, in line
    return make_figure(args=locals(), constructor=go.Scatter)
  File "/usr/local/lib/python3.9/site-packages/plotly/express/_core.py", line 1990, in make_figure
    args = build_dataframe(args, constructor)
  File "/usr/local/lib/python3.9/site-packages/plotly/express/_core.py", line 1405, in build_dataframe
    df_output, wide_id_vars = process_args_into_dataframe(
  File "/usr/local/lib/python3.9/site-packages/plotly/express/_core.py", line 1245, in process_args_into_dataframe
    raise ValueError(
ValueError: All arguments should have the same length. The length of argument `y` is 1799, whereas the length of  previously-processed arguments ['x'] is 1

Parser seems to be load the right intensity array, but not the right angle array as the length of x and y arrays differ.

First array of RSM scan is parsed and plotted, contrary to Omega and Phi scans which are not parsed at all. It gives the warning as below:

"root":{
"normalizer":string"MetainfoNormalizer"
"event":string"Multi scan xrdml files are currently not supported. Only reading first scan."
"proc":string"Entry"
"process":string"process_entry_local"
"process_worker_id":string"r0DEmXsSRj6kevubiBdhKA"
"parser":string"parsers/archive"
"step":string"MetainfoNormalizer"
"logger":string"nomad.processing"
"timestamp":string"2023-12-15 12:43.15"
"level":string"WARNING"

All data files uploaded have file format of *.xrdml

Hi @haltugyildirim, I am sorry for the delay in getting back to you. Is this still an issue? If so, can you share the raw xrd file with me?


Update Android Gradle Plugin to version 2.2.0.

I signed it!

We do the versions upgrade, but thanks!


crashed when game starting

any idea why the game crashed when opened, its not even loading any maps

me too

Apparently people dont understand that this version is not even built for hl1, here is a working version
https://www.mediafire.com/folder/na87prkb54kd0/HL1_RAGDOLLS
Only works with ld models (so the original models, not the "hd" or custom models)

is this repo is the one working for xash fwgs?
also i have tried the one came from mediafire and it kinda works, is the source code available by any chance? thanks for the answer!


options.ios.sound true or false not working

Hi,
I have two questions:

I'm able to receive notifications in my app etc. now I want to add a mute button in my app so you can turn of the push notifications sounds. When I set the options.ios.sound to false I'm still receiving notifications with sound. What I understand from the documentation is you can enable of disable the notification sound with options.ios.sound. Am I doing something wrong or do I misunderstand the documentation?

Is there a way to auto increment the badge number when multiple notifications are received with this plugin?

My app is using ionic and I test my app on a real device with iOS 9.
Thanks!
Maik

@Jarvey okay, wow learned something new today. Apparently in iOS there is no way to programmatically turn off sound in your push notifications if you initially register for sounds. Only the user can do this by going to the notifications settings for the app and turning it off.
The only way I can think of to handle this programmatically is making your server smart enough not to send the sound info when you don't want a sound to be played. So if you give your user some way to turn sound off it should go to your server and store a value not to send sound to that registration ID.
At least that is my understanding but I'd love for someone to independently verify that I'm not wrong in this case.

@macdonst , thanks for your reply. I already found it strange that your documents indicate it was possible. Also according to my knowledge it is not possible to mute notifications sounds in iOS other than via a notification server.

@Jarvey yeah, I think I'm going to have to update the docs in order to handle this one. I was basing this push plugin off the old one which gave me the false positive.


网易云跟帖评论和热门文章一同加载时的错误显示

Expected behavior (预期行为)
热门新闻和评论一起加载出来
Actual behavior (实际行为)
只加载了评论
Steps to reproduce the behavior (重现步骤)
NexT Informations
Add the  ✔  sign before an item which is affected by this behavior.
NexT Version:

Master ✔

NexT Scheme:

Mist ✔

Other Informations (Like Browser, System, Screenshots)

@cduyzh don't understand u, write in English if not solved. If solved, close it please. Thank's!


Sugestion: Audio

Hi
Just tested your "Fix audio" tool.
Two suggestions:

"Fix audio" should reset the volume to 50% or so, in case the user didn't realize they have the volume at 0%. "Fix audio" keeps the current volume.

In the end of the "Fix audio", an audio sample could be played (by pressing 'A'), so the user could test that the audio is actually fixed, and not an emulator issue.

Thanks

Good suggestions.  I've incorporated the suggestions.  If you could help me test this and provide feedback, it would be helpful.

Take the attached compressed file (arkosbackup.tar.gz) and put it in your roms/backup folder. Do not uncompress the contents! Just place the file as is in your roms/backup folder. If you don't have a backup folder in the roms folder, just create it.

Then go into the Emulationstation Menu, scroll to Options, hit A, then go to Advanced, hit A, then scroll all the way down to Restore Settings, hit A.

Once completed, reboot the device.

Then go into the Emulationstation Menu, scroll to Options, hit A, then go to Advanced, hit A, then select Fix Audio., hit A.

I'll await your feedback.  Thanks,
arkosbackup.tar.gz

5 stars! Perfect!👌🏼

This has been included with today's update.


Scraping renaming to have a separate option to toggle on and off feature request

Issue description
As the title suggests.
Don't know if this is the greatest channel for submitting feedback or request a feature, lol. But I've been feeling like this an option in the scraping features within EmulationStation that is sorely missing for the 2 years I've been playing with Batocera that both use EmulationStation as a frontend, instead of using a 3rd party app like Skyscraper or the like.
Just like you can omit descriptions, manuals, fanart, ratings, whether to download a 3D box art vs. a 2D box art... there should be an option to omit renaming, especially at a grand scale of doing your entire list of games, especially if columns contain weird extra spaces, or you have too many romhacks in your collection... and if you have already scraped your collection and you already have renaming perfectly done for most of your titles including your romhacks/mods... I wish there was a way to toggle off renaming to avoid erroneously renaming hundreds of romhacks.
Please add this feature when scraping a way to toggle off renaming, whether you do it for all your platforms, per console/platform scraping or to individual games... the toggle switch to opt-in and opt-out would be indispensable.
Thanks for hearing me out if this gets to the proper parties.
EDIT: I see that ES-DE version of ES has the options we're looking for. Batocera should add this feature to their own fork at some point. It would be sweet.
https://www.youtube.com/watch?v=js_m_jVnX2s&t=200s
They just added the Overwrite names toggle options for Scrapper in the 6.2.0 update of Retrobat's emulationstation shortly after asking and proving an example.  Hope this is also added to Batocera as well soon.

These 3 overwrite settings do already exist in Batocera EmulationStation.

These 3 overwrite settings do already exist in Batocera EmulationStation.
See #1725

It is, because on the latest Stable, just checked.

Is it on the beta instead? If it is, is there anything I need to be aware of about the current latest beta before I make the jump?

in the next beta


Please add API to disable IME

I am a Chinese vim user. Input Chinese text in Atom with vim-mode (or vim-mode-plus) is very inconvenient:
When I do some input in insert-mode (or replace-mode) and back to normal-mode, the IME is not disabled automatically, that means all normal-mode command can not be used directly, I have to press additional Ctrl+Space to disable IME, and when I enter insert-mode (or replace-mode) again, I have to press Ctrl+Space again to input Chinese text.
All I required is: when I am in normal-mode IME should be disabled automatically, and when I enter insert-mode again, the IME status should be recovered.
I have submitted a issue in vim-mode-plus: https://github.com/t9md/atom-vim-mode-plus/issues/148 , but the author of vim-mode-plus tell me this feature needs atom-core to provide a new API to disable IME.
I have noticed that there is a related issue already (issue #1092) , but it seemed that issue is caused by MacOSX's special feature and has a workaround already. And for my problem, there is no acceptable workaround, so I submitted this issue.
P.S: VIM has already support automatic IME disabling for many years. This is a very useful feature for document writing in non-western language.

This is a duplicate of #1092. Please subscribe there for updates.

There is a workaround on OS X, yes. But the underlying issue in both cases is that there should be an API to control this, so the resolution is the same for both.


test(routes): PATCH /session/account/profile error for admins

Changed test to 404 and test is now failing.
Line 110 had been added since the example linked and the "Bad Request" title did not match the requested error on this failing route. I am not sure what name might fit so I  commented out for now.

fixes #103

Looking good so far. response.result.errors[0].title should now be 'Not Found'

I found I hadn't completely updated the tests to what the issue was looking for. I had left it with "Admins have no account" error and the issue was asking for it to be "Admins have no profiles". The tests now reflect that and the "Not Found" title. The route should now be returning the appropriate message.  :smile:

the PR is ready for review now, right? I’ll have a look as soon as possible myself, sorry for the delay

yep it is, looking good :)
ping @hoodiehq/maintainers for 2nd review :eyes:

LGTM :)

LGTM

merged via b3773af & 0ea20cb :+1:


Sensors options crush on resales.

Required Info

Camera Model
D415

Firmware Version
<IP_ADDRESS>

Operating System & Version
Win (10)

Platform
PC

SDK Version
V 2.23.0

Language
C#

Segment
others

Issue Description
Hi all
I am using RealSense D415 for record images , I need to control the Emitter .
and change his status at every 30 seconds.
In resales mode - thc code crashe very fast.
but didnt get to the "Catch arae", just close the app.
In debug mode - all is OK.
What I am Missing?
the image acquiring process is running at the same time.
Here is my Code
public bool EnableIrPattern(bool enable)
{
        try
        {
            Utils.Logger.Info($"RS EnableIrPattern enables = {enable}");

            using (var ctx = new Context())
            {
                var devices = ctx.QueryDevices();

                if (devices.Count == 0)
                {
                    Utils.Logger.Info($"devices.Count == 0)");
                    return false;
                }
                var realSenseDevice = devices[0];

                var depthSensor = realSenseDevice.Sensors[0];
                optEmitterEnabled = depthSensor.Options.First(x => x.Key ==
                 Option.EmitterEnabled);

                if (!optEmitterEnabled.ReadOnly)
                {
                    Utils.Logger.Info($"RS 6");
                    optEmitterEnabled.Value = (float)(enable ? 1.0 : 0.0);
                }
            }

        }
        catch (Exception ex)
        {
            Utils.Logger.Error(ex);
            return true;
        }

        return true;
    }

@ElyasafAriely , the code fragment is not very informative.
It is not clear how the code is built - whether the depth acquisition is performed in the same or a separate executable, and if not -  which thread actually fires the exception.
Can you attach the callstack dump that shows where the exception actually triggered ?
Please generated and provide librealsense log file for inspection, additionally attach the console log as Librealsense-raised exception are all passed on to the user's code.


Support multiple file outputs for cog predict

It currently just outputs the plain JSON if there isn't a single file output.
Migrated from a todo in https://github.com/replicate/cog/pull/378.

The old multiple-output proposal had some ideas for how to handle this: https://github.com/replicate/cog/pull/328


Run DevStartInContiner.sh on ARM

I was trying to run the databox-container-manager on Raspberry Pi. To do that, first I change the line -t node:latest npm --prefix /cm start in DevStartInContiner.sh to -t hypriot/rpi-node npm --prefix /cm start.
After a successful npm install  I ran ./DevStartInContiner.sh, but came across error messages as below:

{"errorDetail":{"message":"Error while pulling image: Get http://localhost:5000/v1/repositories/databox-arbiter-arm/images: dial tcp [::1]:5000: getsockopt: connection refused"},"error":"Error while pulling image: Get http://localhost:5000/v1/repositories/databox-arbiter-arm/images: dial tcp [::1]:5000: getsockopt: connection refused"}

So following the instruction, I ran sh ./updateLocalRegistry.sh. It successfully pulled databox-arbiter, databox-driver-twitter-stream, databox-store-blob, and databox-logstore (each for both localhost:5000/ and toshdatabox/ versions, so 8 docker images in total). But I also get some output like this:

Put http://localhost:5000/v1/repositories/databox-app-twitter-sentiment/: dial tcp [::1]:5000: getsockopt: connection refused

Then I ran ./DevStartInContiner.sh and still get the same error messages.
The docker version I use is 1.13.0, build 49bf474.

As I said in the last email the images all need to be rebuilt for arm. This has not been done yet. There are other priorities.
If you want it to work on arm the last email had a link to the instructions for rebuilding the images.
I would suggest sticking to x86 for now. Things are still changing rapidly so I don't want the overhead of managing 2 sets of images.
Cheers
Tosh
Get Outlook for Androidhttps://aka.ms/ghei36
From: J. Roger Zhao
Sent: Tuesday, 21 February, 11:15
Subject: [me-box/databox-container-manager] Run DevStartInContiner.sh on ARM (#35)
To: me-box/databox-container-manager
Cc: Subscribed
I was trying to run the databox-container-manager on Raspberry Pi. To do that, first I change the line -t node:latest npm --prefix /cm start in DevStartInContiner.sh to -t hypriot/rpi-node npm --prefix /cm start.
After a successful npm install I ran ./DevStartInContiner.sh, but came across error messages as below:
{"errorDetail":{"message":"Error while pulling image: Get http://localhost:5000/v1/repositories/databox-arbiter-arm/images: dial tcp [::1]:5000: getsockopt: connection refused"},"error":"Error while pulling image: Get http://localhost:5000/v1/repositories/databox-arbiter-arm/images: dial tcp [::1]:5000: getsockopt: connection refused"}
So following the instruction, I ran sh ./updateLocalRegistry.sh. It successfully pulled databox-arbiter, databox-driver-twitter-stream, databox-store-blob, and databox-logstore (each for both localhost:5000/ and toshdatabox/ versions, so 8 docker images in total). But I also get some output like this:
Put http://localhost:5000/v1/repositories/databox-app-twitter-sentiment/: dial tcp [::1]:5000: getsockopt: connection refused
Then I ran ./DevStartInContiner.sh and still get the same error messages.
The docker version I use is 1.13.0, build 49bf474.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/me-box/databox-container-manager/issues/35, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABIaO1essEIlvxM0F7yPPyVGbWWuVfdTks5resaogaJpZM4MHLc8.
This message and any attachment are intended solely for the addressee
and may contain confidential information. If you have received this
message in error, please send it back to me, and immediately delete it.
Please do not use, copy or disclose the information contained in this
message or in any attachment.  Any views or opinions expressed by the
author of this email do not necessarily reflect the views of the
University of Nottingham.
This message has been checked for viruses but the contents of an
attachment may still contain software viruses which could damage your
computer system, you are advised to perform your own checks. Email
communications with the University of Nottingham may be monitored as
permitted by UK legislation.


Feature Idea.

Hey guys, been doing a lot of work on running simulations with the simulations auto backtester.
I was wondering, if you guys were interested, trying to output the estimated coin rise/fall percentage for the next 24 hours. in one script (however that's done.) then using my script that alternates periods for trend_ema and your backtesting script that alternates the RSI. I think you guys would be very interested in implementing this into your backtesting script that alternates RSI, as, you'll be able to lower the processing time. You would also be able to alternate the period in the second half of the backtesting script where RSI is alternated since this will be a lot quicker.
How can I code something that will tell me this using zenbot? :)
This will give us the best coin option every day.

Can I do this by setting period to 24hrs?

you could make a call to an api to get that data.
On Sat, Jul 15, 2017, 12:16 AM TheRoboKitten<EMAIL_ADDRESS>wrote:

Can I do this by setting period to 24hrs?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/carlos8f/zenbot/issues/382#issuecomment-315489170,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALhf8nCDN5PqJhKt4Jw74MZ3EOyV0k70ks5sN_bBgaJpZM4OY09Y
.


fix(deps): bump springBootVersion from 3.1.3 to 3.1.4

Release notes: https://github.com/spring-projects/spring-boot/releases/tag/v3.1.4

Preferring the Dependabot PR: #391


Updated XR SDK documentation

Overview
Updated documentation to consistently refer to XR SDK, rewrote the getting started with XRSDK guide.

/azp run

/azp run

/azp run mrtk_docs

/azp run mrtk_docs

/azp run mrtk_docs

/azp run mrtk_docs


Bug with maxMessagesPerChannel

Hello,
The property maxMessagesPerChannel for the backup create function does not work. It always saves 100 messages for the channel.

Thanks for bringing this up @SjogrenDev, It looks like there is a fetch limit of 100 for the discord request for messages in utils.js. This is currently in place to help prevent rate limiting since messages are fetched for each channel in the server. This is something that would require testing to ensure there is not any problems at scale when storing more than 100 messages per channel. When I have more time to work on this, I will include it in the next release.
In the meantime the maxMessagesPerChannel option defaults to 10 and will work up to 100 which is when the fetch limitation kicks in.

maxMessagesPerChannel now works as expected in v0.5.9, the fetch limit is now set to the same value as maxMessagesPerChannel
Thanks again @SjogrenDev for bringing this to my attention.

When you exceed 100 for maxMessagesPerChannel the following error occurs: limit[NUMBER_TYPE_MAX]: int value should be less than or equal to 100.
Im not sure whether or not this is something that can be changed or not, but this will require digging into the discord.js documentation for any other fetch options and perhaps restructuring the message fetching to fetch in batches. This error would explain the reason the original discord-backup package uses the 100 message limit.
@SjogrenDev Unfortunately for the time being this issue continues to not be resolved in v0.6.1

That's normal, if you want I can implement a feature to fetch more than 100 messages but that would cause huge backups. The original issue was that even if you used a value like 3, it would still fetch the 100 messages.

Ohh I see, I misunderstood the issue initially, so the desired solution is to simply reduce the number of messages fetched if maxMessagesPerChannel is less than 100, in other words set the fetch limit to (messageCount < 100 : messageCount : 100)
Is this correct?

Yep, that’s correct. If you want I can add recursive message fetching to the function, it will just take more time and resources.

I guess I could improve this too:
Backup create options
doNotBackup: ["roles", "channels", "emojis", "bans"],
backupMembers: false,
We could remove backupMembers boolean and include it in doNotBackup.

If you have a need for more than 100 messages, I would happily merge a PR for it, but I don't think its too common of a use case. Unless you want to add the recursive fetching, I can make the change by end of day. Im unsure on if we can add backupMembers to the doNotBackup array, by default members are not backed up, so for this function to work, it would need to default to true.

I don't think that amounts over 100 messages per channel are needed. Seems like you fixed the issue where it always saved 100 messages, so this issue can be closed.


Load the 3D scene cost too much time, and the browser will load the same scene as the before I loaded, is there a good solution? Thank you very much.

BrokenPipeError: [Errno 32] Broken pipe
This is the common error, why did this error occurs?

Hi @yrk-creator,
Thanks for the feedback! Would it be possible to share a minimal example code that causes this error?

Hi, thank you for your fast response.
I am using this tools to visualize the 3D scene in ScanNet and S3DIS, the visualization code is the same as it is in "Mask3D". When I visualize the scene, it seems to load for a long time, and sometimes it suggests the "BrokenPipeError: [Errno 32] Broken pipe".

Is there any requirements for browsers, or some settings should be opened?  Thank you.

If you are using Chrome, could you please share the output of 'View/Developer/Javascript Console'?

This is the point cloud scene, but the cosole outputs nothing.

I will check the point cloud data again, to ensure where the problem lies in, thank you.

I ensured that there is no errors in the point cloud data, so the problem lies in the browser. When I load the scene, the Instance%20(GT) that doesn't rendered has no Request head, but the loaded points get the request head.

This is the console output, hope this imformation could be useful, thank you.

Thanks, I see you are using Mask3D, I will try to replicate the error here.

OK, thank you, the scene shows normally after serveral hours, but it takes a long time. So if there are some settings with the browsers would be better.

Hi @RongkunYang, @francisengelmann
I've encountered the same problems, and after clearing Chrome's cache I got the right results. However, clearing the cache each time I visualize a scene is quite frustrating, so I want to know if you have any better solutions.

Thanks for the reply @francisengelmann.
Unfortunately, if I use these keyboard shortcuts to reload the page, I will directly run into the faulty visualization problem mentioned above. And if I simply use F5 to reload, the browser gets the data from the disk cache, leading to visualizing the previous scene.
I found a better solution for my case today. I used F12 to open the developer tools and selected 'disable cache'. Then when I keep the developer tools page open and reload the page with F5, I can get the new scene data.


Accessors should be type checked

Copy and pasted from internal bug b/159352737:
Setters, at least message and group setters, should check set type.
We set the type of on group/ message fields in proto to be
(or nil message-type) instead of message-type. This is so
we don't cons an unneeded proto structure.
This means we can setf the field to nil without, which shouldn't be allowed.
We can fix this by type-checking the input.
We should also declare the return type of an accessor.
This will allow a smarter compilation.

For setters we used declare, so it works for SBCL.
On other compilers it does lesser things...
For the accessors we use "the" so the return is properly typed.


Python packages.datetime

Description of changes

New package https://github.com/zopefoundation/DateTime
This package provides a DateTime data type, as known from Zope.
Rationale: I want to add https://github.com/lit26/finvizfinance in a subsequent commit, which depends on Zope.DateTime.
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[X] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[X] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/2100

LGTM, thanks!

Thanks for taking the time to review this!

Please wait a moment as I would like to hear from other reviewers.

Sure, no worries.

I will check other PRs as well.

Thanks - I assume similar changes would need to be done there, so I guess let's wait for the other reviewers as well in case they have other comments and I'll re-do the other PR as needed.

@ofborg build python310Packages.datetime


Score updated by distance

Score updated by distance:

Updating every 0.1 seconds.
Dividing player global position in x by 1000 to get smaller numbers

@ernesgonzalez33 Pulled the branch, tested it, looked good here so merged it.


Add tools unpacking for vLLM

What this PR does / why we need it: Currently, we pass in the list of tools directly as ChatCompletionTool objects, but we need to unpack it to dict first otherwise vLLM will complain. Same method as https://github.com/ArjunBhalla98/kserve/blob/arjunbhalla98_tools/python/huggingfaceserver/huggingfaceserver/generative_model.py#L404
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Type of changes
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Feature/Issue validation/testing:
Please describe the tests that you ran to verify your changes and relevant result summary. Provide instructions so it can be reproduced.
Please also list any relevant details for your test configuration.

[ ] Test A

[ ] Test B

Logs

Special notes for your reviewer:

Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

Checklist:

[ ] Have you added unit/e2e tests that prove your fix is effective or that this feature works?
[ ] Has code been commented, particularly in hard-to-understand areas?
[ ] Have you made corresponding changes to the documentation?

Release note:

Re-running failed tests

/rerun-all - rerun all failed workflows.
/rerun-workflow <workflow name> - rerun a specific failed workflow. Only one workflow name can be specified. Multiple /rerun-workflow commands are allowed per comment.

/lgtm


Remove version: 7zip.7zip.Alpha.msi version <IP_ADDRESS>

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

URL: https://sourceforge.net/projects/sevenzip/files/7-Zip/21.03/7z2103-x64.msi/download
OK
(Automated message - build 923)

Close with reason: Package still available;


Simple way to export grayscale depthmap & a Scanning App please

As in the title - I think Microsoft needs to think of the AzureK being used by non coders.
The key to mass adoption (and innovation) is when the thinking behind the code being released has a way of reaching a wider demographic - I speak from a creative-filmmaker angle.

There is an OpenCV example of using the AzureKinect to scan models/build an environment. Why cant MS release an .exe instead of making non coder have to jump through hoops to compile?

How about a simple commandline/Gui based system to convert the 16bit depth images recorded by kinectrecorder (within the .mkv file) to a typical 8bit grayscale png sequence?

Hoping you consider this.
Regards.

@dirrogate , thank you for your feedback. Azure Kinect is the dev kit, and therefore our focus is to build API for developers to work with the device so they can build their own applications. All code samples we released so far are for developers to learn how to use the code. At this point there's no plan to release complete applications for non developers.

That's just the point, @Tesych
Would you rather have developers (read) coders working in a vacuum or would a healthy cross-developmental effort for the AzureK lead to exponential adoption of 'developed ideas' and create a feedback based loop.
Developers aren't necessarily (and don't need to be) creative / artistes. But they do need creative ideas to feed off of.

@dirrogate we really appreciate your feedback! I would suggest to describe your idea on our customer voice and if it will receive high number of votes, we will consider implementing it.

Honestly, @tesych,  "Implement?" Isn't it a matter of compiling the source code that is already up on this Git and putting out an .exe like the AzureKinect recorder .exe?
I'm sorry, (just being politically correct using that phrase) but all that's being asked is the code be compiled into a functional .exe for developers out there that are using the AzureKinect.
Since when did being a developer= mandatory coding prowess?
I don't think code savvy developers are "Full Stack" either.  In this sense, them having creative knowledge to film volumetrically, find best use cases for Volumentic documenting of archeology / architecture etc...
Sorry (again) but I think it's myopic of a dept. at AzureKinect to think of developer kits as being solely for those writing code.
When the Oculus DK1 was launched - as a filmmaker, I was one of the first to put out content without touching a single line of code in Unity. Ideas and output put forth from the completion of that stereoscopic VR film gave birth to actual code being written for Adobe's immersive plugins.
It's a simple request really that will benefit sales of the AzureKinect. It's not my job per-se to accelerate sales. I can show you how, though.
I can , and I guess I will have to, get it done by a third party - but that won't benefit the community as whole.
Someone at AzureKinect Dev dept - needs to talk to alert Customer voice, and complete this loop.
Best Regards.


operator-sdk up local creates an ERRO[0000] that cannot be resolved by the user

As far as I understand, the following error:
$ user@host on master > operator-sdk up local
INFO[0000] Go Version: go1.11
INFO[0000] Go OS/Arch: darwin/amd64
INFO[0000] operator-sdk Version: 0.0.5+git
ERRO[0000] failed to initialize service object for operator metrics: OPERATOR_NAME must be set

Cannot be resolved by the user who is running the sdk locally.  My preference would be not to see it, unless there is a way that I can do something meaningful to resolve the message properly.
@fanminshi @robszumski @hasbro17 fyi, thanks!

Setting OPERATOR_NAME in your shell or removing sdk.ExposeMetricsPort() from file cmd/${your_operator}/main.go should resolve this issue.

@estroz yeah, your approach works. However, we should prevent this warning from happening if the user is running the operator locally.

I would suggest we set the environment variable OPEATOR_NAME as part of up local process, we have the operator name as we parse the config file which contains ProjectName https://github.com/operator-framework/operator-sdk/blob/280ebfaef7d43ff6712fe7358480c69e750a29cc/pkg/generator/gen_config.go#L30.
That would fix the error msg and also generate the metrics service file, but maybe the best solution would be come up with a different way on how to get the operator name in general.

@LiliC Reopening this since it got closed when #564 got merged. We decided not to fix it in #564 and instead go with the approach you've suggested above, to pass in the env var to operator-sdk up local. We'll have to do that in another PR.

hi, meanwhile, a note in the user-guide would be nice. Because going through the guide you hit this right away

Think this should actually be fixed now, both leader election and metrics do not fail when running locally, just log the errors. Feel free to reopen if it's still an issue.


pin.set_analog_period(0) stops PWM output from working again

To replicate, in the REPL while watching pin16 in an oscilloscope or signal analyser:
>>> pin16.write_analog(512)                 # signal appears at 50 Hz
>>> pin16.set_analog_period(1)              # signal at 1 KHz
>>> pin16.set_analog_period_microseconds(1) # signal at 1 MhHz
>>> pin16.set_analog_period_microseconds(0) # signal always high
>>> pin16.set_analog_period(1)              # signal still always high

I'll try to replicate with CODAL as well and raise an issue there if necessary.

Raised in CODAL:

https://github.com/lancaster-university/codal-microbit-v2/issues/243


etcd URL in kube-apiserver

Hi!
I have discovered an issue with the current etcd URL setup in the kube-apiserver job.
When using collocated etcd and specifying every URL for etcd, kubernetes API
stops responding if one of the etcd nodes goes down. The problem can be mitigated
by specifying <IP_ADDRESS> as the etcd address, as recommended by the Google guide.
Test scenario:
Deploy a cfcr cluster with three master nodes using an outdated stemcell.
Start the stemcell update process. Try to call kubectl get all command,
it will sometimes get frozen for long periods of time.

After the various fixes related to multi-master and etcd aliases, I'm not seeing this happen when etcd goes down.
Steps:

Deployed 3 Master, 3 Worker cluster.
Set a watch kubectl get all --all-namespaces in one (local) terminal.
SSH'd into master/0 and stopped etcd: monit stop etcd

Confirmed via ps

Observed no API failures in the watch and ran the same kubectl get all --all-namespaces on master/0 repeatedly without issue.

I'm also not sure what we could do about this with the recent discovery regarding certificates and SANs in etcd. The short version is that by connecting over localhost/<IP_ADDRESS> the certs need to have a SAN for localhost/<IP_ADDRESS>, but by adding a SAN, etcd does a second round of certificate validation that doesn't seem to play nicely with bosh-dns (it's unable to resolve the IP address to the alias and therefore rejects inbound connections).
I'm also not entirely convinced that we should be connecting through localhost/<IP_ADDRESS>: https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd#multi-node-etcd-cluster
In the High Availability docs, the API server and etcd are being self-hosted, which is similar to being colocated, but not identical (they also use a discovery token the bootstrap the etcd cluster, among other things). They also only connect to a single etcd instance rather than the full list as suggested in the other doc. That's something I've gone ahead and tried out, but if anything, its only served to make the node more brittle (once etcd goes down, that apiserver ceases to respond and kubectl will simply hang).

What I can see happen during upgrade is that occasionally a request to the load balancer appears to fail partially. Presumably because it's hitting the master node that's rolling through an upgrade and kube-apiserver/etcd are in some unknown/initial state. When this happens, the pods listing fails, though other elements do show:
$ kubectl get all --all-namespaces
NAMESPACE     NAME                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
default       kubernetes             ClusterIP   <IP_ADDRESS>     <none>        443/TCP         16m
kube-system   heapster               ClusterIP   <IP_ADDRESS>    <none>        8443/TCP        5m
kube-system   kube-dns               ClusterIP   <IP_ADDRESS>    <none>        53/UDP,53/TCP   5m
kube-system   kubernetes-dashboard   NodePort    <IP_ADDRESS>   <none>        443:30324/TCP   5m
kube-system   monitoring-influxdb    ClusterIP   <IP_ADDRESS>   <none>        8086/TCP        5m

NAMESPACE     NAME                   DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
kube-system   heapster               1         1         1            1           5m
kube-system   kube-dns               1         1         1            1           5m
kube-system   kubernetes-dashboard   1         1         1            1           5m
kube-system   monitoring-influxdb    1         1         1            1           5m

NAMESPACE     NAME                              DESIRED   CURRENT   READY     AGE
kube-system   heapster-7cf4bfcf                 1         1         1         5m
kube-system   kube-dns-b84b46b5                 1         1         1         5m
kube-system   kubernetes-dashboard-6bc7f5856b   1         1         1         5m
kube-system   monitoring-influxdb-bc594c557     1         1         1         5m
The connection to the server <Loadbalancer IP>:8443 was refused - did you specify the right host or port?

The missing chunk:
NAMESPACE     NAME                                    READY     STATUS    RESTARTS   AGE
kube-system   heapster-7cf4bfcf-7tpj4                 1/1       Running   0          5m
kube-system   kube-dns-b84b46b5-lfs4m                 3/3       Running   0          5m
kube-system   kubernetes-dashboard-6bc7f5856b-9lqqw   1/1       Running   0          5m
kube-system   monitoring-influxdb-bc594c557-vnz4t     1/1       Running   0          5m

Just to track down what's happening:
$ kubectl get all --all-namespaces -v 8 |& tee output.txt
...
I0501 18:10:13.960195   43323 round_trippers.go:383] GET https://<Loadbalancer IP>:8443/api/v1/pods?limit=500
I0501 18:10:13.960207   43323 round_trippers.go:390] Request Headers:
I0501 18:10:13.960211   43323 round_trippers.go:393]     Accept: application/json
I0501 18:10:13.960216   43323 round_trippers.go:393]     User-Agent: kubectl/v1.10.0 (darwin/amd64) kubernetes/fc32d2f
I0501 18:10:13.960221   43323 round_trippers.go:393]     Authorization: Bearer lHtzW81QaCNWH1JBZ2wGyJVfuMQdU5
I0501 18:10:14.023575   43323 round_trippers.go:408] Response Status:  in 63 milliseconds
...

The GET pods request is the first in the line, so I think that the load balancer issues the request to our upgrading node, recognizes that there's nothing there to respond successfully, and then points all of the remaining requests (replicationcontrollers, services, daemonsets, deployments, replicasets, statefulsets, horizontalpodautoscalers, jobs, and cronjobs) to a working node. Sometime later (assuming the upgrade hasn't completed), the load balancer will retry that node.
This is pretty easy to replicate by simply SSHing onto master/0 and issuing monit stop kube-apiserver before going back to kubectl. I'm not sure that this is anything we can aim to fix, and I'm skeptical that there's any change we could make to the way kube-apiserver talks with etcd that would address it.

CI will soon have tests that cover API uptime during upgrades (both CFCR and stemcell). If this is still a problem and I was just lucky during my testing, it'll likely get caught there.
We'll go ahead and re-open and rename this issue if it crops back up. In the meanwhile, I'll go ahead and close it out. Thanks!


Localization

Hello. How i can localization your lib? I need change "Edit Photo" to my language

Add  <string name="ucrop_label_edit_photo">Edit Photo</string> in your string.xml with localized language.

@Dhaval2404 Thanks! And how I can localized "Camera" and "Gallery"

@serrokitskiy Please check this link for string localization. You can override the string as per your need.

@Dhaval2404 Thanks!

<string name="ucrop_label_edit_photo">Edit Photo</string> not works for me, It's not available in strings.xml file too.


tests/language/nnbd/syntax/class_member_declarations_test.dart fails to type check

Quoting the relevant parts of the test:
class A {
  ...
  late int x27;
  ...
}
...
main() {
  A? a;
  String? s = '';
  a?..foo().length..x27 = s!..toString().length;
}

The analyzer is giving the following errors on the last line:
ERROR|STATIC_TYPE_WARNING|INVALID_ASSIGNMENT|/b/s/w/ir/cache/builder/sdk/out/ReleaseX64NNBD/generated_tests/language/nnbd/syntax/class_member_declarations_test_none.dart|79|27|2|A value of type 'String' can't be assigned to a variable of type 'int'.
ERROR|STATIC_WARNING|UNCHECKED_USE_OF_NULLABLE_VALUE|/b/s/w/ir/cache/builder/sdk/out/ReleaseX64NNBD/generated_tests/language/nnbd/syntax/class_member_declarations_test_none.dart|79|4|8|The expression is nullable and must be null-checked before it can be used.
ERROR|STATIC_WARNING|UNCHECKED_USE_OF_NULLABLE_VALUE|/b/s/w/ir/cache/builder/sdk/out/ReleaseX64NNBD/generated_tests/language/nnbd/syntax/class_member_declarations_test_none.dart|79|3|1|The expression is nullable and must be null-checked before it can be used.

I believe the analyzer is correct in issuing an error here, since the type of s!..toString().length is the same as the type of s!, which is String, whereas the setter for x27 requires an int.
@eernstg you wrote this test--can you confirm whether my analysis is correct, and if so, suggest how the test should be fixed?

Duplicate of #39823


[MAR] update mobile client breadcrumb link to navigate to resource list

Description
At the moment, the mobile client breadcrumb link is directing to a page that does not exist, therefore it links back to the openshift landing page. This should direct to the mobile client resource list instead (Resource > Mobile Client)
Progress

[x] update mobile client breadcrumb link to navigate to the mobile client resource list.

Additional Notes
Related JIRA - https://issues.jboss.org/browse/AEROGEAR-3076
Screenshots

@sedroche updated :)


Safeguard SecureRandom.uuid

This is a follow up to https://github.com/buildkite/test-collector-ruby/issues/131.
Our test suite stubs SecureRandom.uuid in various places so enabling [test-collector-ruby](https://github.com/buildkite/test-collector-ruby) breaks our test suite.
We thought this was fixed with https://github.com/buildkite/test-collector-ruby/pull/133 but we still see this happening.
I believe the best approach is to just safe guard SecureRandom.uuid by storing a private reference to the method.

Closed in favour of #192


Use https://download.suse.de

download.suse.de is a download redirector that redirects to the most
local installation of the repositories, which is better than hardcoding
the provo site, for cases when VMWare is not deployed in Provo but lets
say, as an example, in Nuernberg.
Also, try to use https:// as it is 2020 after all.
Why is this PR needed?
The business case is reducing inter-continental traffic between provo and nbg.
What does this PR do?
See commit message.
Anything else a reviewer needs to know?
No.
Info for QA
This does not need to be tested for QA
Related info
Here's some information on why HTTPS should be used by default:
https://web.dev/why-https-matters
Status BEFORE applying the patch
The wrong download sites are used.
Status AFTER applying the patch
The right download sites are used.
Docs
No documentation updates needed.
Merge restrictions
(Please do not edit this)
We are in v4-maintenance phase, so we will restrict what can be merged to prevent unexpected surprises:
What can be merged (merge criteria):
    2 approvals:
        1 developer: code is fine
        1 QA: QA is fine
    there is a PR for updating documentation (or a statement that this is not needed)

conflict and not touched in several months, closing it. Feel free to reopen if needed.


feat: add image preview component but ineffective

fixed #47

Wrong！ wrong！ That's not the desired effect.
https://github.com/elonehoo/elonehoo.me/assets/43719490/9bb0d079-191c-40ec-b249-73924c1318de

After:
https://github.com/elonehoo/elonehoo.me/assets/43719490/9270f38d-0846-4c15-b76a-fd1a820799a2


webhook_url's wrong when using absolute url in config/cashier.php

I'm currently testing with ngrok and specify the webhook url's as absolute url's as seems possible looking into the comment in the config file.
.env
NGROK_URL="https://83da-89-205-136-216.ngrok-free.app"

config/cashier.php
/**
  * The default aftercare webhook url is called by Mollie on refunds and chargebacks. You can use either a relative or
  * absolute url.
  */
 'aftercare_webhook_url' => env('NGROK_URL') ? env('NGROK_URL').'/webhooks/mollie/aftercare' : 'webhooks/mollie/aftercare',

When creating a new subscription in my controller like this:
$result = $tenant->newSubscription($name, $request->plan)
                        ->trialDays(config('saas.trial_days'))
                        ->create();

I get redirected to Mollie. And back after payment.
(without the ngrok url I get an error back from mollie that the webhook is unreachable. This is expected).
So far nothing wrong. Then however mollie calls the webhook and things go wrong.
In FirstPaymentWebhookController the handleWebhook method goes wrong.
Looking into vendor/mollie/laravel-cashier-mollie/src/Cashier.php (when adding some logging) you can see that the domain is stripped:
/**
     * Get the aftercare webhook relative url.
     *
     * @return string
     */
    public static function aftercareWebhookUrl()
    {
        Log::debug('aftercareWebhookUrl '.config('cashier.aftercare_webhook_url'));
        Log::debug('pathFromUrl '.self::pathFromUrl(config('cashier.aftercare_webhook_url')));

        return self::pathFromUrl(config('cashier.aftercare_webhook_url'));
    }

gives:
[2023-06-16 15:23:00] local.DEBUG: aftercareWebhookUrl https://83da-89-205-136-216.ngrok-free.app/webhooks/mollie/aftercare
[2023-06-16 15:23:00] local.DEBUG: pathFromUrl webhooks/mollie/aftercare

In FirstPaymentWebhookController handleWebhook this then results in:
$payment->webhookUrl = route('webhooks.mollie.aftercare');

http://ip-portal.test/webhooks/mollie/aftercare

This comes from APP_URL in .env, which I set to 'ip-portal.test' domain.
This results in an error:
[2023-06-16 15:36:02] local.DEBUG: WEBHOOK_URL http://ip-portal.test/webhooks/mollie/aftercare
[2023-06-16 15:36:02] local.ERROR: [2023-06-16T15:36:02+0000] Error executing API call (422: Unprocessable Entity): The webhook URL is invalid because it is unreachable from Mollie's point of view.. Field: webhookUrl. Documentation: https://docs.mollie.com/reference/v2/payments-api/update-payment {"exception":"[object] (Mollie\\Api\\Exceptions\\ApiException(code: 422): [2023-06-16T15:36:02+0000] Error executing API call (422: Unprocessable Entity): The webhook URL is invalid because it is unreachable from Mollie's point of view.. Field: webhookUrl. Documentation: https://docs.mollie.com/reference/v2/payments-api/update-payment at C:\\xampp\\htdocs\\IP Portal\\laravel-ip-portal\\vendor\\mollie\\mollie-api-php\\src\\Exceptions\\ApiException.php:114)
[stacktrace]
#0 C:\\xampp\\htdocs\\IP Portal\\laravel-ip-portal\\vendor\\mollie\\laravel-mollie\\src\\MollieLaravelHttpClientAdapter.php(44): Mollie\\Api\\Exceptions\\ApiException::createFromResponse(Object(GuzzleHttp\\Psr7\\Response), NULL)
#1 C:\\xampp\\htdocs\\IP Portal\\laravel-ip-portal\\vendor\\mollie\\laravel-mollie\\src\\MollieLaravelHttpClientAdapter.php(23): Mollie\\Laravel\\MollieLaravelHttpClientAdapter->parseResponseBody(Object(Illuminate\\Http\\Client\\Response))
#2 C:\\xampp\\htdocs\\IP Portal\\laravel-ip-portal\\vendor\\mollie\\mollie-api-php\\src\\MollieApiClient.php(673): Mollie\\Laravel\\MollieLaravelHttpClientAdapter->send('PATCH', 'https://api.mol...', Array, '{\"description\":...')
#3 C:\\xampp\\htdocs\\IP Portal\\laravel-ip-portal\\vendor\\mollie\\mollie-api-php\\src\\MollieApiClient.php(617): Mollie\\Api\\MollieApiClient->performHttpCallToFullUrl('PATCH', 'https://api.mol...', '{\"description\":...')
#4 C:\\xampp\\htdocs\\IP Portal\\laravel-ip-portal\\vendor\\mollie\\mollie-api-php\\src\\Endpoints\\EndpointAbstract.php(100): Mollie\\Api\\MollieApiClient->performHttpCall('PATCH', 'payments/tr_FmV...', '{\"description\":...')
#5 C:\\xampp\\htdocs\\IP Portal\\laravel-ip-portal\\vendor\\mollie\\mollie-api-php\\src\\Endpoints\\PaymentEndpoint.php(72): Mollie\\Api\\Endpoints\\EndpointAbstract->rest_update('tr_FmVZ9S5NJq', Array)
#6 C:\\xampp\\htdocs\\IP Portal\\laravel-ip-portal\\vendor\\mollie\\mollie-api-php\\src\\Resources\\Payment.php(707): Mollie\\Api\\Endpoints\\PaymentEndpoint->update('tr_FmVZ9S5NJq', Array)
#7 C:\\xampp\\htdocs\\IP Portal\\laravel-ip-portal\\vendor\\mollie\\laravel-cashier-mollie\\src\\Mollie\\UpdateMolliePayment.php(14): Mollie\\Api\\Resources\\Payment->update()
#8 C:\\xampp\\htdocs\\IP Portal\\laravel-ip-portal\\vendor\\mollie\\laravel-cashier-mollie\\src\\Http\\Controllers\\FirstPaymentWebhookController.php(35): Laravel\\Cashier\\Mollie\\UpdateMolliePayment->execute(Object(Mollie\\Api\\Resources\\Payment))
#9 C:\\xampp\\htdocs\\IP Portal\\laravel-ip-portal\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\ControllerDispatcher.php(46): Laravel\\Cashier\\Http\\Controllers\\FirstPaymentWebhookController->handleWebhook(Object(Illuminate\\Http\\Request))
#10 C:\\xampp\\htdocs\\IP Portal\\laravel-ip-portal\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php(260): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(Laravel\\Cashier\\Http\\Controllers\\FirstPaymentWebhookController), 'handleWebhook')

Unfortunately I cannot change APP_URL to the url provided by NGROK, since that is a subdomain and I use dynamic subdomains for my tenants. It's a multi tenant application.
I think the package should check if an absolute url is used in the config and if so not modify it.
Additional info:
This is how I run ngrok:
start cmd.exe /k "cd  C:\Program Files\ngrok && ngrok.exe http --host-header=rewrite ip-portal.test:80"

since I work with multiple local sites.

I had the same issue, try setting the webhook url from within the plan by using the setFirstPaymentWebhookUrl() function.
Personally my subscriptions plans are a little more complicated as I'm using a custom DatabasePlanRepository with a custom model so that they can be stored and retrieved from the database. But in short i overwrote the firstPaymentWebhookUrl() function.
It now looks like this:
    public function firstPaymentWebhookUrl()
    {
        return env("NGROK_LINK") ? env("NGROK_LINK") : route('webhooks.mollie');
    }

the official implementation can be found in Laravel\Cashier\Plan\Plan and the contract used is Laravel\Cashier\Plan\Contracts\Plan
I know this may not be the concrete solution for you but hopefully it will put you on the right track for debugging your issue.

Dear @michelterstege81,
Thank you for sharing your concern!
Regarding laravel-mollie-cashier, our aim is to offer a solution that caters to the needs of the majority of our customers. However, it's important to note that we may not be able to accommodate every customer's requirements due to unique situations like yours. For instance, your specific setup involving tenant subdomains falls into such a category, which we might not have anticipated during development.
In your particular case, we suggest considering the following approach: redeclare the webhook routes and manually associate them with the corresponding controllers. This workaround should enable you to address the issue effectively.
Route::namespace('\Laravel\Cashier\Http\Controllers')->domain(‘your_subdomain’)->group(function () {
    Route::name('webhooks.mollie.default')->post(
        Cashier::webhookUrl(),
        [WebhookController::class, 'handleWebhook']
    );

    Route::name('webhooks.mollie.aftercare')->post(
        Cashier::aftercareWebhookUrl(),
        [AftercareWebhookController::class, 'handleWebhook']
    );

    Route::name('webhooks.mollie.first_payment')->post(
        Cashier::firstPaymentWebhookUrl(),
        [FirstPaymentWebhookController::class, 'handleWebhook']
    );
});

Hi @Naoray ,
Thanks. I'm actually doing something like that right now. Using that approach and putting that in a domain group, so to make sure the ngrok domain is used when the route() function is called on these routes.
Though I would say it's unexpected behaviour looking at the comment in the config file. I would heave expected that the specified url would always be used.
Looking into the comment above of @iqfx  and issue #141 however I'm not unique in experiencing this issue ;)

Hi @michelterstege81,
I get that the comment in the configuration can be misleading. Although it’s not wrong. You can put in relative or absolute urls and it will simply be able to extract the path from the absolute url.

Looking into the comment above of @iqfx and issue https://github.com/mollie/laravel-cashier-mollie/issues/141 however I'm not unique in experiencing this issue ;)

Your issue is in a way unique that you use dynamic subdomains per tenant, which doesn’t seem to be the case in #141.
—
I just checked the packages code and saw that we have a Cashier::ignoreRoutes() method which you should be able to call in the AppServiceProvider’s register method with Cashier::ignoreRoutes();, then you won’t have the routes double defined from the package and your own app.

late to the game but still relevant, I will try the suggested workaround.
In general I think this is not consistently solved, as in any dev setup I still want my APP_URL to be my local / docker URL and my webhook some expose/ngrok URL.
in addition I found at least one point in the code where the given URL is used (this might be why the first payment works, but the aftercare webhook then doesn't?)
see src/Order/Order.php 240:
$payment = (new MandatedPaymentBuilder(                         $owner,                         $this->getDescription(),                         $totalDue,                         url(config('cashier.webhook_url')),                         [                             'metadata' => [                                 'temporary_mollie_payment_id' => $this->mollie_payment_id,                             ],                         ]                     ))->create();
either way this inconsistency should be solved or clearly marked/commented in the config/cashier.php


Buffer full but execute just hangs

Running the following on the command line:
LOGIN:::01::UN=user01,PWD=pass01;

Results in a response similar to this:
\r\n
\n
   0 2018-11-11 11:11:11
M  01 COMPLD
   EN=0   ENDESC=Succeeded.
;

Running the following just hangs:
$client = Graze\TelnetClient\TelnetClient::factory();
$dsn = '<IP_ADDRESS>:23';
$client->connect($dsn);
$command = 'LOGIN:::01::UN=user01,PWD=pass01;';
$resp = $client->execute($command, ';');
var_dump($resp);

I get the full response when I dump out the buffer, but the script just hangs and does not print a response.
Environment

I believe the Telnet server is a windows machine

Background

I'm sending TL1 commands (Telecom)

Actually, it's stuck in an infinite loop in getResponse(), at least for my use case

It sounds like the execute call is not finding the end sequence specified.
The end sequence is made up of $prompt . $lineEnding. By default, $lineEnding is \n so in your example, the client is looking for ;\n before it returns.
Setting the line ending to ; will get you most of the way there, but the client still needs a prompt. As a quick test you can use an empty string:
$client = Graze\TelnetClient\TelnetClient::factory();
$client->setLineEnding(';');
$dsn = '<IP_ADDRESS>:23';
$client->connect($dsn);
$command = 'LOGIN:::01::UN=user01,PWD=pass01'; // notice line ending removed - it will be appended by the client
$resp = $client->execute($command, '');
var_dump($resp);

If the above works, you can define a more complex prompt using regex to parse out any interesting information.

Thanks @john-n-smith .
Your suggestion seems to work with one proviso:
The following code in TelnetClient needs to change from
// check for prompt
if ($this->promptMatcher->isMatch($prompt ?: $this->prompt, $buffer, $this->lineEnding)) {
    break;
}

To:
// check for prompt
$prompt = isset($prompt) ? $prompt : $this->prompt;
if ($this->promptMatcher->isMatch($prompt, $buffer, $this->lineEnding)) {
    break;
}

The reason is that the empty string forces the ternary operator to set the default $this->prompt to the $operator variable. Consequently, the pattern being matched in PromptMatcher is /\$;$/ instead of /;$/

The reason is that the empty string forces the ternary operator to set the default $this->prompt to the $prompt variable. Consequently, the pattern being matched in PromptMatcher is /$;$/ instead of /;$/

To overcome this issue, I've added non empty values as $prompt
$resp = $client->execute($command, "\r\n");

btw. I've explicitly added \r\n to the other lines on the original post

Glad you managed to get it working. I'm afraid you're working against some assumptions about telnet servers that were made based on embedded implementations, i.e. that all responses are terminated with a consistent prompt and line ending. I'm hoping to spend some time refactoring the client to take these findings into account.


Integrating IREE with Android Studio: Seeking Assistance with File Selection

I'm trying to build IREE with C in Android Studio, but I'm encountering a character overflow error in the iree-populate code during the Git installation process.
I've built IREE on my host machine but am unsure which files to move to Android Studio.
I have checked the documentation and IREE samples, but it seems they only cover CMake tests on PC, and there are no provided examples for CMake working on Android Studio.
My plan is to use PyTorch models on CPU for Android, and eventually support Vulkan, though it's not immediately necessary due to version issues. Could someone please advise me on the specific files needed for this integration?

Were you able to resolve this?
We had a sample app at https://github.com/not-jenni/iree-android-tflite-demo that used https://github.com/openxla/iree/tree/main/runtime/bindings/tflite/java, but that code is very stale (and was only tested a few times).
In terms of source files needed, the 'runtime' directory (https://github.com/openxla/iree/tree/main/runtime) is typically what you would need for headers, though that directory does depend on third_party, build_tools, and perhaps a few other top level folders.
A working project or (ideally) template repo like https://github.com/iree-org/iree-template-runtime-cmake/ would be great to share in our docs if one existed. Contributions or shout-outs welcome there.


fix: add missing @Priority to the AuthenticationRequestFilter

What this PR changes/adds
This PR add the jarkarta @Priority annotation to the AuthenticationFilter.
Why it does that
Allow other extension to register filters in the correct order of precedence.
Further notes
List other areas of code that have changed but are not necessarily linked to the main feature. This could be method
signature changes, package declarations, bugs that were encountered and were fixed inline, etc.
Linked Issue(s)
Closes #4580
Please be sure to take a look at the contributing guidelines and our etiquette for pull requests.

@scandinave I self-requested a review because I think you can't do that.

@paullatzelsperger I've no idea how to test this. Add another extension juste to verify that a standard Jakarta functionality work as intented seems overkill to me. If it's ok for you a will mark the review ready for review.

@paullatzelsperger I've no idea how to test this. Add another extension juste to verify that a standard Jakarta functionality work as intented seems overkill to me. If it's ok for you I will mark the PR ready for review.

Well you could theoretically spin up a test with another filter, have the auth filter return false, and assert the other filter is not invoked, but we're not testing Jakarta annotations. So, good to go!


Add documentup as a webhook

We need to update http://documentup.com/shelljs/shelljs. It's all generated off the README, but we need to actually update the site itself with new docs

@nfischer: I think I added a webhook so it gets done automatically.
I'm going to test it by removing @arturadib's twitter from the README.

Looks like it worked! :+1: Let's add the twitter back in just in case Artur wants to have that as a line of contact though.

Nope... Apparently I didn't.
But visiting http://documentup.com/shelljs/shelljs/__recompile works just as well. Maybe we can add that to travis? (When I get a minute later, I'll debug the webhook a little more).

Ah, ok. As long as the stuff is recompiled. It'd be nice to have that as a webhook though, but only for builds that get merged, not all PRs (not sure if that's hard to set up)

I don't think it should be.
I don't think we should have the twitter on there, as I doubt he wants it,
and
regardless, it would be better if they used the issue tracker. (Mostly to
consolidate it, and because they way we can see it to impliment).

Hmm... Maybe we do have it...
I'm going to test again.

Hmm... It didn't work. I have no clue.

It looks like this is a known issue: jeromegn/DocumentUp#98.

Closing this, since I think the recompile URL (http://documentup.com/shelljs/shelljs/__recompile) would work well enough for our purposes.

@nfischer: Wait... I have an evilish idea.

Nope, that didn't work. Should I add it to travis?

I think it's fine to leave as is. We can just manually recompile when necessary


Asyncify without topmost interface

The second attempt, following https://github.com/pulsar-edit/ppm/pull/93
Long story short: I do think the approach was alright but given the test framework, basically it was a Russian roulette what tests could work, if at all.
This time around, I deliberately omitted the very part I started with last time so that the interface shown towards the executable scripts and the tests themselves would stay callback-based.

So the first couple of functions could be changed no problem, without any test outage.
The big one was the wrapping of the run method of all commands - I isolated the failing tests because there are all sorts of weird interactions.
First, it would be great to fix these tests actually. I'm not sure if that's possible without altering the tests. As a final radical measure, I think these commands could get separate handling behind a wrapper so if all seems lost, maybe there is still a way to keep only these commands callback-based, which I think is still a win, if the basic idea was that the code is ugly. The vast majority of code could still be not-so-ugly, and these commands could rightfully shout "think twice before touching me".
Then, for the other commands, I still think gradually going towards the bottom is a workable paradigm. There can be problems with the mocking but ultimately, if one part is fully Promise-based and eventually asyncified, there will be just genuinely no reason to try to mock certain functions by changing their arguments and such...

I noticed a few things and refined the strategy as well.

first, the commands that already work with the tests are processed
then I think the other couple of commands need to be fixed by reducing the tests until a single point of failure remains, solving that, and then gradually adding the tests back if need be
then lower layers of code can be changed; they will probably gradually allow the higher layers to be refined to a nicer code structure
the interface of many Promises (what is a value, what is an error) will have to change. I started with a "whenever it's not crystal clear, use the resolve path only" policy. I think I have been overdoing it. Currently, I think only the Promises that actually have to pass resolve or reject on are okay to do that (if at all...). This will have to be redone when I reach back to the higher layers

Anyway, for Commands, the workflow is pretty simple:

check if some other command depends on directly calling this Command (with run). If it does, make sure it can be rewritten in a way that satisfies apm-cli and the other command as well, or else it may need to be skipped.
set static promiseBased = true for the class
go through the methods, checking their implementation to pick a promisification strategy
check the callers of the methods and rewrite those calls appropriately
as part of this process, rewrite the run method as well, check the tests, fix the mistakes...

I reached a state where all tests succeed with slight alternations:

some functions need to be mocked differently - this is pretty obvious
the ultimate return value the callback obtains is sometimes downright undefined, not null - I think this is even desirable and there should be less explicit null returns but this is easy to twist in many ways

I would be worried about the install --json path; it's like a whole different command that is carried over to quite low layers of the same functions, and it is the reason why many installation methods need to produce values... I think it needs further testing at the very least; it would be nice to rework it once in the future.

Now, this pull request has "officially" reached the state where (I think) everything that clearly needed an async-based implementation, got one.
The next - and arguably final - stage should consist of:

"integration testing", i.e actually trying out various functionality, at least with a sample check approach
refactoring of leftover stuff if we find such
finalizing the interfaces that this version of code provides, so typically deciding on how the commands work

currently, their return value is the error, if there is any
and apm-cli did remain callback-based because otherwise all the tests should have been rewritten
I don't like these two things, especially the former... but I think we could actually live with them for the time being, and do different PR's to mitigate them

From now on, there are no planned modifications that I still wanted to do, only fixes, or, if it's decided that some interface modification is required in this PR, then that can be added. All in all, I think it's ready for review.
As I said, since the spec is far from exhaustive, some testing is required, others are of course more than welcome to join in with that.

Rebasing on top of master branch now that #100 is merged, to basically port #100's changes to this PR and sync everything. As was discussed here on GitHub and on the Discord.
Old commit of this branch just before I rebased:  9dd95c6987c7b114e98ddb5a72356f55bb5ca47d
New commit after I rebased: 0e865d2e4f43c239fb1ff3e5f79ae88bc9bbb13a

@DeeDeeG @confused-Techie  Since you're more familiar with this PR, is this PR something that you believe we can get in before next release?
Looks like it may want a new review, confused

Thanks again @2colours for all the hard work on this! I am merging it now.
Hopefully some more async/await style code will make things a lot easier to read and deal with! Thanks!


'DetailedResponse' object is not subscriptable

I am trying to run the base example notebook. I believe that I got the credentials and set up working.
However, here is where it bugs out:
At step [21]
Classify the text
response = classify_text(text, config)
Stage - Performing Base Tagging:
Step - keywords:
Passion:science
TypeError                                 Traceback (most recent call last)
 in ()
1 # Classify the text
----> 2 response = classify_text(text, config)
 in classify_text(text, config)
87                         if(wordtag != 'UNKNOWN'):
88                             print('      '+keyword['tag']+':'+wordtag)
---> 89                             augument_NLUResponse(responsejson,'entities',wordtag,keyword['tag'])
90             elif(steps['type'] == 'd_regex'):
91                 for regex in steps['d_regex']:
 in augument_NLUResponse(responsejson, updateType, text, tag)
59             responsejson['keywords'].append({"text":text,"relevance":0.5})
60     else:
---> 61         if not any(d.get('text', None) == text for d in responsejson['entities']):
62             responsejson['entities'].append({"type":tag,"text":text,"relevance":0.5,"count":1})
63
TypeError: 'DetailedResponse' object is not subscriptable

Yes, there was a breaking change in the watson-developer-cloud SDK. I'll be adding a patch to pin the version to 1.5 for now, then we'll fix the code for the new 2.0 version later.
Expect a fix in a few minutes.


As a user I want to be able to filter people by any parameter with one command

Code and documentation done. PR submitted


fix(KFLUXBUGS-1494): get correct snapshots

Fixes
KFLUXBLUGS-1494
Description
When the release plan is changed we should also change the snapshots.
Type of change

[x] Bugfix

Screen shots / Gifs for design review

How to test or reproduce?

Browser conformance:

[ ] Chrome
[ ] Firefox
[ ] Safari
[ ] Edge

Marked as a draft for now. From my understanding we can change the snapshots by updating the applicationName value.

/ok-to-test

Ignore recent commit, I just saw your comments. I'll add the changes and update the tests again

/test pact

@sahil143 Thank you for checking, I have added a change for this here: https://github.com/openshift/hac-dev/pull/990/files#diff-db8adac9ed652528cdfe3a5108516942821f274fe3b17521332880c0c47e2585R32-R36
Along with a test to verify change: https://github.com/openshift/hac-dev/pull/990/files#diff-0dd2ca3a42f069ce51e1b8707fc0672f8c30bd388540ffab334fe8ed1af4b4c6R96-R152


Support Bootstrapping Flags

Description
https://posthog.com/docs/feature-flags/bootstrapping

[ ] Android
[ ] iOS
[ ] Flutter
[x] React Native

Inspire from RN implementation https://github.com/PostHog/posthog-js-lite/blob/f00594a1e9b08c0d4785139a0df98dae31c16c34/posthog-core/src/types.ts#L22-L28

+1 from this ticket, although I'm not sure bootstrapping would help in this case since his issue is mostly around making sure the properties are processed before evaluating the feature flag.  Just figured I'd note it anyway.

+1 from this ticket, although I'm not sure bootstrapping would help in this case since his issue is mostly around making sure the properties are processed before evaluating the feature flag. Just figured I'd note it anyway.

@dmarticus I think what you need is this https://github.com/PostHog/posthog-ios/issues/148 which is exactly for this reason when you capture events/update props but they are not ingested yet so flags can't evaluate them yet.

oh that's exactly right, I didn't realize we had both!


resource_constraints.md: Fixed broken table format

small typo fix

Proposed changes
Some descriptions in table "Configure the CFS scheduler" were at the "Option" column. Came across while reading the doc.

Thanks, @Dominik-K ! This is great. :)


misc/cgo/testcdefs doesn't work: C source files not allowed when not using cgo

I'm new to Go, and I'm attempting to learn about how to interoperate between C and Go. I thought a good way to learn would be to go through some of the examples in the repo. However it appears that a change in Go 1.4 has made one of the examples not work anymore. Others seem to be having related issues: https://github.com/golang/go/issues/9132
https://github.com/golang/go/tree/master/misc/cgo/testcdefs
$ go version
go version go1.4 darwin/amd64
$ cd misc/cgo/testdefs
$ ./test.bash
can't load package: package .: C source files not allowed when not using cgo: cdefstest.c main.c

You're right: testcdefs doesn't work any more, and we should fix that or delete the directory.
That said, that directory is not an example of how to interoperate between C and Go.  It's a test of the -cdefs option of the cgo tool, which is not intended for use by anybody other than people bootstrapping a Go port to a new operating system.

Hi @ianlancetaylor, remember me from the Berkeley google shuttle? :)
I guess I was mistaken about the purpose of that directory – the blog post at http://blog.golang.org/c-go-cgo links to misc/cgo with the phrase "The cgo examples in the Go tree demonstrate more advanced concepts."

I'm brand new to Go, and made the mistake of getting my feet wet by attempting to call into Go from an existing C++-based mobile app :) Probably should've started with something simpler.
The docs seem to thoroughly cover how to call into C from Go, but not the other way around...

Unfortunately at present you have to start with a Go program.  There is as yet no support for calling a Go library from a C/C++ program.
It is possible to have a Go program that calls C code that calls Go code, though (http://golang.org/cmd/cgo/#hdr-C_references_to_Go).


Switch to web-test-runner test suite

This switches out Jest for web-test-runner, which is the test suite that
is recommended for web component building, especially from Lit:
https://lit.dev/docs/tools/testing/
This replaces manual DOM testing manipulation and instead tests inside
the browser environment instead. This is handy for picking up on
exceptions that wouldn't be caught outside the browser -- I picked up on
a couple just adding notification tests.
The Lit starter kit has some more examples of tests:
https://github.com/lit/lit-element-starter-js/blob/main/test/my-element_test.js
I just added some to test the functionality. This still requires some
mocking, as all imports do need to be JS modules -- CSS and JSON
included in that.
I've wanted to test this for the dashboard, but my environment was broken all
day today, so I started testing here instead. We don't have any tests written
yet anyways, so this is an easier place to start already, not to mention the
footprint is smaller.

After merging with main (my main was off it seems), I get an error from the semver module:
SyntaxError: The requested module './../node_modules/semver/functions/coerce.js?wds-import-map=0' does not provide an export named 'default'

There was an explanation for modules that are commonjs, but I'll leave this be for now. I'll wrap this up if there is merit to this proof.

The issue went a little deep. I was able to get working tests on ext-theme using the Rollup commonjs plugin (recommended by WTR docs). But even with this here, semver 7.x seems to have cyclical import errors going back a few years at very least. None of the fixes mentioned in https://github.com/rollup/plugins/issues/879 and related issues helped.
We're only using the two functions here, so I don't know if we really need to be on the latest release, but 6.3.1 was released this week either way, so it's not ancient by any means.
Otherwise, mocking the static files we're importing directly into the Webpack bundle seemed to solve the remaining errors on tests.

Okay, so the only thing I haven't figured out here is how to get the docdiff/visual-dom-diff/diff-match-patch working with web-test-runner. The error I'm getting is:
TypeError: diff_match_patch_1.diff_match_patch is not a constructor

This is caused ultimately by rollup/web-test-runner and Rollup's commonjs resolver. The package diff-match-patch bundle does look a little odd, the export is a circular reference object. But this can also be resolved by changing visual-dom-diff to call diff_match_patch_1() instead of diff_match_patch_1.diff_match_patch(), which is the circular part of the export.
For example, this is what it looks like logging the exports from the package:
      {
        __moduleExports: {
          diff_match_patch: [Function: diff_match_patch],
          DIFF_DELETE: -1,
          DIFF_INSERT: 1,
          DIFF_EQUAL: 0
        },
        default: {
          diff_match_patch: [Function: diff_match_patch],
          DIFF_DELETE: -1,
          DIFF_INSERT: 1,
          DIFF_EQUAL: 0
        }
      }

I believe this is actually a Typescript error from visual-dom-diff. I tried a few fixes this afternoon at:
https://github.com/Teamwork/visual-dom-diff/compare/master...agjohnson:visual-dom-diff:agj/es6?expand=1
No luck so far though.

A couple notes from a call today:

We're aiming for a mild scope for our test cases, as historically our test coverage was 0%. We might not be able to maintain a very large test suite here, so initially we'll focus on the most important parts first.

There is a strange behavior when loading the configuration into an Element. That is (new FlyoutElement()).config = {};. This seems to trigger the logic at the index.js and getReadTheDocsConfig() call.

The remaining tests with visual-dom-diff errors might need a patched visual-dom-diff, but we might be moving in that direction either way.

Configuration handling is going to be important to writing more tests. We can at least start with loading the fixture file in test cases, ensuring that the mock API response is always the same. We still probably want to be more defensive around our use of the config object however.

One solution is the object-path package, which gives us a way to avoid enforcement of the configuration/API schema but does give us a way to avoid missing attributes on the configuration objects:
// For mandatory attributes
if (objectPath.get(this.config, "addons.flyout.enabled", false) !== true) {
  return nothing;
}
// For optional attributes
const downloads = objectPath.get(this.config, "addons.flyout.downloads", []);
if (downloads.length === 0) {
  return nothing;
}

I'll try to resolve these last few issues, we'll plan to merge this and try to experiment more with test cases.
cc @zanderle in case you have any experience with web-test-runner or the testing patterns here and have any additional input.

The answer here was easier than expected! I figured I just needed spend some more time with configuration to figure this out. I found the WTR config for requireReturnsDefault and preferred ^1

"preferred": If a module has a default export, requiring that module always returns the default export, no matter whether additional named exports exist. This is similar to how previous versions of this plugin worked.

So, there is no need for a fork of visual-dom-diff or diff-match-patch anymore, these both import correctly now.
I did not address the 404 on the addons config yet, I might end up doing that in a follow up PR.

Everything is passing! And without any hacks!
I'd say lets merge this before I get tired of rebasing and we can deal with the follow up work next:

[ ] Try a test case the alters the Element.config again, it should not request the addons API response from localhost. Instead it should always use the config as if Element.config = config
[ ] Experiment more with test cases and writing some basic tests

I really like the npm run test:dev command (web-test-runner --watch). Be sure to give that a try!

Cool! I think I can continue from here. Thanks for the initial setup for all of this 💪🏼
I will read some docs about testing, work on https://github.com/readthedocs/addons/issues/122, figure it out a pattern to pass the config and experiment on how to write more test cases.
I'm merging this PR since looks ready to me.

Nice, I'm excited to get this out and start writing some real tests. I also started this switch to web-test-runner on the new dashboard, and I think I can reuse what I learned here to make the change there too.

cc @zanderle in case you have any experience with web-test-runner or the testing patterns here and have any additional input.

I don't have any experience with web-test-runner, but I'll write my other comments below. Nothing major though, things are looking good to me.
In my experience, I prefer writing more e2e kind of tests, but I don't think that applies here so well.

A couple notes from a call today:

We're aiming for a mild scope for our test cases, as historically our test coverage was 0%. We might not be able to maintain a very large test suite here, so initially we'll focus on the most important parts first.

I think that's a good call.

Configuration handling is going to be important to writing more tests. We can at least start with loading the fixture file in test cases, ensuring that the mock API response is always the same. We still probably want to be more defensive around our use of the config object however.

I agree that that would be a good idea.

One solution is the object-path package, which gives us a way to avoid enforcement of the configuration/API schema but does give us a way to avoid missing attributes on the configuration objects:
// For mandatory attributes
if (objectPath.get(this.config, "addons.flyout.enabled", false) !== true) {
  return nothing;
}
// For optional attributes
const downloads = objectPath.get(this.config, "addons.flyout.downloads", []);
if (downloads.length === 0) {
  return nothing;
}

An alternative (if we need it) to this would be to use optional chaining.

An alternative (if we need it) to this would be to use optional chaining.

I'm excited for this syntax, it's quite nice. It's still a fairly new feature of ECMA2020 (?) though, and I never know when to start adopting new syntax anymore. I guess it could be safe given Babel should transform it either way, but at some point we are going to drop Babel too.

Optional chaining looks good, yeah. It looks pretty similar to object-path but it's built-in. The only thing that I didn't see is the ability to return a default value. If that's not possible the code will have multiple if (field === undefined) each time we check for them -- but probably similar to object-path, tho.

Aye, optional chaining doesn't do defaults like object-path, that would be more native syntax, like:
> let config = {};
undefined
> config?.addons?.flyout?.enabled || false;
false
> config = {addons:{flyout:{enabled: true}}};
{ addons: { flyout: { enabled: true } } }
> config?.addons?.flyout?.enabled || false;
true

This is nice syntax in most cases, maybe a little less readable than object-path when working with multiple lines of conditionals, like:
https://github.com/readthedocs/addons/blob/2cc9b0d474b8be9cd369893327a2667f839ee32c/src/notification.js#L262-L266
It can be hard to decipher code that jumps between using || for comparison OR, and using || to provide a default on undefined.
Babel does indeed transform this though, so the feature would be safe to use and probably still wouldn't stop us from dropping es5/Babel soon even. If we start with object-path, we can fairly easily change the code later too.
I might lean towards object-path still, but it probably doesn't make too much difference either. If optional chaining feels right, it should be fine to use.


chore(package): update uuid to version 3.0.0

Merging in #91 - thanks for the update!

Confirm @googlebot

Coverage increased (+0.2%) to 100.0% when pulling 5d2954e32d4cee630fbb90cdb5ebb84392e75932 on uuid into b3bbc73498da323aad8d4d35b62b25ed0e1fbf0d on master.


[TODO] Add dataloader2 shuffle test

This issue is generated from the TODO line
https://github.com/pytorch/data/blob/4b325c85b81b5c5ef3f645fad7ad6092c7ce9aee/test/test_dataloader2.py#L164

Tracked in https://github.com/pytorch/data/issues/589


#821 hide install4j splash via reflection

Looks good, thanks for the reviews, saved me time :) To make sure the issue is automatically closed when merging the PR, please write the commit message like this:
Hide install4j splash via reflection

Fixes #821

Oh and maybe add a comment to the code explaining why this is done. It seems weird for someone who doesn't know the reason behind it.

done? So I guess I should follow that commit formatting guideslines (that axel12 explained to me already briefly). Can you give me a link?


Optimize JS callbacks

Change JSCallbackArgs from a class with heap-allocated args array to a ref struct with stack-allocated args span.
Fix an issue uncovered by the perf test (due to new timing or memory use patterns I guess?) in which the JS GC could collect the static class object that caused the JSPropertyDescriptor GC handle to be finalized even though JS code could still call the method afterward.

With these changes, performance on the edgejs scenario is 10-15% faster.

Please do not merge this PR until we can find a better solution. Improving the performance for each interop call is very important, but we must not regress on the code safety.

Please see the fix that keeps JSValue safe and still avoids memory allocation for argument passing: https://github.com/jasongin/napi-dotnet/commit/f56929f8437918fc14620a6788de5b212b61fe21

Oh thanks! That looks good. I'll merge it into this PR.

Just a small simplification to put more logic in the JSCallbackArgs: https://github.com/jasongin/napi-dotnet/commit/2cd3472d95cc37f092551037f65d2b70dd12bf30


Add settings for UI K8S versions

Problem: The UI currently has to basically hard code the K8S
versions it allows and defaults to for the cloud providers it
integrates with.
Solution: Add settings that will allow the UI to dynamically
determine the allowed range and default version.

LGTM