Security policies not working if Pods are deployed before KubeArmor

Security policies can't be deleted, modified and added to the pods which were deployed prior to KubeArmor deployment. #162 is a result of this issue. The following steps were ran on the kubearmor-dev vagrant VM.
Steps to reproduce the bug:

Deploy multiubuntu pods.
vagrant@kubearmor-dev:~$ kubectl apply -f KubeArmor/examples/multiubuntu/
Deploy KubeArmor.
vagrant@kubearmor-dev:~$ kubectl apply -f KubeArmor/deployments/docker/
Apply any security policy to multiubuntu pods.

vagrant@kubearmor-dev:~$ kubectl apply -f KubeArmor/examples/multiubuntu/security-policies/ksp-group-1-proc-path-block.yaml
kubearmorpolicy.security.accuknox.com/ksp-group-1-proc-path-block created

Check if policy is enforced. Its not being enforced (we don't get any permission denied in this example).

vagrant@kubearmor-dev:~$ kubectl exec -ti -n multiubuntu ubuntu-1-deployment-5c475fb4fb-sq6xv -- /bin/bash
root@ubuntu-1-deployment-5c475fb4fb-sq6xv:/# /bin/sleep 1

NOTE:

kubectl shows deleted and created events but the actual AppArmor profiles in /etc/apparmor.d/ aren't being modified or enforced.
The same happens if KubeArmor restarts since these are essentially the same conditions, ie pods being up before KubeArmor itself is up.

The problem seems to be happening because of this line in particular:
https://github.com/accuknox/KubeArmor/blob/a584a021a96d4d7c9c994f01ee15f9af1ec214da/KubeArmor/core/dockerHandler.go#L118
In the case of restart this value remains an empty string. For some reason the response received by the DockerClient doesn't contain anything for field AppArmorProfile. And this field is later is used to initialize other security policy related Data structures inside KubeArmor. This happens only after restarts so it might be related to Docker API's working.

Hi @nam-jaehyun. For the pods deployed before KubeArmor was deployed we don't get their "added" container event from the dockerHandler. The reason might be that the event is generated earlier than KubeArmor start and dockerClient is unable to fetch it. I have come up with an idea and would like to know your thoughts on this. The idea is that when we initialize the KubeArmor daemon we add 3 extra steps:

We fetch the list of current containers using dockerClient's ContainerList function.
We filter out already running containers by comparing the "created" timestamp from the fetched list of containers with KubeArmor's own created timestamp.
We loop through this list and for each container in list we fetch containerInfo using ContainerInspect here[1] and add to KubeArmor daemon's container list[2].
[1]https://github.com/accuknox/KubeArmor/blob/1864d6ae9debea75ee2c07b22757e818f2fcbea4/KubeArmor/core/dockerHandler.go#L93
[2]https://github.com/accuknox/KubeArmor/blob/1864d6ae9debea75ee2c07b22757e818f2fcbea4/KubeArmor/core/kubeArmor.go#L49
As of now we perform ContainerInspect when we get "start", "stop" and "destroy" events from Docker. But if containers start before KubeArmor starts the "start" events are all lost and never reported. So the idea is that they are still in the list of running containers for once(ie initializatioin) we can just fetch them from the list of containers.

@oneiro-naut The key problem is that we cannot figure out the PID and MNT namespaces for already-deployed containers.
In other words, even though we know the container information deployed earlier than KubeArmor, we cannot map the system events with the discovered container information.

@nam-jaehyun Does this mean that even if we are able to enforce the policies on these pods we wont be able to monitor them? So we will need to make changes in the KubeArmor monitor as the final step?

@oneiro-naut Yes. So, I created a new issue related to the monitor #171

@oneiro-naut The key problem is that we cannot figure out the PID and MNT namespaces for already-deployed containers.
In other words, even though we know the container information deployed earlier than KubeArmor, we cannot map the system events with the discovered container information.

Are my steps to get the container information correct. Because we would still need them to enforce the policies on these already-deployed containers?

In the current implementation, KubeArmor maintains the 'containers' list using Containerd and Docker APIs and it has all containers (even already deployed containers). At the same time, KubeArmor maintains all pods using K8s APIs and updates the namespace and pod information of containers in the 'containers' list. Thus, we already have all information related to containers.

Need to find a way to map the already deployed container IDs with the actual PID and MNT namespaces of the containers.
I think we need to update the system monitor (in particular, pid_ns_map management) to address this issue.

Hi @nam-jaehyun . The reason for not getting already deployed containers seems to be caused because we are missing execve event for pid == 1 (ie entrypoint execv for containers) which happens earlier and is therefore missed. https://github.com/kubearmor/KubeArmor/blob/b6df53ce1a910224c3aeba117361e6b9ecf52f14/KubeArmor/BPF/system_monitor.c#L185
We add an entry only when and later monitor it if we traced it's init execv here. Due to this an entry is never added for container even though we are able to get it's events later. We can remove this condition and add an entry initialized to 1 if we don't find it here in this condition:https://github.com/kubearmor/KubeArmor/blob/b6df53ce1a910224c3aeba117361e6b9ecf52f14/KubeArmor/BPF/system_monitor.c#L181. Something like this,
    if (pid_ns_map.lookup(&pid_ns) != 0) {
        return pid_ns;
    } else {
        pid_ns_map.update(&pid_ns, &one);
    }

Basically we would add entry based on whether container's PID namespace has been added or not rather than whether it's init execv has been traced or not.

@oneiro-naut based on your PR, just wondering if we have any side effects when we monitor the pid_ns for all processes.

@oneiro-naut It may allow KubeArmor to generate logs for already-deployed containers, but the modification has a critical issue that it also generates too many non-container-related logs (e.g., containerd, kubelet, ...).

@nam-jaehyun Is it possible here to filter container namespaces to tell if the pid_ns added is not a container without relying on pid == 1(init) condition? Maybe if we could give specific pid_ns different value than 1 to indicate that we don't want to monitor it's events and return from it early on?

@oneiro-naut we know how we can get the logs for already-deployed containers. now, it's time to investigate the side effect and develop a solution for this, which means that we need careful analysis.


Python 3 Compatibility and added path creation to get_dl_path().

This won't run in Python 2 but since distros are going to be moving to Python 3 in the future, you might like this.
Thought it would be nice to prompt user to create the path they entered if it doesn't already exist, so I added a query function and some code that will create the entered path.

Disregard. More work to do.


Keras submodels are not supported

As far as I know, problem occurs at serialization and deserialization steps. User should define get_config and from_config methods (docs). Then config requires an InputLayer, but submodel doesn't have it. It seems that the InputLayer is only created if user wraps model with functional API (stackoverflow).

@katerina-merkulova could you please write down a simple example of such network definition which is not supported.

Example of model:
class Model(tf.keras.Model):
    def __init__(self, **kwargs):
        super().__init__()

        self.lstm = LSTM(1000)
        self.d1 = Dense(1000, activation='tanh')
        self.d2 = Dense(10719, activation='softmax')

    def call(self, x):
        x = self.lstm
        x = self.d1(x)
        x = self.d2(x)
        return x

And these are my attempts to define required methods:
    def get_config(self):
        config = dict({'name': self.name})
        config['layers'] = [
            {'class_name': layer.__class__.__name__,
             'config': layer.get_config()}
            for layer in self._self_tracked_trackables
        ]
        return config

    @classmethod
    def from_config(cls, config):
        return cls(**config)


Update demo.md

#sign-off

Docs Build status updates of commit c49bd23:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-RepositoryOwnerReAuthorizeRequiredOnRepo] Repository owner jamarw's token is invalid, please ask the owner to login Docs portal 'https://ops.microsoft.com' with his/her GitHub account and re-authorize Docs service.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@adunndevster2: I'm sorry - only the author of this article, @adunndevster, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

@adunndevster2 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off

Docs Build status updates of commit c49bd23:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error-Forbidden.GitAuthorization] Error occurred when accessing GitHub. Details: (Unauthorized) Bad credentials

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


build failed for stdc++?

Search before asking
done and found nothing helpful
What happened + What you expected to happen
2 problems

my version of googletest has change the name of gtest and gmock(yes, it maybe not a problem,  I just found it change to googletest and googlemock) , and have no "install" for make,

although the gtrest may be build successfully, but not for the gmock as the following
root@ehicku20:/usr/src/googletest/googlemock/build# make
make[1]: *** No rule to make target '../googletest/CMakeFiles/gtest.dir/all', needed by 'CMakeFiles/gmock.dir/all'.  Stop.
make: *** [Makefile:84: all] Error 2
root@ehicku20:/usr/src/googletest/googlemock/build# make install
make: *** No rule to make target 'install'.  Stop.

failed to build for the last step, I tried to install the the lib "stdc++" ,   "apt-cache search stdc++" for lots of version, and installed some like "apt install libx32stdc++-9-dev-amd64-cross lib32stdc++-9-dev-amd64-cross" and some other versions, searched in google and found nothing else helpful,  failed at last

Reproduction way
just do  most steps as the instruction in the readme, my OS is ubuntu 20.04, and I installed clang11 clang12 for Rust some times ago.
Are you willing to submit a PR?
no

"apt install libx32stdc++-9-dev-amd64-cross lib32stdc++-9-dev-amd64-cross" and some other versions,

@hick Your host is 32bit system? can your paste the uname -a output?
Looks like should use sudo apt-get install libstdc++6 to install libstdc++，have you tried？

For the gtest problem, could you try mkdir build && cd build && cmake .. && make install?

thx a lot , I've destroyed that box of vagrant+virtulbox, and it works now in a brand new ubuntu 20.04 system:  I do not know the reason, maybe my old ubuntu 20 is something wrong


How to add a new treeview as children to an existing treeview

I have my refresh command up and running. I want to dynamically add children to a treeview and refresh it. This is my code which doesnt work
const newTreeItem: TreeItem[] = this.treeItem; 				if(newTreeItem[0].children && newTreeItem[0].children[0].children){ 					newTreeItem[0].children[0].children.push(new TreeItem("Something", item.treeItems, new ThemeIcon("database"))); 					this.treeItem = newTreeItem; 					this.refresh(); 				}
However when I try to add children one level up like this:
newTreeItem[0].children.push(new TreeItem("Something", item.treeItems, new ThemeIcon("database")));
It does work. Is it the right way to add dynamically? Why does it work for the 2nd example

Looks like It has to do with vscode.TreeItemCollapsibleState. If I make it TreeItemCollapsibleState.Collapsed in construction then it does show the newly added children when it is TreeItemCollapsibleState.Expanded. So, I need to also change the TreeItemCollapsibleState when I add or remove nodes.

are you able to update the TreeItemCollapsibleState dynamically from Collapsed -> Expanded. It is not working for me, I am not able to expand the node programatically.


Make start notifications use the color of the last build's result

We've found the notify start alert more useful when the color used is the color of the last build, ie. when the failing build starts it notifies that it's red. Figured I'd pull and see if you wanted to include it in mainline.

:+1: this is a great change.  I don't think anybody is actively maintaining the slack plugin at the moment.  I like visual feedback used in this manner.

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests

Please, merge it!

I guess I'll start maintaining this plugin.  I don't have any experience developing Jenkins plugins but if I can get my own environment set up and learn to release then I'll do it.  This may take about a week.

Candidate for merge means I will first merge your change locally, compile locally, and test locally in Jenkins before merging.


Bug : [ERROR] Worker (pid:1087) was sent SIGKILL! Perhaps out of memory?

I am using:
docker-compose up --build
Set up .env file in root folder:
VITE_LLM_MODELS_PROD="diffbot,openai-gpt-3.5,openai-gpt-4o"
OPENAI_API_KEY="your-openai-key"
But get the following error:
[ERROR] Worker (pid:1087) was sent SIGKILL! Perhaps out of memory?
I am able to upload pdf file and click generate graph. But gets stuck at 0% processing:

When I check the neo4j graph, some of the chunks are created:

Not sure what is the issue here.

Hi @kartikpersistent I see the following in my terminal:
backend   | /usr/local/lib/python3.10/site-packages/pydantic/_internal/fields.py:161: UserWarning: Field "model_name" has conflict with protected namespace "model".
backend   |
backend   | You may be able to resolve this warning by setting model_config['protected_namespaces'] = ().
backend   |   warnings.warn(
backend   | [2024-11-06 01:00:07 +0000] [1] [ERROR] Worker (pid:283) was sent SIGKILL! Perhaps out of memory?
backend   | 2024-11-06 01:00:07,473 - Embedding: Using SentenceTransformer , Dimension:384
backend   | 2024-11-06 01:00:07,475 - Embedding: Using SentenceTransformer , Dimension:384
backend   | [2024-11-06 01:00:07 +0000] [515] [INFO] Booting worker with pid: 515
backend   | 2024-11-06 01:00:07,538 - USER_AGENT environment variable not set, consider setting it to identify your requests.
backend   | [2024-11-06 01:00:08 +0000] [380] [INFO] Started server process [380]
backend   | [2024-11-06 01:00:08 +0000] [380] [INFO] Waiting for application startup.
backend   | [2024-11-06 01:00:08 +0000] [380] [INFO] Application startup complete.
backend   | /code/src/shared/common_fn.py:89: LangChainDeprecationWarning: The class HuggingFaceEmbeddings was deprecated in LangChain 0.2.2 and will be removed in 1.0. An updated version of the class exists in the :class:~langchain-huggingface package and should be used instead. To use it run pip install -U :class:~langchain-huggingface and import as from :class:~langchain_huggingface import HuggingFaceEmbeddings. backend   |   embeddings = SentenceTransformerEmbeddings( backend   | 2024-11-06 01:00:11,697 - PyTorch version 2.4.1 available. backend   | 2024-11-06 01:00:12,312 - Use pytorch device_name: cpu backend   | 2024-11-06 01:00:12,313 - Load pretrained SentenceTransformer: all-MiniLM-L6-v2 backend   | /usr/local/lib/python3.10/site-packages/pydantic/_internal/_fields.py:161: UserWarning: Field "model_name" has conflict with protected namespace "model_". backend   |  backend   | You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`. backend   |   warnings.warn( backend   | 2024-11-06 01:00:13,961 - Use pytorch device_name: cpu backend   | 2024-11-06 01:00:13,961 - Load pretrained SentenceTransformer: all-MiniLM-L6-v2 backend   | 2024-11-06 01:00:15,851 - Embedding: Using SentenceTransformer , Dimension:384 backend   | 2024-11-06 01:00:15,878 - USER_AGENT environment variable not set, consider setting it to identify your requests. backend   | 2024-11-06 01:00:17,699 - Embedding: Using SentenceTransformer , Dimension:384 backend   | 2024-11-06 01:00:17,900 - Use pytorch device_name: cpu backend   | 2024-11-06 01:00:17,910 - Load pretrained SentenceTransformer: all-MiniLM-L6-v2 backend   | [2024-11-06 01:00:19 +0000] [1] [ERROR] Worker (pid:380) was sent SIGKILL! Perhaps out of memory? backend   | [2024-11-06 01:00:19 +0000] [550] [INFO] Booting worker with pid: 550 backend   | /code/src/shared/common_fn.py:89: LangChainDeprecationWarning: The class `HuggingFaceEmbeddings` was deprecated in LangChain 0.2.2 and will be removed in 1.0. An updated version of the class exists in the :class:`~langchain-huggingface package and should be used instead. To use it run `pip install -U :class:`~langchain-huggingface` and import as `from :class:`~langchain_huggingface import HuggingFaceEmbeddings.
backend   |   embeddings = SentenceTransformerEmbeddings(
backend   | 2024-11-06 01:00:22,495 - Embedding: Using SentenceTransformer , Dimension:384
backend   | 2024-11-06 01:00:24,824 - PyTorch version 2.4.1 available.
backend   | 2024-11-06 01:00:25,429 - Use pytorch device_name: cpu
backend   | 2024-11-06 01:00:25,429 - Load pretrained SentenceTransformer: all-MiniLM-L6-v2
backend   | [2024-11-06 01:00:25 +0000] [409] [INFO] Started server process [409]
backend   | [2024-11-06 01:00:25 +0000] [409] [INFO] Waiting for application startup.
backend   | [2024-11-06 01:00:25 +0000] [409] [INFO] Application startup complete.
backend   | /usr/local/lib/python3.10/site-packages/pydantic/_internal/fields.py:161: UserWarning: Field "model_name" has conflict with protected namespace "model".
backend   |
backend   | You may be able to resolve this warning by setting model_config['protected_namespaces'] = ().
backend   |   warnings.warn(
backend   | 2024-11-06 01:00:26,153 - Use pytorch device_name: cpu
backend   | 2024-11-06 01:00:26,155 - Load pretrained SentenceTransformer: all-MiniLM-L6-v2
backend   | [2024-11-06 01:00:29 +0000] [1] [ERROR] Worker (pid:409) was sent SIGKILL! Perhaps out of memory?

hi @chang-yichen  it is related no of workers please reduce the workers according to the CPU capacity


Mouse Not Work

Hi,
I have used in my app angular and  ol.
I prepeared new app but its not work.
If you look at my example you will see the problem.
https://stackblitz.com/edit/angular-1mvfxz

You need to include the ol css, see #10732


Support Guzzle 7

Adds support for Guzzle 7. No actual code changes necessary.

To be honest I'm wondering where in this lib Guzzle is even used.

FYI I created (and released) are fork that move the Guzzle Dependency to require-dev so it is now possible: https://packagist.org/packages/lkaemmerling/prometheus_client_php
https://github.com/lkaemmerling/prometheus_client_php
I will support and maintain it in the future as i use it in many projects.


Only copy URL to clipboard when !open

This PR contains a:

[ ] bugfix
[x] new feature
[ ] code refactor
[ ] test update
[ ] typo fix
[ ] metadata update

Motivation / Use-Case
This patch is a partial solution for #33: it disables the clipboard feature if the user has configured the open option (which clearly makes the clipboard feature redundant).
It doesn't introduce a way to configure the clipboard feature or otherwise change the default, pending more discussion in #33.
Additional Info

CI wants me to add a test. Fair enough :)

@shellscape how would you prefer me to test a config option like this? By adding a new config fixture to test/fixtures/? By modifying the basic one in an individual test?

Should be able to sneak that into this test, just checking that the clipboard is empty: https://github.com/webpack-contrib/webpack-serve/blob/master/test/tests/options.js#L135
And you can modify the then like so to double check the options was mutated properly:
serve({ config }).then(({ close, options }) => {

@billyjanitsch I just merged a PR that makes the clipboard stuff an option, so you'll probably need to rebase for that. We should also add a note to the README within the open option block that states that the clipboard copying is disabled when using the open option.

Awesome! Sorry for the delay on this PR, I'll finish it up today.

@shellscape let me know how that looks -- happy to make further changes

@shellscape done, let me know if there's anything else!


Evergy

Since the merger of KCPL the kcpl.com website redirects to evergy.com. Because of this and the new website, the login doesn't work any longer. The other functions probably don't work as well.
Need to either make fixes for this to work with the new website/api or create a new project with a name such as evergy-api.

https://www.evergy.com/api/report/usage/0000000000?interval=d&from=11%2F15%2F2019&to=11%2F21%2F2019


KVM extra features

https://www.kernel.org/doc/Documentation/virtual/kvm/cpuid.txt
I'm currently implementing paravirtualized EOI now.
Also some interesting info here on detecting sandboxes:
https://github.com/a0rtega/pafish/blob/master/pafish/cpu.c
Some KVM-only features, such as clocksource:
https://www.kernel.org/doc/Documentation/virtual/kvm/cpuid.txt

PV-EOI simply won't activate even with x2APIC enabled. Something in qemu is not turning the feature on during startup, but the feature is still shown as present, and it can even be enabled.


Remove gogo entirely from Istio

removal of gogo. For many reasons.

+1

PR: https://github.com/istio/istio/issues/26010
PR: https://github.com/istio/tools/pull/1183
PR: https://github.com/istio/common-files/pull/303
PR: https://github.com/istio/istio/pull/26769
PR: https://github.com/istio/api/pull/1607

I wasnt sure which WGs to tag for review. This set of PRs will have alot of impact across networking but also other areas. If your WG is not interested in reviewing this work, please remove your workaround from the list.
Cheers,
-steve

Does this have been fixed already?


No data frames transferring.

Hello, I've hit upon a problem.
Initially I had it plugged in through a USB hub, so I changed that to directly into the tower, trying both a USB3 & USB2 ports.
All giving the same result.

$ ./pms5003 /dev/ttyUSB0
^C
$ time ./pms5003 /dev/ttyUSB0 10
warning: no data frames collected in the given time span.
real	0m10.003s
user	0m0.003s
sys	0m0.000s

Hmmm, interesting, it still works for me.
Are you sure it’s really ttyUSB0? I would run dmesg -w hit a few enters, and then connect the device to see which /dev/* file it’ll be assigned.
If it’s really ttyUSB0, then… do other solutions for PMS5003 work for you, just not this one?
Also maybe you don’t have permissions to read from ttyUSB0? Can you show me the output of stat /dev/ttyUSB0?
Cheers and good luck!

Hmmm, interesting, it still works for me.
Are you sure it’s really ttyUSB0? I would run dmesg -w hit a few enters, and then connect the device to see which /dev/* file it’ll be assigned.
If it’s really ttyUSB0, then… do other solutions for PMS5003 work for you, just not this one?
Also maybe you don’t have permissions to read from ttyUSB0? Can you show me the output of stat /dev/ttyUSB0?
Cheers and good luck!

I have no idea where I am going wrong. After you noting that permission may be the issue, I did some digging, and it appears to be an extremely common thing. I have tried all sorts of solutions but nothing has worked.

stat /dev/ttyUSB0
File: /dev/ttyUSB0
Size: 0         	Blocks: 0          IO Block: 4096   character special file
Device: 6h/6d	Inode: 45635       Links: 1     Device type: bc,0
Access: (0666/crw-rw-rw-)  Uid: (    0/    root)   Gid: (   20/ dialout)
Access: 2021-02-02 23:45:03.952766838 +1100
Modify: 2021-02-02 23:45:03.952766838 +1100
Change: 2021-02-02 23:45:03.952766838 +1100
Birth: -

Okay, 0666 looks OK.
How are you making sure it’s really /dev/ttyUSB0? Do you have other devices?
Like I wrote:

Are you sure it’s really ttyUSB0? I would run dmesg -w hit a few enters, and then connect the device to see which /dev/* file it’ll be assigned.

Check that you have terminal over serial disabled but serial enabled with raspi-config


Upgrade nvFuser in CI

🚀 Feature
Please upgrade nvFuser to 0.2.22 or later.
Motivation
We are hitting bugs that are fixed in more recent versions of nvFuser, and this is blocking #1340 at least.
Additional context
The command you'd want to use to do this will depend on which version of torch and CUDA you are using.

CUDA 12.4, torch 2.4: python3 -m pip install --extra-index-url https://pypi.nvidia.com --pre nvfuser-cu124-torch24
CUDA 12.1, torch 2.3: python3 -m pip install --extra-index-url https://pypi.nvidia.com --pre nvfuser-cu121-torch23
CUDA 12.4 nightly torch: python3 -m pip install --extra-index-url https://pypi.nvidia.com --pre nvfuser-cu124

I'll take care of it.

Note that the NVIDIA PyPI does not seem to have recent packages built against stable PyTorch, so there is little we can do without updates to the packages (torch25 might be interesting, too)...
e.g. https://pypi.nvidia.com/nvfuser-cu121-torch24/

Sorry about the delay there. We decided to push nvfuser build against torch stable to pypi.org twice a month (1st and 15th).
Nvfuser build against torch nightly will still be pushed nightly to pypi.nvidia.com every day.
I'll trigger a build for nvfuser build against torch stable 2.5 now to unblock CI upgrades.

Also, the nightly and stable builds now supports (python 3.10, and 3.12) x (cuda 11.8, 12.1, and 12.4)

Nvfuser build against torch nightly will still be pushed nightly to pypi.nvidia.com every day.

do you mind updating the installation instruction in TomF's comment at the top? (for build against stable torch from pypi.org)

We currently take nvfuser from PyPI, but I don't seem to see recent updates, e.g in https://pypi.org/project/nvfuser-cu121-torch24/#history

We currently take nvfuser from PyPI, but I don't seem to see recent updates, e.g in https://pypi.org/project/nvfuser-cu121-torch24/#history

Builds against torch stable are ongoing and will be pushed to pypi.org in a few hours. Starting 11/1, builds against torch stable will be pushed twice a month to avoid delays in nvfuser features.

... to avoid delays in nvfuser features.

Thank you, Xiao!

nvfuser builds against torch25 are uploaded to pypi.org

@xwang233 Thank you. I'll bump the CI to pt 2.5.1. Do you have plans for building torch24, too? If not we need to bump the docs to use 2.5 as well.

Do you have plans for building torch24, too?

The automatic CI builds against stable is always for the latest torch stable release (pip install torch). If you need builds against old torch releases, we may be able to add those.


Update pt-BR

Update pt-BR

Thanks for the PR! But unfortunately, I'll have to reject it since I'm not planning to update this version of extension right now in any way - I'm preparing a massive 3.0 update which will make current codebase, UI and UX completely obsolete.
Of course, once I get an RC on my hands, I hope you will help me with localization :)


Connecting to Server with self-signed certificate

Connection to servers with self signed certificates is not possible.
client error: Error: self signed certificate in certificate chain
Need option to skip certificate checking ("accept all certificates")

So has this been solved?

Upcoming version has an option called rejectUnauthorized which is not exposed in the adapter options. You have to enable expert mode, edit system.adapter.mqtt-client.0 and set rejectUnauthorized to false.


Unknown error occured

I am extremely new to HA, Github and Smarthome in general, I have a smart IR Remote that works with smartlife, couldn't figure out how to make until I found this, was installing this integration but ended up with an error. I have attached a screenshot of the error. Any help would be greatly appreciated. Thankyou

d-9006-44e8bd4265f9)

Hi, can you attach the home assistant logs to understand the type of error? Thanks

in the project settings (on the Tuya Developer platform site), in the "service api" tab you need to enable the "IR control hub open service" api.
try following this discussion: https://github.com/EnzoD86/tuya-smart-ir-ac/issues/10

Thankyou so much, that worked flawlessly!
Also is there a way to make this work locally?

At the moment this integration only works via the Tuya Cloud.
I'm trying to experiment with sending commands locally, but with poor results. I don't think it will be possible.
Furthermore, since the air conditioners are virtual entities, local operation would not be synchronized with the smart life app.

That is sad, I don't really care for the smartlife app, but not having local control is a major turnoff for these tuya remotes. I guess I am gonna have to switch over to broadlink ones ultimately. Well anyways, thankyou so much for this integration and for helping me out truly appreciate it!


Updating the indexer to read the contents of the external file

The external data is an IO not just astring.  The indexing needs to read the data from the IO

Coverage remained the same at 92.905% when pulling 985f422bc38b80c89789443d7efd0a591f23268e on fixes into c99363811bb36c3208663e20706b6cb675de377d on develop.


fix: Made index.html of integrations, responsive.

Added media query for smaller resolution devices.Change in integrations.css file
Pr for: https://zulip.com/integrations/
Tested locally for all screen resolutions.
Previous look:

Now:

OK, closing, thanks @RISHABHSIDANA!


Driver name s3.csi.aws.com not found in the list of registered CSI drivers

/kind bug
What happened?
When mounting the volume on the pod, it cannot locate the drive
Warning FailedMount 12s (x8 over 76s) kubelet MountVolume.MountDevice failed for volume "s3-pv" : kubernetes.io/csi: attacher.MountDevice failed to create newCsiDriverClient: driver name s3.csi.aws.com not found in the list of registered CSI drivers
What you expected to happen?
That it can normally mount the volume without failure
How to reproduce it (as minimally and precisely as possible)?
Apply the example yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: s3-pv
spec:
  capacity:
    storage: 120Gi # ignored, required
  accessModes:
    - ReadWriteMany # supported options: ReadWriteMany / ReadOnlyMany
  mountOptions:
    - allow-delete
    - region us-east-1
  csi:
    driver: s3.csi.aws.com # required
    volumeHandle: s3-csi-driver-volume
    volumeAttributes:
      bucketName: s3-csi-driver-private
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: s3-claim
spec:
  accessModes:
    - ReadWriteMany # supported options: ReadWriteMany / ReadOnlyMany
  storageClassName: "" # required for static provisioning
  resources:
    requests:
      storage: 120Gi # ignored, required
  volumeName: s3-pv
---
apiVersion: v1
kind: Pod
metadata:
  name: s3-app
spec:
  containers:
    - name: app
      image: centos
      command: ["/bin/sh"]
      args: ["-c", "echo 'Hello from the container!' >> /data/$(date -u).txt; tail -f /dev/null"]
      volumeMounts:
        - name: persistent-storage
          mountPath: /data
  volumes:
    - name: persistent-storage
      persistentVolumeClaim:
        claimName: s3-claim

Anything else we need to know?:
 kc get pvc
NAME       STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
s3-claim   Bound    s3-pv    120Gi      RWX                           4m47s

kc get pv
s3-pv       120Gi      RWX            Retain          Bound    kube-system/s3-claim

 kubectl get csidriver
NAME                         ATTACHREQUIRED   PODINFOONMOUNT   STORAGECAPACITY   TOKENREQUESTS   REQUIRESREPUBLISH   MODES        AGE
ebs.csi.aws.com              true             false            false             <unset>         false               Persistent   48d
efs.csi.aws.com              false            false            false             <unset>         false               Persistent   48d
s3.csi.aws.com               false            false            false             <unset>         false               Persistent   135m

 kc get storageClass
NAME            PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
gp2             kubernetes.io/aws-ebs   Delete          WaitForFirstConsumer   false                  203d
gp3 (default)   kubernetes.io/aws-ebs   Delete          WaitForFirstConsumer   false                  203d

Is it necessary to create a new storage class?
kc logs pod/s3-csi-node-r2w75
Defaulted container "s3-plugin" out of: s3-plugin, node-driver-registrar, liveness-probe, install-mountpoint (init)
I1212 16:35:21.276393       1 driver.go:61] Driver version: 1.1.0, Git commit: c681ab1f19ccba5976e3263f0e3df65718750369, build date: 2023-12-05T19:47:03Z, nodeID: ip-0-00-0-00.ec2.internal, mount-s3 version: 1.3.1
I1212 16:35:21.282921       1 mount_linux.go:285] 'umount /tmp/kubelet-detect-safe-umount3132235530' failed with: exit status 32, output: umount: /tmp/kubelet-detect-safe-umount3132235530: must be superuser to unmount.
I1212 16:35:21.282946       1 mount_linux.go:287] Detected umount with unsafe 'not mounted' behavior
I1212 16:35:21.289423       1 driver.go:83] Found AWS_WEB_IDENTITY_TOKEN_FILE, syncing token
I1212 16:35:21.289599       1 driver.go:113] Listening for connections on address: &net.UnixAddr{Name:"/csi/csi.sock", Net:"unix"}
I1212 16:35:22.113470       1 node.go:204] NodeGetInfo: called with args

kc describe sa s3-csi-driver-sa
Name:                s3-csi-driver-sa
Namespace:           kube-system
Labels:              app.kubernetes.io/component=csi-driver
                     app.kubernetes.io/instance=aws-mountpoint-s3-csi-driver
                     app.kubernetes.io/managed-by=EKS
                     app.kubernetes.io/name=aws-mountpoint-s3-csi-driver
Annotations:         eks.amazonaws.com/role-arn: arn:aws:iam::0000000:role/TMP_AmazonEKS_S3_CSI_DriverRole
Image pull secrets:  <none>
Mountable secrets:   <none>
Tokens:              <none>
Events:              <none>

Environment

Kubernetes version (use kubectl version):

Client Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.3", GitCommit:"25b4e43193bcda6c7328a6d147b1fb73a33f1598", GitTreeState:"clean", BuildDate:"2023-06-14T09:47:38Z", GoVersion:"go1.20.5", Compiler:"gc", Platform:"darwin/amd64"}
Kustomize Version: v5.0.1
Server Version: version.Info{Major:"1", Minor:"25+", GitVersion:"v1.25.15-eks-4f4795d", GitCommit:"9587e521d190ecb7ce201993ceea41955ed4a556", GitTreeState:"clean", BuildDate:"2023-10-20T23:22:38Z", GoVersion:"go1.20.10", Compiler:"gc", Platform:"linux/amd64"}
WARNING: version difference between client (1.27) and server (1.25) exceeds the supported minor version skew of +/-1

Driver version:  v1.1.0-eksbuild.1

Did you install this EKS Addon? Then the CSI driver is not installed. But this works
apiVersion: storage.k8s.io/v1 kind: CSIDriver metadata:   name: s3.csi.aws.com spec:   attachRequired: false

Did you install this EKS Addon? Then the CSI driver is not installed. But this works
apiVersion: storage.k8s.io/v1
kind: CSIDriver
metadata:
  name: s3.csi.aws.com
spec:
  attachRequired: false

Yes, I installed it via EKS addons, the drive was already installed.
The strange thing is just that, even with it installed I get the error:
... driver name s3.csi.aws.com not found in the list of registered CSI drivers
static_provisioning git:(main) ✗ kc get CSIDriver
NAME                         ATTACHREQUIRED   PODINFOONMOUNT   STORAGECAPACITY   TOKENREQUESTS   REQUIRESREPUBLISH   MODES        AGE
csi.oneagent.dynatrace.com   false            true             false             <unset>         false               Ephemeral    175d
ebs.csi.aws.com              true             false            false             <unset>         false               Persistent   48d
efs.csi.aws.com              false            false            false             <unset>         false               Persistent   48d
s3.csi.aws.com               false            false            false             <unset>         false               Persistent   20h

➜  static_provisioning git:(main) ✗ kc get CSIDriver s3.csi.aws.com -o yaml
apiVersion: storage.k8s.io/v1
kind: CSIDriver
metadata:
  creationTimestamp: "2023-12-12T16:35:19Z"
  labels:
    app.kubernetes.io/component: csi-driver
    app.kubernetes.io/instance: aws-mountpoint-s3-csi-driver
    app.kubernetes.io/managed-by: EKS
    app.kubernetes.io/name: aws-mountpoint-s3-csi-driver
  name: s3.csi.aws.com
  resourceVersion: "222744296"
  uid: 9703b843-5d47-4545-b5e2-00387ec1c2d0
spec:
  attachRequired: false
  fsGroupPolicy: ReadWriteOnceWithFSType
  podInfoOnMount: false
  requiresRepublish: false
  storageCapacity: false
  volumeLifecycleModes:

If i understand it correctly then the CSIDriver is in place but the resource can't find it.
Then i think it is rather a problem with your api-server then with the csi driver itself.
But i don't have a clou how to solve this. Sorry.

I found the same error in some nodes, not all the nodes:

Normal   Scheduled         18s               default-scheduler  Successfully assigned default/app-s3-84c5c995cf-k9v8g to ip-10-0-50-37.us-west-2.compute.internal
Warning  FailedMount       2s (x6 over 18s)  kubelet            MountVolume.MountDevice failed for volume "s3-pv" : kubernetes.io/csi: attacher.MountDevice failed to create newCsiDriverClient: driver name s3.csi.aws.com not found in the list of registered CSI drivers

I found that by run:
kubectl get pods -n kube-system -l app.kubernetes.io/name=aws-mountpoint-s3-csi-driver

NAME                READY   STATUS    RESTARTS   AGE
s3-csi-node-4t6kt   3/3     Running   0          76m
s3-csi-node-586lj   3/3     Running   0          76m
s3-csi-node-5hfzr   3/3     Running   0          57m

But I have 5 nodes, not only 3. I found that the error only occur in the node with some custom taints, so I delete these taints off the Node, then it works.

Closing the issue for now, feel free to re-open if this issue persists.

I have encountered a similar issue to what's been described in the thread. It seems to be a timing problem when communicating with the Mountpoint S3 CSI driver. I'm attempting to mount multiple pods to the same static PVC, which is linked to an S3 bucket. This setup is for running Spark Driver and Executor jobs, essentially using the S3 bucket as a shuffle disk in place of an EBS volume. Here's the configuration I'm using:
Initially, my driver pods only mount successfully after a few attempts and restarting the pod. The error encountered is:
MountVolume.MountDevice failed for volume s3-pv : kubernetes.io/csi: attacher.MountDevice failed to create newCsiDriverClient: driver name s3.csi.aws.com not found in the list of registered CSI drivers
The Spark driver pod works on the second attempt of running the same job. However, the executor pods error out with the same issue.
Error in First Attempt

On the second attempt, both driver and executor pods run successfully.

@patrickpa suggested a possible solution using node startup taint, which I haven't tried yet but plan to explore later and will update accordingly.
However, I've run into a different issue related to file renaming. All the Spark executor pods failed with the following error, causing the job to terminate:

24/02/08 01:56:39 WARN TaskSetManager: Lost task 0.0 in stage 2.0 (TID 2) (<IP_ADDRESS> executor 1): java.io.IOException: fail to rename file /data/blockmgr-60c7d3cc-049c-4cf3-949d-89a9bbbc46e2/32/shuffle_0_2_0.index.24900016-5dda-41ed-8601-2b4c6cb575d6 to /data/blockmgr-60c7d3cc-049c-4cf3-949d-89a9bbbc46e2/32/shuffle_0_2_0.index
at org.apache.spark.shuffle.IndexShuffleBlockResolver.writeMetadataFile(IndexShuffleBlockResolver.scala:467)

This leads me to question the viability of using an S3 bucket with mountpoint-s3 for Spark jobs as a replacement for EBS storage.
Given that Spark Driver and Executors need to create, update, and delete files from the S3 bucket, are there any limitations or considerations I might be missing here?
Any insights would be greatly appreciated.

I redid the installation using the deploy files, and I was successful.
https://github.com/awslabs/mountpoint-s3-csi-driver/tree/main/deploy/kubernetes
for some reason the aws addons were not replicating the drive pods on all nodes.

As anyone found a way to resolve this problem, In my case I use auto-scaling in my cluster whenever a new node provisioned via auto-scaler, The S3-csi-driver addon won't configured in new node which is annoying.

As anyone found a way to resolve this problem, In my case I use auto-scaling in my cluster whenever a new node provisioned via auto-scaler, The S3-csi-driver addon won't configured in new node which is annoying but I also have efs-driver-addon which works fine.
Update:
When I check the kubectl get deamonset -n kube-system
❯ kubectl get daemonset -n kube-system
NAME                             DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
aws-node                         2         2         2       2            2           <none>                   52d
ebs-csi-node                     2         2         2       2            2           kubernetes.io/os=linux   49d
efs-csi-node                     2         2         2       2            2           kubernetes.io/os=linux   41d
kube-proxy                       2         2         2       2            2           <none>                   52d
nvidia-device-plugin-daemonset   2         2         2       2            2           <none>                   52d
s3-csi-node                      1         1         1       1            1           kubernetes.io/os=linux   3m52s

s3-csi-node should be two each one in each node but the desired state is only one .

check the taints of your nodes and the tolerance of your s3-csi-node and ebs-csi-node, which may be different.

As anyone found a way to resolve this problem, In my case I use auto-scaling in my cluster whenever a new node provisioned via auto-scaler, The S3-csi-driver addon won't configured in new node which is annoying but I also have efs-driver-addon which works fine.
Update:
When I check the kubectl get deamonset -n kube-system
❯ kubectl get daemonset -n kube-system
NAME                             DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
aws-node                         2         2         2       2            2           <none>                   52d
ebs-csi-node                     2         2         2       2            2           kubernetes.io/os=linux   49d
efs-csi-node                     2         2         2       2            2           kubernetes.io/os=linux   41d
kube-proxy                       2         2         2       2            2           <none>                   52d
nvidia-device-plugin-daemonset   2         2         2       2            2           <none>                   52d
s3-csi-node                      1         1         1       1            1           kubernetes.io/os=linux   3m52s

s3-csi-node should be two each one in each node but the desired state is only one .

check the taints of your nodes and the tolerance of your s3-csi-node and ebs-csi-node, which may be different.

I have two group of nodes CPU and GPU node. CPU node is at least one running 24x7 but GPU node scale down to zero.  CPU node have no taints while gpu node have taint nvidia.com/gpu=present:NoSchedule
When I check the tolerations and node-selector for s3-csi-node I saw
Node-Selectors:              kubernetes.io/os=linux
Tolerations:                 :NoExecute op=Exists for 300s
                             CriticalAddonsOnly op=Exists
                             node.kubernetes.io/disk-pressure:NoSchedule op=Exists
                             node.kubernetes.io/memory-pressure:NoSchedule op=Exists
                             node.kubernetes.io/not-ready:NoExecute op=Exists
                             node.kubernetes.io/pid-pressure:NoSchedule op=Exists
                             node.kubernetes.io/unreachable:NoExecute op=Exists
                             node.kubernetes.io/unschedulable:NoSchedule op=Exists

And for ebs-csi-node
Node-Selectors:              kubernetes.io/os=linux
Tolerations:                 op=Exists
                             node.kubernetes.io/disk-pressure:NoSchedule op=Exists
                             node.kubernetes.io/memory-pressure:NoSchedule op=Exists
                             node.kubernetes.io/not-ready:NoExecute op=Exists
                             node.kubernetes.io/pid-pressure:NoSchedule op=Exists
                             node.kubernetes.io/unreachable:NoExecute op=Exists
                             node.kubernetes.io/unschedulable:NoSchedule op=Exists

So I am not sure which stops the s3-csi-node to run in GPU node.
Note: I have installed both from EKS web interface in aws.

I found the issue, my GPU node have a following taint and i removed the taint
taints:
    - key: nvidia.com/gpu
      value: "present"
      effect: "NoSchedule"

These taints prevents the s3-csi-driver to schedule. So I am using labels and nodeaffinity to deploy the apps instead of toleration. So for now s3-csi-driver won't schedule into the node if you have any taints even though other addons in EKS works fine. For now this is the solution.

@dlakhaws any chance we we can reopen this given the activity on the issue? I am experiencing similar issues to @surya9teja, seems problematic that the driver won't run on nodes when some taints are used.

Reopened. @spolloni are you also using EKS add-on?

@spolloni If you install s3-csi-driver from EKS management portal the issue still persist. So I used the source code from the repo and deploy the addon manually by adding the following tolerations into the file node-daemonset.yaml. So for now it works fine if you have any other tolerations you can add them and deploy.
tolerations:
        - key: CriticalAddonsOnly
          operator: Exists
        - operator: Exists
          effect: NoExecute
          tolerationSeconds: 300
        - key: nvidia.com/gpu
          operator: Exists

@surya9teja ok, thanks for the tip!

@spolloni are you also using EKS add-on?

@unexge yes I am. I just updated to the latest version (1.7.0) to make sure the issue persisted. I am completely ignorant about how this driver works but do you think this is issue is "generally" fixable in the add-on install without the workaround suggested above?

Hey @spolloni, our EKS add-on doesn't allow configuring tolerations at the moment. We plan to support that, it's tracked by https://github.com/awslabs/mountpoint-s3-csi-driver/issues/109.
Meanwhile, I think only workaround is using our Helm-chart/Kustomization-manfiest to configure tolerations as @surya9teja suggested.

sounds good. thanks for the help @unexge!

v1.8.0 of our EKS add-on has been released with node.tolerateAllTaints and node.tolerations configuration values:
$ aws eks describe-addon-configuration --addon-name aws-mountpoint-s3-csi-driver --addon-version v1.8.0-eksbuild.1
{
    "addonName": "aws-mountpoint-s3-csi-driver",
    "addonVersion": "v1.8.0-eksbuild.1",
    "configurationSchema": "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"additionalProperties\":false,\"description\":\"Configurable param
eters for Mountpoint for S3 CSI Driver\",\"properties\":{\"node\":{\"additionalProperties\":false,\"properties\":{\"tolerateAllTaints\":{\"default\":false,\"
description\":\"Mountpoint for S3 CSI Driver Pods will tolerate all taints and will be scheduled in all nodes\",\"type\":\"boolean\"},\"tolerations\":{\"defa
ult\":[],\"items\":{\"type\":\"object\"},\"title\":\"Tolerations for Mountpoint for S3 CSI Driver Pods\",\"type\":\"array\"}},\"type\":\"object\"}},\"type\":
\"object\"}",
    "podIdentityConfiguration": []
}

You can set node.tolerateAllTaints to true if you want CSI driver's Pods to schedule all nodes in the cluster, or you can configure node.tolerations array if you need more granularity.
For example:
$ aws eks create-addon --cluster-name ... \
    --addon-name aws-mountpoint-s3-csi-driver \
    --service-account-role-arn ... \
    --configuration-values '{"node":{"tolerateAllTaints":true}}'

Closing the issue now. Could you please try upgrading to v1.8.0 with a toleration config to see if that solves the problem? Please let us know if the issue persists.


Text Areas and Line Numbers

The areas where you have text area with line numbers like when manually editing a BIND zone, the font should be a monospaced font. Your styling doesn't properly show tabs so a tab is converted to a white space.

In default theme was there monospace font in default textarea?

Yes. All tabs were preserved.

I don't know if this is related but I'm seeing strange characters in editors and in the browser title also. I didn't have this on previous theme. Love this new theme though.

Read front page of the repo. You need to set UTF8.
After you change the encoding does it solve your initial issue?

Thanks Ilya - I did this but it made no difference in Virtualmin.

Check for global Webmin settings and Webmin Language and Theme module.

Yes they are both set - no change

Checked for VM language? If you can't find, the theme has a language linkbin navigation menu. Enable it in options and then you'll be able to get VM language when on VM.

I think the issue should go after you set proper encoding.
I can not reproduce this issue.. all spaces are tabbed.

I will update codeMirror with the new release and fix some issues on the black theme for BIND module. If issue persists after 17.60, please let me know, attaching the video-screencast.
Thanks for reporting!

Thanks. Still no change for me but I'll see if future updates make a difference.

Post a screen shot for the file please? I think your file itself is not properly formatted, maybe?


repl: improved UI

it would be great (beside having regular "readline-like" capabilities like alluded to in #286) to have support for:

tab-completion
up-/down-arrow history search

in neugram, we used github.com/peterh/liner.

Tab Completion would be awesome.

got working prototype in https://github.com/containous/yaegi/pull/389

I added a very simple patch for taking the previous command when pressing the right arrow.
It's far from being ready for a PR. But I just wanted to know if this makes any sense at all.
diff --git a/interp/interp.go b/interp/interp.go
index 6111a73..2d3361f 100644
--- a/interp/interp.go
+++ b/interp/interp.go
@@ -2,6 +2,7 @@ package interp

 import (
 	"bufio"
+	"bytes"
 	"context"
 	"fmt"
 	"go/build"
@@ -138,6 +139,7 @@ type Interpreter struct {
 	srcPkg   imports           // source packages used in interpreter, indexed by path
 	pkgNames map[string]string // package names, indexed by path
 	done     chan struct{}     // for cancellation of channel operations
+	commands []string
 }

 const (
@@ -496,7 +498,19 @@ func (interp *Interpreter) REPL(in io.Reader, out io.Writer) {
 	src := ""
 	s := bufio.NewScanner(in)
 	for s.Scan() {
-		src += s.Text() + "\n"
+		n := len(interp.commands)
+		if bytes.Equal(s.Bytes(), []byte{27, 91, 65}) {
+			if n > 0 {
+				src = interp.commands[n - 1]
+				// shrink it
+				interp.commands = interp.commands[:n - 1]
+			} else {
+				src = ""
+			}
+		} else {
+			src += s.Text() + "\n"
+			interp.commands = append(interp.commands, src)
+		}
 		ctx, cancel := context.WithCancel(context.Background())
 		defer cancel()
 		handleSignal(ctx, cancel)

Hi @blasrodri
We think that if we're ever going to add some readline type capabilities, we'll probably go with an existing full-blown library, such as liner, because:

If we go with a small subset of features, there's always going to be someone who is going to want that we support their favorite one. It's easier to say "you get everything that is in liner, if you want anything else, ask liner to implement it".
Reimplementing properly within yaegi such a full-blown library is a huge amount of work, so it wouldn't be wise to do it ourselves when we can reuse an existing one.

That said, we'll only ever depend on liner or anything else once we have figured out how to do that without cluttering with deps the yaegi core itself. Which might require making several go modules or something like that. We'll need to think about that at some point.

Hi @mpl !
Thanks a lot! I understand the design trade offs, and it makes sense what you’re saying.
Thanks for all your hard work. This package is really awesome.

for the meantime i'm just using my shell's "readline" type stuff
user experience is not so bad if you use heredocs "<<<" and are ok with working on one line
yaegi <<<'t := 743 * time.Microsecond; fmt.Printf("%.2f", float64(t) / float64(time.Millisecond))'

@sentriz Nice trick, you can also use rlwrap yaegi but i've noticed some weird hangs


[Suggestion] Add support of (Botania)Pollidisiac

It can be an exciting thing that if the support is proved, a massive fluid manufactory can be easily built and Its difficulty is within a reasonable range.
This botania's special flower will milk the cow if empty bucket as droppings and mana are provided.

Maybe it's a long-lasting enhancement plan, but I'll waiting for it. :P

May be if mod ported in newest versions.


Exercise 2 - Automated Data Pipeline for Train Stops

Description:
Exercise 2 - Build an automated data pipeline
Data Source:
Direct link to CSV: DB Train Stops CSV
Goal:

[x] Drop the "Status" column.
[x] Drop all rows with invalid values:

[x] Valid "Verkehr" values are "FV", "RV", "nur DPN".
[x] Valid "Laenge", "Breite" values are geographic coordinate system values between and including -90 and 90.
[x] Valid "IFOPT" values follow this pattern: <exactly two characters>:<any amount of numbers>:<any amount of numbers><optionally another colon followed by any amount of numbers>. (Note: This is not the official IFOPT standard, please follow our guidelines and not the official standard.)
[x] Empty cells are considered invalid.

[x] Use fitting SQLite types (e.g., BIGINT, TEXT, or FLOAT) for all columns.

🚀 Successfully completed Exercise 2! The automated data pipeline for the DB Train Stops CSV is up and running, meeting all defined goals. 🎉


[WIP] Changes configuration for kube api to use gRPC

Alters the configuration we use to tell Multus to use a gRPC connection to the Kube API as opposed to JSON (which is default)

Process to verify that it's using gRPC, first start up a kubectl proxy to the api...
$ kubectl proxy --port=8080

And then you can grep for it:
[centos@kube-multus-master ~]$ curl -s localhost:8080/metrics | grep 'client="multus/v0.0.0'
apiserver_request_count{client="multus/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="network-attachment-definitions",scope="namespace",subresource="",verb="GET"} 1
apiserver_request_count{client="multus/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="GET"} 3
apiserver_request_count{client="multus/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="status",verb="PUT"} 1

And in this case you can see that it's using protobuf by: contentType="application/vnd.kubernetes.protobuf"

Pull Request Test Coverage Report for Build 644

0 of 3 (0.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.2%) to 52.867%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

k8sclient/k8sclient.go
0
3
0.0%

Totals

Change from base Build 639:
-0.2%

Covered Lines:
590

Relevant Lines:
1116

💛  - Coveralls


Enable MKL support for full pooling

@ykim362

Hi @piiswrong , I am double-checking with @adstraw for this change. Thanks.

Young identified an issue with this commit.  I am working to debug.  Shall I close this pull request while debugging or leave it open?

@ykim362 Could you confirm?

@piiswrong  Yes, it passes all the CI tests.
And, it passes a specific test case we got fails before (with MKL 'full' pooling) which @adstraw will put here.


500 status code.

In Connection.cs:
private void ThrowIfRequestFailed(IRestResponse response)
        {
            switch (response.StatusCode)
            {
                case HttpStatusCode.BadRequest:
                case HttpStatusCode.Forbidden:
                case HttpStatusCode.NotAcceptable:
                case HttpStatusCode.Unauthorized:
                case HttpStatusCode.UnsupportedMediaType:
                    throw new RequestFailedException(response);

                case HttpStatusCode.NotFound:
                    throw new RequestNotFoundException(response);
            }
       }

If you get a 500 from YouTrack (BadGateway, GatewayTimeout, HttpVersionNotSupported, InternalServerError, NotImplemented, ServiceUnavailable, etc) this will not count as a fail now?
Maybe there should be a default: in the switch case or more statuscodes added to it.
...   If you want to implement something else, go for it


Fixed lazy loading subscribers

I tried to fix bellow use-case with maximum resource efficiency:
# config.neon
services:
    logger:
        class<EMAIL_ADDRESS>        tags: [event.insert, event.update, event.delete]

# Model\Logger class
public function onEvents(EventsManager $em) {
    $em->on('event.insert', function($id) {
        \Tracy\Debugger::barDump('insert: ' . $id);
    });
    $em->on('event.update', function($id) {
        \Tracy\Debugger::barDump('update: ' . $id);
    });
    $em->on('event.delete', function($id) {
        \Tracy\Debugger::barDump('delete: ' . $id);
    });
}

# trigger events anywhere in app
$this->em->trigger('event.insert', '1');
$this->em->trigger('event.update', '2');
$this->em->trigger('event.delete', '3');

Thanks, but I'm not sure what this fix do. Can you explain it more?

I would like make Logger monitor service (subscriber) which will listen (of course lazy) for more than one event. I realized this with code above. Just try it and look what you see in Debugger dump bar. I think it is real use-case :)

I fix it by this commit (https://github.com/minetro/events/commit/3e76c816bc9133a82900984a2c076d9be1f72240). I appreciate your fork, but you change my code. Could you please remove it?

@tomaskubat Why not just write your own event manager which would inherit from Minetro\Events\EventsManager?


chore(main): release 2.1.0

:robot: I have created a release beep boop
2.1.0 (2024-10-04)
Features

add nth_best parameter to min_global_distance_edges (1c683c4)

Bug Fixes

remove extra whitespace from lines (9e9307c)
shared data file reader (7d53624)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v2.1.0
:sunflower:


Test commit

SonarQube analysis reported 2 issues

 2 minor

Watch the comments in this conversation to review them.


Can't add Skype for Business account

Expected Behavior
Adding Skype fB account should work
Current Behavior
Doesn't recognize account
Possible Solution
Add functionality
Steps to Reproduce (for bugs)

Try to add a SfB account
Get message "this Microsoft account does not exist"
This is because Skype account adding connects to the private user MS realm

Your Environment

Franz Version used: Latest
Operating System and version: MS Win 10

I added an "Office 365 Outlook App" and turns out it includes Skype for Business, so if you have Office 365 I guess you don't need a separate app for it

Whilst the outlook app approach works, notifications for skype messages are not shown on desktop when minimised to tray


Options for Title Case

The ability to capitalize all words, and to avoid decapitalization of Roman numerals.

@e8ghtmileshigh
are you referring to PowerRename or to something else?

Yes in PowerRename. Also nice would be the ability to skip certain phrases or skip capitalizing after an apostrophe.

@e8ghtmileshigh
what version of PowerToys are you using?

I don't think you understand. When you use that option, it often leaves conjunction like "the," "a," "of" etc uncapitalized, as well as any Roman numeral sequences with more than one numeral, and letter after apostrophes are capitalized.

@e8ghtmileshigh
add your comments to https://github.com/microsoft/PowerToys/issues/8796

The apostrophe issue is an addendum to my main issues. I don't think it's a duplicate.

This shouldn't be closed

@e8ghtmileshigh
it's ok if you add your suggestions to #8796, so we have one issue tracking all the possible improvements for the Titlecase option.
Or you can open a new issue, explaining in the opening comments what are the individual improvements you suggest and we can close #8796 in favor of the new issue.


Calculate next trigger time from crontab-like string

Is there a method to calculate simply next execution time from a crontab-like string?
For example, the input is:
*/5 * * * *
And the output should be, at the moment that i'm writing:
2021-04-21 17:55:00
An illustrative example can be viewed here:
https://crontab.guru/#*/5_*_*_*_*

ParseStandard or Parser.Parse will do the job
For example
package main

import (
	"fmt"
	cron "github.com/robfig/cron/v3"
	"time"
)

func main() {
	sched, _ := cron.ParseStandard("*/5 * * * *")
	fmt.Println(sched.Next(time.Now()))
}

Exactly^
Thanks @wishdev !


spotify support

Spotify's oembed is undocumented.
Also, there are some core changes in order for spotify to work.
Please check the inline comment :)

@KiddoKenshin You might not need to do that, because spotify embed URLs are publically allowed to embed. By default embedo's fallback iframe service will embed it. See https://codepen.io/shobhitsharma/pen/prOGzd

My apologies blush
Thank you for pointing it out :)
I close this PR m(_ _)m


add autoGrow to TextInput

Could you give more info about this prop? It doesn't exist in RN or RNW AFAIK:

remove in RN https://github.com/facebook/react-native/commit/dabb78b1278d922e18b2a84059460689da12578b
can't find it in RNW on latest

https://github.com/necolas/react-native-web/issues/287#issuecomment-307458609
https://github.com/necolas/react-native-web/search?q=autoGrow&type=commits

Where does this comes from?

Ah ok, I didn't know about this! I implemented a new feature with an autoGrow'able TextInput, but didn't realize that this is already default behavior


Update baignades.md

:tada: This PR is included in version 1.24.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Makes tenantUUID usage consistent in provisioner

cherry pick of #1214
How can this be tested?
same as #1214
Checklist

~[ ] Unit tests have been updated/added~
[x] PR is labeled accordingly
[x] I have read and understood the contribution guidelines

Do we have to consider anything in case there is already a folder with the wrong name?


Messenger strange behavior [BUG]

I have a relatively small application here. Here is the code snippet from my constructor:

You can find the whole class here.
The problem is that the registration callback at line 58 will be executed and the callback at 62 not. The registration is exactly the same. If I switch the registrations or remove the first one the result is still the same... Somehow never going to hit the callback at line 62.
Do you have some suggestions for me? Do I miss something?
Thank you

I have found a workaround:

I have moved all logic from lambda to a named function. Everything works fine.
Still seems like bug for me.

Today i ran into the same issue. This comment is the solution.
https://github.com/lbugnion/mvvmlight/blob/4cbf77ca6fbe91f83cece8fbf288b166c54202c5/GalaSoft.MvvmLight/GalaSoft.MvvmLight (PCL)/Messaging/IMessenger.cs#L38-L49

I didn't know that there are also weak actions. Many thanks, @Christian-Schulz. I will close this issue since it is well known and documented.


no-op PR to build img

Signed-off-by: Song Song Li<EMAIL_ADDRESS>

/hold

/retest

/test vendor

/lgtm


New package: EquilibriumMeasures v0.0.1

Registering package: EquilibriumMeasures
Repository: https://github.com/JuliaApproximation/EquilibriumMeasures.jl
Created by: @dlfivefifty
Version: v0.0.1
Commit: 64b8e998c5a7b710c12f90a049920ddcde498e51
Reviewed by: @dlfivefifty
Reference: https://github.com/JuliaApproximation/EquilibriumMeasures.jl/commit/64b8e998c5a7b710c12f90a049920ddcde498e51#commitcomment-55757107

block

I forgot that I'm using a special branch of ForwardDiff.jl, so this wasn't ready to be tagged


WIP: Resolve "Tool for analysing Monte Carlo Uncertainty Quantification Results" - [opened]

In GitLab by @ym1906  on Jun 2, 2023, 14:30
Merges 1872-tool-for-analysis-monte-carlo-uncertainty-quantification-results -> develop
Edit: Closes #1873
Script which can produce the below plots from evaluate_uncertainty.py output.
Index values:

Sensitivity Indices example:

Convergence study example:

I'm no longer developing this within PROCESS (for now), ask me for details if you are interested!


[ISSUE #4123] Explicit type argument can be replaced with <> for RouteInfoManager

fix : #4123
Make sure set the target branch to develop
What is the purpose of the change
XXXXX
Brief changelog
XX
Verifying this change
XXXX
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Codecov Report

Merging #4124 (10604b6) into develop (e7c87fa) will decrease coverage by 0.07%.
The diff coverage is 100.00%.

@@              Coverage Diff              @@
##             develop    #4124      +/-   ##
=============================================
- Coverage      47.92%   47.84%   -0.08%
+ Complexity      4999     4996       -3
=============================================
  Files            634      635       +1
  Lines          42529    42504      -25
  Branches        5573     5567       -6
=============================================
- Hits           20380    20337      -43
- Misses         19651    19677      +26
+ Partials        2498     2490       -8

Impacted Files
Coverage Δ

...e/rocketmq/namesrv/routeinfo/RouteInfoManager.java
81.51% <100.00%> (ø)

...org/apache/rocketmq/common/stats/StatsItemSet.java
46.26% <0.00%> (-5.98%)
:arrow_down:

...org/apache/rocketmq/store/ha/WaitNotifyObject.java
66.07% <0.00%> (-5.36%)
:arrow_down:

...ketmq/common/protocol/body/ConsumerConnection.java
95.83% <0.00%> (-4.17%)
:arrow_down:

...e/rocketmq/client/impl/consumer/RebalanceImpl.java
40.23% <0.00%> (-3.52%)
:arrow_down:

...nt/impl/consumer/ConsumeMessageOrderlyService.java
46.83% <0.00%> (-3.17%)
:arrow_down:

...lient/impl/consumer/DefaultMQPushConsumerImpl.java
41.05% <0.00%> (-2.99%)
:arrow_down:

...va/org/apache/rocketmq/logging/inner/Appender.java
34.83% <0.00%> (-2.25%)
:arrow_down:

...rocketmq/client/impl/factory/MQClientInstance.java
49.31% <0.00%> (-1.83%)
:arrow_down:

...ent/impl/consumer/DefaultLitePullConsumerImpl.java
67.75% <0.00%> (-1.56%)
:arrow_down:

... and 21 more

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 e7c87fa...10604b6. Read the comment docs.


After the upscale is completed, it is completely unlike the original picture. There are prompts in the log, which seems to be related to lcm. The diffusers have been upgraded to 0.31.0

Comparison of original image with PMRF and instantIR

log
Start infer 1 images.                                                                                The config attributes {'interpolation_type': 'linear', 'skip_prk_steps': True, 'use_karras_sigmas': False} were passed to LCMSingleStepScheduler, but are not expected and will be ignored. Please verify your scheduler_config.json configuration file.     init latent at 951                                                                                finish processing                                                                                Prompt executed in 81.69 seconds

你可以试着改一下底模，然后调整start和end两个参数，然后prompt加入穿着军装的人这类的限定词
You can try to change the SDXL checkpoints, adjust the start and end parameters, and then prompt to add qualifiers such as "people wearing green military uniforms"

你可以试着改一下底模，然后调整start和end两个参数，然后prompt加入穿着军装的人这类的限定词 You can try to change the SDXL checkpoints, adjust the start and end parameters, and then prompt to add qualifiers such as "people wearing green military uniforms"

其实一开始就这么试过，没有好转，我今天看您这边的依赖有更新，我回去更新一下依赖试一试

我只是更新了需求库，有些人的comfyUI库环境不匹配，没用动核心代码，比较忙，可能要晚几天才能看这个项目

@wch352136  你aggregator的模型选错了

@wch352136 你aggregator的模型选错了

是的，就是这样，改工作流的时候选错了，但排查问题完全没想到这，一直找安装的问题和底模的问题，感谢感谢


WIP: Update docs

Docs are old.
Seems that vtree and vnode repos have been moved?

And I think we can rewrite bin/copy-markdown.js without git but just download files from https://raw.github.com.

Thanks


Scroll bar doesn't respond to mouse scroll events

Microsoft PowerToys version
0.60.0
Running as admin

[X] Yes

Area(s) with issue?
Settings
Steps to reproduce
Open a settings page with more settings than those that can fit in the current size of the settings window (decreasing the size of settings window if necessary).

Use the mouse to scroll down (scroll wheel or similar).
Note the page does not respond to scroll events, the only means of scrolling the page is via keyboard or by hovering the mouse over the tiny collapsed scroll bar to expand it into a slightly larger scroll bar that is functional.

✔ Expected Behavior
Settings page should scroll in response to mouse events just as the windows 10 Settings app does.
❌ Actual Behavior
Settings page/pane does not respond to mouse scroll events.
Other Software
No response

On a related note, I find minimal scrollbar to be far less user friendly - both in the Windows 10 Settings app and this Setting app. I understand it saves screen real-estate. But when the window is adjacent to a dark area (eg because the window is snapped to the edge of a standard black bezel monitor), the minimal dark scrollbar line - which serves as the only UI hint that more content is available - is very hard to see. I forget what property of human vision this is, something related to edge detection.
I've fielded customer support from several people who complain a setting isn't available  when really it is outside the visible window and they haven't seen the minimized scroll bar. I've been bitten by it myself numerous times, which is why I instinctively scroll a settings page with the mouse to see if there is more content outside the window.

/dup #3400
We found some incompatibilities with some software, like X-Mouse Button Control. Might be the case.


[BUG] Export SVG citation is sometimes buggy

Describe the bug
Note that the chart displayed has the fbi.gov, while the export SVG does not

To Reproduce
Steps to reproduce the behavior:

Go to http://<IP_ADDRESS>:8080/place/geoId/0667000?topic=Crime
Scroll down to 'Arson Crime in San Francisco'
Click on 'Export'

In contrast, this does not seem to have the bug:


Requesting / selecting only some fields, excessive memory use

Is there some way to specify that I only want some specific fields in the response, the equivalent of Eloquent's select() method? This is my current code:
   $deals = Deal::where('dealstage', '=', 'closedwon')
            ->orderBy('amount', 'desc')
            ->take(100)
            ->get();

This works, but eats all of a 128M memory limit when requesting over 14 deals; that's getting on for 10M per record, which seems excessive! Is that expected?
To help reduce this, I'm looking at selecting only the fields I want, ideally something like:
   $deals = Deal::select(['dealname', 'amount'])
            ->where('dealstage', '=', 'closedwon')
            ->orderBy('amount', 'desc')
            ->take(100)
            ->get();

Part of the reason I'm selecting so many is that I want to to do some aggregate calculations (e.g. sum of all deals) – but I could avoid that if there were aggregation endpoints on the API, though I can't find any.

Hey there. Yeah, by default we're loading quite a bit, see here:
https://github.com/stechstudio/laravel-hubspot/blob/main/config/hubspot.php#L20-L21
I imagine the associations are the biggest part of this, not the properties. You may want to publish the config file and edit it directly. Certainly remove the associations, and then play with the properties.
php artisan vendor:publish --tag=laravel-hubspot
There are two methods for specifying properties and associations at runtime, however at the moment they get added to the default list. I don't have a way to clear the defaults at runtime. I should probably add that!

Hmmm, can deals belong to other deals? It's been a while since I was neck-deep in the association API code, I don't quite remember. It's possible that's a typo and shouldn't be there, or it's possible there is a legit hierarchy where deals can be associated with other deals.

I tried that but it says there is no such resource?
➜ php artisan vendor:publish --tag=laravel-hubspot

   INFO  No publishable resources for tag [laravel-hubspot].

@Synchro I just pushed v0.2 with the following changes:

You can use includeOnly('dealname', 'amount') and withOnly('contacts') to restrict the properties and associations that are retrieved, respectively. These methods clear out the defaults. I've also added select(...) as an alias to includeOnly, since that matches up with Eloquent behavior.
If needed, you can call the underlying clearProperties() and clearAssociations() to fully clear the defaults, without adding any of your own. You might want to do that if you only care about some properties, and don't want any associations fetched at all.
The config file has had the recursion defaults removed.

Also, while I don't think you should need to publish the config file now, the proper way to do it would be php artisan vendor:publish --tag=hubspot-config. Sorry for getting that wrong!
Let me know when you have a chance to verify the 'only' functionality of 0.2, want to make sure your use case is sorted and working well before closing this.

This is a huge improvement! I'm now able to fetch more than 10 deals (in fact It allows me to fetch all the ones I have), and it's also much faster (presumably because it's not doing any sub-requests via associations). Thanks so much!


Initial feature for #87

Initial feature for Issue #87
Added ability to change physics group in a dataset update Update update_datasets.sql to have optional dataset access type or physics group Fixed HTTP 500 code for DBSPutHandler
Added tests for update_datasets with physics_group_name parameter

@vkuznet I checked /dbs/prod/global/DBSReader/physicsgroups and saw that some of the physics_group_names have underscores and hyphens. And not all of them are camel case, especially the ones with the underscores and hyphens. Should the regexp also account for these?

@vkuznet I changed the existing pattern in the static/lexicon_*.json for physics_group.


rustfmt should use natural sorting

Current behavior is to sort imports lexicographically:
use std::num::{NonZeroU16, NonZeroU8, NonZeroU32, NonZeroU64};
Natural sorting would be slightly nicer:
use std::num::{NonZeroU8, NonZeroU16, NonZeroU32, NonZeroU64};

Not exactly a dup, though this has already been implemented within source (refs #3764). It's considered a breaking change and hasn't been released, but available in the rustfmt 2.0 beta if you build from source. Going to go ahead and close.
Side note, you may want to bump https://github.com/rust-dev-tools/fmt-rfcs/issues/143 in the Style Guide to try to get that codified.


[Request] Options to only show hotbar counts if needed

It'd be useful to have some options to only show item counts on the hotbar if certain conditions where met.
showOnHotbar could be changed from a boolean to an enum of NEVER, ALWAYS, WHEN_MORE_THAN_ONE, or WHEN_MORE_THAN_HOTBAR_STACK.
A new showOnSelectedSlot option would also be nice, taking the same enum as showOnHotbar. It would be like showOnHotbar except override showOnHotbar's behavior for the currently selected hotbar slot.

I really don't like the way Autoconfig displays enums, which is why I stuck with booleans originally.
You're right though, enums would be much better suited for the kind of configuration I want to provide.

Thanks, the pre-release looks great!
Not sure what you mean in your edit about showOnSelectedSlot. What I was envisioning for showOnSelectedSlot was just like showOnHotBar, why would it have different options?

With "the 3 existing options" I meant showActiveItemCount, showOffhandItemCount, showOnHotbar
I initially read the issue as "replace the boolean with an enum for showOnHotbar and showActiveItemCount",
but then noticed that showOnSelectedSlot would be a 4th option instead.
I'm assuming that showOnSelectedSlot should include the off-hand slot as well?

You can't select the offhand slot so I wouldn't think so?
I've also noticed that there are two "Show durability for offhand tool" options in 1.0.1, is that intentional?

I've also noticed that there are two "Show durability for offhand tool" options in 1.0.1, is that intentional?

Hmm, I'm not seeing that on my end.
There should be 5 options and a dropdown for each type.

Is it supposed to be "Show durability of hotbar tools"?

oh, lol. copy paste.

Alright, one effectively complete re-write later. The code got a bit nicer and everything should be supported now.
https://github.com/BlazingTwist/ItemCounts/releases/tag/1.0.2

Nice!
The categories and toggles are definitely a nice touch.

(guess this can be closed now)


wip

Summary
Io and App code for interfacing with the Efuses over SPI. Current sensing and Voltage sensing Io layer will be added after this is merged in.
Changelist

Testing Done
Tested writing to and reading from the Efuses. The Efuse's registers contained the correct configurations after being read back from. The status and fault registers correctly relayed the running state of the Efuse. Read current's from the Efuse's current-sense pin; measurements were within 5% of the actual value.
Resolved Issues

Checklist
Please change [ ] to [x] when you are ready.

[ ] I have read and followed the code conventions detailed in README.md (This will save time for both you and the reviewer!).
[ ] If this pull request is longer then 500 lines, I have provided explicit justification in the summary above explaining why I cannot break this up into multiple pull requests (Small PR's are faster and less painful for everyone involved!).

Since this is your first PR, can we break it down into smaller pieces? One for clang format, then one for io, and then app?

Since this is your first PR, can we break it down into smaller pieces? One for clang format, then one for io, and then app?

Sure


Max mode support for roi_align

🚀 The feature
Currently pytorch supports only avg mode, can we have support for max mode also, in torch==1.12.1
After this line
https://github.com/pytorch/vision/blob/fc838add3235d60feaea2251c1979fd253b26a77/torchvision/csrc/ops/cuda/roi_align_kernel.cu#L135
we can have
if mode is max than if (val > maxval) {
maxval = val;
} else output_val += val
Motivation, pitch
I am building a model which requires max mode support but due to lack of this feature in pytorch i am stuck
Alternatives
No response
Additional context
No response

@rit7897 I have already explained in https://github.com/pytorch/vision/issues/7542#issuecomment-1549469852 that this is out of scope for torchvision.


Filament 1.8.1 doesn't build on Ubuntu 20.04

Describe the bug
Filament 1.8.1 doesn't build on Ubuntu 20.04.
To Reproduce

I downloaded filament-1.8.1.tar.gz
I ran ./build.sh release
I get this error:

CMake Error at CMakeLists.txt:163 (message):
  Detected C compiler GNU is unsupported

Expected behavior
No errors.
Desktop (please complete the following information):

OS: Ubuntu 20.04 64-bit
GPU: AMD Radeon R9 Nano
Backend: Vulkan

Additional context

gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu2)
clang version 10.0.0-4ubuntu1
cmake version 3.16.3

CMakeOutput.log

See BUILDING.md, we require to build with clang.


Expose OnListenDetail and OnPanelLoadDetail custom events

This pull request exposes the OnListenDetail and OnPanelLoadDetail custom events in the package.

coverage: 100.0%. remained the same
when pulling 3607a3dd9ba2efb04c832c3449bd46eadd0aaa79 on expose_events
into cbce783d00d5f1c662a51e9f6af6035683ddaca6 on master.


Increase gatekeeper-audit memory request to 750Mi

This to solve OOM errors

In a environment i have seen gatekeeper-audit crashLoopback due to OOM.
From time to time it spikes:

That max I have seen is 705 so far, I set 750 to have some extra.


Fix stack overflow in Glob ordering

This issue was reported in https://github.com/sbt/sbt/issues/4970. The
isssu was that the glob ordering had an infinite loop in it when
a Root glob was compared to a FullFileGlob (which are created to convert
directory + fileFilter to Glob for legacy support). The reason this
hadn't been seen is because the play plugin is one of the few places
that creates sbt.internal.io.Source from single paths, which is from where
the Root globs (which are rarely a part of the watch globs) are coming.
This seems to be a side effect of play putting assets in the source
directory:
watchSources ++= {
((sourceDirectory in Compile).value ** "" --- (sourceDirectory in Assets).value ** "").get
},
is the setting that triggered the issue.

To validate this pull request against other sbt modules, please visit this link.


Unexpected Payload From Device

Describe the bug
I'm trying to (re) add a Tuya smart socket that was previously working with TL but which I removed to test with the native app. As it needed a reset, a new local key (and device id?) have been ascertained already via development portal. The socket otherwise works fine in the Tuya app. Three other identical sockets still work (although they were not removed in the same way). The device is a Nooie PU13 UK smart socket.
To Reproduce
Try adding the device via both cloud and manual flows, using all types of protocol (restarting HA each time to avoid the "Device Key" error. The cloud flow detects the socket (as the only one not already added) but fails after populating the manual form.
Expected behavior
For the socket to be added.
Additional context
This error originated from a custom integration.

Logger: custom_components.tuya_local.device
Source: custom_components/tuya_local/device.py:451
integration: Tuya Local (documentation, issues)
First occurred: 20:58:41 (1 occurrences)
Last logged: 20:58:41

Test protocol error 904: Unexpected Payload from Device

Interestingly the cloud flow populates the incorrect IP address. I'm not sure if this is related.

If the cloud flow populates an IP address, it is not incorrect.

Seems my static IPs were incorrect. No bug.


SceneGraph: Node update

The current implementation of parenting (in feature_sg_parenting), relies heavily on which nodes are updated first (parent's transform). This means that the current system of nodes updating (grouping them by type, rather than dependency) is not valid anymore. If a camera is linked to a MeshNode, the mesh node will always be updated after the camera. This causes jitters. I'd recommend updating all nodes by dependency, not type.

Updating of the constant buffers shouldn't be done by the type based loops indeed. Those should be prepacked by a scene graph update that start from the root node and goes down its children.

Fixed in feature_sg_parenting; node transforms are updated separately and starting from the root node (only going down a node if their transform has been modified).


docs: add GitHub Pages

Codecov Report

Merging #87 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #87   +/-   ##
=======================================
  Coverage   50.48%   50.48%
=======================================
  Files         124      124
  Lines        1769     1769
=======================================
  Hits          893      893
  Misses        876      876

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 ed590ca...6c59e20. Read the comment docs.


az vm create .. --ssh-key ~/.ssh/id_rsa.pub not working on Windows

Trying to use az in crossplat way. I want to use global SSH key in home directory.
cat ~/.ssh/id_rsa.pub # works in PowerShell
And then try to create VM on Windows with
az vm create -n test -g test --image UbuntuLTS --admin-username ops --ssh-key ~/.ssh/id_rsa.pub
Getting error:
At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug for usage details. {
  "status": "Failed",
  "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "DeploymentFailed",
        "message": "At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug for usage details.",
        "details": [
          {
            "code": "BadRequest",
            "message": "{\r\n  \"error\": {\r\n    \"code\": \"InvalidParameter\",\r\n    \"target\": \"linuxConfiguration.ssh.publicKeys.keyData\",\r\n    \"message\": \"The value of parameter linuxConfiguration.ssh.publicKeys.keyData is invalid.\"\r\n  }\r\n}"
          }
        ]
      }
    ]
  }
}

I understand root cause, and absolute path actually works fine, but most examples uses ~/.ssh/id_rsa.pub and so it might be beneficial to make such paths support in az tool or at least improve input validation.

@chaliy, so i assume you use --ssh-key ~/.ssh/id_rsa.pub is a regular windows command window?

@yugangw-msft yep. Actually I use Makefile that I run both Windows (powershell console) and Linux (bash console). I realize that ~/.ssh/id_rsa.pub is not native for Windows, but for example Powershell already supports this.

/cc:@johanste
We should go ahead to support expanding the ~, so that the same script can run cross platforms.


Changes to site selection functions

updates stand-alone site selection function to work with recent changes to the guided site selection algorithms, such as new criteria and input structure.

A general comment - it seems that the vast majority of these commits are one line changes which clutters up your commit history.
Could you please try to group similar changes into commits where/when appropriate and document as necessary in the commit description?

sure, I'll watch out for this

Is this ready for a final review/merge or do you need more time?

It's ready for final review, thanks :)

actually, sorry, one test not passing now- I'll fix this

Ok it should be good now, sorry I managed to leave some mcda variables with older names despite using find and replace

Ok it should be good now, sorry I managed to leave some mcda variables with older names despite using find and replace

VS Code has variable renaming. I would prefer you to use that instead of a blanket find and replace.

Ok it should be good now, sorry I managed to leave some mcda variables with older names despite using find and replace

VS Code has variable renaming. I would prefer you to use that instead of a blanket find and replace.

I'll check it out.


[Bug] "Edit file" is grayed out in Step 1

Summary
In step 1 of the tutorial, the "Edit file" option for "index.md" file is grayed out when creating a PR.
How to reproduce

Open the pull requests tab.
Click New pull request, for the branches to compare, select base: main and compare: start-markdown.
Click Create pull request.
In this pull request, go to the Files changed tab. We made an empty file index.md for you.
Select Edit file from the three dotted ... menu in the upper right corner of the file view on index.md.

It turns out that you need to push the Pull Request once more for the edit functionality to show. https://github.com/orgs/skills/discussions/354

mjbear's comment is how I found it.

@hadder94 Thank you for raising the flag on this! I'll get this triaged for the team to review ✨


Fix: Add aze-cli reset account to clear out current account fields (As this would really be handy while testing stuff)

@Created-for-a-purpose maybe you could prioritize implementin this first for branch: v-plaintext

Also, make sure to remove the Player.toml and ws_config.json just mentioning

I don't think entire Player.toml needs to be removed, just the game_id field.

Yeah for plaintext version i think reset might not make much sense. But for the encryption one it'll

@Created-for-a-purpose i think we should work on this, Like along with game field it should also delete the client store (for now) as that would be quite handy for testing.


PTR handling when ipv6addr field present is broken

I guess our Infoblox has ipv6 enabled and the Gem throws errors when looking for PTR records using ipv4 (which is used primarily).
test = Infoblox::Ptr.find(connection, {"ipv4addr" => "<IP_ADDRESS>"}).first
Infoblox::Error: Error: 400 { "Error": "AdmConProtoError: Unknown argument/field: 'ipv6addr'",
  "code": "Client.Ibap.Proto",
  "text": "Unknown argument/field: 'ipv6addr'"
}
	from /gems/infoblox-0.5.3/lib/infoblox/connection.rb:89:in `block in wrap'
	from /gems/infoblox-0.5.3/lib/infoblox/connection.rb:87:in `tap'
	from /gems/infoblox-0.5.3/lib/infoblox/connection.rb:87:in `wrap'
	from /gems/infoblox-0.5.3/lib/infoblox/connection.rb:16:in `get'
	from /gems/infoblox-0.5.3/lib/infoblox/resource.rb:110:in `find'
	from (irb):15
	from /ruby-2.3.1/bin/irb:11:in `<main>'

Hi @howels,
It looks to me like your version of Infoblox (which I'm guessing is <= 1.1) does not support the ipv6addr field for the Ptr record.  Can you confirm by looking at the WAPI documentation?  If that's the case, I'd entertain a pull request with conditional logic around using that field based on the WAPI_VERSION constant.

Hi @unclebilly,
We have Infoblox version 7.3.5-333643, which includes ipv6addr fields for the Ptr record, however only one of ipv4addr or ipv6addr can exist at a time according to the constructor. So I'm guessing that by searching Ptr records based on an ipv4addr the ipv6addr will never be set?
thanks
#Constructor for an IPv4 PTR object  my $bind_ptr = Infoblox::DNS::Record::PTR->new (          ipv4addr              => $ipv4addr,                                                         # Required          ptrdname              => $fqdn,                                                             # Required          comment               => $string,                                                           # Optional / Default is empty          disable               => "true" | "false"                                                   # Optional / Default "false"          extattrs              => { $string => $extattr, ... },                                      # Optional / Default is undefined          extensible_attributes => { $string => $string|$num, $string => [ $string|$num, ...], ... }, # Optional / Default is undefined          last_discovered       => $string,                                                           # Optional / Default is empty          name                  => $fqdn,                                                             # Optional          ttl                   => $num | undef,                                                      # Optional / Default is undefined          views                 => [$View1],                                                          # Optional / Default is "default" view          creator               => "DYNAMIC" | "STATIC",                                              # Optional / Default is "STATIC"          ddns_protected        => "true" | "false",                                                  # Optional / Default is "false"          ddns_principal        => $string,                                                           # Optional / Default is undefined          forbid_reclamation    => "true" | "false",                                                  # Optional / Default is "false"      );  #Constructor for an IPv6 PTR object  my $bind_ptr = Infoblox::DNS::Record::PTR->new (          ipv6addr              => $ipv6addr,                                                         # Required          ptrdname              => $fqdn,                                                             # Required          comment               => $string,                                                           # Optional / Default is empty          disable               => "true" | "false"                                                   # Optional / Default "false"          extattrs              => { $string => $extattr, ... },                                      # Optional / Default is undefined          extensible_attributes => { $string => $string|$num, $string => [ $string|$num, ...], ... }, # Optional / Default is undefined          name                  => $fqdn,                                                             # Optional          ttl                   => $nun | undef,                                                      # Optional / Default is undefined          views                 => [$View1],                                                          # Optional / Default is "default" view          creator               => "DYNAMIC" | "STATIC",                                              # Optional / Default is "STATIC"          ddns_protected        => "true" | "false",                                                  # Optional / Default is "false"          ddns_principal        => $string,                                                           # Optional / Default is undefined          forbid_reclamation    => "true" | "false",                                                  # Optional / Default is "false"      );

@howels I see - it appears that when requesting an IPv4 PTR record, one should only specify ipv4addr in the _return_fields, and vice-versa for an IPv6 PTR.  You can work around this problem by specifying the _return_fields, which is a comma-separated list of fields that you want to receive:
Infoblox::Ptr.find(connection,
  'ipv4addr~': '10.*', '_max_results': 1, '_return_fields': 'ipv4addr,ptrdname,name')

This gem tries to calculate the _return_fields automatically but in this case the logic is more complex than the general case.

As a side note, we are using WAPI version 2.0 and I do not have this problem at all - for instance, this code works fine for me:
Infoblox.wapi_version='2.0'
connection = Infoblox::Connection.new(...)
Infoblox::Ptr.find(connection, 'ipv4addr~' => '10.*', '_max_results' => 100).map(&:ipv6addr)

I released v1.0.1 just now, which should solve this problem without using the workaround above.  I'm going to release v2.0.0 shortly, which makes WAPI version 2 the default.  Might want to wait for that gem if you're interested in avoiding other strange bugs like this 😸


Make available token/receipt data for verification

There is a need to do server side verification of the purchases. We are currently only implementing the android platform in-app purchase, but the IAPResponse returned from the 'buy' method does not contain the necessary token or receipts needed for server side verification (eg. through https://developers.google.com/android-publisher/api-ref/purchases/products/get).

@FaisalAbid @ened would you be able to help with the android side?

I'm currently on a two week vacation - willing to help with the Android side when I get back around August 1st.

Also on vacation 🍻🍻 back on desk in 3 weeks

Should be working now for Android with https://github.com/JackAppDev/flutter_iap/commit/9fead94f456194a797944451057e68aaadc5c86b

Indeed. All's ok.