Route /w passthrough changes server certificate passed to client

General information

OS: Linux (Fedora 31 x86_64)
Hypervisor: libvirtd
Did you run crc setup before starting it ? yes

CRC version
CodeReady Containers version: 1.20.0+ef3f80d
OpenShift version: 4.6.6 (embedded in executable)

CRC status
CRC VM:          Running
OpenShift:       Running (v4.6.6)
Disk Usage:      14.46GB of 32.72GB (Inside the CRC VM)
Cache Usage:     38.7GB
Cache Directory: /home/howard/.crc/cache

CRC config
- http-proxy                            : http://squid.corp.redhat.com:3128
- https-proxy                           : http://squid.corp.redhat.com:3128
- memory                                : 10240
- no-proxy                              : .testing,localhost,<IP_ADDRESS>,<IP_ADDRESS>/12,<IP_ADDRESS>/24,<IP_ADDRESS>/24,<IP_ADDRESS>/24,<IP_ADDRESS>/24

Host Operating System
# Put the output of `cat /etc/os-release` in case of Linux
NAME=Fedora
VERSION="31 (Workstation Edition)"
ID=fedora
VERSION_ID=31
VERSION_CODENAME=""
PLATFORM_ID="platform:f31"
PRETTY_NAME="Fedora 31 (Workstation Edition)"
ANSI_COLOR="0;34"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:31"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f31/system-administrators-guide/"
SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=31
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=31
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
VARIANT="Workstation Edition"
VARIANT_ID=workstation

Steps to reproduce

Create a pod that listens on port 61617 with ssl enabled. (in my case one of 2 amq-broker pods deployed via amq broker operator). service for this port is exposed and a route with passthrough is exposed for it.
Create a java client to connect to the pod using the route.
Run the client and watch the result

Expected
The client should be able to connect and send/receive messages.
Actual
The client can't establish the connection. Instead it gets the following error:
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
....

Logs
https://gist.github.com/gaohoward/ccfdda10c24069de2ccebdf60f5d7133
Some observations that I think it may related to this issue:

In the logs I can see the server certificate passed in to client is like:

"certificate" : {
    "version"            : "v3",
    "serial number"      : "01",
    "signature algorithm": "SHA256withRSA",
    "issuer"             : "CN=ingress-operator@1606998023",
    "not before"         : "2020-12-03 12:20:23.000 UTC",
    "not  after"         : "2022-12-03 12:20:24.000 UTC",
    "subject"            : "CN=ingress-operator@1606998023",
    "subject public key" : "RSA",
    "extensions"         : [
      {
        ObjectId: <IP_ADDRESS> Criticality=true
        BasicConstraints:[
          CA:true
          PathLen:0
        ]
      },
      {
        ObjectId: <IP_ADDRESS> Criticality=true
        KeyUsage [
          DigitalSignature
          Key_Encipherment
          Key_CertSign
        ]
      },
      {
        ObjectId: <IP_ADDRESS> Criticality=false
        SubjectKeyIdentifier [
        KeyIdentifier [
        0000: E1 5F EA D7 0D DA 52 6F   D8 39 02 5C 4F AB A9 25  ._....Ro.9.\O..%
        0010: 31 20 7E 77                                        1 .w
        ]
        ]
      }
    ]}
]
)

However the client would expect the certificate to be like:
  "certificate" : {
    "version"            : "v3",
    "serial number"      : "6A E0 76 00",
    "signature algorithm": "SHA256withRSA",
    "issuer"             : "CN=Tom Ross, OU=GSS, O=Red Hat, L=Reading, ST=Berks, C=UK",
    "not before"         : "2020-12-16 03:00:32.000 UTC",
    "not  after"         : "2030-12-14 03:00:32.000 UTC",
    "subject"            : "CN=Tom Ross, OU=GSS, O=Red Hat, L=Reading, ST=Berks, C=UK",
    "subject public key" : "RSA",
    "extensions"         : [
      {
        ObjectId: <IP_ADDRESS> Criticality=false
        SubjectKeyIdentifier [
        KeyIdentifier [
        0000: 29 08 A8 D4 11 B9 59 14   9D CC D4 91 79 2D 54 10  ).....Y.....y-T.
        0010: 67 D7 5E 54                                        g.^T
        ]
        ]
      }
    ]}

If I use directly the service ClusterIP to connect to the pod service, the client works as expected. i.e. it can find the trusted
cert and send/receive message successfully.

can you share the route/service yaml definitions that you use? By any chance, did you test these steps against a production openshift cluster, and  did it behave differently? I'm asking to try to understand if this is a crc-specific behaviour, or if this is a more general OpenShift issue.

@cfergeau Thanks for fast response. Maybe it's helpful that I provide a bit background:
I'm having this issue while investigating a more complex test scenario where  the broker pod was accessed by a MDB in a eap pod.
So I simplified the case a bit and hopefully I can get some clue.
I didn't test it on production openshift cluster.
I'll share the yamls following this.

`[howard@localhost 4362]$ oc get route ex-aao-all-0-svc-rte -o yaml
apiVersion: route.openshift.io/v1
kind: Route
metadata:
annotations:
openshift.io/host.generated: "true"
creationTimestamp: "2020-12-17T08:57:58Z"
labels:
ActiveMQArtemis: ex-aao
application: ex-aao-app
statefulset.kubernetes.io/pod-name: ex-aao-ss-0
managedFields:

apiVersion: route.openshift.io/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:labels:
.: {}
f:ActiveMQArtemis: {}
f:application: {}
f:statefulset.kubernetes.io/pod-name: {}
f:ownerReferences:
.: {}
k:{"uid":"9c509aee-5e4e-4aba-aeec-a20bd11147a7"}:
.: {}
f:apiVersion: {}
f:blockOwnerDeletion: {}
f:controller: {}
f:kind: {}
f:name: {}
f:uid: {}
f:spec:
f:port:
.: {}
f:targetPort: {}
f:tls:
.: {}
f:insecureEdgeTerminationPolicy: {}
f:termination: {}
f:to:
f:kind: {}
f:name: {}
f:weight: {}
f:wildcardPolicy: {}
manager: activemq-artemis-operator
operation: Update
time: "2020-12-17T08:57:58Z"
apiVersion: route.openshift.io/v1
fieldsType: FieldsV1
fieldsV1:
f:status:
f:ingress: {}
manager: openshift-router
operation: Update
time: "2020-12-17T08:57:58Z"
name: ex-aao-all-0-svc-rte
namespace: default
ownerReferences:
apiVersion: broker.amq.io/v2alpha4
blockOwnerDeletion: true
controller: true
kind: ActiveMQArtemis
name: ex-aao
uid: 9c509aee-5e4e-4aba-aeec-a20bd11147a7
resourceVersion: "45307"
selfLink: /apis/route.openshift.io/v1/namespaces/default/routes/ex-aao-all-0-svc-rte
uid: 558c5b0d-6c1f-42f0-b518-6951ae88e589
spec:
host: ex-aao-all-0-svc-rte-default.apps-crc.testing
port:
targetPort: all-0
tls:
insecureEdgeTerminationPolicy: None
termination: passthrough
to:
kind: Service
name: ex-aao-all-0-svc
weight: 100
wildcardPolicy: None
status:
ingress:
conditions:

lastTransitionTime: "2020-12-17T08:57:58Z"
status: "True"
type: Admitted
host: ex-aao-all-0-svc-rte-default.apps-crc.testing
routerCanonicalHostname: apps-crc.testing
routerName: default
wildcardPolicy: None
`

`[howard@localhost 4362]$ oc get service ex-aao-all-0-svc -o yaml
apiVersion: v1
kind: Service
metadata:
creationTimestamp: "2020-12-17T08:57:57Z"
labels:
ActiveMQArtemis: ex-aao
application: ex-aao-app
managedFields:

apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:labels:
.: {}
f:ActiveMQArtemis: {}
f:application: {}
f:ownerReferences:
.: {}
k:{"uid":"9c509aee-5e4e-4aba-aeec-a20bd11147a7"}:
.: {}
f:apiVersion: {}
f:blockOwnerDeletion: {}
f:controller: {}
f:kind: {}
f:name: {}
f:uid: {}
f:spec:
f:ports:
.: {}
k:{"port":61617,"protocol":"TCP"}:
.: {}
f:name: {}
f:port: {}
f:protocol: {}
f:targetPort: {}
f:publishNotReadyAddresses: {}
f:selector:
.: {}
f:ActiveMQArtemis: {}
f:application: {}
f:statefulset.kubernetes.io/pod-name: {}
f:sessionAffinity: {}
f:type: {}
manager: activemq-artemis-operator
operation: Update
time: "2020-12-17T08:57:57Z"
name: ex-aao-all-0-svc
namespace: default
ownerReferences:
apiVersion: broker.amq.io/v2alpha4
blockOwnerDeletion: true
controller: true
kind: ActiveMQArtemis
name: ex-aao
uid: 9c509aee-5e4e-4aba-aeec-a20bd11147a7
resourceVersion: "45273"
selfLink: /api/v1/namespaces/default/services/ex-aao-all-0-svc
uid: dfca956c-f5d1-4e39-82b9-81120c82df63
spec:
clusterIP: <IP_ADDRESS>
ports:
name: all-0
port: 61617
protocol: TCP
targetPort: 61617
publishNotReadyAddresses: true
selector:
ActiveMQArtemis: ex-aao
application: ex-aao-app
statefulset.kubernetes.io/pod-name: ex-aao-ss-0
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
`

And here is some relevant debug message when I directly use service's ClusterIP to connect, you can see the client found the trusted cert.
javax.net.ssl|FINE|0B|Thread-0 (ActiveMQ-client-netty-threads)|2020-12-17 13:03:46.052 UTC|Logger.java:765|Consuming server Certificate handshake message (
"Certificates": [
  "certificate" : {
    "version"            : "v3",
    "serial number"      : "6A E0 76 00",
    "signature algorithm": "SHA256withRSA",
    "issuer"             : "CN=Tom Ross, OU=GSS, O=Red Hat, L=Reading, ST=Berks, C=UK",
    "not before"         : "2020-12-16 03:00:32.000 UTC",
    "not  after"         : "2030-12-14 03:00:32.000 UTC",
    "subject"            : "CN=Tom Ross, OU=GSS, O=Red Hat, L=Reading, ST=Berks, C=UK",
    "subject public key" : "RSA",
    "extensions"         : [
      {
        ObjectId: <IP_ADDRESS> Criticality=false
        SubjectKeyIdentifier [
        KeyIdentifier [
        0000: 29 08 A8 D4 11 B9 59 14   9D CC D4 91 79 2D 54 10  ).....Y.....y-T.
        0010: 67 D7 5E 54                                        g.^T
        ]
        ]
      }
    ]}
]
)
javax.net.ssl|FINE|0B|Thread-0 (ActiveMQ-client-netty-threads)|2020-12-17 13:03:46.057 UTC|Logger.java:765|Found trusted certificate (
  "certificate" : {
    "version"            : "v3",
    "serial number"      : "6A E0 76 00",
    "signature algorithm": "SHA256withRSA",
    "issuer"             : "CN=Tom Ross, OU=GSS, O=Red Hat, L=Reading, ST=Berks, C=UK",
    "not before"         : "2020-12-16 03:00:32.000 UTC",
    "not  after"         : "2030-12-14 03:00:32.000 UTC",
    "subject"            : "CN=Tom Ross, OU=GSS, O=Red Hat, L=Reading, ST=Berks, C=UK",
    "subject public key" : "RSA",
    "extensions"         : [
      {
        ObjectId: <IP_ADDRESS> Criticality=false
        SubjectKeyIdentifier [
        KeyIdentifier [
        0000: 29 08 A8 D4 11 B9 59 14   9D CC D4 91 79 2D 54 10  ).....Y.....y-T.
        0010: 67 D7 5E 54                                        g.^T
        ]
        ]
      }
    ]}
)

My test client doesn't connect if using this connection url:
tcp://ex-aao-all-0-svc-rte-default.apps-crc.testing:443?sslEnabled=true&trustStorePath=client.ts&trustStorePassword=secret&sniHost=localhost
and works with this url:
tcp://<IP_ADDRESS>:61617?sslEnabled=true&trustStorePath=/etc/amq-broker-ssl-secret-volume/client.ts&trustStorePassword=secret&sniHost=localhost
<IP_ADDRESS> is the service's ClusterIP
Not sure if that can give some more relevant details, but anyway.

sniHost=localhost? I'd expect ex-aao-all-0-svc-rte-default.apps-crc.testing in order to match spec.host in the route yaml?

Might be worth looking at the certs returned by openssl s_client ex-aao-all-0-svc-rte-default.apps-crc.testing:443 |openssl x509 -text and compare with what your client application is getting

That 'localhost' is to match the sniHost on the server pod (broker) side. Here is the server port settings:
tcp://ex-aao-ss-0.ex-aao-hdls-svc.default.svc.cluster.local:61617?protocols=AMQP,CORE,HORNETQ,MQTT,OPENWIRE,STOMP;sslEnabled=true;keyStorePath=/etc/amq-broker-ssl-secret-volume/broker.ks;keyStorePassword=secret;trustStorePath=/etc/amq-broker-ssl-secret-volume/client.ts;trustStorePassword=secret;;sslProvider=JDK;sniHost=localhost;anycastPrefix=jms.queue.;multicastPrefix=jms.topic.;connectionsAllowed=10;tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;useEpoll=true;amqpCredits=1000;amqpMinCredits=300

Not sure what that means but I get this output:
[howard@localhost ssl-test-client]$ openssl s_client ex-aao-all-0-svc-rte-default.apps-crc.testing:443 |openssl x509 -text
139646888531776:error:14094458:SSL routines:ssl3_read_bytes:tlsv1 unrecognized name:ssl/record/rec_layer_s3.c:1543:SSL alert number 112
unable to load certificate
140097557231424:error:0909006C:PEM routines:get_name:no start line:crypto/pem/pem_lib.c:745:Expecting: TRUSTED CERTIFICATE

That 'localhost' is to match the sniHost on the server pod (broker) side. Here is the server port settings:

What I'm worried is that when you connect to ex-aao-all-0-svc-rte-default.apps-crc.testing:443, the route selection (and thus the certificate to return) uses SNI. If you indicate localhost, then the cluster would return the wrong certs.

Tried remote 'sniHost' from both server and client side. Now the client can connect successfully.

Is that by design that route treat localhost sniHost this way?

It's not really localhost which is special here. If you set sniHost to anything but ex-aao-all-0-svc-rte-default.apps-crc.testing, you wont get the certificates that you specified for the ex-aao-all-0-svc-rte-default.apps-crc.testing route.
As far as I understand, this is the purpose of SNI, ie TLS certificate selection when one daemon listening on a single port must provide different certs for different domains.

I see. Thanks @cfergeau.

Hi @cfergeau
I did some more test scenarios:

Changed sniHost to somehost instead of localhost on both client and server pod. The router seems still
return its own cert to client. The client url is like:

tcp://ex-aao-all-0-svc-rte-default.apps-crc.testing:443?sslEnabled=true&**sniHost=somehost**&trustStorePath=client.ts&trustStorePassword=secret
Resulting in same exception:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
2. Then remove sniHost from client, url like this:
tcp://ex-aao-all-0-svc-rte-default.apps-crc.testing:443?sslEnabled=true&trustStorePath=client.ts&trustStorePassword=secret
and got a different exception:
javax.net.ssl.SSLException: Received fatal alert: unrecognized_name
This actually was from server pod because on server log I see this:
SSL handshake failed for client from /<IP_ADDRESS>:35820: javax.net.ssl.SSLHandshakeException: Unrecognized server name indication.
It looks like if client doesn't supply a sniHost, the route will pass its own host name to the server.

We had the same problem when trying to connect though the AMQ OpenShift Route from some EAP POD to the AMQ Broker POD;
We deployed the AMQ Broker using the AMQ Operator with the following CR:
apiVersion: broker.amq.io/v2alpha4 kind: ActiveMQArtemis metadata:   name: amq-broker   namespace: somenamespace spec:   acceptors:     - port: 61617       verifyHost: false       expose: true       multicastPrefix: jms.topic.       name: all       connectionsAllowed: 10       sslEnabled: true       sniHost: localhost       protocols: all       sslSecret: amq-broker-ssl-secret       sslProvider: JDK       anycastPrefix: jms.queue.   connectors:     - port: 22222       verifyHost: true       wantClientAuth: true       expose: true       enabledCipherSuites: 'SSL_RSA_WITH_RC4_128_SHA,SSL_DH_anon_WITH_3DES_EDE_CBC_SHA'       host: localhost       needClientAuth: true       name: connector0       sslEnabled: false       sniHost: localhost       enabledProtocols: 'TLSv1,TLSv1.1,TLSv1.2'       sslProvider: JDK   console:     expose: true   deploymentPlan:     image: 'registry.redhat.io/amq7/amq-broker:7.6'     journalType: nio     messageMigration: false     persistenceEnabled: false     requireLogin: false     size: 2   upgrades:     enabled: false     minor: false
Removing the sniHost: localhost solved the issue

Hi,
Can someone help with this? The issue is still seeing by more users.
Thanks

@gaohoward will look into this.

The issue is still seeing by more users.

So far we have only seen people dealing with 'Artemis' to report this... you and Tommasso. Can you explain in short what the issue is and it prevents for you.

Artemis documentation contains this about sniHost:

When used on an acceptor the sniHost is a regular expression used to match the server_name extension on incoming SSL connections. If the name doesn't match then the connection to the acceptor will be rejected. A WARN message will be logged if this happens. If the incoming connection doesn't include the server_name extension then the connection will be accepted.

When used on a connector the sniHost value is used for the server_name extension on the SSL connection.

My feeling is that in the ActiveMQArtemis CDR, sniHost should not be localhost, but unspecified as noted by Tommaso, or set to match the route it is exposed as?

@praveenkumar Unfortunately I haven't tested on production environment. I'm working on artemiscloud project which is an operator for amq-brokers on k8s and openshift. One of our EAP users has a test case where this issue occurs.
Tommasso may have seen it in his production environment. So I'm pretty convinced that there is a real issue about route.
To summerize the issue in a few points according to my observation:

A broker pod has a SSL/TLS port listening and exposed as a service. The broker is setup with a sniHost=localhost and a certificate associated with "localhost"
a route with passthrough policy is deployed to route traffic to the above service
an external client tries to connect the service through the route
if client connects with "sniHost=localhost" specified, the route seems to pass the information to broker and broker returns the 'localhost' certificate back. however the route seems to drop the certificate and instead pass its own certificate to client, which client doesn't trust, therefore connection failed.
if client connects with no sniHost at all, the route seems to pass its own host name (e.g. ex-aao-all-0-svc-rte-default.apps-crc.testing) as sniHost to broker, which broker doesn't have any record in its sniHost list, therefore broker throws error like: SSL handshake failed for client from /<IP_ADDRESS>:35820: javax.net.ssl.SSLHandshakeException: Unrecognized server name indication. and the connection failed.

So I'm not sure this is what a 'passthrough' route should behave. I mean why route interferes with client-server SSL handshake by changing the sniHost setting from client and server/broker? Or is it a matter of router administration/configuration so a 'passthough' route can behave differently?

The broker is setup with a sniHost=localhost and a certificate associated with "localhost"

But is this correct? If you are connecting to your broker from an external hostname, and are connecting to it with TLS passthrough, you'll need a certificate associated with this external hostname?

if client connects with no sniHost at all, the route seems to pass its own host name [...]
I mean why route interferes with client-server SSL handshake by changing the sniHost setting from client and server/broker?

I think this is how SNI works, and it's probably the client which sets SNI to the hostname you connect to when it's not specified. See https://aws.amazon.com/blogs/networking-and-content-delivery/unpacking-sni-based-ssl-and-dedicated-ip-ssl-for-amazon-cloudfront/
https://www.me2digital.com/blog/2019/05/haproxy-sni-routing/ says that this is how OpenShift routing works, through SNI.
The only way to use your route and its certificates is probably to have the right host in SNI, not localhost.


Tests: Clean up and automate repository for Swift object store test Docker image

As a part of https://github.com/thanos-io/thanos/pull/4735#issuecomment-953757577, we have now forked https://github.com/thanos-community/docker-swift-onlyone-authv2-keystone which contains code to build a Docker image required for our Swift object store tests. However, we should improve on this, namely by:

Allowing issues on the repo, so we can track things in there (this is not turned on by default for forks)
Cleaning-up the repo (Remove docs / information which is not applicable)
Automating Docker image build + push for each change (right now it has to be done manually)

Valid ☝

Can I pick this up?

Hi @deepto98 absolutely go for it!

Hey @matej-g , can i work on this?

Hi! Is this still relevant, @matej-g?


Fresh install on debian missing themes seen in OS X?

Installed using these instructions yesterday on OS X and was thrilled.  Attempted to replicate setup on debian (Linux cloud 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux) and only seeing some prompt themes:
Currently available prompt themes:
adam1 adam2 bart bigfade clint elite2 elite fade fire off oliver pws redhat suse walters zefram
Missing steeef and sorin, plus potentially others.

You didn't install it properly. Try again from scratch.

@sorin-ionescu: after re-following the instructions here: https://github.com/sorin-ionescu/prezto and reviewing here: https://wiki.archlinux.org/index.php/Zsh#Prompts and here: http://linhmtran168.github.io/blog/2013/12/15/ditching-oh-my-zsh-for-prezto/ , the output of prompt -l only shows 16 themes...  What am I doing wrong?

cloud% prompt -l
Currently available prompt themes:
adam1 adam2 bart bigfade clint elite2 elite fade fire off oliver pws redhat suse walters zefram
cloud%


Fix for Issue #629.

Unix path separators should be used when miDebuggerServerAddress is specified

@pieandcakes I don't think your fix is correct. The problem is that 'UseUnixSymbolPaths' gets used for deciding what to do for symbol paths (as the name implies), and we want to use Windows symbols paths when running on Windows with gdbserver as the symbols are loaded on Windows.
Sounds like we either need another property, or to change this to a method for dealing with the working directory.

@gregg-miskelly I'll create a separate property then and update EscapePath. The EscapePath call seems to want to use this to determine / versus \\.

@pieandcakes You probably want to rename EscapePath to EscapeSymbolSourcePath and add a new EscapePath which take a bool useUnixPaths.


Re add Fake prime

I really love this cheat and i would be happy if you can somehow readd Fake Prime (visible for othters)

there is no way to have it visible for others now

Valve patched Fake Prime.

#3229


Document / support for using BFLOAT16 with (Xeon) TGI service

The model used for ChatQnA supports BFLOAT16, in addition to TGI's default 32-bit float type: https://huggingface.co/Intel/neural-chat-7b-v3-3
TGI memory usage halves from 30GB to 15GB (and also its perf increases somewhat) if one tells it to use BFLOAT16:
--- a/ChatQnA/kubernetes/manifests/tgi_service.yaml
+++ b/ChatQnA/kubernetes/manifests/tgi_service.yaml
@@ -28,6 +29,8 @@ spec:
         args:
         - --model-id
         - $(LLM_MODEL_ID)
+        - --dtype
+        - bfloat16
         #- "/data/Llama-2-7b-hf"
         # - "/data/Mistral-7B-Instruct-v0.2"
         # - --quantize

However, only newer Xeons support BFLOAT16.  Therefore, if user' cluster has heterogeneous nodes, TGI service needs a node selector that schedules it on a node with BFLOAT16 support.
This can be automated by using node-feature-discovery and its CPU feature labeling: https://kubernetes-sigs.github.io/node-feature-discovery/stable/usage/features.html#cpu
It would be good to add some documentation and examples (e.g. comment lines in YAML) for this.

Wikipedia has nifty table listing the platforms currently supporting AVX512 with BF16 support:
https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#CPUs_with_AVX-512
= Intel Cooper Lake & Sapphire Rapids, AMD Zen 4 & 5.
On platform that do not support BF16 (e.g. Ice Lake), TGI seems to still work when BF16 type is specified, but slightly slower (due to a conversion step?).

we can add info in docs to remind user close bf16 on specific machines.

The model used for ChatQnA supports BFLOAT16, in addition to TGI's default 32-bit float type: https://huggingface.co/Intel/neural-chat-7b-v3-3
TGI memory usage halves from 30GB to 15GB (and also its perf increases somewhat) if one tells it to use BFLOAT16:
--- a/ChatQnA/kubernetes/manifests/tgi_service.yaml
+++ b/ChatQnA/kubernetes/manifests/tgi_service.yaml
@@ -28,6 +29,8 @@ spec:
         args:
         - --model-id
         - $(LLM_MODEL_ID)
+        - --dtype
+        - bfloat16
         #- "/data/Llama-2-7b-hf"
         # - "/data/Mistral-7B-Instruct-v0.2"
         # - --quantize

However, only newer Xeons support BFLOAT16. Therefore, if user' cluster has heterogeneous nodes, TGI service needs a node selector that schedules it on a node with BFLOAT16 support.
This can be automated by using node-feature-discovery and its CPU feature labeling: https://kubernetes-sigs.github.io/node-feature-discovery/stable/usage/features.html#cpu
It would be good to add some documentation and examples (e.g. comment lines in YAML) for this.

hi @eero-t the  node-feature-discovery  plugin can help select node(cpu) by labeling node with CPU features. But it needs create a pod.
we push a pr to provide the recipe to label node and setup tgi with bfloat16, see https://github.com/opea-project/GenAIExamples/pull/795

Examples manifests are generated from Infra project Helm charts.  Shouldn't there rather be Helm support for enabling it?  See:

https://github.com/opea-project/GenAIInfra/pull/402/files#diff-9ff19985b33716e4f25db59c4f8a9c5611b54034dda7108860e9131b30444b8b
https://github.com/opea-project/GenAIInfra/pull/386#discussion_r1753682590

That's on our plan

Examples manifests are generated from Infra project Helm charts. Shouldn't there rather be Helm support for enabling it? See:

https://github.com/opea-project/GenAIInfra/pull/402/files#diff-9ff19985b33716e4f25db59c4f8a9c5611b54034dda7108860e9131b30444b8b
HPA improvements GenAIInfra#386 (comment)

That's on our plan


QDAC2 DC_List needs validator check

Before creating the List_Context, the dc_list method should check the min(voltages) and max(voltages) against the dc_constant_V validator or some other new validator to prevent sweeps from going beyond a desirable range.

@jpsecher does this seem reasonable to you ?

Without looking at code, yes it sounds like a good idea.
PS: I am not with Quantum Machines / QDevil anymore, so I guess @Anders-QDevil is a better contact point in the future.

It does indeed sound like a good idea, though it will not provide 100% safety against sweeping outside a defined voltage span. There will always be loop holes. @jenshnielsen how should we proceed?

@arsllim is this a fix that you are interested in implementing? Otherwise, I guess it would be great if someone from Quantum Machines / QDevil  has the time to implement it @Anders-QDevil

I could implement it.  What is the extra baggage that comes with contribution? [Unit tests to update? Docs to update? Formatter to run?] Point me to a dev guide.
Do you all agree that it should use the same validator as the dc_constant_V parameter? This validator defaults at initialization to +/-10V, but we then update it during our startup calls with tighter limits as part of our safety precautions. I'm assuming this is typically how this validator is used. I could be more explicit and add a set_dc_limits method to the channel.
While I am at it, I will do it in dc_sweep as well. No other methods aside from dc_list and dc_sweep seem appropriate for having a check against dc ranges.


GraphQL: Fix consistency and paging options

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 9

Complexity increasing per file
==============================
- graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/CassandraFetcher.java  5

Complexity decreasing per file
==============================
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/QueryFetcher.java  -1
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/DeleteMutationFetcher.java  -4
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/UpdateMutationFetcher.java  -6
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/InsertMutationFetcher.java  -4

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 9

Complexity increasing per file
==============================
- graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/CassandraFetcher.java  5

Complexity decreasing per file
==============================
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/UpdateMutationFetcher.java  -6
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/InsertMutationFetcher.java  -4
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/DeleteMutationFetcher.java  -4
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/QueryFetcher.java  -1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 9

Complexity increasing per file
==============================
- graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/CassandraFetcher.java  5

Complexity decreasing per file
==============================
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/UpdateMutationFetcher.java  -6
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/DeleteMutationFetcher.java  -4
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/QueryFetcher.java  -1
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/InsertMutationFetcher.java  -4

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 9

Complexity increasing per file
==============================
- graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/CassandraFetcher.java  5

Complexity decreasing per file
==============================
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/DeleteMutationFetcher.java  -4
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/QueryFetcher.java  -1
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/InsertMutationFetcher.java  -4
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/UpdateMutationFetcher.java  -6

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 9

Complexity increasing per file
==============================
- graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/CassandraFetcher.java  5

Complexity decreasing per file
==============================
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/QueryFetcher.java  -1
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/UpdateMutationFetcher.java  -6
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/DeleteMutationFetcher.java  -4
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/InsertMutationFetcher.java  -4

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 9

Complexity increasing per file
==============================
- graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/CassandraFetcher.java  5

Complexity decreasing per file
==============================
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/InsertMutationFetcher.java  -4
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/QueryFetcher.java  -1
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/UpdateMutationFetcher.java  -6
+ graphqlapi/src/main/java/io/stargate/graphql/schema/fetchers/dml/DeleteMutationFetcher.java  -4

See the complete overview on Codacy


Fix coverage upload issue

fix the bug where codecov is not executed at all
add missing codecov flag kind-e2e-tests which is used in kind workflow
add a new flag for multicluster integration test
limit concurrent integration jobs

Resolve #3060
Signed-off-by: Lan Luo<EMAIL_ADDRESS>

/test-integration

Codecov Report

Merging #3061 (73eee2a) into main (1917bb5) will decrease coverage by 19.42%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main    #3061       +/-   ##
===========================================
- Coverage   59.62%   40.20%   -19.43%
===========================================
  Files         292      166      -126
  Lines       24724    20766     -3958
===========================================
- Hits        14741     8348     -6393
- Misses       8364    11604     +3240
+ Partials     1619      814      -805

Flag
Coverage Δ

kind-e2e-tests
?

unit-tests
40.20% <ø> (+0.02%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/ovs/openflow/default.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/util/runtime/runtime.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/agent/nodeportlocal/k8s/annotations.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/agent/cniserver/pod_configuration_linux.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/ovs/openflow/logs.go
9.52% <0.00%> (-90.48%)
:arrow_down:

pkg/apis/controlplane/register.go
0.00% <0.00%> (-90.00%)
:arrow_down:

pkg/agent/controller/networkpolicy/reject.go
0.00% <0.00%> (-84.68%)
:arrow_down:

pkg/agent/client.go
0.00% <0.00%> (-77.42%)
:arrow_down:

pkg/ovs/ovsconfig/ovs_client_linux.go
0.00% <0.00%> (-76.93%)
:arrow_down:

pkg/flowaggregator/certificate.go
0.00% <0.00%> (-76.58%)
:arrow_down:

... and 236 more

/test-integration

BTW, could you capitalize the commit title to keep same style in this and future PRs?

/test-integration
/test-e2e

/test-integration

/test-integration

/skip-conformance
/skip-e2e
/skip-networkpolicy

/skip-conformance
/skip-e2e
/skip-networkpolicy


What happened to Cloudflare and CDN support after version 1.0.3?

This is a (check one box):

[ ] Bug Report
[ ] Feature Request
[X] General Query

My version of UI-Router is: (type version)
1.0.3
General Query

[ ] I have already asked my question on StackOverflow and nobody could answer the question

[ ] I have already reviewed the sample application for examples of common approaches

[X] I believe my question can only be answered by the UI-Router maintainers

Why aren't newer versions of the angular ui router being published to CDNs in cloudflare after version 1.0.3? There is nothing in the changelog to indicate why support for CDNs disappeared for later versions. What changed and why? Was this intentional? Will you please bring back the CDNs?
Support for bower was also dropped. I am fine with this change, but again, the changelog doesn't give a reason for this change, or even indicate that it was going to happen. Was this also intentional?

What changed and why?

1.0.3 was the last release published using the old npm package angular-ui-router.  All subsequent releases are released as @uirouter/angularjs.  I don't recall how we initially got added to cloudflare, and I'm not sure how to have them pull from the new package name

Was this intentional?

nope, we simply switched to scoped packages

Will you please bring back the CDNs?

It's probably reasonable to publish to both npm packages.  I'll see if we can automate this in our release scripts.

Support for bower was also dropped.

No, bower is still supported (see this recent bug report https://github.com/angular-ui/ui-router/issues/3687 and all new versions of ui-router are listed).  However, we highly recommend dropping bower yourself (the bower team recommends the same thing).

Thank you, thank you, thank you!!!
Also, we are in the process of moving from bower to npm, but legacy apps aren't finished. :)
Sorry about missing bower. Not sure what I was looking at.


use varstorebuilder in write-fonts

This will be moved over there, and we can remove it here when we next publish those crates.
see https://github.com/googlefonts/fontations/pull/636

closed by #232


Default value inconsistent in description

As I saw in https://github.com/Oneflow-Inc/models/tree/main/RecommenderSystems/dlrm#arguments-description, the default value for --store_type is cached_ssd, which is different from the setting in https://github.com/Oneflow-Inc/models/blob/main/RecommenderSystems/dlrm/dlrm_train_eval.py.

Thanks for your feedback, it has been fixed in https://github.com/Oneflow-Inc/models/pull/390


增加了dryscrape工具

增加了dryscrape工具，适合抓动态生产的数据

Thanks for your effort ,please use git rebase to make the commit tree clean , and please add the comments like other one .


GSD Request

--- GSD JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from v4.19 to before v5.4.168",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=41cbb0f5a29592874355e4159489eb08337cd50e",
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a19cf6844b509d44ecbd536f33d314d91ecdd2b5"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "41cbb0f5a29592874355e4159489eb08337cd50e",
      "note": "introduced"
    },
    {
      "type": "commit",
      "value": "a19cf6844b509d44ecbd536f33d314d91ecdd2b5",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "mac80211: validate extended element ID is present\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v5.4.168 by commit a19cf6844b509d44ecbd536f33d314d91ecdd2b5, it was introduced in version v4.19 by commit 41cbb0f5a29592874355e4159489eb08337cd50e. For more details please see the references link."
}
--- GSD JSON ---

This issue has been assigned GSD-2021-1002666


Proposal: Create a core camera management service which can be disabled / configured to work with AR

Describe the problem
The MRTK exercises a great deal of control over the main camera. This can lead to problems when using ARKit / ARCore / ARFoundation.
Describe the solution you'd like
A camera management service should be written. The default service should mimic the toolkit's current functionality. Alternate versions can be written to accommodate AR solutions and/or more complex camera setups. And like any core service, it should be possible to disable camera control altogether.
This has the added benefit of making it easier to use the toolkit as a pure service provider, if desired.
Related issues: #3616, #3948, #3762

Assigning to @Yoyozilla  and @wiwei to try and find an appropriate owner


Error in ppm_model

On some really corrupt rar files I get an "integer divide by zero" error in decodeSymbol1() probably caused in the call to currentCount()
You maybe want to include a check to ensure scale and r.rnge are not null and throw an errCorruptPPM otherwise.
https://github.com/nwaples/rardecode/blob/master/ppm_model.go#L321

I probably should, but I wonder if its a problem with my logic somewhere else. I can't see any similar checks in the unrar source. The ppm stuff in unrar was the least understandable for me.
I have tried to reproduce the problem with corrupt files, but no luck so far. I added a couple more checks in, but if that doesn't fix it, ill add that check in.

Problem has been taken care of in the latest commits.


some quenstion on journal theme?

Hi
I am trying install on my opencart <IP_ADDRESS>
v2pagecache-oc23-1.3.ocmod
disable journal cache.
but i have some problem with that .
can you give me some adivce?
MY HOST INFORMATION AS BELOW

but its can not load the theme correctly.
how can i fix that ? can you give me some adivce?
http://<IP_ADDRESS>/
thank you.

f you have the Journal theme, it has it's own built-in page cache, so there's not much benefit trying to get ours to work with it.

If you have the Journal theme, it has it's own built-in page cache, so
there's not much benefit trying to get ours to work with it.
Thank you
Kerry
On Wed, Sep 20, 2017 at 10:26 PM, ayttk<EMAIL_ADDRESS>wrote:

Hi
I am trying install on my opencart.
but i have some problem with that .
can you give me some adivce?
MY HOST INFORMATION AS BELOW
[image: 2017-09-21_112140]
https://user-images.githubusercontent.com/23657624/30677606-3bb6d4b0-9ebf-11e7-8de9-fc68ffea2eca.png
but its can not load the theme correctly.
how can i fix that ? can you give me some adivce?
http://<IP_ADDRESS>/
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/budgetneon/v2pagecache/issues/29, or mute the thread
https://github.com/notifications/unsubscribe-auth/AIZy3FdjF6kZvN7CpduFTGdom4UkMsauks5skdd6gaJpZM4PewF5
.


"GitTfs.Core.GitTfsException: Nothing to checkin!" on "git tfs rcheckin"

We have a relatively simple setup where we need to periodically sync our main git branch with our tfs server. We typically manage this by using git tfs pull and then git tfs recheckin. We attempted a similar workflow today and we're receiving a message that seems to indicate an error on push.
PS C:\git\Proj> git tfs rcheckin -d
Command run:git tfs rcheckin -d
No authors file used.
git-tfs version <IP_ADDRESS> (TFS client library <IP_ADDRESS> (MS)) (64-bit)
git command: Starting process: git --version
git command time: [00:00:00.0468759] --version
Commits visited count:5
Commits visited count:5
Working with tfs remote: default => $/Support/Customers/Proj/Our Branch
Basing from parent 'default:135004', use -i to override
Fetching changes from TFS to minimize possibility of late conflict...
Establishing TFS credentials using user identity...
Identity-based VSS credentials created.
Commits visited count:1
Commit to checkin count:2
Working on the merge commit: da90d0e178d860a2071c4a0900386f4a2716d9df
Commits visited count:2
Starting checkin of da90d0e1 'Merge branch 'main' of https://dev.azure.com/<removed>/<removed>/_git/Proj

<REMOVED MESSAGE>'
Setting up a TFS workspace at .git\~w
git command: Starting process: git diff-tree -r -M -z 168f483e59dffc8f78363e3d957b8743b527781c da90d0e178d860a2071c4a0900386f4a2716d9df
TFS Workspace 'git-tfs-18e969d3-3440-407e-9da6-2cab9846434b;Jerrett Davis' was removed.
GitTfs.Core.GitTfsException: Nothing to checkin!
   at GitTfs.Util.GitTfsCommandRunner.Run(GitTfsCommand command, IList`1 args) in C:\gittfs\src\GitTfs\Util\GitTfsCommandRunner.cs:line 36
   at GitTfs.GitTfs.Main(GitTfsCommand command, IList`1 unparsedArgs) in C:\gittfs\src\GitTfs\GitTfs.cs:line 83
   at GitTfs.GitTfs.Run(IList`1 args) in C:\gittfs\src\GitTfs\GitTfs.cs:line 48
   at GitTfs.Program.Main(String[] args) in C:\gittfs\src\GitTfs\Program.cs:line 28
Nothing to checkin!
All the logs could be found in the log file: C:\Users\jdavis\AppData\Local\git-tfs\git-tfs_log.txt

PS C:\git\Proj> git log --all --decorate --oneline --graph
*   ad20943 (develop) Merge branch 'develop' of https://dev.azure.com/<REMOVED>/<REMOVED>/_git/Proj into develop
|\
| * 584a5df (HEAD -> main, origin/main, origin/develop, origin/HEAD, temp) <REMOVED>
* | a0711f3
* | 7bad4e1
* | 3553a40
* | 78aceaf Merge branch 'update-develop' into develop
|\|
| *   da90d0e Merge branch 'main' of https://dev.azure.com/<REMOVED>/<REMOVED>/_git/Proj
| |\
| | * 5de6340 (tag: <IP_ADDRESS>)
| * | 168f483 (tfs/default)
| |/
| *   613c8d4
| |\
* | | 32d3a53
* | | c34c884
* | | 60bd803
* | | a1984a0
* | | 869fa11
| |/
|/|
* |   f5fec3f [US0072201@@1] Merge branch 'develop' of https://dev.azure.com/<REMOVED>>/<REMOVED>/_git/Proj into develop
|\ \
| * | 9ae71b7
* | | 18ec025
| |/
|/|
* | b63bc6d
|\|
| * 5fac546
| * c1bdce1
* | ccedfc2
|/
* 7682669
* f04c944

Any ideas on what is happening here?

No real idea but 2 things are coming into my mind:

do you reproduce with v0.32?
if you analyse the git commits, does the history seem good to you (and the git-tfs Metadata in the commit message)? and do you see commits that should be push? So do you think the problem is more in the rcheckin or is it more the pull that failed?

Hi @pmiossec,
Great questions.

I did reproduce with v0.32, and that's where I initially noticed the problem. Upgrading to 0.33 did not correct it.
I'm admittedly not the best with the intricacies of git-tfs in terms of how the various metadata pieces work together. I don't notice anything immediately concerning. I'm working on sanitizing the git log output enough to post here to potentially provide a bit more insight.

I've done my best to sanitize my git log while keeping any relevant details intact. Please let me know if there's anything immediately obvious.
PS C:\git\Proj> git log
commit 584a5df5bdbd48f3c86058015de49cf497d64d93 (HEAD -> main, origin/main, origin/develop, origin/HEAD, temp)
Author: JD Davis<EMAIL_ADDRESS>Date:   Wed Mar 13 21:18:45 2024 +0000

    [US0000000@@4][MERGE] Added latest integration components, process flows, and sql scripts

commit da90d0e178d860a2071c4a0900386f4a2716d9df
Merge: 168f483 5de6340
Author: JD Davis<EMAIL_ADDRESS>Date:   Thu Feb 22 19:38:57 2024 +0000

    Merge branch 'main' of https://dev.azure.com/<REMOVED>/<REMOVED>/_git/Proj

commit 168f483e59dffc8f78363e3d957b8743b527781c (tfs/default)
Author: Jerrett Davis<EMAIL_ADDRESS>Date:   Thu Feb 22 15:04:22 2024 +0000

    [US0000000@@3] Release <IP_ADDRESS> to main

    git-tfs-id: <TFS_BRANCH>;C135004

commit 5de63400f1a104bf7dc1023a4b3750381bad9006 (tag: <IP_ADDRESS>)
Author: JD Davis<EMAIL_ADDRESS>Date:   Thu Feb 22 15:00:41 2024 +0000

    [US0000000@@3] Release <IP_ADDRESS> to main

commit 613c8d4feb1cf29a39f327e6e18edaa0e0bd694e
Merge: b63bc6d f5fec3f
Author: Jerrett Davis<EMAIL_ADDRESS>Date:   Wed Jan 31 22:35:47 2024 +0000

    [US0000000@@1] Merge branch 'develop' of https://dev.azure.com/<REMOVED>/<REMOVED>/_git/Proj into develop

    git-tfs-id: <TFS_BRANCH>;C134876

commit f5fec3f447914d8f2f0fd014ffa9b2e38716bc8c
Merge: 18ec025 9ae71b7
Author: JD Davis<EMAIL_ADDRESS>:...skipping...
commit 584a5df5bdbd48f3c86058015de49cf497d64d93 (HEAD -> main, origin/main, origin/develop, origin/HEAD, temp)
Author: JD Davis<EMAIL_ADDRESS>Date:   Wed Mar 13 21:18:45 2024 +0000

    [US0000000@@4][MERGE] Added latest integration components, process flows, and sql scripts

commit da90d0e178d860a2071c4a0900386f4a2716d9df
Merge: 168f483 5de6340
Author: JD Davis<EMAIL_ADDRESS>Date:   Thu Feb 22 19:38:57 2024 +0000

    Merge branch 'main' of https://dev.azure.com/<REMOVED>/<REMOVED>/_git/Proj

commit 168f483e59dffc8f78363e3d957b8743b527781c (tfs/default)
Author: Jerrett Davis<EMAIL_ADDRESS>Date:   Thu Feb 22 15:04:22 2024 +0000

    [US0000000@@3] Release <IP_ADDRESS> to main

    git-tfs-id: <TFS_BRANCH>;C135004

@JerrettDavis did you manage to get past that? Is it still an issue for you?
I'm writing because I got the same message a few times, out of a blue, and checked git-tfs code, and it turns out that this message sometimes shows up as a kind of 'fallback' error message. I can be wrong at the moment, it was ~2weeks ago, but when git-tfs tries to calculate the list of commits to send, it performs a few checks, and if something is "not perfect", the routine just aborts and returns empty set of commits - and outer layer panics with this message. But the actual reason could be other, it could have found few commits, but then failed those additional checks, but it wouldn't show the message about that.
I think one such case is i.e. when it cannot trace a clean linear path between your current HEAD at the moment of rcheckin to a parent which has git-tfs-id: <TFS_BRANCH>;Cxxxxx annotation. But I'd need to analyze the commit-graph you pasted and maybe iteratively ask you for more similarly-sanitized log entries. Not much point in burning the time if you've managed to move forward :)

@JerrettDavis Did you solve this?
If not, any chance the merge result da90d0e178d860a2071c4a0900386f4a2716d9df  is empty, meaning there are not changes
for the command
git diff-tree -r -M -z 168f483e59dffc8f78363e3d957b8743b527781c da90d0e178d860a2071c4a0900386f4a2716d9df
returned?

@JerrettDavis Did you solve this?
If not, any chance the merge result da90d0e178d860a2071c4a0900386f4a2716d9df is empty, meaning there are not changes for the command git diff-tree -r -M -z 168f483e59dffc8f78363e3d957b8743b527781c da90d0e178d860a2071c4a0900386f4a2716d9df returned?

git diff-tree -r -M -z 168f483e59dffc8f78363e3d957b8743b527781c da90d0e178d860a2071c4a0900386f4a2716d9df Returns an empty result set.

Unfortunately, due to project time constraints, I ended up using checkin to create a new commit. This appears to have corrected the issue, but it did somewhat dirty the commits between the systems.


compress file not working on videoview, exoplayer etc. play error

Unable to seek across windows, falling back to in-window seeking

I have the same problem

me too


Fix custom attributes for mutually exclusive checkboxes

What is the context of this PR?
Fixes: #949
How to review

Check that custom attributes can now be added to mutually exclusive checkboxes
Check that checkboxes still work correctly

 Issue #949: Can't add custom attributes to a mutually exclusive checkbox


using  toggle()

hi there, Im using the slidingmenu with  getSlidingMenu().setMode(SlidingMenu.LEFT_RIGHT);
i can drag per Finger lfet and right which is working perfect,
now here comes my problem .. im using this to toggle the menu when clicking on the home button :
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
if(getSlidingMenu().isMenuShowing())
getSlidingMenu().toggle();
else
getSlidingMenu().toggle();
}
return true;
}
as known toggle will show and hide the menu, BUT only the left side ..
now i would like to use another button i added on the top right of the actionbar to toggle the right side of the menu. i thought maybe toggle(left) toggle(right) would be a solution but it is not implemented, so how to make the right menu appear when clicking on a XXX button.
thanks alo, a great menu.

Thank you Jeremy Feinstein , You have made my app development easier :smile:

Thank you for the help.


Fix xcode-path command line argument in the documentation

1). Fix xcode-path command line argument in the documentation
It’s confusing as current xcode-path argument conflicts with the existing «exclude» flag. It also differs from what the ./bluepill -h says.
2). Fix typo in README ("Select" instead of "Selet")

Thanks!


Update clrdbg version numbers to latest

@gregg-miskelly @rajkumar42 @dbreshears @NCarlsonMSFT

This updates clrdbg for the script to the current version used in the 1.3 C# extension. This will be the final version (barring unforeseen issues) that the moniker VS2015U2 will refer to. The next official version of clrdbg will be dev15 based.

:+1:

I just want to be clear that merging this will update the version that is referenced in the script that is live in docker VS scenarios and the new version will be pulled down immediately. @dbresears is there testing you would like to do?

@chuckries you did a quick test of the Docker tools scenario already?
Note that even though the next version of clrdbg will be Dev15 based, we can still use in in 2015 if we want to.

@chuckries yes, I can help do some testing.  Assume the location is -> https://raw.githubusercontent.com/chuckries/MIEngine/getclrdbg-release/scripts/GetClrDbg.sh

@gregg-miskelly I am smoke testing now.
@dbreshears yes.

@chuckries Looks good,  tested in our VS extension and VScode (Windows)

Are there concerns for how this would work on the Mac in VS Code? My new Mac is not set up but I can prioritize that if it is needed.

@NCarlsonMSFT the only difference is that windows would use the powershell script and mac would use the shell script. We don't have any issues currently for clrdbg on mac versus windows. If you want to try it out I can wait to merge this.

@chuckries Is there a pointer to what has changed or was fixed in this version
@NCarlsonMSFT I can test on my MAC tomorrow as it is sitting in the office and I am not

@dbreshears did you ever remove my account from your Mac? If not I should still be able to use it.

@NCarlsonMSFT - its gone. Use your own MAC :-)

This page contains a what's new in version 1.3 section that should cover it. Note that not all items in that last are specifically about clrdbg.

I got my Mac configured and basic scenarios are working with the new script :shipit:

Thanks everyone!


Cannot declare Dict literal

I'm trying to declare this literal from the Elm tutorial, but I get a "not yet implemented" panic:
[nix-shell:~/code/Strify]$ ./roc/target/release/roc repl

  The rockin’ roc repl
────────────────────────

Enter an expression, or :help, or :exit/:q.

» {::}
thread 'main' panicked at 'not yet implemented: unhandled parse error: Record(End(3:5), 3:4)', reporting/src/error/parse.rs:521:14
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

[nix-shell:~/code/Strify]$

This happens with non-empty Dict literals as well, as per this nonempty example:
[nix-shell:~/code/Strify]$ ./roc/target/release/roc repl

  The rockin’ roc repl
────────────────────────

Enter an expression, or :help, or :exit/:q.

» {: "Sam" => True, "Ali" => False, firstName => False :}
thread 'main' panicked at 'not yet implemented: unhandled parse error: Record(End(3:5), 3:4)', reporting/src/error/parse.rs:521:14
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

[nix-shell:~/code/Strify]$

This syntax seems to be obsolete: https://github.com/roc-lang/roc/commit/737acd2acea1843970f972f984520700929f73db


Discord News Web Hook

Description
The Discord webhook will scrape the news website inshort and post a daily news update on the Selected Channel
Type of issue

NOTE: These boxes can be checked using [X]

[x] Feature (New Script)

[ ] Bug

[ ] Documentation

Checklist:

[X] I have read the project guidelines.
[X] I have checked all the existing projects, before submitting a new project issue.
[X] I have checked previous issues to avoid duplicates.
[X] This issue will be meaningful for the project.

I think i can pull this off can I be assigned this issue

Cool @Araon you can go for it


Usage Count and Money directly with App Details

1/ dont loops infra, pls try to replicate this implementation https://github.com/BasedHardware/omi/pull/1423/files#diff-6a4c2c7ecc69146760e88741b9b4993cf1b06de4ae8da18a98db00601641708bR43 / #1353
2/ resolve conflicts pls sir
@mdmohsin7 feel free to DM @nquang29

1/ Since @nquang29 already implemented it and his PR was merged 5 days ago, this issue got resolved after I merged main branch in this PR branch
https://github.com/BasedHardware/omi/pull/1423/commits/44f192d4aadd82d36622fe4c1677099c18a0cae3#diff-6a4c2c7ecc69146760e88741b9b4993cf1b06de4ae8da18a98db00601641708bR108
2/ done
Pls check @beastoin

1/ send me the specific line of codes pls. i still see you call the getxyz directly:

2/ ok ✅
@mdmohsin7

1/ infras - redis, firestore, any database,..., any third-party services, even your disk resource. loops in redis is similar to loops in firestore. that's bad. so let's use the bulk query or the similar technique to remove the loop.
3/ https://github.com/BasedHardware/omi/pull/1423/files#diff-e9334601001806a62e30da99b753c713c2c20213a661ced0a88542e66e39697eR114 do not put the business logic in db layer. why don't you just remove the usage < Nov ?
@mdmohsin7 man

Alright! Let me fix it. Won't remove the existing loops functions because they were added way back and the analytics endpoints in the app rely on them

1/ No more looping
2/ Deleted usage history before nov1 on both dev and prod
@beastoin

1/ man... what do you mean "no more looping"

2/ ✅
@mdmohsin7

1/ because get_app_usage_count_db does not loop anymore. It directly uses the count() function of firestore

@beastoin 😄

1/ loop here man. currently, we have 200+ app, so these line of code would send 200+ requests to infra(redis, firestore), right? that's bad.

@mdmohsin7 ^

Looks like I'll never get this PR approved XD
Let me use mget like @nquang29 did for reviews and try

@mdmohsin7 pls follow these instruction to get this ticket done asap:
1/ don't include any heavy aggregations(e.g. money calculation) while getting multiple apps
2/ in the get app detail api route, you could include these metric(money), simply use the get_app_money_made_amount, if we don't have this route yet then create new one e.g. v1/apps/:app_id
pls lmk what you think

lgtm @mdmohsin7 🥳


the unittests applyto their own globals

it might be a much better idea to hae them apply to a dict and/or test specific namespace

Agreed... I didn't write most of the tests, and I suspect the [helpful and much appreciated :)] person who did wouldn't have known how to do that.


feat: welsh translation - S51 page - dynamic content (APPLICS-194)

Describe your changes
Welsh translation - S51 page - dynamic content
Ticket: https://pins-ds.atlassian.net/browse/APPLICS-194

Allow switching of dynamic data between:

English: title, enquiryDetail, adviceGiven
Welsh: titleWelsh, enquiryDetailWelsh, adviceGivenWelsh

Add translations and middleware to Section 51 Advice
Add middleware to Register of Advice
Add unit tests for translations, routes, controllers and helpers

Please note:

Additional support for Welsh translations have been included for some headings and labels within the view page model

Type of change 🧩

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Other (please explain in the description section above)

Checklist before requesting a review

[x] I have performed a self-review of my own code
[x] I have double checked this work does not include any hardcoded secrets or passwords
[ ] I have made corresponding changes to the documentation
[x] I have provided details on how I have tested my code
[x] I have referenced the ticket number above
[x] I have provided a description of the ticket
[x] I have included unit tests to cover any testable code changes

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

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

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

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


Test smart contract verification feature phase 2

Problem
There are many different files that can be dropped in the file upload section. Since there are many different files that can be used to verify the smart contract it would be good to do some manual testing on the different cases a user could upload files.
Solution
Test different variations file uploads for smart contract verifications. Identify areas where the explorer can be smart in handling the different paths a user might take.
Alternatives
No response

@quiet-node are there any remaining tasks for this issue or can we close this as completed?


Fix 'client' import statement

Summary
The current import statement in params-from-client.js references a named export client that does not exist:
import { client } from './client'
// client is undefined

As a result, paramsFromClient is undefined when trying to import it:
const { paramsFromClient } = require('feathers-hooks-common')
// results in paramsFromClient === undefined

The import statement should reference the default export instead, which is what I propose in this pull request.

Thanks for the catch!


How many elements in each data_dir_0

Does each data_dir contain 1 sample of a pair of video and text ? Or can it have multiple ? Was unclear to me in the readme

Closed because I see with open(os.path.join(file_path, 'text_input.pkl'), 'rb') as f: in the process.py so probably a pair in each folder


Highest points GP tool does not open - ArcPro 1.2

From @abrowning80 on November 4, 2016 21:52
Expected Behavior
For the Highest points, Linear Line of sight, Lowest Points, Radial Line of Sight GP tools do not open
Current Behavior
Tool does not open with the following error
Tool has failed to open: C:\Users\admin\Desktop\ArcGISPro\Geoprocessing\Military_Tools.tbx\ (name of GP tool)
Possible Solution
Steps to Reproduce (for bugs)

Open tool

Context
Your Environment

Version used: ArcPro 1.2
Environment name and version (e.g. Chrome 39, node.js 5.4):
Operating System and version (desktop or mobile):  Windows 8 Desktop
Link to your project:

Copied from original issue: Esri/military-tools-for-arcgis#60

@lfunkhouser I'm going to close this one as it is out of date by a while.
@dfoll

.. and just in case anyone is not sure this is correct:


Property names outdated

https://docs.microsoft.com/en-us/azure/architecture/best-practices/retry-service-specific#policy-configuration-3
The property names for "RetryExponential" class seem to have changed

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8194899c-dee2-70ac-422a-edc06e779f7c
Version Independent ID: cafc7418-404c-5908-3037-dba7f452087b
Content: Retry service specific guidance - Best practices for cloud applications
Content Source: docs/best-practices/retry-service-specific.md
Service: architecture-center
GitHub Login: @dragon119
Microsoft Alias: pnp

@anas2204  Are you referring to the properties mentioned in this doc https://docs.azure.cn/en-us/dotnet/api/microsoft.azure.servicebus.retryexponential?view=azure-dotnet#properties. Could you elaborate more on your ask.

Ah, I meant the properties used in the constructor in this example - https://docs.microsoft.com/en-us/azure/architecture/best-practices/retry-service-specific#examples-1

@anas2204  There seems to be some change in the properties. So assigned this to content author to review and update as appropriate.

@anas2204 Thanks - this code example uses the older WindowsAzure.ServiceBus package. I'll update the doc to show the newer Microsoft.Azure.ServiceBus package.


No Linux on arm64 support

I've came across the unfortunate situation to try and run a jar I made on a Raspberry Pi only for it to fail with
Caused by: java.lang.UnsatisfiedLinkError: /home/SCBot/.cache/io.realm.kotlin/5be26df68d0a52806a65434a218ae23faf9de4eb/librealmc.so: /home/SCBot/.cache/io.realm.kotlin/5be26df68d0a52806a65434a218ae23faf9de4eb/librealmc.so: cannot open shared object file: No such file or directory (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
The thing is: why is this not stated anywhere in the docs? The max I could find was a list of supported KMM environments https://www.mongodb.com/docs/realm/sdk/kotlin/install/kotlin-multiplatform/#supported-target-environments
And then: why does it support arm64 on MacOS but not Linux on the same architecture? I'm legitly curious

Hi @astatio
The list at https://www.mongodb.com/docs/realm/sdk/kotlin/install/kotlin-multiplatform/#supported-target-environments is indeed the list of the targets we currently support.
Nothing technically prevents us from shipping support for Linux arm64, except that we need to have the proper CI setup to make sure that works. So far we haven't prioritized that, but there have been a few requests for it now, so it is some we will be reevaluating.
This is already being tracked here: https://github.com/realm/realm-kotlin/issues/617 so I will be folding this issue into that one.


source restricted to single-character filenames

In terminal/command.go, the test at the top of sourceCommand() seems overly restrictive:
805 func (cmds *Commands) sourceCommand(t *Term, args string) error {
806         if len(args) != 1 {
807                 return fmt.Errorf("wrong number of arguments: source <filename>")
808         }
809
810         return cmds.executeFile(t, args)
811 }

(Single-character filenames work fine, but anything else returns an error.) I'm guessing the test is either left over from a time when args was declared as []string, or foreshadows your intent to make it so.

My fault :(


PyB needs to allow customizing distutils setup.py with pre- and post- install logic

A simple example for this is: I need to move packaged config files (data_files) to some other location. Installing in a non-package location isn't possible by design and requires custom deployment logic. This deployment logic cannot be implemented without custom post-install handler
The customization will be implemented via a method similar to this: https://github.com/eliben/pycparser/blob/aa47db488c2966c2c998abe8853f881bf8feb37e/setup.py

:+1:

Yeah, why not.


Elements get attached several times with webcomponents-lite.js

Check out www.pigments.io, I'm using webcomponents-lite.js here. It's built in combination with meteor (though I'm barely using any meteor features here as of yet) and as you can see in the console the console log for 'attached' get's called three times for my element. This happens with any element that I am using on my site. With shadow dom/webcomponents.js this does not happen.

@sorvel This looks like a shadowdom vs shadydom issue. With ?dom=shadow flag, attached is only fired once in Chrome as well.

A few hints that I can give here: I've tested it out with removed the meteor router. When using no router and just having a standard template rendered the meteor way, the element gets initialized just once (but not properly it seems).
If you do the following after the page has loaded:
FlowRouter.go('/emailtoshop');
And then:
FlowRouter.go('/landing');
You will see it only initializes the event once when it switches routes and attaches new DOM/the custom element to the page. Hope this might be useful for the investigation.

This doesn't explain the difference between navtive sd and shady, but http://jsbin.com/yisidutafu/edit?html,output only attaches once for me. It makes me wonder what your app/meteor is doing.

The meteor app is pretty bare bones, I'm pretty sure it's related to whatever the router is doing.
https://github.com/AndreasGalster/PolymerFlowrouter
Here's a repo to reproduce. You'll need meteor installed, then run meteor in the root directory. I've posted my observations in the linked issue.

@AndreasGalster Can you host a runnable reproduction case so we can take a look?  Sorry for the delay.

Closing as we don't have a runnable JSBin. Please reopen if you can reproduce it in JSBin.


Introduce RemoteHeavyDB.reconnect. Test UDF registration by non-admin users.

As in the title.

To be clear, we don't need this for non admin users to register a UDF right?

Correct. The reconnect feature is mostly useful for testing or for some more complex setups.


Do not throw NotReadyError for HTTP redirects

Correct me if I'm wrong but HTTP redirects should also be considered successful.

Thanks for the patch! I have one comment. Let me know what you think.

 Thanks for pointing that out. I've updated the patch.
I should also mention that this is needed in case the waitFor URL has a HTTP redirect. The actual test URLs are fetched via PhantomJS so they have no issue handling HTTP redirects.

Thanks!


Dogpile race solving / cache key lock & wait, maybe with aiocache?

Hi, has anyone done or thought of solving 'dogpiling' somehow with fastapi-cache? The dogpile.cache lib describes the problem nicely, https://dogpilecache.sqlalchemy.org/en/latest/
Briefly, in the case of an empty initial cache, it's when multiple requests come for the same resource, so that processing one is started, but not complete yet. So it's not in the cache, and new requests start fetching the same resource in parallel. It would be better for the later requests to wait for the completion of the first operation, and then return the cached result.
The dogpile.caching lib is not async, but the aiocache lib is, and it has an OptimisticLock mechanism that would support this use case: https://aiocache.aio-libs.org/en/latest/locking.html#aiocache.lock.OptimisticLock
Their tests include test_locking_dogpile, using RedLock, https://github.com/aio-libs/aiocache/blob/master/tests/acceptance/test_lock.py#L55
I'm thinking of trying that out in a fastapi-cache cache decorator, so am just curious if people have thought of this or have some solutions out there maybe.

I added a simple initial AiocacheRedisBackend and am using it in our customized decorator. It works fine to solve dogpiling in our tests so far.
Basically, I just put the cache decorator code within:
async with RedLock(backend.cache, cache_key, lease=30):
And below is the code for the simple backend impl.
The locking could be also within the backend class, either in the default get() or some special get-with-lock method, but I did it this way (for) now (so the lock import in there is not used).
from typing import Optional
from fastapi_cache.backends import Backend
from aiocache.lock import RedLock #OptimisticLock, OptimisticLockError
from aiocache import Cache, RedisCache

class AiocacheRedisBackend(Backend):
    def __init__(self):
        self.cache: RedisCache = Cache(Cache.REDIS)

    async def get(self, key: str) -> Optional[str]:
        return await self.cache.get(key)

    async def set(self, key: str, value: str, expire: Optional[int] = None) -> None:
        return await self.cache.set(key, value) #, ex=expire)

    async def clear(self, namespace: Optional[str] = None, key: Optional[str] = None) -> int:
        await self.cache.clear(namespace=namespace)


Provide a mechanism for making analyzer thrown an exception when a source error interferes with analysis results.

When using analyzer as the front-end for a code generation tool or a transformer, analyzer's normal error recovery logic sometimes gets in the way, by hiding problems.  For example, if URI resolution is configured incorrectly, or files can't be reached, a call to AnalysisContext.computeLibraryElement() will yield no indication that a problem has occurred (other than to return an element model in which some elements have failed to resolve).  If the code generation tool fails to notice the problem, this can lead to incorrect output.
It would be nice if tools that are intended only to operate on error-free source code could set a flag in the analyzer which would ensure cause it to throw an exception if a source error would ever prevent it from returning trustworthy analysis results.
Note that a workaround is for the client tool to call AnalysisContext.computeErrors() and manually check for errors, however this is undesirable for several reasons:

Computing all errors is time-consuming, and many errors do not affect the element model in a meaningful way.  We don't want to penalize the tool's performance with the overhead of checking all errors.
In principle an error in one file might affect analysis results in another file.  We don't want the client to have to iterate through the transitive closure of imports/exports and call computeErrors() on all of them.
Many errors have only an isolated effect (e.g. a malformed type name only affects the part of the element model where that type name appears).  If, in the future, we introduce some lazy analysis features to allow analyzer to avoid computing parts of the element model that are not accessed, it would be nice if we could also avoid error checking those parts.

Note that it's not necessary for the exception to be thrown at the time computeLibraryElement() is called; if the error is discovered later in analysis (because of lazy evaluation of the element model), the exception could be thrown at that time.  What's important is that the client doesn't see untrustworthy results in the element model due to errors in the source being analyzed.

This is still reasonable, 8 years later :D Code generators do still have to do some extra work to see if there are any errors in code being examined.


feat(playground): record vue version in url query

When we use sfc playground, the selected vue version will be reset after we refresh the page or share the url.
This change ships the selected vue version in url query, and will parse and use it when sfc playground first load.

I think having always the latest is recommended, I think you would want the version pinned if you changed or pinned the version.
Otherwise might be causing issues when posting errors on vue, since the maintainer might not notice the older version.

@pikax Yes, it will use the latest commit by default.

I believe something equivalent to this feature is now available in the latest Playground. It seems to have been introduced in various stages, but it looks like commit 9e529f8acbeee90832cda8e09f0a968736e65332 is the point where the feature was completed.


XAML Sample for Titlebar example no longer valid

The sample XAML no longer is valid with WinUI 2.3.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: f18f00ea-66b6-827a-0aa5-2dc93465288f
Version Independent ID: 1afcff76-c66a-f6f3-098f-12446d6b20df
Content: Tab View - UWP applications
Content Source: windows-apps-src/design/controls-and-patterns/tab-view.md
Product: uwp
Technology: design
GitHub Login: @jwmsft
Microsoft Alias: jimwalk

See https://github.com/microsoft/microsoft-ui-xaml/issues/1844


Refactor to create elab_bridge package equivalent to redcap_bridge

This PR moves the existing elab-based functionality into a dedicated module elab_bridge and adds equivalent submodules to redcap_bridge. This includes project building, validation and cli.
Some functionality is not implemented yet and therefore raises NotImplemented errors when called. Corresponding tests are added for consistency, but will be skipped by pytest as they are marked to be skipped. The corresponding functionality will be added in separate PRs later on.

Tests are passing! @killianrochet Do you mind having a look if you see something very weird in there?


fix(enricher): force sig verification when names change

Description
We have seen the following edge case:

An image exists for a particular SHA.
Another image with the same SHA will be added, but a different reference. This may be done by calling roxctl image scan / roxctl image check. This will use cached values.
The image signature verification data, if previously existing for a signature, will not be refetched. However, signature verification data will be affected by the change names.

We now will do the following when updating the to-be-enriched image with an existing image: in case changes to the image names are found, we will reset the signature verification data on the image, forcing a re-verification.
Checklist

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

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

see CI.

Manual tests: TODO @dhaus67
Reminder for reviewers
In addition to reviewing code here, reviewers must also review testing and request further testing in case the
performed one does not seem sufficient. As a reviewer, you must not approve the change until you understand the
performed testing and you are satisfied with it.

Current dependencies on/for this PR:

#10137  👈
master

This stack of pull requests is managed by Graphite.


BUG:No proper alignment in quick links

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
In footer in quick links the icon and text are not properly aligned.

Assign this issue to me
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Hey, can you assign it to me? I'd like to work on this.


Make ConfigOptions.access an enum

https://github.com/CreateAPI/CreateAPI/blob/baa71afbcfc0c5ba591eab55e07c933357c8a381/Sources/CreateOptions/ConfigOptions.swift#L63-L64
The access property is currently just a string meaning that you can put anything in the config file and we'll end up generating non-functioning code.
CreateAPI will only support public or internal access levels since open can't be applied everywhere and private would just generate code that is unusable. We could model this with an enum instead.
One thing to note is that while we could specify access: internal in the config, we'd want to generate code without access level specifiers (i.e the same as an empty string) since the internal keyword itself in generated code is redundant.
For reference, we've used enums elsewhere before in ConfigOptions so the same pattern can be followed:
https://github.com/CreateAPI/CreateAPI/blob/baa71afbcfc0c5ba591eab55e07c933357c8a381/Sources/CreateOptions/ConfigOptions.swift#L88-L97

Couldn't we just assume one as default and leave the other as a flag? I would assume public, since people most likely will have these as a separate package and then internal can be under isInternalAccess.

Yeah that's also a good idea.
It would require deprecating the old access flag though so might be a little tricker than I thought initially as there are a few options to potentially deprecate in the future, we might want a slightly nicer way to manage them.


[Todoist] Rescheduling recurrent tasks drops recurrent status

Extension
https://www.raycast.com/doist/todoist
Raycast Version
1.84.2
macOS Version
15.0.1
Description
When rescheduling a recurrent todoist task through the raycast extension, the task gets rescheduled, but does not retain its "recurrent" property, so that when the task is marked as completed, it does not automatically reoccur in the future.
Steps To Reproduce

Create a recurring task e.g. "Testtask everyday forever" . The method through wicht the task is created does not seem to matter.

Reschedule the task to another day, for instance "tommorow", using the raycast extension "Home>reschedule task>tommorow"

Current Behaviour
Now you will see the task rescheduled to tommorow. Notice that the "recurrent" icon dissapeared. Furthermore, when completing the task, it gets move to "completed" and is not automatically scheduled to the next day.
Expected Behaviour
Task should be rescheduled as present AND retain its recurrent status.

Thanks for reporting this bug. Would you like to work on it? If yes, here's our guide on extension contributions so that you can open up a pull request. Feel free to contact me here or in the Slack community if you need further help.


3382 exhibit public resources

This makes the policy on exhibiting public, discoverable, and published resources user-controlled. The default behavior is exactly the same as in release 1.23. This is a release 1.24 target, because we need a user interface flag to allow this to be controlled.
The crucial change is that GroupResourcePrivilege.exhibit is True if the resource -- when and if made public -- should appear in GroupAccess.public_resources, and False if not.  The same is true for Community.public_resources. These use the same code.
Thus, in the UI, one needs to be able to set this flag via:
record.exhibit = value
record.save()

Note that this has no effect unless the resource is declared to be public, published, or discoverable using existing mechanisms. The default is that exhibit is True.

Pull Request Checklist:

[ ] Positive Test Case Written by Dev

[ ] Automated Testing

[ ] Sufficient User and Developer Documentation

[ ] Passing Jenkins Build

[ ] Peer Code review and approval

Positive Test Case

Share a public resource that you own with a group. It should appear in public_resources in both groups and communities.
Set exhibit to False as noted above. The resource should disappear from public_resources in both groups and communities.

Superseded by #3486


Simple task not working

Hello,
I have this simple task that is just not working:
module.exports = function (grunt) {

    grunt.initConfig({

        remove_comments: {
            js: {
                src: 'src/comments/*.js',
                dest: 'src/'
            }
        }
    });

    grunt.loadNpmTasks('grunt-remove-comments');

    grunt.registerTask("default", ["remove_comments:js"]);

};

Then: $ grunt finishes with this:
Running "remove_comments:js" (remove_comments) task
Warning: Unable to write "src/" file (Error code: EISDIR). Use --force to continue.

Aborted due to warnings.

These are the dependencies:
    "grunt": "^1.0.3",
    "grunt-contrib-concat": "1.0.1",
    "grunt-remove-comments": "^0.1.6"

Ok, this made it work:
remove_comments: {
    js: {
        cwd: "src/comments/",
        src: "**/*.js",
        expand: true,
        dest: "src/"
    }
}

Closing


I would like to join your organization

GitHub Username : @cyberbuddy-manas
Email ID<EMAIL_ADDRESS>I want to be a part of the organization in order to get knowledge about Open Source. I would like to contribute in your organization and learn new skills and have a good experience while learning and contributing to the project.
I can code in all the Java, JS, CPP or Python and to be unique, I can write code in PowerShell scripts or any scripting language @aryashah2k

@cyberbuddy-manas Welcome, We will surely send an invite to join our organization.
Since you mentioned PowerShell scripts I guess you can work on the Windows compatibility of our Central project (the web version of the project). Currently it is Linux-only (Makefiles), we will be happy if anyone can maintain the Windows side of things. Please let me know me if you are interested.

Invite has been shared, welcome to PatternHouse!

@cyberbuddy-manas Welcome, We will surely send an invite to join our organization.
Since you mentioned PowerShell scripts I guess you can work on the Windows compatibility of our Central project (the web version of the project). Currently it is Linux-only (Makefiles), we will be happy if anyone can maintain the Windows side of things. Please let me know me if you are interested.

Definitely I'll like to work with you in the Central Project of yours if I get more details about it.

Definitely, @ChlorinePentoxide will be able to guide you for that repo and I am also adding you to the central team so all doubts can be taken there henceforth!

Coolx, hope for a great experience from you guys.
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: Arya Shah @.>
Sent: Friday, December 31, 2021 12:00:28 PM
To: PatternHouse/Join_PatternHouse @.>
Cc: Manas Gupta @.>; Mention @.>
Subject: Re: [PatternHouse/Join_PatternHouse] I would like to join your organization (Issue #38)
Definitely, @ChlorinePentoxidehttps://github.com/ChlorinePentoxide will be able to guide you for that repo and I am also adding you to the central team so all doubts can be taken there henceforth!
—
Reply to this email directly, view it on GitHubhttps://github.com/PatternHouse/Join_PatternHouse/issues/38#issuecomment-1003284742, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQYO3A67Y5FDSGXIEAYWTZ3UTVEYJANCNFSM5LAHRGDA.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID: @.***>


automatically squash sti-base

@soltysh ptal.

@goldmann thanks for the awesome squashing tool.

You welcome! If you find any issues or have RFEs - please file a ticket.

Awesome job @bparees, thx @goldmann for the tool :+1:
LGTM

LGTM (@goldmann, how about rewriting the tool to Go? :-)

@mfojtik Haha! No. :)

@goldmann (sad) :panda_face:

@goldmann that will allow to distribute it as a single binary without dependencies and it will allow us to use it in STI or other tooling :-)

Having it in Python makes it easy to integrate with rel-eng tools.

@mfojtik with @goldmann's approval we could include it as part of STI in future versions.

@soltysh if we rewrite this to Go :-)

@soltysh it will be cool feature of STI to squash the base image and then just add the application layer. So you can have just base and application layers.

@mfojtik Do not touch base layers, this will create a lot of unnecessary data to move around since squashed layers will have new IDs. Squash only what you add (application layer).

@goldmann in that case squashing in STI does not make sense, because we only add the application layer which is just one layer (I believe).

@mfojtik if so, we should apply the squashing just to our builder images, like @bparees is doing that with the base one.

@soltysh we discussed that we don't want to squash our builder images because we don't want minor changes to the assemble/run scripts to force a full re-pull of the entire builder layer.
however now that i restructured the builder layers to put the ADD early in the dockerfile (in order to reduce the number of layers) we may not have that benefit any more anyway.  But we do only introduce 3-4 layers in our builders now.

@mfojtik btw, just found that https://github.com/jwilder/docker-squash

@soltysh i only looked at it briefly but, that tool doesn't seem to support merging an arbitrary subset of layers like @goldmann 's tool does, which means we couldn't keep centos as its own set of layers.


⚠ Mobitopup has degraded performance

In f1e26c5, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 6001 ms

Resolved: Mobitopup performance has improved in 74adc4c.