no service port 8443 found for service "karpenter" after migrating from cluster autoscaler

Description
Observed Behavior:
After following the instructions https://karpenter.sh/preview/getting-started/migrating-from-cas/, when trying to create the NodePool (as outlined here) I receive the error:
Error from server: error when creating "nodepool.yaml": conversion webhook for karpenter.sh/v1beta1, Kind=NodePool failed: Post "https://karpenter.kube-system.svc:8443/?timeout=30s": no service port 8443 found for service "karpenter"

Expected Behavior:
A working karpenter installation
Reproduction Steps (Please include YAML):
I followed the instructions at https://karpenter.sh/preview/getting-started/migrating-from-cas/ on an existing EKS cluster.
Versions:

Chart Version: 0.37.0
Kubernetes Version (kubectl version): 1.30.2

We have the exact same error. Unable to even remove Karpenter at this point either

The preview section of the Karpenter docs are used upcoming and pre-released version of Karpenter. I suggest you use the latest version of Karpetner which would be v0.37.0. https://karpenter.sh/v0.37. Specifically: https://karpenter.sh/v0.37/getting-started/migrating-from-cas/

Same problem here.

@fnmarquez What does page are you using?

Using the 0.37 helm chart we have webhook.enabled: false from the default values. These same errors only started showing up in our cluster after upgrading to 0.37 and applying the latest CRDs.
>  kubectl get nodeclaim -A
Error from server: conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post "https://karpenter.kube-system.svc:8443/?timeout=30s": no service port 8443 found for service "karpenter"

{"level":"ERROR","time":"2024-07-24T23:20:37.998Z","logger":"controller","message":"Reconciler error","commit":"490ef94","controller":"provisioner","error":"creating node claim, conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post \"https://karpenter.kube-system.svc:8443/?timeout=30s\": no service port 8443 found for service \"karpenter\"; creating node claim, conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post \"https://karpenter.kube-system.svc:8443/?timeout=30s\": no service port 8443 found for service \"karpenter\"","errorCauses":[{"error":"creating node claim, conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post \"https://karpenter.kube-system.svc:8443/?timeout=30s\": no service port 8443 found for service \"karpenter\""},{"error":"creating node claim, conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post \"https://karpenter.kube-system.svc:8443/?timeout=30s\": no service port 8443 found for service \"karpenter\""}]}
{"level":"ERROR","time":"2024-07-24T23:20:42.036Z","logger":"controller","message":"Reconciler error","commit":"490ef94","controller":"node.termination","controllerGroup":"","controllerKind":"Node","Node":{"name":"ip-1-2-3-4.ec2.internal"},"namespace":"","name":"ip-1-2-3-4.ec2.internal","reconcileID":"<ID>","error":"deleting nodeclaims, conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post \"https://karpenter.kube-system.svc:8443/?timeout=30s\": no service port 8443 found for service \"karpenter\""}

Once I flipped the webhook value to true and added the port configuration to our deployment, we started getting different errors for signed cert trust:
> kubectl get nodeclaim -A
Error from server: conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post "https://karpenter.kube-system.svc:8443/?timeout=30s": tls: failed to verify certificate: x509: certificate signed by unknown authority

Now I'm starting to go down the rabbit-hole of generating a self-signed cert and updating the caBundle base64-encoded PEM cert value in our validation.webhook.karpenter.k8s.aws ValidatingWebhookConfiguration to see if this will get us working again. So far I'm not confident that this is the right approach for resolving this issue but it's put a halt on our Karpenter upgrades until we can find a proper path forward.

We are also facing the same issue. Karpenter v0.37.0 was running fine in eks cluster 1.29. Post upgrading the cluster to 1.30, this issue started to occur. We were not using webhooks before too.
> kubectl get service -n kube-system karpenter
NAME        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
karpenter   ClusterIP   <IP_ADDRESS>   <none>        8000/TCP   43s

> kubectl logs -n kube-system -l app.kubernetes.io/name=karpenter
{"level":"ERROR","time":"2024-08-05T06:40:22.229Z","logger":"controller","message":"Reconciler error","commit":"490ef94","controller":"nodeclass.status","controllerGroup":"karpenter.k8s.aws","controllerKind":"EC2NodeClass","EC2NodeClass":{"name":"XXXX-ec2nodeclass"},"namespace":"","name":"XXX-ec2nodeclass","reconcileID":"81bd9baf-5b2d-4f26-af7b-XXXXX","error":"conversion webhook for karpenter.k8s.aws/v1beta1, Kind=EC2NodeClass failed: Post \"https://karpenter.kube-system.svc:8443/?timeout=30s\": no service port 8443 found for service \"karpenter\""}

I installed karpenter in a separate namespace and with a different service name than the default.
I can't configure the values for the webhook and it returns the error:
service: karpenter not found.
However, it is obvious that I did not create the service with this name in the kube-system namespace.
I am using version 0.37.1 and I installed karpenter with ArgoCD.

Ran into similar problems, we solved our problem by not using static CRDs that have hardcoded webhook items enabled.  We switched to the karpenter-crd helm chart and updated the webhook values.
See: https://karpenter.sh/preview/upgrading/upgrade-guide/#crd-upgrades

#6818

the simplest way to upgrade the karpenter is to delete all validating and mutatingwebhooks since karpenter .37.0+ does not uses any webhooks
kubectl delete validatingwebhookconfiguration validation.webhook.config.karpenter.sh validation.webhook.karpenter.sh
kubectl delete mutatingwebhookconfigurations defaulting.webhook.karpenter.k8s.aws

the simplest way to upgrade the karpenter is to delete all validating and mutatingwebhooks since karpenter .37.0+ does not uses any webhooks kubectl delete validatingwebhookconfiguration validation.webhook.config.karpenter.sh validation.webhook.karpenter.sh kubectl delete mutatingwebhookconfigurations defaulting.webhook.karpenter.k8s.aws

Not the easiest of upgrades if you're doing this through pipelines though. Having the CRD updated/replaced seems to be the better option right now.
The issue we faced was having tried to update to the newer version, you could no longer do anything due to the CRD looking for the mutating webhook, which looks like it's an issue on the listener of the server, where in actual fact it is nothing to do with it and you can end up down a rabbit hole.

we are also facing this same issue after upgrading from 0.32.1 to 0.37.2
We tried deleting the above mentioned webhooks and even tried the helm upgrade flag --reuse-values to try to force the new helm upgrade to not remove the svc port 8443.
While --reuse-values preserves the svc 8443 port it causes other strange side effects where the karpenter clusrterrole does not correctly upgrade with some permissions missing
It's also worth noting that the crd definitions for nodepool and ec2nodeclass also refer to the service in the kube-system namespace despite the v0.32.1 using the karpenter namespace
Would really appreciate a detailed working solution for this upgrade please

I am seeing similar issue when I try to Upgrade Karpenter to major version 1.0.0 from v0.36.2 .Karpnter argo sync status is broken but I do see pods running with below errors .
{"level":"ERROR","time":"2024-09-09T01:23:18.867Z","logger":"controller","message":"Reconciler error","commit":"490ef94","controller":"provisioner","error":"creating node claim, conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post "https://karpenter.kube-system.svc:8443/?timeout=30s\": service "karpenter" not found"}
{"level":"ERROR","time":"2024-09-09T01:23:19.314Z","logger":"controller","message":"Reconciler error","commit":"490ef94","controller":"nodeclass.hash","controllerGroup":"karpenter.k8s.aws","controllerKind":"EC2NodeClass","EC2NodeClass":{"name":"applications"},"namespace":"","name":"applications","reconcileID":"77f1ac75-ebe2-485f-8758-4e47730b47ac","error":"conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post "https://karpenter.kube-system.svc:8443/?timeout=30s\": service "karpenter" not found; conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post "https://karpenter.kube-system.svc:8443/?timeout=30s\": service "karpenter" not found","errorCauses":[{"error":"conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post "https://karpenter.kube-system.svc:8443/?timeout=30s\": service "karpenter" not found"},{"error":"conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post "https://karpenter.kube-system.svc:8443/?timeout=30s\": service "karpenter" not found"}]}

you need to update the namespace in  crd to kube-system

As @amohamedhey mentioned, if you have the conversion webhook enabled, you need to change namespace in there:
#...
  conversion:
    strategy: Webhook
    webhook:
      conversionReviewVersions:
        - v1beta1
        - v1
      clientConfig:
        service:
          name: karpenter
          namespace: kube-system
          port: 8443

There is an additional detail to the above that is important and causing these issues when using Argocd. And that is the fact that the service definition has the name variablized (https://github.com/aws/karpenter-provider-aws/blob/v0.37.0/charts/karpenter/templates/service.yaml#L4) BUT as shown above WHEN the conversion piece is included in the CRDs the service name is hardcoded (https://github.com/aws/karpenter-provider-aws/blob/v0.36.4/pkg/apis/crds/karpenter.sh_nodeclaims.yaml#L817). Thus when you change the template name in argocd (say when you are deploying to multiple clusters) the service name changes and then everything breaks due to the hardcoded crd name.
The same issue also exists for namespaces changes.
I am not sure how to bring this to the attention of the devs. Probably the easiest fix for this would be to not variablize the name of the k8s service for kapenter.

In fact, the idea of separating them is not a good one, I may be mistaken due to my lack of knowledge of the product.
However, adding the option to configure the webhook in the main chart is enough and each user can use it as they see fit.
Why this is not done?

Fix for the above is to add the below var to your vars file:
fullnameOverride: karpenter
``

2 things that fixed it for me were

pass this flag in the helm upgrade command
--set webhook.enabled=true
after downloading the CRD files for nodepool, ec2nodeclass and nodeclaims run a yq update to change the namespace to karpenter and then apply the updated yaml files
yq eval '.spec.conversion.webhook.clientConfig.service.namespace = "karpenter"'

2 things that fixed it for me were

pass this flag in the helm upgrade command
--set webhook.enabled=true
after downloading the CRD files for nodepool, ec2nodeclass and nodeclaims run a yq update to change the namespace to karpenter and then apply the updated yaml files
yq eval '.spec.conversion.webhook.clientConfig.service.namespace = "karpenter"'

What version do you use? did you upgraded to 1.x?

Didn't run into any of these issues when upgraded from 0.37.2-> 0.37.3 first before migrating to v1.0.0. We also got on to the latest patch version 1.0.2 as well.

@pheianox @amohamedhey @sudeepthisingi
I tried updating my version from 36.2 to 1.0.1, and I’m seeing the following error. Do we need to install the webhooks manually? Below are the errors I’m encountering:
perl
Copy code
{"level":"INFO","time":"2024-09-23T17:55:24.495Z","logger":"controller","message":"k8s.io/client-go@v0.30.1/tools/cache/reflector.go:232: failed to list *v1.ConfigMap: Unauthorized","commit":"490ef94"}
{"level":"ERROR","time":"2024-09-23T17:55:24.495Z","logger":"controller","message":"k8s.io/client-go@v0.30.1/tools/cache/reflector.go:232: Failed to watch *v1.ConfigMap: failed to list *v1.ConfigMap: Unauthorized","commit":"490ef94"}
I have a ClusterRole with the necessary permissions, but we're still seeing the error. Here is my ClusterRole:
yaml
Copy code
❯ kubectl get clusterrole karpenter -o yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
creationTimestamp: "2024-09-23T17:43:52Z"
labels:
app.kubernetes.io/instance: karpenter
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: karpenter
app.kubernetes.io/version: 0.37.0
argocd.argoproj.io/instance: eco-sandbox2.karpenter.karpenter
helm.sh/chart: karpenter-0.37.0
name: karpenter
resourceVersion: "157980964"
uid: d256470a-eac6-4b0f-bbba-d97a5b2d5f11
rules:

apiGroups:

karpenter.k8s.aws
resources:
ec2nodeclasses
verbs:
get
list
watch

apiGroups:

karpenter.k8s.aws
resources:
ec2nodeclasses
ec2nodeclasses/status
verbs:
patch
update

apiGroups:

admissionregistration.k8s.io
resources:
mutatingwebhookconfigurations
validatingwebhookconfigurations
verbs:
get
list
watch
Additionally, here is my conversion configuration in the CRDs:

yaml
Copy code
conversion:
strategy: Webhook
webhook:
conversionReviewVersions:
- v1beta1
- v1
clientConfig:
service:
name: karpenter
namespace: karpenter
port: 8443

I had the same issue. I solved this by using karpenter-crd chart and changed the serviceNamespace to the namespace that we installed karpenter.

I was able to get above issue resolved however seeing different issue now any idea on below error ?
name":"applications"},"namespace":"","name":"applications","reconcileID":"97c36b12-0155-416b-8bd1-32e0eca51423","error":"conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post "https://karpenter.kube-system.svc:8443/?timeout=30s\": tls: failed to verify certificate: x509: certificate signed by unknown authority; conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post "https://karpenter.kube-system.svc:8443/?timeout=30s\": tls: failed to verify certificate: x509: certificate signed by unknown authority","errorCauses":[{"error":"conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post "https://karpenter.kube-system.svc:8443/?timeout=30s\": tls: failed to verify certificate: x509: certificate signed by unknown authority"},{"error":"conversion webhook for karpenter.sh/v1beta1, Kind=NodeClaim failed: Post "https://karpenter.kube-system.svc:8443/?timeout=30s\": tls: failed to verify certificate: x509: certificate signed by unknown authority"}]}

I had the same issue. I solved this by using karpenter-crd chart and changed the serviceNamespace to the namespace that we installed karpenter.

I'm really hard to understand, why they made it default to kube-system? this change is make a lot of mess in here.

Ran into same conflict and it broke ArgoCD deployments.
Followed the upgrade instructions from the karpenter documentation
Upgraded from 0.34 to 0.34.7
ComparisonError
Failed to load live state: failed to get cluster info for "https://k8s-cluster": error synchronizing cache state : failed to sync cluster https://k8s-cluster: failed to load initial state of resource EC2NodeClass.karpenter.k8s.aws: conversion webhook for karpenter.k8s.aws/v1beta1, Kind=EC2NodeClass failed: Post "https://karpenter.kube-system.svc:8443/?timeout=30s": service "karpenter" not found

@nativo-mshivaswamy what svc do you see with kubectl get svc ?

Fix for the above is to add the below var to your vars file:
fullnameOverride: karpenter

thanks its help me to resolve my problem

Problem still persist if using kustomize and just karpenter chart with symlinked crds
`---
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: karpenter
namespace: flux-system
spec:
interval: 17m
type: oci
url: oci://public.ecr.aws/karpenter/
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: karpenter
namespace: karpenter
spec:
install:
createNamespace: true
crds: CreateReplace
upgrade:
crds: CreateReplace
interval: 9m
chart:
spec:
chart: karpenter
version: 1.0.6
sourceRef:
kind: HelmRepository
name: karpenter
namespace: flux-system
interval: 14m
values:
priorityClassName: system-cluster-critical
logLevel: info
controller:
resources:
requests:
cpu: 0.2
memory: 768Mi
limits:
cpu: 0.2
memory: 768Mi
settings:
clusterName: "${clusterName}"
defaultInstanceProfile: "KarpenterInstanceProfile-${clusterName}"
interruptionQueue: "KarpenterInterruptions-${clusterName}"
featureGates:
driftEnabled: true
serviceAccount:
create: false
name: karpenter-oidc
webhook:
enabled: true
fullnameOverride: karpenter`
All crds after upgrade has 'kube-system' namespace for karpenter service which leads to an error in both kustomizations and pod logs

Same after upgrade to 1.08, it just again replaced namespace to kube-system in all crds

Any solution?

WORKAROUND (This isn't pretty):
EKS, K8s , 1.30

Scale up an EKS node group or something to keep your pods supported while you rip everything Karpenter out.
Delete everything: CRs, CRDs, and the whole manifest.
Clean out all the webhooks
Find all webhookskubectl get validatingwebhookconfigurations
kubectl get mutatingwebhookconfigurations

If it says karpenter, delete it
Install karpenter in the kube-system namespace. Remember: if you are giving this pod an IAM role via a service account  annotation, you may need to check the OIDC config in your IAM role trust policy to allow kube-system:karpenter
After this I was able to get everything applied and working.
If you are like me using ARGOCD just so you know I installed my karpenter-crd chart separately in addition to my karpenter chart, that might also have them. Just worth noting.

I did run into this case where I made my old EC2NodeClass a phantom. Because I would have to raise an AWS ticket to remove it from ETCD, I just made a new one and updated my node pools.

kubectl edit crd ec2nodeclasses.karpenter.k8s.aws
kubectl edit crd nodepools.karpenter.sh
kubectl edit crd nodeclaims.karpenter.sh
set service.namespace -> karpenter installation namespace instead of default kube-system


Display facility group name instead of facility group ID

Current behavior
Currently Facility Group ID is displayed in the group drop-down in the system groups panel on Find Groups page.
Expected behavior

Steps to reproduce the issue

Go to /find-groups
In the left panel "System Groups" check the dropdown.
Currently Facility Group ID is displayed instead of Facility Group Name.

Can you handle fixing this bug by yourself?

[ ] YES
[ ] NO

Environment details

Browser:
OS:
Code Version:

Additional information

Verified and working fine in release v1.9.0. Hence, closing it.


[Feature Request] Hide columns in "lxc list"

Not sure if this is the place to do stuff like this but I couldn't find any other ways mentioned so I'm just gonna suggest it here :smile:
Feature Description
Allow users (either via a configuration or whatever) to hide columns from lxc list. Namely I would like to be able to hide the ipv6 field but making it something generic would allow users to adjust the standard output of lxc list to whatever information they want to see at a glance.
I regularly use terminals of limited width and while most of my containers don't have ipv6 addresses, some do which breaks the formatting of the list completely which makes it unreadable. I would much rather explicitly say "show me ipv6 information" than lxc list -c ns4tS to hide it
Steps to reproduce

Install LXD
Create a container
Have a terminal with a width than less ~130 characters
Be unable to read anything

The standard way of doing this in our client is through command aliases.
default-remote: local
remotes:
  images:
    addr: https://images.linuxcontainers.org
    public: true
    protocol: simplestreams
  local:
    addr: unix://
    public: false
  ubuntu:
    addr: https://cloud-images.ubuntu.com/releases
    public: true
    protocol: simplestreams
  ubuntu-daily:
    addr: https://cloud-images.ubuntu.com/daily
    public: true
    protocol: simplestreams
aliases:
  delete: delete -f
  ls: list -c nstS
  shell: exec @ARGS@ -- bash
  ubuntu: exec @ARGS@ -- sudo --login --user ubuntu

In my case this defines a "lxc ls" which uses "nstS" as its column layout but as you can see with the "delete" entry, you can also re-define one of the commands, so you could re-define "lxc list".

/facepalm
How did I not see that before? That's awesome, exactly what I need.
Consider this issue mute then :+1:

Where does this configuration go?


Give table test some love it sorely misses

Precache cmp opts, replace unnecessary diffs with equals.
Some string and formatting improvements.
/assign @whaught @dprotaso

I love this
/lgtm


Xen does not build on EFI systems, deprecated checks being performed

Describe the bug
Xen package does not build on EFI systems even while support was added in #60485 Add support for booting as Xen dom0 on EFI systems.
To Reproduce
Enable Xen in configuration.nix on a system with EFI boot:
virtualisation.xen.enable = true;

Expected behavior
Xen packages are built and enabled.
Log
Error message is given to the user as nix configuration fails to build.
error:
Failed assertions:
 - Xen currently does not support EFI boot

Related to #12225, failed assertion.
Notify maintainers

Xen maintainers @eelco @tstrobel @oxij
Metadata
Using nixos 21.05 with EFI boot
Maintainer information:
https://github.com/NixOS/nixpkgs/blob/78af98a068906cb88fa14c31bd703341562bf890/nixos/modules/virtualisation/xen-dom0.nix#L150-L157

Shouldn't this just work since #77421?

I'm interested in this working.  Is anyone working on it?  Can I help in some way?

@permezel i looked into this couple of months ago and it looked to me like it just didnt work because of assertions left over before xen supported efi but im not knowledgeable enough on the subject to confirm if that is the only thing needed to fix

I have removed the assertion, but I cannot activate.  There is a bug where if you are running on a non-Xen system, enable Xen, and attempt to activate, you get an error because Xen-stored (or something) service cannot read /proc/xen/.
If one ignores this, and reboots, at boot time, there is an error due to "xenfs" kmod not loading.
I find that my currently booted system has a "xenfs.ko.xz" in /run/booted-system/kernel-modules/lib/modules/6.1.61/kernel/drivers/xen/ but it fails to insert.  It depends on xen-privcmd which is also there and which also fails to load.
┌──(dap 💀 nuc10)-[/nix/store/shy6qfl778rsn3pk5kc6z80z1gmryxmp-nixos-system-nuc10-xen-23.11.20231102.dirty]
└─% sudo modprobe -v -v --show-depends xen-privcmd
modprobe: INFO: custom logging function 0x40cf40 registered
insmod /run/booted-system/kernel-modules/lib/modules/6.1.61/kernel/drivers/xen/xen-privcmd.ko.xz
modprobe: INFO: context 0xa8a4a0 released
┌──(dap 💀 nuc10)-[/nix/store/shy6qfl778rsn3pk5kc6z80z1gmryxmp-nixos-system-nuc10-xen-23.11.20231102.dirty]
└─% sudo insmod /run/booted-system/kernel-modules/lib/modules/6.1.61/kernel/drivers/xen/xen-privcmd.ko.xz
insmod: ERROR: could not insert module /run/booted-system/kernel-modules/lib/modules/6.1.61/kernel/drivers/xen/xen-privcmd.ko.xz: No such device

I am currently nixing (is that a verb?) on  nixpkgs:23.11 I cloned today (in order to fix the EFI assertion) so perhaps that is an issue.
I will see if I can checkout the 23.05 commit, but don't expect much luck there.
Xen seems to be pretty much dead, which is sad.  Yes, i know Qubes-OS uses it.  And boots with UEFI with no problems,
FWIW, here is an strace of an attempt to load the xen-privcmd.ko.xz:
┌──(dap 💀 nuc10)-[/nix/store/shy6qfl778rsn3pk5kc6z80z1gmryxmp-nixos-system-nuc10-xen-23.11.20231102.dirty]
└─% sudo strace insmod /run/booted-system/kernel-modules/lib/modules/6.1.61/kernel/drivers/xen/xen-privcmd.ko.xz
execve("/run/current-system/sw/bin/insmod", ["insmod", "/run/booted-system/kernel-module"...], 0x7ffd6aa3fbe8 /* 41 vars */) = 0
brk(NULL)                               = 0x22d1000
...
newfstatat(AT_FDCWD, "/run/booted-system/kernel-modules/lib/modules/6.1.61/kernel/drivers/xen/xen-privcmd.ko.xz", {st_mode=S_IFREG|0444, st_size=8372, ...}, 0) = 0
openat(AT_FDCWD, "/run/booted-system/kernel-modules/lib/modules/6.1.61/kernel/drivers/xen/xen-privcmd.ko.xz", O_RDONLY|O_CLOEXEC) = 3
read(3, "\3757zXZ\0", 6)                = 6
lseek(3, 0, SEEK_SET)                   = 0
read(3, "\3757zXZ\0\0\4\346\326\264F\2\0!\1\22\0\0\0#\270\207,\340\2147 s]\0?"..., 8192) = 8192
mmap(NULL, 2101248, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0619ae6000
read(3, "\252s\316\331=\365\366\340\307\37\2602I\177\30\274Z\332\275\3303\222\372\341\276r\3l\2110\336\307"..., 8192) = 180
read(3, "", 8192)                       = 0
munmap(0x7f0619ae6000, 2101248)         = 0
init_module(0x22dd000, 35896, "")       = -1 ENODEV (No such device)
write(2, "insmod: ERROR: could not insert "..., 128insmod: ERROR: could not insert module /run/booted-system/kernel-modules/lib/modules/6.1.61/kernel/drivers/xen/xen-privcmd.ko.xz) = 128
write(2, ": No such device\n", 17: No such device
)      = 17
close(3)                                = 0
exit_group(1)                           = ?
+++ exited with 1 +++

Nothing added to dmesg.

maybe add both to availableKernelModules and nixos-rebuild boot?

Had those set.  No difference.  On reflection, given that what I have so far does not appear to boot Xen first, I suspect the Xen kmods fail to load because they reject being loaded in a non-Xen-booted kernel.   Just checked the source.  Will only register the filesystem if xen_domain() returns non-zero, implying not running on bare metal.
I might get around to scrounging up the requisite  boot stages for the EFI boot and build myself a Xen kernel to load.  a few months ago I installed dom0 FreeBSD despite all the "xen can't boot EFI" history, and it came up without a hitch and ran, so that would be a good place to look as a reference.  Or I could just look at my Qubes-Os system....
-rw-r--r-- root/root   1020935 2023-10-10 10:00 boot/xen-4.14.6.gz
...
drwx------ root/root         0 1970-01-01 10:00 boot/efi/
drwx------ root/root         0 2023-08-03 19:52 boot/efi/EFI/
drwx------ root/root         0 2023-08-01 23:16 boot/efi/EFI/BOOT/
-rwx------ root/root<PHONE_NUMBER>-08-01 23:16 boot/efi/EFI/BOOT/BOOTX64.EFI
-rwx------ root/root     88296 2023-08-01 23:16 boot/efi/EFI/BOOT/fbx64.efi
-rwx------ root/root<PHONE_NUMBER>-08-01 23:16 boot/efi/EFI/BOOT/mmx64.efi
drwx------ root/root         0 2020-01-29 03:03 boot/efi/EFI/fedora/
drwx------ root/root         0 2023-10-26 08:31 boot/efi/EFI/qubes/
-rwx------ root/root   2555307 2023-10-10 10:00 boot/efi/EFI/qubes/xen.efi
drwx------ root/root         0 2019-04-18 10:00 boot/efi/EFI/qubes/fonts/
-rwx------ root/root   1870584 2019-04-18 10:00 boot/efi/EFI/qubes/grubx64.efi
-rwx------ root/root  36442839 2023-09-12 20:17 boot/efi/EFI/qubes/initramfs-6.4.7-1.qubes.fc32.x86_64.img
-rwx------ root/root     23489 2023-10-26 08:31 boot/efi/EFI/qubes/grub.cfg
-rwx------ root/root  36344314 2023-08-29 09:12 boot/efi/EFI/qubes/initramfs-6.3.9-1.qubes.fc32.x86_64.img
-rwx------ root/root   2555307 2023-10-10 10:00 boot/efi/EFI/qubes/xen-4.14.6.efi

Latest Xen for NixOs was 4.15.1.  I think they are up to 4.18 or so, so perhaps I will start with overlaying 4.18 just to get my feet wet with what is needed to build the Xen kernel.

are u using the xen kernel variant (pkgs.linuxPackages_xen_dom0)?

Was not.  Am now.  Makes no difference.  The /boot/* infrastructure is not being deployed.  In particular, the /nix/store/*-xen-4.15.1/boot/* is not being installed.  Need to boot Xen first, then load the dom0 kernel.
I'm sort of interested in getting to the bottom of this (ie: getting it to work) but there is so much other stuff to learn / play with / ...

yeah i get that - ill ask around a bit on the nixos discord to see if anyone there is a bit more knowledgeable on this

Great.  Thanks.

posted the question on there but nobody was answering :/
idk how else to help - xen feels like a deep rabbit hole to go down and i don't wanna do that right now
hopefully someone in the future responds with steps on how to solve this

anything i can do to help with this ?

Xen now works on EFI. Required compilation changes to xen.efi and a patch to the systemd-boot-builder.py script. #324693


Feature: Support store Policy - SQL scheme

What this PR does / why we need it
This is the first part of feature #158
This PR adds the schema in the ent to support the basic information to store Policy in the SQL Storage
Next:

#168

Which issue(s) this PR fixes (optional)
Related to #158
Fixes #167 and #169
Acceptance Criteria Met

[ ] Docs changes if needed
[x] Testing changes if needed
[ ] All workflow checks passing (automatically enforced)
[ ] All review conversations resolved (automatically enforced)
[x] DCO Sign-off

Note for reviewers:
The review can focus on the three first commits, the last commit are db generate and migrations

Hey @jkjell, @mikhailswift 👋
Let me know if you have further comments for this PR 😃
I plan to merge it tomorrow morning (CET) to unblock the next PR

https://github.com/in-toto/archivista/issues/235


chore: update std to 05-25

List.range' was moved to std and generalized which caused a little breakage

ext got better in places and seemingly just changed somehow in others so some proofs broke

several lemmas moved to std, some changed in this process

changed "an non" -> "a non"

bors d+

Since Std has now moved to the latest nightly, I've merged all these changes into https://github.com/leanprover-community/mathlib4/pull/4530 (where unfortunately I had duplicated some of this work; I mostly took your changes over mine where there were conflicts).


System.NotSupportedException: Member access failed to compile expression

Hi I update my xamarin project target api version from 19 to 27 before that it was working fine but  after that it crashed on sql query showing error System.NotSupportedException: Member access failed to compile expression.

I had null checks of Nullable<T>.
When i used Nullable<T>.HasValue and !Nullable<T>.HasValue, i got this error.
Changing this to Nullable<T> != null and Nullable<T> == null fixed this error.

Same thing here. Removing HasValue from query expression fix the problem.


Deprecate the  package

Describe the Bug
The ul package is on npm without any warning that the utility has been deprecated or dropped.
I thinks it's really confusing for people who search for this utility in the react-email components context.
Which package is affected (leave empty if unsure)
No response
Link to the code that reproduces this issue
No reproduction
To Reproduce
Search for <ul> in the GitHub repository or on npm.
Expected Behavior
Have a warning displayed that the package is deprecated and should not be used instead of the native HTML ul element
What's your node version? (if relevant)
No response

Hmm, yeah, we should do that. I also think there are a few others that are now unmaintained but are still normally published on npm. I'll take a look into deprecating these.

Done!


Task page no longer shows root files before you click in

When you open a task page, it looks like this:

You then have to click on the root link to actually get it to display the files:

I think this is a regression, it used to show them by default.  Looks like it's focusing on some non-existent subdirectory of the sandbox that has the task id?
cc @pennello

fixed by #1274


Fixed #26957 -- Corrected authenticate() docs regarding User.is_active.

Updated description and code example for default authenticate() method
in 'Authenticating users' section.
Updated code example for 'How to log a user in' section.

You can drop the [1.10.x] prefix in the commit message. That's automatically added when the commit is backported to the stable/1.10.x branch.

@timgraham Updated.
Regarding the prefix in the commit message.I read about it in docs on the line:

For commits to a branch, prefix the commit message with the branch name. For example: “[1.4.x] Fixed #xxxxx – Added support for mind reading.”

Does it mean this line is redundant, or it only applies to some specific case?

This commit is going to master ("an0o0nym wants to merge 1 commit into django:master"). The committer might backport it to the stable branch, but you don't need to add the prefix in the pull request.

Understood. Thanks!

merged in c412aaca735c7cc1c766b85c1512f9ff434ce63a, thanks!


added comments for foot.ini

There's actually no need for this. Still, if you could also add for the light theme I'll merge it right away.

added with the commit f26699210c20057f37c4f00301e4ebbdd9dbb4fc


[MM-29310] Migrate string-refs to functional ones: this.refs.video

Summary
change this.refs into React.createRef
Ticket Link
Fixes https://github.com/mattermost/mattermost-server/issues/15799
JIRA ticket: https://mattermost.atlassian.net/browse/MM-29310
Related Pull Requests
#5753

Hello @ShajithaMohammed,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

Is there a reason why we are not removing the source ref in this PR?
When this is done remember to remove the eslint-ignore line :P

Hi @nevyangelova . Thanks for the feedback. Is migrating source ref in scope for this ticket - mattermost/mattermost-server#15799
Also, As I see multiple ticket in place as a campaign to migrate string refs to functionals ones, I assume source ref will be addressed as part of some other ticket. Can you please double check?

@ShajithaMohammed they are, I just thought that it made sense to go about it on a file basis since its a simple change :P and we can link both tickets in the PR. But its ok to ship this as it is  as well. Up to you 🎉

Hi there @ShajithaMohammed
First of all: thanks for taking the time to fix the issue

Is migrating source ref in scope for this ticket - mattermost/mattermost-server#15799

It is in scope, tickets are created by file, and although it references the first ref (mostly due to using automation tools) but in the ticket it is specified:

Look for any other this.refs used in the file and repeat from the begining.

So it is not going to appear in any other issue as we are expecting to remove any string refs in any file in one go.


Document multisig RPC calls

Multisig has now been merged into master via https://github.com/monero-project/monero/pull/2134
Any RPC calls that have been created to support this feature should be documented in the wallet-rpc.md file.

If @coneiric who's updated the subaddresses related calls in #694 has no time to do it, i will include this in a full update after #712 is finished and #694 is merged.

@el00ruobuob was this issue resolved by #712 ?

No @erciccione there is more calls than those described along with subaddresses.
I still have to start refreshing the guide to write them down.

This will be solved in #854

+in progress

This issue is old and was discussed and closed on gitlab. Please reopen if you feel it's still relevant.


Add definition for undescore.js delay

What this does
Adds in a definition for the underscore delay function. Mirrored off of the existing defer and throttle definitions.
Notes/caveats

I attempted to add an $ExpectedError line to the underscore test with the following call:

_.delay(() => {}); // No delay specified
``
But I was getting an 'Unused suppression error. Not certain what I was doing wrong there.

- I would prefer to not use the `Array<any>` function here, and figure out a way to match the arguments to the function passed in, but that requires a little more thought.

looks like wait: number is optional
let greet = () => console.log("hello");
_.delay(greet) //it will be treat as setTimeout(greet, 0)

_.delay also return number EventId
can tighten the rules from void to number


Locally syncing the results of Async actions.. how does this work here?

Not sure how this works as I have not looked into details yet. The documentation says it will "...dispatch exactly the same actions dispatched in other tabs.."
Does this mean if one of my tab dispatches an async action (say fetching user data from backend).. the same action will be dispatched in all other tabs (requiring multiple api fetch calls to backend from all open tabs to receive the same user data)?? Would it not be more efficient to dispatch actions from only the source tab and on state change in that tab, sync the resulting state in other tabs ??

You are right, you can use blacklist or whitelist or predict to prevent that.

Let's say your async is called GET_USER_REQUEST, If you don't want this to be triggered in other tabs, you can put this inside your blacklist, or create a predicate function to block this actions.  After GET_USER_REQUEST is done, sync GET_USER_SUCCESS or GET_USER_FAILED in other tabs.

Well, of course, but that's kinda half the solution. Say, you trigger FETCH_USER_REQUEST from one tab but blacklist this action so it won't be dispatched in other tabs. In the source tab, it will change some state, say, it will make loading: true  (or clear existing data so as to expect new data)  for users.. this change won't be seen in other tabs as the responsible action FETCH_USER_REQUEST was not dispatched from those other tabs.
The question now is to sync actions, but not the application side effects. Could you provide a way to achieve this using this library?

This middleware doesn't support the use case that you mentioned. However, I think you may consider using redux-persist together with redux-persist-crosstab

Just found & realized that you can use the $isSync property flag in action object to prevent application side effects using your library too (e.g. in your saga, if the [action].$isSync is true, return the saga and do nothing). Just letting the future readers know :)

Yes, you are right, I will add this to the doc. Thanks. 👍


Move Config Readiness Bloc from Deployment to be By Cluster

Currently readiness: is by deployment: which applies the same criteria to each cluster.
It should be by cluster, since each cluster may have widely variant readiness criteria.
Move to be part of each cluster: config.

Per #392, if we add instead of move an (optional) readiness stanza to each cluster stanza, this becomes a non-breaking schema change.


ICU: various security vulnerabilities

Debian security advisory DSA 3187-1 lists several; e.g. we are probably vulnerable to CVE-2014-7940 because icu/default.nix hasn't been updated since the CVE was released.
(Is this the right way to keep track of security vulnerabilities?)

Yes, I think this is a good way to keep track of them.
An update pushed to staging.


ERROR: * What went wrong: Execution failed for task ':app:mergeReleaseNativeLibs'.

Description
I'm trying to generate aab and when I run the command to generate aab, I get the following error: * What went wrong:
Execution failed for task ':app:mergeReleaseNativeLibs'.
How to solve ?
Version
0.63.3
Output of npx react-native info
info Fetching system and libraries information...
System:
OS: Windows 10 10.0.22621
CPU: (8) x64 Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz
Memory: 2.20 GB / 7.83 GB
Binaries:
Node: 16.18.0 - C:\Program Files\nodejs\node.EXE
Yarn: 1.22.19 - C:\Program Files\nodejs\yarn.CMD
npm: 8.19.2 - C:\Program Files\nodejs\npm.CMD
Watchman: Not Found
SDKs:
Android SDK:
API Levels: 29, 30, 31, 33
Build Tools: 29.0.2, 30.0.2, 31.0.0, 33.0.0
System Images: android-29 | Google APIs Intel x86 Atom, android-29 | Google Play Intel x86 Atom, android-30 | Intel x86 Atom_64, android-30 | Google APIs Intel x86 Atom, android-31 | Android TV ARM 64 v8a, android-31 | Android TV Intel x86 Atom, android-31 | ARM 64 v8a, android-31 | Intel x86 Atom_64, android-31 | Google TV ARM 64 v8a, android-31 | Google TV Intel x86 Atom, android-31 | Google APIs ARM 64 v8a, android-31 | Google APIs Intel x86 Atom_64, android-31 | Google Play Intel x86 Atom_64, android-TiramisuPrivacySandbox | Google Play Intel x86 Atom_64
Android NDK: Not Found
Windows SDK: Not Found
IDEs:
Android Studio: AI-213.7172.25.2113.9123335
Visual Studio: 16.11.33027.164 (Visual Studio Community 2019)
Languages:
Java: 11.0.12
Python: 3.10.5
npmPackages:
@react-native-community/cli: Not Found
react: ^17.0.1 => 17.0.1
react-native: 0.63.3 => 0.63.3
react-native-windows: Not Found
npmGlobalPackages:
react-native: Not Found
Steps to reproduce
gradlew bundleRelease
Snack, code example, screenshot, or link to a repository
.

Have you tried adding this to the android/build.gradle
allprojects {
repositories {
exclusiveContent {
// We get React Native's Android binaries exclusively through npm,
// from a local Maven repo inside node_modules/react-native/.
// (The use of exclusiveContent prevents looking elsewhere like Maven Central
// and potentially getting a wrong version.)
filter {
includeGroup "com.facebook.react"
}
forRepository {
maven {
url "$rootDir/../node_modules/react-native/android"
}
}
}

Please use the issue template


Update Button Displayed for Non-existent Social Profile

Unable to Update Social Profile When No Profile is Present
Description:
There is an issue in the social profile section of the user profile page. Currently, the "Update" button is available even when no social profile is present. This is confusing, as it implies that the user can update a non-existent profile. The update functionality should only be accessible when a social profile is already present.
Expected Behavior:
The "Update" button should only be displayed when a social profile is present. If no profile is present, an "Add New Profile" button should be displayed instead.
Actual Behavior:
The "Update" button is displayed regardless of whether a social profile is present, leading to potential confusion for the user.
Screenshots:

Additional Context:
This issue can lead to a poor user experience as users might not understand what they are updating if no profile information is available.
Possible Solutions:

Implement a condition to check if a social profile exists before displaying the "Update" button.
Display an "Add New Profile" button when no profile is present, and the "Update" button when a profile is available.

Priority:
Medium
Labels:
bug

@ajshrmaofficial please assign this issue to me, As I already working it and  solve the issue , please assign it to me

@thestarsahil please assign it to me , as I already working on it


Oscillations in speed measurements

I have looked through other issues and while some are similar, none are exactly the same.
I am trying to measure two things on my stationary bike: speed and total distance. I have made an initial setup and while the readouts for angles and rotations seem to work fine, speed gives regular oscillations, like here:

and here:

The difference between the two is in the delay value: 10 ms and no delay.
I am using ESP32 now (Devkit v1), but it was similar with Arduino Pro Micro (which no longer works, unfortunately...).

Thanks for reporting this issue. Quite busy so it might take a few days before I can dive into it.

Can you post a minimal sketch that shows this effect?
Please be aware that the AS5600 is primary a position sensor and the library "uses the delta-position as speed".

The graph is from the example sketch on angular speed, the only change I have made was to the delay value. The example on angular speed RPM gives the same shape of the curve with different values.

OK, thanks
Can you add timestamps in micros() to the sketch and provide a CSV of 20 ms?

OK, I will do that tonight. However, I have found one possible cause: as I wrote my setup is somewhat temporary and when I have adjusted the position of the sensor, the curve definitely changed. That makes sense: if the magnet is not perfectly aligned to the center of rotation and the sensor to the magnet, the positions and rotations would be more or less correct, but the angular speed on different sections would vary... The problem is differences are really minimal, so it would have to be aligned to fractions of a milimeter.

mmm, interesting,
please continue to add your insights / observations. (I'll try to come back later this evening)

For the time being I had to take down my support, I need to come up with someting more stable (and possibly adjustable).

The difference between the two is in the delay value: 10 ms and no delay.

(thinking out loud)
The 10 ms delay picture shows  2 sinus waves / frequencies

slow = 2 waves in 500 samples
fast = ~42 waves in 500 samples
==> ratio is 1 to 21

The no delay picture shows

slow ~11 waves
fast ~ first slow wave has also around 21 waves, remainder look similar
==>  similar ratio

So independent of sampling frequency there seems to be a "harmonic 21x as fast"
Is there some gear or involved in your setup.
Is it possible to run the setup on battery only?
I often disconnect my laptop from wall socket to get rid of 50 Hz creeping in over USB power

The actual setup is as messy electrically as it can be, as it has, beside the ESP32 module, a game racing wheel connected to a computer, and a stationary bike braked electromagnetically, supplied from the mains, so to be honest, I only half expect it to work...
However, being aware of that, for testing I was just using the ESP32 module with my laptop with all the rest disconnected. I cannot recall whether the laptop was powered from the mains or from the battery, I will check it out when I fix the mounting support. But of course, it is still possible something in the vicinity is still giving the interference. Unfortunately, the bike is really stationary, moving it around is quite problematic.
Before I have taken down the support, I have tested it with another standalone ESP32 (Wemos LOLIN32 Lite) as I run out of Arduinos (it was the second Pro Micro that I have broken the connection off... :( ) and the results were similar, although I cannot be sure the curve had the exact same parameters.
The 'fast' waves sometimes appeared even when the magnet was stationary, but they often corrected themselves, like the chip was self-adjusting. However, for my purposes I can ignore them - if I convert the speed to the racing wheel accelerator/brake, it will be negligible. The 'slow' waves, unfortunately, are quite visible. I will see whether better placement of the magnet/sensor will correct that...

I have made a better support (but it still might be about a half of milimeter off in one direction, I am working on that) AND I have disconnected all nearby devices and run the test from the battery: the 'slow' wave seems to be gone. The 'fast' one remains, as can be seen here:
report.csv
I cannot figure out how the 'fast' wave relates to the rotation of the magnet...
And sorry for the wall of text above, I supose the reports are to be terse...

Sorry , glitch of my hand on the phone closed the issue for a second.

report.csv
Had a look at the samples 6000-6100 and noticed that there were only ~18 different values
3277,28
3515,63
3456,04
3155,96
3158,10
3513,24
3217,69
3453,70
3215,51
3275,06
3515,63
3456,04
3155,96
3158,10
3513,24
3217,69
3453,70
3215,51

Looking at the graph there are only about 5 values used in 100 samples.
smells like something systematic. (resolution of the math??)

The sample time is constant 1475 / 1476.
mmmm think think...
Can you show the code how you calculated the speed?
What is the unit of speed?  what does 3000 on the Y-axis represent?

It is still your own example code: AS5600_angular_speed.ino, the only change I did was to get rid of the delay.
I still cannot figure out how to calculate how the periodicity relates to the rotation. If it matched, it might still indicate misalignment of the center of rotation/magnet/sensor, right?

It is still your own example code: AS5600_angular_speed.ino, the only change I did was to get rid of the delay.

OK,
Analysis
So as5600.getAngularSpeed()  returns between 2500 and 3500 degrees per second, (a)
when measuring every 1456 microseconds = ~700 measurements per second. (b)
a ==> at full speed the wheel is rotating roughly 10x per second (c)
b + c ==> 70 measurements per rotation ~ about every 5 degrees (d)
The sensor measures 4096 steps for 360 degrees, (e)
d + e ==> so 5 degrees is ~60 steps. ==> 2 digits precision here
Proposal
Measure about 3x or 4x per rotation == 30x per second , should be fast enough to measure the speed of the wheel.
Then the wheel should make about 120 degrees between samples which increases to 4 digits.
Replace loop to something like this
void loop()
{
  static uint32_t last = 0;

  if (millis() - last >= 25)  // 25 .. 33
  {
    last = millis();
    Serial.print(last);
    Serial.print("\t");
    Serial.println(as5600.getAngularSpeed());
  }
}

I have some other tasks this evening, so to be continued tomorrow (or maybe late tonight)

With the changed code it still has the small spikes, but as I wrote, I can live with that - for my purposes such smal oscillations would be imperceptible.

With the changed code it still has the small spikes, but as I wrote, I can live with that - for my purposes such smal oscillations would be imperceptible.

OK, still I would like to understand the source of those fluctuations but no high prio.

Sure, I will keep on observing. Just let me know if you need something specific. I thought that maybe maintaining the speed at dffierent levels (4000, 2000, 1000) might give some clues concerning the math formulas?

Had some  thoughts about how the sensor might work inside.
I share them here to document them so they are not lost, but are NO proven facts just thoughts.
Warning: thinking out loud section,
In essence every sensor is analogous, and this sensor has to decide which of 4096 "sub-sensors" get the strongest magnetic signal. Possibly this signal is not always equally strong and there might be an interference between the 4096 positions and the peaks of the magnetic signal.
A second though is that the sensor might have some residual magnetic effect which differs per position. This could affect the absolute readings but I am far from sure how the signal would look like. This residual effect could even be "triggered" by the read process.

I thought there are only only four subsensors? If so, a bias in one of them (or magnet misalignment) could have significant impact on the readouts.

I thought there are only only four subsensors? If so, a bias in one of them (or magnet misalignment) could have significant impact on the readouts.

I should reread the datasheet if it mentions inner structure. I do not recall the details. But a bias in one of 4 or one in N , how would it create a roughly symmetrical sinus?
The frequency of this (fast) sinus should equal (assumption) or be an multiple (1 .. n) of the rotational frequency. IF it is caused by the rotation as every rotation same happens again.
Mmm too early, need coffee :)

You're right, the datasheet shows 4 hall sensors
It also describes that the displacement of the rotational axis should not be more than 0.25 mm which is pretty precise..

I missed this one... Yes, you are right, that is quite precise, I doubt I can reach that accuracy in my setup.

I doubt I can reach that accuracy in my setup.

maybe you need to use a small gearbox,
or use a different sensor. How about using an infrared beam and photocell?
Count the spokes of the wheel passing with interrupts.
Every spoke passing ==> 5 degrees have passed (72 spokes in a wheel IIRC)
From that one could calculate the distance and speed pretty straightforward.
The interrupts occur every few milliseconds so with the micros() it is possible to see variation in the speed and e.g. difference between left and right leg.
Advantage is that alignment with the IR sensor is a no-brainer.
Distance precision is 5 degrees which translates to ~2.5 cm (1 inch) == 1/72th of the circumference of the wheel.
idea?

@JabberwockPL
If your bike is at rest, no movement  do you see the small fluctuations too?
Had some time to play with an AS5600L and it showed random noise if any, nothing close to a sine.

Sometimes it had small noise after activation, but then it corrected itself to zero. I suspect the chip might autocorrect itself.
Also, I have decided to move to another solution, similar to what you describe. I still have the chip installed, but probably not for long, so I guess the issue might be closed.
But I am sure I will use the sensor in other ways...

OK, lets close the issue, if needed it can always be reopened, (or a new issue if a new problem arises)
Let me hear how your new solution works - maybe in this thread as it might be interesting for other people too.


feat: Adding support for global arrays

Related issue(s)
Resolves https://github.com/noir-lang/noir/issues/439. Done in collaboration and with the guidance of @vezenovm :-)
Description
Summary of changes
There are 3 components of the change:

parser --- in global_type_annotation we need to expand the set of allowed types to include the array type and we also expand the global_declaration function to take any expression.
resolver --- we change resolve_global_let to (1) match against literals, (2a) if that literal is ArrayLiteral::Standard, check that each element of the array is also literal, (2b) if that literal is ArrayLiteral::Repeated, check that the repeated type is a literal. This means that resolve_global_let now returns a Vec<ResolverError> in the same way that resolve_struct_fields and resolve_function do. These errors are then propagated up to the def collected
def_collector --- in resolve_globals we now check the return errors from resolve_global_let, if there are errors, we extend the set of current errors, thus resolve_globals now takes a new param errors: &mut Vec<FileDiagnostic> that is passed in during collect.

Dependency additions / changes
N/A
Test additions / changes
We test this in crates/nargo/tests/test_data/global_consts/src/main.nr, where we define a number of bad globals. Importantly, we needed to test that a global array can not have global elements as brought up by @jfecher in https://github.com/noir-lang/noir/issues/439#issuecomment-1403927561.
Valid global arrays
// Global arrays that match the input arrays c and d.
global GlobalC: [Field; 3] = [3, 3, 3];
global GlobalD: [Field; 5] = [5, 5, 5, 5, 5];

successfully compile.
The following invalid globals, if uncommented, will result in compilation errors.
// global badGlobal = if M == 32 {
//      constrain 1 == 1;
// };

// global badGlobal2 = for i in 0..1 {
//      constrain i == 0;
// };

// global BAD = 10;
// global A = [BAD, ELEMS];
// global ELEMS = 11;

When these are uncommented, the following compiler error is shown to the user, as expected.
error: expected globals can only be array, bool, integer or field literals got if (plain::M == 32) {
    constrain (1 == 1)
}
   ┌─ /Users/michaelneuder/github/noir2/crates/nargo/tests/test_data/global_consts/src/main.nr:14:20
   │
14 │   global badGlobal = if M == 32 {
   │ ╭────────────────────'
15 │ │      constrain 1 == 1;
16 │ │ };
   │ ╰─'

error: expected globals can only be array, bool, integer or field literals got for i in 0 .. 1 {
    constrain (plain::i == 0)
}
   ┌─ /Users/michaelneuder/github/noir2/crates/nargo/tests/test_data/global_consts/src/main.nr:18:21
   │
18 │   global badGlobal2 = for i in 0..1 {
   │ ╭─────────────────────'
19 │ │      constrain i == 0;
20 │ │ };
   │ ╰─'

error: expected global array elements can only be array, bool, integer or field literals got plain::BAD
   ┌─ /Users/michaelneuder/github/noir2/crates/nargo/tests/test_data/global_consts/src/main.nr:23:12
   │
23 │ global A = [BAD, ELEMS];
   │            ------------

error: expected global array elements can only be array, bool, integer or field literals got plain::ELEMS
   ┌─ /Users/michaelneuder/github/noir2/crates/nargo/tests/test_data/global_consts/src/main.nr:23:12
   │
23 │ global A = [BAD, ELEMS];
   │            ------------

error: aborting due to 4 previous errors

Checklist

[x] I have tested the changes locally.
[x] I have formatted the changes with Prettier and/or cargo fmt with default settings.
[x] I have linked this PR to the issue(s) that it resolves.
[x] I have reviewed the changes on GitHub, line by line.
[x] I have ensured all changes are covered in the description.
[x] This PR requires documentation updates when merged.

I've merged master back into this branch to address the merge conflicts which have popped up over time. Thanks for your work on this @michaelneuder!
resolve_globals now uses resolver.take_errors() to access the errors encountered in resolve_global_let so I've removed the errors from the return values.

May need to test this PR with some of the aztec 3 work. In particular we started allowing constructor expressions as globals as well but did not check them thoroughly since we wanted to allow function calls within for convenience. We'll need to add constructor expressions to this check and see if there's any code that breaks once they get restricted a bit by this check.

superceded by #1054


Update the documentation on events.

Remove type as a field in events, as we usually use event (and event is always present).
Make some events more consistent.
This also updates documentation in typedef.js and object.js.

@jbeezley Is there a better way to show the data that is passed to an event?  Currently, the geo.event lists some properties at the top, then each event lists properties specific to that event; it may not be obvious to the new user that the event and geo properties always exist.
Also, the geo.event.feature events should reference the main events, but I'm not sure how to get jsdoc to create the appropriate link.

Codecov Report

Merging #704 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #704      +/-   ##
==========================================
- Coverage   95.28%   95.28%   -0.01%
==========================================
  Files          83       83
  Lines        8988     8985       -3
==========================================
- Hits         8564     8561       -3
  Misses        424      424

Impacted Files
Coverage Δ

src/mapInteractor.js
96.12% <ø> (ø)
:arrow_up:

src/map.js
98.78% <ø> (ø)
:arrow_up:

src/event.js
100% <ø> (ø)
:arrow_up:

src/object.js
90.76% <ø> (ø)
:arrow_up:

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 e57e648...777eebf. Read the comment docs.

I don't have any specific advice unfortunately.  I suspect we will need to customize the template or create a jsdoc plugin.  I can spend some time on it in a different PR.

This is a question for future documentation work:  The map class and some features, such as contour, take an object with many parameters.  I think these really should be specified using @typedef (currently, in map.js it is just listed as a long set of options in the class specification)?   If we do so, should the typedefs be moved to typedef.js or left in the appropriate feature?  In the map, this means that the class specification would just be @param {geo.mapSpec} arg The map specification object.


Correcting tags in content

Coming from https://github.com/aaronpk/XRay/issues/102
It looks like mf2 corrects the HTML when there's a missing closing tag of a tag, which messes up the content.
Payload available on the other issue.
To reproduce: paste the payload in http://pin13.net/mf2/ you should get 3 items, instead you'll have two and you will see that there is a closing tag for the first html->content property.

Issue is quite unclear, but when I copy your example HTML in a browser, it cuts the page at the <script> tag.  What exactly do you think php-mf2 is "correcting" wrongly?

Issue is quite unclear, but when I copy your example HTML in a browser, it cuts the page at the <script> tag.  What exactly do you think php-mf2 is "correcting" wrongly?

Updated the summary with steps to reproduce.

Updated the summary with steps to reproduce.

In my browser, the script tag takes over the rest of the page if I copy your example code into a html file, and it does not show 3 posts.
I do agree that the php-mf2 output is kind of weird, but to me this looks like broken HTML from the start?

In my browser, the script tag takes over the rest of the page if I copy your example code into a html file, and it does not show 3 posts.
I do agree that the php-mf2 output is kind of weird, but to me this looks like broken HTML from the start?

but to me this looks like broken HTML from the start

The original input came from granary which snarfed has fixed, so the source will be fine from that end.
The question then is indeed: should this library try and correct broken input or not. It seems like it does at the moment as there's a closing script tag at the end when parsing. I haven't looked closely what exactly goes on underneath.
It might be good to just document the behavior that 'broken' input will fail in parsing.

but to me this looks like broken HTML from the start

The original input came from granary which snarfed has fixed, so the source will be fine from that end.
The question then is indeed: should this library try and correct broken input or not. It seems like it does at the moment as there's a closing script tag at the end when parsing. I haven't looked closely what exactly goes on underneath.
It might be good to just document the behavior that 'broken' input will fail in parsing.

It's not so much the parser attempting to "fix" anything as that being the correct result of parsing your HTML document (which it does, using a HTML parser). If you put the HTML in a browser and look at the DOM in devtools, you see the same thing.

It's not so much the parser attempting to "fix" anything as that being the correct result of parsing your HTML document (which it does, using a HTML parser). If you put the HTML in a browser and look at the DOM in devtools, you see the same thing.

Talked this through a bit with sknebel on IRC.
This 'problem' is by design, so there shouldn't be anything fixed here.
Sorry for the noise :)

Talked this through a bit with sknebel on IRC.
This 'problem' is by design, so there shouldn't be anything fixed here.
Sorry for the noise :)

https://chat.indieweb.org/dev/2021-01-12 is the chatlog for reference

https://chat.indieweb.org/dev/2021-01-12 is the chatlog for reference


timeout options

There are no timeout options
neither for standard mode nor force_curl mode
php.ini has default_socket_timeout => 60 option, but sometimes getList hangs forever
strace shows nothing but "read(0," (or something similiar) in standard mode and in curl mode there is infinite poll/timeout loop

strace in curl mode
Process 23835 attached
restart_syscall(<... resuming interrupted call ...>) = 0
rt_sigaction(SIGPIPE, NULL, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1d32dffc90}, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1d32dffc90}, NULL, 8) = 0
poll([{fd=8, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
rt_sigaction(SIGPIPE, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1d32dffc90}, NULL, 8) = 0
poll([{fd=8, events=POLLIN}], 1, 1000)  = 0 (Timeout)
rt_sigaction(SIGPIPE, NULL, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1d32dffc90}, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1d32dffc90}, NULL, 8) = 0
poll([{fd=8, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
rt_sigaction(SIGPIPE, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1d32dffc90}, NULL, 8) = 0
poll([{fd=8, events=POLLIN}], 1, 1000)  = 0 (Timeout)
rt_sigaction(SIGPIPE, NULL, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1d32dffc90}, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1d32dffc90}, NULL, 8) = 0
poll([{fd=8, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
rt_sigaction(SIGPIPE, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1d32dffc90}, NULL, 8) = 0
poll([{fd=8, events=POLLIN}], 1, 1000)  = 0 (Timeout)
rt_sigaction(SIGPIPE, NULL, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1d32dffc90}, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1d32dffc90}, NULL, 8) = 0
poll([{fd=8, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
rt_sigaction(SIGPIPE, {SIG_IGN, [PIPE], SA_RESTORER|SA_RESTART, 0x7f1d32dffc90}, NULL, 8) = 0
poll([{fd=8, events=POLLIN}], 1, 1000^CProcess 23835 detached

Will try to add configuration for this sometime soon. If you have code snippets to set timeout for each method, this will accelerate things.

Do you have example of an API call that takes a lot of time, so I can test the timeout against it?

Hey - if you want to checkout the dev branch and see if the new timeout feature works as expected?

I do 312 getList(yahoo) requests every 2 hours to check for new tickers and update existing
just want to keep my local db up-to-date
for last three weeks there were 3-4 processes every day that hangs as described above
problem is definitely in the quandl api, but i need a method to detect it and restart the process
will check and report in few days

@brmn - is the new dev branch solving your problem?

Closing this ticket. We can revisit if there is interest.


Styling changes + change in test results table + code alignment

Sample of success:

Sample of failure:

Would also have been nice to include a before image just so I didn't have to go hunting to figure out what it looked like before ;)

Also please include a third color for unstable

I updated to use same styling in artifacts and maven artifacts. However, I couldn't test the maven artifacts output because I don't have a project that uses that.
I added the test age as well.

Just for your own info http://github.com/jglick/simple-maven-project-with-tests


[Spike] AKS - Research on Azure Kubernetes Network Policies

Is your feature request related to a problem? Please describe.
We don't have any information about Azure AKS network policies but we want to have knowledge about this prior to implementation of Azure Kubernetes Network Policies feature.
Describe the solution you'd like
We want to have some design doc that shows how to use Network Policies in AKS and configure them as close as it possible to the solution that is available on EKS on AWS and on prem deployments.
Describe alternatives you've considered
None.
Additional context
We want only to consider Network Plugins and Policies that are supported by the cloud providers.

No longer valid


Improving text rendering

Instead of reinventing the wheel, we should be using existing solutions. Especially important to me is using HarfBuzz for text shaping (rendering glyphs correctly in all languages, such as direction, accents, kerning, etc.). See https://github.com/grisha/hbshape for an example of a port.
See https://harfbuzz.github.io/ch01s03.html for what HarfBuzz does, and https://harfbuzz.github.io/what-harfbuzz-doesnt-do.html for what it doesn't do. The latter is what we need to implement here:

Line-break, word break, justification: Knuths algorithm. Note that "boxes" can also be a path (not just text) to support inline images, and that the text box boundaries may not be rectangular but a path (hard?)
Breaking text in pieces of different font faces, we already do this
Solving bidirectionality, no idea, probably use https://github.com/fribidi/fribidi
Rendering, we already do this but the rasterizer is slow! Why not use FreeType?

For an example see https://github.com/anoek/ex-sdl-cairo-freetype-harfbuzz/. (NB: they don't use FreeType for rasterization?)
Additionally, but with less priority, I'd like to support the TCC file format (how does that pan out with fc-match?). And finally I'd like to support OpenGL rendering using Blinn and Loop algorithm or something similar (see https://lambdacube3d.wordpress.com/2014/11/12/playing-around-with-font-rendering/ as well). This needs proper tesselation of paths which is not that trivial. Low priority.

Instead of reinventing the wheel, we should be using existing solutions. Especially important to me is using HarfBuzz for text shaping (rendering glyphs correctly in all languages, such as direction, accents, kerning, etc.). See https://github.com/grisha/hbshape for an example of a port.

@tdewolff you may also be interested in checking out github.com/npillmayer/gotype/engine/text/textshaping for text rendering using HarfBuzz.
In general, I think both you and @npillmayer are working on a similar set of problems and you may consider getting in touch and discuss how to best collaborate your efforts, where applicable. I feel really happy and grateful to have stumbled on both your work today Taco, and the work of Norbert. You are both a huge source of inspiration as I'm just starting to get into type-setting and reading up on this domain with excitement.
Wish you a great start of the summer!
With kindness,
Robin Eklind

Hi Robin,
hi Taco,
I am well aware of Taco’s great work and integrating Canvas is on my todo-list. I have a quick-and-dirty canvas type in place, which was to be replaced as soon as someone would take it on him/her to implement some Cairo-style functionality in Go. Taco’s project is actually far more comprehensive than I could hope to find.
The Harfbuzz-adapter I wrote is a quick shot, done and „tested“ in a couple of hours. I just wanted to prove that using HB from Go is doable, and it turned out to be fairly straightforward. If someone would be willing to create a standalone module, i.e. a generic HB interface in Go, I think that would be something to benefit the whole Golang community. I know it’s always a hard decision to include non-Go code, but HB is such a well established standard and solves such a huge amount of challenges for more exotic languages, that rolling your one is not really a feasible option.  LuaTeX does it (while XeTeX relies on HB), and it’s… complex. There’s a project by grisha (https://github.com/grisha/hbshape) as a possible starting point.
Currently I’m not working on the output layer, but rather concentrate on the higher abstraction layers: HTML/CSS layout, Unicode annexes / text layout, etc.  I’ll re-visit the output layer later this year, I guess.
That said, thanks for pointing me to Taco and Canvas, Robin!  You’re right, canvas and gotype (not the final name) are complementing projects. Taco is obviously high-energy on his OpenSource projects, while I’m pursuing a more chilled out stop-and-go approach, but nevertheless I am looking forward to rebase my output layer onto Canvas.
All the best,
—Norbert

Am 24.05.2020 um 01:25 schrieb Robin Eklind<EMAIL_ADDRESS>Instead of reinventing the wheel, we should be using existing solutions. Especially important to me is using HarfBuzz for text shaping (rendering glyphs correctly in all languages, such as direction, accents, kerning, etc.). See https://github.com/grisha/hbshape for an example of a port.
@tdewolff you may also be interested in checking out github.com/npillmayer/gotype/engine/text/textshaping for text rendering using HarfBuzz.
In general, I think both you and @npillmayer are working on a similar set of problems and you may consider getting in touch and discuss how to best collaborate your efforts, where applicable. I feel really happy and grateful to have stumbled on both your work today Taco, and the work of Norbert. You are both a huge source of inspiration as I'm just starting to get into type-setting and reading up on this domain with excitement.
Wish you a great start of the summer!
With kindness,
Robin Eklind
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

@mewmew Thank you for bringing this up! The textshaping repository is definitely interesting and will help. I think people like you are needed more in the community, to bring together developers and save time!
@npillmayer Nice work on gotype! I was thinking along the same lines with Harfbuzz that it'd be a lot of work for nothing to reimplement. Given that Harfbuzz is pure C is really nice, I think we shouldn't be afraid of using a little C to use a industry-standard approach to text visualization. In the same line of thought I was considering adding fribidi, but I'll see how it goes. I might get started with your port of Harfbuzz and work it out a little further (in whichever repo it might end up). I'd be glad to work together with you on this!
I might seem high-energy on my open source projects, but I'm pretty much balancing between a job and relationship too ;-), though the quarantaine has given me extra time I'd otherwise spend socializing haha. Though I really need more hands on canvas to make it better. Anyways, I can always help you out with any problem you encounter while using canvas, as edge-cases may need to get worked on!
Keep it up!

@mewmew Thank you for bringing this up! The textshaping repository is definitely interesting and will help. I think people like you are needed more in the community, to bring together developers and save time!

More than happy to :)

In the same line of thought I was considering adding fribidi, but I'll see how it goes.

@tdewolff, for bidi you may also look into golang.org/x/text/unicode/bidi. It seems bidi.ReverseString could be used in place of the visual_str return value of fribidi_log2vis. However, fribidi still seems more powerful as it also handles visual positions of characters, so x/text/unicode/bidi only covers a subset of the functionality.

I've gone ahead and implemented bindings for HarfBuzz and FriBidi, based on the implementation from @npillmayer, thanks a lot! It's currently in the develop branch and will be tracked in the roadmap in #74

Very exciting to follow this development! Glad you both continue to facilitate and build upon each others work :)


try / catch not working with 'normal errors' like null pointer exceptions

Describe the bug
It looks like try / catches only work with explicit 'throws', and not normal errors (too big allocation, out of memory, null pointer exceptions)
To Reproduce
Steps to reproduce the behavior:

Go to https://makecode.com/_7J3PqJbPUDvU
run game (hardware / sim have same behavior)
See it works; comment out line 3 (throw "error!")
run game
See error

Expected behavior
Ideally it'd be nice for catch to support these, but if not we should probably add it back in as a caveat in https://makecode.com/language
Additional context
let mySprite: Sprite;
try {
    // throw "error!"


New NotEmptyMap type

Description
Introduce a new NotEmptyMap type representing maps that contain at least one pair of elements.
Checklist

[ ] Create the type and its builders.
[ ] Implement positional access operations.
[ ] Implement conversions.
[ ] Refactor.
[ ] Update Work in progress section in changelog.

Here's an example of what we could do with this type:
val map: NotEmptyMap<String, Int> = notEmptyMapOf("a" to 1, "b" to 2, "c" to 3)
println(map.head) // (a, 1)
println(map) // [(a, 1), (b, 2), (c, 3)]

Done.


[FLINK-10008] [table] Improve the LOG function in Table to support bases less than 1

What is the purpose of the change
Improve the LOG function in Table to support bases less than 1
Brief change log
change implementation of Log function
Verifying this change
This change added tests and can be verified as follows:
new test cases of ScalarFunctionTest
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency):  no
The public API, i.e., is any changed class annotated with @Public(Evolving):  no
The serializers: no
The runtime per-record code paths (performance sensitive):  no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper:  no
The S3 file system connector:  no

Documentation

Does this pull request introduce a new feature?  no
If yes, how is the feature documented? no

Thanks for the PR @Xpray. For future PRs could you name them [FLINK-XXXX] [table] Issue title. This makes it easier for committers to search in the long list of PRs for table-related ones.

@xccui, I've updated the PR.
Best.

It's strange that I rebase the master and modified the sql.md, but it always shows a conflict.


Log more DefaultZooKeeperClient.deleteRecursive()

@spotify/helios-team

Current coverage is 47.08%

Merging #859 into master will decrease coverage by -0.01% as of 577ba7f

@@            master    #859   diff @@
======================================
  Files          267     267
  Stmts        12558   12565     +7
  Branches      1601    1601
  Methods          0       0
======================================
+ Hit           5914    5916     +2
- Partial        451     453     +2
- Missed        6193    6196     +3

Review entire Coverage Diff as of 577ba7f

Powered by Codecov. Updated on successful CI builds.


Implement COMDAT support

Fixes #239
I'll add tests before merging.
@carlokok Are you able to review this please?

One quirk of this API is that for COFF it won't automatically add the section symbols, so you need to call section_symbol. It gives an error if you fail to do this though.

API and implementation wise it looks perfect. If you want me, I can try it later this week.
I saw wasm as "unsupported", I'm not sure if it's worth doing, but it does seem wasm has comdat support: https://github.com/WebAssembly/tool-conventions/blob/master/Linking.md

Thanks for the Wasm link. I had a quick look and the problem with it will be that it uses symbols, rather than sections, so it's not going to fit the read API. I guess we could add an iterator for symbols in the comdat too, but I'll leave that for now.
I'm going to merge this, but I'll hold off on doing a release until you've used it.


部署craned日志报错failed to wait for hpa-observer-controller caches to sync: timed out waiting for cache to be synced

Describe the bug
E0819 01:47:57.732189       1 manager.go:444] "problem running crane manager" err="failed to wait for hpa-observer-controller caches to sync: timed out waiting for cache to be synced"
F0819 01:47:57.732243       1 manager.go:445] failed to wait for hpa-observer-controller caches to sync: timed out waiting for cache to be synced
Reproduce steps
Expected behavior
Screenshots
Environment (please complete the following information):

K8S Version: [1.27.1]
Crane Version: [0.11.0]
Browser [chrome]

Please use images from this PR:https://github.com/gocrane/crane/pull/839

Please use images from this PR:#839

为什么pr不合并

为什么 k8s 1.21 也报这个错？换了也不行


How to use URLBuilder with Sparse Fields

In Devour documentation I can't find way to add Sparse Fields to my request. I tried something like this:
jsonApi.all(teams).get({fields: '[team]=name'})
but this generate http address:
http://apiurl/teams/?fields=[team]=name instead of  http://apiurl/teams/?fields[team]=name
This additional '=' in url (between fields and [team]) isn't according with JsonApi specification. How can I generate proper arguments in url as below:
http://apiurl/teams/?fields[team]=name

I figured out how to generate correct request:
jsonApi.all(teams).get({fields:{team:  'name'}})


How to add a CSS spinner

We don't currently have a great loading indicator when long-running computations cause components to take a long time to run. A user asked for a simple CSS spinner similar to shinyloaders, and we put together a simple example of how to get this sort of behaviour.
The basic pattern is to define a function which wraps children in a div, and then use CSS to add a spinner when that class is recalculating.

@gshotwell Thanks for adding this example. However, when I add this spinner to an interactive plot, https://shiny.posit.co/py/docs/outputs.html#interactive-plots-1 for example, it seems to completely interfere with the interactivity of the plot. For example hovering gives no information in the plotly plot. Same with altair. Do you have suggestions on how to update this to not interfere  with interactive plots?

It also interferes with click events on a table

In case it is helpful, I have created an example that shows this issue here
Two issues with this approach are:

The spinner is only displayed when a selection is made
The plot is not interactive anymore

Per a suggestion, I added an additional css snippet for not recalculating but unfortunately that didn't help

We now have spinners by default, and you can customize them via ui.busy_indicators.options()


[secure-storage] some cleanups

This PR seeks to simplify some of the constructions in secure-storage to be a bit more accessible / less overhead for reviewers.

landing this: https://github.com/libra/libra/pull/4031
which contains both PRs


Sticky header in courses table

Addresses this student-generated issue: https://github.com/MyMCIT/MyMCIT/issues/41
See video of change:
https://github.com/MyMCIT/MyMCIT/assets/13663360/02b19b3a-c094-408d-bb43-2a43fa138672

Deployed


feat: show latest changes in releases

This should show the latest Changes in the CHANGELOG.md file when creating a new release.
For now it only shows "Automatically created new release".
It is running 'awk '/^## [/{n++} n==1' CHANGELOG.md' which extracts the latest changes. Note: I only tested the command on my linux machine, worked.

Can't really test it so one way to find out! LGMT!

@jannikstdl doesn't seem to be working, if you could look into this I'd greatly appreciate it!

Yes I saw that. I'm already on it.


MyPy: We don't cleanly pass strict optional so disable that for now

This is an issue with the new MyPy 0.600

Self merge to unbreak master