feat: Concurrent OpenAI Embeddings

Hi @santiagomed,
Thank you for creating the PDF example it helped so much with what I want to do!
I think my laptop is a little under-powered because it is taking forever to make the Bert Embeddings 😅
So I had a go at creating a concurrent request for the OpenAI Embeddings, it worked much faster when I tested the rev on my local PDFs.

Hi @Butch78!
Thank you for opening the PR and for diving into concurrency to improve the speed of generating embeddings! I'm glad the PDF example was helpful for your use case.
I've previously looked into concurrent processing for the Bert embeddings using the Rayon crate. One challenge I faced was ensuring the order of the output embeddings (Vec<Vec<f32>>) matched the order of the input prompts (Vec<Box<dyn Prompt>>). When tasks are executed concurrently, they can finish at different times, making the order unpredictable.
Did your implementation successfully maintain the correct order? I'd be interested to see how you tackled this challenge.
Additionally, you might find tokio::spawn useful—it's another approach that could offer a neat concurrency solution for this context.
Looking forward to your thoughts!

My implementation for the Embeddings can't ensure that the correct order is maintained, I didn't release the importance of maintaining order.
I did some further research and I was thinking Orca could implement a Queue similar to the text-embeddings-inference the newly released Hugging Face repo implementation for BERT embeddings.
I'll change my  pull request to use tokio::spawn soon :)

I updated my code to use tokio::spawn, I also used the crossbeam_channel crate to ensure order of the OpenAI emdeddings creation :)

I'm just getting this error whenever I try and run cargo make test I was wondering if you are having the same error?

@Butch78 huh strange. They must have removed the Clone implementation for ModelWeights in the Candle crate maybe. The solution here would be to use an Arc on the ModelWeights I think. I'll look into later today after work,

It's also very strange to me how the CI workflow keeps failing on PRs but it passes on pushes to main branch...

Hi @Butch78, I made a small change to drop the sender because the receiver was infinite looping; this was caused by the fact that the original sender was not being dropped. According to Tokio docs:

The channel is closed when all senders have been dropped

Since there was still one sender "alive", the receiver loop did not exit. I just added a simple drop(sender) to fix this. I also modified the embeddings vector to start with default values as with_capacity was not working as intended. Regarding to the problem you mentioned last week, I was not encountering that issue. Can you do cargo update and try again? Let me know if the issue is still going on for you.

Amazing work! Once I ran cargo update I didn't run into the testing issue anymore! I'll be sure to run that more often when working on different Repos! :)


RT 4242: reject invalid EC point coordinates

This is a backport of commit 1e2012b7 to 1.0.2. This hardening change
was made to 1.1.0 but was not backported to 1.0.2. Recent CVEs in user
applications have shown this additional hardening in 1.0.2 would be
beneficial.
E.g. see the patch for CVE-2019-9498
https://w1.fi/security/2019-4/0011-EAP-pwd-server-Verify-received-scalar-and-element.patch
and CVE-2019-9499
https://w1.fi/security/2019-4/0013-EAP-pwd-client-Verify-received-scalar-and-element.patch
The original commit had this description:
We already test in EC_POINT_oct2point that points are on the curve. To
be on the safe side, move this check to
EC_POINT_set_affine_coordinates_* so as to also check point coordinates
received through some other method.
We do not check projective coordinates, though, as

it's unlikely that applications would be receiving this primarily
internal representation from untrusted sources, and
it's possible that the projective setters are used in a setting where
performance matters.

Ping?

Ping?

Pushed. Thanks.


Packaging issue: lib/index.js does not exist (2)

Opening this ticket since issue #11 wasn't actually properly resolved. I have since added a PR to that issue, that should fix the underlying problem.

Just installed it seems like the issue hasn't been resolved.

@ammo8600 the PR is still pending a merge. Hopefully @Randagio13 will be able to deal with it before year end.

Hi guys, sorry I missed the PR and the issue, I will take a look in these day. Thanks! Merry Christmas 🎄

#12 Released!Thanks @ajmas 🙌🏻

I'll test it out in a bit to make sure it works. @ammo8600 can you check too please

I just tried building my project, using 1.3.4 release, and it seems okay. Thanks


Implement math.var to differentiate $a$ and $"a"$ in equations.

This is a draft implementation of the math.var updates for semantically separating math variables from other text in equations.
This will close the ancient #274 and is the beginning of a solution for #254, #366, and #1125.
This removes the auto-italics correction on single-character text in math that is not a math.var element. However, my intent is that math layout will eventually be updated to only use the math font within math.var elements and use the document font for strings and normal content in math. That update will likely come in a later PR, and I would like to leave it as a separate discussion for now, see #366.
This is similar to PR #1779 by @damaxwell. However, with the updates to the layout system, I wasn't able to use much of that code at all and wrote most of this from scratch. That PR was closed for a number of open questions around show rules and regex replacement. This PR is focused mainly on fixing the auto-italics issue and leaving deeper language changes related to show-rules or new syntax for a later date.
There is still a lot to do and many details to fuss over, but the core has been implemented, and I'm happy to report only 4 tests are currently failing! There have been so many edge cases and horrible details in implementing this, but I'd love to nail the remaining ones down and maybe get this shipped for 0.12.
The four currently failing tests are the following:

math-attach-show-limit (tests/suite/math/attach.typ:106) and math-symbol-show-rule (tests/suite/math/interactions.typ:67)
These two are related to show-rules on symbol elements in math not working at all right now.
enum-numbering-closure-nested-complex (tests/suite/model/enum.typ:86)
This one is probably just weird behavior that we're going to ignore. But I'm really not sure what to do for it.
math-lr-color (tests/suite/math/delimited.typ:42)
This is related to the semantic difference between math.var and text in general. Not sure what the resolution should be here, but requires some thought about how text and math.var are styled.

I'm not fully sure how to fix these right now, and would love any guidance or suggestions from others.
EDIT: fixed the remaining failures! Will add an explanation for the test updates below.
I'll also make a general call for help: I would love any help updating documentation around symbols/math.var or adding tests to var.typ. I'll be doing this myself as I can, but would appreciate any others chipping-in.

I believe this also closes #3727. I'll double check when adding tests to var.typ.

Rebased onto main. Still need to document what the changes and tradeoffs are before review.

I'm sorry for completely ignoring this PR for months. It fell into the unforunate spot of being a very complex and intricate topic that is quite far removed from anything else I'd been thinking about at the time.
I took a look at the changes now and I must admit that I have a somewhat uneasy feeling about having a bool in symbol that states whether it came from math. It feels wrong somehow. What's your take on this particular change?

No worries on the delay! This change is a necessary fix, but certainly not the most urgent. It's also been a while since I've touched this, but that's given me some time to cook.
I was able to rebase from shatter (this PR got hit hard). I've tried to keep the changes roughly the same so we have something to test with/discuss, but I do want to change the implementation.

Having rewritten most of the code again, I agree that just a bool in Symbol is probably not right. But I'm not certain what else i would do at the moment. It might function as a short term solution, but that will require better defining what we want out of the split to math.var.

We should probably discuss this more on Discord.

Maybe some more direct discussion would be nice. How about having an actual Zoom or Discord design call about this sometime in January?


manage several opticalFlow regions dynamically

Hello @moostrik ,
I'm wondering If I can use your addon to read several areas at same time..
I can handle serveral static ftAverageFlow areas in the way you setup the system.
flows.push_back(&temporalAverageFlowItem1);
flows.push_back(&temporalAverageFlowItem2);
...
but if I want to have several dynamic areas : create and destroy them dynamically, I can not pass there just a pointer of something I'm not saving. Right? How I could do this?
Another way I'm thinking about is just setup one ( full size ), and try to read pixel by pixel the OpticalFlow restults. Any tips how to do read several small regions or by pixel of a ftOpticalFlow?

this is not an issue.
You could play around with the region of interest (setRoi()) in the ftAverageFlow

Sorry that I set this as an issue. I do not know where to ask you this. Where else I can write this feature?
Do you mean I can just set several ROI and read them as different results all in one frame? That would be so great!
My best, would be to draw all the ROI's at same time so then drawVisualizer for all of them.  That, I got it only when adding static ftAverageFlow items into the system.
Ok, I've just tried what you suggested. But did not work for me. Only one is working at time.
I did this:
//Update
	opticalFlow.update();
	averageFlow.setInput(opticalFlow.getVelocity());

//Draw
	if (toggleAverageDraw) {
		ofEnableBlendMode(OF_BLENDMODE_ALPHA);
		for (int i = 0; i < myAvgFlowRois.size(); i++) {
			averageFlow.setRoi(myAvgFlowRois[i]);
			averageFlow.update();
			averageFlow.drawInput(myAvgFlowRois[i].x*densityWidth, myAvgFlowRois[i].y*densityHeight, myAvgFlowRois[i].width*densityWidth, myAvgFlowRois[i].height*densityHeight);
			averageFlow.drawVisualizer(myAvgFlowRois[i].x*densityWidth, myAvgFlowRois[i].y*densityHeight, myAvgFlowRois[i].width*densityWidth, myAvgFlowRois[i].height*densityHeight);
		}
	}

I guess DrawVisualizer will not be possible, I will have to do my own I I want it.
But, yes you were right. I can get different averageFlow results on the fly. I'm working on it.  I almost there: now I'm drawing the different results, but one item switched. If I have 3 ROIS -> 0 is 1. 1 is 2  and 2 is 0.
I you do not mind I will post it here:

//Now all in Draw:
	if (toggleAverageDraw) {
		ofEnableBlendMode(OF_BLENDMODE_ALPHA);
		for (int i = 0; i < myAvgFlowRois.size(); i++) {
			averageFlow.setInput(opticalFlow.getVelocity());
			averageFlow.update();

			averageFlow.setRoi(myAvgFlowRois[i]);
			averageFlow.drawInput(myAvgFlowRois[i].x*densityWidth, myAvgFlowRois[i].y*densityHeight, myAvgFlowRois[i].width*densityWidth, myAvgFlowRois[i].height*densityHeight);
			averageFlow.drawVisualizer(myAvgFlowRois[i].x*densityWidth, myAvgFlowRois[i].y*densityHeight, myAvgFlowRois[i].width*densityWidth, myAvgFlowRois[i].height*densityHeight);

			ofDrawBitmapStringHighlight("getStDevMagnitude -> " + ofToString(averageFlow.getStDevMagnitude(), 3), myAvgFlowRois[i].x*densityWidth, myAvgFlowRois[i].y*densityHeight-20);
			ofDrawBitmapStringHighlight("getComponent 0 -> " + ofToString(averageFlow.getComponent(0), 3), myAvgFlowRois[i].x*densityWidth, myAvgFlowRois[i].y*densityHeight - 60);
			ofDrawBitmapStringHighlight("getComponent 1 -> " + ofToString(averageFlow.getComponent(1), 3), myAvgFlowRois[i].x*densityWidth, myAvgFlowRois[i].y*densityHeight - 40);
		}
	}

I did this small fix to have them in order.
		for (int i = 0; i < myAvgFlowRois.size(); i++) {

			averageFlow.setInput(opticalFlow.getVelocity());
			averageFlow.setRoi(myAvgFlowRois[i]);
		//second try required to draw and give results over actual averageFlow
			averageFlow.setInput(opticalFlow.getVelocity());
			averageFlow.setRoi(myAvgFlowRois[i]);

			averageFlow.update();

			averageFlow.drawInput(myAvgFlowRois[i].x*densityWidth, myAvgFlowRois[i].y*densityHeight, myAvgFlowRois[i].width*densityWidth, myAvgFlowRois[i].height*densityHeight);
			averageFlow.drawVisualizer(myAvgFlowRois[i].x*densityWidth, myAvgFlowRois[i].y*densityHeight, myAvgFlowRois[i].width*densityWidth, myAvgFlowRois[i].height*densityHeight);

			ofDrawBitmapStringHighlight("getStDevMagnitude -> " + ofToString(averageFlow.getStDevMagnitude(), 3), myAvgFlowRois[i].x*densityWidth, myAvgFlowRois[i].y*densityHeight - 20);
			ofDrawBitmapStringHighlight("getComponent 0 -> " + ofToString(averageFlow.getComponent(0), 3), myAvgFlowRois[i].x*densityWidth, myAvgFlowRois[i].y*densityHeight - 60);
			ofDrawBitmapStringHighlight("getComponent 1 -> " + ofToString(averageFlow.getComponent(1), 3), myAvgFlowRois[i].x*densityWidth, myAvgFlowRois[i].y*densityHeight - 40);
		}

But when I'm using more than 5 ROIs FPS is going down dramatically.
There is a bottle neck here, aparently repeat N times -> averageFlow.update();

Reading a texture from videoRAM to normalRAM is a very time consuming process.
For your purpose it might be more sensible to first read the whole image to pixels and analyze the subsections second.

That make sense!
My first approach -> Use ofxCvFloatImage images to read inputFbo, then apply update (Average Calcs) for-each ROI and save average calcs of each ROI. Do you think is ok?
I've already tried, but I've got a weird error after update floatPixelData convertGrayToFloat( IplImage* grayImg, IplImage* floatImg )  with my new Opencv Image.
Do you thing there another easier way to do it?
Probably not necessary to add opencvn addon, but It's a way to handle that image types and apply Rois easy.


lost the origin URL path in filter.

What happened:
There is a bug in replacepath filter. In the filter, it will replace the original URL path with the configured target path. It makes the URI parameters value missing. So before this bug fixed, the URI analysis will not be able to use(for HTTP-to-http proxy).
What you expected to happen:
The origin URL should be retained.
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:

Fighting bro!

path rewrite, include  host, uri, schema,headers

@williamfeng323 This issue is only to support replacepath?


Improve performance

At the moment, data generation is relatively slow. On my machine (i7-8700K), generation of 100 queries for this schema takes on average 0.8 seconds:
type Book {
  title: String
  author: Author
}

type Author {
  name: String
  books: [Book]
}

enum Color {
  RED
  GREEN
  BLUE
}

input QueryInput {
  eq: String
  ne: String
}

input NestedQueryInput {
  code: QueryInput
}

type Model {
  int: Int,
  float: Float,
  string: String
  id: ID,
  boolean: Boolean
  color: Color
}

type Query {
      getModel(int: Int): Model
}

The version without AST nodes was ~3 times faster. Not a priority right now definitely, but we can investigate the cause in the future and improve performance

Note: replacing st.builds with a simple function mapping gives ~10% better performance

Closed via 3cfe1ababf4cd99cad194731c6bc93f8555e3628 as it gave ~65% improvement


Issue number retrieval by state

This change splits the retrieval of the number of issues into two parts:

the retrieval of all open issues
the retrieval of all closed issues

The sum of both numbers is now returned as the total number of issues.
Fixes #17

@eoli3n @DeadPackets @NikolayIT @Mr-KayJayDee could you guys try out this PR to see if it fixes the query timeout issue?

I can't test, because I don't have the problem anymore, since 3 days.
I would merge this, as its the workaround pointed by the support guy, with the exemple of similar projects which implemented it.

@teoxoy How can I try it? I have never had problems in the Explorer. My problem is during the execution of the action.

Change the action name to: devmount/profile-readme-stats

@teoxoy Same here: https://github.com/NikolayIT/NikolayIT/actions/runs/1507088742

Wait, do I have to create a new git tag first? Otherwise the changes after v1.2 won't be included, or am I wrong here?

@NikolayIT I released v1.3. Please try again with<EMAIL_ADDRESS>

Same: https://github.com/NikolayIT/NikolayIT/runs/4332841863

here it worked, but as said, I don't face the problem anymore without the change since 3 days.
https://github.com/eoli3n/eoli3n/runs/4333001394?check_suite_focus=true


Allows running "-m tensorflow.tensorboard" (alternative solution)

Allows running python -m tensorflow.tensorboard. This is a more gentle alternative of #3779.

Can one of the admins verify this patch?

@tensorflow-jenkins Test this please.

Very minor nit, otherwise looks good to me

Year updated.

Cool, thanks for the PR; we'll merge it when tests pass.

Great! By the way, do you need to ask Jenkins again since I pushed the year change?

@tensorflow-jenkins Test this please

Style failed in BUILD file. I have updated it.

@tensorflow-jenkins test this please

@gustavla I feel like this should be mentioned in the documentation somewhere, maybe here?

Good idea, how does this look?

@tensorflow-jenkins test this please

@danmane is this ready to merge?

@tensorflow-jenkins test this please

Looks good. Yeah let's merge on tests pass @rmlarsen

@rmlarsen Updated, thanks.
By the way, it would be really helpful if either non-admin contributors could ask Jenkins to test, or if CONTRIBUTING.md included instructions for how to run local tests to minimize CI failures (like buildifier and unit tests). That could really reduce the burden on admins to babysit minor mistakes like these.

@tensorflow-jenkins test this please

@gustavla agreed, but due to a (temporary) shortage of resources in our Jenkins test cluster (ironic, we are Google :-)), we prefer to not auto-trigger test or allow contributors to do so. you can certainly run unit tests locally, which I presume you do.  @caisq or @martinwicke can the buildifier tests be run standalone?


[PDI-14063] - Changed behaviour - database name of a data source must…

… not be null/empty

needs to be rebased when appropriate.


add Infer<typeof query>, Infer<typeof compiledQuery>

Attempting a cheaper approach to #186. Just root DML query builders. Affect internals as less as possible, since this is just a consumer facing thing.

[x] typing tests.

This seems like a good addition, but I'm not sure about the name Infer. It seems too generic. It's not at all clear what it will infer without reading the docs. How about InferResult or InferResultType?

I totally agree.
The Infer naming comes from packages like zod/runtypes/typebox. There it makes sense since the consumer defines a structure and immediately extract its type. It's not ambiguous in a data definition context.
Here, its not obvious to the consumer, so we better have a more precise name. I find InferResult to be best candidate.

Found usage of Infer in a comment. Once fixed, I'll merge this. Thanks again! You're awesome!

Let's go! 🚀


bug regarding the selection cycle of 4 octets of AllowedIPs

Hello.
I noticed a bug regarding the selection cycle of 4 octets of AllowedIPs.
new_client_setup() {
  # Given a list of the assigned internal IPv4 addresses, obtain the lowest still
  #available octet. Important to start looking at 2, because 1 is our gateway.
  octet=2
  while grep AllowedIPs /etc/wireguard/wg0.conf | cut -d "." -f 4 | cut -d "/" -f 1 | grep -q "$octet"; do
  (( octet++ ))
  done
  # Don't break the WireGuard configuration in case the address space is full
  if [[ "$octet" -eq 255 ]]; then
  echo "253 clients are already configured. The WireGuard internal subnet is full!"
  exit
  fi

If the admin starts adding/removing clients, then the 4 octets begin to get mixed up and do not
go sequentially.
And the octet selection cycle does not work correctly.

In the code below, clients will never receive the 4 octet: 3,4,8,9,11,17,24,26,29.
When creating a new client, the client will receive AllowedIPs = <IP_ADDRESS>, and the next client will
receive <IP_ADDRESS>. Although the next 4 octet after 39 should be 41,44,46.
As a result, if you fill the entire pool with 24 masks, then in fact the number of clients will not be 253,
 but less, given that while in the code skips octets. In the meantime, if/else will already work and write
 "253 clients are already configured. The WireGuard internal subnet is full!"

# Do not alter the commented lines
# They are used by wireguard-install
# ENDPOINT

[Interface]
Address = <IP_ADDRESS>/24
PrivateKey =
ListenPort =

# BEGIN_PEER
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER
# BEGIN_PEER
[Peer]
AllowedIPs = <IP_ADDRESS>/32
# END_PEER

Nice catch, thank you.


migrated to nextui v2 and fixed css

Migrated from nextui v1 to v2, (v2 requires tailwind css , which is why the taliwind config and nextuiprovider were used ), fixed conflicting css for the icons (discord twitter) and the buttons and removed alot of unnecessary css
edit: although this fixes migration to v2 , unless there are other future plans this pr can / should be cancelled in favor of amethystlei's pr ,
gonna close this pr tommorow

Thanks @YA010 ! We have a WIP PR from community that migrate the whole site to nextjs (https://github.com/Shaunwei/RealChar/pull/375/files), so ideally your change can be landed after that/combined together. How do you think?

yea thats great , will wait after that pr is done ,and see what changes if any can be done after


Be tournament owner and participant

Is your feature request related to a problem? Please describe.
I can not be owner and participant to my tournament.
Describe the solution you'd like
I think it is an idea interesting to give capability to a tournament owner to be a participant of the tournament as same time.

In the actual system, it is already done.
Please, be sure to thoroughly test before opening an issue


hotfix(widget-v2): fix bugs in app store

[ ] when setting default blockchain/token, the URL will be overrided after refresh. (but for the default amount, we have another behavior)


Why not

Why not
new HttpRequestMessage(HttpMethod.Delete, ...);

_Originally posted by @fgheysels

on tests/Codit.IntegrationTest/CustomizationTest.cs
var request = new HttpRequestMessage(new HttpMethod("DELETE"), $"/codito/v1/customization/{id}");


add nightly testing scripts

Instead of modifying the current script I've taken the opportunity to change how we define our nightly testing. Instead of manually writing a cronfile which is installed to frzz, I suggest we now use a config file to define the settings of each test suite we want to launch and have here added a python file to generate and install the cronfile from this config file. The python script will need to be run manually whenever an update is made to the nightly testing.
I've used a yaml file as the config file - I would suggest active ones of these live off repo (eg. ~frzz at meto) as we don't want to have to review nightly testing changes. I have included an example file in the branch here however.
The script sets the nightly jobs up to launch as slurm jobs on spice - this is how it's currently done, presumably to avoid overworking els055. The .sh script added here will need to live somewhere - I would guess in a clone of this repo in UMDIR being the most sensible.

(curious to see if you get 2 copies of this. I sent one as a 'reply' to the pull request, the other because I've cc'd you directly as I can't tell where the gibberish url @ reply.git is going to go...)
It would have saved me some (considerable) time and frustration if in either the issue or the PR, you'd mentioned which script (and where it lived) was being updated, no scratch that, replaced...
So I think it's probably "run_rose_stem.py" in fcm:um_tr/admin/rose_stem
(but also submit_rose_stem_meto_slurm.sh from the same location)
I'm not really up to date with that script, and it looks a wee bit difficult to 'unpick' without some solid examples...
So this might be better looked at 'together' sometime...
But here are some initial Q's from my first glances...

So in the existing WP, I think we hand-craft a line in the crontab to fire off the existing script with a bunch of options to run a particular suite (yuk). Is that true ? My recollection being is that made it easier to re-start scripts
*   Has being able to re-start test suites been considered in the new WP ?
In you're replacement, we would hand craft (edit) a config file (which has the info for ALL the cron launched jobs) and then run the new script which writes a cronfile, presumably where each line looks like "  rose stem arg arg args more-args args-again etc" (or it's cylc8 equivalent ) much like users might type in a terminal.
*   If that's the case, do we still need to submit via slurm on SPICE - that was done so that the original script 'ran' on something other than the box running cron. But if the new script is creating full commands to launch "rose stem" or equivalent then any 'actual work' is passed off to cylc servers and other systems rather rapidly. I think/ the current script can require check out of a WC - which would be a processing pain on the box running cron, but if the new one isn't doing that......
Why YAML, why not INI (as used by Rose - or have they switched to YAML in Rose2) ?
What is the syntax of the times in the config file (time_launch and time_clean) ? Is it cron format (hours and minutes, or maybe that was minutes and hours - or something else ?). And currently we run cleanup operations 24 hours(ish) later (presumably more for weeklies)
*   How does the new script handle this, because the format for the 2 looks identical, so if it's just defining the hour and the minute, how does it know how many days later to run the clean up ? is it internal 'magic' please tell me it's not "internal magic"....
*   Would the cleanup time be better written in the time format used by cylc/rose (PT3D2H0M - or however it looks for plus 3 days, 2 hours and zero minutes) In the hope that users of this script are more familiar with that as a time format than I am, but to give us total flexibility in when after the job is run it's matched cleanup is run.
*   If you were to consider writing the start time in suite format - how might you do that ? to indicate it was daily, weekly etc...
*   I think this is my first 'worry' in this shift - two bare numbers doesn't seem like a good call. Something that needs parsing by the script, but is more human interpretable would be my request
Does this script completely replace the existing crontab with a new one ?
*   I appreciate something which edits crontabs would be seriously hard, but have you/we considered a system whereby the script adds and we manually delete the old ones when something has been updated ? I'm just nervous about wanting things done by cron that don't necessarily fit  the the format the script is geared to create.
*   If it is replacing the whole crontab, how does it know to delete old weekly/nightly runs of things not defined in the current iteration of the crontab ? Previously we could delete an entry to run suites and then a week or so later delete the entry to clean them up (we could, I'm not saying we ever did)
*   In fact the whole idea of generating a new crontab file for every change just fills me with dreadd...
*   Have you considered one cofig => one cron line ? and the possibilities a hierarchical structure of configs might open ?
Having the arg parsing stuff in main feels clumsy, could/should it be shipped out to a function to parse and return args ?
Should it be called "generate nightly cron" if it's capable of generating cron entries which are only run weekly or at other times (lunchtime, twice a week, start of the month, cron is very flexible and while we've yet to use that functionality in full, we might want to some time. Imagine an A weekly and a B weekly that we alternate cos the weekly gets too big to run over the weekend - they both share the same 'core' but switch in different sets of hideously expensive jobs that we'd like tested but can't run even as frequently as weekly.
I'm kinda thinking "generate test suite cronfile" or something similar but shorter.
Ummm, I think some of this probably 'ought' to be split down into smaller, single purpose functions....
*   And then some of them could have unit tests - unit tests are good why don't we have unit tests ?

How's that for 'starters' ?
Sorry
Roddy
From: James Bruten @.>
Sent: Friday, January 5, 2024 1:52 PM
To: MetOffice/SimSys_Scripts @.>
Cc: Roddy Sharp @.>; Review requested @.>
Subject: Re: [MetOffice/SimSys_Scripts] add nightly testing scripts (PR #6)
This email was received from an external source.   Always check sender details, links & attachments.
@james-bruten-mohttps://github.com/james-bruten-mo requested your review on: #6https://github.com/MetOffice/SimSys_Scripts/pull/6 add nightly testing scripts.

Reply to this email directly, view it on GitHubhttps://github.com/MetOffice/SimSys_Scripts/pull/6#event-11401424579, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AB77IUDGVWZ5LDDDMWGMUQTYNAAQPAVCNFSM6AAAAABBOOWZSSVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJRGQYDCNBSGQ2TOOI.
You are receiving this because your review was requested.Message ID<EMAIL_ADDRESS>

Made changes requested by Roddy. Only thing that hasn't changed is the time_clean setting as changing this to a timedelta makes additional complications in defining the name of the suite to clean up in the cron job.
The major change to our testing here is that we will switch to Cylc8 as the primary cylc version, with Jules and UM suites launched in cylc7 nightly to check that those still work as expected.
To get it recorded somewhere, the way the new testing cronjobs are envisioned to work is there will be 2 cron files in ~frzz/Crontabs. One will be autogenerated by the python script added here based on the config file, called auto-gen_testing.cron. The other will be called manual.cron and will be available for manually entering jobs that don't fit the pattern used by the script and won't be overwritten when the script is run. Both the files will be installed by the script when run with the --install option. I have an Issue open for Cylc 8 testing in the simulation_systems repo so will complete that with proper instructions.


Cloud provider name is missing from the host's Cloud Detail section

I would expect to see something like "Provider: Azure" somewhere there.

I think it was present in the past but we might have removed it with the most recent layout.

Fair enough, I'll take a look as soon as possible.


nav: can't have 2 items with the same name, apparently

I added this to top level of sidebar.json:
  {
    "slug": "get-started",
    "source": "get-started/index.md",
    "children": [
      "1",
      "2",
      "3"
    ]
  },

without removing the other Get Started inside Tutorials:

But the link of the added on in the top level goes to /doc/tutorials/get-started 😕

I have to change the slug to something else for it to work properly, e.g. /doc/getting-started is OK.

Any chance you could make a quick diagnostic @rogermparent ? 🙂 Thanks

@jorgeorpinel can we survive with just making it unique for now? does not look like a big deal to me

The issue might actually just be this redirect because of the particular page you're making.
https://github.com/iterative/dvc.org/blob/5a58811a1dac48dfbfbb92dde91558056ad274d1/redirects-list.json#L22

Hey thanks Roger, yeah I also noticed that recently (https://github.com/iterative/dvc.org/pull/1412#issuecomment-643519893) so let me double check whether this is even a valid issue...

Yeah sorry, it was just the redirect 😋


GraphQL does not indicate transaction failure

When sending a token transaction without creating an account first for the receiver, the archive node reports this as a status of failed and a failure_reason of Cannot_pay_creation_fee_in_token.
However, as the GraphQL newBlock subscription endpoint does not include the failed status (unless I'm missing something obvious) it looks like a normal transaction. Is it possible to determine that this transaction has failed from GraphQL?

Closing this issue as it is stale for a long time.


Upper/lower case note names

The documentation of Note suggests that lower case note names can be used for the step argument, but this yields unexpected results (calling render shows the note at the wrong staff position). The documentation should be updated to use upper case names, and perhaps we should convert step to uppercase, for more robustness.

Fixed with commit d891ae2. The note names in the documentation are in upper case and the step of Note attribute is converted to upper case.


CommunicationTemplate list component

This PR aims to close #437.

After all communication PR's are merged. The will be a cleanup PR.

You made me mad! Pretties wanted it like that :angry:


superset helm uses dockerize image which is unsupported (last release 6 years ago) and has CVEs

https://github.com/apache/superset/releases/download/superset-helm-chart-0.8.6/superset-0.8.6.tgz has references to jwilder/dockerize image/commands
https://github.com/jwilder/dockerize shows no new release for many years
following tools/CVEs are found within the dockerize image:
busybox 1.26.2-r4 has
CVE-2015-9261
CVE-2017-15873
CVE-2017-16544
CVE-2018-1000500
CVE-2018-1000517
CVE-2018-20679
CVE-2019-5747
CVE-2021-42376
CVE-2021-42378
CVE-2021-42379
CVE-2021-42381
CVE-2021-42382
CVE-2021-42384
CVE-2021-42385
CVE-2021-42386
CVE-2022-28391
musl 1.1.16-r9 has
CVE-2017-15650
CVE-2019-14697
CVE-2020-28928

@tooptoop4 I see https://github.com/jwilder/dockerize has merged PRs into the repo more recently now and its most recent release seems to be in May 2023. Is this still a concern or can this issue be closed?

Still a concern, we should eventually remove this dependency, I think we just use it to test PG and redis availability on helm

Does anyone here (cc @mistercrunch) know of any viable alternatives?

While working on docker-related things I remember thinking "what does this do!?", and it's something about waiting for services to get up before starting other services. Asking GPT there are drop-in replacements like wait-for-it and dockerize-golang but given our experience with dockerize, I think the best would be to go helm or k8s-native with something like:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: superset
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: superset
    spec:
      initContainers:
      - name: wait-for-db
        image: busybox
        command: ['sh', '-c', 'until nc -z db 5432; do echo waiting for db; sleep 2; done;']
      - name: wait-for-redis
        image: busybox
        command: ['sh', '-c', 'until nc -z redis 6379; do echo waiting for redis; sleep 2; done;']
      containers:
      - name: superset
        image: apache/superset:latest
        ports:
        - containerPort: 8088

@mistercrunch I agree, this would be much cleaner and easier to reason about. Another alternative would be to have a few new scripts (similar to superset_init.sh) for checking metastore/cache readiness, and then just use the superset image to avoid pulling in busybox (after all, it'll already be available). But I don't see busybox going sour or bloating anytime soon, so I think this is a really good approach.

🦕


Add ability to determine when a query is "complete"

Currently the result callback is called immediately, and every time the result changes, as the result is built. Instead, it should also be possible to mark a query as "fire once," and only get a result or error when the query is complete.

This is important now, will focus on this soon.
May add a @defer if waiting is default, or a @wait to mark sub-trees of a query as "wait until these are done before including them in the result."


Animated Opening/Closing Envelope on Hover using CSS

I can make a project which displays an envelope closed but when hovered it opens up properly using just HTML & CSS.
I would love to contribute in this open source project!

I would like to contribute in this issue. Please assign me the project.


Ability to mask or remove the Authorization header

It would be nice to provide additional configuration to define what headers you would like removed or masked when logging. For example, the Authorization header which you might not want included in the logs.

Would you like to send a PR? We are already tracking this in https://github.com/pinojs/pino-http/issues/13.
It's a matter of wiring things up with https://www.npmjs.com/package/pino-noir.

For anyone that's looking for a solution, this is what I used:
const noir = require('pino-noir');

const redaction = noir(
  {
    req: require('express-pino-logger').stdSerializers.req,
    res: require('pino').stdSerializers.res,
    err: require('pino').stdSerializers.err,
  },
  ['req.headers.authorization']
);

const expressPino = require('express-pino-logger')({
  serializers: redaction
})

Closing, as it seem to be solved!


Update Gateway API version in samples to v1

Please provide a description of this PR:
s/v1beta1/v1/ for Gateway and HTTPRoute objects.  TCPRoute remains only in the v1alpha2 group.

[ ] Ambient
[ ] Configuration Infrastructure
[x] Docs
[ ] Dual Stack
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[ ] Upgrade
[ ] Multi Cluster
[ ] Virtual Machine
[ ] Control Plane Revisions

@craigbox: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-basic-arm64_istio
f2f1c302813d80f0abdf29dafa4319a27b652223
link
unknown
/test integ-basic-arm64

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.


New mixin syntax types are missing from code completion

Dart SDK Version
Dart VM version: 2.1.0 (Tue Nov 13 18:22:02 2018 +0100) on "macos_x64"

Whether you are using Windows, MacOSX, or Linux
Mac OSX 10.14.

Consider the following sample code:
class ConstructA {
    String stringA = 'STRING_A';
 }

mixin ConstructB {
    String stringB = 'STRING_B';
}

class CompositionA extends Object with ConstructA {}
class CompositionB extends Object with ConstructB {}

When adding the mixin ConstructB to the class CompositionB ...
class CompositionB extends Object with Construct...

... the Dart Analysis Server provides code completion for ConstructA as a viable type that can be mixed in to the class, but fails to provide code completion for ConstructB.
ConstructB is however recognized as a valid mixable type, once the declaration of the composing class is completed.
(I've also noted that code completion for types using the new mixin syntax fails when trying to reference the types in a [Type] statement in a doc comment.)

Just found another issue that seems to be related: importing a dart file with a mixin is not suggested by the IDE
To reproduce:

create a dart file that only contains a mixin declaration
create a dart file with a class that references the mixin created on step 1, the IDE will mark the mixin reference as an error.
Cmd+Click on the error will suggest creating a new class/mixin with the existing mixin name but will not suggest importing the dart file with the existing mixin declaration

This should be fixed.

Test case in flight: https://dart-review.googlesource.com/c/sdk/+/135967


set showTooltipMarker for single line

[x] I have searched the issues of this repository and believe that this is not a duplicate.

What problem does this feature solve?
like this example https://antv-f2.gitee.io/zh/examples/line/multiple#series
how to set the blue line showTooltipMarker: false while others true?
What does the proposed API look like?
showTooltipMarker(type) {
  return boolean
}

more details ? did not understand what you want...

more details ? did not understand what you want...

onShow: (obj) => {
// 只显示一条线的marker
return (obj.tooltipMarkerCfg.items = obj.tooltipMarkerCfg.items.slice(0, 1));
},

如果还有柱状图，要显示柱状图的提示背景，隐藏线图的marker，有没有办法做到？


add Pair, a pair programming tool using GPT-4

Pair is an iterative, stateful chat-like interface for programmers to pair programming with GPTs. Suitable for more complex tasks that require Q&A, feedback to guide it in a particular direction, iteration on code execution errors, etc.

@patrickstorm @radi-cho I made the change, please help merge. Sorry for the inconvenience.


Capturing URLs of new windows?

Hey,
is there a way to navigate in a new popup/window with chromelesss and when it's shut down - come back to the main window?

Did you find a way ?


Precision errors running tests

Describe the bug
When running the tests, I run into some precision errors. I have ran them a handful of times, and they seem to consistently be the following two tests:
tests::jit::module_nearest_interpolate::tests::test_downsample_interpolation
tests::jit_fusion::module_nearest_interpolate::tests::test_downsample_interpolation

The full log is:
failures:

---- tests::jit::module_nearest_interpolate::tests::test_downsample_interpolation stdout ----
thread 'tests::jit::module_nearest_interpolate::tests::test_downsample_interpolation' panicked at crates/burn-wgpu/src/lib.rs:73:5:
Tensors are not approx eq:
  => Position 3: 7 != 6 | difference 1 > tolerance 0.0010000000000000002
  => Position 9: 161 != 160 | difference 1 > tolerance 0.0010000000000000002
  => Position 15: 315 != 314 | difference 1 > tolerance 0.0010000000000000002
  => Position 21: 469 != 468 | difference 1 > tolerance 0.0010000000000000002

---- tests::jit_fusion::module_nearest_interpolate::tests::test_downsample_interpolation stdout ----
thread 'tests::jit_fusion::module_nearest_interpolate::tests::test_downsample_interpolation' panicked at crates/burn-wgpu/src/lib.rs:73:5:
Tensors are not approx eq:
  => Position 3: 7 != 6 | difference 1 > tolerance 0.0010000000000000002
  => Position 9: 161 != 160 | difference 1 > tolerance 0.0010000000000000002
  => Position 15: 315 != 314 | difference 1 > tolerance 0.0010000000000000002
  => Position 21: 469 != 468 | difference 1 > tolerance 0.0010000000000000002

To Reproduce

Clone the latest version of main
Use run-checks.sh and wait for the errors

Hardware:

OS: Linux (NixOS 24.04 with kernel 6.7.6)
GPU: AMD ATI Radeon RX 6900 XT
CPU: Intel i9-12900k

As I noted in #1444 I ignored these tests too on my local run. Hardware:
Arch Linux, kernel on 6.7.9
Intel i7-13700K
AMD Radeon RX 5700 XT

@nathanielsimard since you guys are working on this


GetVarAction Timeout

Hello.
I successfully used this lib (but earlier version maybe 2 years old version) with Asterisk 1.2, 1.6. But after updating asterisk.net lib now (master branch) - i get timeout for GetVarAction for all version of Asterisk (1.6, 13, 15) and ami (1.3, 2.10, 4.0).
This code:
method(DialEvent e)
ManagerResponse responseSrc;
String valueSrc = " ";
try {
    GetVarAction getVarActioneSrc = new GetVarAction(e.Channel, "CALLERID(num)");
    responseSrc = asteriskManagerConnection.SendAction(getVarActioneSrc, 8000);
    if (responseSrc.IsSuccess())
        valueSrc = responseSrc.GetAttribute("Value");
} catch (Exception ex){
     valueSrc = e.CallerIdName;
}

After executing command SendAction I got ex = {"Timeout waiting for response to GetVar"}" (System.Collections.ListListDictionaryInternal type)
I checked GetVarAction with "CALLERID(all)", "UNIQUEID" and another Variable, which work fine in telnet - same result.
RedirectAction, HangupAction, OriginateAction - work fine.
This is debug. I got exception and check the same command in telnet - success:

What can it may?

Is this still an issue?

I do not know, you tell me :)
The bug was reproduced in November 2017. Did you fix it in new commits? Did you check it?

@BuilovAlexey with respect, we're not here to do everything, this is an open source project. Your input on if an issue has been fixed or not would be greatly appreciated, but if you're unable or not willing to, then we will close the issue until it's either reported again, or something is willing to review it.

I am just going through a few old issues.
I don't quite understand this issue so I don't know if it was fixed or if you found a workaround.

@skrusty No, I did not correct this bug in this project. I just went back to the earlier version of the project, where there was not this error.
You do not close issue if it is not solved by anyone? So let it be open I think. And other developers could see it and do not ask again

@BuilovAlexey My point is you don't need to be rude to other contributors, simply saying you're unaware if the issue is fixed, or pointing to how you resolved it by using an older version would be useful.

@BuilovAlexey, which version did you downgrade to?

I can get this to timeout on the current version, but I haven't a clue about how it SHOULD work.

@BuilovAlexey, did you want to help solve this issue? At least tell us which version you downgraded to so we know when it broke?


jsoup 1.15 performance problems with :has(), :matches(), ...

Hi.
I am intensively using jsoup in my app.
I tried to update from jsoup 1.12.2 to jsoup 1.15.3 -> and see huge performance degradation.
After doing some tests, i see that there is a problem with pseudo selectors like :has(), :matches(), and may be other.
Document doc = Jsoup.connect("https://www.amazon.com/").get();
String title = doc.title();
System.out.println("Title: " + title);

// warm up
for(int i=0; i<1000; ++i) doc.select("*");

long s = System.currentTimeMillis();
for(int i=0; i<1000; ++i) doc.select("NoSuchElement");
System.out.println("Test #1: " + (System.currentTimeMillis() - s) + "ms");

s = System.currentTimeMillis();
for(int i=0; i<1000; ++i) doc.select("NoSuchElement:has(> div)");
System.out.println("Test #2: " + (System.currentTimeMillis() - s) + "ms");

s = System.currentTimeMillis();
for(int i=0; i<1000; ++i) doc.select("NoSuchElement:has(> div:has(> a))");
System.out.println("Test #3: " + (System.currentTimeMillis() - s) + "ms");

s = System.currentTimeMillis();
for(int i=0; i<1000; ++i) doc.select("NoSuchElement:has(> div > a)");
System.out.println("Test #4: " + (System.currentTimeMillis() - s) + "ms");

for(int i=0; i<1000; ++i) doc.select("NoSuchElement:matches(^abc$)");
System.out.println("Test #5: " + (System.currentTimeMillis() - s) + "ms");

Jsoup 1.12.2 result:

Title: Amazon.com. Spend less. Smile more.
Test #1: 32ms
Test #2: 37ms
Test #3: 36ms
Test #4: 39ms
Test #5: 74ms

Here you can see, that:

:has() pseudo selector works as expected = no extra time consumed
:matches() pseudo selector consumes some extra time = unexpected behaviour

Jsoup 1.15.3 result:

Title: Amazon.com. Spend less. Smile more.
Test #1: 14ms
Test #2: 30ms
Test #3: 85ms
Test #4: 20ms
Test #5: 174ms

Here you can see, that

:has() preudo selector consumes extra time, especially when its nested
:has(> div > a) works much faster than :has(> div:has(> a)) = unexpected behaviour
:matches() preudo selector consumes extra time, and thats time is significant ( 2.5x times slower that in jsoup 1.12.2 )

Resume:

[jsoup 1.15.3] there are performance problems while using :has() and :matches() pseudo selectors when context element is absent
[jsoup 1.12.2] there are no problems with :has() pseudo selector, but there are problems with :matches() pseudo selector
[jsoup 1.15.3] :has(> div > a) and :has(div a) pseudo selectors work much faster than :has(> div:has(> a)) pseudo selector in both situations - when context element is absent and when its not
[jsoup 1.12.2] same problem, but only when context element is not absent
[jsoup 1.15.3] in general :has() and :matches() preudo selectors work slower than in jsoup 1.12.2 when context element is not absent
i showed some simple selectors, but my app use hunders of them and a lot of them are complex -> real performance degradation is 3x

(Closing, as not directly actionable. Happy to take a look at any specific performance suggestions.)

I have added a cost-based query planner which should improve the performance of these selectors. See commit: 32d247d

Yes, now it works much better, thanks
P.s. In general performance of v1.17.2 is very similar to v1.12.2


Error: Not found wrapperScript: /home/vsts/work/1/s/gradlew

Hi Team,
we are facing wrapper script not found issue even though provided with right path where the file present.
Please let us know what would be the issue.
thanks,
Yugesh

- task: Gradle@2
  inputs:
    gradleWrapperFile: 'gradlew'
    workingDirectory: '$(System.DefaultWorkingDirectory)/xyz-repo'
    tasks: 'build --stacktrace --info'
    publishJUnitResults: false
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.11'
    sonarQubeRunAnalysis: false
    spotBugsAnalysis: false

@yugeshmothukuru This does not look like the setup of the Gradle provided GitHub action for running Gradle builds.
Check with the provider of the action you are using or switch to the recommended way.


Why few audio links are not playing in Android?

Following audio URLs are not playing:

http://www.geetganga.org/files/audio/Swamiji Vivekudu Kalalu Kanna Bharatam.mp3
http://www.geetganga.org/files/audio/hum_kare_rashtra_aradhan.mp3

07-04 15:26:10.849  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() frame decode error=1
07-04 15:26:10.849  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() first frame cannot be decoded - trying to sync again
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() frame decode error=2
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() first frame cannot be decoded - trying to sync again
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() cannot re-sync the stream after next 752 bytes, status=12
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() frame decode error=2
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() first frame cannot be decoded - trying to sync again
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() cannot re-sync the stream after next 376 bytes, status=12
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() frame decode error=12
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() first frame cannot be decoded - trying to sync again
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() cannot re-sync the stream after next 188 bytes, status=12
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() frame decode error=12
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() first frame cannot be decoded - trying to sync again
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() cannot re-sync the stream after next 94 bytes, status=12
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() frame decode error=12
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() first frame cannot be decoded - trying to sync again
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() cannot re-sync the stream after next 47 bytes, status=12
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() init failed status=12
07-04 15:26:10.850  29459-30445/com.app.sample E/Decoder﹕ start() failed err=-1
07-04 15:26:10.952  29459-30445/com.app.sample E/AACPlayer﹕ playAsync():
java.lang.RuntimeException: Cannot start native decoder
at com.spoledge.aacdecoder.Decoder.start(Decoder.java:238)
at com.spoledge.aacdecoder.AACPlayer.playImpl(AACPlayer.java:424)
at com.spoledge.aacdecoder.AACPlayer.play(AACPlayer.java:386)
at com.spoledge.aacdecoder.AACPlayer.play(AACPlayer.java:338)
at com.spoledge.aacdecoder.AACPlayer$1.run(AACPlayer.java:296)
at java.lang.Thread.run(Thread.java:818)
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() frame decode error=1
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() first frame cannot be decoded - trying to sync again
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() frame decode error=2
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() first frame cannot be decoded - trying to sync again
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() cannot re-sync the stream after next 752 bytes, status=12
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() frame decode error=2
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() first frame cannot be decoded - trying to sync again
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() cannot re-sync the stream after next 376 bytes, status=12
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() frame decode error=12
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() first frame cannot be decoded - trying to sync again
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() cannot re-sync the stream after next 188 bytes, status=12
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() frame decode error=12
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() first frame cannot be decoded - trying to sync again
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() cannot re-sync the stream after next 94 bytes, status=12
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() frame decode error=12
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() first frame cannot be decoded - trying to sync again
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() cannot re-sync the stream after next 47 bytes, status=12
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder[OpenCORE-MP3]﹕ start() init failed status=12
07-04 15:26:25.900  29459-30507/com.app.sample E/Decoder﹕ start() failed err=-1
07-04 15:26:26.002  29459-30507/com.app.sample E/AACPlayer﹕ playAsync():
java.lang.RuntimeException: Cannot start native decoder
at com.spoledge.aacdecoder.Decoder.start(Decoder.java:238)
at com.spoledge.aacdecoder.AACPlayer.playImpl(AACPlayer.java:424)
at com.spoledge.aacdecoder.AACPlayer.play(AACPlayer.java:386)
at com.spoledge.aacdecoder.AACPlayer.play(AACPlayer.java:338)
at com.spoledge.aacdecoder.AACPlayer$1.run(AACPlayer.java:296)
at java.lang.Thread.run(Thread.java:818)

+1 its because this plugin does not support all streaming formats :/


Jump to bbc54 to bring in required fixes

This enables live snapshot, resolves security issues, fixes VENVs to have proper levels of setuptools and pip.

Don't merge. We need an updated version.

This can be merged now.


'tuple' object has no attribute 'split' : /bypy/util.py", line 322

E> [16:12:42] Exception occurred:
Exception:
<class 'AttributeError'> - 'tuple' object has no attribute 'split'
Stack:
  File "/usr/local/bin/bypy", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.6/site-packages/bypy/bypy.py", line 3674, in main
    perr("Exception occurred:\n{}".format(formatex(ex)))
  File "/usr/local/lib/python3.6/site-packages/bypy/util.py", line 73, in formatex
    type(ex), ex, ''.join(traceback.format_stack()))

Abort
Traceback (most recent call last):
  File "/usr/local/bin/bypy", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.6/site-packages/bypy/bypy.py", line 3650, in main
    by = ByPy(**bypyopt)
  File "/usr/local/lib/python3.6/site-packages/bypy/bypy.py", line 489, in __init__
    if comp_semver(const.__version__, minver) < 0:
  File "/usr/local/lib/python3.6/site-packages/bypy/util.py", line 322, in comp_semver
    v1a = v1.split('.')
AttributeError: 'tuple' object has no attribute 'split'

os: macos sierra
python: 3.6

Thanks for the feedback. It was due to a stupid typo in the end of const.__version__ 😓 The latest version 1.5.11 has fixed this, please update through pip.
感谢反馈。原因 const.__version__ 😓  最新版1.5.11已经修正，请用pip更新，谢谢。


gradle build failing with wrapper script

I was attempting to run ./gradlew build with the packaged wrapper script when i encountered this error:
The following model rules are unbound:
  model.components
    Mutable:
      - components (java.lang.Object)

The problem was an outdated wrapper script. The person that packaged this probably used their local installation of gradle instead of the wrapper so they didn't notice. I fixed the wrappers in that PR


Fix readme load_dict example

The first parameter was missing in the example from the README.
Resolves: https://github.com/1Password/connect-sdk-python/issues/35

Codecov Report

Merging #37 (e50a063) into main (678d607) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #37   +/-   ##
=======================================
  Coverage   76.08%   76.08%
=======================================
  Files          21       21
  Lines        1597     1597
=======================================
  Hits         1215     1215
  Misses        382      382

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 678d607...e50a063. Read the comment docs.

Could we further expand this PR (or make a new one) which fixes the example for load as well? It's the same issue (i.e. the client parameter is not mentioned, although it's needed)

Could we further expand this PR (or make a new one) which fixes the example for load as well? It's the same issue (i.e. the client parameter is not mentioned, although it's needed)

Done!


Basket Performance Optimization

This removes unnecessary update calls within the basket.

Questions
Answers

Why?
improves basket performance

BC breaks?
don't know

Tests exists & pass?
yes: /tests/Functional/Core/sBaketTest

Related tickets?

How to test?
Put a whole lot of articles in the basket and check if performance improved

Requirements met?

Basket changes are critical and must have tests to prevent unwanted side-effects. Please provide some test scenarios to verify your change.

Questions
Answers

Why?
improves basket performance

BC breaks?
for SwagLiveShopping (explanation below)

Tests exists & pass?
yes: /tests/Functional/Core/sBaketTest

Related tickets?

How to test?
Put a whole lot of articles in the basket and check if performance improved

Requirements met?

explanation
The prices in the basket should update for every other minute. The calculation for that is performed, whenever the basket gets requested.
So you are gonna have a problem, whenever there is something in the basket thats prices
need to update dynamically.
This does not mean that this is not something that cant be done.

Thanks @jozzan. Because of the breaks you are introducing, we prefer to decline this PR and wait for the changes that come with the new basket.

But there ain't any concrete plans for this, is there? I mean except that there are gonna be plans for this someday. So, what I'm gonna do is make a new pull request with only the first changes. This wouldn't introduce any compatibility breaks but already improves runtime a lot. Especially in cases where there is lots of plugins that do their own magic to baskets.


Setup semantic versioning / branching

After implemented #1

Setup automated semantic versioning that defines the next version of the application after analyzing commit messages following Angular commit message conventions. This should be done after finishing #1.
Before setting it up

for Nx generated project, make sure to have a flat folder structure, meaning place workspace files to the root directory.
package.json has to be in the root directory

follow docs I wrote about semantic-versioning setup or official documentation

I love how you moved it to In progress and then you gave up

Moving to milestone Continous Integration and Delivery because of complexity and unfinished third-party documentation

Closing due to insufficient resources
It will be developed at a later date


SOLR-17469: CLI: Resolve -f flag conflicts

https://issues.apache.org/jira/browse/SOLR-17469

Description
Keep -f for forcing actions since it is often used in other tools for "force" as well. This means keep -f for force in bin/solr and RunExampleTool to allow starting Solr as root user and also for force deleting configuration directories in DeleteTool.
Deprecate (9x) and remove (10.0) by replacing the "force-delete-config" (--force-delete-config, -forceDeleteConfig, --forceDeleteConfig, -f) in DeleteTool with the "force" option ( --force, -f).
Deprecate (9x) and remove (10.0) -f from the "format" option in PostTool.
Deprecate (9x) and remove (10.0) -f from the "config file" option (-f, --config-file, -config-file) in SolrExporter.
Deprecate (9x) and remove (10.0) -f from "upgrade solr" in install_solr_service.sh by replacing it with "–upgrade".
Solution
what it says
Tests
Please describe the tests you've developed or run to confirm this patch implements the feature or solves the problem.
Checklist
Please review the following and check all that apply:

[ ] I have reviewed the guidelines for How to Contribute and my code conforms to the standards described there to the best of my ability.
[ ] I have created a Jira issue and added the issue ID to my pull request title.
[ ] I have given Solr maintainers access to contribute to my PR branch. (optional but recommended, not available for branches on forks living under an organisation)
[ ] I have developed this patch against the main branch.
[ ] I have run ./gradlew check.
[ ] I have added tests for my changes.
[ ] I have added documentation for the Reference Guide

@malliaridis would love your review!


chore(events): extend / improve API

Description
This PR improves the event service API. The improvments include:

Allowing filtering for multiple values for domain, type, level, resource type.
Fixing discrepancy between count response returning int64 and pagination requiring int32.
Making numOfOccurrences searchable, this will allow for sorting.

As with the previous PRs, since the event service isn't released yet we are allowed to introduce breaking changes.
Checklist

[ ] Investigated and inspected CI test results
[ ] Unit test and regression tests added
[ ] Evaluated and added CHANGELOG entry if required
[ ] Determined and documented upgrade steps
[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed
Here I tell how I validated my change

see CI and the added unit tests.

Have you created automated tests for your change? Explain here which validation activities you did manually and why so.
Reminder for reviewers
In addition to reviewing code here, reviewers must also review testing and request further testing in case the
performed one does not seem sufficient. As a reviewer, you must not approve the change until you understand the
performed testing and you are satisfied with it.

Current dependencies on/for this PR:

master

PR #7881   👈

This comment was auto-generated by Graphite.


[WIP] Use the database to count by vm state

blocked on #9154
Instead of bringing back all VMs to count, lookup the database value on the db.

cleaning out PRs - this is too difficult to do right now


No longer functions on High Sierra 10.13.x

Just installed the pushed update, and noted that gSwitch didn't launch after the update. Upon attempting to launch it manually, I received an error stating "You can't use this version of the application 'gSwitch' with this version of macOS. You have macOS 10.13.6. The application requires 10.14 or later."
Not sure, Cody, whether or not this was your intent. Figured I'd open an issue just in case you meant to support versions <10.14. And if you did intend to drop legacy support, may I suggest a warning before offering it via Sparkle?

Oops I meant to change the sdk back to 10.12 when I released it.  No I'm not dropping support let me change the target real quick and re-release

No worries! Glad if I was able to help by identifying the issue before others were affected. I'd like to also say "thanks" for your continued work on this project. The dream would be if "hungry" apps would release the GPU when running off battery power. Too bad Apple didn't implement it that way. I'm often grateful for the control I get from your app, especially since gfxCardStatus became glitchy with OS updates.

Wanna let me know if 1.8.1 is good?
And I appreciate the thanks!  I'll keep supporting this for as long as I can.

Yep, looks good! Got it launched on the same machine that previously refused. 👍🏼


Could Compute operation emit 'running' event?

It seems that the operation object can only emit 'complete' and 'error' events. I think it would be great if the object could also emit 'running' or similar event that indicate the 'RUNNING' status in all Operation resources.
A use case example for that feature is to show users that the instance is in the process of creation. It can be done manually by the method similar toOperation.prototype.startPolling_ but since there already is the function for that job, it should not be re-implemented.

How about progress events?
operation.on('progress', function(progress, metadata) {
  // progress = 80;

  // metadata = {
  //   kind: 'compute#operation',
  //   id: '...',
  //   status: 'RUNNING',
  //   progress: 80,
  //   ...
  // };
});

It sounds great! It will be much easier to implement progress tracking feature with 'progress' event.
Thank you for your fast response.


routes: RouteMatch runtime keys do not take effect after snapshot updates

Description:
RouteMatch runtime keys are frozen to the values calculated in the RouteEntryImplBase constructor due to:
https://github.com/envoyproxy/envoy/commit/bcc7a96d9e66bc0f70e3ed52161ec3471f835bdb#diff-e1ba5ba2b98b12e1bd4aaa74e9b61a80R352
Since loader_.snapshot().featureEnabled is not being called, the value is frozen once the object is created. The impact here is that a user will have to reload the Envoy config for the value to take effect, creating extra burden in failover scenarios.

I'll be submitting a PR to fix this shortly.
CC @danielhochman

@htuch we had discussed representing the fractional percent runtime value as a JSON/YAML string in https://github.com/envoyproxy/envoy/pull/4217#discussion_r214192442.
My concern with continuing to do that for this fix is that we'll have to parse the string into a protobuf before calculating if the feature is enabled for every route match. See what's happening in:
https://github.com/envoyproxy/envoy/commit/bcc7a96d9e66bc0f70e3ed52161ec3471f835bdb#diff-e1ba5ba2b98b12e1bd4aaa74e9b61a80R416
On the other hand, I don't think it's ok to change the way this is configured again. Looking for any thoughts on this. I'll still go ahead and implement a first-pass fix and make any changes as needed.

Yeah, we don't need to change this. I think that the lack of atomicity here isn't as serious - it probably only happens over a short window if doing automated update and so won't affect that much traffic.

#4632 fixes this.


Monarch switchTo + next support

I really love the monarch language and I've been hoping to use it for a templating language that I am developing but I'm finding it difficult to do some advanced stuff. Specifically, if I want to tokenize something like a JavaScript trinary expression ? expression : expression it would be great to do something like
expression: [
  [/\?/, { token: "operator", switchTo: "trinary", next: "expression" }],
  ...
],
trinary: [
  [/:/, { token: "operator", switchTo: "expression" }],
]

So if I encounter a ?, I would like it to first switch the current state to "trinary" before pushing a new state ("expression") onto the stack. This allows me to be in a different state when the pushed state is later finished (popped).
Right now, it only pushes the new state and would return me to the "expression" state. So I would then have to add a ":" action to the expression actions which would make it valid to type "a : b : c" as an expression.
This really comes up because I have to know exactly when I have reached the end of an expression so I am writing very specific rules.
Is monarch open source? I would love to make a PR but I have not been able to find the source code.

The source code is here, but I think @rematch could be helpful here to enter trinary and the @rematch the first character and switchTo expression.
Here's an example where they are used together -- https://github.com/microsoft/vscode/blob/b38b758032747deea69134185d47a19e22e53005/src/vs/editor/standalone/test/monarch/monarch.test.ts#L41-L48

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!


qmake builds only shared lib

I just built the latest libxdf 0.95, and when I use qmake it builds only the shared lib. cmake works though!

@cbrnr Hmm.
I just re-built from scratch and on windows qmake built both. :/ Any ideas?


TTL expiry leaves binary file behind

Consider the following code which uses cache-manager-fs-binary:
var cm  = require('cache-manager'),
    dm  = require('cache-manager-fs-binary'),
    mc  = cm.caching({ store : 'memory', max : 100, ttl : 10 }),
    dc  =
        cm.caching
        ({
            store   : dm,
            options :
            {
                path            : '/tmp/ravi-dc',
                ttl             : 3600,
                reviveBuffers   : true,
                fillcallback    : get_test
            }
        });

var mc  = cm.multiCaching([ mc, dc ]);

if( process.argv[2] === 'set' )
    set_test();

//------------------------------------------------------------------------------
function set_test()
{
    mc.set
    (
        'k1', { binary : { value : Buffer.from('test') } }, { ttl : 60 },
        function(err) { if( err ) console.error(`ERROR: ${err}`); }
    );
}

//------------------------------------------------------------------------------
function get_test()
{
    mc.get('k1', function(err, result) { if( err ) console.error(`GET ERROR: ${err}`); });
}

Now, when I run it the first time passing the arg set, the value is set as expected, and two files are created on the disk cache, one with the metadata and the other with the binary data. Running the script again after 60 seconds (after the tel expires) without the set clears the key as you would expect, except, only the metadata file is deleted, not the binary file containing the data:
[05:56 PM]:tmp$ node ./tstcm.js set
[05:57 PM]:tmp$ ls -1 /tmp/ravi-dc/
cache_9f7ea251-1344-4dc7-95bb-ce9b1b6eac31.dat
cache_9f7ea251-1344-4dc7-95bb-ce9b1b6eac31_value.bin
[05:58 PM]:tmp$ node ./tstcm.js # running a minute later, should clear the cache
[05:58 PM]:tmp$ ls -1 /tmp/ravi-dc/
cache_9f7ea251-1344-4dc7-95bb-ce9b1b6eac31_value.bin

As you can see, the .dat file is gone as expected, but the .bin file remains.

If I am reading the code (index.js) and dat file right, the names of the binary files are stored as the values of the attributes in the data object that reference the binary data.... which would suggest that to remove the binary file upon ttl expiry, we'd need to traverse the object finding all such cases. Not the most efficient thing to do, but it seems to me the only option without deeper surgery.

I suspect the above loop to unlink binary files will not work because the collection meta data does not include those values. IIUC, here's the relevant code from the del method:
    var metaData = this.collection[key];
    ....
    async.forEachOf(metaData.value.binary, function (v, k, cb) {
                      fs.unlink(metaData.value.binary[k], cb);

The trouble, I think, is that this.collection does not contain the values! For instance, in the example code from the above comment, what metaData contains is:
 { key: 'k1',
  filename: '/tmp/ravi-dc/cache_4a3cd695-0baf-4cbe-8c98-c24e325c88eb.dat',
  expires:<PHONE_NUMBER>580,
  size: null }

As in the get method, the values have to be read from the file pointed to by the filename attribute. I don't think that's getting done:
      fsp.exists(metaData.filename).
          then(function (exists) {
              if (exists) {
                  return;
              }
              reject();
          })
          .then(function () {
              // delete the file
              if (metaData.value && metaData.value.binary && typeof metaData.value.binary === 'object' && metaData.value.binary != null)   {
                  // unlink binaries
                  async.forEachOf(metaData.value.binary, function (v, k, cb) {
                      fs.unlink(metaData.value.binary[k], cb);
                  }, function (err) {
                  });

The condition after the comment "delete the file" will never be true, unless, after checking for existence of the file, it is read and the value obtained from it.

Here's a naive fix:
134c134,136
<             if (metaData.value && metaData.value.binary && typeof metaData.value.binary === 'object' && metaData.value.binary != null) {
---
>             try { var metaExtra = JSON.parse(fs.readFileSync(metaData.filename, { encoding : 'ascii' })); }
>             catch(e) { }
>             if (metaExtra.value && metaExtra.value.binary && typeof metaExtra.value.binary === 'object' && metaExtra.value.binary != null) {
136,137c138,139
<                 async.forEachOf(metaData.value.binary, function (v, k, cb) {
<                     fs.unlink(metaData.value.binary[k], cb);
---
>                 async.forEachOf(metaExtra.value.binary, function (v, k, cb) {
>                     fs.unlink(metaExtra.value.binary[k], cb);


Issue 116 fix + multi example support

This PR fixes #116
And also introduces a new examples folder structure and live demo page so we can add more example implementations for StepZilla.

Coincidentally we use StepZilla in combination with Redux, but unfortunately we have to note that StepZilla doesn't work properly HOC technically.
In the component in which we integrate the StepZilla component, we map our Redux state values to props of this component to be able to pass them as props into the StepZilla steps.
If there is another way that we might not have considered, we would be happy to get the opposite proven :grin:

For example, like this:
// the props here.
const mapStateToProps = state => ({
    carColor: Car.selectors.getCarColor(state),
});


feat: support sqlc.embed

sqlc.embed was not supported in this plugin. I tried to keep code consistent with the native golang implementation in https://github.dev/sqlc-dev/sqlc.

@kyleconroy I think it makes a lot of sense to merge this or is something blocking?

@kevinvalk thanks for this PR, it was very useful

@kyleconroy - Can this be merged?


gorilla-bin: remove phases

Motivation for this change
#28910
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Relase notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 130767 at 0aa95470 run on x86_64-linux 1

1 package built successfully:

gorilla-bin

2 suggestions:

warning: unclear-gpl
gpl2 is a deprecated license, please check if project uses gpl2Plus or gpl2Only and change meta.license accordingly.
Near pkgs/tools/security/gorilla-bin/default.nix:38:5:
   |
38 |     license = lib.licenses.gpl2;
   |     ^

warning: missing-phase-hooks
installPhase should probably contain runHook preInstall and runHook postInstall.
Near pkgs/tools/security/gorilla-bin/default.nix:20:3:
   |
20 |   installPhase = let
   |   ^


TS doesn't narrow arrays in a union

Bug Report
🔎 Search Terms
narrowing array union
⏯ Playground Link
Playground link with relevant code
💻 Code
type Point = {
  x: number;
  y:number;
}
type Pair = [number, number]

type Coords = Point | Pair

function print1(a: Coords): number{
  if("x" in a){
    return a.x;
  } else{
    return a[0];
  }
}

function print2(a: Pair[] | Point[]): void{
  if("x" in a[0]){
    console.log(a[0].x)
  } else{
    console.log(a[0][0])
  }
}

🙁 Actual behavior
It should correctly narrow array type as Point[] instead of Point[] | Pair[] in print2().
🙂 Expected behavior
It should have done it because I don't have a mixed type where if a[0] is Point then a[1] could be Pair which is what I mean when I do Point[ ] | Pair[ ]
Also this SO link could help to explain.

This works correctly if you use TypeScript nightly (or 4.4 beta) and use --exactOptionalPropertyTypes.

Sorry, misread the issue - maybe I'm missing something but everything seems correctly narrowed in the playground.

Maybe OP was expecting a itself to be narrowed rather than just a[0]?  TypeScript doesn't narrow the containing object when you perform a check on one of its properties except in specific situations.  Thus why we have discriminated unions.
If I'm right, this is effectively a duplicate of #42384.


Test Certificate based Authentication

hi. do you have a plan to add e2e test to this repository? If yes I would like to work on it, though I am not sure if c8y provides something like a sandbox tenant to test the agent in github actions

Not yet planned as the main goal was not to run this productive more likely to demonstrate some features within Cumulocity.
Does not mean that you can't work on it ;-) If needed I can create a test tenant. Just let me know.

sure, thanks!


Provide a way to delete a repo from drone

Currently there is no way to disconnect a repository from drone. It would be great to have a way for drone to cleanup its hooks and remove it from the database.

I'm thinking we can add a simple ?remove=true flag to the existing API call:
https://github.com/drone/drone/blob/master/server/handler/repo.go#L51
It could look something like this:
func DelRepo(c web.C, w http.ResponseWriter, r *http.Request) {
	var ctx = context.FromC(c)
	var repo = ToRepo(c)
+	var rm = r.FormValue("remove") // using ?remove=true

+	// completely remove the repository from the database
+	if len(rm) != 0 {
+		err := datastore.PutRepo(ctx, repo)
+		if err != nil {
+			w.WriteHeader(http.StatusInternalServerError)
+			return
+		}
+		w.WriteHeader(http.StatusNoContent)
+		return
+	}

	// disable everything
	repo.Active = false
	repo.PullRequest = false
	repo.PostCommit = false
	repo.UserID = 0

	if err := datastore.PutRepo(ctx, repo); err != nil {
		w.WriteHeader(http.StatusInternalServerError)
		return
	}
	w.WriteHeader(http.StatusNoContent)
}

And then let's add to the drone command line utility. Similar to drone disable we could invoke drone delete

What's the "improper" way to do this?

We added drone delete to the command line utility as well as a REST endpoint. So you can now do something like this:
drone delete github.com/foo/bar

Why do I get "Unauthorized" when i try to run "drone delete github.com/myuser/myrepo"?

are you authenticated?
http://readme.drone.io/api/authentication/

ah, that'd be it. cheers.

http://readme.drone.io/api/authentication/ - 403 error

http://readme.drone.io/api/authentication/ - 403 error

The issue have been for 0.3, with the current version 0.4 even the docs got a total rewrite ;)

yes :) - but i use 0.3  and i need help with deleting repo

@loord and you already know that 0.3 is deprecated? :)

really !?!?!? sure i know - but my builds does'n know about it .
without jokes - could you please explain to me - how remove github repo from drone.
How i can fix it

./drone repos
Unauthorized

I never used 0.3, that's something for somebody else.

then I give up this software

same with me, i no have idea for deleting repos in version 0.3..please help

same with me, i no have idea for deleting repos in version 0.3..please help

Version 0.3 reached EOL, you should switch to 0.4 or wait a little bit to directly switch to 0.5.


Acces to DragBox's minArea property from DragZoom

Hello,
For my current project, i use the DragZoom object. I noticed that the dragEnd event is fired only when the drag zone is bigger than the minArea property. But as DragZoom extends DragBox, this property is not accessible from the DragZoom object because this object's constructor had only 3 parent 's properties that can be set..
It is an wanted behavior ? if yes can you explain me why please ? else can i change it by just add this property to the DragZoom constructor's options ?
https://github.com/openlayers/openlayers/blob/ac3072d88836a1d8510c484aceff6e0a5f56100f/src/ol/interaction/DragZoom.js#L43
Thank you

The minArea could be added to the parent constructor. Would you be willing to create a pull request?
Note: the property from the parent's typedef must be be added to the DragZoom's typedef

Hello,
Thank you ! Here is my MR : Add minArea typedef and ctor prop in DragZoom #9751


my stories's viewers

can you please add some example to the document about this feature ?

You can just call ig.media.listReelMediaViewer(storyPk)

It returns just a few of seen users. Not all of them.