Manager Webhook VolumeMounts Missing with OLM Install 4.6.48

Issue:
On a fresh Openshift 4.6.48 cluster, using OLM for operator installation (v.0.4.1) manager container fails to startup due to missing Webhook serving certificates:
Expected Result:
Manager includes webhook TLS cert volume/mounts setup.
volumeMounts:
...
  - name: webhook-cert
    mountPath: /tmp/k8s-webhook-server/serving-certs
volumes:
...
  - name: webhook-cert
    secretName: vault-config-operator-controller-manager-service-cert
    ...

Logs:
2022-04-19T18:50:25.475Z	ERROR	setup	problem running manager	{"error": "open /tmp/k8s-webhook-server/serving-certs/tls.crt: no such file or directory"}

Metadata:
 installedCSV: vault-config-operator.v0.4.1
 currentCSV: vault-config-operator.v0.4.1
 OCP: 4.6.48

Can you check the content of the "vault-config-operator-
controller-manager-service-cert" secret?
On Tue, Apr 19, 2022 at 2:56 PM Nick Jordan @.***>
wrote:

Issue:
On a fresh Openshift 4.6.48 cluster, using OLM for operator installation
(v.0.4.1) manager container fails to startup due to missing Webhook serving
certificates:
Expected Result:
Manager includes webhook TLS cert volume/mounts setup.
volumeMounts:
...

name: webhook-cert
mountPath: /tmp/k8s-webhook-server/serving-certs
volumes:
...
name: webhook-cert
secretName: vault-config-operator-controller-manager-service-cert
...

Logs:
2022-04-19T18:50:25.475Z	ERROR	setup	problem running manager	{"error": "open /tmp/k8s-webhook-server/serving-certs/tls.crt: no such file or directory"}
Metadata:
installedCSV: vault-config-operator.v0.4.1
currentCSV: vault-config-operator.v0.4.1
OCP: 4.6.48
—
Reply to this email directly, view it on GitHub
https://github.com/redhat-cop/vault-config-operator/issues/50, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABPERXHV5IC4U7CGQCOXKJ3VF4FVTANCNFSM5TZ4PBQQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
ciao/bye
Raffaele

Can you check the content of the "vault-config-operator- controller-manager-service-cert" secret?
…
On Tue, Apr 19, 2022 at 2:56 PM Nick Jordan @.> wrote: Issue: On a fresh Openshift 4.6.48 cluster, using OLM for operator installation (v.0.4.1) manager container fails to startup due to missing Webhook serving certificates: Expected Result: Manager includes webhook TLS cert volume/mounts setup. volumeMounts: ... - name: webhook-cert mountPath: /tmp/k8s-webhook-server/serving-certs volumes: ... - name: webhook-cert secretName: vault-config-operator-controller-manager-service-cert ... Logs: 2022-04-19T18:50:25.475Z ERROR setup problem running manager {"error": "open /tmp/k8s-webhook-server/serving-certs/tls.crt: no such file or directory"} Metadata: installedCSV: vault-config-operator.v0.4.1 currentCSV: vault-config-operator.v0.4.1 OCP: 4.6.48 — Reply to this email directly, view it on GitHub <#50>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABPERXHV5IC4U7CGQCOXKJ3VF4FVTANCNFSM5TZ4PBQQ . You are receiving this because you are subscribed to this thread.Message ID: @.>
-- ciao/bye Raffaele

kind: Secret
apiVersion: v1
metadata:
  annotations:
    olmcahash: f462a5209689573f9392097a02bd23969b26f15ab2720ffde116454631772244
  selfLink: >-
    /api/v1/namespaces/vault-config-operator/secrets/vault-config-operator-controller-manager-service-cert
  resourceVersion: '35294'
  name: vault-config-operator-controller-manager-service-cert
  creationTimestamp: '2022-04-19T18:22:20Z'
  namespace: vault-config-operator
  ownerReferences:
    - apiVersion: operators.coreos.com/v1alpha1
      kind: ClusterServiceVersion
      name: vault-config-operator.v0.4.1
      uid: ef8dc89e-6359-4c0d-a0f8-11955448e309
      controller: false
      blockOwnerDeletion: false
  labels:
    operators.coreos.com/vault-config-operator.vault-config-operator: ''
data:
  olmCAKey: >-
    LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJpRENDQVMyZ0F3SUJBZ0lJSVd2TEFUeXNhTmd3Q2dZSUtvWkl6ajBFQXdJd0dERVdNQlFHQTFVRUNoTU4KVW1Wa0lFaGhkQ3dnU1c1akxqQWVGdzB5TWpBME1Ua3hPREl5TWpCYUZ3MHlOREEwTVRneE9ESXlNakJhTUJneApGakFVQmdOVkJBb1REVkpsWkNCSVlYUXNJRWx1WXk0d1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DCkFBUlRSc3N0WlR0ei9oVzJNNldrUGxkZFRNdFFlV0h6YzZYMzVKVjB0SjN6dlNVdmQwdHE1VFNySmhMWlVTaTEKZkFCUWlBdXJJN1luS2U1aURwWExPbXBpbzJFd1h6QU9CZ05WSFE4QkFmOEVCQU1DQW9Rd0hRWURWUjBsQkJZdwpGQVlJS3dZQkJRVUhBd0lHQ0NzR0FRVUZCd01CTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3SFFZRFZSME9CQllFCkZJUVhUQTVFeDVJS01PbVZPaGNyV0MrbEcxM1BNQW9HQ0NxR1NNNDlCQU1DQTBrQU1FWUNJUUNneVpYeEhPYWsKamxrWlpqVU5yMzd1VzFoRDNTc3ZUOGVTTm9mN1k5a2llUUloQUpYaDA3Z0IxNE5kWk0vSDNNUTdoc2FyS3FaMgo3M1E3TU50RU5ta3c1RnNaCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
  tls.crt: >-
    LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNDRENDQWErZ0F3SUJBZ0lJRFVoTDRuazFuUE13Q2dZSUtvWkl6ajBFQXdJd0dERVdNQlFHQTFVRUNoTU4KVW1Wa0lFaGhkQ3dnU1c1akxqQWVGdzB5TWpBME1Ua3hPREl5TWpCYUZ3MHlOREEwTVRjeE9ESXlNakJhTUJneApGakFVQmdOVkJBb1REVkpsWkNCSVlYUXNJRWx1WXk0d1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DCkFBU3JuU3RReVRQczM0NHlwWEkwWFZjMElPbDZKSjZQMis4NVN5S003RldzTDhLQWhSazBTWkpvb1MySnZGV1MKSVhpbVlTS1VlUDJmcTc2blZIN1ArR25tbzRIaU1JSGZNQTRHQTFVZER3RUIvd1FFQXdJQ2hEQWRCZ05WSFNVRQpGakFVQmdnckJnRUZCUWNEQWdZSUt3WUJCUVVIQXdFd0RBWURWUjBUQVFIL0JBSXdBRENCbndZRFZSMFJCSUdYCk1JR1Vna1oyWVhWc2RDMWpiMjVtYVdjdGIzQmxjbUYwYjNJdFkyOXVkSEp2Ykd4bGNpMXRZVzVoWjJWeUxYTmwKY25acFkyVXVkbUYxYkhRdFkyOXVabWxuTFc5d1pYSmhkRzl5Z2twMllYVnNkQzFqYjI1bWFXY3RiM0JsY21GMApiM0l0WTI5dWRISnZiR3hsY2kxdFlXNWhaMlZ5TFhObGNuWnBZMlV1ZG1GMWJIUXRZMjl1Wm1sbkxXOXdaWEpoCmRHOXlMbk4yWXpBS0JnZ3Foa2pPUFFRREFnTkhBREJFQWlCNmsxRFVlRCt6bXFWdEpyT0xZTjByQjN2SE4zemoKczdlRFhLcGtCQVExS1FJZ0l2b2xPNGVrV2dzUHZGY2NKUmNOR1k3SnJhaXArQlZDL3duY0ZEUGNBUEk9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
  tls.key: >-
    LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUpEM1d4cmcwRjExcW1RQk1FTGV6SXdWRGZEeURDZ0hVWnJPZHBFTWhZM01vQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFcTUwclVNa3o3TitPTXFWeU5GMVhOQ0RwZWlTZWo5dnZPVXNpak94VnJDL0NnSVVaTkVtUwphS0V0aWJ4VmtpRjRwbUVpbEhqOW42dStwMVIrei9ocDVnPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=
type: kubernetes.io/tls

Secret from Lab cluster above.  Is created and mounted as api-service cert successfully, base64 looks valid.
    - name: apiservice-cert
      secret:
        secretName: vault-config-operator-controller-manager-service-cert
        items:
          - key: tls.crt
            path: apiserver.crt
          - key: tls.key
            path: apiserver.key
        defaultMode: 420

ok, so it;s weird, why would it say that that file is missing?
On Tue, Apr 19, 2022 at 4:56 PM Nick Jordan @.***>
wrote:

Can you check the content of the "vault-config-operator-
controller-manager-service-cert" secret?
… <#m_-113425751698073940_>
On Tue, Apr 19, 2022 at 2:56 PM Nick Jordan @.> wrote: Issue: On a
fresh Openshift 4.6.48 cluster, using OLM for operator installation
(v.0.4.1) manager container fails to startup due to missing Webhook serving
certificates: Expected Result: Manager includes webhook TLS cert
volume/mounts setup. volumeMounts: ... - name: webhook-cert mountPath:
/tmp/k8s-webhook-server/serving-certs volumes: ... - name: webhook-cert
secretName: vault-config-operator-controller-manager-service-cert ... Logs:
2022-04-19T18:50:25.475Z ERROR setup problem running manager {"error":
"open /tmp/k8s-webhook-server/serving-certs/tls.crt: no such file or
directory"} Metadata: installedCSV: vault-config-operator.v0.4.1
currentCSV: vault-config-operator.v0.4.1 OCP: 4.6.48 — Reply to this email
directly, view it on GitHub <#50
https://github.com/redhat-cop/vault-config-operator/issues/50>, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABPERXHV5IC4U7CGQCOXKJ3VF4FVTANCNFSM5TZ4PBQQ
https://github.com/notifications/unsubscribe-auth/ABPERXHV5IC4U7CGQCOXKJ3VF4FVTANCNFSM5TZ4PBQQ
. You are receiving this because you are subscribed to this thread.Message
ID: @.>
-- ciao/bye Raffaele
kind: Secret
apiVersion: v1
metadata:
annotations:
olmcahash: f462a5209689573f9392097a02bd23969b26f15ab2720ffde116454631772244

selfLink: >-
/api/v1/namespaces/vault-config-operator/secrets/vault-config-operator-controller-manager-service-cert

resourceVersion: '35294'
name: vault-config-operator-controller-manager-service-cert
creationTimestamp: '2022-04-19T18:22:20Z'
namespace: vault-config-operator
ownerReferences:
- apiVersion: operators.coreos.com/v1alpha1

  kind: ClusterServiceVersion

  name: vault-config-operator.v0.4.1

  uid: ef8dc89e-6359-4c0d-a0f8-11955448e309

  controller: false

  blockOwnerDeletion: false

labels:
operators.coreos.com/vault-config-operator.vault-config-operator: ''

data:
olmCAKey: >-
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJpRENDQVMyZ0F3SUJBZ0lJSVd2TEFUeXNhTmd3Q2dZSUtvWkl6ajBFQXdJd0dERVdNQlFHQTFVRUNoTU4KVW1Wa0lFaGhkQ3dnU1c1akxqQWVGdzB5TWpBME1Ua3hPREl5TWpCYUZ3MHlOREEwTVRneE9ESXlNakJhTUJneApGakFVQmdOVkJBb1REVkpsWkNCSVlYUXNJRWx1WXk0d1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DCkFBUlRSc3N0WlR0ei9oVzJNNldrUGxkZFRNdFFlV0h6YzZYMzVKVjB0SjN6dlNVdmQwdHE1VFNySmhMWlVTaTEKZkFCUWlBdXJJN1luS2U1aURwWExPbXBpbzJFd1h6QU9CZ05WSFE4QkFmOEVCQU1DQW9Rd0hRWURWUjBsQkJZdwpGQVlJS3dZQkJRVUhBd0lHQ0NzR0FRVUZCd01CTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3SFFZRFZSME9CQllFCkZJUVhUQTVFeDVJS01PbVZPaGNyV0MrbEcxM1BNQW9HQ0NxR1NNNDlCQU1DQTBrQU1FWUNJUUNneVpYeEhPYWsKamxrWlpqVU5yMzd1VzFoRDNTc3ZUOGVTTm9mN1k5a2llUUloQUpYaDA3Z0IxNE5kWk0vSDNNUTdoc2FyS3FaMgo3M1E3TU50RU5ta3c1RnNaCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K

tls.crt: >-
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNDRENDQWErZ0F3SUJBZ0lJRFVoTDRuazFuUE13Q2dZSUtvWkl6ajBFQXdJd0dERVdNQlFHQTFVRUNoTU4KVW1Wa0lFaGhkQ3dnU1c1akxqQWVGdzB5TWpBME1Ua3hPREl5TWpCYUZ3MHlOREEwTVRjeE9ESXlNakJhTUJneApGakFVQmdOVkJBb1REVkpsWkNCSVlYUXNJRWx1WXk0d1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DCkFBU3JuU3RReVRQczM0NHlwWEkwWFZjMElPbDZKSjZQMis4NVN5S003RldzTDhLQWhSazBTWkpvb1MySnZGV1MKSVhpbVlTS1VlUDJmcTc2blZIN1ArR25tbzRIaU1JSGZNQTRHQTFVZER3RUIvd1FFQXdJQ2hEQWRCZ05WSFNVRQpGakFVQmdnckJnRUZCUWNEQWdZSUt3WUJCUVVIQXdFd0RBWURWUjBUQVFIL0JBSXdBRENCbndZRFZSMFJCSUdYCk1JR1Vna1oyWVhWc2RDMWpiMjVtYVdjdGIzQmxjbUYwYjNJdFkyOXVkSEp2Ykd4bGNpMXRZVzVoWjJWeUxYTmwKY25acFkyVXVkbUYxYkhRdFkyOXVabWxuTFc5d1pYSmhkRzl5Z2twMllYVnNkQzFqYjI1bWFXY3RiM0JsY21GMApiM0l0WTI5dWRISnZiR3hsY2kxdFlXNWhaMlZ5TFhObGNuWnBZMlV1ZG1GMWJIUXRZMjl1Wm1sbkxXOXdaWEpoCmRHOXlMbk4yWXpBS0JnZ3Foa2pPUFFRREFnTkhBREJFQWlCNmsxRFVlRCt6bXFWdEpyT0xZTjByQjN2SE4zemoKczdlRFhLcGtCQVExS1FJZ0l2b2xPNGVrV2dzUHZGY2NKUmNOR1k3SnJhaXArQlZDL3duY0ZEUGNBUEk9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K

tls.key: >-
LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUpEM1d4cmcwRjExcW1RQk1FTGV6SXdWRGZEeURDZ0hVWnJPZHBFTWhZM01vQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFcTUwclVNa3o3TitPTXFWeU5GMVhOQ0RwZWlTZWo5dnZPVXNpak94VnJDL0NnSVVaTkVtUwphS0V0aWJ4VmtpRjRwbUVpbEhqOW42dStwMVIrei9ocDVnPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=

type: kubernetes.io/tls
Secret from Lab cluster above. Is created and mounted as api-service
cert successfully, base64 looks valid.
- name: apiservice-cert

  secret:

    secretName: vault-config-operator-controller-manager-service-cert

    items:

      - key: tls.crt

        path: apiserver.crt

      - key: tls.key

        path: apiserver.key

    defaultMode: 420

—
Reply to this email directly, view it on GitHub
https://github.com/redhat-cop/vault-config-operator/issues/50#issuecomment-1103209261,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABPERXDB6WBME5R47C6UJ43VF4TZLANCNFSM5TZ4PBQQ
.
You are receiving this because you commented.Message ID:
@.***>

--
ciao/bye
Raffaele

Appears this is a known issue with OLM and operators built with Operator SDK/Kubebuilder fixed in 4.7. [0] [1]
For now, adding the mounts with OLM Subscription.config appears viable [2], but will apply to all containers e.g. kube-rbac-proxy.
[0] https://bugzilla.redhat.com/show_bug.cgi?id=1879248
[1] https://github.com/operator-framework/operator-lifecycle-manager/pull/1808
[2] https://github.com/operator-framework/operator-lifecycle-manager/blob/master/doc/design/subscription-config.md#volumemounts


Ruleset

Add adidas guidelines for spectral as rulesets.

@jerzyn i run spectral against de demo API https://app.apiary.io/demotemplate that is compliant with adidas API Guidelines.
spectral lint ./test.yaml -r spectral.yml

/Users/amzansam/Projects/api-guidelines/test.yaml
   1:1       warning  api-host                      OpenAPI `host` must be present and non-empty string.
   2:6       warning  info-contact                  Info object should contain `contact` object.
  31:9   information  operation-tags                Operation should have non-empty `tags` array.
  43:9       warning  operation-description         Operation `description` must be present and non-empty string.
  43:9   information  operation-tags                Operation should have non-empty `tags` array.
  54:10      warning  operation-description         Operation `description` must be present and non-empty string.
  54:10  information  operation-tags                Operation should have non-empty `tags` array.
  82:9       warning  operation-description         Operation `description` must be present and non-empty string.
  82:9   information  operation-tags                Operation should have non-empty `tags` array.
  97:18        error  response-error-problem        Error response document MUST follow application/problem+json: should have required property 'title'
 100:11      warning  operation-description         Operation `description` must be present and non-empty string.
 100:11  information  operation-tags                Operation should have non-empty `tags` array.
 109:18        error  valid-example-in-parameters   "schema.example" property should have required property 'orderNumber'
 117:12      warning  operation-description         Operation `description` must be present and non-empty string.
 117:12  information  operation-tags                Operation should have non-empty `tags` array.
 121:13        error  response-success-hal          Response documents MUST follow application/hal+json: paths./orders/{orderId}.delete.responses.204.schema does not exist
 183:14        error  valid-example-in-definitions  "halRoot.example" property type should be array
 197:14        error  valid-example-in-definitions  "halOrders.example" property type should be array
 228:14        error  valid-example-in-definitions  "halOrder.example" property type should be array
 249:13        error  valid-example-in-definitions  "orderPatch.example" property should have required property 'orderNumber'

Did I miss something ?

@jerzyn @Amzani I've introduced the example folder and added the "orders" API demo example. I've also added the adidas api supermodel https://supermodel.io/adidas/api to the mix so we can use those files directly in spectral ruleset.

With the changes above and examples/demo-orderapi.oas2.yaml I am getting:
(in the root of api-guidelines repository)
$ spectral lint examples/demo-orderapi.oas2.yaml

OpenAPI 2.0 (Swagger) detected

/home/z/Codebase/adidas/api-guidelines/examples/demo-orderapi.oas2.yaml
   1:1       warning  api-host                      OpenAPI `host` must be present and non-empty string.
   2:6       warning  info-contact                  Info object should contain `contact` object.
  31:9   information  operation-tags                Operation should have non-empty `tags` array.
  43:9       warning  operation-description         Operation `description` must be present and non-empty string.
  43:9   information  operation-tags                Operation should have non-empty `tags` array.
  54:10      warning  operation-description         Operation `description` must be present and non-empty string.
  54:10  information  operation-tags                Operation should have non-empty `tags` array.
  82:9       warning  operation-description         Operation `description` must be present and non-empty string.
  82:9   information  operation-tags                Operation should have non-empty `tags` array.
  97:18        error  response-error-problem        Error response document MUST follow application/problem+json: should have required property 'title'
 100:11      warning  operation-description         Operation `description` must be present and non-empty string.
 100:11  information  operation-tags                Operation should have non-empty `tags` array.
 117:12      warning  operation-description         Operation `description` must be present and non-empty string.
 117:12  information  operation-tags                Operation should have non-empty `tags` array.
 121:13        error  response-success-hal          Response documents MUST follow application/hal+json: paths./orders/{orderId}.delete.responses.204.schema does not exist
 183:14        error  valid-example-in-definitions  "halRoot.example" property type should be array
 197:14        error  valid-example-in-definitions  "halOrders.example" property type should be array
 228:14        error  valid-example-in-definitions  "halOrder.example" property type should be array

✖ 18 problems (5 errors, 7 warnings, 6 infos, 0 hints)

Where I think the:

97:18        error  response-error-problem        Error response document MUST follow application/problem+json: should have required property 'title'

Is incorrect as the example has title.

 121:13        error  response-success-hal          Response documents MUST follow application/hal+json: paths./orders/{orderId}.delete.responses.204.schema does not exist

Is incorrect as 204 has no body and hence no HAL

183:14        error  valid-example-in-definitions  "halRoot.example" property type should be array
197:14        error  valid-example-in-definitions  "halOrders.example" property type should be array
228:14        error  valid-example-in-definitions  "halOrder.example" property type should be array

Are incorrect as the example has a one value specified (and the value can be either string or array of strings).
I'd like to fix these before merging. What do you think @jerzyn ?

Totally agree - we should make it foolproof before merging. Will check it out!

The 204 response error has been fixed. Working on others

btw. the error with the problem+json thing does not come from the example but from the schema check. Either way, it is incorrect

@jerzyn I have rewritten the demo with the supermodel (better handling of refs, up-to-date HAL schema too) and added the build and test scripts. Please see demo-orderapi-v3.oas2.yaml in the examples folder.
Then run:
$ yarn install
$ yarn build-examples
$ yarn test

I am now getting "only" two errors:
198:13        error  valid-example-in-definitions  "supermodelIoAdidasExamplesOrderApiOrder.example" property can't resolve reference #/definitions/supermodelIoAdidasApiHAL from id #
226:13        error  valid-example-in-definitions  "supermodelIoAdidasExamplesOrderApiOrders.example" property can't resolve reference #/definitions/supermodelIoAdidasApiHAL from id #

Which I do not understand. can someone look at these please?

@jerzyn what is the status? I've updated the package json to run the tests.
Please do:
$ yarn install
$ yarn test

The current output is:
...
✖ 96 problems (35 errors, 43 warnings, 18 infos, 0 hints)

Are there intentionally failing examples in the /examples folder? If not, should we fix all the errors first, before merging? Again, I do not think we need to have all the rules there in the first iteration, rather I'd like to see a minimal set of rules that is 100% working without fail positives.
Note I also think we should have "good" and "bad" examples. That is OAS files that are conforming to guidelines and those that are not conforming. Both are important for testing and understanding the guidelines.

@zdne Yeah, there are some intentional errors in other files. I'll do last check and it's good to merge

@zdne I'd say it's ready to merge. Later I would streamline the examples to check for more cases. Not needed IMHO for this time.

@jerzyn the current test results for the valid examples are:
/home/z/Codebase/adidas/api-guidelines/examples/valid/demo-orderapi-v3.oas2.yaml
   1:1       warning  api-host        OpenAPI `host` must be present and non-empty string.
   2:6       warning  info-contact    Info object should contain `contact` object.
  31:9   information  operation-tags  Operation should have non-empty `tags` array.
  50:9   information  operation-tags  Operation should have non-empty `tags` array.
  62:10  information  operation-tags  Operation should have non-empty `tags` array.
  91:9   information  operation-tags  Operation should have non-empty `tags` array.
 116:11  information  operation-tags  Operation should have non-empty `tags` array.
 134:12  information  operation-tags  Operation should have non-empty `tags` array.

✖ 8 problems (0 errors, 2 warnings, 6 infos, 0 hints)

I do not think that we should enforce info-contact, operation-tags and I am not sure about api-host either. What do you think?

First - I am changing the examples. Will publish them later today
Second - Those are not errors, just a warning or an information - I think it is a good practice to have them, so it's a good one to let people know they don't have it. Those should not block deployments and other things in CI process and anything which is not an error can be turned off. That is my 2c :)

@zdne now the tests are not failing. Invalid tests are not taken into account in the test script. Tags rules is turned off in the ruleset. Example file has hosts added, contact object and operations descriptions. Take a look and IMHO ready to merge. Next step will be to refine the invalid examples section and add a passing OAS3 example, but first write a guide on how to use it. If you don't oppose, I will create the guide as a guidelines page.

Amazing! The only question I have is why the contact is me? 🥳 😀

your example, your contact ;)


new developement area handling

Kind of request
Changing existing functionality
Enhancement Description
Right now it is not clear what happens with the new develeopment area with respect to the output visualization (buildings and aggregation areas). Same for equity output.
Task list

[ ] Check current behaviour
[ ] Find best way to give labels to the new development area with respect to aggregation
[ ] Write tests

Use case
No response
Additional Context
No response

Please discuss with Frederique on how it was handled in the old version. Plus either Kathryn or Panos

@frederique-hub how was this handled in the old version?

discuss the low-hanging fruit solution before september deadline

@frederique-hub how was this handled in the old version?

In the old version, we did an overlay of the new development areas with the aggregation areas, but I'm not 100% sure. That would be the best option with regard to consistency.

We may want to work with a tagged version, now that this functionality is working with HydroMT, to avoid that they make changes and it no longer works.

@kathrynroscoe right now if the new developing area is overlapping with two or more aggregation areas in any of the aggregation types, there is an error and the computation is stoped with an error message from hydromt-fiat.
How do we want to handle this?


Value Zero not view

hi , i have json file to showing in table have a zero number it is work with auther number but not with zero

i don't understand. are you saying the grid doesn't display zeros???

it contains zero number not displayed

it's probably confusing zero with undefined or null. thanks for pointing out, i'll look into it.

yes


[Feature] will modelscope support prompt-based tuning for large language models?

Thanks for your attention to the modelscope large language models. We have now provided the prompt-based tuning for the Chinese GPT-3 base/large/1.3B/2.7B models. You just need to handle the data and refer to the code of model card to start training. Later, we will consider supporting training larger models, including GPT-3 175B.

Thanks for your quick reply and looking forward to GPT-3 175B. I found that the fine-tuning examples exist in GPT-3 large repo and GPT-3 poetry-generation, but not in GPT-3 13B. For GPT-3 13B and GPT-3 30B, is there a plan to release these checkpoints for the community?

We haven't had a plan to release the 13B and 30B for downloading,  yet the finetune procedures are the same with the smaller one.  So i will suggest you to run and test with smaller firstly.


Fix bug where solver with no selector causes nil pointer

Signed-off-by: Michael Tsang<EMAIL_ADDRESS>
What this PR does / why we need it:
Previously when the selectedSolver has been set, and the current solver has no selector, a nil pointer panic would occur as it would try to retrieve data from the selector - we now just skip if the selectedSolver has already been set since it must be just as or more specific than the current.
Release note:

NONE

/cherrypick release-0.8

/lgtm
/approve


OpenVPN instance: TLS Shared Key

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Is your feature request related to a problem? Please describe.
In order to fully migrate from legacy servers I would like to use same options for TLS Authentication: TLS Shared Key.
Describe the solution you like
Implement TLS Shared Key option in Openvpn instances config.
Describe alternatives you considered
None
Additional context
It will also further secure TLS control channel.

you're probably seeking the TLS static key option (tls-crypt / tls-auth). A full set of existing features can be found at https://openvpn.net/community-resources/reference-manual-for-openvpn-2-6/ in case something misses,

you're probably seeking the TLS static key option (tls-crypt / tls-auth). A full set of existing features can be found at https://openvpn.net/community-resources/reference-manual-for-openvpn-2-6/ in case something misses,

Yes you are right. I had my mind hard fixed on "TLS Shared Key" that I had missed "TLS static key" config option in instances. Thanks!


Master election blacklist

Implement a blacklist which makes peer is temporary unavailable if master assignment is failed to it.

declined. Changed leader election to Curator.


WIP: groovyw module update-all improvements

Contains
Fixes #3661 Parts 1 and 2 (now fixes all three parts)
Notes:

I would have rather done a full diff of everything that changed in an update instead of listing the file changes per commit, but grgit doesn't seem to have the diff capability on anything other than single commits until this PR is merged https://github.com/ajoberstar/grgit/pull/318

I'm not fully sold that skipping an update is the best approach if a module has recently been updated. Running a few extra git-fetches in the event an update needs to be re-run isn't that expensive in the grand scheme, and personally I'd rather be able to ensure I have the latest by re-running the pull. Maybe some sort of "force update" option would be a good compromise here? So skip updating the module unless something like -f was passed?

I didn't understand Part 3 of the issue

How to test
Skip updating module if recently updated:
cd modules/<module name>
git pull
cd ../..
groovyw module update-all
Simulate updating with 5 commits:
cd modules/<module name>
git reset --hard HEAD~5
cd ../..
groovyw module update-all
Confirm subdirectories in .gitignore do not block parent directory
in .gitignore change .settings/ to .settings/hide
Confirm that .settings is no longer ignored in groovyw module update-all
Sample output
In the sample screenshot we see:

.Settings is ignored due to being in the .gitignore
CakeLie already up to date
CoreSampleGameplay recently updated within 2 minutes, so skip
Health pulls 5 commits  to update
ModuleTestingEnvironment already up to date

(Image updated with .Settings skipped to honor .gitignore)

Thanks @cvennel - the sample output looks neat. I'll get round reviewing this later this eveneing (hopefully 🙈 ). Here are my initial 2 cents on the topic:
Part 3 refers to the fact that the script is blindly trying to update the "module" .settings even though the folder is in .gitignored.
I'm not sure what the benefit of skipping should be in any case - I hope we are not optimizing for bandwidth, and pointlessly waiting for two minutes or doing the commands manually seems silly. I thought that git pull (doing fetch and merge) is already kind of smart to check that no updates are available.

Hi @skaldarnar. Thanks for the clarification on part 3.
Regarding part 2, I agree with you, I'm not seeing the benefit of skipping as described in part 2, but it was in the issue so I wrote it up :) I have it as a separate commit to make it easy to back out if that's what we end up deciding to do.
I'll add some more to handle part 3.

Ok, now the .setting module should be ignored since it's in the .gitignore.
We also want to make sure subdirectories in the .gitignore don't block the parent directory. I'll add more details to the description and how to test

@skaldarnar, do you mind telling me what check failed?

The analytics step failed in our Jenkins pipeline:

It failed with
FAILURE: Build failed with an exception.

* What went wrong:
Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)

I'm restarting the build.

I haven't been following this, just noticing bits as they come across the activity feed, but maybe https://git-scm.com/docs/git-check-ignore is interesting to you?

I haven't been following this, just noticing bits as they come across the activity feed, but maybe https://git-scm.com/docs/git-check-ignore is interesting to you?

@keturn I hadn't seen that before, thanks for the new info! Unfortunately it looks like this would ignore every module since the main .gitignore has /modules/* in it which can't change otherwise the main repo would get all the modules stuff.
I also don't think the .gitignores below the modules directory should be able to control each other except maybe within .settings (putting ../health in the .gitignore file in the CakeLie module shouldn't allow blocking updates for health)
So I think this is in a weird state of trying to honor the .gitignores, but since the .gitignore would ignore everything we can't trust the .gitignore. Would we be better off creating another settings file to control this like maybe a .moduleignore file in the modules dir?
Using a dedicated module update config isn't as slick, but the only other thing I can think of at the moment is manually parsing each config file looking for an exact match of the relative path to a module in addition to the main .gitignore's /modules/* setting. This feels wrong to me since it would seem redundant to have both /modules/* and /modules/.settings/ in the gitignore when in reality they serve two completely different purposes.
sorry for the long rambling message, kind of unsure which way to take this now.

Hey @cvennel - great work here, really appreciate seeing it and am looking forward to trying it :-)
For the .gitignore thing while it sounds cool to use it in a dynamic fashion, if it is getting too complex would it be an option simply to hardcode ignoring anything not starting with an alphanumeric character? That'll catch all the metadata type directories like .settings and about anything else I could think of. Anything starting with an actual letter (or possibly number) likely should be a module or we're being goofy.
On skipping recently updated modules I could see that maybe being handy in a mega-workspace - if you're trying to update 200 modules and a few fail from being dirty it might be nice to clean them up then just run again (I've hit that occasionally and been reluctant to run the whole thing again). Although who knows if 2 minutes would be enough for that, and trying to make that more advanced would probably again just overcomplicate things.

New updates:
part 1) none
part 2)For the .gitignore section, I took @Cervator's suggestion and hard-coded skipping non-alphanumeric modules since it was just getting too goofy with the .gitignore follow but don't follow problem.
part 3) I made skipping modules an option. By default, we'll let git try and fetch each module and progress as normal. However, if so desired, you can now run groovy update-all --continue which will skip anything that has been updated within 10 minutes, I think this strikes a good balance between various suggestions from @Cervator  and @skaldarnar

and regarding the WIP prefix, I lost track of the draft button and habits from using Gitea at work kicked in, oops :) thanks for the reminder about draft

I tried the --continue flag after first running an update normally, which ended up not actually needing to update anything. On the subsequent run with --continue oddly two of the module (of about a dozen) skipped due to recent updates, while the rest just did the "updating module x" then followed by "No changes found". That's a convenience at best so even if it doesn't work perfectly it doesn't really block merging :-)

The condition will only skip updates if the .git/FETCH_HEAD has been updated, so a git fetch that results in no changes may not change the file and such would not cause that module to be skipped. I think in testing I had to git pull in the module directory because git fetch didn't update the file but I can't fully remember. I bet we could do something simple like just open the FETCH_HEAD while iterating through to change the system time of the last update on the file. That would cause every module you fetched to skip as well.

I just added checks to make sure the fetch_head exists and now update the modified time whenever groovyw module update-all is run. This fixes the behavior that @Cervator noted:

On the subsequent run with --continue oddly two of the module (of about a dozen) skipped due to recent updates, while the rest just did the "updating module x" then followed by "No changes found".

Okay, let's get this merged (see pending comments) with the skipping feature for now.
In addition, bringing @cvennel 's attention to https://github.com/MovingBlocks/Terasology/issues/4035 for more build and logistics magic 😉 Ever wanted to try out Kotlin? 🤓

I should be able to work on this tonight after work. I had to finish up some stuff for school this weekend . And I like kotlin :) I'll take a look at #4035 too

Thank you very much for the work @cvennel :-)
And for the review and support @skaldarnar 👍


openstack: Don't substitute manager container command

Also remove openstack from image replacement as openstack is not in cluster-capi-operator's image-references and does its own release image substitution anyway.

/retest

/jira refresh


fix: support a fetch join in the spring page query

Motivation

When Spring was released to version 3.X, it supported fetch join for page queries.
Kotlin JDSL does not yet support fetch join for the page query because it uses Spring's legacy API.

Modifications

Create the Sort and Count queries using Spring's QueryEnhancer.

Commit Convention Rule

Please commit your modification based by conventional commit:

Commit type
Description

feat
New Feature

fix
Fix bug

docs
Documentation only changed

ci
Change CI configuration

refactor
Not a bug fix or add feature, just refactoring code

test
Add Test case or fix wrong test case

style
Only change the code style(ex. white-space, formatting)

chore
It refers to minor tasks such as library version upgrade, typo correction, etc.

If you want to add some more commit type please describe it on the Pull Request

Result

Users can use fetch join in the page query.
However, the bugs that Spring has with the page query are still reproduced.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (9da2399) 66.47% compared to head (5bada5d) 66.51%.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop     #631      +/-   ##
===========================================
+ Coverage    66.47%   66.51%   +0.04%
===========================================
  Files          467      467
  Lines         4760     4766       +6
  Branches       277      277
===========================================
+ Hits          3164     3170       +6
  Misses        1539     1539
  Partials        57       57

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Integrating TLS in an example sketch for AWS IoT service?

Hello,
I'd like to use this library with an arduino sketch talking to the AWS IoT service that requires TLS.  I'm curious if you have any example code that you could include in the library examples to accomplish this.
Currently, I'm doing system() calls to the mosquitto_pub CLI binary from the sketch on an Intel Edison/Galileo dev board but I'd much rather use this library, especially as I migrate to the esp8266.
Thank you!

Hi, no I don't have any such example, but I would welcome one if it is possible to do. I primarily use this client on arduino-based platforms where TLS simply isn't an option. Obviously the Edison/Galileo boards are more capable - but I don't know if you can create TLS connections from sketches created in the arduino IDE.

Alright, thanks for the quick response.  I'll see what I can cook up and try to contribute an example.  I'm a bit new at this though...

AFAICT, you should be able to take the mqtt_esp8266 example and substitute the WiFiClientSecure class in place of the WiFiClient class and it should just work.  I haven't had a chance to try it out, though!

Of course it won't verify the server.  But it should connect.  And if you've got the fingerprint of your MQTT server's certificate, you can use WiFiClientSecure::verify() to verify it.

I just tried WiFiClientSecure instead of WiFiClient and the sketch compiles just fine. I can't flash it soon because I lost my esp8266 and I'm waiting for a new one, I hope someone can confirm that WiFiClientSecure works with pubsubclient :)

WiFiClientSecure do work with pubsubclient.
But WiFiClientSecure supports only tls1.0 and tls1.1.
Clients must support tlsv1.2 to use AWS IoT.
I have tested tlsv1.2 using mosquitto with esp8266 and could not connect.
testing code with mosquitto(tlsv1.1 / user / pass) and esp8266(ca.crt is not used, verify finger print of server cert)
https://gist.github.com/chaeplin/3223074601733fa46d4a

wow great info, thanks!

I've also got this working, I guess using TLSv1.1 and a Mosquitto server that I host myself.  But using client certificates causes a crash.  I've used openssl to create the server and client keys and certificates and signed them using my own CA.  Then I've converted the client key and certificate to a C array form like this:
openssl enc -d -a client.key > client.bin.key
openssl enc -d -a client.crt > client.bin.crt
xxd -i client.bin.key > client_key.h
xxd -i client.crt.key > client_crt.h
cat client_*.h > certificates.h

Then in my sketch I've done this:
WiFiClientSecure espClient;
PubSubClient mqtt(espClient);
#include "certificates.h"

void setup() {
    // ... wifi setup goes here ...
    espClient.setCertificate(client_bin_crt, client_bin_crt_len);
    espClient.setPrivateKey(client_bin_key, client_bin_key_len);

    mqtt.setServer(mqtt_server, 8883);
    mqtt.setCallback(mqtt_cb); // Defined elsewhere
}

void reconnect() { /* As per the ESP8266 example */ }

void loop() {
    if(!mqtt.connected()) {
        reconnect();
    }
    mqtt.loop();
}

This works fine until I enable the require_certificate option in Mosquitto, then it causes a crash on the ESP8266.  I'm not exactly sure where the crash happens, but it's before the connection to mosquitto is complete.  When I say crash, the following appears on the serial console:
Soft WDT reset

ctx: cont
sp: 3fff1a00 end: 3fff1f20 offset: 01b0

>>>stack>>>
... stack data here ...
<<<stack<<<

 ets Jan   8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1264, room 16
tail 0
chksum 0x42
csum 0x42
~ld

I've checked that I can connect to mosquitto with certificates required using the Python Paho client, so the problem seems to be on the ESP8266 / PubSubClient end.  I'm not sure how best to debug this, but I'll start looking at it.

This of course is a watchdog timeout.  You can disable the software watchdog with ESP.wdtDisable() for the duration of the reconnect() call, but the hardware watchdog goes too.  In my case, changing the CPU frequency to 160MHz was enough to make this fast enough to successfully connect to Mosquitto using a client certificate; YMMV.

@tomkcook I have following error with setCertificate and setPrivateKey ( require_certificate true in mosquitto)
1453566273: New connection from <IP_ADDRESS> on port 8883.
1453566273: OpenSSL Error: error:140890C7:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:peer did not return a certificate
1453566273: Socket error on client <unknown>, disconnecting.

That seems to be a fairly generic mosquitto error, but one thing that can cause it is if your certificates are correct but you don't provide a valid username/password when connecting - either set allow_anonymous to true in the mosquitto conf or create a user with mosquitto_passwd and provide the correct username and password.

@tomkcook with 'require_certificate flase', tlsv1.1 and username/password is woking.
With 'require_certificate true', certificate error comes.

Well, I guess there's a problem with your certificate!  I'm no expert here, sorry.  Is your client certificate signed with the CA certificate that mosquitto is configured with?  Have you encoded the certificate correctly?

@tomkcook New CA generated, and tested using mosquitto_sub/1.4.7.

@tomkcook this is the mosquitto error i'm getting:
** OpenSSL Error: error:14089087:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:cert length mismatch** with require_certificate true enabled and with it disabled  and without loading any certificates and just using WiFiSecureClient along with usename and password pubsubclient connects to the MQTT broker (mosquitto), which is not at all possible using other clients such as MQTTFx or pubsubclient_sub or pubsubclient_pub without providing the ca file

@tomkcook
@noelgeorgi have you managed to solve the problem?
I did the same thing as you, and with MQTTFx client I am not in able to connect to mosquitto broker without providing valid ca certificate, and when I use WiFiSecureClient, and managing to connect to broker with and without a valid fingerprint of cert.

It Works For Me (TM).  One thing I've found is that subscribing to more than one topic causes the client to hang and I haven't had time to investigate why.  Here's how I'd approach debugging this:

Make sure your ESP8266 is set to 160MHz.
Make sure your certificates and username/password are correct.
Create a sketch that just connects to the MQTT server and subscribes to one topic.
If that all works, expand it into your actual sketch gradually.

I'm not sure when I'll get time to look at the multiple-subscriptions problem.

Hi,
I installed Open SSL 32 or 64 bit version both and trying to run mosquito client and server over secure link.
I did following steps :

Environment variable :    set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg

2.First, we generate the CA certificate with the following command:
openssl req -new -x509 -days 3650 -keyout m2mqtt_ca.key -out m2mqtt_ca.crt
3.At this point we can move on to the generation of a private key for the server and related certificate request must be signed by the CA. Regarding the generation of the private key, we can perform:
openssl genrsa -des3 -out m2mqtt_srv.key 1024

Once this is done, let's move to the generation of the certificate request from the server to be signed by the CA.
openssl req -out m2mqtt_srv.csr -key m2mqtt_srv.key -new

5.openssl x509 -req -in m2mqtt_srv.csr -CA m2mqtt_ca.crt -CAkey m2mqtt_ca.key -CAcreateserial -out m2mqtt_srv.crt -days 3650
Then,
I created the file mosquitto_m2mqtt.conf in which the parameters to be changed are as follows in the section "Default Listener" and "Certificate based SSL / TLS support":
bind_address localhost
port 8883
tls_version tlsv1
cafile C:/OpenSSL-Win32/bin/m2mqtt_ca.crt
certfile C:/OpenSSL-Win32/bin/m2mqtt_srv.crt
keyfile C:/OpenSSL-Win32/bin/m2mqtt_srv.key
Then, I am trying to run -
In CMD window as-

mosquitto -c mosquitto_m2mqtt.conf -v

I get following error whenever I trigger subscribe request from another window 👍<PHONE_NUMBER>: mosquitto version 1.4.10 (build date 24/08/2016 21:03:24.73) starting
1486317027: Config loaded from mosquitto_m2mqtt.conf.
1486317027: Opening ipv6 listen socket on port 8883.
1486317027: Opening ipv4 listen socket on port 8883.
Enter PEM pass phrase:
1486317034: New connection from <IP_ADDRESS> on port 8883.
1486317034: OpenSSL Error: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca
1486317034: OpenSSL Error: error:140940E5:SSL routines:ssl3_read_bytes:ssl handshake failure
1486317034: Socket error on client , disconnecting.
Please help me to solve this. If this works fine, then I will be start implementing SSL with ESP as per above threads.
In another CMD window:

mosquitto_sub -h localhost -p 8883 -q 1 -t sensor/temp --cafile C:\OpenSSL-Win32\bin\m2mqtt_ca.crt --tls-version tlsv1 -d

@jyotirajsharma sorry, you would be better off asking this on StackOverflow, or the mosquitto mailing list.

@jyotirajsharma As knolleary says, this is not really the place.  However, see https://nofurtherquestions.wordpress.com/2016/03/14/making-an-esp8266-web-accessible/ for a fairly complete description of how to get this working.
One immediate thing I notice is that you're missing -extensions v3_ca on the openssl commandline when generating your CA certificate, which I think could lead to the error you are seeing.

Might be best to have this discussion in the blog comments, though.

Hi,
Sorry for posting this here.
Thank you for sharing this information. I am still getting  exact same error even after applying commands suggested by you.
Please let me know where can I post my queries that becomes visible to you so that we further discuss there.
Thanks,

Please help to reply this.
http://stackoverflow.com/questions/42081153/tls-error-occured-while-trying-to-connect-mqtt-client-over-secure-tls

i can't find WiFiClientSecure lib zip file or at arduino mange board how can i include it ?

It's in the esp8266 board support package.

Hi,
I'm trying to use PubSub and WifiClientSecure with TLS (only with v1 or v1.1, because WiFiSecure does'nt support v1.2).
I'v extracted the certificate content and converted it to a binary string (.crt and .key in the certificates.h). It's the same as @tomkcook did.
I'v also tested my mosquitto server and its config (with mosquitto_pub and mosquitto_sub --> with those it always works) with different settings:

TLS versions: v1, v1.1
with username and password (also with allow_anonymous false when using username and password)
also require_certificate true/false.

But nothing of the different testing vectors/mosquitto settings led to a successful connection/interaction with my MQTT-Broker on my RaspberryPi 3.
Whatever mosquitto settings used the esp8266 board reboots after trying to connect with the mqtt broker (I see it in the logfile --> New connection from <IP_ADDRESS> on port 8883)
I used the Basic ESP8266 MQTT example (first without any TLS --> mosquitto running on port 1883) and all worked fine. But since I activate TLS (port 8883) with the settings and its combinations (as mentioned above), the board crashes and reboots and tries to make a new connection.
I also tried only to subscribe to one topic as @tomkcook suggested and running the board with 160MHz --> still the same issue
Here is the Code:

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include "certificates.h"

// Update these with values suitable for your network.
// Change the credentials below, so your ESP8266 connects to your router
// WiFi parameters
const char* ssid = "WiFi-Network";
const char* password = "password123"; //created with KeePassX
const char* mqtt_server = "<IP_ADDRESS>";

WiFiClientSecure espClient;
PubSubClient client(espClient);
long lastMsg = 0;
char msg[50];
int value = 0;

void setup_wifi() {

  delay(10);
  // We start by connecting to a WiFi network
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  randomSeed(micros());

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

//void callback(char* topic, byte* payload, unsigned int length) {
//  Serial.print("Message arrived [");
//  Serial.print(topic);
//  Serial.print("] ");
//  for (int i = 0; i < length; i++) {
//    Serial.print((char)payload[i]);
//  }
//  Serial.println();
//
//  // Switch on the LED if an 1 was received as first character
//  if ((char)payload[0] == '1') {
//    digitalWrite(BUILTIN_LED, LOW);   // Turn the LED on (Note that LOW is the voltage level
//    // but actually the LED is on; this is because
//    // it is acive low on the ESP-01)
//  } else {
//    digitalWrite(BUILTIN_LED, HIGH);  // Turn the LED off by making the voltage HIGH
//  }
//
//}

void reconnect() {
  // Loop until we're reconnected
  while (!client.connected()) {
    Serial.print("Attempting MQTT connection...");
    // Create a random client ID
    String clientId = "ESP8266Client-";
    clientId += String(random(0xffff), HEX);
    // Attempt to connect
    if (client.connect(clientId.c_str(), "admin", "admin")) {
      Serial.println("connected");
      // Once connected, publish an announcement...
//      client.publish("outTopic", "hello world");
      // ... and resubscribe
      client.subscribe("inTopic");
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      // Wait 5 seconds before retrying
      delay(5000);
    }
  }
}

void setup() {
  pinMode(BUILTIN_LED, OUTPUT);     // Initialize the BUILTIN_LED pin as an output
  Serial.begin(115200);
  setup_wifi();
  espClient.setCertificate(esp8266_bin_crt, esp8266_bin_crt_len);
  espClient.setPrivateKey(esp8266_bin_key, esp8266_bin_key_len);
  client.setServer(mqtt_server, 8883);
//  client.setCallback(callback);
}

void loop() {

  if (!client.connected()) {
    reconnect();
  }
  client.loop();

//  long now = millis();
//  if (now - lastMsg > 2000) {
//    lastMsg = now;
//    ++value;
//    snprintf (msg, 75, "hello world #%ld", value);
//    Serial.print("Publish message: ");
//    Serial.println(msg);
//    client.publish("outTopic", msg);
//  }
}

Here is the error output:

Connecting to WiFi-Network
....
WiFi connected
IP address:
<IP_ADDRESS>
Attempting MQTT connection...

Tagging onto this with the ESP32. It should support it nicely, but doesn't; fails with rc=-2, using a sketch very similar to the above.

Hey Guys,
after couple of days i've got my ESP8266 working with Client certificates and secure authentication.
Arduino IDE v. 1.8.5
ESP8266-Arduino 2.4.0-rc2
PupSubClient 2.6.0
Mosquitto version 1.4.14
First i created a CA and a server certificate with the help from the Mosquitto Manual
/etc/mosquitto/mosquitto.conf
listener 8883
cafile /etc/mosquitto/ca_certificates/ca.crt
certfile /etc/mosquitto/certs/mqttserver.crt
keyfile /etc/mosquitto/certs/mqttserver.key
require_certificate true
use_identity_as_username true

Then i created a client certificate and privatekey - exported both to *.DER
Client Certificate
openssl x509 -in /etc/mosquitto/certs/client.crt -out /etc/mosquitto/certs/clientcrt.der -outform DER
Client Certificate
openssl rsa -in /etc/mosquitto/certs/client.key -out /etc/mosquitto/certs/clientkey.der -outform DER
Don't forget to export the CA too
openssl x509 -in /etc/mosquitto/ca_certificates/ca.crt -out /etc/mosquitto/ca_certificates/ca.der -outform DER
Next you have to upload these three Files to the SPIFFS of your ESP.
Download the newest version from: https://github.com/esp8266/arduino-esp8266fs-plugin
Place the cert, privatekey and the ca in your data folder of your sketch and upload the files
At least you can upload the sketch:
https://gist.github.com/eLement87/133cddc5bd0472daf5cb35a20bfd811e
At the moment i'm not able to verify the fingerprint of my server. The function is implemented in the sketch but not "activated". I don't know why but i think the reason for that is my certificate is self signed.
With a Let's Encrypt Certificate i'm able to verfiy the fingerprint.
Anyway the client authentificates with a cert and the connection is secure with TLS1.2 with port 8883.

Current ESP8266 Arduino core supports TLSv1.2. Here you can find an example using CA certificate for server verification. https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFiClientSecure/examples/WiFiClientSecure/WiFiClientSecure.ino

Hello guys, i'm trying to connect to AWS wich request:
wifiClient.loadCACert(ca);
wifiClient.loadCertificate(client_cert);
wifiClient.loadPrivateKey(client_key);
Via wifi i can do it with no problems. But the ethernet library present on arduino do not have these 3 classes above.
Someone know how to connect to AWS via ethernet shield using ESP32?


Add api end point for generating access token

This endpoint will be used by the CI-Service to create access tokens for users using the CI.
Without it, users of the CI will not be able to view registrations.
This code is a copy of the implementation in https://github.com/praekelt/hellomama-registration/tree/develop/registrations

@miltontony please review

👍


Formatting Intellisense For Better JS/TS Doc Integration

Does anyone know if it is possible to modify VSCode Intellisense for JSDoc and TSDoc tags? I have always been bothered by the way VSCode handles certain JS/TS doc tags and I just cannot handle it anymore.
As trivial as it might sound, when documenting custom interface and type definitions, I just want the @property tag to be formatted in the same manner as the @param tag. The following screen shots illustrate my issue:

Notice the emdash — between the @property tags and the keys being described above?

See how it's placed after the @param tags and the respective keys?
If this feature cannot be implemented, does anyone know of any extensions that already do this or which files need to be modified to make this change?
Any advice would be much appreciated. Cheers 🍻

Moving to TS since we'd need the jsdoc tag structure to be returned in a consistent way. Here's it for:
/**
 * @param x abc
 * @property y xyz
 */
const a = '';

 "tags": [
        {
            "name": "param",
            "text": [
                {
                    "text": "x",
                    "kind": "parameterName"
                },
                {
                    "text": " ",
                    "kind": "space"
                },
                {
                    "text": "abc",
                    "kind": "text"
                }
            ]
        },
        {
            "name": "property",
            "text": [
                {
                    "text": "y xyz",
                    "kind": "text"
                }
            ]
        }
    ]


docs: Update debugging section for data races and deadlocks

This commit adds a debugging section for detecting data races and
deadlocks in the Golang codebase.
Follow up from https://github.com/cilium/cilium/pull/11657

Coverage decreased (-0.02%) to 36.869% when pulling b3493f05182e34ed4cea922e254d34bdf0f876a3 on christarazi:pr/christarazi/update-docs-debugging-locks into a12c2ee80b9836730b67484d1bc70f2d38cab54d on cilium:master.

Hit #11560 in Travis.

I don't think we need to wait for anything less than the documentation tests.

I was only waiting to give folks in EU timezone a chance to see this change before it goes in :-)


Running as a container yields errors not in previous version

Description
Bug
When running this as a container, I get errors that did not happen in version 0.1
How to reproduce
Run the following command
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc:ro spotify/docker-gc
What do you expect
I expected it to evaluate true with no errors.
What happened instead
Multiple errors that do not occur when running this command
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc:ro spotify/docker-gc:0.1

Software:
Mac OSX Sierra Shell zsh
Full backtrace
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc:ro spotify/docker-gc
[2017-05-09T03:40:23] [INFO] : Container running a929d0d004b7836c89a9d51acfd5845d8cd0e0dd5783de7259e5cb0c9f99ea30 /youthful_beaver
sortcuttail: unrecognized option: key
: unrecognized option: lines
: unrecognized option: fields
BusyBox v1.23.2 (2017-01-20 12:25:32 GMT)BusyBox v1.23.2 (2017-01-20 12:25:32 GMT)BusyBox v1.23.2 (2017-01-20 12:25:32 GMT) multi-call binary.

Usage: sort [-nrugMcszbdfimSTokt] [-o FILE] [-k start[.offset][opts][,end[.offset][opts]] [-t CHAR] [FILE]...

Sort lines of text

	-b	Ignore leading blanks
	-c	Check whether input is sorted
	-d	Dictionary order (blank or alphanumeric only)
	-f	Ignore case
	-g	General numerical sort
	-i	Ignore unprintable characters
	-k	Sort key
	-M	Sort month
	-n	Sort numbers
	-o	Output to file
	-k	Sort by key
	-t CHAR	Key separator
	-r	Reverse sort order
	-s	Stable (don't sort ties alphabetically)
	-u	Suppress duplicate lines
	-z	Lines are terminated by NUL, not newline
	-mST	Ignored for GNU compatibility

 multi-call binary.

Usage: cut [OPTIONS] [FILE]...

Print selected fields from each input FILE to stdout

	-b LIST	Output only bytes from LIST
	-c LIST	Output only characters from LIST
	-d CHAR	Use CHAR instead of tab as the field delimiter
	-s	Output only the lines containing delimiter
	-f N	Print only these fields
	-n	Ignored

 multi-call binary.

Usage: tail [OPTIONS] [FILE]...

Print last 10 lines of each FILE (or stdin) to stdout.
With more than one FILE, precede each with a filename header.

	-f		Print data as file grows
	-c [+]N[kbm]	Print last N bytes
	-n N[kbm]	Print last N lines
	-n +N[kbm]	Start on Nth line and print the rest
	-q		Never print headers
	-s SECONDS	Wait SECONDS between reads with -f
	-v		Always print headers
	-F		Same as -f, but keep retrying

N may be suffixed by k (x1024), b (x512), or m (x1024^2).

I've had the same problem over the past 24 hours. I have opened a PR which fixes this issue for me at https://github.com/spotify/docker-gc/issues/165


Remove leftover paragraph

Not an alternative rejected any more, given applyset.k8s.io/inventory

True, thanks!


Steps scheduling features for LR Schedulers?

As far as I can see after an extensive research (discussions, not code), the options for steps scheduling during training are currently very limited.
Cosine with restarts can be tuned with lr_scheduler_num_cycles for the restarts to happen more (or less) often than every epoch (default), which is great.
But what about Constant steps scheduling? How do I set a LR of 5e-5 for the first 1000 steps, LR of 5e-6 for the next 1000 and LR of 5e-7 till the end?  I actually can't believe there are no settings for Constant or Linear steps schedules. Am I missing something?
P.S. Cosine LR scheduler curve settings would've been incredible, but I'm asking too much already I think!

There is lr_scheduler_power for Polynomial LR Scheduler though, which is amazing

https://github.com/kohya-ss/sd-scripts/pull/271
You can even create custom schedulers by editing the code, which would be needed to do what you want, though MultiStepLR is close to that, you just can't change the gamma
https://pytorch.org/docs/stable/generated/torch.optim.lr_scheduler.MultiStepLR.html#torch.optim.lr_scheduler.MultiStepLR


Question: why chromium binary and shared libraries are compressed and what actually happens in a cold start?

I don't quite understand what happens in lambda cold starts, so I wonder why chromium and libraries are compressed in this package. Does lambda download the packages in cold start? Or they are compressed only for uploading purposes?
I've noticed that using 230MB for a PDF creation function (yes, I know I should allocate more, but I was just testing it) cold start takes about 20 seconds to execute, while the subsequent executions takes actually something like 5. I have wondered what would happen if I tried to use that stuff uncompressed. Would the function's cold start take more time to execute?
I'm asking here since I didn't find the AWS official documentation very helpful in this subject, it doesn't describe what actually happen in a cold start (not that I've found at least).

@germanocorrea on a cold start the files get decompressed into /tmp (the decompression will take some time depending on what resources you allocate). On a hot start /tmp gets reused, so no need to decompress.
https://aws.amazon.com/blogs/compute/container-reuse-in-lambda/
The decompression is avoided here: if /tmp/chromium exists this is not a cold start so no need to decompress again.

@extraordinaire I'm aware of that. I think I didn't made myself very clear, what I'm asking for is if the layer (or function) size interferes in the cold start time. Because if it doesn't, I could upload a layer where the binaries and libraries aren't compressed, right?

Update: I've managed to use the binaries and libraries decompressed, had to also create some font configurations and zip some font files too (don't know why, I didn't investigated though) and apparently execution time don't change too much. So I guess compression is for uploading and to avoid the use of GitLarge File Storage?

@germanocorrea There are many limiting factors at play, but I'll to answer as best as I can.
Git LFS
Yes, avoiding this is important - not for Lambda itself but for GCF & Firebase, where it isn't available.
Lambda 50MB Limit
Unless you use Lambda Layers or upload through S3, we are limited to a 50MB package size.
You could unpack Chromium and provision it as a Layer, but you'd still have to copy it to /tmp.
Compressed vs Uncompressed
This is really hard to answer as Lambda is sort of a black box, but there are multiple factors at play.
The thing to keep in mind is that all resources in Lambda scale up as you allocate more memory.
Compressed

Read 35MB (Read IO Bound)
Inflate (CPU & Memory Bound)
Write 130MB (Write IO Bound)

Uncompressed

Read 130MB (Read IO Bound)
Write 130MB (Write IO Bound)

From my trials, there's a negligible benefit (100 to 200 ms) from unpacking Chromium.
Basically whatever you save on CPU time you pay on disk read operations. This is also the reason why I recommend using a 1600MB Lambda, as that seems to be the ideal sweet spot not only for warm-up times and Chromium performance but will also increase the function idle time (before it gets recycled).
Another optimization you could use (I do) is to send one (or multiple) hearbeat event every 10 minutes or so. You'll be charged for 100ms but you'll be able to keep X functions always in a warmed up state.


Feat/toml parsing

What this PR does / why we need it:
Adds fromToml function that allows parsing TOML configuration. Like fromJson or fromYaml.
Closes #12024.
Special notes for your reviewer:
I did not yet add docs to https://github.com/helm/helm-www.
If applicable:

[ ] this PR contains documentation
[x] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

nice! exactly what I am waiting for! Please merge 🙏

Please correct the DCO issue.

The DCO issue is because the bot that does the check didn't respond. It appears the correct sign-off is on the commit.
@dominikmueller could you rebase this from main? That should fix the DCO issue and cause the test suite to run properly in CI. Otherwise, this looks ready to merge.

I merged in main to fix the DCO issue and start CI running.


OBS and SRS supported enhanced RTMP for user to push HEVC via RTMP.

This is NOT an issue but a NOTICE
SRS media server support this extended RTMP specification, so you can push HEVC via RTMP to SRS very easy:
git clone https://github.com/ossrs/srs.git
cd srs/trunk && ./configure --h265=on && make
./objs/srs -c conf/http.ts.live.conf

Then, you can use OBS 29.1+ to push HEVC via RTMP.
Start OBS with the following settings in the Settings > Stream tab:

Server: rtmp://localhost/live
Stream Key: livestream
Encoder: Please select the HEVC hardware encoder.

Finally, open the player http://localhost:8080/players/srs_player.html?stream=livestream.ts
Or use VLS or ffplay to play http://localhost:8080/live/livestream.ts

This is great news and thanks for letting the community know!


Atomic swap screen -  BETA 2 indicator

Please change "BETA" to "BETA 2"
https://zpl.io/VKy7WAP

Font in this element should be the same as on previous version
Please, make width of this element bigger.


Snapshot of the Vulkan swapchain is not functional in all rendering modes

Since the render graph / render path now avoids unnecessary steps (for example rendering to an offscreen buffer only to copy it to the swapchain / back buffer) snapshot no longer works in some Vulkan modes. Reading directly from the Vulkan swapchain is more involved, and in some cases may be impossible.
SSAA and non-stereo MSAA currently permit screenshot on Vulkan as there is an explicit decimation render stage. Other Vulkan modes currently do not support snapshot.

Commit 4cb0e916c6782b5c8fcee394356d178cf1a009d5 places the responsibility for snapshot on the application (rendering to an offscreen buffer and reading that rather than the swapchain.)  Closing.


Thumbnails are not working after backup restoration

PHP Version
$ php --version PHP 7.4.25 (cli) (built: Oct 19 2021 15:18:10) ( NTS )
Shopware Version
<IP_ADDRESS>
Expected behaviour
When I copy all data with the whole public/ dir then the thumbnails are working on the new server.
Actual behaviour
The copied data and the database are the same. But the pictures and media are not working on the new server.
I tried to re-generate the media files w/ $ bin/console media:generate-thumbnails
output
 // Generating Thumbnails for 14 files. This may take some time...

 14/14 [============================] 100%

 ----------- --------------------------
  Action      Number of Media Entities
 ----------- --------------------------
  Generated   0
  Skipped     14
  Errors      0
 ----------- --------------------------

But as you can see, nothing happened. I cleared every cache, restarted every affected servers. I tried to delete the affected table in the database and re-generate media w/ no success.
How to reproduce
Install the whole Shopware 6.x to somewhere. After that, make a copy from the files and the database to another server with the same version of PHP and MariaDB/MySQL. The actual output will be like this:

I found some documentation about the media generation (and about the import/export) but sadly it is poorly documented. But there is no (or I did not find) any related information about the correct backup method.

Hey @7system7
Could you please test setting SHOPWARE_CDN_STRATEGY_DEFAULT in your .env-file?
physical_filename or id

Hello @tinect
I forget to mention but tried that. It did not work.

It has to be SHOPWARE_CDN_STRATEGY_DEFAULT


New Multi-dimensional indexing error

Hello,
I started using the updated version of SigProfiler, and now there is an error of multi-dimensional indexing that wasn't previously present.
Let me know if you need more information from me to troubleshoot this. This is the error that I've been receiving:
Traceback (most recent call last):
  File "/Users/kellygeyer/Documents/gitlab/mm-nmf/code/source/sigProfiler-separate-test.py", line 41, in <module>
    main()
  File "/Users/kellygeyer/Documents/gitlab/mm-nmf/code/source/sigProfiler-separate-test.py", line 33, in main
    sig.sigProfilerExtractor("matrix", out_put, input_data,
  File "/Users/kellygeyer/miniconda3/envs/sigprof_env/lib/python3.9/site-packages/SigProfilerExtractor/sigpro.py", line 750, in sigProfilerExtractor
    processes = sub.decipher_signatures(execution_parameters,
  File "/Users/kellygeyer/miniconda3/envs/sigprof_env/lib/python3.9/site-packages/SigProfilerExtractor/subroutines.py", line 543, in decipher_signatures
    results = parallel_runs(execution_parameters, genomes=genomes, totalProcesses=totalProcesses, \
  File "/Users/kellygeyer/miniconda3/envs/sigprof_env/lib/python3.9/site-packages/SigProfilerExtractor/subroutines.py", line 489, in parallel_runs
    result_list = pool.map(pool_nmf, batch_generator_pair)
  File "/Users/kellygeyer/miniconda3/envs/sigprof_env/lib/python3.9/multiprocessing/pool.py", line 364, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
  File "/Users/kellygeyer/miniconda3/envs/sigprof_env/lib/python3.9/multiprocessing/pool.py", line 771, in get
    raise self._value
ValueError: Multi-dimensional indexing (e.g. `obj[:, None]`) is no longer supported. Convert to a numpy array before indexing instead.

Thank you, I downgraded pandas and everything worked again.


Allow MILLISECOND as a synonym for NONE in queryGranularity

Description
Taken from: https://github.com/apache/incubator-druid/pull/8763#discussion_r339420344
Right now the UI looks like this:

NONE really means MILLISECOND and it would be a lot clearer and cleaner if that is what the user inputed.

I would like to take a look into this.

I would like to work on this


Cannot use with ngFor and custom directive

Bug Report or Feature Request (mark with an x)
- [X] bug report -> please search issues before submitting
- [ ] feature request

OS and Version?

macOS 10.14.2
Versions

Angular CLI: 7.1.2
Node: 10.0.0
OS: darwin x64
Angular: 7.1.2
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.11.2
@angular-devkit/build-angular     0.11.2
@angular-devkit/build-optimizer   0.11.2
@angular-devkit/build-webpack     0.11.2
@angular-devkit/core              7.1.2
@angular-devkit/schematics        7.1.2
@ngtools/webpack                  7.1.2
@schematics/angular               7.1.2
@schematics/update                0.11.2
rxjs                              6.3.3
typescript                        3.1.6
webpack                           4.23.1

Repro steps

                   <my-custom-component class="item"></my-custom-component>

it also doesn't work with just an *ngFor:

{{ x }}

or the same but with a nested div:

{{ x }}

the example does work, so i know the lib is configured correctly:

Item 1

Item 2

Item 3

Item 4

Item 5 (will not be animated)

Desired functionality

<my-custom-component class="item"></my-custom-component>  should animate in.

try this =>

You need to add ngsReveal before ngsRevealSet and  [ngsSelector]="'.item'"

I have the same issue. Was there a fix for this?

bump

@tinesoft Do you know of any solution to this problem? Thanks!

Hi guys,
Sorry for the delay in addressing this issue...
I'll have a look soon and let you know if i come up with a solution.
Stay tuned

Related to #5

I am using angular 13.3.3, and i confirm that it is working with :

{{ x }}


Johansmacias/improvements for at commands interface

When the debug output is enabled could be a good idea to hide the messages related to the USB to avoid the following behavior while entering AT commands.

Currently, when entering the AT commands we cannot correct any character. If we make a mistake backspace doesn't clear the atcmd buffer and the serial keeps showing all the entered characters. These are the improvements to achieve it:

The buffer modifications when pressing backspace involve decreasing the atcmd_index and clearing the character.
To clean up the serial output print the space character, and a new backspace.

The final result.

Implemented with https://github.com/beegee-tokyo/WisBlock-API/commit/186725899e14c1db04b36aae9726568291365854


upgrade VSCodium to new version

Hi Thomas,
I create this ticket for changes and verification of upgraded VSCodium version in our package.
Thank you,
Ngoan

integrated in 0.12.1


HTTPHandler should be renamed HTTPHandlerFunc

HTTPHandler is not work with a http.Handler interface, but rather a http.HandlerFunc interface. Should be renamed for clarity.

Also, as the argument and return value both conform to the http.HandlerFunc definition, probably best to just use that type for both. Such as:
 func (c *Client) HTTPHandler(f http.HandlerFunc) http.HandlerFunc {

https://github.com/deferpanic/deferclient/pull/43


Do not include utimes module on android

Android variant is a copy of utimensat with a modification to remove
futimens call, so it should follow the pattern used for utimensat module
used for "solaris, illumos, ..." case.
Follow-up for #59

@alexcrichton Sorry for the noise, I have not tested that #59 builds.
This one I just tested, it builds on all platforms delta chat uses. Good news is that once it is set up, android platform will be tested nightly.

Could this add CI that android compiles?

It's not that easy, even if android compiles, it is impossible to test without NDK. It would be nice, but we don't do this on our repo either, instead we have this setup in android repo: https://github.com/deltachat/deltachat-android/blob/master/ndk-make.sh

I added a separate action to build for android without testing. It fails without this fix indeed, see #63

May be libc crate should be fixed instead?
Android based on Linux kernel, and there is suitable syscalls for futimes, just Android's libc
do not provide function for this, but it is possible to use syscall directly.
And modern enough NDK should have it https://android-review.googlesource.com/c/platform/bionic/+/63321 ,
though this would require too high level of API, so it is possible for me to use.

The bug is already fixed here, the only problem is that I accidentally copied the mod utimes line which is completely irrelevant here, without testing.
libc crate is supposed to be an FFI binding for system libc, so it is arguably correct the way it is.

Thanks!


Add terminfo dependency to yaft and add /opt/etc/profile to /etc/prof…

This does the following:

Adds /opt/etc/profile to /etc/profile.d so that it automatically loads the environment variables provided by the entware source
Adds terminfo as a dependency of yaft

We may want to add some extra default environment variables to /etc/systemd/system.conf.d in the future as well.

Tested via the following steps:

Ranln -sf /opt/etc/profile /etc/profile.d/toltec.sh
sed -i \
    -e 's|^export TERM=xterm|if \[ -z "$TERM" \];then export TERM=xterm;fi|' \
    /opt/etc/profile

Restarted yaft and invoked bash -l
Verified that TERMINFO was set and TERM=yaft-256color
Ran vim and verified that it rendered correctly

Fetching Compiled Descriptions
The  ncurses  library  searches	for  terminal  descriptions in several
places.	It uses	only the first description found.  The library	has  a
compiled-in  list  of places to search which can	be overridden by envi-
ronment variables.  Before starting to search, ncurses  eliminates  du-
plicates	in its search list.
  o   If  the  environment	variable TERMINFO is set, it is	interpreted as
 the pathname	of a directory containing the compiled description you
 are working on.  Only that directory	is searched.

  o   If  TERMINFO	is not set, ncurses will instead look in the directory
 $HOME/.terminfo for a compiled description.

  o   Next, if the	environment variable  TERMINFO_DIRS  is	 set,  ncurses
 will	 interpret  the	 contents of that variable as a	list of	colon-
 separated directories (or database files) to	be searched.

 An empty directory name (i.e., if the variable begins or ends  with
 a  colon, or	contains adjacent colons) is interpreted as the	system
 location /usr/share/misc/terminfo.

  o   Finally, ncurses searches these compiled-in locations:

 o   a list of directories (@TERMINFO_DIRS@),	and

 o   the system terminfo  directory,	/usr/share/misc/terminfo  (the
     compiled-in default).

Should I / we just install the terminfo files to $HOME/.terminfo

Should I / we just install the terminfo files to $HOME/.terminfo

Not for toltec/entware packages. They are meant to go under /opt, and we were just missing expected environment variables that the entware side of the install expects.

@bkirwi did you happen to test this? I think the only testing was by myself on my rM1

Nope! I'm personally comfortable with your and @kiwiz' testing, since this is not one of the areas where I know the RM2 to be different, but I'd completely understand if you want to hold out for an additional test. (Though I personally won't have the chance to do it until probably September.)

@kiwiz would you be willing to try installing the ipk to make sure it works as expected?

Installed both ipk files and confirmed:

TERM=yaft-256color
vim runs correctly


doc: update docs about helm charts

Pull Request Description
Describe what this PR does / why we need it
Does this pull request fix one issue?

Describe how you did it
Describe how to verify it
Special notes for reviews

Related to #121


removed caret from all package.json

What does this PR do?
What packages have been affected by this PR?
Types of changes
What types of changes does your code introduce to this project?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)

[ ] New feature (non-breaking change which adds functionality)

[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Package version increase in any of the packages?
Checklist before merging
Put an x in the boxes that apply

[ ] These changes have been thoroughly tested.

[ ] Changes need to be immediately published on npm.

Reviewed the PR. Please just do the dev sanity properly once.


Create cards from markdown file

This PR adds support for batch creating cards by uploading a markdown file.
Currently, only multiline-separators are supported

Fixes #7


Add feedback/rating of users

Can store all the user feedbacks to database (MongoDb)
display feedback on webpage for unregistered users who visits website for the first time to tempt them to register.

Sure go ahead @sumanthhuppar

Please assign me this under swoc 2024


Bunch of things

Hopefully fixes https://github.com/alexarchambault/coursier/issues/187 (https://github.com/alexarchambault/coursier/commit/92b328c37a638eed8e4e4e87475310c881d4deee).
Less verbosity by default, shoud fix https://github.com/alexarchambault/coursier/issues/183.
Fixes https://github.com/alexarchambault/coursier/issues/86 too.


Consolidate NVP gets in VBA flow. Many requests make it slow.

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:
Navigate to /bank-account
Expected Result:
Loads reasonably fast
Actual Result:
Takes a pretty long time to show up
Workaround:
They can wait for it ... but it's really slow.
Platform:

Web
iOS
Android
Desktop App
Mobile Web

Version Number:
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Expensify/Expensify Issue URL:
View all open jobs on GitHub

@marcaaron Whoops! This issue is 2 days overdue. Let's get this updated quick!

Not overdue just in progress.

Will get back to this one later today.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by @stitesExpensify in version: 1.0.96-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Add github action to run markdownlint on pull requests

This will resolve issue #792

Oops, this was branch mismanagement. I'll send a new PR.


Update config.py

Addresses: Work on docstrings for drug response application #164.

FYI - we don't use "required" for any of the parameters. Had to add a default value string for these parameters. If you want to force user to add what's needed - either set default to None or add required option.


Changes In footer

Problem Statement
In the footer section  links part showing  underlines and blue color and in follow us part need to change the design of background effect and Font text.
Solution :
As I select red part. I would like to make Both Links part and Follow part Similar With same background effect and Some unique font.
**In Addition **
Changes In Contact us  and Coders Evokes section In font and design.

ya sure @Shubh14Jain go ahead ...update it ASAP

ya sure @Shubh14Jain go ahead ...update it ASAP
make sure u don't effect the responsiveness


Adding Approval/Reject Sample One Step Workflow to the CSSA form

Adding Approval/Reject Sample One Step Workflow to the forms

merged to dev


Need to Get all cards individually after getting them

The list API call does not return enough info

Closing as a won't do, GET is the same response as LIST


Unable to connect to redis cluster (ssl enabled)

from rediscluster import RedisCluster
startup_nodes = [{"host": "my_host_name", "port": "6379"}]
rds= RedisCluster(startup_nodes=startup_nodes, ssl=True, password='password', decode_responses=True, skip_full_coverage_check=True)
rds.ping()
Error:
Exception ignored in: <object repr() failed>
Traceback (most recent call last):
File "/home/user/.local/share/virtualenvs/fold-Su7CamTZ/lib/python3.6/dist-packages/redis/connection.py", line 537, in del
self.disconnect()
File "/home/user/.local/share/virtualenvs/fold-Su7CamTZ/lib/python3.6/dist-packages/redis/connection.py", line 660, in disconnect
self._parser.on_disconnect()
AttributeError: 'SSLClusterConnection' object has no attribute '_parser'
Traceback (most recent call last):
File "/home/user/.local/share/virtualenvs/fold-Su7CamTZ/lib/python3.6/dist-packages/rediscluster/connection.py", line 318, in get_connection_by_node
connection = self._available_connections.get(node["name"], []).pop()
IndexError: pop from empty list
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "", line 1, in
File "/home/user/.local/share/virtualenvs/fold-Su7CamTZ/lib/python3.6/dist-packages/redis/client.py", line 1378, in ping
return self.execute_command('PING')
File "/home/user/.local/share/virtualenvs/fold-Su7CamTZ/lib/python3.6/dist-packages/rediscluster/client.py", line 531, in execute_command
return self._execute_command(*args, **kwargs)
File "/home/user/.local/share/virtualenvs/fold-Su7CamTZ/lib/python3.6/dist-packages/rediscluster/client.py", line 556, in _execute_command
return self._execute_command_on_nodes(node, *args, **kwargs)
File "/home/user/.local/share/virtualenvs/fold-Su7CamTZ/lib/python3.6/dist-packages/rediscluster/client.py", line 652, in _execute_command_on_nodes
connection = self.connection_pool.get_connection_by_node(node)
File "/home/user/.local/share/virtualenvs/fold-Su7CamTZ/lib/python3.6/dist-packages/rediscluster/connection.py", line 320, in get_connection_by_node
connection = self.make_connection(node)
File "/home/user/.local/share/virtualenvs/fold-Su7CamTZ/lib/python3.6/dist-packages/rediscluster/connection.py", line 227, in make_connection
connection = self.connection_class(host=node["host"], port=node["port"], **self.connection_kwargs)
File "/home/user/.local/share/virtualenvs/fold-Su7CamTZ/lib/python3.6/dist-packages/rediscluster/connection.py", line 74, in init
super(SSLClusterConnection, self).init(**kwargs)
File "/home/user/.local/share/virtualenvs/fold-Su7CamTZ/lib/python3.6/dist-packages/redis/connection.py", line 819, in init
super(SSLConnection, self).init(**kwargs)
TypeError: init() got an unexpected keyword argument 'ssl'
Any idea about this issue? How can i connect to redis ssl cluster?

@rbharad27 Try the solution mentioned in this comment on a similar issue https://github.com/Grokzen/redis-py-cluster/issues/369#issuecomment-629215190

@Grokzen  Adding ssl_cert_reqs='none'/ssl_cert_reqs=False does not help in my case
rds= RedisCluster(startup_nodes=startup_nodes, ssl=True, ssl_cert_reqs=False, password='password', decode_responses=True, skip_full_coverage_check=True)
However, i do not see the earlier error. But does not connect. It just waits for the connection without any error
And also, my redis cluster is AWS manged with Encryption at-rest and Encryption in-transit enabled

@rbharad27 Okey, are you connecting to the right node? Having the correct node inside your startup nodes list? Secondly one thing you can do, is that you can attempt to connect to any of your nodes through the redis-py library only, becuase if you can do that with some argument into the Redis class, then you should just be able to flip the Redis class into RedisCluster and it should work OOB. Try this and get back to me.

@Grokzen I tried to connect the redis cluster with redis-py and it worked
import redis
rds = redis.StrictRedis(host='my_host', port=6379, db=0, password='password', ssl=True)
rds.ping()	-- return True
but in redis-py-cluster, it does not respond (just wait, no error or response)
i also tried below with redis cluster using redis-py-cluste and it return the list of nodes in the cluster
rds.connection_pool.nodes.nodes
but ping or other commands does not work

@rbharad27 What versions of redis-server, redis-py, redis-py-cluster are you using?

@Grokzen Redis engine: 5.0.6 (AWS managed with authentication and encryption enabled)
I have tried connecting with below 2 versions

redis-py-cluster 2.0.0 and redis-py 3.0.1
redis-py-cluster 2.0.99 and redis-py 3.5.2

Also, connection is successful when i have a cluster without  authentication and encryption (no ssl), but not working on a secure cluster for some reason.

redis-py 3.5.2 or anything above 3.1.0 can only be used with the 2.0.99 (2.1.0-RC1) release that you have. I dont know how to help you further tho then for you to dig through the code some more and try different options from your end. There is a few open issues in the past that i linked in and a few others that talk about the same thing and how they managed to solve it. Try to dig through them a bit more and try to specially take a look and try to debug what options is sent down into the SSLClusterConnection class and further down into redis-py SSLConnection class to see if there is any difference there when you run with redis-py and redis-py-cluster 2.0.99 with the same options in different cases. Maybe there is a option that is not sent down properly from this lib. I dont have AWS going for this use-case so i can't really test it out so much myself right now sorry.

One thing to note.. the startup nodes you're passing in for AWS should be the config endpoint.
clustercfg.somename.7yessp.use1.cache.amazonaws.com
The non encrypted in transit endpoints have a url schema like so:
somename.7yessp.clustercfg.use1.cache.amazonaws.com
Also.. does your test work with the old version of the lib?

I just tested and can reproduce the same issue. Will see if I can dig in a bit more for details.

Yup, configuration endpoint is used as host.
For some reason, i am able to connect with older version of redis-py-cluster (2.0.0) and redis-py 3.0.1 but not with 2.0.99 and 3.5.2
Code Snippet:
from rediscluster import RedisCluster
startup_nodes = [{"host": "congiguration_endpoint", "port": "6379"}]
rc = RedisCluster(startup_nodes=startup_nodes, password='password', decode_responses=True, skip_full_coverage_check=True, ssl=True, ssl_cert_reqs=False)
rc.ping()


Agent Docs [WIP]

Description
Agents docs
f2f190d5d695c91065ea8253a1a40814ffe88eda: docs preview link

"off chain" vs "off-chain"


fix: manual exposure docs

🚀 Deployed on https://66da34d8c84f8da52c9b0f33--cozy-fox-0defec.netlify.app


Recurring dates keep switching back to wrong dates

Describe the bug
While creating an event, if set the dates to recur at certain days of every month, each time when the event is edited, the dates change to recurring in same day for every month.
To Reproduce
Steps to reproduce the behavior:

Create an Event page
Click Recurrence
Set Repeat to Monthly
Set Repeat On to Second Monday
Save it
Click Edit the page
Check the Recurrence again

Expected behavior
I am trying to create an event with recurring dates; it needs to recur at second Monday every month.
I can save it and it will appear fine on the event. But each time when I edit the event, the dates change to recurring in same day (11th in this case) for every month.
**Screenshots
What I set: The second Monday

What happens after  editing: Day 11 of the Month

https://github.com/plone/volto/assets/67173940/06910997-ae3c-414f-8bda-8e0ce220232a
**
Software:

Browser: tested in both chrome and safari]
Volto 16.21.0
Plone 6.0.2
plone.restapi 8.35.0

What happens if you select a Event Starts and Event Ends date for the event, then attempt to make it recurring?
Can you replicate the issue on https://demo.plone.org/ which has the latest versions?
I found that on the demo site, I was not able to replicate your experience.

There are definitely some UI issues and at least one bug. The modal dialog does not synch up with the sidebar.
Even when I first set Event Starts and Event Ends dates, a list of daily dates appears until I save the recurrence and the event.
https://github.com/plone/volto/assets/102112/bd423746-700e-4e01-82f9-0f1833c2e835

@stevepiercy thanks for you answer. I have tried setting the start and end dates before clicking the recurrence, but the result is the same. After your answer, i understand that I have jumped the conclusion early; It keeps the correct dates until I click edit and save the recurrence again.
But the Recurrence screen still doesn't sync with the correct dates.
In the screen recording that you shared, you also recreate this problem;
At first the dates are                      :   Dec 10, Jan 7, Feb 11, March 10, April 7, May 12
After you edit for the second time:  Dec 10, Jan 10,  Feb 10, March 10, April 10, May 10

Yeah, after my first message, I tried a couple of things and was able to replicate it in the movie.
Additionally at 0:36, you can see a looooong list of all the dates between the start and end dates with an elided 73 more dates, which after saving in the modal dialog then changes to only the 10th of the month.

See also https://github.com/plone/volto/issues/4906

I had gone through the codebase and I found that the edit form can be extracted out into its own component RecurrenceEditForm. This component handles the state of the edit form itself.
The Edit Form Modal has a preview section which is generated based on the values of fields in the form. So the logic which coverts the form's state to rule options required for RRule (rrule package) which in-turn generates the rruleSet  goes inside of the RecurrenceEditFormcomponent . And once the save is clicked this rruleSet is used to update the rruleSet of the RecurrrenceWidget component.
The other things that go inside of RecurrenceEditForm are exdates, rdates which also define the recurrence dates.
Below is a pictorial representation of the above explained refactor of the RecurrenceWidget component.

I had tried to implement this architecture and fine tuned the parsing from formValues to rrulesSet and rrulesSet to formValues and all the issues corresponding to the Recurrence Widget UI sync were eradicated.
Please provide your valuable suggestions on the probable improvements.

https://github.com/plone/volto/pull/5575
Hi I have raised a pull requests implementing the above architecture. It is not complete yet. I have provided the description on how one can use the new components for viewing the changes. I need help in writing down tests for these new components. Any help would be much appreciated. Thanks!!


Handling multiple endpoints (fat Lambda) with adapter-api

Apologies if this has already been asked/requested.
Is your feature request related to a problem? Please describe.
Not directly related to a problem, but there are a lot of fat Lambda (for the term: https://theburningmonk.com/2020/07/are-lambda-to-lambda-calls-really-so-bad/) projects out there. And it would be nice to handle them without resorting to something like Express or similar.
Describe the solution you'd like
Basically, I would like to pass in functions that handle specific endpoints. So something like this
// other setup

function handleGetPuppy(event) { // lambda event is passed into the function
   // ...
}

apigateway({
  functionMappings: {
    '/puppy': {
        GET: handleGetPuppy,
    },
   // more mappings
}
});

Additional context
If the request is acceptable but no-one has time to take a swing at it, I can try to take a look myself and open a PR.

Closing this for now as the associated PR was closed. Feel free to re-open if there's still interest in this functionality!


Application to larger datasets and semantic segmentation

Hello,
I would like to know if you have extended your work and experiments to larger datasets or to semantic segmentation.

I’m sorry for too late response. We have extended it to ImageNet dataset and it slightly improves the classification accuracy and other uncertainty measures. We haven’t extended it to other tasks yet. It would be nice to find out the effect of our work in other tasks.


style: require tag and revision for git urls

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[x] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew tests with your changes locally?
[x] Have you successfully run brew man locally and committed any changes?

Require both a tag and a revision for git urls.
For example, this is 👍:
url "https://github.com/foo/bar.git",
    tag:      "v1.0.0",
    revision: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

But this is 👎:
url "https://github.com/foo/bar.git",
    tag: "v1.0.0"

There are currently 9 formulae in homebrew/core that don't follow this rule. I will open a PR shortly to fix them.

My quick thoughts on this:
has revision and tag: OK
has revision only: strict audit in core, fine everywhere else
has tag only: forbidden in core, fine everywhere else

Yeah, I think that makes sense. There are a small number in homebrew/core that fall into the category of "not believing in tagging" so that would allow those to stay.
In terms of tag only, I don't have a preference as to whether to require it everywhere or only in core. It probably makes sense to only do it in core, though, because we don't need to be making decisions about what formulae are allowed for non-official taps.

Okay, I've updated the conditions a little bit:

No requirements for non-core taps
git urls must have a revision
git urls must have a tag when passed with --strict

Nice work. Let's try it out.

Nice work @Rylan12!


Add BOM-Link to component schema

Currently, a component has a bom-ref, while the BOM has a serialNumber. Growing number of ASOC and Vulnerability Management platforms aggregate several components from across BOMs into a single database.
Identifying a component based on a deep BOM-Link becomes a three step process in such environments (Retrieve the BOM, parse, and identify the referred component). Further, the regex for a bomlink is quite broad ^urn:cdx:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/[1-9][0-9]*#.+$
The proposal is to add a new property bom-link to a component level. Generator tools can set this value to be serialNumber/bom-ref. This would simplify lookups and joins since the entirety of the BOM document need not be loaded.

Thinking out aloud, other entities such as services, compositions, vulnerabilities, annotations etc would also benefit from explicit bom-link


Missing example

In the following paragraph it says:
_It's a bad programming style to change the state of the object by using the get accessor. For example, the following accessor produces the side effect of changing the state of the object every time that the number field is accessed.
"the following accessor" refers to an example that is not there

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

ID: 322a60f9-0bd8-b432-653a-069c477a93fe
Version Independent ID: dbc29edd-b142-f2d7-4824-dec9951f32c7
Content: Using Properties - C# Programming Guide
Content Source: docs/csharp/programming-guide/classes-and-structs/using-properties.md
Product: dotnet-csharp
Technology: csharp-fundamentals
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

Thanks for noting that @jwerner77
We removed that sample because we found that people were copying it, even though it's not recommended.