Case for 6 column version?

Is there a case somewhere for the 6 column version? Am I missing something? Or how would I be able to create my own 6 column case if so

You aren't missing anything. I only made a case for the 5 column version because that's what I use. I did include an SVG file for the  6 column version though. You can use that as a starter and follow the instructions here (https://kbd.news/Keyboard-Case-Design-1764.html) to create something similar. It's a bit of a learning curve, but a very useful skill in this hobby.

Is there a way that you or I could change your 5 column version of the case by extending it to have the sixth column?

You might be able to, but it wouldn't be that pretty I don't think. The supports for the way you'd put a 6 column in there would need to be added.
I personally think it would be easier to just make one from scratch with the SVG file. I'm not at all opposed to doing that, but I just haven't had the time. You could try loading the current 5 column file into tinkercad online and seeing if you could split it towards the outer column, then moving it over and filling in the gap. That's pretty iffy though if you ask me. Especially if you're paying someone else to print it for you.
That' the other time issue for me. I'd like to actually print it and make sure it works before sharing. However, if I win the lottery tonight, I promise I'll have something for you by the end of the day tomorrow! So.... fingers crossed!!

Is there a file for fusion360 that I could try to work with? It seems like that may be more precise than Tinkercad for this type of work.

Let me see if I can find it. I'll upload it if I can.

Ok, so I found it, but it will only let me save fusion files to their cloud server. I can export, but it's just in formats like .stl or .step or .obj.
I think that's a limitation of the software for personal use. Sorry about that.

That's alright, could you give dimensions though for the width of each pcb key column, etc. so I can move it out the right amount. I don't think it will be too hard for me to adapt it I just need to know how much to move it over.

It's standard choc spacing, so 18.5mm should do it. The last two columns are aligned the same but the screw mounts drop down. You should be fine to use the screw mounts for the 5 col, just make sure there's a shelf on the outside to support the PCB though.

Check that. shelf won't work well because of the hot swap sockets. But as long as it's supported by a shelf on the top and bottom, should be ok.

Could I duplicate the screw mounts and move them 18.5mm aswell? Also what is the shelf?

I was thinking of just moving the outer column out and filling in the gap by duplicating parts of it in

No, screw mounts don't stay at the same line. They drop down a bit.

By how much? I could just move them down, right?

This is what I mean by shelf...

I'm not quite sure how to get an accurate measure of how much, but the .svg files are basically just exports of the cut files on kicad PCB, so if you line everything up with that, you should be good to go.

What would the problem be with say moving the outer 10mm or so and filling in the remaining ledge?

10mm wouldn't be enough. Needs to be at least 18.46. But otherwise, shouldn't be a huge problem.

Are the two halves mirrored and otherwise identical to each other?

Yup. Exact mirror. The benefit of a reversible PCB. I would just make the one change, then mirror it to make the other side. That's how I did it.

Do you think the outer standoffs are necessary? I have it extended but not sure if I should put them in.

No. I think just like that will be fine. The little shelf on the top and bottom should support the PCB.

Okay, I should probably extend the middle bit a few tenths of a mm into the other pieces to make sure they're merged, right?

If you can measure the inner walls from the left to right, should be about 138mm

I thought on tinkercad there was an option to select two objects and merge them.

There is but I want to make sure that it prints in one piece instead of three pieces that happen to be directly next to each other.

Also I measured the inside wall-to-wall as ~138.5

Depending on what you're printing on, you may want a little breathing room. I've only printed on a resin printer and things shrink a little. FDM might be better about not shrinking.

Hmm I will consider that. I'm gonna try now on my Prusa Mk3 in PETG and see how it goes.

I do not glue the battery in at all, but I don't see why you couldn't. I think the resin print shrinks just enough so it's pretty snug, but I did put in some screws just to be sure. Screws in PETG probably work better than in resin.

I ended up printing the reft side in PLA and still have to do the right side. What kind of screws/glue would you use for the keyboard?

Also what feet do you use on the bottom of your case? Mine are too small for the holes.

I used M2 screws pretty much everywhere, but I don't use glue, so not sure what would be best. With no glue, the battery stayed in place pretty well.
I use 8mm bumpons. I've used some by 3M and some generics. Both fit just fine.

Alright,I’ll buy some 8mm ones. Which screws do you use? Mine are too small and don’t hold the pcb down.

I just bought a pack of variable length M2 screws and it came with washers, so I have those and I think it's a 4mm length M2 screw.
Like this:
https://www.amazon.com/dp/B0BB1FJJKC/ref=redir_mobile_desktop?_encoding=UTF8&aaxitk=cbac584fb9b5607961ff239981298ace&content-id=amzn1.sym.cd95889f-432f-43a7-8ec8-833616493f4a%3Aamzn1.sym.cd95889f-432f-43a7-8ec8-833616493f4a&hsa_cr_id=0&pd_rd_plhdr=t&pd_rd_r=4f1f7d0f-2c45-4454-ae98-66715233a6f3&pd_rd_w=L0WCP&pd_rd_wg=9ajOw&qid=1689112354&ref_=sbx_be_s_sparkle_mcd_asin_1_title&sr=1-2-9e67e56a-6f64-441f-a281-df67fc737124

I bought the pack of screws and washers and will try to put those in without the plastic breaking as it did when I tried to put my own M2 screws in recently. I also uploaded my model to printables in case anyone might need it. Are you sure that the screws and washers are big enough to hold the board in place but small enough to not interfere with the switches?

I have modelled this from scratch in build123d last week using the 6col SVG - though the SVG was a bit problematic (incorrect units, poorly formed, etc) so had to be optimised in Inkscape first. I used the screw hole locations from the SVG, so the 6th column screw posts are in the right place now.
Published here: https://www.printables.com/model/538027-abominationcorne-choc-xiao-case-6-columns
I really love this PCB, and the inclusion of BOM and CPL files made this the fastest keyboard build I've ever done. Thanks a ton @JonMuller 😄

By the way @Kaesono I'm guessing you've probably already figured out the screw stuff by now, but I just used some pan head M2x4 self-tapping screws with standard M2 washers and it worked perfectly fine for me. Metric screws and washers are really quite standard, and I recommend using ebay if you're searching for specific screw sizes in smaller quantities and don't want to buy a big set of screws.

I have modelled this from scratch in build123d last week using the 6col SVG - though the SVG was a bit problematic (incorrect units, poorly formed, etc) so had to be optimised in Inkscape first. I used the screw hole locations from the SVG, so the 6th column screw posts are in the right place now.
Published here: https://www.printables.com/model/538027-abominationcorne-choc-xiao-case-6-columns
I really love this PCB, and the inclusion of BOM and CPL files made this the fastest keyboard build I've ever done. Thanks a ton @JonMuller 😄

Could you share fIxed SVG?

@tunfor-job it's there on the Printables page, under "other files"


Cleaning with --bot argument is deleting posts by users

Thanks for this very useful program, it was an extremely pleasing experience watching all of slackbots old reminder messages disappear!
I've encountered an issue trying to clean up bot posts in public channels, the syntax:
slack-cleaner --token TOKEN --channel test --message --bot --perform
cleans posts by users as well as bots (almost as if I hadn't used the --bot argument).
For example, in an empty test channel I posted two "asdasd" messages and ran the cleaner using the aforementioned synatx and got the following result:

Both my messages get deleted and I'm pretty sure I'm not a bot. Any ideas as to what I'm doing wrong?

Should be fixed in 0.2.0. Many thanks for reporting! :smile:

I can confirm the fix works in 0.2.0. Thank you for your hard work!


xmpp: add NoTLS option to allow plaintext XMPP connections

The NoTLS option allows the bridge to work with XMPP servers that do not use TLS, like private intranet servers

Thanks!


cmd/compile: inline functions that are called only once

What version of Go are you using (go version)?

$ go version
go version devel +211932b Mon Sep 23 22:33:23 2019 +0000 linux/amd64

Does this issue reproduce with the latest release?
Yes.
What did you do?
Take the following functions as an example:
func f(n int) int {
    var sum int
    for i := 0; i < n; i++ {
        sum += aux(i)
    }
    return sum
}

func aux(x int) (res int) {
    // Long function that goes over the inline budget
    // ...

    return res
}

If it is known that function aux is only called once (in this case, in f), in spite of a going over the inline budget, I think it would be beneficial to inline it in the caller.
I imagine there are many situations where developers extract a piece of code from a loop into a new function and then only call it once.

Would this be about having a higher budget, or about ignoring the budget entirely?

I think it should ignore the budget entirely or, in case this is not possible, raise it substantially for cases like this. Given that the functions in question are only called once, I don't see it becoming a problem (but I could be wrong).

Do you have some concrete examples where this is useful?
I assume called once does mean only referenced once with a call? Whether a function is called once might only be found out at runtime.
There are possible bad interactions of always inlining that come to my mind:

it effects the midstack inline budget of inlined too function
its a function with a large codebase and slow path that was explicitly split out by the programmer to separate cold from hot code
increases register pressure and more work for the compiler to figure out what needed when

This came to my mind when thinking about loops that call non-inlineable functions (when these functions are only used once). Normally, in these kinds of loops, it would be beneficial to not pay the cost of the function call. I don't have a concrete example apart from the constructed functions above.
I'm not at all into how the insides of Go work, but this was an idea that I came up with.
Leaving up to you to decide if this is feasible and if it helps at all 😉

Inlining a function can increase cost, by increasing register pressure and increasing cache line usage.  For example, it would be a mistake to inline a large function called once if the function is rarely called in practice.  In fact, optimizing compilers often support outlining, in which a frequently executed part of a function is inlined but the rest of the function is left behind.
That said, I agree that if a function is only called once, that should be a signal to consider it more seriously for inlining.

If a function had a single caller, and the callsite is always (or almost always) executed, then arguably it should be unconditionally inlined regardless of size (as register pressure, stack usage and cache line usage should not increase).
OTOH if the callsite is unlikely to be executed, it may make sense to still online non-huge functions, and ensure the cold basic blocks are reordered so that they don't pollute the icache. If stack growth is a concern in this case, maybe a second morestack check could be maintained guarding the inlined code?


Error : Can't read meta data call create_dataset_files

Hello, after downloading the st_parta dataset and running the following command :
python main.py --dataset="parta" --gpu=2 --start-epoch=13 --epochs=13 --threshold=0.21
I get the following error :
In data_reader.__init__: Can't read meta data in ../dataset/stparta_dotmaps_predscale0.5_rgb_ddcnn++_test_val_30; call create_dataset_files.
{'test': ['../dataset/ST_partA/test_data/images', '../dataset/ST_partA/test_data/ground_truth'], 'train': ['../dataset/ST_partA/train_data/images', '../dataset/ST_partA/train_data/ground_truth']} <data_reader.DataReader object at 0x7f237be32ba8>
CREATING DATASET...
In data_reader.create_dataset_files: ../dataset/stparta_dotmaps_predscale0.5_rgb_ddcnn++_test_val_30 does not exists; but created.
In data_reader.create_dataset_files: ../dataset/stparta_dotmaps_predscale0.5_rgb_ddcnn++_test_val_30/test created.
In data_reader.create_dataset_files: ../dataset/stparta_dotmaps_predscale0.5_rgb_ddcnn++_test_val_30/train created.
In data_reader.create_dataset_files: ../dataset/stparta_dotmaps_predscale0.5_rgb_ddcnn++_test_val_30/test_valid created.
Processing IMG_1.jpg ...
Traceback (most recent call last):
  File "main.py", line 1096, in <module>
    train()
  File "main.py", line 1017, in train
    test_batch_size=4)
  File "/media/mounir/a1340c42-9115-49f7-9b0b-61e804384f0e/PycharmProjectsHDD/LSC-CNN-Counting/lsc-cnn/data_reader.py", line 200, in create_dataset_files
    self._dump_all_test_images(set_name)
  File "/media/mounir/a1340c42-9115-49f7-9b0b-61e804384f0e/PycharmProjectsHDD/LSC-CNN-Counting/lsc-cnn/data_reader.py", line 826, in _dump_all_test_images
    data = self._read_image_and_gt_prediction(paths, file_name, kernel)
  File "/media/mounir/a1340c42-9115-49f7-9b0b-61e804384f0e/PycharmProjectsHDD/LSC-CNN-Counting/lsc-cnn/data_reader.py", line 789, in _read_image_and_gt_prediction
    'GT_' + tmp + '.mat'))
  File "/home/mounir/anaconda3/envs/pytorch-gpu/lib/python3.6/site-packages/scipy/io/matlab/mio.py", line 141, in loadmat
    MR, file_opened = mat_reader_factory(file_name, appendmat, **kwargs)
  File "/home/mounir/anaconda3/envs/pytorch-gpu/lib/python3.6/site-packages/scipy/io/matlab/mio.py", line 64, in mat_reader_factory
    byte_stream, file_opened = _open_file(file_name, appendmat)
TypeError: 'NoneType' object is not iterable

Can you tell me what is the error due to ?

I think it's due to mismatch of names of ground-truth folder of ST_PartA. Could you please change your ground-truth folder in train and test to ground_truth (replace hyphen by underscore). Let me know if this was the problem. I'll change the source code accordingly.

Yes, that was the error, thank you :+1:
I launched the command and I get sometimes the following errors for some images :
In data_reader.create_heatmap: Error in annotations; 1 point(s) skipped.
What does it do when 1 point is skipped ?

Great!
The 1 point(s) skipped is because we are dumping the dataset in 1/2 the input image scale, so during down sampling, there would be some points that would merge.

Great!
The 1 point(s) skipped is because of the error in dataset annotations (points outside the image, negative locations etc.)


Enhancement: remove dependency on libxml2 from pre-compiled binaries

libvips v8.5.x will no longer have a dependency on libxml2.
The only dependency of libvips I'm aware of that itself depends on libxml2 is fontconfig, which can be configured to use expat instead.

libgsf still needs libxml2 :(


[VTA] quant support for alu-only op

This is related to #5840 and split from PR #6126
This PR is to support ALU-only op to be a standalone fused op, which can be run on VTA.

Gentle request to put something like [VTA] in your subject line so that a git log shows a useful message.

ping @tmoreau89

@zhanghaohit please rebase and we can merge

@zhanghaohit please rebase and we can merge

Done. Thanks @tqchen for the reminder.

THanks @zhanghaohit @tmoreau89 @u99127 !


Currently active run appears twice in Past builds list

Has been happening ever since we started using Strider.

Duplicate of #352

Will be looking into this issue before 1.7.0


Integrate Erigon into merge-script

Motivation
We currently support Geth, Nethermind and Besu for execution clients in our merge script. This PR adds the final EL client for maximum coverage and ensuring compatibility of Lodestar to maximize client diversity.
Description
This PR integrates the standard args and default parameters required to start Erigon alongside Lodestar.
Note that by default, Erigon has private gRPC connections located at port 9090 which may conflict with Prometheus if trying to plug in our metrics, and hence has been turned off. If you need this, you can enable this at a different port, or make the appropriate adjustments to lodestar Prometheus configurations.
For e.g.
You can reconfig Erigon with --private.api.addr=<IP_ADDRESS>:9090 in fixed.vars
Also includes an update to a deprecating flag for Besu's authenticated RPC port.
Closes #4285

looks amazing! i think you got all the gotchas of the setup! :heart:

also keep getting this:
Jul-22 11:07:18.950[ETH1]            error: Error updating eth1 chain cache  Error setting depositRootTree index 3 > length 1
Error: Error setting depositRootTree index 3 > length 1
    at DepositDataRootRepository.depositRootTreeSet (file:///usr/app/node_modules/@lodestar/beacon-node/src/db/repositories/depositDataRoot.ts:70:13)
    at DepositDataRootRepository.batchPut (file:///usr/app/node_modules/@lodestar/beacon-node/src/db/repositories/depositDataRoot.ts:35:7)
    at DepositDataRootRepository.batchPutValues (file:///usr/app/node_modules/@lodestar/beacon-node/src/db/repositories/depositDataRoot.ts:44:5)
    at Eth1DepositsCache.add (file:///usr/app/node_modules/@lodestar/beacon-node/src/eth1/eth1DepositsCache.ts:104:5)
    at Eth1DepositDataTracker.updateDepositCache (file:///usr/app/node_modules/@lodestar/beacon-node/src/eth1/eth1DepositDataTracker.ts:206:5)
    at Eth1DepositDataTracker.update (file:///usr/app/node_modules/@lodestar/beacon-node/src/eth1/eth1DepositDataTracker.ts:186:33)
    at Eth1DepositDataTracker.runAutoUpdate (file:///usr/app/node_modules/@lodestar/beacon-node/src/eth1/eth1DepositDataTracker.ts:149:29)
^Cexit signal recived

Seeing this for Ropsten:
Jul-22 14:24:58.966[CHAIN]           error: Block error slot=378692, errCode=BLOCK_ERROR_EXECUTION_ERROR BLOCK_ERROR_EXECUTION_ERROR
Error: BLOCK_ERROR_EXECUTION_ERROR
    at verifyBlockExecutionPayload (file:///usr/app/node_modules/@lodestar/beacon-node/src/chain/blocks/verifyBlocksExecutionPayloads.ts:204:15)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at verifyBlocksExecutionPayload (file:///usr/app/node_modules/@lodestar/beacon-node/src/chain/blocks/verifyBlocksExecutionPayloads.ts:51:31)
    at async Promise.all (index 2)
    at verifyBlocksInEpoch (file:///usr/app/node_modules/@lodestar/beacon-node/src/chain/blocks/verifyBlock.ts:82:91)
    at processBlocks (file:///usr/app/node_modules/@lodestar/beacon-node/src/chain/blocks/index.ts:75:68)
    at Timeout.JobItemQueue.runJob [as _onTimeout] (file:///usr/app/node_modules/@lodestar/beacon-node/src/util/queue/itemQueue.ts:92:22)


This action could not be completed

Error box appears within email when I click on
Did you find this helpful

Ok, I'll pass your feedback on to the team. Thank you!


[Update Request]: Ruby 3.2 with MSYS2

What type of update are you requesting?
A new version of an existing package
Current Package Identifier
RubyInstallerTeam.RubyWithDevKit.3.2
Package Version
old: 3.2.0-1; new: 3.2.2-1
Please describe the changes you would like to see
No response

That one look like is in preview build.


Install UI through Blazor rather than default banner?

Looking through your documentation, it sounds like I should be able to put the install button inside my app, but attempting to call await JSRuntime.InvokeAsync<object>("BlazorPWA.installPWA"); results in a WASM error: Microsoft.JSInterop.JSException: Could not find 'BlazorPWA' in 'window'.
I'm assuming I missed a step in there somewhere. I see the ServiceWorker.js and ServiceWorkerRegister.js, but nothing that contains installPWA.
Any pointers for getting the install to kick off from in Blazor, or is the banner the only option?

you will need some settings in your csproj
<PropertyGroup Label="PWA">
<ServiceWorkerRegisterInstallableType>installable-blazor</ServiceWorkerRegisterInstallableType>
<ServiceWorkerForce>true</ServiceWorkerForce>
</PropertyGroup>

ServiceWorkerRegisterInstallableType tells it you are using Blazor for the install prompt
ServiceWorkerForce just lets it update the generated files - remove it when you have it working

I found this to be a great explanation on how to creat a custom install prompt in Blazor:
https://wellsb.com/csharp/aspnet/create-pwa-from-blazor-app/


Crashing on Wraping

The Game crashing on wrapping (by portals, monkeys, etc.)

Yes, that's a well-known issue with the client when playing the Academy build. It happens significantly less if you disable the in-game music or if you play on the Original server. There's nothing we can do about it on our end.


Add Descriptions to Rules

Steps:

Add description field to Rule interface
Expose it via API
Check API guidelines for rule descriptions
Adjust Swagger file

What is the benefit of adding the description? We already provide a link to the API guidelines description. We would just copy it from there and have then additional effort to keep it in sync.

@maschleg as far as I remember the initial discussion, we wanted to show a short description, so user will not open the guidelines until he is really interested to read the full details. But you are totally right, it will be a pain to sync them (as well as titles and links).

We already sync Zalando's API guidelines with rule implementations - there is no way around this if you automated manual written rules.
For this description field we can also think about scraping it automatically from guidelines under http://zalando.github.io/restful-api-guidelines/

+1 for automation, however from my perspective Zally description should maybe be a bit shorter than the full rule definition in RESTful API Guidelines. Also we can hit some formatting problems, e.g. some rules contain table data.

Soooo.. what do we wanna do? We're running out of tasks, that don't have a question label. In my opinion it's cool to just hardcode a short description string in every rule. Because automatically fetch it from api-guidelines sounds like a huge and error-prone overkill.

Let's put this issue on hold (for now): There will be some changes in the Guidelines (migration to a new static site generator) and a new concept for Rule Ids.


Huge memory leak on mongos HA setup

I have been battling some weird memory leaks in our apps, and have found out that the culprit seems to be the mongodb driver which doesn't handle the Pool teardown properly when running against Mongos proxies (and maybe Replicasets as well).
This is very easily reproducible by just connecting to a set of mongos proxies (2 in my case). At app start, a heapdump shows that there are two Pool instances when everything works. If I shut down network on the machine running the driver, after 30 seconds it will start eating memory like crazy and have thousands of Pool instances in the heap. This will go on indefinitely while you have a network outage, and even when you regain network connectivity, all of these instances remains and the app uses several hundred MB of RAM.
This was the snippet I used for testing:
// Simplest mongoDB connection app
const MongoClient = require('mongodb').MongoClient;

function heapDump() {
    const mem = process.memoryUsage();
    console.log('%s, Memory usage: %f', new Date().toISOString(), mem.rss);
}

async function start() {

	const client = await MongoClient.connect('mongodb://user:password@mongos1,mongos2/admin', {
		useNewUrlParser: true,
		ssl: true,
		haInterval: 10,
		bufferMaxEntries: 0,
	});
	const db = client.db();
}

start()
 .catch(err => console.error(err));
setInterval(heapDump, 1000);

The haInterval speeds things up, by default it increases with 2 Pools every 5 seconds, with this config it increases every 10 ms, making it more evident. The leak is still there.
Not sure why it takes 30 second for the pool increase to start, but I'm guessing that is the heartbeat timeout against the servers or something.
This was tested against<EMAIL_ADDRESS>meaning<EMAIL_ADDRESS>but I think it affect all 3.x versions (I've verified it in mongodb<EMAIL_ADDRESS>

Can you try the suggested fix in this comment?

@jishi thanks for testing so quickly, glad the fix seems to improve things. Is it possible the 2x factor is simply a matter of GC not running by the time you check? I’ll look into this more today.
To answer your second question: traditionally the idiom in this codebase is that objects which register event listeners should unregister themselves, but I agree in this case that “destroy” needs a stronger contract. I’ll put together a patch after lunch today for you to test.
In other news, with the upcoming 3.2.0 release, we have completely rewritten the “topology” layer to make all of this much easier to maintain, and hopefully more performant and error free. Looking forward to having people test that out!

That’s highly likely, the reconnect code was written for the single Server case first and retrofitted to support replsets and sharded configurations. 3.2.0 aims to be released within the month, but the new SDAM implementation (topology) does not provide reconnect support out of the box (for this very reason), rather handles it through what we on drivers call “server selection”.
If you’d like to take a sneak peak, or help us beta test, please try installing mongodb@next and mongodb-core@next, and pass useUnifiedTopology: true to your MongoClient constructor in the options. This would really help us out if you’re in a position to test! We imagine there are a number of bugs with such a large rewrite, but only minor JS oversights - the general quality wrt MongoDB should be greatly improved.

@mbroadst Doesn't seem like the next versions are published publicly on NPM? We have some lab-services we could easily run with experimental mongodb versions if needed.

ah sorry, I just meant the next branches of both projects:
”mongodb”: “mongodb/node-mongodb-native#next”, etc. I will most likely be publishing a 3.2.0-beta1 within a week on the unstable tag within a week, so that might be easier to test. Thanks for the offer of help!

fixed by #376


Command line option for outputting the tree-sitter syntax tree

Helpful when developing queries.

I'm going to take this, now the v0.1 issues are done, to improve my Rust :ok_hand:


Get iPython notebooks working

Here is an iPython notebook to use for testing: https://github.com/mattwescott/birds-scipy2014/blob/master/ExploreData.ipynb
This looks helpful: http://mcwitt.github.io/2015/04/29/jekyll_blogging_with_ipython3/

I found that IPython’s built-in Markdown conversion, using... left a lot of manual work to be done to create a nice-looking post. In order to have Jekyll process the resulting file, I had to insert the necessary Jekyll front-matter at the top of the Markdown by hand. But even then some crucial things were missing, like syntax highlighting, execution counts in cells, and a way to automatically generate URLs for the image resources.

That post was great and the converter works well. The only thing is that some elements don't seem to format very nicely especially the tables. Some css applied to the default template should fix that though

Sounds good. Getting the audio working would be nice too. I'll split this out into two new issues so we don't clutter up this one


Add step to AfterStep

We are using frank-cucumber to run tests against an iOS app. As this app is heavily animated we need to pause after each step to ensure the animations are finished. However there are a couple of steps where we do not want to pause. We have tried the AfterStep hook however we have a significant issue with it.
AfterStep do |scenario|
   ...
end

The issue is that it does not appear to be passed the text of the step. This makes it impossible to tell what step was being executed. It seems strange to us that an AfterStep hook would be created without being passed the step that was executed. Could we please have a version like this:
AfterStep do |scenario, step|
   ...
end

Sadly, @chewi's hack will not work on 2.0 as things stand. We will aim to support this properly through the API during the 2.0 series. I'll keep the ticket open.
It would be awesome if someone wanted to start a PR with a failing test for this.

I am also interested in this functionality.

like to have this back too,   as in 1.3.x
in 2.x, scenario reference in the hook is a different one...  hope you guys could fix it soon, thanks
and it does make sense to be able to access the steps within the hook...

If you're interested in this, please start with a failing scenario that describes what you want.

@mattwynne, thanks for your reply...
basically, I run cucumber test on jenkins, by default, the output flushed out to jenkins console after a scenario is finished. but I'd like to have the output send to jenkins console immediately,

before a step executed, print out the step to console.
after that, there are more console output during the test code of the step,
that makes the console output more readable and easier to located an issue if fails)
to have it this way, I print out steps in the Before and AfterStep hooks...  (might not be a common usage for others...)

after reading the cucuber-ruby code, seems,

in 1.3.8   the scenario instance in the hook is the "real" scenario class instance, it has raw_steps attributes.
but after 2.x,  the scenario passed into hook is not that one anymore...  instead, it is
Cucumber::RunningTestCase::Scenario, and from this, not sure how to access its steps...

I have this below in my env.rb
env.rb
don't buffer the console output. get real-time update on jenkins console page
$stdout.sync = true
setup and tear-down, run before and after each Scenario
Before do |scenario|
print("Scenario: #{scenario.title}\n")
$stop_count = scenario.raw_steps.count
$step_index = 0
print out the first step if exists
if $step_index < $stop_count
print("    #{scenario.raw_steps[$step_index].keyword}#{scenario.raw_steps[$step_index].name} \n")
end
end
after each step
AfterStep do |scenario|
print out next step if exists
$step_index += 1
if $step_index < $stop_count
print("    #{scenario.raw_steps[$step_index].keyword}#{scenario.raw_steps[$step_index].name} \n")
end
end

Hi @jdougit
Try calling #test_steps on that object you get in the block. That should give you what you need.

Just want to verify what I am seeing with Cucumber 2.1.0 is the same as what others see...
When I have an env.rb file with:
AfterStep do |argument|
  puts argument.class
  argument.each { |element| puts element.class }
end

And I run a feature
Then the output is:
Array

Cucumber::Core::Test::Result::Passed
1 scenario (1 passed)
1 step (1 passed)

@t-morgan I can verify the same behavior with Cucumber 2.1.0.

Closed by 8b347ca0f84789ea097fcab730c457f2d81529f0


Cap nlpaug version

Due to the upgrade of nlpaug (https://github.com/makcedward/nlpaug), specifying model.hf_text.text_train_augment_types with a list of augmentation operators causes exceptions. We temporarily cap the version to the last one to workaround this. Will investigate the reasons later.

Job PR-1926-1 is done.
Docs are uploaded to http://autogluon-staging.s3-website-us-west-2.amazonaws.com/PR-1926/1/index.html


add animated class to Shake and Shine

Issue: #1022
I run npm run compile before I make any changes and saw updates on dist/sbuttons.css, looks like somebody forgot to compile before, so I commit that first just to be safe, hope I don't cause any code conflict.

Thank you for your work it all looks great. I just have a comment below.
Also as for the dist/sbuttons.css file it seems that your repo is behind the current one. Can you please merge the new changes to it so that it doesn't affect previous work done by other contributors?

I merged from upstream again. actually, I pulled the latest code before I do the pull request.
Thanks for being patient, this is my first pull request ever 😄.

Great job thank you! You can take up other buttons if you want but make sure to comment on the issue first.
@all-contributors please add @kyawkyawsoezhu for code


Update support-docs/README.md for 7 new files in v0.7

This includes documentation for the following files found in part-spec/:

hardware.json
ic_io.json
ic_logic.json
ic_micro.json
ic_misc.json
storage_memory.json
usbc.json

Note: all of the tedious tables were generated using https://github.com/edatasheets/digital-datasheets/pull/36

OK, I have uploaded some changes - please take a look :)


[Discussion] Enable stricter TypeScript checks

Is your feature request related to a problem? Please describe.
There are currently no additional TypeScript checks enabled in .tsconfig (https://github.com/REditorSupport/vscode-R/blob/master/tsconfig.json).
Using strict-mode in TypeScript is recommended: https://www.typescriptlang.org/tsconfig#strict
Opting out on a per-case basis via // @ts-ignore or foo as FooType should be preferred to indicate to other developers that a statement is not an error but a conscious decision.
Describe the solution you'd like
The VSCode Python extension (see) uses the following settings:
    "compilerOptions": {
        "strict": true,
        "noImplicitAny": true,
        "noImplicitThis": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "noFallthroughCasesInSwitch": true,
    },

Enabling the options below shows quite a number of errors:
> yarn run compile
Found 302 errors in 32 files.

Errors  Files
    16  src/completions.ts:35
    16  src/extension.ts:35
     2  src/helpViewer/cran.ts:83
     2  src/helpViewer/helpProvider.ts:301
     6  src/helpViewer/index.ts:175
     3  src/helpViewer/packages.ts:85
    11  src/helpViewer/panel.ts:72
    15  src/helpViewer/treeView.ts:68
     6  src/languageService.ts:42
     2  src/lineCache.ts:30
     3  src/lintrConfig.ts:12
     5  src/liveShare/index.ts:21
     2  src/liveShare/shareCommands.ts:80
    11  src/liveShare/shareSession.ts:68
    17  src/liveShare/shareTree.ts:14
     5  src/plotViewer/index.ts:289
     3  src/preview.ts:32
     1  src/rGitignore.ts:37
     7  src/rmarkdown/draft.ts:49
    32  src/rmarkdown/index.ts:63
    13  src/rmarkdown/knit.ts:12
    11  src/rmarkdown/manager.ts:32
    23  src/rmarkdown/preview.ts:20
     5  src/rstudioapi.ts:119
    26  src/rTerminal.ts:20
    12  src/selection.ts:8
    14  src/session.ts:185
     1  src/tasks.ts:104
     3  src/test/suite/index.ts:5
     2  src/test/suite/syntax.test.ts:56
    20  src/util.ts:25
     7  src/workspaceViewer.ts:39

(For reference, if only "strict" is enabled it shows Found 295 errors in 31 files.)
PR
If there is agreement on enabling strict mode I volunteer to work on a PR that fixes the existing errors. (I don't want to start working on it if its not desired)

I 100% agree and will be happy to help!
Regarding the specific compiler options, I would maybe reconsider "noUnusedLocals": true and "noUnusedParameters": true. Unused variables/parameters don't really create any problems (afaik), and having these flagged as errors might be a bit annoying during development.

I 100% agree and will be happy to help!

Fantastic!

Regarding the specific compiler options, I would maybe reconsider "noUnusedLocals": true and "noUnusedParameters": true. Unused variables/parameters don't really create any problems (afaik), and having these flagged as errors might be a bit annoying during development.

Good point. I agree, this should be linted as a warning not cause an error. If I am not mistaken it also already is via eslint no-unused-vars

Thanks for raising this issue! I totally agree.

@ElianHugh Would you like to test if live share functionality works?
I tried live share, but it does not seem to work as usual as I cannot make guest attach to a new session and have shared plot and View, help tabs. It does not work with the current release either. Not sure if I'm missing something?

Thanks for testing. This is likely a bug, I will investigate.

@ElianHugh Would you like to test if live share functionality works?
I tried live share, but it does not seem to work as usual as I cannot make guest attach to a new session and have shared plot and View, help tabs. It does not work with the current release either. Not sure if I'm missing something?
Other than live share, everything seems to work nicely.

Sounds like something wrong with the liveshare API, will investigate. Thanks for the heads up!

I've bumped the liveshare thread here, but given this is happening independent of the PR, this shouldn't be a blocker for merging :)


Support for "external" cells

Description:
In the cell architecture white paper, we model everything including external APIs, legacy systems, etc as cells. We need to have a separate "external" cell type that will support this. Things like the docker image, replicas etc do no make sense for this kind of cells. The external APIs, security policies etc will be parts of these cell descriptions. This allows a uniform way to model the system and register cells.

From the implementation perspective, this is more similar to K8s service with ExternalName[1] type. Will do some research to bring this into the cell-based architecture.
[1] https://kubernetes.io/docs/concepts/services-networking/service/#externalname

Create an issue https://github.com/wso2-cellery/sdk/issues/143 to track this.


IOS - VBA - Unable to add alphabets in account number

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open app
Navigate to settings > Workspace > Add bank account
Proceed to the manual flow
Add alphabets in account number

Expected Result:
User should be able to add alphanumeric characters in account number field
Actual Result:
Unabe able to add alphanumeric characters in account number field. Only numeric keyboard opens up
Workaround:
Unknown
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: 1.1.29-1
Reproducible in staging?: Yes
Reproducible in production?: Yes
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
Issue reported by: Applause
Slack conversation:
View all open jobs on GitHub
Issue found when executing PR https://github.com/Expensify/App/pull/7101

Triggered auto assignment to @bondydaa (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

Not an issue?
https://github.com/Expensify/App/issues/7056

I think the title of this is a little confusing but the gist is that you are able to type non-numeric characters into the input but then it just gives you the error that it's an invalid account, I think what this is proposing is that we just don't allow a user to type any non-numeric characters and only accept numbers in the input.
I think that could a decent UX improvement but I don't think it's a huge priority either, I think I'd lean more "do nothing" for now and then if we get user's reporting/complaining about it then we can re-evaluate.

Ohh, yeah I agree!

Proposal
We can add a validation methos that disallow these character via regex.
Changes:

In BankAcountStep.js ``onChangeText can be assigned to the function updateRoutingNumber, which enforces the checks and clearErrorAndSetValue.

I'm going to close this out for now, I don't think it's valuable to add since the error message handles it and a user would have to manually toggle to the non-numeric keyboard to enter alphabetic characters.

Imho the mentioned bug can be annoying for the end user due to the long routing number. Also due to the Web Apps and Desktop applications, it is not necessary for user to be switching to a alphanumeric keyboard.

Yeah that is a possibility so that's why I think it's best to wait and see
if users actually report this as a problem.
I would wager a majority of users who are on the webapp/desktop will
copy/paste their account numbers instead of typing them. Even if they do
type then I don't see why they'd be using the alphabetic characters given
that US bank accounts are all numeric.

On Wed, Jan 12, 2022 at 5:26 PM Sakar Singhal @.***>
wrote:

Imho the mentioned bug can be annoying for the end user due to the long
routing number. Also due to the Web Apps and Desktop applications, it is
not necessary for user to be switching to a alphanumeric keyboard.
—
Reply to this email directly, view it on GitHub
https://github.com/Expensify/App/issues/7183#issuecomment-1011575641,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA7CPCTKHDQ3TPT2ZHDESDLUVYL4BANCNFSM5L2GLWBA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were assigned.Message ID:
@.***>


Remove erroneous pyopenssl dependency from new version of stomp.py

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

cc @beckermr

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Nice. Use the script to show the patches and paste them here. If you wait for the CI it will appear there too.

This is what I got locally, and then saw that the test script would do the same thing as confirmation:
% ./show_diff.py
Downloading: https://conda.anaconda.org/conda-forge/noarch/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/noarch/repodata.json.bz2
noarch::stomp.py-8.0.1-pyhd8ed1ab_0.tar.bz2
-    "pyopenssl >=20.0.1,<21.0.0",

Thank you @erykoff!


MathJax v4 error: this.parent(...) is null

I'm loading MathJax in a simple HTML webpage, via jsdelivr
<!DOCTYPE html>
<html>
<head>
  <script>window.MathJax = {
      startup: {
        pageReady: function () {
          MathJax.typesetPromise([document.body]);
          return MathJax.startup.defaultPageReady();
        }
      }
    };
  </script>
  <script<EMAIL_ADDRESS></head>

<body>
  <div>\(\mathbb{Q}\)
  </div>
</body>

</html>

Firefox throws error at tex-mml-chtml.js line 1 column 41740:

Uncaught (in promise) TypeError: this.parent(...) is null
    replace https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    updateDocument https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    updateDocument https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    updateDocument https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    updateDocument https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    updateDocument https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    methodActions https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    renderDoc https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    render https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    n https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    t https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    t https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    promise callback*t https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    t https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    promise callback*t https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    Mn https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    n https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    defaultPageReady https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    pageReady file:///this file.htm:9
    defaultReady https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    promise callback*e.defaultReady https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    defaultReady https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    <anonymous> https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    promise callback* https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    <anonymous> https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    loadFont https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    <anonymous> https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    <anonymous> https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    <anonymous> https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1
    <anonymous> https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.4/tex-mml-chtml.js:1

Chrome also throws error: Uncaught (in promise) TypeError: Cannot read properties of null (reading 'replaceChild')

Uncaught (in promise) TypeError: Cannot read properties of null (reading 'replaceChild')

There are several things happening, here, and the main issue is an error with how some promises are being handled internally.  There is also a difference between v3 and v4 in how this is handled.
It is important not to have two separate typeset operations going on simultaneously, because if the first one requires dynamically loaded code, it will pause and the second one will run during that pause, which can cause problems (for example, automatically assigned equation numbers can get out of order, or other global values can clash).
Because MathJax.typesetPromise() is performed within a promise, the code that follows it is performed before the typesetting starts.  But MathJax.startup.defaultPageReady() also does a promise-based typeset operation (the initial typesetting of the page that is the default for MathJax).  That means there are two typeset operations queued up, which can cause the problems I described above.
In v4, with its new larger font coverage, not all the font data is loaded initially, and the use of some characters causes that data to be loaded dynamically.  The double-struck characters (like \mathbb{Q}) are ones that require extra data to be loaded.  So your expression causes the bad situation that I mentioned where the first typeset operation must pause, and the second begins before the first is done.  Although v3 doesn't have dynamic font-loading, you can cause this problem in v3 by using a dynamicaly loaded TeX command, like \cancel, so \cancel{x} instead of \mathbb{Q} would cause the same problem in v3.  These issues are discussed in the documentation.
What's happening in your case is that the first typeset identifies \mathbb{Q} as the expression to typeset, but has to wait for the data for double-struck characters to be downloaded, so the second typeset starts, and it also finds the \mathbb{Q} (since it has not yet been replaced by its typeset version) and starts typesetting it.  But it also needs to wait for the double-struck data, and so both typesets are paused.  When the data are available, the first continues, finished the typesetting and replaces the initial LaTeX text with the typeset version.  Then the second typesetting finishes and tries to replace the original text by its typeset version, but that original text is no longer in the document, so has no parent element, which is what your error message is complaining about.
The documentation linked above suggests using the MathJax.startup.promise to serialize your typeset calls.  In v3, you had to do this manually, but in v4, this has been incorporated into the promise-based calls themselves, so they serialize automatically.  Because the initial MathJax.startup.promise doesn't resolve until after the initial typesetting pass (that is, not until after the pageReady() function is performed and its promise is resolved), that means your MathJax.typesetPromise() will not be performed until after the MathJax.startup.defaultPageReady() function's promise is resolved.  And that means that the MathJax.startup.defaultPageReady() is the first typeset to be performed, and MathJax.typesPromise() is the second one.
Because of the internal serialization in v4, your code should work, though in the reverse order of what you might expect.  But there is a bug in MathJax.startup.defaultPageReady() that mishandles one of the promises.  This line should be
            () => typesetPromise(CONFIG.elements) :

so that the typesetPromise() is not performed until the then() is triggered.  Right now, it is performed immediately when defaultPagePromise() is called.  (It took me quite a like two track that one down.)
One work-around for now would be of you to use
      pageReady: function () {
         return MathJax.startup.defaultPageReady().then(() => MathJax.typesetPromise([document.body]));
       }

instead, since the typesetPromise() isn't supposed to be performed until after the MathJax.startup.promise resolves, which isn't until after defaultPageReady() resolves.
Alternatively, you could do
      pageReady: function () {
         MathJax.typesetPromise([document.body]);
         return Promise.resolve();
       }

since the defaultPageReady() is not needed if you are already typesetting the entire document.
It's not clear to me what you are actually trying to accomplish with this pageReady() function, since the default action is to typeset the document body, so your MathJax.typesetPromise() call is redundant.  I assume that this is not the actual code you are using, and that you have something else in mind.
If you want to have more precise control over the order in which things are typeset, it is probably best to set startup.typeset to false in the MathJax configuration object, and then make pageReady() do whatever typesetting needs to be done in the order you want it to be.  E.g.
    window.MathJax = {
      startup: {
        typeset: false,
        pageReady: function () {
          MathJax.typesetPromise([element1]);
          MathJax.typesetPromise([element2]);
          return MathJax.startup.defaultPageReady();
        }
      }
    };

I will make a PR to fix the problem with the defaultPageReady() function.


Feature: windows authentication support

The Jenkins server might be reverse-proxied by an Apache server performing the authentication of the users.
This configuration helps the transparent authentication of the users in an Active Directory domain. This solution outsports Jenkins LDAP/Active Directory plugins in terms of performance.
Nevertheless, the plugin needs to provide the credentials of the logged user. Otherwise, the connection will fail with a HTTP 401 (the so called 401-stimulation).

The described environment eliminates the need to save the password of the user in a n-th extra configuration file, since the kerberos ticket of the currently logged user is being used to authentify.
The proposed patch sends the credentials (kerberos ticket/ntlm credentials) of the currently logged user to the server, if it asks for them by means of the HTTP 401 stimulation.

Thanks for the pull request, I'll review it this week.

Nice addition, I don't have this setup myself. When I release this version to visualstudioextensions, are you willing to test it?

Yes, I am!
Il giorno lun 15 giu 2015 10:13 Tom Kuijsten<EMAIL_ADDRESS>ha
scritto:

Nice addition, I don't have this setup myself. When I release this version
to visualstudioextensions, are you willing to test it?
—
Reply to this email directly or view it on GitHub
https://github.com/tomkuijsten/vsjenkinsmanager/pull/36#issuecomment-111973138
.

It's included in version <IP_ADDRESS> which was released yesterday, I created an issue #38 for it.


[COMMUNITY] @areusch -> Committer

Please join us to welcome @areusch as a new committer
Andrew has been heavily contributing to uTVM, on-device RPC server, various runtime features, enhancement to AutoTVM and Auto scheduler for uTVM, etc. Andrew has also been very actively sharing his thoughts at the discussion forum and reviewing pull requests provide suggestions to others.

Commits History
Code Review
Community Forum Summary

Congrats!


Requests Page Calendar/Agenda View Filters

Currently, the calendar/agenda on the requests page displays airings for reruns of shows I've already watched.  Can we have filters implemented to narrow the content being displayed on these views?  I personally only want to see upcoming shows & movies that I have outstanding requests for and/or that hasn't aired yet, as that's what I'm interested in knowing about on these views.

It shouldn't show them at all, if it is upcoming shows.  Shows that don't air at all anymore are showing up.

It shouldn't show old shows, if it is upcoming shows. Shows that don't air at all anymore are showing up in upcoming in their original air date slots.

Well I don't know what to tell ya, on mine it's showing reruns of old south park, young sheldon, and it's always sunny, none of which I have requests for and all are already present in my plex library.

No I agree with you.  I have tons of old shows that are showing in mine like m.a.s.h. and knight rider.

No I agree with you. I have tons of old shows that are showing in mine like m.a.s.h. and knight rider.

Oh sorry misread your message.


BFS in Java

Code for implementation of Breadth-First-Search in Java.

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Closes #XXXXX

Thank you for your contribution to the page! 👍
We're happy to accept these changes, and look forward to future contributions. 🎉

Thank you for your contribution to the page! 👍
We're happy to accept these changes, and look forward to future contributions. 🎉

:)


is:issue is:open MatTable row not change evertime data value updated

it needs to navigate to other pages to see changes.

@CyberryCJ @henon ,
I think this should be closed. If you are updating the object outside of the table, you'll need to repaint the UI to show the modifications. Usually,
Await InvokeAsync(StateHasChanged)


test

Motivation

Test plan

See included automated tests.

We have a policy of testing changes to Sorbet against Stripe's codebase before
merging them. I've kicked off a test run for the current PR.  When the build
finishes, I'll share with you whether or how it failed. Thanks!
Stripe employees can see the build results here:
→ https://go/builds/bui_NHL5jofAXaIY9r
→ https://go/builds/bui_NHL50LZAU3KqSX


TODO: Implement simple tests

The automated tests need at least some basic setup.

[x] Test project needs to be left running or else we have to start it and wait for it (a decent option)
[x] Create pull and push environments on test project
[x] Check out the test project
[x] Test pull and verify that we got db and files
[x] Test push and verify that they went up

These are working


crystal-1.5.1-1-darwin-universal.tar.gz is broken

Bug Report
Seems like tar archive generation for darwin is broken: v1.5.1 archive release is only 118Kb (versus 44Mb for v1.5.0).
As result, some CICD pipeines is broken: https://github.com/evgkrsk/reqs-up/runs/8263698759

I uploaded the correct package.
Something must have gone wrong while uploading the package to GitHub. The crystal-1.5.1-1-darwin-universal.tar.gz was only 118kb, and the full archive was instead named crystal-1.5.1-1-darwin-universal.tar.gz.1.
/cc @beta-ziliani Did you use the automation script https://github.com/crystal-lang/distribution-scripts/blob/master/processes/scripts/publish-crystal-packages-on-github.sh for that? If so, can you retrace what might've gone wrong?

Thanks!

@straight-shoota I did. Unfortunately I don't have the history of the session nor the tmp files to track what happened.


svg error

thank you for the great resource you've created!!!
I'd appreciate help resolving this error:
in svg-world-map.js
// Wait for asynchronous svg load
svg.addEventListener("load", async () => {
let promise2 = new Promise(resolve2 => {
// Set SVG base node
baseNode = svg.getSVGDocument().children[0];
// Startup SVG path traversing, then country sorting, followed by click handlers, etc.
initMapCountries();
svg-world-map.js:87 Uncaught (in promise) TypeError: Cannot read property 'children' of null
at svg-world-map.js:87
at new Promise ()
at HTMLObjectElement. (svg-world-map.js:85)

Hi,
thanks for trying out the map and sorry for the late answer!
There's a new version online (with some changes in the loading logic).
Maybe this fixes the issue - otherwise please let me know the OS and browser (+ version) you were using.


read_structure_by_name should have Optional[Union[Dict[str, Any], List[Dict[str, Any]]]]: for type info?

I believe that the read_structure_by_name should have Optional[Union[Dict[str, Any], List[Dict[str, Any]]]]: for type info.
As this is the return from dict_from_bytes combined with the None return if read_by_name returns None.

I agree. That is better than Any.

Solved with #208


Group Sign Up Push Notification

What's this PR do?

Creates a UserSignedUp event that fires on every signup. This allows us to create handlers for anything that we would want to fire when this happens. This PR creates a handler that sends a push notification to other users in someone's group.
Sets up a Parse service class that connects to the Parse API

Where should the reviewer start?
UserSignedUp.php
Creates a new event class that takes in the user that signed up and provides information about that user to the handler.
SendSignupPushNotification.php
Get the users group and send push notifications to the other users in that group that the user signed up.
What are the relevant tickets?
Addresses #103
cc @DFurnes

Also looks like a .DS_Store snuck in somehow in the app/ directory. :grimacing:
Otherwise all looks good to me! :+1:

@DFurnes removed! Thanks!

Nice work @sbsmith86 :+1:


switched signal handling from sigaction() to g_unix_signal_add()

Calling g_main_loop_is_running() from an asynchronous signal handler
results in undefined behaviour. See documentation of
g_unix_signal_source_new():
https://developer.gnome.org/glib/stable/glib-UNIX-specific-utilities-and-integration.html#g-unix-signal-source-new
This commit switches over to glib based signal handling. This also
eliminates the need for the global variable holding the pointer to the
main loop data structure.

This looks great @mgerstner. Thanks!


Replace Stan.Adapt with DynamicHMC.AbstractTuner

The AbstractTuner type in DynamicHMC looks like a sensible replacement for Stan.Adapt
https://github.com/tpapp/DynamicHMC.jl/blob/master/src/sampler.jl#L148
perhaps we can adapt this bit of code for our HMC sampler family? This would fix the following related issues:

Better adaptation configuration interface https://github.com/TuringLang/Turing.jl/issues/491
Support pre-cond with full covariance https://github.com/TuringLang/Turing.jl/issues/279
Robust adaption for NUTS https://github.com/TuringLang/Turing.jl/issues/324
Remove Stan dependency on Turing https://github.com/TuringLang/Turing.jl/issues/447

It appears that DynamicHMC is taking an opaque approach here: although there exists DualAveragingParameters type, there is no NUTS constructor that accept and pass through dual averaging parameters. NUTS is always using default adaption parameters for leapfrog stepsize.
The default parameters should be good enough here. Why do you want to change adaption parameters? We almost always use the default values in Turing too..

Current targets:

Move adaptation related parameters from Sampler to a separate type Tuner
Change the interface of sample so that it takes both sampler and tuner to do the sampling
Adapt the design of Tuner from DynamicHMC

Closed by https://github.com/TuringLang/Turing.jl/pull/597


Fix typos in reader implementation notes

Minor typo fixes. I presume the mention of "7 bytes" is a leftover from when the VLR user ID was entwine.

Thanks.


non consistent dropout after embeddings

In [2 - Updated Sentiment Analysis] you have dropout after embedding layer.
In [4 - Convolutional Sentiment Analysis] you dont have dropout after embedding layer.
Not sure whether you need it, but this is inconsistent, you either do or dont need in both cases. I guess this is a mistake. So many mistakes dude, hah?

The 4th notebook is an implementation of the model from this paper which only has dropout after the max pooling. The 2nd notebook was just an introduction of concepts used in sentiment analysis, which does commonly use dropout on the embeddings so they're included there.
So no, it's not a mistake.


[bug]: New image output types not being added to Gallery until refresh

Is there an existing issue for this?

[X] I have searched the existing issues

OS
Windows
GPU
cuda
VRAM
24GB
What version did you experience this issue on?
3.0.0
What happened?
@psychedelicious
I have written a new node the takes image collections and creates grids of images from it.   However when I save the grid images to the gallery '''context.services.images.create''' they don't appear in the gallery until the browser is refreshed.  I originally asked about this on discord in the dev-chat channel but @hipsterusername suggested it might be a broader issue with nodes and not something specific I am doing and I should file a bug report for it here.
Work on my new node is on discord https://discord.com/channels/1020123559063990373/1133465385182699582 and in github https://github.com/skunkworxdark/InvokeAI/tree/ImageGrid.
Screenshots
No response
Additional context
No response
Contact Details
skunkworxdark

cc: @Millu

Let's go ahead and track this as part of #3978 - as it's not really a bug, and more just the nature of non-"image" outputs. We can figure out how we want to allow certain nodes the ability to update the gallery (or standardize that process) as part of our node work.


Feature request: JSON/YAML copy to clipboard the path of selected element

Add a right-click context menu on the breadcrumbs bar showing the JSON or YAML path of the selected element. Then allow to copy the path into clipboard. Example:  [0].networkProfile.networkInterfaces[0].resourceGroup for the element shown in the screenshot.

With IntelliJ IDEA Community Edition (regardless of the version), it is possible to copy the path of the selected element on the breadcrumbs bar:

/duplicate of #58678 for which a PR is awaiting review.

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


Aserto.DSLoad.v0.30.7

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.6 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Packages\Aserto.DSLoad__DefaultSource\ds-load-auth0.exe returned exit code: 1
Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Packages\Aserto.DSLoad__DefaultSource\ds-load-azuread.exe returned exit code: 1
Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Packages\Aserto.DSLoad__DefaultSource\ds-load-cognito.exe returned exit code: 1
Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Packages\Aserto.DSLoad__DefaultSource\ds-load-google.exe returned exit code: 1
Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Packages\Aserto.DSLoad__DefaultSource\ds-load-ldap.exe returned exit code: 1
Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Packages\Aserto.DSLoad__DefaultSource\ds-load-okta.exe returned exit code: 1
Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Packages\Aserto.DSLoad__DefaultSource\ds-load.exe returned exit code: 1
Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Links\ds-load-auth0.exe returned exit code: 1
Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Links\ds-load-azuread.exe returned exit code: 1
Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Links\ds-load-cognito.exe returned exit code: 1
Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Links\ds-load-google.exe returned exit code: 1
Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Links\ds-load-ldap.exe returned exit code: 1
Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Links\ds-load-okta.exe returned exit code: 1
Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Links\ds-load.exe returned exit code: 1

(Automated response - build 880.)


Consider including clang-format as a npm dependency

Asking users to use brew isn't sufficient, they may be on another platform and not have a compiler toolchain on their machine.
Note for Angular, we're going to use clang-format on our typescript code (at least for now) and I've published https://www.npmjs.com/package/clang-format which you could consider depending on.
It needs more platforms supported but that's pretty trivial for a contributor who has that particular hardware.

Thank you for the suggestion. I ended up bundling clang-format initially, but I'd be happy to use an NPM module (which didn't exist at time).
My only concern is that it appears that this package expects a global install. My use case is running this on Travis, and in container-based builds, I can't use sudo. Suggestions?

The only reason I warned on local install was that I anticipated most
people would want to call clang-format on the command line (and in my gulp
task that builds on this, it instructs you to run clang-format, expecting
it to be on the path).
I'm pretty new to npm. Should I solve this differently?
Thanks!
On Fri, Mar 6, 2015 at 10:34 AM Ingo Muschenetz<EMAIL_ADDRESS>wrote:

Thank you for the suggestion. I ended up bundling clang-format initially,
but I'd be happy to use an NPM module (which didn't exist at time).
My only concern is that it appears that this package expects a global
install. My use case is running this on Travis, and in container-based
builds, I can't use sudo. Suggestions?
—
Reply to this email directly or view it on GitHub
https://github.com/ingo/grunt-clang-format/issues/1#issuecomment-77610665
.


virtctl just hangs when trying to connect to vm

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:
/kind bug

What happened:
I did virtctl console testvm to interact with my vm.
What you expected to happen:
To drop down into the login shell. Instead it just got stuck in this:
Successfully connected to 131m9 console. The escape sequence is ^]
Despite pressing enter it doesn't get past this.
I verified the VM worked as I was able to do virtctl vnc testvm and was able to interact with VM just fine. Am I missing to expose some tty port while building my custom VM ISO using linuxkit?
Anything else we need to know?:
Environment:

KubeVirt version (use virtctl version):
Kubernetes version (use kubectl version):
VM or VMI specifications:
Cloud provider or hardware configuration:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

./virtctl version
Client Version: version.Info{GitVersion:"v0.16.0", GitCommit:"06d91198bededc7a9353ac774221c83580ee3373", GitTreeState:"clean", BuildDate:"2019-04-05T15:24:49Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{GitVersion:"v0.15.0-alpha.0", GitCommit:"31d08ef5b6c0170b21f5823d351f43902168e2d5", GitTreeState:"clean", BuildDate:"2019-02-21T11:00:06Z", GoVersion:"go1.11.4", Compiler:"gc", Platform:"linux/amd64"}

Hi @bharatnc what VM are you running? Can you please share your VM, VMI specification and
how did you created the virtual machine?
As you can connect via VNC, my guess is, that when creating custom virtual machine, the TTY was not properly configured for use with KubeVirt. KubeVirt exposes the TTY via unix socket, which is a different configuration than exposing as TTY directly. We will see after some more information.

thanks @petrkotas  you confirmed my initial intuition about the serial tty port. Looks like virtctl uses ttyS0 for console, which wasn't enabled by default for my VM. I enabled it and it started working! I will close this ticket now!

Hi @bharatnc , how did you enable ttyS0 for your VM ? I am facing the same issue

@mbhatnagar11  you should be able to specify it in the grub config file (that is what I did).
Example: https://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/configure-kernel-grub.html


Implement Cohort cycle detection in hierarchy.Manager

What type of PR is this?
/kind feature
What this PR does / why we need it:
Cycle checking logic in hierarchy.Manager. Will be used by both queue.manager and cache.Cache. I'm pulling it out of #3006 to reduce diff. Part of #79
Special notes for your reviewer:
Does this PR introduce a user-facing change?
NONE

/assign @mimowo


fix(wpa-pkgs): cidercollective.cider.nightly

[ ] Have you verified that a previous version of the package is already there in the Windows Package Manager Community Repository?
[ ] Have you validated the JSON with the JSON Schema?
[ ] Have you verified that the values entered in the JSON are correct?
[ ] The commit message(s) follows the conventional commits guidelines.

Tested using Test-Package.ps1:


Dead link to Node examples

https://github.com/GenesysGo/shadow-drive/blob/537c381dbe3d7b91b30a73fd9cd6c15ce7cd7764/README.md?plain=1#L56
Are there Node examples that weren't deployed and this is just a placeholder?  Or is this a need for the repo?

Removed dead link

Thanks!


Add SUSE Linux Enterprise Server (SLES) preference

/hold
Will verify locally as we can't publish a SLES containerdisk obviously.
What this PR does / why we need it:
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 #
Special notes for your reviewer:
Release note:

A SUSE Linux Enterprise Server (SLES) preference has been added

This is passing locally for me with a SLES 15 SP6 minimal VM image used to seed a containerdisk and the single SLES test focused:
$ podman build . -f sles.Dockerfile -t sles-container-disk
[..]
$ podman push localhost/sles-container-disk docker://$(../../scripts/kubevirtci.sh registry)/sles-container-disk
[..]
$ cd ../../
$ make cluster-functest
cd tests && KUBECONFIG=$(../scripts/kubevirtci.sh kubeconfig) go test -v -timeout 0 ./functests/... -ginkgo.v -ginkgo.randomize-all
+ export KUBEVIRT_DEPLOY_NFS_CSI=true
+ KUBEVIRT_DEPLOY_NFS_CSI=true
+ export KUBEVIRT_MEMORY_SIZE=16384
+ KUBEVIRT_MEMORY_SIZE=16384
++ curl -sfL https://storage.googleapis.com/kubevirt-prow/release/kubevirt/kubevirtci/latest
+ export KUBEVIRTCI_TAG=2407021046-5fcafc4
+ KUBEVIRTCI_TAG=2407021046-5fcafc4
+ export KUBEVIRT_DEPLOY_CDI=true
+ KUBEVIRT_DEPLOY_CDI=true
+ export KUBEVIRT_VERSION=main
+ KUBEVIRT_VERSION=main
+++ dirname ../scripts/kubevirtci.sh
++ cd ../scripts/..
++ pwd
+ _base_dir=/home/lyarwood/redhat/devel/src/k8s/kubevirt/common-instancetypes
+ _cluster_up_dir=/home/lyarwood/redhat/devel/src/k8s/kubevirt/common-instancetypes/_cluster-up
+ _virtctl_dir=/home/lyarwood/redhat/devel/src/k8s/kubevirt/common-instancetypes/_cluster-up/_out/cmd/virtctl
+ _kubectl=/home/lyarwood/redhat/devel/src/k8s/kubevirt/common-instancetypes/_cluster-up/cluster-up/kubectl.sh
+ _kubessh=/home/lyarwood/redhat/devel/src/k8s/kubevirt/common-instancetypes/_cluster-up/cluster-up/ssh.sh
+ _kubevirtcicli=/home/lyarwood/redhat/devel/src/k8s/kubevirt/common-instancetypes/_cluster-up/cluster-up/cli.sh
+ _virtctl=/home/lyarwood/redhat/devel/src/k8s/kubevirt/common-instancetypes/_cluster-up/cluster-up/virtctl.sh
+ _action=kubeconfig
+ shift
+ kubevirtci::fetch_kubevirtci
+ [[ ! -d /home/lyarwood/redhat/devel/src/k8s/kubevirt/common-instancetypes/_cluster-up ]]
+ case ${_action} in
+ kubevirtci::kubeconfig
+ /home/lyarwood/redhat/devel/src/k8s/kubevirt/common-instancetypes/_cluster-up/cluster-up/kubeconfig.sh
=== RUN   TestFunctional
Running Suite: Functional test suite - /home/lyarwood/redhat/devel/src/k8s/kubevirt/common-instancetypes/tests/functests
========================================================================================================================
Random Seed:<PHONE_NUMBER> - will randomize all specs

Will run 1 of 19 specs
------------------------------
[BeforeSuite]
/home/lyarwood/redhat/devel/src/k8s/kubevirt/common-instancetypes/tests/functests/test_suite_test.go:113
[BeforeSuite] PASSED [0.026 seconds]
------------------------------
SSSSSSSSSSS
------------------------------
Common instance types func tests VirtualMachine using a preference is able to boot a Linux guest with [test_id:TODO] SLES 15
/home/lyarwood/redhat/devel/src/k8s/kubevirt/common-instancetypes/tests/functests/instancetype_test.go:127
{"component":"","level":"error","msg":"Cannot retrieve GuestOSInfo: an error on the server (\"Operation cannot be fulfilled on virtualmachineinstance.kubevirt.io \\\"test-vm-ml4k9\\\": VMI does not have guest agent connected\") has prevented the request from succeeding","pos":"vmi.go:431","timestamp":"2024-07-03T13:19:52.126514Z"}
{"component":"","level":"error","msg":"Cannot retrieve GuestOSInfo: an error on the server (\"Operation cannot be fulfilled on virtualmachineinstance.kubevirt.io \\\"test-vm-ml4k9\\\": VMI does not have guest agent connected\") has prevented the request from succeeding","pos":"vmi.go:431","timestamp":"2024-07-03T13:20:02.132696Z"}
• [40.257 seconds]
------------------------------
SSSSSSS
------------------------------
[AfterSuite]
/home/lyarwood/redhat/devel/src/k8s/kubevirt/common-instancetypes/tests/functests/test_suite_test.go:138
[AfterSuite] PASSED [0.001 seconds]
------------------------------
[ReportAfterSuite] TestFunctional
/home/lyarwood/redhat/devel/src/k8s/kubevirt/common-instancetypes/tests/functests/test_suite_test.go:146
[ReportAfterSuite] PASSED [0.000 seconds]
------------------------------

Ran 1 of 19 Specs in 40.285 seconds
SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 18 Skipped

/hold cancel

/hold

/hold cancel


Zull proxy inserts undesirable cookies in request

I have a standalone  Zuul proxy application using @EnableZuulProxy configured to proxy to a simple spring boot application.  This target application is configured with spring security and spring session, it has also registered with a Eureka instance.
Initially everything looked fine when proxied through Zuul.  Then I discovered the origin server's "SESSION" cookie was being stored in the proxy and passed on with subsequent requests from different clients.  Essentially causing the same session data to be used by multiple clients.
Here are the Zuul routes, and "BootDemo" is registered in Eureka:
zuul:
  ignoredServices: '*'
  routes:
    BootDemo: '/**'

I have observed this with both 1.0.0-RELEASE as well as 1.0.1.BUILD-SNAPSHOT.
This seems like a bug, but if not is there a way to easily configure Zuul to NOT hold these cookies.

Our zuul filters aren't designed to hold cookies, if they do, it is broken.  How did you "discover the origin server's SESSION cookie was being stored in the proxy"?  You're going to need to provide much more detail than you have given.  Perhaps a project to share and steps to replicate?  We have successfully used zuul with spring security and haven't observed what you are seeing.

I wanted to be sure I  wasn't chasing an expected behavior.   I'll try to create simple app that recreates this tonight.

no, it is definitely not expected.

I created some sample projects to illustrate what I'm seeing:  https://github.com/todda86/zuulCookies
In the original issue report it was mentioned that spring-session and spring-security were used in the origin service.  Those have been removed from this example as they weren't relevant to demonstrate this behaviour.
Reproducing the issue
start each component in a terminal window using:
mvn spring-boot:run -Deureka.password=password

start a local Eureka at localhost:8761 (I used a fresh clone of spring-cloud-samples/eureka)
Start the zuul proxy contained in the "zuulProxy" directory, listens on 9080
Start the demo app in the "demoApp" directory, listens on 8080

Hit the origin server directly a few times (port 8080) using curl.  The HTTP session ID changes each time because curl is not sending a JSESSIONID cookie on subsequent request.  Exactly as I would expect.
$ curl localhost:8080/welcome
Your session ID is:415C1592AB6E6A985DF668799702C5C5~
$ curl localhost:8080/welcome
Your session ID is:45FB0577B6AC321AF6C28572FFA82335~
$ curl localhost:8080/welcome
Your session ID is:70C6913D4AC0BFAEB546EB9646A4AAD5~
$ curl localhost:8080/welcome
Your session ID is:80E676875F8C06FA60FD370C7033358B~

Then hit the Zuul proxy address on port 9080. Notice the sessionId never changes. To further illustrate it's possible to hit the proxy URL from Chrome, the same sessionId will be returned and dev tools will show that no JSESSIONID was sent in the request
$ curl localhost:9080/welcome
Your session ID is:1DE380F4C4ACFDDDBA127AD07D612F44~
$ curl localhost:9080/welcome
Your session ID is:1DE380F4C4ACFDDDBA127AD07D612F44~
$ curl localhost:9080/welcome
Your session ID is:1DE380F4C4ACFDDDBA127AD07D612F44~
$ curl localhost:9080/welcome
Your session ID is:1DE380F4C4ACFDDDBA127AD07D612F44~
$ curl localhost:9080/welcome
Your session ID is:1DE380F4C4ACFDDDBA127AD07D612F44~

What I think is happening
SessionID never changes because the JSESSIONID cookie is being captured and re played.  I stepped around in the debugger quite a bit and found that the RestClient used by RibbonRoutingFilter ultimately delegates to an NFHttpClient instance.   That Netflix class extends the base DefaultHttpClient that by default configures the cookie processing interceptors.
from DefaultHttpClient
        // HTTP state management interceptors
        httpproc.addInterceptor(new RequestAddCookies());
        httpproc.addInterceptor(new ResponseProcessCookies());

Evidence of these interceptors running is in the debug logs of the zuul server:
first request, captures the cookie:
2015-04-15 00:21:14.645 DEBUG 94103 --- [nio-9080-exec-1] o.a.h.c.protocol.ResponseProcessCookies  : Cookie accepted [JSESSIONID="1DE380F4C4ACFDDDBA127AD07D612F44", version:0, domain:localhost, path:/, expiry:null]

It gets added in subsequent requests:
2015-04-15 00:22:05.736 DEBUG 94103 --- [nio-9080-exec-3] o.a.h.client.protocol.RequestAddCookies  : Cookie [version: 0][name: JSESSIONID][value: 1DE380F4C4ACFDDDBA127AD07D612F44][domain: localhost][path: /][expiry: null] match [localhost:8080/welcome]

In practice, when I use spring security and set the JSESSIONID, this doesn't happen.  Your code does not set the cookie.  Maybe someone from spring-security or spring-mvc could comment (@dsyer, @rwinch or @rstoyanchev)?

Maybe someone from spring-security or spring-mvc could comment

@spencergibb In a comment @todda86 mentions:

In the original issue report it was mentioned that spring-session and spring-security were used in the origin service. Those have been removed from this example as they weren't relevant to demonstrate this behaviour.

I'm curious why you are looking for a comment from Spring Security. Am I missing something?

@rwinch I guess I'm looking for implications of this problem.  When I have spring security enabled, I don't see this behavior.

It seems this is specific to using Eureka service routing (RibbonRoutingFilter).  When I change the routing to be URL based I can no longer reproduce the issue.
Reproduces the issue:
zuul:
  ignoredServices: '*'
  routes:
    DemoApp: '/**'

Works as expected:
zuul:
  ignoredServices: '*'
  routes:
    DemoApp:
      path: '/**'
      url: http://localhost:8080

I also modified my sample to explicitly set a cookie just to make it clearer what exactly is going on.  It is still easily reproducible and produces the same debug log output from the interceptors (but now with 2 cookies)

@todda86 that makes sense, RibbonRoutingFilter uses ribbon's RestClient.  SimpleHostRoutingFilter use apache HttpClient.  I would expect they behave quite differently.

You could eliminate spring cloud completely and this behavior would still be there.

@spencergibb I agree groovy filters published in NF Zuul repo would likely produce similar results since I believe they also use RestClient but I haven't tested that.  RestClient ultimately uses HttpClient but it never modifies the cookie policy like SimpleHostRoutingFilter does:
private static HttpClient newClient() {
   ....

httpParams.setParameter(ClientPNames.COOKIE_POLICY,
					org.apache.http.client.params.CookiePolicy.IGNORE_COOKIES);

After more digging round it's pretty clear the root issue is in the Netflix RestClient class that RibbonRoutingFilter uses.   The issue is easily reproduced.  The filter itself isn't broken, it delegates to a library that is broken for this use case.  I haven't checked, but I bet RestClient is also used by Feign, and in that use case the cookie storage might make more sense (Unless your a REST purist of course).
Be that as it may, at best it makesRibbonRoutingFilter unsuitable  for any use case involving cookies.  At worst it's a huge security breach waiting to happen.  I haven't been able to find any way to override the underlying cookie policy settings.  Is a completely new routing filter the only way out here (ughh)?  Have I missed something that is plainly obvious?

It is a nasty bug and although it doesn't impact Spring Security at all, I know @rwinch likes to keep abreast of security issues in the rest of the Spring code base. It hasn't been an issue for any existing applications that we have written because they all use browser clients, which always send the right cookie (I believe). But this is potentially a nasty security vulnerability .
Even the existing apps are vulnerable because once they have been used by any authenticated user, all other users, or even a curl with no authentication, will see the session of the original user (whose cookie would be in the Apache HTTP CookieStore in the Ribbon client).
The fix is just to set the CookiePolicy explicitly (the interceptor respects the policy, so you only need to change one and not the other).

@dsyer @spencergibb The same problem affects RibbonLoadBalancingHttpClient  with potentially easy fix:
private final HttpClient delegate = HttpClientBuilder.create().disableCookieManagement().build();

PR?

https://github.com/spring-cloud/spring-cloud-netflix/pull/1173


rust unit tests failing

Following the instructions for the rust APIs through the readme allows for a successful build of those APIs but the unit tests seem to be failing when running the ./run_cne_test.sh script :
running 8 tests
test tests::test_register ... ok
test tests::test_load_config ... FAILED
test tests::test_get_port ... FAILED
test tests::test_get_port_details ... FAILED
test tests::test_cne_instance ... FAILED
test tests::test_loopback ... FAILED
test tests::test_rx_burst ... FAILED
test tests::test_tx_burst ... FAILED

failures:

---- tests::test_load_config stdout ----
thread 'tests::test_load_config' panicked at 'assertion failed: cfg.is_ok()', apis/cne/src/lib.rs:80:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- tests::test_get_port stdout ----
thread 'tests::test_get_port' panicked at 'assertion failed: ret.is_ok()', apis/cne/src/lib.rs:118:9

---- tests::test_get_port_details stdout ----
thread 'tests::test_get_port_details' panicked at 'assertion failed: ret.is_ok()', apis/cne/src/lib.rs:152:9

---- tests::test_cne_instance stdout ----
thread 'tests::test_cne_instance' panicked at 'assertion failed: ret.is_ok()', apis/cne/src/lib.rs:99:9

---- tests::test_loopback stdout ----
thread 'tests::test_loopback' panicked at 'assertion failed: ret.is_ok()', apis/cne/src/lib.rs:282:9

---- tests::test_rx_burst stdout ----
thread 'tests::test_rx_burst' panicked at 'assertion failed: ret.is_ok()', apis/cne/src/lib.rs:180:9

---- tests::test_tx_burst stdout ----
thread 'tests::test_tx_burst' panicked at 'assertion failed: ret.is_ok()', apis/cne/src/lib.rs:233:9

failures:
    tests::test_cne_instance
    tests::test_get_port
    tests::test_get_port_details
    tests::test_load_config
    tests::test_loopback
    tests::test_rx_burst
    tests::test_tx_burst

test result: FAILED. 1 passed; 7 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

error: test failed, to rerun pass `-p cndp-cne --lib`

@maryamtahhan Are you seeing this issue in fedora or ubuntu . I'm able to run units sets successfully in ubuntu 22.04.
running 8 tests
test tests::test_cne_instance ... libbpf: Kernel error message: Can't replace active BPF XDP link
libbpf: Kernel error message: Can't replace active BPF XDP link
ok
test tests::test_get_port ... libbpf: Kernel error message: Can't replace active BPF XDP link
libbpf: Kernel error message: Can't replace active BPF XDP link
ok
test tests::test_get_port_details ... libbpf: Kernel error message: Can't replace active BPF XDP link
libbpf: Kernel error message: Can't replace active BPF XDP link
ok
test tests::test_load_config ... ok
test tests::test_loopback ... libbpf: Kernel error message: Can't replace active BPF XDP link
libbpf: Kernel error message: Can't replace active BPF XDP link
ok
test tests::test_register ... ok
test tests::test_rx_burst ... libbpf: Kernel error message: Can't replace active BPF XDP link
libbpf: Kernel error message: Can't replace active BPF XDP link
ok
test tests::test_tx_burst ... libbpf: Kernel error message: Can't replace active BPF XDP link
libbpf: Kernel error message: Can't replace active BPF XDP link
ok

successes:

---- tests::test_get_port stdout ----
[2023-05-25T12:16:30Z DEBUG cne::tests] CneError::PortError(Port 100 is not configured)

---- tests::test_loopback stdout ----
[2023-05-25T12:16:34Z DEBUG cne::tests] Number of packets read = 128
[2023-05-25T12:16:34Z DEBUG cne::tests] Number of packets sent = 128

---- tests::test_rx_burst stdout ----
[2023-05-25T12:16:35Z DEBUG cne::tests] Number of packets read = 64
[2023-05-25T12:16:35Z DEBUG cne::tests] packet data length = 60

---- tests::test_tx_burst stdout ----
[2023-05-25T12:16:37Z DEBUG cne::tests] Number of packets sent = 256

successes:
    tests::test_cne_instance
    tests::test_get_port
    tests::test_get_port_details
    tests::test_load_config
    tests::test_loopback
    tests::test_register
    tests::test_rx_burst
    tests::test_tx_burst

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

I'm running these test from lang/rs/apis/cne directory. Just to confirm - Did you set LD_LIBRARY_PATH.
Append LD_LIBRARY_PATH environment variable with CNDP library path.
Ubuntu: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/x86_64-linux-gnu Fedora: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64


Replace the existing database system with an NLP-based approach using the Gemini API for loading recipes by ingredients.

Delete an existing database.
Implement the Gemini API for recipe fetching.

/attempt #2

The PR has been merged for this.


Tool for Generating Trigger Schema

Proposal
Generating trigger metadata schema according to new declarative scaler configuration, which can be used for validation or other related improvement.
Input:
  make generate-trigger-metadata-schema  [--triggername][--output][--outputfile]
Output:
trigger-metadata-schemas.yaml
Trigger metadata example:
- type: kubernetes-workload
  metadatafields:
    activationValue:
        type: string
        default: "0"
    podSelector:
        type: string
    value:
        type: string
        default: "0"
- type: activemq
  metadatafields:
    activationTargetQueueSize:
      type: string
      optional: "true"
      default: "0"
    brokerName:
      type: string
      optional: "true"
    corsHeader:
      type: string
      optional: "true"
    destinationName:
      type: string
      optional: "true"
    managementEndpoint:
      type: string
      optional: "true"
    password:
      type: string
    passwordFromEnv:
      type: string
    restAPITemplate:
      type: string
      optional: "true"
    targetQueueSize:
      type: string
      optional: "true"
      default: "10"
    username:
      type: string
    usernameFromEnv:
      type: string

Use-Case
No response
Is this a feature you are interested in implementing yourself?
Yes
Anything else?
No response

the tricky part is that technically all metadata fields are string in the CRD definition despite the underlying type. The OpenAPI schema allows setting multiple types for a field, maybe we can leverage that in some way?
https://stackoverflow.com/questions/46472543/specifying-multiple-types-for-additionalproperties-through-swagger-openapi
We would likely need to change the map[string]string to map[string]any but this theoretically shouldn't be a breaking change.


feat: Add retry decorator

Q
A

Bugfix?
❌

Breaks BC?
❌

New feature?
✔

Issues
#...

Docs PR
spiral/docs#...

This PR adds a decorator to send requests to the metrics service using retry when the RPC request fails.
New parameters for retry decorator:

Parameter
Default value

retryAttempts
3

retrySleepMicroseconds
50

Client code example
$factory = new \Spiral\RoadRunner\Metrics\MetricsFactory();

$metrics = $factory->create(\Spiral\Goridge\RPC\RPC::create('dsn'), new \Spiral\RoadRunner\Metrics\MetricsOptions(
    retryAttempts: 3,
    retrySleepMicroseconds: 50,
));

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

:exclamation: No coverage uploaded for pull request base (3.x@2733196). Click here to learn what that means.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@          Coverage Diff           @@
##             3.x       #8   +/-   ##
======================================
  Coverage       ?   93.68%
  Complexity     ?       36
======================================
  Files          ?        5
  Lines          ?       95
  Branches       ?        0
======================================
  Hits           ?       89
  Misses         ?        6
  Partials       ?        0

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


"mn" in asset-precomposition (examples/remapping)

According to lottie-docs/schema, asset-precomposition doesn't have mn (match-name) but it exists in https://github.com/LottieFiles/lottie-docs/blob/main/docs/examples/remapping.json#L13
should it be removed?

Sure, it's just exported by glaxnimate :P


[GSSoC'23]Sudoku game

Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Add a sudoku game (gui) for users to play with
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Go Ahead @smty2018


⚠ GazelleGames has degraded performance

In 2396662, GazelleGames ($GGN) experienced degraded performance:

HTTP code: 200
Response time: 4174 ms

Resolved: GazelleGames performance has improved in d7a851d.


unable to determine number of filtered record from batch

While performing BatchRecord Processing, even if some individual records are filtered out, the job report shows 0% filtered.
Also, currently the BatchRecord is treated as one record, there must be a way to show individual record count and individual filtered count in the job report.

Yes, in batch mode all metrics are per batch and not per record, because each batch of records is treated as a unit
Easy Batch reporting should be more precise in this case and give detailed information per batch and per record too.
I'll plan this improvement for the next release.
Keep tuned

Instead of returning null for the filter, perhaps we need to set a flag in the header to filter. This information can be used to update the job report before excluding it for the next thing in the chain. This will also be useful for the batchfilter to determine which individual record was filtered.

From: Mahmoud Ben<EMAIL_ADDRESS>Sent: 1/13/2016 7:52 AM
To<EMAIL_ADDRESS>Cc<EMAIL_ADDRESS>Subject: Re: [easybatch-framework] unable to determine number of filtered record from batch (#170)
Yes, in batch mode all metrics are per batch and not per record, because each batch of records is treated as a unit
Easy Batch reporting should be more precise in this case and give detailed information per batch and per record too.
I'll plan this improvement for the next release.
Keep tuned

Reply to this email directly or view it on GitHub:
https://github.com/EasyBatch/easybatch-framework/issues/170#issuecomment-171281865

Yes, good idea. The record header can be used for this use case. I'll consider your suggestion in the implementation of this improvement.
Thank you

Hi @chazo

While performing BatchRecord Processing, even if some individual records are filtered out, the job report shows 0% filtered.

How this is possible? When I register a filter in batch mode, the whole batch is filtered, not indivudal records. How did you managed to filter individual records from a batch?
Kind regards
Mahmoud

please find my filter below. Not sure if this is the intended way to use it
final class ExistingRecordBatchFilter implements RecordFilter<Batch> {

	@Override
	public Batch processRecord(Batch record) {
		final List<Record<EnrollmentInputData>> records = (List)record.getPayload();
		int chunkSize = records.size();
		if(chunkSize==0){
			return record;
		}
		records.removeIf(r->r.getPayload().getSomeString()=="filterMe");

		return record;
	}
}

Thank you for the quick reply.
Before tackling the issue, I want to give you a hint about your filter. You can actually use the BatchFilter with a delegate RecordFilter. In your case:
new BatchFilter(new GrepFilter("filterMe")); // or another record filter according to your requirement

That said, you can use the Batch filter this way, to filter some records from the batch. It is intended to be used like this since Easy Batch allows you to do it through the BatchFilter along with a delegate RecordFilter.  Now the issue comes with reporting. You are expecting to see statistics per record even if you decided to use batch processing right? Here is an example:
String datasource = "#header\nfoo\nbar\n#footer";

Job job = JobBuilder.aNewJob()
        .reader(new StringBatchReader(datasource, 2))
        .filter(new BatchFilter(new StartWithStringRecordFilter("#")))
        .build();

JobReport jobReport = JobExecutor.execute(job);
System.out.println(jobReport);

// prints:
Total count = 2
Skipped count = 0 (0.0%)
Filtered count = 0 (0.0%)
Error count = 0 (0.0%)
Success count = 2 (100.0%)

These stats are per batch since the job is working in batch mode. You are expecting this:
Total count = 4
Skipped count = 0 (0.0%)
Filtered count = 2 (50.0%)
Error count = 0 (0.0%)
Success count = 2 (50.0%)

Is this the problem?
Cheers
Mahmoud

Mahmoud,
I'm looking to filter in a batch way as well. My real use case runs a query against the database with values from the batch to find entries that are already present and remove them from the batch. So if my chunk size was a 100, in the example you provided I would run the query a 100 times vs once if I had an in clause with 100 bindings.
Thanks,
Chandru

My real use case runs a query against the database with values from the batch to find entries that are already present and remove them from the batch

I see your use case, I guessed that from the name of your class :smile:
The example I gave was just to reproduce to reporting issue your are pointing out, not a suggestion for your filter.
In my previous comment, I said:

in batch mode all metrics are per batch and not per record, because each batch of records is treated as a unit and hence the reporting should be coherent.

Since easy batch allows to filter records from a batch, the "per batch reporting" is indeed wrong or at least ambiguous. I think the reporting should be per record regardless if the if the job is executed in batch or record mode. What do you think?
In the previous example, #header and #footer records will be filtered, hence the report should be:
Total count = 4
Skipped count = 0 (0.0%)
Filtered count = 2 (50.0%)
Error count = 0 (0.0%)
Success count = 2 (50.0%)

Do you agree?

Hi,
I'm struggling to find a clean way to fix this reporting problem. The problem is deeper that just a reporting bug. I must admit there are some design issues with the current API and implementation ( explained in #211 ).
I was busy the last few days working on the next major version ( which you can try out already with version 5.0.0-SNAPSHOT). This new version should fix the problem by design: regardless to the batch size, the reporting is always consistent.
I'm going to update the documentation asap, but if you are curious and can give your feedback in the meanwhile, I would be grateful to you :smile:
Kind regards
Mahmoud

As discussed previously, the reported issue simply disappears with v5. This new version fixes the problem by design: reading a batch and then filtering some records from a batch is no more possible. Records are always read/processed one item at time and then written in batches. Hence, regardless of the batch size, the reporting is always consistent.


Slow than readFileSync

It seems that even though readFileSync reads whole file, it's still faster than this lib.
I tested files with thousand lines...

If you need to load large files, you will know who is faster 😂