Unable to register CRDs

When deploying cilium on Suse linux 15, got the following error msg, and the cilium daemon pod is crashing:
level=fatal msg="Unable to register CRDs" error="Unable to create custom resource definition: the server could not find the requested resource" subsys=daemon
suse-1:/pkgs/sfnc/vm-files/sfnc-1.0.0/lcm # kubectl get pods -n kube-system
NAME                               READY   STATUS              RESTARTS      AGE
cilium-base-t7xj8                  0/1     CrashLoopBackOff    8 (58s ago)   17m
cilium-operator-869f7dc84b-sbs9h   1/1     Running             3 (83s ago)   17m
coredns-78fcd69978-j844q           0/1     ContainerCreating   0             19h
coredns-78fcd69978-mhqvt           0/1     ContainerCreating   0             19h
etcd-suse-1                        1/1     Running             0             19h
kube-apiserver-suse-1              1/1     Running             0             19h
kube-controller-manager-suse-1     1/1     Running             0             19h
kube-proxy-p5x7f                   1/1     Running             0             19h
kube-scheduler-suse-1              1/1     Running             0             19h
Can someone help to point out what might be wrong?
Thanks,

What's the state of the cilium-operator pods? Could you join a Cilium sysdump as per the issue template?

cilium operator pod seems to be running fine:
cilium-operator-869f7dc84b-sbs9h   1/1     Running             3 (83s ago)   17m
I'm new to cilium, so it could be I'm missing some of the config...  How to join a cilium sysdump?

See the template you deleted: https://github.com/cilium/cilium/blob/master/.github/ISSUE_TEMPLATE/bug_template.md.

cilium version
Client: 1.8.5  go version go1.13.15 linux/amd64
Daemon: Not responding
uname -a
Linux suse-1 5.3.18-57-default #1 SMP Wed Apr 28 10:54:41 UTC 2021 (ba3c2e9/lp-5d9e8aa) x86_64 x86_64 x86_64 GNU/Linux
kubectl version
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.2", GitCommit:"8b5a19147530eaac9476b0ab82980b4088bbc1b2", GitTreeState:"clean", BuildDate:"2021-09-15T21:38:50Z", GoVersion:"go1.16.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.2", GitCommit:"8b5a19147530eaac9476b0ab82980b4088bbc1b2", GitTreeState:"clean", BuildDate:"2021-09-15T21:32:41Z", GoVersion:"go1.16.8", Compiler:"gc", Platform:"linux/amd64"}
cilium-sysdump-20210922-213806.zip

Your cilium-operator pod is failing with:
2021-09-23T04:32:51.374487910Z level=error msg=k8sError error="github.com/cilium/cilium/operator/watchers/cilium_endpoint.go:83: Failed to list *v2.CiliumEndpoint: the server could not find the requested resource (get ciliumendpoints.cilium.io)" subsys=k8s
2021-09-23T04:33:04.165600614Z level=fatal msg="Unable to start managing Kubernetes identities" error="timeout waiting for CRD ciliumidentities.cilium.io: timed out waiting for the condition" subsys=cilium-operator-generic

Are you sure it's able to connect to kube-apiserver?

From the log, looks like it's connected to the apiserver.... are there any other command to test this connection?
level=info msg="Initializing daemon" subsys=daemon
level=info msg="Establishing connection to apiserver" host="https://<IP_ADDRESS>:443" subsys=k8s
level=info msg="Connected to apiserver" subsys=k8s
level=info msg="Inheriting MTU from external network interface" device=eth0 ipAddr=<IP_ADDRESS> mtu=1500 subsys=mtu
level=info msg="Trying to auto-enable "enable-node-port", "enable-external-ips", "enable-host-reachable-services", "enable-host-port", "enable-session-affinity" features" subsys=daemon
level=info msg="Restored services from maps" failed=0 restored=0 subsys=service
level=info msg="Envoy: Starting xDS gRPC server listening on /var/run/cilium/xds.sock" subsys=envoy-manager
level=info msg="Reading old endpoints..." subsys=daemon
level=info msg="No old endpoints found." subsys=daemon
level=error msg="Command execution failed" cmd="[iptables -t mangle -n -L CILIUM_PRE_mangle]" error="exit status 1" subsys=iptables
level=warning msg="iptables: No chain/target/match by that name." subsys=iptables
level=info msg="Creating CRD (CustomResourceDefinition)..." name=v2.CiliumNode subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=v2.CiliumEndpoint subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=v2.CiliumIdentity subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumNetworkPolicy/v2 subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumClusterwideNetworkPolicy/v2 subsys=k8s
level=fatal msg="Unable to register CRDs" error="Unable to create custom resource definition: the server could not find the requested resource" subsys=daemon

From the log, looks like it's connected to the apiserver.... are there any other command to test this connection?
level=info msg="Initializing daemon" subsys=daemon
level=info msg="Establishing connection to apiserver" host="https://<IP_ADDRESS>:443" subsys=k8s level=info msg="Connected to apiserver" subsys=k8s
level=info msg="Inheriting MTU from external network interface" device=eth0 ipAddr=<IP_ADDRESS> mtu=1500 subsys=mtu
level=info msg="Trying to auto-enable "enable-node-port", "enable-external-ips", "enable-host-reachable-services", "enable-host-port", "enable-session-affinity" features" subsys=daemon
level=info msg="Restored services from maps" failed=0 restored=0 subsys=service
level=info msg="Envoy: Starting xDS gRPC server listening on /var/run/cilium/xds.sock" subsys=envoy-manager
level=info msg="Reading old endpoints..." subsys=daemon
level=info msg="No old endpoints found." subsys=daemon
level=error msg="Command execution failed" cmd="[iptables -t mangle -n -L CILIUM_PRE_mangle]" error="exit status 1" subsys=iptables
level=warning msg="iptables: No chain/target/match by that name." subsys=iptables

@nzhuang123 I may have seen this error before but my memory not be right, it could be you have an old userland iptable installations that not working properly with kernel version for your distribution or the other way around, maybe something related to nftables

Thanks for the reply. Any suggestion how to fix/work around this issue?

for me I was running centos 8 with custom built old kernel 5.0 if I recall correct, after I ran a newer kernel on centos 8, the problem went away, sorry i don't remember the detail and has not dug deep into it. you may check with suse community/vendor on how to workaround this

here is mine which is not exact same like   your error on centos 8 with 5.0 kernel, the log coming from cilium agent, not cilium operator, and no problem if I ran kernel 5.2 with centos 8
level=warning msg="-P PREROUTING ACCEPT" subsys=iptables
level=warning msg="-P INPUT ACCEPT" subsys=iptables
level=warning msg="-P FORWARD ACCEPT" subsys=iptables
level=warning msg="-P OUTPUT ACCEPT" subsys=iptables
level=warning msg="-P POSTROUTING ACCEPT" subsys=iptables
level=debug msg="Considering removing &{ip6tables} rule" obj="# Warning: ip6tables-legacy tables present, use ip6tables-legacy to see them" subsys=iptables
level=debug msg="Considering removing &{ip6tables} rule" obj="-P PREROUTING ACCEPT" subsys=iptables
level=debug msg="Considering removing &{ip6tables} rule" obj="-P OUTPUT ACCEPT" subsys=iptables
level=debug msg="Considering removing &{ip6tables} rule" obj="# Warning: ip6tables-legacy tables present, use ip6tables-legacy to see them" subsys=iptables
level=debug msg="Considering removing &{ip6tables} rule" obj="-P INPUT ACCEPT" subsys=iptables
level=debug msg="Considering removing &{ip6tables} rule" obj="-P FORWARD ACCEPT" subsys=iptables
level=debug msg="Considering removing &{ip6tables} rule" obj="-P OUTPUT ACCEPT" subsys=iptables
level=debug msg="Considering removing &{ip6tables} rule" obj="-N KUBE-FIREWALL" subsys=iptables
level=debug msg="Considering removing &{ip6tables} rule" obj="-A INPUT -j KUBE-FIREWALL" subsys=iptables
level=debug msg="Considering removing &{ip6tables} rule" obj="-A OUTPUT -j KUBE-FIREWALL" subsys=iptables
level=debug msg="Considering removing &{ip6tables} rule" obj="-A KUBE-FIREWALL -m comment --comment \"kubernetes firewall for dropping marked packets\" -m mark --mark 0x8000/0x8000 -j DROP" subsys=iptables
level=error msg="Command execution failed" cmd="[iptables -w 5 -t mangle -N CILIUM_POST_mangle]" error="exit status 4" subsys=iptables
level=warning msg="iptables v1.8.4 (nf_tables):  CHAIN_ADD failed (No such file or directory): chain OUTPUT" subsys=iptables
level=warning msg="Cannot list rules in table. Layer 7 proxy port may get reallocated, which could cause disruption for traffic selected by L7 policyiptablesmangle" error="exit status 4" prog=iptables subsys=iptables table=mangle
level=fatal msg="Error while creating daemon" error="error while initializing daemon: cannot add custom chain CILIUM_POST_mangle: exit status 4" subsys=daemon.

I wonder if you turn on cilium agent debug log, if the cilium agent log would log similar error like mine, since my cilium agent has debug turned on. see https://docs.cilium.io/en/stable/cmdref/cilium-agent/ argument to turn on debug, it can be set in manifest or helm.

For me the issue is CRD cannot be found, and the cilium pod is crashing..
level=info msg="     _ _ " subsys=daemon
level=info msg=" || || _ ___" subsys=daemon
level=info msg="|  | | | | | |     |" subsys=daemon
level=info msg="|||||||||" subsys=daemon
level=info msg="Cilium 1.8.4 17d623853 2020-09-30T17:31:44-07:00 go version go1.14.9 linux/amd64" subsys=daemon
level=info msg="cilium-envoy  version: 1177896bebde79915fe5f9092409bf0254084b4e/1.14.5/Modified/RELEASE/BoringSSL" subsys=daemon
level=info msg="clang (10.0.0) and kernel (5.3.18) versions: OK!" subsys=linux-datapath
level=info msg="linking environment: OK!" subsys=linux-datapath
level=info msg="Detected mounted BPF filesystem at /sys/fs/bpf" subsys=bpf
level=info msg="Valid label prefix configuration:" subsys=labels-filter
level=info msg=" - :io.kubernetes.pod.namespace" subsys=labels-filter
level=info msg=" - :io.cilium.k8s.namespace.labels" subsys=labels-filter
level=info msg=" - :app.kubernetes.io" subsys=labels-filter
level=info msg=" - !:io.kubernetes" subsys=labels-filter
level=info msg=" - !:kubernetes.io" subsys=labels-filter
level=info msg=" - !:.beta.kubernetes.io" subsys=labels-filter
level=info msg=" - !:k8s.io" subsys=labels-filter
level=info msg=" - !:pod-template-generation" subsys=labels-filter
level=info msg=" - !:pod-template-hash" subsys=labels-filter
level=info msg=" - !:controller-revision-hash" subsys=labels-filter
level=info msg=" - !:annotation." subsys=labels-filter
level=info msg=" - !:etcd_node" subsys=labels-filter
level=info msg="Using autogenerated IPv4 allocation range" subsys=node v4Prefix=<IP_ADDRESS>/16
level=info msg="Using autogenerated IPv6 allocation range" subsys=node v6Prefix="f00d::a65:0:0:0/96"
level=info msg="Initializing daemon" subsys=daemon
level=info msg="Establishing connection to apiserver" host="https://<IP_ADDRESS>:443" subsys=k8s
level=info msg="Connected to apiserver" subsys=k8s
level=info msg="Inheriting MTU from external network interface" device=eth0 ipAddr=<IP_ADDRESS> mtu=1500 subsys=mtu
level=info msg="Trying to auto-enable "enable-node-port", "enable-external-ips", "enable-host-reachable-services", "enable-host-port", "enable-session-affinity" features" subsys=daemon
level=info msg="Restored services from maps" failed=0 restored=0 subsys=service
level=info msg="Reading old endpoints..." subsys=daemon
level=info msg="No old endpoints found." subsys=daemon
level=info msg="Envoy: Starting xDS gRPC server listening on /var/run/cilium/xds.sock" subsys=envoy-manager
level=error msg="Command execution failed" cmd="[iptables -t mangle -n -L CILIUM_PRE_mangle]" error="exit status 1" subsys=iptables
level=warning msg="iptables: No chain/target/match by that name." subsys=iptables
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumNetworkPolicy/v2 subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=v2.CiliumIdentity subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=v2.CiliumEndpoint subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumClusterwideNetworkPolicy/v2 subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=v2.CiliumNode subsys=k8s
level=fatal msg="Unable to register CRDs" error="Unable to create custom resource definition: the server could not find the requested resource" subsys=daemon

my cilium agent pod is crashing too, your log has no debug enabled, try to enable debug, you should see more debug log

From the log, looks like it's connected to the apiserver.... are there any other command to test this connection?

@nzhuang123 That's the agent logs, not the cilium-operator logs.
@vincentmli I don't think it's the same issue. The iptables error in the present case seems likely to be a red herring whereas you had other, fairly different log lines in your case.

@pchaigno right, i am hoping @nzhuang123 could provide debug log, that may show more clue :)

Could you tell me what log flag to enable?

Also, in the operator log, I could see it's trying the list resource from v1beta1, but shouldn't it be v1 instead?
level=error msg=k8sError error="k8s.io/client-go/tools/watch/informerwatcher.go:146: Failed to list *v1beta1.CustomResourceDefinition: the server could not find the requested resource" subsys=k8s

The following command also gives error:
kubectl get ciliumid
error: the server doesn't have a resource type "ciliumid"

change configmap cilium-config and set  debug: "true"
kubectl edit configmap cilium-config -n kube-system ; kubectl delete pod -l k8s-app=cilium -A;
you may also consider deploy most recent cilium version,
apiVersion: v1
kind: ConfigMap
metadata:
  name: cilium-config
  namespace: kube-system
data:

  # If you want to run cilium in debug mode change this value to true
  debug: "true"

level=info msg="Cilium 1.8.4 17d623853 2020-09-30T17:31:44-07:00 go version go1.14.9 linux/amd64" subsys=daemon
level=info msg="cilium-envoy  version: 1177896bebde79915fe5f9092409bf0254084b4e/1.14.5/Modified/RELEASE/BoringSSL" subsys=daemon
level=info msg="clang (10.0.0) and kernel (5.3.18) versions: OK!" subsys=linux-datapath
level=info msg="linking environment: OK!" subsys=linux-datapath
level=info msg="Detected mounted BPF filesystem at /sys/fs/bpf" subsys=bpf
level=info msg="Valid label prefix configuration:" subsys=labels-filter
level=info msg=" - :io.kubernetes.pod.namespace" subsys=labels-filter
level=info msg=" - :io.cilium.k8s.namespace.labels" subsys=labels-filter
level=info msg=" - :app.kubernetes.io" subsys=labels-filter
level=info msg=" - !:io.kubernetes" subsys=labels-filter
level=info msg=" - !:kubernetes.io" subsys=labels-filter
level=info msg=" - !:.beta.kubernetes.io" subsys=labels-filter
level=info msg=" - !:k8s.io" subsys=labels-filter
level=info msg=" - !:pod-template-generation" subsys=labels-filter
level=info msg=" - !:pod-template-hash" subsys=labels-filter
level=info msg=" - !:controller-revision-hash" subsys=labels-filter
level=info msg=" - !:annotation."  subsys=daemon
level=info msg="No old endpoints found." subsys=daemon
level=debug msg="Starting new controller" name=dns-garbage-collector-job subsys=controller uuid=771544ad-1c48-11ec-ae0b-000c297a8fce
level=info msg="Envoy: Starting xDS gRPC server listening on /var/run/cilium/xds.sock" subsys=envoy-manager
level=debug msg="Controller func execution time: 3.357µs" name=dns-garbage-collector-job subsys=controller uuid=771544ad-1c48-11ec-ae0b-000c297a8fce
level=error msg="Command execution failed" cmd="[iptables -t mangle -n -L CILIUM_PRE_mangle]" error="exit status 1" subsys=iptables
level=warning msg="iptables: No chain/target/match by that name." subsys=iptables
level=debug msg="DNS Proxy port is configured to 0. A random port will be assigned by the OS." subsys=fqdn/dnsproxy
level=debug msg="DNS Proxy bound to address" address="[::]:38915" subsys=fqdn/dnsproxy
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumClusterwideNetworkPolicy/v2 subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumNetworkPolicy/v2 subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=v2.CiliumNode subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=v2.CiliumEndpoint subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=v2.CiliumIdentity subsys=k8s
level=fatal msg="Unable to register CRDs" error="Unable to create custom resource definition: the server could not find the requested resource" subsys=daemon

Vincent is correct, Cilium v1.8.4 is very old. Please try with the latest v1.8.x at the very least.

Running v1.10.4, and I'm getting this error:
level=info msg="Cilium Operator 1.10.4 2a46fd6 2021-09-01T12:58:41-07:00 go version go1.16.7 linux/amd64" subsys=cilium-operator-generic
level=info msg="Starting apiserver on address <IP_ADDRESS>:9234" subsys=cilium-operator-api
level=info msg="Establishing connection to apiserver" host="https://<IP_ADDRESS>:443" subsys=k8s
level=info msg="Connected to apiserver" subsys=k8s
level=debug msg="Starting new controller" name=k8s-heartbeat subsys=controller uuid=55070ee0-1249-4359-ad2c-bde1ecff32e5
level=debug msg="Controller func execution time: 7.472951ms" name=k8s-heartbeat subsys=controller uuid=55070ee0-1249-4359-ad2c-bde1ecff32e5
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumLocalRedirectPolicy/v2 subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumNode/v2 subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumEgressNATPolicy/v2alpha1 subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumEndpoint/v2 subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumExternalWorkload/v2 subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumIdentity/v2 subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumClusterwideNetworkPolicy/v2 subsys=k8s
level=info msg="Creating CRD (CustomResourceDefinition)..." name=CiliumNetworkPolicy/v2 subsys=k8s
level=fatal msg="Unable to register CRDs" error="Unable to create custom resource definition: customresourcedefinitions.apiextensions.k8s.io is forbidden: User "system:serviceaccount:kube-system:cilium-operator" cannot create resource "customresourcedefinitions" in API group "apiextensions.k8s.io" at the cluster scope" subsys=cilium-operator-generic

By giving the create permission to the Operator pods, and with v1.10.4, it works! Thanks a lot!

Just wondering why do we need the crd create permission for v1.10.4?  I'm using the same cilium.yaml on another ubuntu vm, and it works with just the get/list/watch permission

maybe different kubernetes version?

Just wondering why do we need the crd create permission for v1.10.4?

I don't think that's new in v1.10. You need CRD Create permission to create Cilium's CRD.

I'm using the same cilium.yaml on another ubuntu vm, and it works with just the get/list/watch permission

That's surprising. Maybe the CRDs were already installed?
Closing the issue as this appears to be solved.

I had a similar issue, as mentioned in the title of this issue. The Cilium Daemonset was stuck and waiting for CRDs. After seeing this comment, I checked my kube-system and it seemed like the old deploy/cilium-operator was still running, and that has direct conflict due to its affinity setting. For context, I did a cilium upgrade that got me here (from v1.13 to v1.15).

@meysam81 Note that direct upgrades from v1.13 to v1.15 are not supported, so that could be the cause.


deploy eureka cluster in kubernetes always cause unavailable-replicas xxx。 Does this matter？

step to porduce:
1. first to change eureka yml file to this.
spring:
  application:
    name: registry-center
  profiles:
    active: qa3
eureka:
  environment: ${spring.profiles}
  instance:
    preferIpAddress: false
    instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}
    enable-lease-expiration-duration: true
    lease-renewal-interval-in-seconds: 10
    lease-expiration-duration-in-seconds: 20
  server:
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 5000
    renewal-threshold-update-interval-ms: 7000
    renewal-percent-threshold: 0.9
  client:
    serviceUrl:
      defaultZone: http://registry-center-new-0.registry-center-new:8101/eureka/,http://registry-center-new-1.registry-center-new:8101/eureka/,http://registry-center-new-2.registry-center-new:8101/eureka/

2. to deploy in kubernetes
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: registry-center-new
  namespace: qa3
spec:
  podManagementPolicy: OrderedReady
  replicas: 3
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: registry-center-new
  serviceName: registry-center-new
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: registry-center-new
    spec:
      containers:
      - env:
        - name: PROFILE
          value: qa3
        image: myself-eureka:latest
        imagePullPolicy: Always
        name: be-registry-center-new-service-container
        ports:
        - containerPort: 8101
          protocol: TCP
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /usr/local/bin/docker-entrypoint.sh
          name: volume-registry-center-docker-entrypoint
          subPath: docker-entrypoint.sh
      dnsPolicy: ClusterFirst
      imagePullSecrets:
      - name: aliyunregistry
      restartPolicy: Always
      schedulerName: default-scheduler
      terminationGracePeriodSeconds: 30
      nodeSelector:
        env: non_prod
      tolerations:
      - effect: NoSchedule
        key: group
        operator: Equal
        value: non_prod
      volumes:
      - configMap:
          defaultMode: 420
          name: be-registry-center-docker-entrypoint.sh
        name: volume-registry-center-docker-entrypoint
  updateStrategy:
    rollingUpdate:
      partition: 0
    type: RollingUpdate

3.  the registry wiil be show unavailable-replicas

for in the source file , i find this.
public boolean isInstanceURL(String url, InstanceInfo instance) {

    String hostName = hostFromUrl(url);

    String myInfoComparator = instance.getHostName();

    if (clientConfig.getTransportConfig().applicationsResolverUseIp()) {
        myInfoComparator = instance.getIPAddr();
   }

    return hostName != null && hostName.equals(myInfoComparator);
}

so. In kubernetes sts  . the pod hostname will be  never same as the serviceUrl. like my example : registry-center-new-0 not be registry-center-new-0.registry-center-new.
Does this really matter to the cluster of eureka ?

fix by use full FQDN
serviceUrl:
      defaultZone: http://registry-center-new-0.registry-center-new.qa3.svc.cluster.local:8101/eureka/,http://registry-center-new-1.registry-center-new.qa3.svc.cluster.local:8101/eureka/,http://registry-center-new-2.registry-center-new.qa3.svc.cluster.local:8101/eureka/


test softcounter

Softcounter:

Tests for softcounter implementation, closes #45
Separate softcounter and printer (helps with header dependencies)

Misc related to softcounter tests:

Scripts run/apply parse optimization flag properly, closes #43 and #44
Cmake targets for test folder (should never be built), so an IDE can interpret the source files better

Pull Request Test Coverage Report for Build 461189841

118 of 118 (100.0%)  changed or added relevant lines in 2 files are covered.
6 unchanged lines in 1 file lost coverage.
Overall coverage increased (+1.4%) to 87.718%

Files with Coverage Reduction
New Missed Lines
%

lib/runtime/AccessCounter.h
6
96.0%

Totals

Change from base Build 451324157:
1.4%

Covered Lines:
2314

Relevant Lines:
2638

💛  - Coveralls

Pull Request Test Coverage Report for Build 461189841

118 of 118 (100.0%)  changed or added relevant lines in 2 files are covered.
6 unchanged lines in 1 file lost coverage.
Overall coverage increased (+1.4%) to 87.718%

Files with Coverage Reduction
New Missed Lines
%

lib/runtime/AccessCounter.h
6
96.0%

Totals

Change from base Build 451324157:
1.4%

Covered Lines:
2314

Relevant Lines:
2638

💛  - Coveralls


Adding new interaction with a confirmation message

My support team keeps mashing the export button and its an expensive query. I added a confirmation message so I could put the help text in there to ask them not to click it so often and thought other people might enjoy it.

I wouldn't expect a checkbox when using requiresConfirmation() as it's not the same behaviour that Filament has. You could also use requiresConfirmation() on the action itself if you don't use AskForFilename etc.
I think I'd rather add this as an example to a "cookbook" in the docs, than as a feature.


fix bug where serviceText was never received

Thanks!

By the way, the version of hs-avahi on hackage is ancient.  It still requires dbus-core and can't be built alongside up-to-date packages.  You should really upload an update.
Thanks for your package!


Azure python api calls gets stuck sometimes for a long time

I observed that sometimes the azure python api calls gets stuck for a long time (about 30-40 mins) and sometimes it is completed in 1-2 mins.
I noticed this mostly for detach disk and attach disk operations.
Attaching the code snipped used:
async_update = self.compute_client.virtual_machines.begin_create_or_update(vm_group_name, vm.name, vm)
async_update.wait()

For detach disk operation, I check the VM status in the Azure portal and the disk was in detaching state for a long time.
Can someone see what the issue might be?
We are observing these issues after upgrading the python SDK.
azure-mgmt-compute==12.0.0 (old version)
azure-mgmt-compute==21.0.0 (new version)

Thanks for the feedback, we’ll investigate asap.

@jaylabell Could you please look into the issue?

Any update on this

Taking a look into this issue


Refactor: Limits

Don't store current values in database, this is really not useful and it makes the code too complex too understand.
TODO:

[ ] Restore GetExtraLimitTemplates behaviour

Current coverage is 66.70%

Merging #861 into master will decrease coverage by -0.21% as of 76148af

@@            master   #861   diff @@
=====================================
  Files          116    120     +4
  Stmts         5912   5815    -97
  Branches         0      0
  Methods          0      0
=====================================
- Hit           3956   3879    -77
  Partial          0      0
+ Missed        1956   1936    -20

Review entire Coverage Diff as of 76148af

Uncovered Suggestions

+0.43% via ...oa/lib/ldap_utils.py#65...89
+0.41% via ...ailbox_operations.py#65...88
+0.36% via ...commands/init.py#52...72
See 7 more...

Powered by Codecov. Updated on successful CI builds.


Zulip as Mailing List

I would like to advance the E-Mail analogy Zulip was built from so it can function as a full-featured alternative to Mailing Lists, advancing beyond https://docs.zulip.com/help/using-zulip-via-email
I have never been a big user of mailing lists myself, but from what I saw, the following things would need work for that:
Signup:

ability for new users to receive email notifications for messages in all streams they are subscribed to, which they can respond to and unsubscribe from (this should work already)
ability to complete signup without password (with ability to set it anytime with reset or request a management link to email) and instead choose stream subscriptions from confirmation mail
alternatively, a form that allows signup for a specific stream as guest or even selecting streams, something like https://lists.gnu.org/mailman/listinfo
ability for users to subscribe (creating a passwordless guest account) simply via sending a mail to the stream address

Usability:

polishing the email gateway: https://github.com/zulip/zulip/issues/10612
short stream email addresses: https://github.com/zulip/zulip/issues/13571

The goal here really is to reproduce all major features so nothing deters people from moving over from plain mailing lists or google groups (Ugh!) to Zulip :)
I am generally interested in sponsoring development here, though my funds are limited.
Maybe also interesting as a GSoC project?

One other potentially interesting aspect:
The ability to disallow or moderate who can create a new topic, making it possible to use it as a kind of blog with comments.

One other potentially interesting aspect: The ability to disallow or moderate who can create a new topic, making it possible to use it as a kind of blog with comments.

This part sounds like #19642.

@alya @zulipbot I want to claim and contribute in this new feature, please assign it to me

@xeruf Can you say more about why it would be important to be able to do account (password) management and stream subscription management without opening the Zulip app?

Because I want to include people who do not want to create yet another account anywhere or care about a password.
I want it to provide a user experience that fully mirrors a typical mailing list.

Hmm, I think you can get close to that by enabling non-email authentication? Available options:
Apple
GitHub
GitLab
Google

Not really, it should be possible to have an account without password and just use a magic link (which is handy in any case) like in Notion, i.e. you get the link to login/manage subscriptions per E-Mail.
I don't wanna drive people towards big tech and neither require an own OIDC login as users should have the possibility to sign up themselves from the web.
One other little thing:
Supplement or replace the "Last login" profile info by "Last message sent" - also in terms of privacy that might be worth a consideration

The proliferation of separate accounts with passwords is something that stops many digital immigrants. My grandad is just doing fine with E-Mail but incapable of creating an account somewhere himself, yet I might want to include him in a conversation in a modern tool like Zulip.
So I think this feature is a vital step towards accessibility and inclusion.

Hey, I would still love to have this implemented and might be able to get some funding for it if this helps to get somebody dedicated to work on it.
Currently many projects have a mailing list, a mailing list archive and a forum - with some thought, Zulip could easily unify these three.

I do think this could be a great area for a GSoC project as well


Handle example files properly

[x] write files to github pages
[ ] show the example code in the markdown
[x] markdown links to file output
[ ] change the workflow so that it runs the readme code not just examples/make.py

I don't really know what these tasks mean anymore.

We should show the example code which would generate the images, in the README, right before displaying the image linked from the gh-pages http.
Then we should run the README markdown, such as with doctest, in the workflow which generates the images and deploys them via http.


[Abide] Disabled fields not being ignored in validation

How can we reproduce this bug?

Use the example abide form code from the documentation
Add a disabled attribute to the first required field
Submit the form for checking

What did you expect to happen?
I expected Abode to ignore the disabled field as it does in  in Foundation 5
What happened instead?
The disabled field is highlighted with an error
Test case:
http://codepen.io/colinmackinlay/pen/PWYZGw

Hi @colinmackinlay,
I agree with you, we can expect disabled fields to be ignored in form validation, this was requested in v5 (#4109, 5843). I wonder why this behavior has not been ported to v6. @rafibomb Any thought on this ?


Various minor improvements to "Get Started"

I intended to address a couple of problems with this PR and then the scope crept a little as I found other issues.

I noticed a new starter missed the Slack profile step and that it was rendering the list wrong
That things are a bit confused for tech lead help, so I wanted to make that an initial qualifier
That new starters may not realise they can't see the govuk-user-reviewer until they're added to GitHub

I also, while reviewing the doc following those issues, fixed a few things:

broken anchor links
out-of-date slides link
odd grammar to get started
set frontend instructions as asides.

Full details in the commits

@theseanything @chao-xian I've made some amends here to things you changed recently, I wonder if you wouldn't mind checking you're happy with my changes.

@theseanything see: https://github.com/alphagov/govuk-developer-docs/pull/4132/commits/06fdf81b07f33051e4667d9ba5c2f92c6604b5f7 for the qualifier we discussed on Slack.

@theseanything see: 06fdf81 for the qualifier we discussed on Slack.

Looks good!


Add property to allow disabling the tooltip.

Added a attribute property to allow disabling the tooltip on the dropdown.

Dropdown hasn't used tooltip for quite some time...


Open editor when migrating browser prefixes

I tested this using the file workspace and it worked fine. Marking as "DO NOT MERGE" until a decision is reached. Also if merged needs to go into stable 4.1

This seems like a hack that will only apply to the microbit, but we'll forget that it is there.

Closing because the decision was made


"pud_config.h" included in pud.h but does not exist

I did the following under Ubuntu:

clone war2tools
build&install
when using pud.h as usual inside my project compiler says "cannot find pud_config.h" (line 43 in file pud.h)

There is no pud_config.h, only pud_config.h.in? After deleting line 43 everything compiles and works fine

Thanks for the report. It seems I pushed too fast last time...
pud_config.h should now be installed in the same directory than pud.h


feat: add list lemmas

Add some general purpose lemmas on lists. Also execute two adaptation notes.
The lemmas are taken from https://github.com/sven-manthe/A-formalization-of-Borel-determinacy-in-Lean

(If you want, you could certainly split this into several PRs, for instance one on the adaptation notes and another for the List/Infix changes. I would approve both right away. This might speed up reviews, but I am aware this may cause additional overhead for you.)

bors r+

bors r+


youtube-dl http://groovemp3.com/track/120593577

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like that [x])
Use Preview tab to see how your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2016.12.18. If it's not read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2016.12.18

Before submitting an issue make sure you have:

[x] At least skimmed through README and most notably FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[ ] Bug report (encountered problems with youtube-dl)
[x] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add -v flag to your command line you run youtube-dl with, copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
da@xps15z:~$ youtube-dl -v http://groovemp3.com/track/120593577
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'-v', u'http://groovemp3.com/track/120593577']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2016.12.18
[debug] Python version 2.7.12 - Linux-4.4.0-53-generic-x86_64-with-Ubuntu-16.04-xenial
[debug] exe versions: avconv 2.8.10-0ubuntu<IP_ADDRESS>, avprobe 2.8.10-0ubuntu<IP_ADDRESS>, ffmpeg 2.8.10-0ubuntu<IP_ADDRESS>, ffprobe 2.8.10-0ubuntu<IP_ADDRESS>
[debug] Proxy map: {}
[generic] 120593577: Requesting header
WARNING: Falling back on generic information extractor.
[generic] 120593577: Downloading webpage
[generic] 120593577: Extracting information
ERROR: Unsupported URL: http://groovemp3.com/track/120593577
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/generic.py", line 1626, in _real_extract
    doc = compat_etree_fromstring(webpage.encode('utf-8'))
  File "/usr/local/bin/youtube-dl/youtube_dl/compat.py", line 2526, in compat_etree_fromstring
    doc = _XML(text, parser=etree.XMLParser(target=_TreeBuilder(element_factory=_element_factory)))
  File "/usr/local/bin/youtube-dl/youtube_dl/compat.py", line 2515, in _XML
    parser.feed(text)
  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1653, in feed
    self._raiseerror(v)
  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1517, in _raiseerror
    raise err
ParseError: mismatched tag: line 44, column 6
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 694, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 357, in extract
    return self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/generic.py", line 2433, in _real_extract
    raise UnsupportedError(url)
UnsupportedError: Unsupported URL: http://groovemp3.com/track/120593577

da@xps15z:~$

If the purpose of this issue is a site support request please provide all kinds of example URLs support for which should be included (replace following example URLs by yours):

Single video: http://groovemp3.com/track/120593577

Description of your issue, suggested solution and other information
Would you add http://groovemp3.com to supported sites? Thanks.

Apparently http://groovemp3.com/track/120593577 is gone. Do you have new examples?

http://groovemp3.com/track/18413551
On Sat, 7 Jan 2017 at 08:45 Yen Chi Hsuan<EMAIL_ADDRESS>wrote:

Apparently http://groovemp3.com/track/120593577 is gone. Do you have new
examples?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/rg3/youtube-dl/issues/11487#issuecomment-271064998,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABzr0fhR7WG9kS5R_fkNB4ySGDtsQ78Hks5rPyaJgaJpZM4LQhxt
.

In Firefox this URL redirects to http://groovemp3.com/album/The+Weeknd/Starboy. Is it expected?
Apparently this website is just a wrapper of YouTube videos. For example the first song in http://groovemp3.com/album/The+Weeknd/Starboy is actually https://www.youtube.com/watch?v=34Na4j8AVgA

I did not checked if the urls were linked to YouTube.
Album is correct. Choosed one of popular.
On Sat, 7 Jan 2017 at 09:06 Yen Chi Hsuan<EMAIL_ADDRESS>wrote:

In Firefox this URL redirects to
http://groovemp3.com/album/The+Weeknd/Starboy. Is it expected?
Apparently this website is just a wrapper of YouTube videos. For example
the first song in http://groovemp3.com/album/The+Weeknd/Starboy is
actually https://www.youtube.com/watch?v=34Na4j8AVgA
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/rg3/youtube-dl/issues/11487#issuecomment-271065726,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABzr0c78MMoy_1lBo600-WzQs5gGdG2gks5rPytWgaJpZM4LQhxt
.


Components failing initialisation break due to .js-enabled styles

It is possible for components to be in a completely broken state if the user has JavaScript enabled but the GOV.UK Frontend bundle fails to download.
Previously we detected the presence of GOV.UK globally on window, but we removed this since we could not be sure if people would be using bundlers which will not output a global.
https://github.com/alphagov/govuk_template/blob/master/source/views/layouts/govuk_template.html.erb#L113
We could consider, injecting a global whenever a component is loaded that can remove js-enabled.
Potentially something like:
if (not already injected) {
   window.___GOVUKFrontendComponentInitialised___
}

// tabs.js
import 'inject-global-initialised'
// only injects if not already injected before
inject()

// rest of tabs code here

// template.njk

<script>if(!window.___GOVUKFrontendComponentInitialised___) { // remove js-enabled }</script>
</body>

https://trello.com/c/oRDkiAz9/1448-frontend-components-appeared-styled-when-js-blocked

We had a similar issue in my service this week. For reasons our service's js file for IE failed to compile so our service's js wasn't available in IE - but we still had the js-enabled class. This caused the worst of both worlds - fields with conditional content were hidden and there was no way to get to them.
If there are recommended solutions - like testing for a variable I'd be keen to hear them.

Hello all,
Currently experiencing this issue- what was the fix for this?
Thanks

It is possible for components to be in a completely broken state if the user has JavaScript enabled but the GOV.UK Frontend bundle fails to download.
Previously we detected the presence of GOV.UK globally on window, but we removed this since we could not be sure if people would be using bundlers which will not output a global.
https://github.com/alphagov/govuk_template/blob/master/source/views/layouts/govuk_template.html.erb#L113
We could consider, injecting a global whenever a component is loaded that can remove js-enabled.
Potentially something like:
if (not already injected) {
   window.___GOVUKFrontendComponentInitialised___
}

// tabs.js
import 'inject-global-initialised'
// only injects if not already injected before
inject()

// rest of tabs code here

// template.njk

<script>if(!window.___GOVUKFrontendComponentInitialised___) { // remove js-enabled }</script>
</body>

https://trello.com/c/oRDkiAz9/1448-frontend-components-appeared-styled-when-js-blocked

E

When GOV.UK was down today and I wanted to send someone a link to it via the Wayback Machine, I found that I couldn't get to any of the main links within an accordion because the JavaScript wasn't archived. Although the page in question was not using the accordion from the Design System, I checked that the effect on the Design System accordion would be the same.
So, here is that real world example: http://web.archive.org/web/20210205010100/https://www.gov.uk/service-manual/helping-people-to-use-your-service
Usually, when you click on "Meeting accessibility requirements", the section underneath would open and reveal a couple of links. This is worse than Nick's original example because it's impossible to get to the links and you cannot even see that anything is missing.

useEffect(() => {
document.documentElement.classList.add(‘govuk-template’);
document.body.classList.add(‘js-enabled’, ‘govuk-template__body’);
}, []);
Place this code into your root component, this fix works for me!!

Hello all,
Currently experiencing this issue- what was the fix for this?
Thanks

It is possible for components to be in a completely broken state if the user has JavaScript enabled but the GOV.UK Frontend bundle fails to download.
Previously we detected the presence of `GOV.UK` globally on window, but we removed this since we could not be sure if people would be using bundlers which will not output a global.
https://github.com/alphagov/govuk_template/blob/master/source/views/layouts/govuk_template.html.erb#L113
We could consider, injecting a global whenever a component is loaded that can remove js-enabled.
Potentially something like:
```js
if (not already injected) {
   window.___GOVUKFrontendComponentInitialised___
}
```
// tabs.js
import 'inject-global-initialised'
// only injects if not already injected before
inject()

// rest of tabs code here

// template.njk

<script>if(!window.___GOVUKFrontendComponentInitialised___) { // remove js-enabled }</script>
</body>

https://trello.com/c/oRDkiAz9/1448-frontend-components-appeared-styled-when-js-blocked

E

Adding a list of scenarios from:

https://github.com/alphagov/govuk-frontend/pull/3095#issuecomment-1348771603

For context: We improved Accordion sections to be visible during page load in https://github.com/alphagov/govuk-frontend/pull/3053 but for slow-loading pages we saw a visual layout shift as each section flickered closed (from open) after initialisation
We'd like to review similar components load with:

JavaScript off
JavaScript on but crashed
JavaScript on but skipped checks
JavaScript on but took too long

(Where "skipped checks" could be an early return false after a query selector check fails)

An example of this came up last Friday in an incident on GOV.UK. A change was rolled out which introduced an error in their analytics JavaScript, which caused the JS for other components to fail. From their incident doc (internal, only visible to folks from GDS):

A change to JavaScript code in govuk_publishing_components that loads Google Analytics made it though to production in a bad release of Static, resulting in user interface code failing to load. This broke all JavaScript features (search button, menu bar etc.) on pages which have scroll-tracking analytics. This made all content behind "accordion" drop-down widgets — such as those on the www.gov.uk/coronavirus landing page — unviewable to Chrome and Firefox users.

Off the back of this, GOV.UK have wrapped the initialisation of each component in a try / catch block to try and limit the impact of errors in any individual JavaScript module.
Although we now have a recent example of why this is a problem, it's still come up (surprisingly) rarely since this issue was raised, so at the minute this isn't going to be prioritised over the work planned for the next quarter, but we hope to look at this soon.

Before they get lost, a scrappy attempt to capture potential ideas to explore from various people on Slack, in no particular order:

remove the js-enabled class from the body if an error occurs
consider using a different kind of progressive enhancement for the accordion – e.g. a link and a :target selector so we have a layout closer to the final one until JS kicks in
use <details> elements (probably not – see https://github.com/alphagov/govuk-frontend/pull/958#issuecomment-421365887, https://daverupert.com/2019/12/why-details-is-not-an-accordion/, https://adrianroselli.com/2019/04/details-summary-are-not-insert-control-here.html and https://www.scottohara.me/blog/2022/09/12/details-summary.html)
have a “smoke and mirrors” class that we temporarily add with a setTimeout? This is the maximum time the Accordion should stay closed to avoid layout shift. Bit like how we try to load an @font-face by staying blank before falling back, but ideally the Accordion would finish loading before the “smoke and mirrors” class gets removed—if not they fail safe to open state
our all.js script that initialises all of our modules would be subject to the same kind of issue that happened to GOV.UK. If an early module throws, later modules won’t get initialised. We’re quite defensive in the code initialising each module already to avoid throwing, but we may want to give it a proper look (and maybe implement something akin to the suggestion to wrap initialising loop in try/catch to let further modules work OK).
it’s also likely that many services have the same need of initialising multiple JavaScript modules in a row, without the failure of one breaking those that come after. It could be something we provide some solution for as part of govuk-frontend (not necessarily a trivial thing if we need to consider modules trying to call each other and maybe having to load asynchronously, so we may only be able to provide only part of a solution).

We've just implemented wrapping each module initialisation in a try/catch block. It should stop one module from taking down the whole page, but won't solve the accordion problem if it's the accordion that fails to initialise properly.


refactor: Remove redundant View castings in Android projects

Software and hardware versions
Latest code from development branch.
Problem description
Currently there are a lot of instances of redundant View castings in the project.
For eg.
infoPane = (LinearLayout) view.findViewById(R.id.sync_info_pane);

can be replaced by
infoPane = view.findViewById(R.id.sync_info_pane);

They were required before but aren't required now and Android studio suggests removing them.
Steps to reproduce the problem
NA
Expected behavior
They should be removed.
Other information
NA
@jbeorse Views ?
Quick win for first timers may be :smile:

@linl33 @wbrunette If this issue is still open, I would like to work on this.

@VarunT11 the issue is still open. I will assign it to you.

@wbrunette I have removed the Redundant View Castings from Android Library in https://github.com/odk-x/androidlibrary/pull/191.
Apart from this, I saw some Redundant Castings in Services also which were being suggested to be removed by Android Studio. So shall I remove those Redundant Castings also?

@VarunT11 Yes, please remove the ones in Services as well. Thank you.

@VarunT11 can you check out androidcommon, survey, and tables? Then we can close this issue. Good work!

@wbrunette Yes Sure! I will check these as well.

@wbrunette @linl33 While I was going through the code-base of Android Library, there were several instances of suggestion by Android Studio to replace some Anonymous Methods with Lambda Expressions.
For example, consider the following code snippet -
new DialogInterface.OnClickListener() {
              @Override
              public void onClick(DialogInterface dialog, int which) {

              //Some Code

              }
}

The above method was being suggested to be replaced with the following -
(dialog, which) -> {

              //Some Code

            }

This replacement would make some imports unusable and hence we can remove them too.
So shall I replace these Anonymous Methods with the Lambda Expressions?

Since the issue is specifically for redundant casts, let's stick to that. Also ODK-X still supports Android devices that run Android 7 that don't support Lamdas. I hope the Android compile system would handle it correctly but not worth creating weird bugs we would have to track down later.

Survey: Removed the Redundant Castings in https://github.com/odk-x/survey/pull/146.
Tables: Removed the Redundant Castings in https://github.com/odk-x/tables/pull/175.
Android Common: No Redundant Castings Found.

PS: @wbrunette @linl33 I have made the PRs. Please review them!


Type-narrowing doesn't work

Bug report
Description / Observed Behavior
const { data, isLoading } = useSWR<number>('/api/user/123', fetcher);

if (!isLoading) {
  data // number | undefined
}

Expected Behavior
It should be of type number.

I don't think useSWR returns isSuccess. Are you mistyping something @lcswillems ?

@Ram4GB My bad. Fixed the example!

I assume you request the user who is not found in your database or has been deleted by other actions. In this case, the API must throw the error with the status 400, so you won't access your data, and it has to return undefined. @lcswillems

Not sure to understand. I'm just saying if "isLoading" is false, then "data" should become of type "number".
It is a basic functionality of TanStack query: https://tanstack.com/query/latest/docs/framework/react/typescript#type-narrowing

But if fetching fails/errors, there won't be data, and it won't be loading either.

@icyJoseph Updated my example. Makes sense? Basically I'm asking for the same thing than TanStack Query.

Yes @lcswillems, your example is not clear to me. In your case, I believe we should get the type number instead of number | undefined.

Yes we should get the type number, it is what I say in the "expected behavior". Currently, the type is number | undefined (Observed behavior).


Fixed regression from 0.14.0

@systemcatch @crsmithdev we need to get this patch pushed ASAP since a recent change broke the install.
Fixes: https://github.com/crsmithdev/arrow/issues/598
This other PR I am working on should prevent such as issue from coming up in the future: https://github.com/crsmithdev/arrow/pull/597

Codecov Report

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

@@          Coverage Diff          @@
##           master   #599   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           7      7
  Lines        1501   1501
  Branches      225    225
=====================================
  Hits         1501   1501

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 cfafc0e...9d52ef3. Read the comment docs.

Codecov Report

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

@@          Coverage Diff          @@
##           master   #599   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           7      7
  Lines        1501   1501
  Branches      225    225
=====================================
  Hits         1501   1501

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 cfafc0e...9d52ef3. Read the comment docs.

Proof of fix:

The updated setup.py plays well with Tox now in this PR: https://github.com/crsmithdev/arrow/pull/597 (Tox uses the packaged version of arrow to run tests).

Oh dear, I wonder why that breakage wasn't caught by the tests.

the good news is @jadchaar is setting up tox which will catch packaging issues like this in the future 🎉 (#597)


Minimal .NET Frameworks supported version

Trying to install into .NET 4.6.1 /C' 5.0 project, got:
------- Installing...Microsoft.Extensions.Configuration.Json 2.1.1 -------
Adding 'Microsoft.Extensions.Configuration.Json 2.1.1' to ....
System.InvalidOperationException: Could not install package 'Microsoft.Extensions.Configuration.Json 2.1.1'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.6', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
   at NuGet.ProjectManager.ExtractPackageFilesToProject(IPackage package)
   at NuGet.ProjectManager.AddPackageReferenceToProject(IPackage package)
   at NuGet.ProjectManager.Execute(PackageOperation operation)
   at NuGet.ProjectManager.Execute(IPackage package, IPackageOperationResolver resolver)
   at NuGet.ProjectManager.AddPackageReference(IPackage package, Boolean ignoreDependencies, Boolean allowPrereleaseVersions)
   at NuGet.ProjectManager.AddPackageReference(String packageId, SemanticVersion version, Boolean ignoreDependencies, Boolean allowPrereleaseVersions)
   at ICSharpCode.PackageManagement.SharpDevelopPackageManager.AddPackageReference(IPackage package, Boolean ignoreDependencies, Boolean allowPrereleaseVersions)
   at ICSharpCode.PackageManagement.SharpDevelopPackageManager.InstallPackage(IPackage package, InstallPackageAction installAction)
   at ICSharpCode.PackageManagement.PackageManagementProject.InstallPackage(IPackage package, InstallPackageAction installAction)
   at ICSharpCode.PackageManagement.InstallPackageAction.ExecuteCore()
   at ICSharpCode.PackageManagement.ProcessPackageAction.<Execute>b__35_0()
   at ICSharpCode.PackageManagement.ProcessPackageAction.RunWithExceptionReporting(Action action)
   at ICSharpCode.PackageManagement.ProcessPackageAction.Execute()
   at ICSharpCode.PackageManagement.PackageActionRunner.Run(IPackageAction action)
   at ICSharpCode.PackageManagement.PackageViewModel.InstallPackageIntoProject(IEnumerable`1 installOperations)
   at ICSharpCode.PackageManagement.PackageViewModel.TryAddingPackage()
==============================

------- Installing...Microsoft.Extensions.Configuration 2.1.1 -------
Installing 'Microsoft.Extensions.Configuration 2.1.1'.
Added file 'Microsoft.Extensions.Configuration.dll' to folder 'Microsoft.Extensions.Configuration.2.1.1\lib\netstandard2.0'.
Added file 'Microsoft.Extensions.Configuration.xml' to folder 'Microsoft.Extensions.Configuration.2.1.1\lib\netstandard2.0'.
Added file 'Microsoft.Extensions.Configuration.2.1.1.nupkg' to folder 'Microsoft.Extensions.Configuration.2.1.1'.
Successfully installed 'Microsoft.Extensions.Configuration 2.1.1'.
Adding 'Microsoft.Extensions.Configuration 2.1.1' to Testauto.
System.InvalidOperationException: Could not install package 'Microsoft.Extensions.Configuration 2.1.1'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.6', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
   at NuGet.ProjectManager.ExtractPackageFilesToProject(IPackage package)
   at NuGet.ProjectManager.AddPackageReferenceToProject(IPackage package)
   at NuGet.ProjectManager.Execute(PackageOperation operation)
   at NuGet.ProjectManager.Execute(IPackage package, IPackageOperationResolver resolver)
   at NuGet.ProjectManager.AddPackageReference(IPackage package, Boolean ignoreDependencies, Boolean allowPrereleaseVersions)
   at NuGet.ProjectManager.AddPackageReference(String packageId, SemanticVersion version, Boolean ignoreDependencies, Boolean allowPrereleaseVersions)
   at ICSharpCode.PackageManagement.SharpDevelopPackageManager.AddPackageReference(IPackage package, Boolean ignoreDependencies, Boolean allowPrereleaseVersions)
   at ICSharpCode.PackageManagement.SharpDevelopPackageManager.InstallPackage(IPackage package, InstallPackageAction installAction)
   at ICSharpCode.PackageManagement.PackageManagementProject.InstallPackage(IPackage package, InstallPackageAction installAction)
   at ICSharpCode.PackageManagement.InstallPackageAction.ExecuteCore()
   at ICSharpCode.PackageManagement.ProcessPackageAction.<Execute>b__35_0()
   at ICSharpCode.PackageManagement.ProcessPackageAction.RunWithExceptionReporting(Action action)
   at ICSharpCode.PackageManagement.ProcessPackageAction.Execute()
   at ICSharpCode.PackageManagement.PackageActionRunner.Run(IPackageAction action)
   at ICSharpCode.PackageManagement.PackageViewModel.InstallPackageIntoProject(IEnumerable`1 installOperations)
   at ICSharpCode.PackageManagement.PackageViewModel.TryAddingPackage()
==============================

Trying to install into .NET 4.6.1

The error message suggests that you're attempting to install this in a .NET 4.6 targeting project.

You are trying to install this package into a project that targets '.NETFramework,Version=v4.6', but the package does not contain any assembly references or content files that are compatible with that framework

The 2.1 version of Extensions package support .NET 4.6.1 at minimum.


ES6 arrow syntax in Stores

let Store = Marty.createStore({
  getInitialState: function() {
    return {
      foo: 'bar'
    };
  },

  getFoo: () => this.state.foo
});

console.log(Store.getFoo()); #=> "Uncaught TypeError: Cannot read property 'state' of undefined"

Am I missing something or we can't use the ES6 arrow syntax in stores (in the same way that we can't do it with action creators)?
If so, should we add this warning to the docs as well?
Warning! Please avoid using es6 arrow syntax for your callbacks since they are bound to the current context.

Arrow functions wouldn't really make any sense here since its binding the functions context to this which is likely undefined or Window
"use strict"
console.log(this)  // undefined

var Store = Marty.createStore({
  getInitialState: function() {
    return {
      foo: 'bar'
    };
  },
  getFoo: (function () { return this.state.foo; }).bind(this)
});

Yes, I know. It was just for the syntactic sugar it provides :). That's why I suggest that we add the warning to the docs as well, should I submit a PR? A funny note: this points to the store on Chrome dev tools debugger :/

This is more of an EcmaScript thing, so I'm not sure it should be stated in the Marty docs. For a fat arrow, this is bound to the current context at the time of creation - if tried to use as above in the storeObject, it doesn't realize that it's inside a storeObject and that that should be the this
The same sort of behavior exists within React.createClass (where attempting to use fat arrows causes issues because you've re-bound this).

@hasdavidc true, it is already there in the action creators guide though, that's why I brought it up

That was a slightly special case due to having invokable constants. Now thats been depreciated (#93) so I've removed that warning from the docs

Oh, alright. I see, thanks for the explanation :)


Avoid lock poisoning by using parking_lot

The synchronization primitives in the standard library are not panic-safe, however the parking_lot crate provides drop-in replacement primitives which are.
Add the parking_lot crate as a dev dependency and update the tests to use it. This should make it easier to narrow down which test(s) in a group of tests are actually failing, since the entire group will no longer fail due to poisoning.

@asomers I'm not particularly attached to these changes, but they would have simplified some debugging I did at one point. The changes are also easy enough to recreate, should we want to rebase it onto other changes (like #1498).


Feature: odometry publish

Added

publish_odometry function
Demo code that executes the publish_odometry function in the fake robots

Removed
NONE
Fixed

fixed SSL use export in inorbit_edge/tests/demo/README.md

Could you also add odometry to the feature list on the main README?

Could you also add odometry to the feature list on the main README?

Hey, odometry is already there


Issue in universal kriging with external drift

While trying to do an external drift calculation I caught an error with the dimensions not match, however they do indeed match. I think issue is on line 341 of uk.py, the y dimension of external_drift is compared to the x dimension of external_drift_x.
            if external_drift.shape[0] != external_drift_y.shape[0] or \
               external_drift.shape[1] != external_drift_x.shape[0]: ### Here is the issue
                if external_drift.shape[0] == external_drift_x.shape[0] and \
                   external_drift.shape[1] == external_drift_y.shape[0]:
                    self.external_Z_drift = np.array(external_drift.T)
                else:
                    raise ValueError("External drift dimensions do not match provided "
                                     "x- and y-coordinate dimensions.")

Basically, I think this change should be made
               external_drift.shape[1] != external_drift_x.shape[1]:

@doylejg Indeed, it looks like there is indeed a typo there, thanks for reporting it!
As you have already made a fork of PyKrige, would you mind proposing a pull request to fix this issue ? :)
Since the current  changes in your fork appear to be more related to custom variogram models, as far as I understood, probably better to do that from a new branch. The steps would then be roughly as follows,
# 1.   Make a new branch, say drift-typo  from this point in the history
git checkout -b drift-typo
# 4. Fix the typo, commit and push back this branch to github
# edit files, commit etc.
git push origin drift-typo
# 5. make a new pull request from your  drift-typo branch to bsmurphy/PyKrige

Let me know it this doesn't work.

Thanks for getting on this @rth, and sorry it's taken me a little while to take a look at this. So, the way I wrote this originally, I believe external_drift should be dim MxN, where M is the number of y points and N is the number of x points. external_drift_x should be dim N or dim Nx1, and external_drift_y should be dim Mx1 or dim M. (This should be stated in UniversalKriging.__doc__) The code is expecting the coordinate arrays to be different dimensions than the external_drift array (i.e., they should be basically 1D, whereas the external drift grid is 2D). Are you trying to feed in x and y coordinate arrays that are the same shape as the external_drift array, like something you'd get from np.meshgrid()?

Yes my output is something similar to meshgrid because the x,y gird is not
regular. I have been looking at this code anyway, you have a pure python
loop. I replaced it with a scipy.interpolate.interp2d ,however with my
dataset I get memory errors.
On Mon, Feb 1, 2016 at 3:35 PM Benjamin Murphy<EMAIL_ADDRESS>wrote:

Thanks for getting on this @rth https://github.com/rth, and sorry it's
taken me a little while to take a look at this. So, the way I wrote this
originally, I believe external_drift should be dim MxN, where M is the
number of y points and N is the number of x points. external_drift_x
should be dim N or dim Nx1, and external_drift_y should be dim Mx1 or dim
M. (This should be stated in UniversalKriging.doc) The code is
expecting the coordinate arrays to be different dimensions than the
external_drift array (i.e., they should be basically 1D, whereas the
external drift grid is 2D). Are you trying to feed in x and y coordinate
arrays that are the same shape as the external_drift array, like
something you'd get from np.meshgrid()?
—
Reply to this email directly or view it on GitHub
https://github.com/bsmurphy/PyKrige/issues/13#issuecomment-178175251.

That wasn't a finished thought. I intend to do more work before submitting
a pull request.
On Mon, Feb 1, 2016 at 4:47 PM Jonathan Doyle<EMAIL_ADDRESS>wrote:

Yes my output is something similar to meshgrid because the x,y gird is not
regular. I have been looking at this code anyway, you have a pure python
loop. I replaced it with a scipy.interpolate.interp2d ,however with my
dataset I get memory errors.
On Mon, Feb 1, 2016 at 3:35 PM Benjamin Murphy<EMAIL_ADDRESS>wrote:

Thanks for getting on this @rth https://github.com/rth, and sorry it's
taken me a little while to take a look at this. So, the way I wrote this
originally, I believe external_drift should be dim MxN, where M is the
number of y points and N is the number of x points. external_drift_x
should be dim N or dim Nx1, and external_drift_y should be dim Mx1 or
dim M. (This should be stated in UniversalKriging.doc) The code is
expecting the coordinate arrays to be different dimensions than the
external_drift array (i.e., they should be basically 1D, whereas the
external drift grid is 2D). Are you trying to feed in x and y coordinate
arrays that are the same shape as the external_drift array, like
something you'd get from np.meshgrid()?
—
Reply to this email directly or view it on GitHub
https://github.com/bsmurphy/PyKrige/issues/13#issuecomment-178175251.

What exactly are you trying to do? What is the external drift that you're trying to use? The idea with the external scalar drift is that you have some known grid of points (say, a DEM) that you can use as a drift for the kriging interpolation of your dataset. If you know the value of the external drift at each of your data points (and at each of your interpolation points), then you can use the specified grid capability (check the doc strings). Otherwise, you might need to krige your drift term first, then use the output grid to krige your dataset (which is getting to the point that cokriging would be appropriate... not implemented yet though, sorry).

Also, you may have already figured this out, but the external grid drift should still work if the point spacing  isn't uniform. As long as the grid is rectangular and you have one drift value for every (x, y) point.
I avoid using scipy.interpolate.interp2d as sometimes very bad things can happen when using its spline routine. But using a linear scheme might be ok.

Okay this wasn't clear in the doc string, it seems from the code that the drift data is interpolated to the obs sites (hense the my trying interp2d). Is this correct?? Or should I select the drift at the same MxN points by hand first?

Yes, your first sentence is correct. If you have any rectangular grid of points (not necessarily with uniformly spaced x's and y's, although you need one grid value for every x,y pair), you can feed in the grid (2D), a 1D array of the x coordinates, and a 1D array of the y coordinates. The code will then do a bilinear interpolation to get the values from the external drift grid at your observation points and your interpolation points. The only assumption here is that your external drift is a rectangular grid.
You're right, currently the bilinear interpolation is implemented in a pure Python loop. (Hasn't been a problem for small to moderately sized datasets, but if you're getting memory errors your dataset is probably pretty big...) This certainly should be vectorized at some point. I don't really trust scipy's interpolation routines, as I've had some problems working with them in the past. I haven't extensively tried things out though, so if you can get scipy.interpolate.interp2d or something similar to work that would be fantastic.


Add remarks to clarify SetBackButtonTitle usage

Add remarks to clarify SetBackButtonTitle usage as SetBackButtonTitle usage can be confusing
https://github.com/xamarin/Xamarin.Forms/issues/8701#issuecomment-768937090

Docs Build status updates of commit d8844dd:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs/Xamarin.Forms/GridUnitType.xml
:warning:Warning

Details

docs/Xamarin.Forms/NavigationPage.xml
:white_check_mark:Succeeded

docs/Xamarin.Forms/GridUnitType.xml

Line 0, Column 0: [Warning-ECMA2Yaml_Enum_NoRemarks] Please note: <remarks> node on Enum fields will be ignored.

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 in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit d8844dd:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs/Xamarin.Forms/GridUnitType.xml
:warning:Warning

Details

docs/Xamarin.Forms/NavigationPage.xml
:white_check_mark:Succeeded

docs/Xamarin.Forms/GridUnitType.xml

Line 0, Column 0: [Warning-ECMA2Yaml_Enum_NoRemarks] Please note: <remarks> node on Enum fields will be ignored.

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 in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Microsoft support for Xamarin will end on May 1, 2024 for all Xamarin SDKs including Xamarin.Forms. In preparation for this, all issues and PRs in this repository are being closed.
.NET MAUI is the replacement for Xamarin.Forms, and its API docs are built from /// in the dotnet/maui repository. Therefore, any PRs for the .NET MAUI API docs should be opened in that repository.


Create Python Interface for GSD

Python Library for interacting with the GSD data, using a local cache rather than the REST API for speed of processing.

@joshbuker can you outline what interfaces would we like to have with the library.


Version number

Hi, could you please include some changelog or version number along with the code?
At this point it does not seem to be possible to tell what version we are currently using and if it is the latest one or not.
Thank you

All right, I've added it here: includes/Version.php
I didn't find a convenient way to fully automate updating the code, so I'll have to remember to edit the file before each release.

Thank you!


No ssh key path

I keep getting this error when following the provider example steps in the docs.
Even after exporting MNEMONIC.

Actually I checked the error, it couldn't find your ssh key file

Okay will close the issue.


Search for packages locally

At the moment Cloverfield searches for globally installed packages. We need to search for locally installed as well.

:+1:

After some code written and some additional thoughts, I believe for cloverfield we should stick to locally installed modules exclusively. And if necessary install missing scaffolds on-demand [#17].
Technically it would simplify the code a little bit - I would be able to do simple require(package.name) and then run it. Without any additional parsing of package.json.
But what is more important, it would be conceptually more correct - whatever cloverfield is working with is only stored locally, so it does not try to go beyond its own folder.
I will still make a PR with what is done, and we can update it later.

See #34. It works fine for now, but I would think about removing findGlobal (not 100% sure on that though)

:+1:


Headless CMS (tech overview) - quote at bottom

Make match original styling (text centered) and make background white.
current

original

@Katiemoser this can be edit in cms or in client ?

I don't think I have control over styling

approved.


Added reactiveX min operator

Added reactiveX min operator

Thank you for the PR.
Just a couple of things before we can review/merge this:

Travis is failing because the expected output for min-with-comparer.php doesn't match the actual output.
Tests for min are missing.  You can use MaxTest.php as an example.

@davidwdan
I'm see problem here.
Tests failed not on min operator, but on replay operator. My commit have all tests, and they passed.
PHP Warning:  assert(): output does not exist /home/travis/build/ReactiveX/RxPHP/docs/../demo/replay/replay.php.expect failed in /home/travis/build/ReactiveX/RxPHP/docs/doc-loader.php on line 75
Warning: assert(): output does not exist /home/travis/build/ReactiveX/RxPHP/docs/../demo/replay/replay.php.expect failed in /home/travis/build/ReactiveX/RxPHP/docs/doc-loader.php on line 75

The errors you've referenced don't make the tests fail.  They're just there so we know what operators need expect files.
The min-with-comparer.php demo expects:
Next value: 1
Complete!

but the actual is:
Next value: 9
Complete!

because of https://github.com/ReactiveX/RxPHP/pull/63/files#r67350130

Yes, my mistake. It is possible run tests without pull request?


About the training time

Hi, thanks for your excellent work. When re-producing the scanner scene 1 results, I found that it takes more than 1 day to train an MLP model on a single NVIDIA RTX3090 GPU, which is much longer than the reported time in your paper. Is this normal? Since I found that you always train 1000 epochs for each time, thus causing different training time for each scene.

Hi, the time is measured in a replica scene without saving visualization results. You are correct. Different scenes might have different training time.

Okay, thanks for your reply.


Add support for bucket logging

what

Add support for configuring bucket access logging

why

Support was missing

Addresses #10

/rebuild-readme

@tacchino could you please allow upstream maintainers to make changes to your branch?
https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork#:~:text=to your branch.-,Enabling repository maintainer permissions on existing pull requests,like to allow commits on.

@SweetOps not seeing that as an option, maybe due to the org i have it cloned into

@SweetOps see #57


[Minor Suggestion] vizviewer's CLI parameter is best assigned double quoted path. E.g. $ vizviewer "/path/to my google drive/my code/result.json"

Hi, just writing in to contribute a minor point. If the path to the viztracer result's json file contains spaces, then double quotes need to be applied around the path before assigning it as a CLI argument to viztracer.
Sometimes, users work with paths that contain spaces by default; Google drive paths appears to contain spaces by default like<EMAIL_ADDRESS>Drive/code/viztracer-result.json.
So:
$viztracer "/path/to my google drive/my code/result.json"

will work.
However, leaving out the double quotes won't work.
While running, Viztracer prints to stdout something like:
Use the following command to open the report:
vizviewer /path/to my google drive/my code/result.json

This command, when copied and applied directly, doesn't work. It might be a good idea to just add double quotes around that so that it reads:
Use the following command to open the report:
vizviewer "/path/to my google drive/my code/result.json"

Minor point, but I hope it helps 🙂

This sounds reasonable. I'll add it soon.


Test migration in existing projects

Test the migration instructions and @swisspost/design-system-migrations (based on #487) on at least 3 real projects.

Are the instructions correct?
Are the migrations doing their work and is the app still working afterwards?

Migrationtest with Project: kvm-app-web-client
Protocol:

clone repo

create clean test branche from origin/develop (test/migration-testing-design-system-4-to-5)

nvm use 13.14.0

npm install

npm uninstall @ch-post-common/common-web-frontend

npm install @swisspost/design-system-styles@beta

commit changes

visit https://update.angular.io/?v=12.0-13.0
ng update @angular/core@13 @angular/cli@13

commit changes

nvm use 16.17.1

npx ng update @swisspost/design-system-styles --from=4 --to=5 --migrate-only

Using package manager: 'npm'
Collecting installed dependencies...
Found 72 dependencies.
Migrations for package were not found.

nvm use 14.15.0

npm install @swisspost/design-system-migrations@beta

commit changes

nvm use 16.17.1

npx ng update @swisspost/design-system-styles --from=4 --to=5 --migrate-only

Using package manager: 'npm'
Collecting installed dependencies...
Found 73 dependencies.
** Executing migrations of package '@swisspost/design-system-styles' **

As of Design System v5 backgrounds make extensive use of CSS variables, therefore the .text-auto and .bg-[color]-opacity-80 classes are deprecated.
Migration completed.

https://getbootstrap.com/docs/5.0/migration/#badges.
Migration completed.

https://getbootstrap.com/docs/5.0/migration/#buttons.
Migration completed.

https://getbootstrap.com/docs/5.0/migration/#close-button.
Migration completed.

https://getbootstrap.com/docs/5.0/migration/#forms.
Migration completed.

https://getbootstrap.com/docs/5.0/migration/#rtl.
Migration completed.

no changes to commit :confused:

npm run start

Find & replace: @ch-post-common/common-web-frontend/ => @swisspost/design-system-styles/

Find & replace: @swisspost/design-system-styles/cwf => @swisspost/design-system-styles/core

Find & replace: @swisspost/design-system-styles/core' => @swisspost/design-system-styles/core' as post

Find & replace: cwf. => post.

I tested the migration on real projects and here are my feedback:
Uninstall the old packages

It would be nice to give the command: npm uninstall @ch-post-common/common-web-frontend @ch-post-common/common-web-frontend-intranet-header

Automatic migration tool

Potential changes must be committed before running the command, otherwise it throws an error
I had to install the migrations package, otherwise I was getting the error "The migrations for the package were not found".
Migrations didn't work properly: most didn't work at all and one replaced classes that shouldn't be changed
Should we drop this feature for now?

Component migration

There is a small typo: "by your self" should be replaced by "by yourself" or "by your own"
It would be nice to mention ngbButtonLabel in the NgBootstrap/Buttons section so that it's easier to find in a project

General remarks:

Overall, the migration documentation is comprehensive and easy to follow
In order to migrate the projects I had to follow almost the same steps as described by Oliver in the comment above
Migration schemes do not currently work in real projects - to be investigated
It seems important to specify that the migration must be done after switching to Angular@13 and NgBootstrap@12, it would be nice to add an overview of the dependencies like https://www.npmjs.com/package/@ng-bootstrap/ng-bootstrap
Search and replace is not documented, but is needed in most cases

@alizedebray, the reason we cannot provide the uninstall command is, the internal package names are a secret that should not be made public due to dependency confusion attacks.

@alizedebray Some Changes have allready been implemented in the migrations documentation before.
See: PR #590.
I marked those changes in your comment above.
Some other CRs are not 100% clear (I marked them with :o:), please feel free to include the desired changes in the corresponding branch.

When updating angular (for example from v12 to v13):
https://update.angular.io/?v=12.0-13.0 tells you to run the command: ng update @angular/core@13 @angular/cli@13
If the installation fails, because of incompatible or missing peer dependencies:

Install the missing peer dependencies first: npm i tslib@2
Then add the incompatible peer dependencies to the update command and use the given main versions to update to.
In the above case the command would become:
ng update @angular/core@13 @angular/cli@13 @angular-eslint/schematics@13 @ngrx/effects@13 @ngrx/store@13


Fixes: #564 Left task menu Issue

fixes: #564

Defined a function to replace thenewboston with TNB.
thenewboton-python => TNB-python
thenewboton-python-client => TNB-python-client

Added thenewboston-python-client repository to the task

Screenshot:

Account:
0f92e975101eb96cea80dce430d74efd3172fa229377818d467ded85dcf2ab6c

@thesanjeevsharma please review the PR. Thanks

Hello @manishram , thank you for contributing. Please do not tag the team member on every PR, we are getting trough the PRs ass fast as we can.
I would suggest some changes to your solution before we merge this PR, as the current solution will not work if for example in the future we have another repository with longer name that does not contain the word thenewboston.
My suggestion would be to edit the REPOSITORIES list in src/components/FlatNavLinks/index.tsx to be a json object instead of a string, for example:
{title: 'Account-Manager', url: Repository.accountManager},
This way we can always choose a different name, not depending on the URL and then in src/components/FlatNavLinks/index.tsx you can use option.title to to show the title and option.url for the rest.

Yeah sure.

Actually, Hristijan95 told me to go with another approach that he described above which seems to be more accurate.

Ok, @ me when you submit the changes.

Getting some errors. I'll push changes one done.

Prettier Error?

@accessdeniedIT Not with Prettier. But actual code maybe I am doing something wrong.

Not ready yet. Need to fix Teams as well.

Ready for review.


fix: disable vote button after voting

Summary
closes #6184
Testing
Platforms

Desktop

[ ] MacOS
[ ] Linux
[x] Windows

Mobile

[ ] iOS
[ ] Android

Checklist

[x] I have followed the contribution guidelines for this project
[x] I have performed a self-review of my own code
[ ] I have commented on my code, particularly in hard-to-understand areas
[ ] I have added or modified tests that prove my changes work as intended
[x] I have verified that new and existing unit tests pass locally with my changes
[x] I have verified that my latest changes pass CI workflows for testing and linting
[ ] I have made corresponding changes to the documentation

One last piece of feedback before I think it's ready to be merged:
When I click the "Stop voting" button, the spinner shows for both this and the "Vote" button instead of just showing for the "Stop voting" button while keeping the "Vote" button disabled. There was also 1-2 seconds after stopping a vote where the "Stop voting" button was active / "Vote" was disabled then it switched.

Some minor feedback:

When I voted, I had to re-navigate back to the proposal details view for the "Stop voting" button to become enabled. Once the tx confirmed and the pulsing icons showed up, the "Stop voting" button was disabled along with the "Vote" button.
I stopped voting then voted again for a proposal (without changing views), but the pulsing icons didn't show up until I re-navigated back to that view.


[Feature Request] make pinned tabs go in 3's

hey there, im switching from arc to zen and one peeve i have is that in arc, i had my pinned tabs in a 3x3 order, but in zen pinned tabs go in 4's, could SuperPins add a way to change the sidebar around to allow this?

Hey, the number of pins per row is dynamic depending on the size of the sidebar/tabbar. So if you make it smaller/wider, there are less/more pinned tabs per row (the same way arc does it)

Here. I also like the 3 pins per row and use it like that, just decrease the size of the sidebar :)

Is there any way to have the sidebar smaller and the icons more square, I’ve set it like this just now and it’s fine for now but I’m just wondering as I don’t want the sidebar to be too big.

Well, regarding the more square icons there is an option for that in the Mod Settings (if you mean that).
Regarding making the sidebar smaller while still having 3 Pins per row, i guess you could enable the compact margins setting, which gives you a tiny bit more headroom. If you know how to edit the source file of the mod you could change the width of the pins to your liking.
Maybe I'll add a dropdown menu where one can set the width of pins in the future

Alright then, thank you!


when running  pd.read_sql(sql=qury,con=connstring, chunksize= chunk_size)) throws the error  TypeError: object of type 'generator' has no len()

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04):Ubuntu 18.04.1
Modin installed from (source or binary):binary
Modin version:0.6.3
Python version:3.6.8
Exact command to reproduce:pd.read_sql(sql=qury,con=connstring, chunksize= chunk_size))

Describe the problem
when running
pd.read_sql(sql=qury,con=connstring, chunksize= chunk_size)) throws the error
TypeError: object of type 'generator' has no len()
Source code / logs
source code

limit=200000
chunk_size=40000
for from_row in range(1390001, rows, limit):
...     qury = f'''
...             SELECT
...                     *
...             FROM
...                     paper
...             ORDER BY
...                     id
...             LIMIT {limit} OFFSET {from_row}
...             '''
...     for i, chunk in enumerate(pd.read_sql(sql=qury,con=connstring, chunksize= chunk_size)):
...             chunk.to_csv('Data/paper/test/paper_fromRow_'+str(from_row)+ 'chunk' + str(i+1)+'-'+str(chunk_size)  +'.csv', index=False)

Traceback (most recent call last):
File "", line 11, in
File "lib/python3.6/site-packages/modin/pandas/io.py", line 321, in read_sql
return DataFrame(query_compiler=BaseFactory.read_sql(**kwargs))
File "lib/python3.6/site-packages/modin/data_management/factories.py", line 148, in read_sql
return cls._determine_engine()._read_sql(**kwargs)
File "lib/python3.6/site-packages/modin/data_management/factories.py", line 152, in _read_sql
return cls.io_cls.read_sql(**kwargs)
File "lib/python3.6/site-packages/modin/engines/ray/generic/io.py", line 509, in read_sql
index_lens = ray.get(index_ids)
File "lib/python3.6/site-packages/ray/worker.py", line 2247, in get
raise value
ray.exceptions.RayTaskError: ray_worker (pid=26249, host=life)
File "lib/python3.6/site-packages/modin/engines/ray/pandas_on_ray/io.py", line 99, in _read_sql_with_limit_offset
index = len(pandas_df)
TypeError: object of type 'generator' has no len()

Hi @sumepr , thanks for reporting this !
This looks like a bug. We are missing support for read_sql() when chucksize is given and a generator is returned and not a Dataframe.
In the mean while, if what you need is to save chunks of the queries to different csv file, I suggest a work around using a while loop and adding dynamic LIMIT and OFFSET to you query at each iteration. Similar to the following:
chunksize = 10
offset = 0
while True:
    df = pd.read_sql(sql="SELECT * FROM boston_housing LIMIT {} OFFSET {}".format(chunksize, offset), con=conn)
    if len(df) == 0:
        break
    df.to_csv("tmp-{}-{}.csv".format(offset, offset+chunksize-1))
    offset += chunksize

Let me know if this helps and thanks again for reporting !

@devin-petersohn I was thinking about wrapping the read_sql() implementation with a generator for when chucksize is passed. We can use the OFFSET and LIMIT here as well. The question is where to place this code. If in modin.pandas.io then it would look something like this
_, _, _, kwargs = inspect.getargvalues(inspect.currentframe())
    if chunksize is not None:
        kwargs["chunksize"] = None

        def query_iterator():
            offset = 0
            while True:
                kwargs["sql"] = "SELECT * FROM ({}) LIMIT {} OFFSET {}".format(sql, chunksize, offset)
                offset += chunksize
                df = DataFrame(query_compiler=BaseFactory.read_sql(**kwargs))
                if df.empty:
                    break
                else:
                    yield df

        return query_iterator()

    return DataFrame(query_compiler=BaseFactory.read_sql(**kwargs))

Does this makes sense?
If so, where would you suggest to place this code?

@eavidan There is one other option for putting the logic in modin.pandas.io. I'll lay out here so we can evaluate probably.
_, _, _, kwargs = inspect.getargvalues(inspect.currentframe())
kwargs["chunksize"] = None
df = DataFrame(query_compiler=BaseFactory.read_sql(**kwargs))
if chunksize is not None:
    num_chunks = len(df) // chunksize if len(df) % chunksize == 0 else len(df) // chunksize + 1
    return (df.iloc[i * chunksize: (i + 1) * chunksize] for i in num_chunks)
else:
    return df

This would establish the connection to the database once and read once. The downside of this approach is that the number of partitions won't be the same. Often people use chunksize when they are manually parallelizing their code, so I am not sure that we need to be worried about the number of partitions.
We could handle the chunksize argument for all readers this way. Currently on all readers we default to pandas for the chunksize argument. Do you have thoughts on this approach?

@devin-petersohn this sounds like a good solution, assuming that the chucks are indeed small enough and will not benefit from partitioning as well. My only thought is that, hypothetically, reading in chucks should not have an effect on scalability. I do agree that usually reading chunks is done by people who want to parallelizing their code, and in this case defaulting to pandas makes sense as well.
I was thinking that if I have a huge data set that I would like to read in chunks, since my cluster (or super computer) RAM is simply not enough. I would like those huge chunks to get the benefits of Modin partitioning.
This could be a stretch, so we could start with simply defaulting to pandas, to resolve this bug, and add a more robust support later if needed.
what do you think?

I think that makes sense. The partitioning shouldn't be too big of an issue and the scalability of .iloc should be pretty good right now (although there is probably more that can be done here).
I like your suggestion to resolve the bug first, then decide after. We will probably want a separate issue to track that.

Closing via #920. #923 was opened to track supporting this feature without defaulting to pandas.


Case sensitive filenames

On linux filesystem is case sensitive so there were a couple of errors when trying out the demo.
For example in Jump.gd:1

extends "../motion.gd"
instead of
extends "../Motion.gd"

I guess a couple of files were recently renamed.

This is also highly likely to break in an exported version of the game, because the .pck internal filesystem is case-sensitive.


[9.x] Tweak title to match the test name in TrimStringsTest

Seems to have conflicts.

Sorry for the confusion, I must have made a git error because this change has already been merged.
Closing this PR.