Create RemoteDialerProxy image

Context
Parent issue: https://github.com/rancher/rancher/issues/47010
As part of the Imperative API, we want Rancher to be an extension API server. This works by pointing kube-apiserver to Rancher using an APIService resource. This resource then points to a Service which finally points to a Pod. Unfortunately, Rancher does not always run as a Pod. Instead, sometimes Rancher runs from a docker container (for testing) or even directly from the binary (when developing). We would like to still have kube-apiserver communicate with Rancher in these cases when the extension API server is enabled.
Summary
The end goal looks like this: Rancher deploys the RemoteDialerProxy (RDP) Pod, creates a tunnel between it and itself which lets kube-apiserver connect to Rancher's extension API server. Here's a diagram to better visualize it.

We're making this solution re-usable for other purposes later on (not part of imperative API). For this reason, we'll call "Rancher" -> "Client" here.
Here are the main parts that need to be implemented as part of this task. More details below.

The RDP must start a remotedialer server and a TCP server, authenticate and accept connection from clients to its remotedialer server and forward the traffic coming into its TCP server to a client's defined port.
The client library code must be able to connect to the RDP pod even outside of Kubernetes.

RDP server
The RDP server must start a remotedialer (HTTPS) server. The port to listen to is defined by the environment variable HTTPS_PORT. The certificate must be dynamically generated using dynamiclistener. The CA cert must be created (and updated) into Secret objects. This Secret will be created in the namespaced defined by the CERT_CA_NAMESPACE env var with the name defined by the CERT_CA_NAME env var.
The RDP must have a handler for /connect with the remotedialer server. This handler will authenticate the request based on a known Secret defined by the SECRET env var. The RDP will keep track of the peers connected which will be used to forward connections to.
The RDP must also start a TCP server. The port to listen to is defined by the env var PROXY_PORT. Upon connection, RDP will establish a connection to a local port on a peer. That connection port is defined by the env var PEER_PORT. The data is then proxied between the proxy connection and the peer connection.
The RDP will be its own binary at /cmd/proxy in https://github.com/rancher/remotedialer. Its image needs to be released on docker (and mirrored for Rancher for airgap).
There is a non-production ready example of this in the Imperative API POC that should get you up to speed.
RDP client
The client must connect to the server but that cannot be a direct connection because the RDP pod is not reachable outside the cluster. To make this possible, we leverage Kubernetes' port forwarding support for pods. We're essentially replicating the work of kubectl port-forward but with Go code.
The client should figure out which pod to connect to by watching Pods with user defined labels and namespace (in a later tasks, this will be app=api-extension in cattle-system namespace. The client should automatically reconnect to new pods when they appear (in case RDP crashes, is redeployed, etc).
The client must authenticate using a shared Secret.
There is a non-production bug-ridden example of this in the Imperative API POC.

The WIP code has been merged in https://github.com/rancher/remotedialer/tree/imperative-api. We'll need to pick this up and keep working on it until it's ready to be merged in the main branches.


[Cosmos] Vector Search Collection Metadata Changes

Packages impacted by this PR
@azure/cosmos
Describe the problem that is addressed by this PR
This PR adds vector indexes and vector embedding policy to enable Vector Similarity Search in Cosmos DB.
The vector embedding policy, part of the container-level settings, includes details like the dimensions of embeddings, their data type, and the method used to measure similarity between vectors.
Additionally, it introduces a new feature called Vector Indexes in the Indexing policy, similar to composite or spatial indexes. These indexes specify which paths are indexed and the type of indexing applied for improved search performance.
This PR also contains sample about the usage of these newly introduced fields.
Are there test cases added in this PR? (If not, why?)
yes
Command used to generate this PR:**(Applicable only to SDK release request PRs)
Checklists

[ ] Added impacted package name to the issue description
[ ] Does this PR needs any fixes in the SDK Generator?** (If so, create an Issue in the Autorest/typescript repository and link it here)
[ ] Added a changelog (if necessary)

API change check
APIView has identified API level changes in this PR and created following API reviews.
@azure/cosmos


Bug title

Which version of the app?
WinUI 3 Gallery
Description
No response
Screenshots
No response
Windows version
No response
Additional context
No response

Blank issue.


Configuration artifacts location

I find it a bit confusing how the path is determined for node's artefacts.
For example  Containerlab will name directories after the node names and will only created those if they are needed. For instance, by default any node of kind linux will not have it's own directory under the Lab Directory  doesn't make any sense. why make linux node type special?
Another confusing bit is the bind mounts location. It looks like the path is always relative to the cwd with the lab yaml file, however other artefacts are mounted from their own directories. Wouldn't it make sense to standardize the behaviour for all of them? unless there's an underlying reason I don't understand.

doesn't make any sense. why make linux node type special?

since nodes of linux kind don't currently have any artifacts (such as startup config, or certificates), nor state, there is no need to create a node directory for them. Hence this note.

Another confusing bit is the bind mounts location. It looks like the path is always relative to the cwd with the lab yaml file, however other artefacts are mounted from their own directories

I am not sure I follow here. In the binds section you are free to use any path such as:

absolute path: /a/b/c.txt
relative to the $pwd path: b/c.txt or ./b/c.txt
home path: ~/c.txt

The conf artifacts doc explains which artifacts containerlab will usually put for some nodes under which names. But they are orthogonal to the bind mounts, since bind mounts are not copied over to the node directory

I have the impression that when a certain level of tailoring is needed, and the NOS you're working on is of potential interest to a wider community, then it makes sense to work on building a kind for that.
With such, anything peculiar that this kind might need can be nicely abstracted in the code, so a user won't have to even bother

yep, once the cumulus image is ready, I'll do a PR for it to add a new kind for it.
but this issue is still relevant. I don't understand why config and bind paths are processed differently. Both are designed to map some host OS files inside the container and both would benefit from a node-specific directory. Here's an example. First this is how I'm mapping configuration files now:
topology:
  nodes:
    leaf1:
      kind: linux
      image: cx:latest
      binds:
      - leaf1/daemons:/etc/frr/daemons
      - leaf1/frr.conf:/etc/frr/frr.conf

Note the leaf1 prefix I have to add to make sure each node gets its unique config. Now image if binds were assumed to be taken from a <lab_dir>/<node_nam> dir, I could then re-write it to look like this:
topology:
  nodes:
    leaf1:
      kind: linux
      image: cx:latest
      binds:
      - daemons:/etc/frr/daemons
      - frr.conf:/etc/frr/frr.conf

And if #391  is implemented, this will become even better:
topology:
  kind:
    cumulus:
      image: cx:latest
      binds:
      - daemons:/etc/frr/daemons
      - frr.conf:/etc/frr/frr.conf
  nodes:
    leaf1:
      kind: cumulus
   leaf2:
      kind: cumulus

There's also a wider issue about config being a "special" kind of mount. I'd argue that it's easier to have just one standard way to map files inside containers and stick to just that.

binds behave the same way as --volume in docker CLI or in docker-compose does it not?
And config behaves the same way, when you refer a config file it just happens to be copied over to the node dir to persist there instead of being mounted from some host location and be overwritten by any changes made inside the container.
In other words, there is no such user-facing bind configuration in containerlab that takes a path relative to node directory.
One of the reasons being that typically users to do not put files under the nodes directories (with a small exception for root-ca), it is containerlab' task to put the necessary files over.
So yes, the envisioned way to bind node-specific files is to do something like that:
topology:
  nodes:
    leaf1:
      kind: linux
      image: cx:latest
      binds:
      - ~/lab-cfgs/leaf1/daemons:/etc/frr/daemons
      - ~/lab-cfgs/leaf1/frr.conf:/etc/frr/frr.conf
    leaf2:
      kind: linux
      image: cx:latest
      binds:
      - ~/lab-cfgs/leaf2/daemons:/etc/frr/daemons
      - ~/lab-cfgs/leaf2/frr.conf:/etc/frr/frr.conf

but you do see how verbose it is, don't you? whereas it's easy to check that if the bind path is not absolute, then look in the node-specific directory instead of the lab directory. You can store those bind files in node-specific directories for the same reason you store config in there - persistence, protection from overwriting.
Effectively, what I'm saying, bind mounts are the same thing as the config. Interface configuration file? - a config. Certificate files? - also a config. So it would only make sense to treat them in the same way.

So you are saying that the following path-search patterns will suffice?

a.txt - will be looked up in the node dir
./a.txt - will be looked up in the CWD (rel path)
~/a.txt - will be looked up in $HOME/a.txt
/a.txt - will be looked at abs path specified

yes, I'd even collapse the first two, to make it easier. So just have two options:

Absolute path - no change
Non-absolute path - join with nodeDir

I am afraid we can't collapse the first two
what if you have the following structure
lic.txt
lab.clab.yml

and you want to bind mount the lic.txt? You can't use the abs path, since you don't want your users who will clone your lab to change the abs paths as per their environment. So relative path to the cwd makes sense to keep

you could put lic.txt in every <labName>/<nodeName> dir?
we don't want to make things unnecessarily complex.

you could put lic.txt in every / dir?
now that seems verbose in my world =) You then need to update it every now and then and if you do a destroy of a lab with state cleanup the labdir will get deleted will all the things inside it.

I must mention here that so far we haven't seen a case when users needed to populate node dirs themselves.
Maybe what can be done is a special marker for a case when user expects containerlab to lookup a node dir: $nodeDir/a.txt.
This makes it explicit, while keeping contract of using the "normal" path resolution for binds

I also understood the nodeDir as a temporary location, created by deploy and later deleted by destroy.
All relative paths should be wrt the topo file in my view, as this is the key anchor point. It's what you want to deploy.
Absolute paths just makes everything less portable.
If you want to protect these bind files from being written to, the only way I see is for deploy to copy it to the nodeDir and change the bindline to point to the copy. It wont be any less verbose though @networkop , since the bindline in the topo file needs to point to the original file.

just keep in mind that destroy will not remove the Lab Dir, unless --cleanup flag is provided.
The same effect is when we do deploy --reconfigure.
In my view there is a benefit of making clab to look up NodeDir, but that shouldn't be at expense of re-defining the way relative path is treated, as this is confusing to a user.
I woudn't mind, though, to implement this:
name: test
topology:
  nodes:
    leaf1:
      kind: linux
      image: cx:latest
      binds:
      - $nodeDir/daemons:/etc/frr/daemons # expands to ./clab-test-leaf1/daemons
      - $nodeDir/frr.conf:/etc/frr/frr.conf
    leaf2:
      kind: linux
      image: cx:latest
      binds:
      - $nodeDir/daemons:/etc/frr/daemons # expands to ./clab-test-leaf2/daemons
      - $nodeDir/frr.conf:/etc/frr/frr.conf

So if cleanup removes all of the nodeDirs, what's the indended way to supply startup configs? For example, if I were doing a training I'd want to ship the lab in a single archive and be able to spine it up, down, cleanup and still preserve the startup state.

I see both of your points, I now don't understand why config is sitting in this ephemeral directory.

So if cleanup removes all of the nodeDirs, what's the indended way to supply startup configs? For example, if I were doing a training I'd want to ship the lab in a single archive and be able to spine it up, down, cleanup and still preserve the startup state.

you would do one of the two things:

store your config in a repo folder that is not Lab Dir and bind mount it like I showed here. This way you keep startup config outside of the ephemeral lab directory
you would not use destroy --cleanup, and use just destroy. This will keep Lab Dir intact whereas will remove the containers. On a subsequent deploy the necessary files will be mounted from LabDir once again.

I now don't understand why config is sitting in this ephemeral directory.

Historical reasons. Initially config was something that is always a product of generation out of the embedded templates. When I added user-specified config files I kept the same logic of copying over the product of templation to the NodeDir

My original confusion was caused by the fact the config and bind paths are treated differently.

config: is a first class clab citizen. The kind decides what to do with it. In most instances this is startup config, copied to the nodeDir and the the kind either binds the file to the container, maybe it binds a folder to the container, it might create a ftp/tftp server to expose the file (inside vr-xxx from what I've seen). But its kind-specific, typically copy & expose as the kind requires.
binds: is just a docker concept. The host to the container. No copying, nothing special. It's not a startup concept, not protected in any way.
What I suggested above is a way to make bind: act more like its first class citizen cousin config:, but for all kinds.

yep, ok. I got it. I still find this idea of an ephemeral config dir confusing as the docs clearly say that this is how you should mount your startup configuration.
And config also not gonna work if there are multiple directories where configuration files are stored, e.g. cumulus.

Might be good to think how cumulus will use its config:. It might be a folder & you'll have to copy the entire "startup" folder to the nodeDir.
You will always need an ephemeral part, as its not ideal to have a save influence a new deployment. Except if that is the new startup, in which case you should copy it to startup (on the clab-host, not netconf 😃 )

the problem with cumulus and maybe some of the other Linux-based NOSs is that they don't store files in one place. In my case I've got two directories  - /etc/frr and /etc/network/ .  How is this going to work with config?

just a thought: if you specify the /etc in config, then the cumulus kind can decide to only mount 2 folders inside what you specified (/frr and /network)

the problem with cumulus and maybe some of the other Linux-based NOSs is that they don't store files in one place. In my case I've got two directories - /etc/frr and /etc/network/ . How is this going to work with config?

as @kellerza mentioned, in the embedded kind you have a liberty to define how you treat the information passed in config.
You can, for example, make per-node dirs aka configs/leaf{1..n} and each dir will have folder or files that cumulus needs. Then in the kind init function you will check which files you need to mount to which paths inside the container. We do a similar thing for SR Linux.
With that you have a single dir that stores all the startup config of the node and it gets mounted to the paths specified by the logic in the kind code

yep, this will work. I'd still prefer not to hardcode any paths inside the Go code. Simply because I may decide I only want to mount one file, or I may decide to control another, non-default service by mounting a config file. So having a config syntax similar to bind would make a lot more sense, e.g.
name: test
topology:
  nodes:
    leaf1:
      kind: linux
      config:
      - foo.conf:/etc/foo/foo.conf
      - bar.conf:/etc/bar/bar.conf
    spine3:
      kind: linux
      config:
      - baz.conf:/etc/baz/baz.conf

At which stage your config looks exactly like you bind definition.

@networkop so what if we add $nodeDir/a/b/c.txt paths that will expand to nodeDir relative paths as a starting point?
Then you will be able to make startup configs for the NOS you're working with and it will be basically a substitution for
config:
      - foo.conf:/etc/foo/foo.conf
      - bar.conf:/etc/bar/bar.conf

yeah, I'm fine with that, this is what I'm doing now. In this case I don't even need a special kind and can just run as linux.
If I understand it correctly, this will also break the UX for cumulus users as they'd have to ignore what the docs say about the startup-config and use the binds method. This would also mean that the whole ephemeral storage part of UX wouldn't apply to cumulus and/or standard linux users.

with this are not breaking any existing functionality, just add a new one.
The docs have been changed to reflect the current state of affairs regarding the config element. It reads now as such:

Which essentially means that whatever is passed as the config is up to the kind implementation to decide.
Generic systems/containers will use binds as before to "inject" state into the container namespace

What I meant by "break the UX" is that some devices would be configured and interacted with one way, while the others will be configured differently, which will confuse users and make it harder to understand all the exceptions, so I was trying to find an alternative.  But ultimately if you're fine with that, I'm happy to wrap this issue up.

opened #398 to track the progress on adding $nodeDir path variable to support the use cases explained here

Ideally you still want to make cumulus a first class 'kind'. Then you wrap it's internal implementation in clab conventions.
Until such time its just a generic Linux container that can use binds. Although we understand binds, we don't typically want to think about it all the time when building a lab.

Hi @networkop
if you still have that use case around, maybe you can give a spin to #410 where $nodeDir has been added?


Desktop Dragging activates Fancybox (false click)

I'm using Fancybox with LightSlider, and when I drag the carousel with the mouse above the picture and then release the mouse, Fancybox gets activated. Of course it was not a real click and because of that I can't see a reason for why would it trigger.
Is there any way to prevent LightSlider from activating Fancybox when dragging?
Demonstration on Codepen

I customized lightslider by added onMove call - then I used it like other lightslider callbacks
onMove: function (el, v) {
if (el == $slider1) {
$slider2.css({
'transform': 'translate3d(0px, ' + (-v) + 'px, 0px)',
'-webkit-transform': 'translate3d(0px, ' + (-v) + 'px, 0px)',
'transition-duration': $slider1.css('transition-duration')
});
}
},

The same problem happens when using LightSlider and LightGallery together. Releasing the mouse over the image you're dragging, opens LightGallery. I've added the comment here rather than opening a new issue as I'm prsuming it's the same bug.
Is there any known way to prevent this?


Custom burgers - FoodSequence system

About the PR
Added a new food crafting system that allows you to herd different types of food into a single entity. The system is versatile and can be used for kebabs, sandwiches or just dishes on a plate, among other things. But in this PR, only burgers are added.
Why / Balance
Fuck microwave, its new era of procedural food
Media

https://github.com/user-attachments/assets/406c65d2-76e0-4b38-a86d-6c68b8d209e0
Breaking changes
Trash field in FoodComponent is now HashSet<>, so all food prototypes need changes from
- type: Food
  trash: TrashId

to
- type: Food
  trash:
  - TrashId

Changelog
:cl:

add: You cat cut burger bun into two halfs, and make custom burgers now!

Edit: Ingredient names are no longer repeated.

https://github.com/user-attachments/assets/a18b0a90-f264-4b3b-aace-26e03455595f
also added noRot: true and drawdepth: Mobs to burgers

this is awesome. I always intended to make a doc for a cooking system inspired by how project zomboid does it but I never got around to it. This is similar though (for burgers anyway) so if I ever do get around to it this might be a good foundation!

@TheShuEd I just had a good idea as well if you want to add this to this PR; as you stack a burger taller and taller the do-over should be longer, because it makes sense that stacking a burger twice as tall as oneself would be challenging.


Add a layout engine like yoga

IMHO issue #3482 should be opened again, I think that the question by @endel  has been overlooked.
Add support for yoga would be awesome. I think that pixijs actually needs a layout engine and yoga could be the best option since its the one under react.
According to Flipboard's team it took a very little effort to put yoga in top of their react-canvas library. Maybe this could be the case?

Go on, make a plugin :)

Ok ;)

@DavidGOrtega if you happen to start this plugin I'm willing to contribute.

In fact, I've done most of it for my game framework (based on PixiJS). Maybe I should make it a independent plugin...
https://github.com/avgjs/avg-core/blob/feature/state_tree/packages/avg-plugin-flexlayout/src/wrapper.js

@endel I'm definetely looking at it. However we are going to need a new DisplayObject implementation.
@Icemic thanks for your link, definetely I'm reading  it! Do you have a flexbox pixi container? My goal is able to create containers that you can just add Sprites into it and they are going to be positioned by them self and their dimensions.

Hi guys,
now I'm attacking this problem in my app. I have to say that integrating Yoga with Pixie and Zynga Scroller, taking aside minor issues with Yoga docs, has been very easy.
I have replicated the Zynga demo with pixi and then I put Yoga.


Support for blind users

Support for blind users
@cambridgeport9032 write:
Only problem, being a blind person using screen readers to interact, I can't see how to share posts, I can't activate the link to reply to someone using the keyboard, and so on.

@cambridgeport9032 write:
Indeed. It's in fact, simpler than you might think. All it takes to make a site accessible is ensuring that the screen reader can read the labels.
NVDA
Is a good option since it's free and open source.

https://nvda-project.org/

I agree that accessibility is something we struggle with.
I will combine the list of files that might need accessibility features and we will gradually improve on this.
Thanks a lot for a suggestion.

We will track this issue here #1754.


some parameters should be float but are text

some of the parameters are still text but should be floats:
"ident_fdr_peptide":"0.01",
"ident_fdr_protein":"0.01",
"allowed_miscleavages":"1",
"min_peptide_length":"7",
"max_precursor_charge":"7"
It only concerns the last point generated (the one "old_new":"new"). The others are fine.

Where did you find these lines?

You are right, it is not in the final results.json. I got confused when I merged Proteobot -> ProteoBench. It is when I noticed it, in the diff of the PR. But I think that it is nothing then. I'll close the issue and let you know if/when I see it again. But I suspect that it is nothing then. Sorry to have bothered you with nothin.

Inquiete:)


Add mmlspark spark 2.4 repo

I am part of the team working on mmlspark https://github.com/Azure/mmlspark
In this PR we are submitting a repo that will house the helm chark for spark that we use for our project. The chart in this repo is an upgrade to stable/spark that supports the latest spark 2.4.0, Zeppelin 0.9 and Livy on kubernetes

@dbanda would you be willing to retain the git history from the community helm/charts repo (to avoid issues like https://github.com/goharbor/harbor-helm/issues/48)?

@dbanda Thanks for being patient with us while we work through the process. There were some potential red flags that caught my attention. I wanted to chase them down and validate things. Just so you know, in full disclosure, those flags are:

I couldn't relate your account on GitHub to Microsoft who is listed as the support contact.
The charts repo and image repo are not connected to Microsoft while the support contact is. Someone other than you at Microsoft may not be able to influence the content.

While I'm not suggesting you're doing anything wrong, someone who is trying to get an improper chart into the Hub could do something similar. So, I wanted to verify all the things.
@lachie83 works at Microsoft and is a Helm Charts maintainer. The charts team owns the hub. This is why he's jumped in and it's been brought to his attention. I'm going to let him chase this down because a) he has access to more information than I do and b) he can look at things from the holistic Microsoft perspective. Look for him to be in touch.
I would personally suggest two things:

If this is owned by Microsoft, that the images and charts go in a place controlled by a team rather than an individual
The metadata on the chart itself be updated to point to Microsoft and the other proper locations

I look forward to getting MML Spark listed in the Hub. If @lachie83 doesn't reach out please feel free to circle back to me.

Thanks @mattfarina
Our team made a github/github pages for the repo https://github.com/Microsoft/charts. I updated the repo yamls.
The  docker images for the spark chart now live at mcr.microsoft.com/mmlspark/spark2.4 and the source is at https://github.com/Azure/mmlspark/tree/master/tools/helm/docker_images


Does this still work?

I know its old but i would really like something like this, i did everything that was said to do but it seems like it doesnt work, so is this still code still alive?
When i try to test it, i get this message
[{
"resource": "/c:/Users/MPC-001/Desktop/Discord-Avatar-Autochange-main/main.pyw",
"owner": "generated_diagnostic_collection_name#0",
"code": {
"value": "reportMissingImports",
"target": {
"$mid": 1,
"path": "/microsoft/pyright/blob/main/docs/configuration.md",
"scheme": "https",
"authority": "github.com",
"fragment": "reportMissingImports"
}
},
"severity": 4,
"message": "Import "dotenv" could not be resolved",
"source": "Pylance",
"startLineNumber": 1,
"startColumn": 6,
"endLineNumber": 1,
"endColumn": 12
}]

Hello,
I will update the code as soon as possible to work as desired.
Thanks for expressing your interest in this project.
Regards,
Armin.
On Fri, Oct 20, 2023 at 12:52 am, LustfulAdventurer @.***(mailto:On Fri, Oct 20, 2023 at 12:52 am, LustfulAdventurer < wrote:

I know its old but i would really like something like this, i did everything that was said to do but it seems like it doesnt work, so is this still code still alive?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Thank you for your swift reply,
I will be looking forward to it.
Cheers

Hello,
I thank you for your swift work, so ive downloaded the whole code again, set up my token and interval, put in some images which i know can work with Discord, but everytime i try the program, my discord profile pic changes to nothing

Like this, ive tried multiple images but everyone ends like this.
Thank you for your help.
Cheers.

Hello,
I modified and tested the code on Linux and Windows and it worked prefect.
Please use the new code, make sure all dependencies are installed, preferably use a python virtual environment.
Try again and let me know the outcome, if it failed again I’ll arrange a time so that we can meet on Discord and I will help you fix it.
Regards,
Armin.
Sent from Proton Mail for iOS
On Sun, Oct 22, 2023 at 1:44 am, LustfulAdventurer @.***(mailto:On Sun, Oct 22, 2023 at 1:44 am, LustfulAdventurer < wrote:

Hello,
I thank you for your swift work, so ive downloaded the whole code again, set up my token and interval, put in some images which i know can work with Discord, but everytime i try the program, my discord profile pic changes to nothing
Desktop Screenshot 2023 10 21 - 16 42 03 27
Like this, ive tried multiple images but everyone ends like this.
Thank you for your help.
Cheers.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>

Hello,
Armin i really appreciate your help, i downloaded the whole code again, set up my discord token and interval in seconds (I wanted 10 minutes so i set up 600 seconds), tried the code with py main.pyw and the code started

like this, but my profile pic didnt change, everyone just sees a blank pfp like i showed u before, same result followed me using the launcher.exe. Im not really fluent in code so I dont know if im doing something wrong but the only other thing which could be influenced by my idiocy is the token, i dont know any other way of getting my discord token apart from going to the discord web form and using developer tools to get it. By any chance could this be the reason? But if the token is wrong how can it change my profile pic to blank in the first place?
I apologize for my lack of knowledge in coding.
Cheers and thanks Armin.

Hello,
No token seems to be working correctly, it’s currently 3:30am in Australian time, please add me on Discord and I we will arrange a time when I can help you fix the issue.
My Username is: znightfuryznt
Regards,
Armin.
Sent from Proton Mail for iOS
On Sun, Oct 22, 2023 at 3:22 am, LustfulAdventurer @.***(mailto:On Sun, Oct 22, 2023 at 3:22 am, LustfulAdventurer < wrote:

Hello,
Armin i really appreciate your help, i downloaded the whole code again, set up my discord token and interval in seconds (I wanted 10 minutes so i set up 600 seconds), tried the code with py main.pyw and the code started
Desktop Screenshot 2023 10 21 - 18 16 29 00
like this, but my profile pic didnt change, everyone just sees a blank pfp like i showed u before, same result followed me using the launcher.exe. Im not really fluent in code so I dont know if im doing something wrong but the only other thing which could be influenced by my idiocy is the token, i dont know any other way of getting my discord token apart from going to the discord web form and using developer tools to get it. By any chance could this be the reason? But if the token is wrong how can it change my profile pic to blank in the first place?
I apologize for my lack of knowledge in coding.
Cheers and thanks Armin.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>

I tried but I'm getting {"message": "401: Unauthorized", "code": 0} Changed to -> '00000-4281973406.jpeg' - number = 0 response. Maybe the request is missing something? I deactivated 2FA but nothing changed.

I basically redownloaded the code and started it and it works nicely now, funny thing is that when i stopped it and tried the previous code that didnt work it started working as well, so sorry i cant really help with this.


[10.x] Remove timestamp overrides from using pivotParent model

Problem/Motivation
We have explicitly added a UPDATED_AT constant override in our Pivot model but because of this code we are getting an exception thrown that the table doesn't have that pivot.updated_at column. This was traced back to this PRs change which looks at first glance fraught with error since it assumes some columns on a model that don't exist and belong to a totally different model.
The base Model class has default values that are fairly easy to change as we did but not adhered to as we found out.
Proposed Change
Remove the overridden methods that look at the pivotParent for column names at all.
I'd also considered removing that pivotParent property all together but didn't want to break anyones code (Minimum viable change), though I'll add a "pivot parent" is a confusing concept to me as a pivot table has a different "parent" depending at which way you look at it...

Not sure I'm comfortable just ripping out code and tests on a patch release.

@taylorotwell it looks to be around since v5 when I did git annotate. Maybe if I try to find the original author to see what their opinion is, maybe the conditions for its inclusion have improved over time?
I can add a regression test in reverse where a pivot UPDATED_AT is overwritten and the previous code would break like we are experiencing.
We could workaround this bug on our end too but though worth trying to contribute a fix for others.

@taylorotwell I could move it to 11.x?


Discuss Topics Surrounding Multitenancy

Multitenancy in general
Rate limiting (throttling)
Generating and managing and securing API keys for tenants
Data modelling many-to-many relationships on a large scale
(e.g. millions of users related to millions of subscriptions related to millions of resources)
DocumentDB
Azure Key Vault
How to manage scenarios where some of your users have thousands of users of their own, others just a few.

Guidance for multi-tenant services is in our backlog. Also this article is 2.5 year old but most of the concepts in it are still valid.
https://msdn.microsoft.com/en-us/library/ff966499.aspx

Also to consider: Azure SQL Database Elastic Scale.
More documentation here.

Also, is it possible to cover tenant pricing strategies under this umbrella? I am mostly after the recommended way around reflecting the pay as you go pricing to multitenant application customers.

Good point!
'Financial goals and billing subscribers' section in this page has discussion around billing, pros/cons of fixed fee and pay-as-you-go pricing model.
https://msdn.microsoft.com/en-us/library/jj856952.aspx#sec24

We'll consider it in our next round of guidance.

Thanks! Can't wait to see what you guys come up with! This has been great so far and very helpful.


Feature form

This PR creates the intake form component. State is initialized to hold the values for each input. The form has error states if a field is empty. The emailinput and phoneInput components both contain their own validations for correct formatting respectively.
I removed the Logo SVG's because I encountered a strange bug where if one was hidden, they would all hide. It has been replaced by a .png in the public folder and and the logos should just use  tags from here on out.
Some further breakpoints were imported  and some other variable names changed for easier legibility.

This is good to review, the form was removed from the main page as it will live in the Home component, to test it , pull it down and import the intakeFormContainer wherever to see it.


Fix for an issue with split scope in dead store optimization

Storing the arg in for the parameter and the copy logic of initial value
of the param to the corresponding symbol in the body was happening in the
same block. During dead store check were were only checking the property
sym for usage. So the initial store was getting removed. This fix adds
usage check for the stack sym too.

@abchatra @LouisLaf @pleath Can you please take a look?

:+1:


Incremental model with on_schema_change='sync_all_columns' does not work with data type changes

Expected behavior
When the incremental model is run after a data type for a column is changed, the data type should be updated in the model.
Actual behavior
The alter_column_type function fails when it issues this UPDATE statement:
update {{ relation }} set {{ adapter.quote(tmp_column) }} = {{ adapter.quote(column_name) }};

Additionally, if it got past that part, the following line would fail anyway since CASCADE is not supported by Trino:
alter table {{ relation }} drop column {{ adapter.quote(column_name) }} cascade;

Steps To Reproduce
Use this model:
{{
    config(
        materialized='incremental',
        unique_key='id',
        on_schema_change='sync_all_columns'
    )
}}

WITH source_data AS ( select id from (values (1), (2), (3), (4)) t(id) )

{% if is_incremental() %}

SELECT id,
       cast(id as varchar) "field1" -- to validate data type changes

FROM source_data WHERE id NOT IN (SELECT id from {{ this }} )

{% else %}

select id,
       id "field1"

from source_data where id <= 3
order by id
{% endif %}

Run a full refresh first and then an incremental refresh. It will fail on the incremental refresh.
Log output/Screenshots
No response
Operating System
OSX 11.6.7
dbt version
1.5.2
Trino Server version
413
Python version
3.11.3
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Resolved by https://github.com/starburstdata/dbt-trino/pull/324


Checkout Tasty

Hi @Tyrrrz not an issue, just wanted to know about Tasty. Seams like we had the same idea at the same time :) Good Work!

Hey @biohazard999, thanks for sharing your project.
They do appear similar! I was more focused on the top-level statements aspect and hit a wall due to the fact that only one such code file per project is allowed. I really wanted to avoid having to write classes and methods. 😅

Hi @Tyrrrz was my first idea too, but let's see what the next C# features we can expect!
It also can be benifitial
But great job ob the TestAdapter. Thats something I avoided, cause I'm not familar with the API's. But looking at your source, I probably should give it a shot!


[WIP][SPARK-46484][SQL][CONNECT] Make resolveOperators* functions keep the plan id

What changes were proposed in this pull request?
make following helper functions keep the plan id in transformation:

resolveOperatorsUpWithPruning
resolveOperatorsDownWithPruning
resolveOperatorsUpWithNewOutput

Why are the changes needed?
we had make following rules keep the plan id:
1, ResolveNaturalAndUsingJoin in https://github.com/apache/spark/commit/167bbca49c1c12ccd349d4330862c136b38d4522
2, ExtractWindowExpressions in https://github.com/apache/spark/commit/185a0a5a23958676e4236eaf9e4d78cdfd2dd2d7
3, WidenSetOperationTypes in https://github.com/apache/spark/commit/17c206fb71d03aefa75ecb87ca82772980dab954
4, ResolvePivot in https://github.com/apache/spark/commit/1a89bdc60d55394a1a9d94d4fa69fa5ab8041671
5, CTESubstitution in https://github.com/apache/spark/commit/79d1cded8555c5a0cc97b76747753785477eab8f
But plan id missing issue still keep popping up (see https://github.com/apache/spark/pull/44454), so this PR attempt to cover more cases by fixing the helper functions which are used to build the rules
Does this PR introduce any user-facing change?
no
How was this patch tested?
ut
revert previous changes in the rules
Was this patch authored or co-authored using generative AI tooling?
no

cc @cloud-fan @HyukjinKwon

I converted it to Draft because of [WIP] tag, @zhengruifeng .

@cloud-fan I think it is ready for a review

thanks @cloud-fan and @HyukjinKwon
merged to master


Primary client can't spawn subprocess with custom environtment variables

I'm trying to spawn another app from primary app, but i can't figure out why environment variables i put to it is ignored.
It is possible to export display variables and then export required variable from command line.
Also if primary app runs without cage everything works as expected.

What version of cage is this. I tried with what's in master right now (e128a9f2511644529fa47701a7147d65d9920488) and it seems to work. konsole --workdir / is what I've tried it with. It spawns a new client with the workdir changed.

Hi @SpikedPaladin, could you be a bit more descriptive on your issue?

Now i can't reproduce that bug. I tried to use child process env vars to change their screen position, now i just added dbus support to my cage fork.


⚡Optimized P256 Signature Verifier

Description
Describe the changes made in your pull request here.
Checklist
Ensure you completed all of the steps below before submitting your pull request:

[x] Ran forge fmt?
[x] Ran forge snapshot?
[x] Ran forge test?

Pull requests with an incomplete checklist will be thrown out.

@Vectorized You saved me. :bowing_man:


Fix #39

Previous discussion #39
This MR integrates a solution in a way more rational way than #40 , thanks for the sanity check @eengstrom

This is WAY better - thansk for taking a second look.


Update nightly wrapper

Also remove buildSrc Gradle wrapper files, as they are unnecessary.

Quick build: https://builds.gradle.org/viewQueued.html?itemId=11829233&tab=queuedBuildOverviewTab


TerminalShellExecution.read iterables should be available between the start and end execution events Failure

Build: https://dev.azure.com/monacotools/a6d41577-0fa3-498e-af22-257312ff0545/_build/results?buildId=287837
  1 failing
  1) vscode API - Terminal.shellIntegration
       TerminalShellExecution.read iterables should be available between the start and end execution events:

      AssertionError [ERR_ASSERTION] [ERR_ASSERTION]: last event should be 'end' ["start","end","data"]
      + expected - actual

      -data
      +end

      at Context.<anonymous> (/Users/runner/work/1/s/extensions/vscode-api-tests/src/singlefolder-tests/terminal.shellIntegration.test.ts:141:14)

one time failure so far... passed on other builds.

@TylerLeonhardt is this still happening?

I haven't been build champ, so I haven't been keeping a close eye on it. @Tyriar should make the decision here of what should be done with this issue.

Don't think I've seen this since


[TW#12612] LEDC: Docs: Range of frequency value

In the LEDC API we can specify a frequency measured in Hz.  However, we don't seem to document the allowable range of the frequency (specifically the upper bound).  This issue asks for documentation amendment to include the upper bound of the frequency.

Hi @nkolban, does recently updated LED Control API Reference satisfy this request?

Looks great my friend.


Impossible to install Go2

Go2 is available and is highly valuable for experiments. Meanwhile, Go2 branch (dev.go2go) is not in GVM available releases list: gvm listall.

My workaround is:
cd ~/.gvm/archive/go
git checkout dev.go2go
git tag dev.go2go-`git rev-parse --short HEAD`
gvm install dev.go2go-`git rev-parse --short HEAD`

Would it be feasible to integrate experimental versions into the listall functionality?


Polio 670 destruction update

There was only 1 destruction of vaccines per rounds, but we need many
Self proof reading checklist

[X] Did I use eslint and black formatters
[X] Is my code clear enough and well documented
[X] Are my typescript files well typed
[X] Did I add translations
[X] My migrations file are included

Changes

Created a Destruction model
Updated RoundSerializer to use the new model
Created DestructionForm and DestructionsForm to handle adding and removing destructions
Updated yup validation to reflect changes
fixed some translation typos
removed validator error on number fields with value 0
Add fix for TextArea infinite loop bug

How to test
Go to campaigns, open one, go Vaccines tab and try adding and removing destructions
Print screen / video
https://user-images.githubusercontent.com/38907762/200021794-18db2189-fd96-4a3d-a847-603ab2d2f880.mov
Notes
There's room for improvement as most code (both front and back) is pretty much copy pasted from Shipments

It seems validation for Shipments broke somewhere on the way

I think it would be more clear to the user if we add required asterisk to the inputs that need to be filled before saving

@quang-le I think it would be more clear to the user if we add required asterisk to the inputs that need to be filled before saving

The thing is that it's conditional: all destruction inputs should be filled for a line (except comment) only if one has been filled. This as per client's request. Same with Shipments

It seems validation for Shipments broke somewhere on the way

It's not that, it's just that for new campaigns, the whole form will error when there's no obr_name. It works fine otherwise

You need to add the new Models to the Audit so the change modifications get kept.
See following PR for example on how to do this
https://github.com/BLSQ/iaso/pull/60/files


Adding missing features (minimum proxies in queue, remove proxy, sample script, strategy option)

added: --min_queue to keep a minimum number of proxy candidates (and RR before promote them to official pool)
added: remove proxy by calling special url http://proxyremove/host:port
added: --strategy=best command line option
added: use_existing_proxy.py in example
Related issues:
https://github.com/constverum/ProxyBroker/issues/147
https://github.com/constverum/ProxyBroker/issues/142
https://github.com/constverum/ProxyBroker/issues/139

harry@ubuntu16:~$ pip3 install -U git+https://github.com/bluet/ProxyBroker.git
Defaulting to user installation because normal site-packages is not writeable
Collecting git+https://github.com/bluet/ProxyBroker.git
  Cloning https://github.com/bluet/ProxyBroker.git to /tmp/pip-req-build-6uybb137
  Running command git clone -q https://github.com/bluet/ProxyBroker.git /tmp/pip-req-build-6uybb137
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
    Preparing wheel metadata ... done
ERROR: Package 'proxybroker' requires a different Python: 3.5.2 not in '>=3.5.3'

@Dibbyo456 Could you try a clean install?
It works in my test. Not sure why it failed installing at your side.
(env) bluet@ocisly:~/workspace/ProxyBroker/tmp/testmodule$ python --version
Python 3.6.9
(env) bluet@ocisly:~/workspace/ProxyBroker/tmp/testmodule$ pip3 install -U git+https://github.com/bluet/ProxyBroker.git
Collecting git+https://github.com/bluet/ProxyBroker.git
  Cloning https://github.com/bluet/ProxyBroker.git to /tmp/pip-req-build-v2286u55
  Running command git clone -q https://github.com/bluet/ProxyBroker.git /tmp/pip-req-build-v2286u55
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
    Preparing wheel metadata ... done
Processing /home/bluet/.cache/pip/wheels/e8/74/a5/1f91545399ab5055993722d7b368372c36137b67a4418e3d53/maxminddb-1.5.2-py3-none-any.whl
Collecting aiodns>=2.0.0
  Using cached aiodns-2.0.0-py2.py3-none-any.whl (4.8 kB)
Collecting aiohttp>=3.5.4
  Using cached aiohttp-3.6.2-cp36-cp36m-manylinux1_x86_64.whl (1.2 MB)
Collecting attrs==19.1.0
  Using cached attrs-19.1.0-py2.py3-none-any.whl (35 kB)
Collecting typing; python_version < "3.7"
  Using cached typing-<IP_ADDRESS>-py3-none-any.whl (25 kB)
Collecting pycares>=3.0.0
  Using cached pycares-3.1.1-cp36-cp36m-manylinux2010_x86_64.whl (228 kB)
Collecting multidict<5.0,>=4.5
  Using cached multidict-4.7.5-cp36-cp36m-manylinux1_x86_64.whl (148 kB)
Collecting yarl<2.0,>=1.0
  Using cached yarl-1.4.2-cp36-cp36m-manylinux1_x86_64.whl (252 kB)
Processing /home/bluet/.cache/pip/wheels/6a/f5/9c/f8331a854f7a8739cf0e74c13854e4dd7b1af11b04fe1dde13/idna_ssl-1.1.0-py3-none-any.whl
Collecting typing-extensions>=3.6.5; python_version < "3.7"
  Using cached typing_extensions-<IP_ADDRESS>-py3-none-any.whl (22 kB)
Collecting chardet<4.0,>=2.0
  Using cached chardet-3.0.4-py2.py3-none-any.whl (133 kB)
Collecting async-timeout<4.0,>=3.0
  Using cached async_timeout-3.0.1-py3-none-any.whl (8.2 kB)
Collecting cffi>=1.5.0
  Using cached cffi-1.14.0-cp36-cp36m-manylinux1_x86_64.whl (399 kB)
Collecting idna>=2.0
  Using cached idna-2.9-py2.py3-none-any.whl (58 kB)
Collecting pycparser
  Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)
Building wheels for collected packages: proxybroker
  Building wheel for proxybroker (PEP 517) ... done
  Created wheel for proxybroker: filename=proxybroker-0.3.2-py3-none-any.whl size=1570667 sha256=fbc69e4bdb9f65cb2655eb43356ac0a1fa2db62d2f24498f822423d51edad51d
  Stored in directory: /tmp/pip-ephem-wheel-cache-hj9tx0ii/wheels/61/d8/f0/3d3b59aa216f90c239a5c8ea9e9033e795fad4c1e532d2b861
Successfully built proxybroker
Installing collected packages: maxminddb, typing, pycparser, cffi, pycares, aiodns, multidict, idna, yarl, idna-ssl, typing-extensions, chardet, async-timeout, attrs, aiohttp, proxybroker
Successfully installed aiodns-2.0.0 aiohttp-3.6.2 async-timeout-3.0.1 attrs-19.1.0 cffi-1.14.0 chardet-3.0.4 idna-2.9 idna-ssl-1.1.0 maxminddb-1.5.2 multidict-4.7.5 proxybroker-0.3.2 pycares-3.1.1 pycparser-2.20 typing-<IP_ADDRESS> typing-extensions-<IP_ADDRESS> yarl-1.4.2
(env) bluet@ocisly:~/workspace/ProxyBroker/tmp/testmodule$ pip3 --version
pip 20.1 from /home/bluet/workspace/ProxyBroker/tmp/testmodule/env/lib/python3.6/site-packages/pip (python 3.6)


OpenComputers 1.6.4 doesn't work (scala, something about codechicken)

voldeloom 1.6.4 doesn't add scala by default

[Error] /home/asie/Minecraft/OpenComputers/src/main/scala/li/cil/oc/common/multipart/EventHandler.scala:43:25: value reTrace is not a member of object codechicken.lib.raytracer.RayTracer
[Warn] : Class ey not found - continuing with a stub.
[Error] : error while loading PacketCustom, class file '/home/asie/Minecraft/OpenComputers/.gradle/voldeloom-cache/remapped-mods/CodeChickenLib-universal-1.6.4-<IP_ADDRESS>.jar-mapped-net.minecraftforge_forge_1.6.4-<IP_ADDRESS>5.jar(codechicken/lib/packet/PacketCustom.class)' is broken

<@quat> if you want a challenge https://github.com/MightyPirates/OpenComputers/tree/master-MC1.6.4

Note that the Scala thing is separate from the errors that remain.


Incorrect parsing literals that consisting of digits and letters, beginning with digits

It seems when parsing a literal beginning with digits, the sql parser simply ends this token when meets a non-numeric character
see https://github.com/sqlparser-rs/sqlparser-rs/blob/main/src/tokenizer.rs#L547
For example, 123foobar would be parsed into a number token 123 and a word token foobar instead of one word token 123foobar.
And 123foobar456 would be parsed into 123 and foobar456

Althrough nodody would name their columns like 1col 00column, mysql does allow this.
MariaDB [(none)]> CREATE DATABASE test;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> use test;
INSERT INTO my_table VALUES (3,4,5);

SELECT * FROM my_table;
SELECT 1col FROM my_table
Database changed
MariaDB [test]> CREATE TABLE my_table (
    -> id int,
    -> 1col int,
    ->     2col int
    -> );
Query OK, 0 rows affected (0.029 sec)

MariaDB [test]>
MariaDB [test]> INSERT INTO my_table VALUES (1,2,3);
Query OK, 1 row affected (0.005 sec)

MariaDB [test]> INSERT INTO my_table VALUES (2,3,4);
Query OK, 1 row affected (0.003 sec)

MariaDB [test]> INSERT INTO my_table VALUES (3,4,5);
Query OK, 1 row affected (0.007 sec)

MariaDB [test]>
MariaDB [test]> SELECT * FROM my_table;
+------+------+------+
| id   | 1col | 2col |
+------+------+------+
|    1 |    2 |    3 |
|    2 |    3 |    4 |
|    3 |    4 |    5 |
+------+------+------+
3 rows in set (0.000 sec)

MariaDB [test]> SELECT 1col FROM my_table
    -> ;
+------+
| 1col |
+------+
|    2 |
|    3 |
|    4 |
+------+
3 rows in set (0.000 sec)

MariaDB [test]>

fn main() {
    use sqlparser::dialect::GenericDialect;
    use sqlparser::parser::Parser;

    let sql = "SELECT 123foobar FROM table1";

    let dialect = GenericDialect {}; // or AnsiDialect, or your own dialect ...
    let ast = Parser::parse_sql(&dialect, sql).unwrap();
    println!("AST: {:?}", ast);
}

AST: [Query(Query { with: None, body: Select(Select { distinct: false, top: None, projection: [
    ExprWithAlias { expr: Value(Number("123", false)), alias: Ident { value: "foobar", quote_style: None } }
], into: None, from: [TableWithJoins { relation: Table { name: ObjectName([Ident { value: "table1", quote_style: None }]), alias: None, args: None, with_hints: [] }, joins: [] }], lateral_views: [], selection: None, group_by: [], cluster_by: [], distribute_by: [], sort_by: [], having: None, qualify: None }), order_by: [], limit: None, offset: None, fetch: None, locks: [] })]

As you can see, SELECT 123foobar FROM table1 was treated as ``SELECT 123 foobar FROM table1`

Okay, I think it has nothing to do with if some dialect supports column name beginning with numbers. This is simply a bug about ending parsing token early

I believe this is intended behaviour, at least for Generic/Postgres dialect. Relevant bit of discussion here:
https://github.com/sqlparser-rs/sqlparser-rs/pull/768#discussion_r1058345105
Though some dialects can support having their identifiers begin with a number, such as Hive:
https://github.com/sqlparser-rs/sqlparser-rs/blob/4955863bdf0e9d90e0fff72bca7912b3d20daac2/src/dialect/hive.rs#L23-L28
Though this does cause some issues with parsing numbers, for example exponent parsing does not work (related to above discussion)
Since Hive supports it, same could be enabled for MySql now which has an existing comment about it:
https://github.com/sqlparser-rs/sqlparser-rs/blob/4955863bdf0e9d90e0fff72bca7912b3d20daac2/src/dialect/mysql.rs#L19-L29

Any update about this issue? do this issue should be fixed in the near future for mysql?
thanks.


qarte: use qt5’s mkDerivation and an other fix

Motivation for this change
qarte fails to run (cc #65399).
Regarding QtMultimedia for pyqt, I made it opt-in as it seems to increase a lot the closure size of pyqt5 (257·10⁶ before, 313·10⁶ after) and would otherwise impact a lot of packages that I’d rather not touch.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
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)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @svanderburg (pyqt5)

please add an import test in pyqt.

Isn’t that line adding such an import test?
https://github.com/NixOS/nixpkgs/pull/67544/commits/ef15478313dccf73684d46816d20752ba5b18cf4#diff-19144d919f970a62bd3090d650f6a88bR126

May I merge this?


Anthony/ship hull strength increase

Summary
Updated module to add additional health when module is added and vice versa when the module is removed to match the percentage of health the player had prior.
Linked Issues
closes #44

This system is way too old to merge in.
Will recreate the branch and copy over what is relevant.


Exception returned when getting notification config that references deleted alerting profile

I'll be fixing this but I came across an issue where as part of gathering problem notifications currently it uses the alerting profile id to make a call and get the full alerting profile configuration. The issue is that if an alerting profile is deleted, the notification still refers to that ID but if you make the call to look it up it returns a 404 which causes getting the whole notification to fail with an exception.
https://github.com/dynatrace-oss/api-client-python/blob/23c8e2cc720f05b00f7fa5e1d63b7eb3670d8261/dynatrace/configuration_v1/notifications.py#L31-L33
Exception: Error making request to https://example.com/api/config/v1/alertingProfiles/7693d108-fda9-3529-8ca3-55e9269b6097: <Response [404]>. Response: {"error":{"code":404,"message":"Could not find config 7693d108-fda9-3529-8ca3-55e9269b6097."}}

I see two ways of fixing this:

Handle the exception when initializing the Notification object and set the alerting profile to None. This has the benefit of keeping the feature of automatically pulling in the profile details (when they exist) for notifications when listing them.
Revert to instead just reporting the string alerting profile ID when creating the notification object and then it is up to the user to make a call and get the profile details if they want them and handling if a 404 is returned.

As of now I'm leaning towards 1.

Another consideration is if we just return None the user wouldn't even know what the original ID was. Even though that may be of limited value since you can't look up the name anymore even it at least could be a tool if they're doing some auditing. So returning the str may be the most flexible in the end although it could possibly break some things if people were using the old approach (though I doubt this would be common).

That create_from_raw_data method calling a different API looks super weird indeed, I think the notifications implementation might be a bit convoluted at the moment, we should follow exactly what the API specifies, and not come up with ideas of returning None, or calling different APIs, I will review the code later today to think about how to update it

Yeah, I can make some updates to just return the string value for the ID like API specifies and you can decide if that works or if need to do anything more complicated.


Own Oracle DB Image

Hello.
Is it possible to build my own oracle<IP_ADDRESS>-ee  image, push it to my docker hub profile and use it in development and staging environments running on AWS?
There are some License restrictions?

You are not allowed to push any image to the Docker Hub that contains Oracle proprietary binaries. This is not permitted by the license you agreed to when you download the binaries from OTN.


Add remote  IDbContextEncryptedCryptoProvider

Add remote  Db Context Encrypted Crypto Provider through REST or AzureKeyValut.

See more:https://docs.microsoft.com/sk-sk/aspnet/core/web-api/route-to-code?view=aspnetcore-5.0


New files for Mac startup app

The app is a DMG to go on the website @stebo85 @aswinnarayanan
Needs testing @meganEJcampbell

@stebo85 can you please move the files start-neurodesktop-mac.dmg and README.md up one level to make it consistent with the Linux and Windows folders?

done, can you check @thomshaw92 ?

I couldn't get it to work: screenshots for what it looks like, including step of needed to go to systems preferences and allow it under Security settings (requires admin rights to allow). Final issue: The action 'Run Shell Script' encountered an error: xcrun error... (see last image)

Sorry meant to give system info:
Macbook pro, 2020 2Ghz quad intel i5, macOS Ventura 13.0.1

I couldn't get it to work: screenshots for what it looks like, including step of needed to go to systems preferences and allow it under Security settings (requires admin rights to allow). Final issue: The action 'Run Shell Script' encountered an error: xcrun error... (see last image)


Portion of distribution into community pool

@antstalepresh Can you add a test for this?  Distribute to a pot whose ID is 0, and then make sure that the community pool was increased

Also current tests are failing.  Please make sure you run make test locally


feat: run pipeline only if missing range is large

Modifies the beacon engine to only run the pipeline if the missing range is larger than a set constant (currently 128)
should fix #2964

Is this correct? I.e. if I start the node and I am lacking like 90 blocks, will we be able to get these w/o the pipeline (is the tree p2p enabled yet?)

Is this correct? I.e. if I start the node and I am lacking like 90 blocks, will we be able to get these w/o the pipeline (is the tree p2p enabled yet?)

yeah, this will currently queue downloads for the 90 block range one-by-one, and then execute them once they've all been downloaded

(is the tree p2p enabled yet?)

yes we have this mode. when we receive a new FCU and we don't have the new head buffered yet, we will start downloading from this new head towards the local head and try to canonicalize the new head via tree this way.

a test is timing out 🤔🤔🤔🤔🤔

need to fix another test


Change publicPath and privatePath to publicBasePath and privateBasePath respectively

Couple of folks had some feedback that publicPath was confusing and hence wanted to be more explicit and make it publicBasePath and privateBasePath. Can you make this change please?

That's a deployment configuration so you can use whatever you want.  That was the point of #22, to allow you the ability to use whatever terminology you wanted.


Time zone bug

Windows internally stores timestamps in UTC, however the File Explorer converts it to the current timezone to avoid confusion. Files UWP is not aware of this and shows wrong time for last modfied and created time.

@Jaiganeshkumaran Thank you for opening this feedback item.
Can you please elaborate on why this could be causing the display of negative timestamps? (e.g. -51 seconds)

I think that this could be because of the calculation. Windows stores timestamps in UTC, not local time.
However Files UWP calculates relative time using DateTime.Now which returns the local time, and that may cause the display of negative timestamps if the time zone is behind UTC.

Thank you for creating this feedback item. This issue is currently resolved in our active development branch and will be shipped soon once we've validated that everything works properly. Please subscribe to our releases to be notified when this is available.


Automation Testing Edge Webview2 with Selenium Python - Throwing error chrome not reachable

i am trying to run the WebView2 (config.exe) using the following code :
from selenium import webdriver
from selenium.webdriver.edge.service import Service
from selenium.webdriver.edge.options import Options
import os

service = Service(os.getcwd() + '/msedgedriver.exe',verbose = True)
options = Options()
options.add_argument('--remote-debugging-port=32001')
options.add_argument("--no-sandbox")
options.add_argument("--headless")
options.add_argument("--disable-gpu")
options.add_argument("--disable-extensions")
options.add_argument("--disable-dev-shm-usage")
options.binary_location = r"C:\Program Files\Config.exe"
driver = webdriver.Edge(service = service, options = options)
time.sleep(5)
driver.quit()

After running the above script, the WebView opens but nothing happens as expected and it closes after long time (looks like timeout).
I see the following error message in console :

Would you please help here.

You can find some help on using WebDriver with WebView2 at https://docs.microsoft.com/en-us/microsoft-edge/webview2/how-to/webdriver
The script above is missing options.use_webview = True which is necessary for Edge WebDriver to launch a WebView2-based app. Without that option, Edge WebDriver is attempting to launch Config.exe as if it were a browser.
Also please note that add_argument works differently when launching a WebView2 app vs. launching the Edge browser. Any arguments added here are passed to your WebView2 app (e.g. Config.exe) instead of the underlying WebView2 runtime, so unless Config.exe is somehow forwarding those arguments to the WebView2 runtime, then they will be ignored. To pass arguments to the WebView2 runtime, you will need to use the webviewOptions option. You can read more about that at https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/capabilities-edge-options#edgeoptions-object

Closing this issue since the correct information should be available in the linked docs. Feel free to reopen this issue if the docs are unclear.


What's up with -fsanitize=thread?

 Sometimes I don't get the warning but the process will still freeze. GDB points to a syscall deep in acceptas the currently executing function, which doesn't look right.

This has gone away, instead we get data race for interrupt, which is fine since it's not a giant deal if a thread misses an interrupt.
WARNING: ThreadSanitizer: data race (pid=18291)
  Write of size 4 at 0x0000014ce9f8 by main thread:
    #0 cleanup /home/joshua/src/c/threaded/src/main.c:81:15 (main+0x4b8c4f)
    #1 __tsan::ProcessPendingSignals(__tsan::ThreadState*) <null> (main+0x4266ab)
    #2 main /home/joshua/src/c/threaded/src/main.c:160:24 (main+0x4b91db)

  Previous read of size 4 at 0x0000014ce9f8 by thread T17:
    #0 respond /home/joshua/src/c/threaded/src/main.c:71:9 (main+0x4b8bac)

  Location is global 'interrupted' of size 4 at 0x0000014ce9f8 (main+0x0000014ce9f8)

  Thread T17 (tid=18447, finished) created by main thread at:
    #0 pthread_create <null> (main+0x427286)
    #1 main /home/joshua/src/c/threaded/src/main.c:169:7 (main+0x4b924a)

SUMMARY: ThreadSanitizer: data race /home/joshua/src/c/threaded/src/main.c:81:15 in cleanup


cli: pollperiod fix

pollperiod value (seconds) in cli layer should be converted to milliseconds which is what underlayer uses , vice versa.

After device succeed in joining as SED, when SetPollPeriod(kAttachDataPollPeriod) for poll data, kAttachDataPollPeriod would don't have a chance to take effect because following condition would always be satisfied
 if (mPollPeriodAssigned && mMac.GetRxOnWhenIdle() == false)  {      mPollTimer.Start(mPollPeriod);      ExitNow();  }

each SetPollPeriod() have an accompanying SetRxOnWhenIdle(false) in which mPollTimer will be started. So here remove the start operation in SetPollPeriod()

@jwhui , please have a review.

LGTM 👍


This always skips 3 frame intervals?

Great work on this! I'm having just one problem.
My temporal resolution looks off. When turning debug on, I can see it only draws every 3rd frame. I'm using h264 mp4 (made an avi in after effects, and made mp4's via ffmpeg (every frame a keyframe) and handbrake. Same thing. I played with transitionSpeed which does not seem to change anything (whether set to 30, 1, 0, and anything in-between).
I noticed that height of the div affects how the scroll-wheel resolution affects vertical position in the div.. makes sense. Whatever shot in the dark i take, I cannot seem to get every frame drawn nor transitionSpeed to be affective (this is plain vanilla html)
Any help on getting every frame to be drawn to canvas? This is otherwise a perfect solution for me!
Thanks.

Hi @kasalalpay,
Unfortunately, there are many factors at play when it comes to which frames ultimately get drawn.

There is the height of the div, as you've discovered. The taller the div, the more likely more of the frames will get drawn.
It will also depend on the granularity of the browser when it comes to scroll steps. For instance, Chrome has a fairly large scroll step which makes it more likely to skip frames. I have noticed this issue and was considering implementing some kind of smooth scroll flag to help with this issue, but I haven't had a chance to build that out.
The length of your video will also impact this. The longer your video, the more likely it is that frames will get skipped based on the way that the scroll position is calculated.

I'd recommend you can try manipulating the height of the div or length of your video and see if you can improve this, or even cut up your video into multiple smaller videos and have them one after another. I wish I had a better answer for you, but until I have a chance to figure out a way to implement smoother scrolling, that's about what I can offer.

Thanks so much for the detailed response! So, after reading, maybe I am doing something wrong...
1- If I make the div insanely tall, it takes longer to progress frames but intervals of 3 are still getting skipped. It doesn't improve the temporal resolution, it just takes longer to jump past 3 frames.
2- I noticed something interesting, and maybe this is just a coincidence, or maybe it speak to an underlying playhead method. When I pop in the url direct to the mp4 file and hit play, i see every frame on playback... but when i use the cursor to advance the playhead, it 'seems' like it is jumping intervals of 3. I mention this to you because it may mean something?
3- Can you tell me what transition speed should be and why maybe it doesn't seem to have any affect for me? I rendered the video at 30fps. i tried "transitionSpeed: 30," without quotes, also tried 1, tried 0, tried 90... same behavior. Am I in error here?
Maybe worth mentioning, GSAP does paint every frame on screen, it's super smooth... but I gave up on using it because it's been a problem on mobile for me. dragging on a phone always tried to grab the whole element and jumps ahead in huge chunks. Maybe there's a fix in Z layering to grab drags but could not figure it out. Scrolly-video works absolutely great in this regard, from mouse wheel to trackpad, to mobile. I'll include a few links in case you want to see what I'm looking at. I'm using a fairly recent chrome on win11. Samsung s21+ ultra. The previous generation of iPhone (i forget what it's called, 14?), the max version. A cheap chromebook :) and Scrolly is awesome across all - aside from the skipped frames.
Links:
My prototype website with scrolly (ignore the design) - https://superfan.fan/index_scrolly.html
direct link to the mp4 video - https://superfan.fan/websitescroll_superfan-1.mp4
and a gsap experiment on a another site - https://highwater.world/index.html with a really long and heavy mp4

Transition speed only affects instances where method two is utilized. If you're testing on Chrome, you'll never see an affect by changing this value because Chrome always uses method one. Firefox uses method two and you should be able to see a difference in behavior.

Got it, thanks. I missed that detail :) I appreciate the info.


Optimizer not found

I am facing Optimizer img not found an error please suggest me anything.

I don't have an idea, because you didn't provide any data. You need provide eg. what file do you try to optimize. Can you attach it? Or at least provide it's name and installed extensions? (do you have gd installed?).


Create versioned API without blueprint

Hello,
I'm trying to figure out how to create a versionned API for my application.
According to this issue https://github.com/balderdashy/sails/issues/322 , I have to use blueprint, but all blueprint is deactivated in my project (a wish from my boss).
I want to be able to have any URL like http://myapi.com/v1/my-custom-route , and so on for any version.
So far, the best way I've found is to duplicate all controller to something like v322AuthController.js and to map all routes like
'POST /v3.2.2/se-connecter'              : 'v322AuthController.perform_signin'

But I think that's an ugly trick. I'm currently using Nginx and all my code is versionned with git
Thank you if you have any idea
Kai23

@kai23 I assume you want to avoid writing custom routes for every endpoint.

Try $ sails generate controller v3.2.2 se-connecter
This create a controller called v3.2.2.js with se-connecter as action. Thus you get the route /v3.2.2/se-connecter
Just a random solution.


Question: Whats new in beta4

There is beta4 on npmjs.org. But I can't find it in releases on github. Please, shed some light on what have changed =)

and react-router v1.0.0 is released, redux-router will got v1.0.0?

Here is a list of changes: https://github.com/rackt/redux-router/compare/v1.0.0-beta3...e3e1de7 :smile:

Would you consider adding a tag for v1.0.0-beta4?

@cesarandreu sure, I did that now :ok_hand:


releases are provided using the GitHub release mechanism

Binaries should not be stored in a git repo. Instead, once the .hpi is built by Jenkins and is deemed ready for release, it should be added to https://github.com/cyberark/conjur-credentials-plugin/releases

This can be closed since from v0.6 we are using the Release mechanism


DatePicker css  is broken in 0.11.x

I've just upgraded to 0.11.1 and found that the DatePicker view renders the calendar outside of the popup. I've checked and the same issues is in 0.11.0 but if I go back to 0.10.2 the calendar popup renders correctly. Is there a change to css?
0.10.2

0.11.0 and 0.11.1

For reference this is wrapped in a Dash Design Kit ControlItem but going back to 0.10.2 fixes the issue:
# roughly what's in the full layout
html.Div([
ddk.ControlCard(orientation="horizontal",
                           children=[
                           ddk.ControlItem(dmc.DatePicker(
                                  id="sigex-enddate",
                                  #initialLevel="date",
                                  inputFormat="YYYY-MM-DD",
                                  allowFreeInput=True,
                                  clearable=False,
                                  persistence=True,
                                  size="sm"),
                               width=15)
                              ])
])

It seems to be caused by some conflicting css, maybe due to ddk. Can you test it without ddk and share the reproducible example?

Closing for no response and seems to be an incompatibility issue with ddk.

@thomasthebaker I had the same issue and solved it by setting style={'max-width':'100vw'} for the datepicker

@milunova thank you for the tip. I haven’t had a chance to experiment further but I’ll try that out this week.

@thomasthebaker FYI, I feel like I am going crazy but this solution is no longer working. Instead, I now have a css file in assets with the following entry which solves it. Hopefully @snehilvj can implement a permanent fix!
.mantine-1nw5k7j { max-width:100vw; }


Enable dnspolicy in tailscale-relay

Summary
Please can the dnspolicy configuration parameter be added to the tailscale-relay.
Justification
The existing configuration enables setting the hostNetwork but cannot configure the dnspolicy. Per documentation the dnspolicy must be explicitly set. At present, in my use case at least, pod fails to start with hostnetwork set, without configuring dnspolicy manually.

For Pods running with hostNetwork, you should explicitly set its DNS policy "ClusterFirstWithHostNet".

https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/

Solution
Amend statefulset.yaml to include dnspolicy alongside the hostnetwork configuration. Possibly also valuable to default the dnspolicy to ClusterFirstWithHostNet when hostnetwork is true.
I am happy to create a Pull request, but looking to confirm your agreement before proceeding. And I appreciate the work in the repository to date.

hey @steve-winter, sounds good, I implemented it as part of the latest release!


Fix issue 30 - freezing display

Don't sleep during the update interval, because that makes the display unresponsive to touch
Try to sleep .5 seconds on every program loop to see if that fixes the freeze issue

Sleeping doesn't fix the freezing display issue. As a last resort, try to call reset (same as CTRL+D on the REPL) to reboot the device when an error is catched:
https://learn.adafruit.com/circuitpython-essentials/circuitpython-resetting

Created a new branch for issue 30.


how to config github, how to the the input

how to config github, how to get token

You can use the default value in options.
Token can get in github setting.
More info at: https://devlake.apache.org/docs/Plugins/github

@matthewxuda Your Auth Token (Personal Access Token / PAT) must be created by you first at GitHub.com, please see GitHub docs on creating Personal Access Tokens here: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token. Once created, copy the value and paste it into the auth token field.
Additionally, your Endpoint URL value appears to be incorrect, this is GitHub API's Endpoint, not the value of a git-project repository url. Endpoint URL for your GitHub Connection Instance should be set to: https://api.github.com/

Hi @matthewxuda , the configuration rules are listed below:
Issue Tracking
Severity: Parse the value of severity from issue labels.

when your issue labels for severity level are like 'severity/p0', 'severity/p1', 'severity/p2', then input 'severity/(.*)$'
when your issue labels for severity level are like 'p0', 'p1', 'p2', then input '(p0|p1|p2)$'
Component: Same as "Severity".

Priority: Same as "Severity".

Type/Requirement: The type of issues with labels that match given regular expression will be set to "REQUIREMENT". Unlike "PR.type", submatch does nothing, because for issue management analysis, users tend to focus on 3 kinds of types (Requirement/Bug/Incident), however, the concrete naming varies from repo to repo, time to time, so we decided to standardize them to help analysts metrics.

Type/Bug: Same as "Type/Requirement", with type setting to "BUG".

Type/Incident: Same as "Type/Requirement", with type setting to "INCIDENT".

Code Review
Type: The type of pull requests will be parsed from PR labels by given regular expression. For example:

when your labels for PR types are like 'type/feature-development', 'type/bug-fixing' and 'type/docs', please input 'type/(.*)$'
when your labels for PR types are like 'feature-development', 'bug-fixing' and 'docs', please input '(feature-development|bug-fixing|docs)$'
Component: The component of pull requests will be parsed from PR labels by given regular expression.

Additional Settings (Optional)

Tags Limit: It'll compare the last N pairs of tags to get the "commit diff', "issue diff" between tags. N defaults to 10.

commit diff: new commits for a tag relative to the previous one
issue diff: issues solved by the new commits for a tag relative to the previous one

Tags Pattern: Only tags that meet given regular expression will be counted.

Tags Order: Only "reverse semver" order is supported for now.

Please click Save to save the transformation rules for the repo. In the data scope list, click Next Step to continue configuring.

Please read this doc for more details.


Download and unzip native assets during build

This pull request addresses #19 by adding a _downloadLibraries to hooks/build.dart.
The function downloads the native libraries for the target platform to .dart_tool/dart_filament/native/lib as per the official guidelines.
If the output folder for the libraries already exists (e.g. .dart_tool/dart_filament/native/lib/android) it is assumed that all library files are present.
This might not be the case if a user has removed files manually, or if more libraries are added in the future. If we want to avoid those kind of issues, each file would have to be checked instead. I don't believe that that is something worth doing, however.

Oops, seems like I messed up a rebase. Will fix...

There we go.
I should also note that the URL for fetching the files is a localhost right now, until we know what the final URLs will be.
If you want to test this now, you can start the following Python server, and place zip files named [targetPlatform]-libraries.zip in the same directory that you run the server in.
from http.server import BaseHTTPRequestHandler, HTTPServer
import os

class DownloadHandler(BaseHTTPRequestHandler):
  def do_GET(self):
    # Get requested file path
    requested_file = self.path.lstrip("/")

    # Check if file exists
    if not os.path.exists(requested_file):
      self.send_error(404, "File not found")
      return

    # Check if it's a zip file
    if not os.path.splitext(requested_file)[1] == ".zip":
      self.send_error(403, "Only zip files allowed for download")
      return

    # Serve the zip file
    self.send_response(200)
    self.send_header('Content-Type', 'application/zip')
    self.end_headers()

    with open(requested_file, 'rb') as f:
      self.wfile.write(f.read())

# Define directory containing zip files (replace with your path)
download_dir = "/path/to/your/zip/files"

# Start the server on port 8000 (you can change the port)
port = 8000
server_address = ('', port)
httpd = HTTPServer(server_address, DownloadHandler)
print(f"Server listening on port {port}")
httpd.serve_forever()

This looks great! Thank you. I'm currently uploading the binaries to Cloudflare (which seems to be a bit faster than GitHub) and will merge this with some Windows-related changes.


Don't use list comprehension

Use list() instead, makes the code shorter and more readable.
Pylint R1721

Thanks.


Fix some vulnerabilities and other enhancements

This looks like changes to some random files (and, to be fair, it is). But there's a lot of context in the commit messages.
In summary, this basically does:

Upgrade<EMAIL_ADDRESS>Fix a timezone-flaky test
Document all necessary browser dependencies in the github actions build; on vanilla ubuntu, the list was insufficient
Make linting part of the build and fix lint errors

@NivedhaSenthil could I get a review when you have a moment? I will leave some comments inline to the code for context.

Thanks for taking time to fix this ..I will start reviewing :)

@marques-work it is a problem with the node version. I bumped the version to node 18 and got the build to work.

Thanks @zabil!

Whoever sees this next, I think the tests are waiting on approval to run. No rush on it, just don't want it to be missed entirely.

LGTM


Keeps showing NJ when I put in NH coordinates.

For some reason, the radar keeps showing NJ instead of NH. I have the coordinates set to:
latitude: 42.836330,
longitude: -71.649500,
area: "NH",

Hi Aunrea. Sorry for the late reply.
The area is only for this api https://api.weather.gov/alerts/active/area/NH. I think you need a higher zoom level. I thinkzoomLevel = 8 works well like this: https://www.rainviewer.com/map.html?loc=42.836330,-71.649500,8

It always centered on New York City no matter what coordinates I put in. I ended up forking the module and hardcoding the coordinates into the iframe url in the code. That works perfectly.


New version: TZJData v1.3.0+2024b

Registering package: TZJData
Repository: https://github.com/JuliaTime/TZJData.jl
Created by: @omus
Version: v1.3.0+2024b
Commit: a870e0539de6a4caf39e98a138a1996965ec2c50
Reviewed by: @omus
Reference: https://github.com/JuliaTime/TZJData.jl/commit/a870e0539de6a4caf39e98a138a1996965ec2c50#commitcomment-146410952

[merge approved]