Unable to use the operator-sdk test local ./test/e2e features with 0.10+

Bug Report
** Steps to reproduce **

Git clone the PR https://github.com/operator-framework/operator-sdk-samples/pull/72
Go to the Memcached dir
Update the operator.yaml with the image cmacedo/memcached-operator:upgrade-version
Run go mod tyde
Run make test/e2e and check all errors that will be outputted for the same tests executed with diff arg/options

** Issues faced **
$ make test/e2e
... Running the same e2e tests with some few options of args ...
... Running locally ...
operator-sdk test local ./test/e2e --up-local --namespace=memcached
INFO[0000] Testing operator locally.
time="2019-09-06T17:19:48+01:00" level=info msg="Started local operator"
--- FAIL: TestMemcached (0.16s)
    --- FAIL: TestMemcached/memcached-group (0.00s)
        --- FAIL: TestMemcached/memcached-group/Cluster (0.00s)
            memcached_test.go:100: Initialized cluster resources
            wait_util.go:48: Operator is running locally; skip waitForDeployment
            memcached_test.go:114: Memcached.cache.example.com "example-memcached" is invalid: []: Invalid value: map[string]interface {}{"kind":"Memcached", "apiVersion":"cache.example.com/v1alpha1", "metadata":map[string]interface {}{"generation":1, "uid":"ff67b1d3-d012-11e9-a3bf-96ef92e3f92b", "selfLink":"", "clusterName":"", "name":"example-memcached", "namespace":"memcached", "creationTimestamp":"2019-09-05T19:26:02Z"}, "spec":map[string]interface {}{"size":3}, "status":map[string]interface {}{"nodes":interface {}(nil)}}: validation failure list:
                status.nodes in body must be of type array: "null"
        --- FAIL: TestMemcached/memcached-group/Cluster2 (0.00s)
            memcached_test.go:100: Initialized cluster resources
            wait_util.go:48: Operator is running locally; skip waitForDeployment
            memcached_test.go:114: Memcached.cache.example.com "example-memcached" is invalid: []: Invalid value: map[string]interface {}{"kind":"Memcached", "apiVersion":"cache.example.com/v1alpha1", "metadata":map[string]interface {}{"name":"example-memcached", "namespace":"memcached", "creationTimestamp":"2019-09-05T19:26:02Z", "generation":1, "uid":"ff67f14c-d012-11e9-a3bf-96ef92e3f92b", "selfLink":"", "clusterName":""}, "spec":map[string]interface {}{"size":3}, "status":map[string]interface {}{"nodes":interface {}(nil)}}: validation failure list:
                status.nodes in body must be of type array: "null"
FAIL
time="2019-09-06T17:19:48+01:00" level=info msg="Local operator stdout: "
time="2019-09-06T17:19:48+01:00" level=info msg="Local operator stderr: {\"level\":\"info\",\"ts\":1567786788.695756,\"logger\":\"cmd\",\"msg\":\"Go Version: go1.12.7\"}\n{\"level\":\"info\",\"ts\":1567786788.69605,\"logger\":\"cmd\",\"msg\":\"Go OS/Arch: darwin/amd64\"}\n{\"level\":\"info\",\"ts\":1567786788.696064,\"logger\":\"cmd\",\"msg\":\"Version of operator-sdk: v0.10.0+git\"}\n{\"level\":\"info\",\"ts\":1567786788.700922,\"logger\":\"leader\",\"msg\":\"Trying to become the leader.\"}\n{\"level\":\"info\",\"ts\":1567786788.700942,\"logger\":\"leader\",\"msg\":\"Skipping leader election; not running in a cluster.\"}\n"
FAIL	github.com/operator-framework/operator-sdk-samples/memcached-operator/test/e2e	1.442s
Error: failed to build test binary: (failed to exec []string{"go", "test", "./test/e2e/...", "-namespacedMan", "/var/folders/r_/ym6yn3cd0q3fm5jcgcwvj4z00000gn/T/empty.yaml051175836", "-globalMan", "/var/folders/r_/ym6yn3cd0q3fm5jcgcwvj4z00000gn/T/global-manifest.yaml759974475", "-root", "/Users/camilamacedo/go/src/github.com/operator-framework/operator-sdk-samples/memcached-operator", "-singleNamespace", "-parallel=1", "-localOperator"}: exit status 1)
Usage:
  operator-sdk test local <path to tests directory> [flags]

Flags:
      --debug                         Enable debug-level logging
      --global-manifest string        Path to manifest for Global resources (e.g. CRD manifests)
      --go-test-flags string          Additional flags to pass to go test
  -h, --help                          help for local
      --image string                  Use a different operator image from the one specified in the namespaced manifest
      --kubeconfig string             Kubeconfig path
      --local-operator-flags string   The flags that the operator needs (while using --up-local). Example: "--flag1 value1 --flag2=value2"
      --molecule-test-flags string    Additional flags to pass to molecule test
      --namespace string              If non-empty, single namespace to run tests in
      --namespaced-manifest string    Path to manifest for per-test, namespaced resources (e.g. RBAC and Operator manifest)
      --no-setup                      Disable test resource creation
      --up-local                      Enable running operator locally with go run instead of as an image in the cluster

Global Flags:
      --verbose   Enable verbose logging

make: [test/e2e] Error 1 (ignored)
... Running NOT in parallel ...
operator-sdk test local ./test/e2e --go-test-flags "-v -parallel=1"
INFO[0000] Testing operator locally.
=== RUN   TestMemcached
=== RUN   TestMemcached/memcached-group
=== RUN   TestMemcached/memcached-group/Cluster
=== PAUSE TestMemcached/memcached-group/Cluster
=== RUN   TestMemcached/memcached-group/Cluster2
=== PAUSE TestMemcached/memcached-group/Cluster2
=== CONT  TestMemcached/memcached-group/Cluster
=== CONT  TestMemcached/memcached-group/Cluster2
--- FAIL: TestMemcached (42.81s)
    --- FAIL: TestMemcached/memcached-group (0.00s)
        --- FAIL: TestMemcached/memcached-group/Cluster (25.74s)
            client.go:57: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster-1567786793/memcached-operator) created
            client.go:57: resource type Role with namespace/name (memcached-memcached-group-cluster-1567786793/memcached-operator) created
            client.go:57: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster-1567786793/memcached-operator) created
            client.go:57: resource type Deployment with namespace/name (memcached-memcached-group-cluster-1567786793/memcached-operator) created
            memcached_test.go:100: Initialized cluster resources
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:70: Deployment available (1/1)
            memcached_test.go:114: Memcached.cache.example.com "example-memcached" is invalid: []: Invalid value: map[string]interface {}{"kind":"Memcached", "apiVersion":"cache.example.com/v1alpha1", "metadata":map[string]interface {}{"creationTimestamp":"2019-09-05T19:26:32Z", "generation":1, "uid":"1192d834-d013-11e9-a3bf-96ef92e3f92b", "selfLink":"", "clusterName":"", "name":"example-memcached", "namespace":"memcached-memcached-group-cluster-1567786793"}, "spec":map[string]interface {}{"size":3}, "status":map[string]interface {}{"nodes":interface {}(nil)}}: validation failure list:
                status.nodes in body must be of type array: "null"
            client.go:75: resource type Deployment with namespace/name (memcached-memcached-group-cluster-1567786793/memcached-operator) successfully deleted
            client.go:75: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster-1567786793/memcached-operator) successfully deleted
            client.go:75: resource type Role with namespace/name (memcached-memcached-group-cluster-1567786793/memcached-operator) successfully deleted
            client.go:75: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster-1567786793/memcached-operator) successfully deleted
        --- FAIL: TestMemcached/memcached-group/Cluster2 (16.92s)
            client.go:57: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster2-1567786819/memcached-operator) created
            client.go:57: resource type Role with namespace/name (memcached-memcached-group-cluster2-1567786819/memcached-operator) created
            client.go:57: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster2-1567786819/memcached-operator) created
            client.go:57: resource type Deployment with namespace/name (memcached-memcached-group-cluster2-1567786819/memcached-operator) created
            memcached_test.go:100: Initialized cluster resources
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:70: Deployment available (1/1)
            memcached_test.go:114: Memcached.cache.example.com "example-memcached" is invalid: []: Invalid value: map[string]interface {}{"spec":map[string]interface {}{"size":3}, "status":map[string]interface {}{"nodes":interface {}(nil)}, "kind":"Memcached", "apiVersion":"cache.example.com/v1alpha1", "metadata":map[string]interface {}{"creationTimestamp":"2019-09-05T19:26:49Z", "generation":1, "uid":"1b50ceb7-d013-11e9-a3bf-96ef92e3f92b", "selfLink":"", "clusterName":"", "name":"example-memcached", "namespace":"memcached-memcached-group-cluster2-1567786819"}}: validation failure list:
                status.nodes in body must be of type array: "null"
            client.go:75: resource type Deployment with namespace/name (memcached-memcached-group-cluster2-1567786819/memcached-operator) successfully deleted
            client.go:75: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster2-1567786819/memcached-operator) successfully deleted
            client.go:75: resource type Role with namespace/name (memcached-memcached-group-cluster2-1567786819/memcached-operator) successfully deleted
            client.go:75: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster2-1567786819/memcached-operator) successfully deleted
FAIL
FAIL	github.com/operator-framework/operator-sdk-samples/memcached-operator/test/e2e	44.253s
Error: failed to build test binary: (failed to exec []string{"go", "test", "./test/e2e/...", "-namespacedMan", "/var/folders/r_/ym6yn3cd0q3fm5jcgcwvj4z00000gn/T/namespaced-manifest.yaml168272700", "-globalMan", "/var/folders/r_/ym6yn3cd0q3fm5jcgcwvj4z00000gn/T/global-manifest.yaml880698219", "-root", "/Users/camilamacedo/go/src/github.com/operator-framework/operator-sdk-samples/memcached-operator", "-v", "-parallel=1"}: exit status 1)
Usage:
  operator-sdk test local <path to tests directory> [flags]

Flags:
      --debug                         Enable debug-level logging
      --global-manifest string        Path to manifest for Global resources (e.g. CRD manifests)
      --go-test-flags string          Additional flags to pass to go test
  -h, --help                          help for local
      --image string                  Use a different operator image from the one specified in the namespaced manifest
      --kubeconfig string             Kubeconfig path
      --local-operator-flags string   The flags that the operator needs (while using --up-local). Example: "--flag1 value1 --flag2=value2"
      --molecule-test-flags string    Additional flags to pass to molecule test
      --namespace string              If non-empty, single namespace to run tests in
      --namespaced-manifest string    Path to manifest for per-test, namespaced resources (e.g. RBAC and Operator manifest)
      --no-setup                      Disable test resource creation
      --up-local                      Enable running operator locally with go run instead of as an image in the cluster

Global Flags:
      --verbose   Enable verbose logging

make: [test/e2e] Error 1 (ignored)
... Running in parallel ...
operator-sdk test local ./test/e2e --go-test-flags "-v -parallel=2
/bin/sh: -c: line 0: unexpected EOF while looking for matching `"'
/bin/sh: -c: line 1: syntax error: unexpected end of file
make: [test/e2e] Error 2 (ignored)
... Running without options/args ...
operator-sdk test local ./test/e2e
INFO[0000] Testing operator locally.
--- FAIL: TestMemcached (17.76s)
    --- FAIL: TestMemcached/memcached-group (0.00s)
        --- FAIL: TestMemcached/memcached-group/Cluster2 (17.03s)
            client.go:57: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster2-1567786842/memcached-operator) created
            client.go:57: resource type Role with namespace/name (memcached-memcached-group-cluster2-1567786842/memcached-operator) created
            client.go:57: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster2-1567786842/memcached-operator) created
            client.go:57: resource type Deployment with namespace/name (memcached-memcached-group-cluster2-1567786842/memcached-operator) created
            memcached_test.go:100: Initialized cluster resources
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:70: Deployment available (1/1)
            memcached_test.go:114: Memcached.cache.example.com "example-memcached" is invalid: []: Invalid value: map[string]interface {}{"kind":"Memcached", "apiVersion":"cache.example.com/v1alpha1", "metadata":map[string]interface {}{"selfLink":"", "clusterName":"", "name":"example-memcached", "namespace":"memcached-memcached-group-cluster2-1567786842", "creationTimestamp":"2019-09-05T19:27:11Z", "generation":1, "uid":"28d217dc-d013-11e9-a3bf-96ef92e3f92b"}, "spec":map[string]interface {}{"size":3}, "status":map[string]interface {}{"nodes":interface {}(nil)}}: validation failure list:
                status.nodes in body must be of type array: "null"
            client.go:75: resource type Deployment with namespace/name (memcached-memcached-group-cluster2-1567786842/memcached-operator) successfully deleted
            client.go:75: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster2-1567786842/memcached-operator) successfully deleted
            client.go:75: resource type Role with namespace/name (memcached-memcached-group-cluster2-1567786842/memcached-operator) successfully deleted
            client.go:75: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster2-1567786842/memcached-operator) successfully deleted
        --- FAIL: TestMemcached/memcached-group/Cluster (17.27s)
            client.go:57: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster-1567786842/memcached-operator) created
            client.go:57: resource type Role with namespace/name (memcached-memcached-group-cluster-1567786842/memcached-operator) created
            client.go:57: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster-1567786842/memcached-operator) created
            client.go:57: resource type Deployment with namespace/name (memcached-memcached-group-cluster-1567786842/memcached-operator) created
            memcached_test.go:100: Initialized cluster resources
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:70: Deployment available (1/1)
            memcached_test.go:114: Memcached.cache.example.com "example-memcached" is invalid: []: Invalid value: map[string]interface {}{"status":map[string]interface {}{"nodes":interface {}(nil)}, "kind":"Memcached", "apiVersion":"cache.example.com/v1alpha1", "metadata":map[string]interface {}{"namespace":"memcached-memcached-group-cluster-1567786842", "creationTimestamp":"2019-09-05T19:27:11Z", "generation":1, "uid":"28d29710-d013-11e9-a3bf-96ef92e3f92b", "selfLink":"", "clusterName":"", "name":"example-memcached"}, "spec":map[string]interface {}{"size":3}}: validation failure list:
                status.nodes in body must be of type array: "null"
            client.go:75: resource type Deployment with namespace/name (memcached-memcached-group-cluster-1567786842/memcached-operator) successfully deleted
            client.go:75: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster-1567786842/memcached-operator) successfully deleted
            client.go:75: resource type Role with namespace/name (memcached-memcached-group-cluster-1567786842/memcached-operator) successfully deleted
            client.go:75: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster-1567786842/memcached-operator) successfully deleted
FAIL
FAIL	github.com/operator-framework/operator-sdk-samples/memcached-operator/test/e2e	19.453s
Error: failed to build test binary: (failed to exec []string{"go", "test", "./test/e2e/...", "-namespacedMan", "/var/folders/r_/ym6yn3cd0q3fm5jcgcwvj4z00000gn/T/namespaced-manifest.yaml584241407", "-globalMan", "/var/folders/r_/ym6yn3cd0q3fm5jcgcwvj4z00000gn/T/global-manifest.yaml766861394", "-root", "/Users/camilamacedo/go/src/github.com/operator-framework/operator-sdk-samples/memcached-operator"}: exit status 1)
Usage:
  operator-sdk test local <path to tests directory> [flags]

Flags:
      --debug                         Enable debug-level logging
      --global-manifest string        Path to manifest for Global resources (e.g. CRD manifests)
      --go-test-flags string          Additional flags to pass to go test
  -h, --help                          help for local
      --image string                  Use a different operator image from the one specified in the namespaced manifest
      --kubeconfig string             Kubeconfig path
      --local-operator-flags string   The flags that the operator needs (while using --up-local). Example: "--flag1 value1 --flag2=value2"
      --molecule-test-flags string    Additional flags to pass to molecule test
      --namespace string              If non-empty, single namespace to run tests in
      --namespaced-manifest string    Path to manifest for per-test, namespaced resources (e.g. RBAC and Operator manifest)
      --no-setup                      Disable test resource creation
      --up-local                      Enable running operator locally with go run instead of as an image in the cluster

Global Flags:
      --verbose   Enable verbose logging

make: [test/e2e] Error 1 (ignored)
... Running with the --debug param ...
operator-sdk test local ./test/e2e --debug
INFO[0000] Testing operator locally.
--- FAIL: TestMemcached (15.91s)
    --- FAIL: TestMemcached/memcached-group (0.00s)
        --- FAIL: TestMemcached/memcached-group/Cluster (10.97s)
            client.go:57: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster-1567786864/memcached-operator) created
            client.go:57: resource type Role with namespace/name (memcached-memcached-group-cluster-1567786864/memcached-operator) created
            client.go:57: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster-1567786864/memcached-operator) created
            client.go:57: resource type Deployment with namespace/name (memcached-memcached-group-cluster-1567786864/memcached-operator) created
            memcached_test.go:100: Initialized cluster resources
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:70: Deployment available (1/1)
            memcached_test.go:114: Memcached.cache.example.com "example-memcached" is invalid: []: Invalid value: map[string]interface {}{"kind":"Memcached", "apiVersion":"cache.example.com/v1alpha1", "metadata":map[string]interface {}{"clusterName":"", "name":"example-memcached", "namespace":"memcached-memcached-group-cluster-1567786864", "creationTimestamp":"2019-09-05T19:27:28Z", "generation":1, "uid":"32c2fe85-d013-11e9-a3bf-96ef92e3f92b", "selfLink":""}, "spec":map[string]interface {}{"size":3}, "status":map[string]interface {}{"nodes":interface {}(nil)}}: validation failure list:
                status.nodes in body must be of type array: "null"
            client.go:75: resource type Deployment with namespace/name (memcached-memcached-group-cluster-1567786864/memcached-operator) successfully deleted
            client.go:75: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster-1567786864/memcached-operator) successfully deleted
            client.go:75: resource type Role with namespace/name (memcached-memcached-group-cluster-1567786864/memcached-operator) successfully deleted
            client.go:75: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster-1567786864/memcached-operator) successfully deleted
        --- FAIL: TestMemcached/memcached-group/Cluster2 (15.62s)
            client.go:57: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster2-1567786864/memcached-operator) created
            client.go:57: resource type Role with namespace/name (memcached-memcached-group-cluster2-1567786864/memcached-operator) created
            client.go:57: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster2-1567786864/memcached-operator) created
            client.go:57: resource type Deployment with namespace/name (memcached-memcached-group-cluster2-1567786864/memcached-operator) created
            memcached_test.go:100: Initialized cluster resources
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:70: Deployment available (1/1)
            memcached_test.go:114: Memcached.cache.example.com "example-memcached" is invalid: []: Invalid value: map[string]interface {}{"status":map[string]interface {}{"nodes":interface {}(nil)}, "kind":"Memcached", "apiVersion":"cache.example.com/v1alpha1", "metadata":map[string]interface {}{"namespace":"memcached-memcached-group-cluster2-1567786864", "creationTimestamp":"2019-09-05T19:27:33Z", "generation":1, "uid":"35c10e41-d013-11e9-a3bf-96ef92e3f92b", "selfLink":"", "clusterName":"", "name":"example-memcached"}, "spec":map[string]interface {}{"size":3}}: validation failure list:
                status.nodes in body must be of type array: "null"
            client.go:75: resource type Deployment with namespace/name (memcached-memcached-group-cluster2-1567786864/memcached-operator) successfully deleted
            client.go:75: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster2-1567786864/memcached-operator) successfully deleted
            client.go:75: resource type Role with namespace/name (memcached-memcached-group-cluster2-1567786864/memcached-operator) successfully deleted
            client.go:75: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster2-1567786864/memcached-operator) successfully deleted
FAIL
FAIL	github.com/operator-framework/operator-sdk-samples/memcached-operator/test/e2e	16.260s
Error: failed to build test binary: (failed to exec []string{"go", "test", "./test/e2e/...", "-namespacedMan", "/var/folders/r_/ym6yn3cd0q3fm5jcgcwvj4z00000gn/T/namespaced-manifest.yaml462031958", "-globalMan", "/var/folders/r_/ym6yn3cd0q3fm5jcgcwvj4z00000gn/T/global-manifest.yaml159338429", "-root", "/Users/camilamacedo/go/src/github.com/operator-framework/operator-sdk-samples/memcached-operator"}: exit status 1)
Usage:
  operator-sdk test local <path to tests directory> [flags]

Flags:
      --debug                         Enable debug-level logging
      --global-manifest string        Path to manifest for Global resources (e.g. CRD manifests)
      --go-test-flags string          Additional flags to pass to go test
  -h, --help                          help for local
      --image string                  Use a different operator image from the one specified in the namespaced manifest
      --kubeconfig string             Kubeconfig path
      --local-operator-flags string   The flags that the operator needs (while using --up-local). Example: "--flag1 value1 --flag2=value2"
      --molecule-test-flags string    Additional flags to pass to molecule test
      --namespace string              If non-empty, single namespace to run tests in
      --namespaced-manifest string    Path to manifest for per-test, namespaced resources (e.g. RBAC and Operator manifest)
      --no-setup                      Disable test resource creation
      --up-local                      Enable running operator locally with go run instead of as an image in the cluster

Global Flags:
      --verbose   Enable verbose logging

make: [test/e2e] Error 1 (ignored)
... Running with the --verbose param ...
operator-sdk test local ./test/e2e --verbose
DEBU[0000] Debug logging is set
INFO[0000] Testing operator locally.
DEBU[0000] Running []string{"go", "test", "./test/e2e/...", "-namespacedMan", "/var/folders/r_/ym6yn3cd0q3fm5jcgcwvj4z00000gn/T/namespaced-manifest.yaml722256713", "-globalMan", "/var/folders/r_/ym6yn3cd0q3fm5jcgcwvj4z00000gn/T/global-manifest.yaml691887124", "-root", "/Users/camilamacedo/go/src/github.com/operator-framework/operator-sdk-samples/memcached-operator"}
=== RUN   TestMemcached
=== RUN   TestMemcached/memcached-group
=== RUN   TestMemcached/memcached-group/Cluster
=== PAUSE TestMemcached/memcached-group/Cluster
=== RUN   TestMemcached/memcached-group/Cluster2
=== PAUSE TestMemcached/memcached-group/Cluster2
=== CONT  TestMemcached/memcached-group/Cluster
=== CONT  TestMemcached/memcached-group/Cluster2
--- FAIL: TestMemcached (25.34s)
    --- FAIL: TestMemcached/memcached-group (0.00s)
        --- FAIL: TestMemcached/memcached-group/Cluster2 (24.87s)
            client.go:57: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster2-1567786884/memcached-operator) created
            client.go:57: resource type Role with namespace/name (memcached-memcached-group-cluster2-1567786884/memcached-operator) created
            client.go:57: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster2-1567786884/memcached-operator) created
            client.go:57: resource type Deployment with namespace/name (memcached-memcached-group-cluster2-1567786884/memcached-operator) created
            memcached_test.go:100: Initialized cluster resources
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:70: Deployment available (1/1)
            memcached_test.go:114: Memcached.cache.example.com "example-memcached" is invalid: []: Invalid value: map[string]interface {}{"kind":"Memcached", "apiVersion":"cache.example.com/v1alpha1", "metadata":map[string]interface {}{"clusterName":"", "name":"example-memcached", "namespace":"memcached-memcached-group-cluster2-1567786884", "creationTimestamp":"2019-09-05T19:28:01Z", "generation":1, "uid":"462190ad-d013-11e9-a3bf-96ef92e3f92b", "selfLink":""}, "spec":map[string]interface {}{"size":3}, "status":map[string]interface {}{"nodes":interface {}(nil)}}: validation failure list:
                status.nodes in body must be of type array: "null"
            client.go:75: resource type Deployment with namespace/name (memcached-memcached-group-cluster2-1567786884/memcached-operator) successfully deleted
            client.go:75: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster2-1567786884/memcached-operator) successfully deleted
            client.go:75: resource type Role with namespace/name (memcached-memcached-group-cluster2-1567786884/memcached-operator) successfully deleted
            client.go:75: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster2-1567786884/memcached-operator) successfully deleted
        --- FAIL: TestMemcached/memcached-group/Cluster (24.91s)
            client.go:57: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster-1567786884/memcached-operator) created
            client.go:57: resource type Role with namespace/name (memcached-memcached-group-cluster-1567786884/memcached-operator) created
            client.go:57: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster-1567786884/memcached-operator) created
            client.go:57: resource type Deployment with namespace/name (memcached-memcached-group-cluster-1567786884/memcached-operator) created
            memcached_test.go:100: Initialized cluster resources
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:64: Waiting for full availability of memcached-operator deployment (0/1)
            wait_util.go:70: Deployment available (1/1)
            memcached_test.go:114: Memcached.cache.example.com "example-memcached" is invalid: []: Invalid value: map[string]interface {}{"kind":"Memcached", "apiVersion":"cache.example.com/v1alpha1", "metadata":map[string]interface {}{"creationTimestamp":"2019-09-05T19:28:00Z", "generation":1, "uid":"45f51152-d013-11e9-a3bf-96ef92e3f92b", "selfLink":"", "clusterName":"", "name":"example-memcached", "namespace":"memcached-memcached-group-cluster-1567786884"}, "spec":map[string]interface {}{"size":3}, "status":map[string]interface {}{"nodes":interface {}(nil)}}: validation failure list:
                status.nodes in body must be of type array: "null"
            client.go:75: resource type Deployment with namespace/name (memcached-memcached-group-cluster-1567786884/memcached-operator) successfully deleted
            client.go:75: resource type RoleBinding with namespace/name (memcached-memcached-group-cluster-1567786884/memcached-operator) successfully deleted
            client.go:75: resource type Role with namespace/name (memcached-memcached-group-cluster-1567786884/memcached-operator) successfully deleted
            client.go:75: resource type ServiceAccount with namespace/name (memcached-memcached-group-cluster-1567786884/memcached-operator) successfully deleted
FAIL
FAIL	github.com/operator-framework/operator-sdk-samples/memcached-operator/test/e2e	26.418s
Error: failed to build test binary: (failed to exec []string{"go", "test", "./test/e2e/...", "-namespacedMan", "/var/folders/r_/ym6yn3cd0q3fm5jcgcwvj4z00000gn/T/namespaced-manifest.yaml722256713", "-globalMan", "/var/folders/r_/ym6yn3cd0q3fm5jcgcwvj4z00000gn/T/global-manifest.yaml691887124", "-root", "/Users/camilamacedo/go/src/github.com/operator-framework/operator-sdk-samples/memcached-operator"}: exit status 1)
Usage:
  operator-sdk test local <path to tests directory> [flags]

Flags:
      --debug                         Enable debug-level logging
      --global-manifest string        Path to manifest for Global resources (e.g. CRD manifests)
      --go-test-flags string          Additional flags to pass to go test
  -h, --help                          help for local
      --image string                  Use a different operator image from the one specified in the namespaced manifest
      --kubeconfig string             Kubeconfig path
      --local-operator-flags string   The flags that the operator needs (while using --up-local). Example: "--flag1 value1 --flag2=value2"
      --molecule-test-flags string    Additional flags to pass to molecule test
      --namespace string              If non-empty, single namespace to run tests in
      --namespaced-manifest string    Path to manifest for per-test, namespaced resources (e.g. RBAC and Operator manifest)
      --no-setup                      Disable test resource creation
      --up-local                      Enable running operator locally with go run instead of as an image in the cluster

Global Flags:
      --verbose   Enable verbose logging

make: [test/e2e] Error 1 (ignored)

Environment

operator-sdk version: 0.10+

c/c @AlexNPavel

I believe that I found the issue. It was related to the required changes over the metrics in the main.go. After applying the scalfod impl it changed. However, I am still facing issues but they show not related to the tests at all. In this way, I am closing this issue with the following solution.

Create a new project using the operator-sdk
Check the content generated in the main.go file.
Ensure that your implementation is following the same


fix(bridge): Corrected misleading message in create project

Signed-off-by: mehabhalodiya<EMAIL_ADDRESS>

This PR

correct message reads when creating a new project

Related Issues

Fixes #8106

Hey @mehabhalodiya, thank you for the PR :) There is a limitation where if a PR has a single commit, it must follow the semantic PR naming schema :( Could you please change the commit message to the PR title? You can do that by running git commit --amend -sm "fix(bridge): Corrected misleading message in creating project"

Hey @mehabhalodiya, thank you for the PR :) There is a limitation where if a PR has a single commit, it must follow the semantic PR naming schema :( Could you please change the commit message to the PR title? You can do that by running git commit --amend -sm "fix(bridge): Corrected misleading message in creating project"

@thisthat Done. Thank you!


Volume according to the API

The volume API seems to have changed and the old examples did not work.
Also, even though mostly the same code is repeated, I find it more clear to give examples like:
Example
io.emit('unmute', '');

Thank you very much!!!


Organizations - implement Policy Type functionality

I tried my best to also add support for AISERVICES_OPT_OUT_POLICY policy.

Coverage increased (+0.008%) to 94.379% when pulling aa752ac9e745eff0566c12289195fcb9a04c448e on gruebel:add-organizations-policy-type into 06ed67a8e5c6ffddb7b588798141d9c5a70f183f on spulec:master.

Coverage increased (+0.008%) to 94.379% when pulling aa752ac9e745eff0566c12289195fcb9a04c448e on gruebel:add-organizations-policy-type into 06ed67a8e5c6ffddb7b588798141d9c5a70f183f on spulec:master.


Trouble Resuming uploads after WiFi dropout due to File locks

I'm trying to handle a specific scenario: upload large files on a closed network via a tablet device. As users move about the area, there is a chance of WiFi drop-outs or interruptions.
Problem is, after the connection drops and reconnects, the upload attempts to continue, but the chunks/attempts fail with 409 Another process is currently updating this file (or some similar message). Presumably the file-lock from the original request is still active. Worth noting the page hasn't refreshed, the tus js client has automatically re-attempted to upload the file when the WiFi has returned.
Manually calling upload.start() or upload.abort(), upload.start() on reconnect has the same result. Is there any proper way to handle this scenario to avoid the problems with file locks?  Certainly in my scenario the files are specific to the tablet, so no two people are going to upload the same file so killing off the file lock is fine.
(This is easy enough to test by uploading from a mobile device and turning off WiFi halfway through the upload then quickly re-enabling)

Hi,
This sounds like tusdotnet not getting notified that client disconnected. Could you please post your DefaultTusConfiguration object and the configuration used for any reverse proxy (IIS, Nginx etc) so that I can troubleshoot it some more?

Sure, nothing fancy in the default config:
app.UseTus(httpContext => new DefaultTusConfiguration
            {
                Store = new TusDiskStore(tuscache),
                UrlPath = "/videostreamupload",
                Events = new Events
                {
                    OnBeforeCreateAsync = async ctx =>
                    {
                        var logger = ctx.HttpContext.RequestServices.GetService<ILogger<BeforeCreateContext>>();
                        logger.LogInformation("Starting TUS file upload: {0}", ctx.Metadata["filename"].GetString(Encoding.Default));
                    },
                    OnFileCompleteAsync = async ctx =>
                    {
                        // 1. Get uploaded file and metadata
                        ITusFile file = await ctx.GetFileAsync();
                        Dictionary<string, Metadata> metadata = await file.GetMetadataAsync(ctx.CancellationToken);

                        // 2. Log
                        var logger = ctx.HttpContext.RequestServices.GetService<ILogger<FileCompleteContext>>();
                        logger.LogInformation("Completed TUS file upload: {0}", metadata["filename"].GetString(Encoding.Default));

                        // 3. Discern target studio
                        int studio = Convert.ToInt32(metadata["targetstudio"].GetString(Encoding.Default));

                        // 4. Store uploaded content to final location and notify studio
                        TusUploadedFile uploaded = new (file, metadata);
                        var fileService = ctx.HttpContext.RequestServices.GetService<FilesService>();
                        bool isImage = uploaded.ContentType.ToLower().StartsWith("image");
                        string storedFile = await fileService.StoreStudioCaptureAsync(studio, uploaded, isImage);

                        // 5. Delete file from Tus Disk store upload cache
                        if (ctx.Store is TusDiskStore diskStore)
                        {
                            await diskStore.DeleteFileAsync(file.Id, ctx.CancellationToken);
                        }
                    }
                }
            });

No reverse proxy in use, running straight via Kestrel (no IIS deployment)

Thanks for the configuration. I have done some troubleshooting and basically this is due to running directly on Kestrel, which does not support request timeouts in the sense one would normally think of it. This causes tusdotnet to hang in some scenarios which is less than ideal. When running behind a reverse proxy this is not an issue as the RP will handle connection timeouts. See these two discussions on how and why this happens:
https://github.com/aspnet/KestrelHttpServer/pull/485#discussion_r55264843
https://github.com/dotnet/aspnetcore/issues/10079#issuecomment-490519795
This will need to be fixed inside tusdotnet so that is uses its own timeout settings. For now you could work around it by either adding a middleware that does request timeout or adding a custom endpoint to clear the lock. Which to use depends solely on how your network is setup and what chunk sizes you use from the client.
For the latter, switch the file lock provider to tusdotnet.FileLocks.DiskFileLockProvider:
return new DefaultTusConfiguration
{
    UrlPath = "/files",
    Store = new TusDiskStore(@"C:\tusfiles\"),
    FileLockProvider = new tusdotnet.FileLocks.DiskFileLockProvider(@"C:\filelocks")
};

And then either implement an endpoint that the client could call to reset the lock. The lock is reset by deleting the file C:\filelocks\<fileid>.lock. Note that this might cause corrupted files if data is in transfer in the network as there is no longer a lock protecting against that.

After investigating this issue more I ran into some issues, especially in regards to knowing if we run behind a reverse proxy or not. Adding an internal timeout to tusdotnet might mess with current setups and thus I decided to go with additional documentation instead and will consider adding an internal timeout when tus2 arrives.
Wiki link: https://github.com/tusdotnet/tusdotnet/wiki/Configure-Kestrel

No answer. Closing due to inactivity.


Using a module

Perhaps we can use the attributes for using a module, to make this more clear any "top level" attributes will be attributes that are specific to the source code or file itself, i.e. a global attribute? Then we can say that we can use the "mem" library in the given file?
[use "mem"] // attribute for the entire file?

func main(): int {
    x: ^int = Block::alloc(Block::size_of(int) * 32);

    Block::free(x);
}

They're not really attributes though, more like... "tags".


maestral: 0.4.0 -> 0.4.2

Motivation for this change
Regular update. Daily driver here.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @

@GrahamcOfBorg build maestral-gui


Add test for BalancedMiniBatches

Side product of some of my other work, but should help.

@agibsonccc Fixed, thanks !


Add Organizations to the Search Index

The Algolia index for search is currently populated with collectives of type "COLLECTIVE", which means people cannot search for organizations like AirBnB or CoinBase. We should update the search features to allow for this ability.
Steps:

[ ] update the searchIndex to include the type field for querying Algolia
[ ] update the cron job in the opencollective-api repo (cron/daily/populate_search_index.js) to find all Collectives of type "COLLECTIVES" or "ORGANIZATION" for adding to Algolia
[ ] update SearchPage in frontend repo to display an Organization card component for those types returned by Algolia

This has already been implemented.


When typing a chat message and another player sends chat two chat screens are open

When in a multiplayer session you are typing you have a fairly large chat window with many lines available visible. When you receive a message a smaller less intrusive window shows up to let you see new messages at a glance.
If both happen at the same time you get both windows:

That's silly. The typing window is already larger, just suppress the "preview" variant and show the new message normally.
ChatScreen is one of the involved classes.

Hey! I'm a beginner and I'd like to work on this issue

Hi @grubdragon and welcome! Feel free to start working on this issue.
As @Cervator already wrote, you could start investigating this in ChatScreen and ChatSystem.
Line 88 in ChatSystem looks like, in theory, there is some check to prevent this behavior. Maybe this only occurs in multiplayer, or the old code is no longer working. You best start with looking at those points.

Hey @skaldarnar could you guide me through this issue? I'm not sure on how to proceed. What is our desired behavior?

Bump - hey @grubdragon :-) Did you have any other questions or luck with this item?

Hey @Cervator was a bit busy with some other work, I'll try and look around.

@Cervator @skaldarnar , did some poking around, didn't find anything that would cause the functionality to break. I'll look at it again with fresh eyes tomorrow I guess.


Building structure, towards construction sets

More of a proof-of-concept, placeholder for testing default construction set generation & assignment based on building 'structure' selection (e.g. wood-framed construction, vs concrete post+beam). The overall idea is that in most cases, OpenStudio surface Construction choices (in addition to InternalMass definitions), usually stem from underlying structural choices (which are typically not defined in OpenStudio). Ensuring consistency between building structures, envelope selection and internal mass definitions is key to ensuring consistency between predicted energy use, peak demand, GHG emissions, thermal resilience and embodied energy/GHG tallies. More to come ...

This proof-of-concept will be stored temporarily elsewhere, before making its way into BTAP.


Mirroring: add sample client configuration to use the proxy/cache

Request details
Please consider adding to the documentation also a sample "client" configuration for proxy  mode.
I ask this because I'm in a situation where docs could have helped.
My issue follows:
Right now I'm running
<settings>
    <server> <!-- inner maven repository (same as mirror) -->
            <id>com.co.reposilite-releases</id>
            <username>user</username>
            <password>s3cr3t</password>
        </server>
    </servers>
  <mirrors>
        <mirror>
          <id>internal-repository</id>
          <name>mirror</name>
          <url>http://reposilite.local</url>
          <mirrorOf>*</mirrorOf>
          <username>user</username>
          <password>s3cr3t</password>
        </mirror>
  </mirrors>
</settings>

as ~/.m2/settings.xml
and
# ~~~~~~~~~~~~~~~~~~~~~~ #
#       Reposilite       #
# ~~~~~~~~~~~~~~~~~~~~~~ #

# Hostname
hostname: <IP_ADDRESS>
# Port to bind
port: 80
# Custom base path
basePath: /
# Any kind of proxy services change real ip.
# The origin ip should be available in one of the headers.
# Nginx: X-Forwarded-For
# Cloudflare: CF-Connecting-IP
# Popular: X-Real-IP
forwardedIp: X-Forwarded-For
# Enable Swagger (/swagger-docs) and Swagger UI (/swagger)
swagger: false
# Debug
debugEnabled: false

# Support encrypted connections
sslEnabled: false
# SSL port to bind
sslPort: 443
# Key store file to use.
# You can specify absolute path to the given file or use ${WORKING_DIRECTORY} variable.
keyStorePath: ${WORKING_DIRECTORY}/keystore.jks
# Key store password to use
keyStorePassword: ""
# Redirect http traffic to https
enforceSsl: false

# Control the maximum amount of data assigned to Reposilite instance
# Supported formats: 90%, 500MB, 10GB
diskQuota: 10GB
# List of supported Maven repositories.
# First directory on the list is the main (primary) repository.
# Tu mark repository as private, prefix its name with a dot, e.g. ".private"
repositories [
  releases
  snapshots
  dev
]
# Allow to omit name of the main repository in request
# e.g. /org/panda-lang/reposilite will be redirected to /releases/org/panda-lang/reposilite
rewritePathsEnabled: true
# Accept deployment connections
deployEnabled: true

# List of proxied repositories.
# Reposilite will search for an artifact in remote repositories listed below,
# if the requested artifact was not found.
proxied [
  https://europe-maven.pkg.dev/jxbrowser
  https://www.license4j.com/maven
  https://jitpack.io
  https://repo1.maven.org/maven2
]
# Reposilite can store proxied artifacts locally to reduce response time and improve stability
storeProxied: true
# Proxying is disabled by default in private repositories because of the security policy.
# Enabling this feature may expose private data like i.e. artifact name used in your company.
proxyPrivate: true
# How long Reposilite can wait for establishing the connection with a remote host. (In seconds)
proxyConnectTimeout: 3
# How long Reposilite can read data from remote proxy. (In seconds)
# Increasing this value may be required in case of proxying slow remote repositories.
proxyReadTimeout: 15

# Title displayed by frontend
title: Company's Maven
# Description displayed by frontend
description: Private Maven repository hosted through the Reposilite
# Accent color used by frontend
accentColor: #2fd4aaroot

as reposilite.cdn
and having this error:
$ mvn package -U
Downloading from internal-repository: http://reposilite.local/com/teamdev/jxbrowser/jxbrowser-javafx/7.19/jxbrowser-javafx-7.19.pom
[WARNING] The POM for com.teamdev.jxbrowser:jxbrowser-javafx:jar:7.19 is missing, no dependency information available

also here a link to StackOverflow

I never used mirroring feature, so I'm not sure if it requires some extra handling 🤔 Does Reposilite receives any requests from your Maven client?


Azure Media Services, bug fixing and missing update methods

Hi folks! In July we sent you some updates to support Content Protection features, Encoding Units Scale feature, and Streaming Endpoints Scale feature.
This time we send you two bug fixes and two missing features for mentioned contribution.
Please let me know if you have any questions or feedback!
Thanks!

Can one of the admins verify this patch?

Hi @rnrneverdies, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.azure.com.

TTYL, AZPRBOT;

@rnrneverdies, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, AZPRBOT;

Any feedback?

@jianghaolu Any feedback?

@azuresdkci add to whitelist


Align workflows

As a developer integrating Pillarbox I would like to have a regular stream of updates. As a Pillarbox developer I need to be able to reliably and efficiently deliver increments in a way that is similar between platforms.
Acceptance criteria

A workflow alignment proposal has been discussed and documented.
Where testing occurs in this workflow has been discussed.
The workflow does not introduce unnecessary friction.

Hint
As discussed within the team one approach could be to have closed issues or PR set the status to Testing instead of Done, but this might not be easily feasible for the web.
Tasks

[x] Discuss current workflows.
[ ] Document decisions.

@amtins investigated workflow possibilities in a dedicated issue. We can on all platforms:

Integrate changes as early as possible in main.
Create releases from main depending on the output of additional manual tests.

This workflow likely requires the issue DoD and increment DoD to be adjusted so that manual testing is part of the increment DoD, whereas the issue DoD focuses on automated testing, code review, developer documentation, etc.


Highlight event emitted when zooming

🐛 Bug Report
When connecting to the layer.events.highlight event, the highlight event is emitted when zooming in and out.
This happend on shapes and points layer as well, I suspect it generaly happens for any layer.
I would expect, that the highlight event is only emitted, when part of the layer data was highlighted.
💡 Steps to Reproduce
Minimal demonstration code:
from skimage import data
import napari
import numpy as np

viewer = napari.view_image(data.camera(), name='photographer')
ellipse = np.array([[59, 222], [110, 289], [170, 243], [119, 176]])
layer = viewer.add_shapes(
    [ellipse],shape_type='ellipse',edge_width=5,edge_color='coral',face_color='purple',
)

layer.events.highlight.connect(lambda: print("Hello highlight!"))

if __name__ == '__main__':
    napari.run()

video demonstration
💡 Expected Behavior
No response
🌎 Environment
napari: 0.1.dev3376+ga6882ad
Platform: Windows-10-10.0.19045-SP0
Python: 3.10.5 (tags/v3.10.5:f377153, Jun  6 2022, 16:14:13) [MSC v.1929 64 bit (AMD64)]
Qt: 5.15.2
PyQt5: 5.15.10
NumPy: 1.26.4
SciPy: 1.13.0
Dask: 2024.4.2
VisPy: 0.14.2
magicgui: 0.8.2
superqt: 0.6.4
in-n-out: 0.2.1
app-model: 0.2.6
npe2: 0.7.5
OpenGL:

GL version:  4.6.0 Compatibility Profile Context <IP_ADDRESS>216
MAX_TEXTURE_SIZE: 16384
GL_MAX_3D_TEXTURE_SIZE: 2048

Screens:

screen 1: resolution 1920x1080, scale 1.0

Optional:

numba: 0.59.1
triangle not installed

Settings path:

C:\Users\tomi\AppData\Local\napari.venv_665327481d5ffa929bfcfc10d3499e5b2e1e735a\settings.yaml
Plugins:
napari: 0.1.dev3376+ga6882ad (81 contributions)
napari-console: 0.0.9 (0 contributions)
napari-svg: 0.1.10 (2 contributions)

💡 Additional Context
This issue was discovered together with @melonora.

Re-opened by #7201.


Port to rustix: Fewer unsafe blocks, and file descriptor ownership.

This ports listenfd to use the rustix crate in place of directly
using libc, on Unix platforms. Rustix provides safe APIs for libc-like
functionality, which for listenfd means it factors out several unsafe
blocks, and manages file descriptors with the OwnedFd type, which
tracks file descriptors ownership helping ensure fds are used only
within their intended lifetimes.
I've tested this on Linux with systemfd and thttp.

I unfortunately had to revert this because it requires a too recent rust version. I want this crate to support 1.42.0 and apparently rustix no longer supports that.


Rename "Administration" to "Organization".

Rename "Administration" tab in Settings to "Organization" for all users.
Also rename the same in navigation-bar for admin-users.

Automated message from Dropbox CLA bot
@abhijeetkaur, it looks like you've already signed the Dropbox CLA. Thanks!

I haven't reviewed the changes but just a minor comment regarding commit message.
If this commit doesn't completely fix the issue #3636 then you might want to remove "fixes #3636" from the commit message as merging this commit will close the issue as far as my understanding of Github's system.

@adnrs96 My logic of including that was because zulipbot then comments on the issue, that no progress has been made regarding the same. To avoid that, I wanted to mention the issue. But you have a point too. :)

I believe Zulipbot was patched to handle that sometime ago. I guess now the workflow for Zulipbot is to just get the first issue number present in the PR's body and then checking every PR referencing a issue for Updated at parameter. Updated at for a PR get's updated to latest time whenever some commits are pushed to PR (Commits may or may not reference issue numbers in the commit body) or discussion happens in the PR. So you shouldn't worry about Zulipbot's posting on the issue about inactivity.
Pinging @lonerz to confirm this regarding Zulipbot
(Might be worth documenting in docs so people know how things work)

@adnrs96 We have disabled inactivity due to some bugs already, so you shouldn't need to worry about it.
Regarding zulipbot's mentions, zulipbot checks the PR body, commits messages, and comments for issue references and then mentions the corresponding area teams from that issue. Thus, you don't have to have it in your commit message if your PR only partly solves the issue.
If you add "Fixes #number" in your commit message, when we merge your commit, it closes the issue, which in your case @abhijeetkaur, you don't want to happen, since you only partly fix the problem.

@adnrs96 @lonerz Thank you for the insight! I'll be more careful next time. Updated! :)

Merged!  Thanks, @abhijeetkaur!  I fixed up the commit message a bit to add some whitespace and make minor wording changes.


Fix SEO tags for social media images

This does social media images the "right" way by over-riding the site-head template of our Hugo theme. I copy/pasted the template and added in a small section. It is a bit hacky but I think this is the way Hugo wants us to do things.
If we ever upgrade the site version, we'll need to change the template that is over-ridden.

Gonna merge this one in since it's fixing a bug in our site right now.


Provide method to get pieces under their categories

eg.
{
"highlights": [ events ],
"culture": [ events],
"chill": []
}

@kaygee5000 , i provided two more methods getEventCategories and getEventSubCategories on the event object.
FYI, currently we are more interested in sub-categories ['food', 'music', 'people', 'event', 'opinion', 'art'] , these wud influence the UI on the app, the main categories as i understand are for internal usage in out language and wud not show on the app
So you can get all the subcategories, and then use that to get events under each category like
import { Event } from '@vibely/api-client-node'
const api = t.context.api
const token = t.context.token
const event = new Event({api, token})
const subcategories = await event.getEventSubCategories()
subcategories.map(category => {
     const filter = {category}
     const events = await event.getEvents({filter})

    // here you have events for that category
})

Am closing this issue since there appears to be a solution to the issue


chore: Remove unused code

Description

[!TIP]
Add a TL;DR when the description is longer than 500 words or extremely technical (helps the content, marketing, and DevRel team).
Please also include relevant motivation and context. List any dependencies that are required for this change. Add links to Notion, Figma or any other documents that might be relevant to the PR.

/test generatecrud
:mag: Cypress test results

[!TIP]
🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/9642509395
Commit: d9262ccbcd4c2ad592e6826a8057a2be76263b81
Cypress dashboard.
Tags: @tag.GenerateCRUD

Communication
Should the DevRel and Marketing teams inform users about this change?

[ ] Yes
[x] No


HL-890 | Do not obscure view with terms on a11y statement page

Description :sparkles:
Do not mount terms component if current route is accessibility statement.

Codecov Report

Merging #2187 (91e8acd) into develop (8ca325a) will decrease coverage by 13.61%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##           develop    #2187       +/-   ##
============================================
- Coverage    30.12%   16.52%   -13.61%
============================================
  Files          823      122      -701
  Lines        16177     2669    -13508
  Branches      3198      566     -2632
============================================
- Hits          4874      441     -4433
+ Misses       10780     2147     -8633
+ Partials       523       81      -442

Files Changed
Coverage Δ

...benefit/applicant/src/components/layout/Layout.tsx
0.00% <0.00%> (ø)

... and 701 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

HANDLER branch is deployed to platta: https://helsinkilisa-ui-handler-pr2187.dev.hel.ninja :rocket::rocket::rocket:

API branch is deployed to platta: https://helsinkilisa-pr2187.api.dev.hel.ninja/healthz :rocket::rocket::rocket:

API branch is deployed to platta: https://helsinkilisa-pr2187.api.dev.hel.ninja/healthz :rocket::rocket::rocket:

HANDLER branch is deployed to platta: https://helsinkilisa-ui-handler-pr2187.dev.hel.ninja :rocket::rocket::rocket:

APPLICANT branch is deployed to platta: https://helsinkilisa-ui-pr2187.dev.hel.ninja :rocket::rocket::rocket:

TestCafe result is success for https://helsinkilisa-ui-pr2187.dev.hel.ninja :laughing::tada::tada::tada:


Project View navigation - add Project Title to Client name on right

It's a little hard to know where you are on the Projects. With client's being able to have multiple projects in this upgrade, it will be helpful to include the Project Name in the Project view.

I implemented something like this:

Is that what you had in mind?

Yes, that works! The Project title is persistent across the tabs selected as is the client info. It's actually a better place than what I suggested. :-)


Mostly Screen stuff, also some EntityRenderer class names

I also moved a couple classes to their correct packages.


chore(deps): bump all dependencies

Bug all dependencies to their latest minor or patch versions, as well as bumping bull-board packages to v4 (no meaningful changes)

:tada: This PR is included in version 1.0.0-next.33 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Portfolio inputs

Inputs for "user_parameters"

Pull Request Test Coverage Report for Build 28

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 98.165%

Totals

Change from base Build 27:
0.0%

Covered Lines:
107

Relevant Lines:
109

💛  - Coveralls


[Logz] monitors DELETE API is broken

Swagger Link
When attempting to delete a Logz Monitor instance and its Sub Account instance via Azure API, the flow failed as illustrated below.
Firstly delete the sub account instance as below:
DELETE https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/acctest-logz-220406162837808838/providers/Microsoft.Logz/monitors/acctest-lm-220406162837808838/accounts/acctest-lsa-220406162837808838?api-version=2020-10-01 HTTP/1.1

which returns a Long Running Request as shown below:
Azure-AsyncOperation: https://management.azure.com/providers/Microsoft.Logz/locations/WESTUS2/operationStatuses/c2ace76b-e04f-4628-9973-25cf8d8316cb*68E980A2C84E95C3472A9F7590A1A1B27D79DA89303EF4F6B0DB676658CF6EE8?api-version=2020-10-01
Then send several GET request to get operation Statuses:
GET https://management.azure.com/providers/Microsoft.Logz/locations/WESTUS2/operationStatuses/c2ace76b-e04f-4628-9973-25cf8d8316cb*68E980A2C84E95C3472A9F7590A1A1B27D79DA89303EF4F6B0DB676658CF6EE8?api-version=2020-10-01 HTTP/1.1
which eventually returns Succeeded (which should mean that the sub account no longer exists):
{"status":"Succeeded","startTime":"2022-04-06T08:37:12.628953Z","endTime":"2022-04-06T08:37:33.0894648Z","error":{},"properties":null}
At this time - it should be possible to delete the Monitor instance(as its sub account has already been deleted). Attempting to do so:
DELETE https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/acctest-logz-220406162837808838/providers/Microsoft.Logz/monitors/acctest-lm-220406162837808838?api-version=2020-10-01 HTTP/1.1
which fails though:
{"error":{"code":"CannotDeleteResource","message":"Can not delete resource before nested resources are deleted."}}
It looks like the same issue as #8137.
The correlationId is:
x-ms-correlation-request-id: b448b03f-005d-e2de-356b-945108e254bb
Kindly help confirm this bug.
Thanks.

@ms-zhenhua Thank you for reaching out, we are looking into it.

@ms-zhenhua is this fixed?

@tombuildsstuff , No, sorry, I closed it by mistake with other issues.

@RakeshMohanMSFT it's coming up to a year since this was opened, any update on when this'll be fixed? Thanks!


added conditional extension delimiter

Characters wrapped in %d{} only appear when the extension is present. This would be able to be merged in now without changing any of the old behavior and allow an amount of flexibility that is quite useful.
I completely understand if this isn't in the spirit of the gem and doesn't get merged, but I found it useful and thought you might like the idea.

@calebanderson I dig the idea. Did you give any thought to using a token related to %x? Like maybe %X? Wondering if we could make it easier for a person looking at the string to understand those things are linked.

I did originally, but that ended up looking like %a %n%X{ x}%x and that had too many x's for my taste. It's a simple change though.

@elskwid  I did originally, but that ended up looking like %a %n%X{ x}%x and that had too many x's for my taste. It's a simple change though.
EDIT: I chose %d for extension delimiter.


[LS] getAuthAccount is not supported

Problem

Steps to Reproduce
Open a cadence script and attempt to use the built in getAuthAccount function.
Acceptance Criteria
No more red squiggly line.
Context
Using version v0.7.1 of the Cadence extension.

You can't access getAuthAccount in scripts, you can only do that in transactions https://docs.onflow.org/cadence/language/accounts/#authaccount

Hi @sideninja This is my code
export const setupUserTx = `
import MyNFT from 0x8469322b1f3482d1
import NonFungibleToken from 0x631e88ae7f1d7c20
import FungibleToken from 0x9a0766d93b6608b7
import FlowToken from 0x7e60df042a9c0868
import NFTMarketplace from 0x8469322b1f3482d1
//const account1 = getAuthAccount(0x8469322b1f3482d1)
transaction {
prepare(acct:AuthAccount) {
log(acct)
let acct = getAuthAccount(0x8469322b1f3482d1)
acct.save(<- MyNFT.createEmptyCollection(), to: /storage/MyNFTCollection)
acct.link<&MyNFT.Collection{MyNFT.CollectionPublic, NonFungibleToken.CollectionPublic}>(/public/MyNFTCollection, target: /storage/MyNFTCollection)
acct.link<&MyNFT.Collection>(/private/MyNFTCollection, target: /storage/MyNFTCollection)
let MyNFTCollection = acct.getCapability<&MyNFT.Collection>(/private/MyNFTCollection)
let FlowTokenVault = acct.getCapability<&FlowToken.Vault{FungibleToken.Receiver}>(/public/flowTokenReceiver)

acct.save(<- NFTMarketplace.createSaleCollection(MyNFTCollection: MyNFTCollection, FlowTokenVault: FlowTokenVault), to: /storage/MySaleCollection)
acct.link<&NFTMarketplace.SaleCollection{NFTMarketplace.SaleCollectionPublic}>(/public/MySaleCollection, target: /storage/MySaleCollection)

}
execute {
log("A user stored a Collection and a SaleCollection inside their account")
}
}
Getting the error
let acct = getAuthAccount(0x8469322b1f3482d1)
|                 ^^^^^^^^^^^^^^ not found in this scope

@ashlinSajan what tool you used to write the code? VSCode, Playground...?

getAuthAccount is available only in scripts, you should use acct from prepare(acct:AuthAccount)  to access authorizers.


Reinstate Lithops AWS examples that were accidently removed in #174

Here's the timeline from running lithops-matmul-random.py:

What code did you use to create these plots?

All you have to do is add TimelineVisualizationCallback - see the example in this PR. Code is in https://github.com/tomwhite/cubed/blob/main/cubed/extensions/timeline.py.

Last week I started looking at this task timing information manually for the quadratic means example run with xarray, I'll try to post it later.

Great!


Generate key not response

PGPSecretKeyRing pgpSecretKeys = PGPainless.generateKeyRing().simpleRsaKeyRing(jid, RsaLength._4096);

pgpainless-core:0.2.0
Generate key not response
Test in Phone Model Oppo F9
Android 10
*Test in oneplus 7 pro Android 11 key can generate success.

What do you mean by "no response"?
Does your app crash? Does it display the "this app is not responding" dialog?
Does it simply hang indefinitely?
It sounds like you are generating the key on Androids UI Thread. You should do it in a background thread.

I'm generate key in android worker. then is not reach success.

Is the oppo a weaker device? I don't have access to such a device, so unfortunately I cannot check this myself.
I know that generation of RSA keys is quite a resource hungry task. Maybe try ECC keys instead?

Yes ECC very faster than RSA.
Can you help me to fix this one when build release in version 0.2.0.
java.security.NoSuchAlgorithmException: no such algorithm: RSA for provider BC


Adding items to favorites causes DIDL errors in subscription

Last night my wife added an Amazon Music Playlist to Sonos Favorites and all of my Soco-based components stopped working (and logged 218k errors).
A quick dig through the logs returned the following error:
40   File "/usr/local/lib/python3.4/dist-packages/soco/data_structures.py", line 96, in from_didl_string
40     cls = _DIDL_CLASS_TO_CLASS[item_class]
40 KeyError: 'object.container.playlistContainer.sonos-favorite'

Previously I opened another issue to deal with trailing .# fields on otherwise known data types, and this one seems not much different.  I modified data_structures as follows, but I'm concerned that there are other ways this might break.   It also seems like there might be a better blanket way of resolving this - maybe catching the exception and trying the parent class rather than just falling over?  I believe this was considered previously and had other drawbacks since Sonos is so inelegant with datatypes.
def from_didl_string(string):
    """Convert a unicode xml string to a list of `DIDLObjects <DidlObject>`.

    Args:
        string (str): A unicode string containing an XML representation of one
            or more DIDL-Lite items (in the form  ``'<DIDL-Lite ...>
            ...</DIDL-Lite>'``)

    Returns:
        list: A list of one or more instances of `DidlObject` or a subclass
    """
    items = []
    root = XML.fromstring(string.encode('utf-8'))
    for elt in root:
        if elt.tag.endswith('item') or elt.tag.endswith('container'):
            item_class = elt.findtext(ns_tag('upnp', 'class'))

            # In case this class has an # specified unofficial
            # subclass, ignore it by stripping it from item_class
            if '.#' in item_class:
                item_class = item_class[:item_class.find('.#')]

            # stop sonos favorite tagged items from key errors
            if '.sonos-favorite' in item_class:
                item_class = item_class[:item_class.find('.sonos-favorite')]

            try:
                cls = _DIDL_CLASS_TO_CLASS[item_class]
            except KeyError:
                raise DIDLMetadataError("Unknown UPnP class: %s" % item_class)
            items.append(cls.from_element(elt))
        else:
            # <desc> elements are allowed as an immediate child of <DIDL-Lite>
            # according to the spec, but I have not seen one there in Sonos, so
            # we treat them as illegal. May need to fix this if this
            # causes problems.
            raise DIDLMetadataError("Illegal child of DIDL element: <%s>"
                                    % elt.tag)
    return items

The error simply means that our library is missing a Sonos Favorite class, as would be introduced by #478. Sadly, that PR has a problem with the import structure, so it might take a while until it is ready to merge.

I'll try to make a 'light' version of #478 without the problematic code to fix this.


Feature Request: Allow to play Audio on Webview

Hey, I'm definitely not as a good programmer as you guys, but because I deal with a lot of audio, I would really appreciate if you guys could add in a feature to work with IPython.display.Audio or with videos as per

https://github.com/microsoft/vscode-python/issues/3405
https://github.com/microsoft/vscode/issues/66050
https://github.com/microsoft/vscode/issues/80196
etc

I don't know how difficult this would be to do, but I'd really appreciate it. Although I really like VS Code, I keep finding myself going back to Atom ONLY because of this issue.
Thank you very much! Much appreciated!

The thinking on supporting audio and video in webviews hasn't changed. Still out of scope

@mjbvz Why is that out of scope? This is 100% killing every data science application on VS Code. Microsoft seems to care a lot about data science with VS Code. @jchlus is a Program Manager, Python AI/ Visual Studios dedicated to promoting data science in VS Code.
And according to your past comment, all that's needed to support it is shipping a single codec in the build. https://github.com/microsoft/vscode/issues/32540#issuecomment-381847598
Maybe you could ship an alternative binary with the ffmpeg codec included? Or can you at least provide instructions on how to compile from source with ffmpeg support, like you say you do internally?

We have no plans to address this in the short term
The normal OSS builds should already include FFMpeg. Just follow the normal build instructions


[topic] add categories

Add categories (container of blocks)
Formatting updates for that
Add a left-hand nav menu
Fix webdriver test
Add provenance for bar charts
Fix spacing for ranking charts
Hide page selector (temporarily)
Enable topic page in prod

Just checking... does clicking on the category on the LHS navigate to that section?

this is more of a review for how it looks than the code... it looks great!

thanks :)

Just checking... does clicking on the category on the LHS navigate to that section?

yup, either to the start of the "category" or the "block" -- so all the links on the left-hand nav should work.

Added a few more changes for releasing this to prod...


feat: add TablerIcons #255

close #255

:tada: This PR is included in version 7.34.0-next.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 7.35.0-next.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Fixed typo in variable name and optimized array length handling

Fixed typo in variable
// Tkenomics contract address > // Tokenomics contract address

Added checks for non-empty arrays in some places and stored their length in a variable.

contracts/DonatorBlacklist.sol > setDonatorsStatuses
contracts/Tokenomics.sol > getOwnerIncentives

In the TokenomicsConstants.sol contract, it might be worth moving inflationAmounts and supplyCaps to constant arrays.

Thanks @saniksin - these are deployed contracts and therefore it does not make sense to alter their implementation now. We welcome contributions to on-going work like #179 and #178 for instance


check if we have a dupe during celery task

What Changed

Try to get the result from the database before adding it to the list for bulk insertion
Does not dedupe existing records in the database, only new insertions.

Issues

Fixes #18

Hmm. I'm not sure that this will fix the problem, but it might! :) Let's give it a try. Thank you!


Reaction instance gets reused after dispose

Let's say I have a component that uses this subscription when it is focused:
(rf/reg-sub-raw
  :my-value-sub
  (fn [app-db _]
    (do-my-side-effect! true)
    (let [my-value-cursor (ra/cursor app-db [:my-value])]
      (ra/make-reaction
        (fn [] @my-value-cursor)
        :on-dispose #(do-my-side-effect! false)))))

If I blur the field, (do-my-side-effect! false) will be called (via :on-dispose). If I then focus the field again, the same subscription instance is reused, but there is no way to know that (do-my-side-effect! true) needs to be called again. (Or is there?)
If a fresh instance of the reaction was created, this problem would go away. (Though I don't know if this would cause other problems).
This problem can be worked around by doing these side-effects in the event-handlers instead (e.g., via on-blur and on-focus in this case), though it may require duplicating logic.

The problem was made possible by use of this pattern:
(defn child-component [some-sub]
  [:pre (pr-str @some-sub)])

(def parent-component []
  [child-component (rf/subscribe [:some-sub])])

The problem is if the parent does not re-render, the same instance of the reaction will be used (even though it has been disposed).
Switching to this pattern (send sub-path instead of actual sub) fixes it:
(defn child-component [some-sub-path]
  [:pre (pr-str @(rf/subscribe some-sub-path))])

(def parent-component []
  [child-component [:some-sub]])

In the case that you do want to subscribe in the child component, but want the parent to control the subscription used, you might be able to pass in a function that returns the subscription instead. E.g.
(defn child-component [create-some-sub]
  [:pre (pr-str @(create-some-sub))])

(defn parent-component []
  [child-component #(rf/subscribe [:some-sub])])

I haven't tested this but it would seem to solve the problem where the reaction is persisted despite being disposed, as each render of child-component would call subscribe again.

@Lokeh Yea - in my bottom example, I achieve the same result by just passing the sub-path instead of the subscription, then call subscribe from the child, and that works.

To my eyes, this is certainly an odd, slightly scary mix of cursors and reg-sub-raw and side-effects.  There’s nothing very idiomatic to re-frame going on here. There must be a waaaaaay easier way of doing whatever it is that you are doing. See /Support.md in the root of this repo.
I’m going to close this because, although you might well be right with your report, I’m not sure what I can or should do to fix whatever problem you might have found.


Win RT version - Renderer crashes when view gets removed from page

Within NControlViewRenderer.OnElementChanged the renderer crashes when setting the native control SetNativeControl(ctrl); while the view is getting removed from the page.
I changed the implementation to catch the situation when OnElementChanged is called while the view is going to be removed:
 protected override void OnElementChanged(ElementChangedEventArgs<NControlView> e)
    {

      base.OnElementChanged(e);

      if (e.OldElement != null)
      {
        e.OldElement.OnInvalidate -= HandleInvalidate;
      }

      if (e.NewElement != null)
      {
        e.NewElement.OnInvalidate += HandleInvalidate;
      }

      // I added these three lines.
      if ((e.OldElement != null) && (e.NewElement == null) && (Control == null))
      {
        return;
      }

      if (Control == null)
      {
        var ctrl = new NControlNativeView();
        Canvas = new Canvas();
        Border = new Border
        {
          Child = Canvas,
        };

        ctrl.Children.Add(Border);

        SetNativeControl(ctrl);

        UpdateClip();
        UpdateInputTransparent();
      }

      RedrawControl();
    }

Kind regards,
Sörnt

Thanks for the code - would it be possible for you to create a quick pull request - promise I will merge it quickly since its a simple fix.

Within my pull request " Initial Windows Phone RT Support. #51" I just added another comit with the fixed to:
a) Win RT version - Renderer crashes when view gets removed from page
b) Windows RT version - CanvasCanvas.MeasureText is not working correctly

This should be fixed now, the PR is closed https://github.com/chrfalch/NControl/pull/51

promise I will merge it quickly since its a simple fix.

Could you make new release with #64 merged, please? It seems that commit fixes this issue. And this issue is critical.

Pull Request #64 merged.


Benchmark code?

Could you please also upload the code you are using for the benchmark so I can test it on my hardware? Thanks

I moved benchmarks into dedicated repository:
https://github.com/plandem/xlsx-benchmarks


Get commit messages in the codecommit/repository parser

Everything works as expected but it would be even greater to be able to add the commit message itself to the slack card.
Not so much an issue but rather a feature request.

Doesn't look like the commit message is in the cloudwatch event message so bit of a no-go I guess.
Could it be loaded from the detail.commitid and commit.repositoryid ?

Amazon had some sample code (which I've modified quite a bit) that demonstrates how to pull this info. It's not trivial as you have to go looking for it in CodeCommit vs just pulling it off the notification.
`
Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: MIT-0
import boto3
import os
import json
import pprint
import datetime
Define the environment variables for repository branch name and region
REGION = os.getenv('AWS_REGION')
#MAIN_BRANCH_NAME = os.getenv('MAIN_BRANCH_NAME')
#REPOSITORY_NAME = os.getenv('REPOSITORY_NAME')
codecommit = boto3.client('codecommit')
def publish(repository, message):
SNSTopicArn = os.getenv('SNS_TOPIC_ARN')
SNSClient = boto3.client('sns', region_name=REGION)
SNSClient.publish(
TopicArn=SNSTopicArn,
Subject = 'CodeCommit Update - Repository: {0}'.format(repository),
Message = message
)
def getFileDifferences(repository_name, lastCommitID, previousCommitID):
response = None
if previousCommitID != None:
    response = codecommit.get_differences(
        repositoryName=repository_name,
        beforeCommitSpecifier=previousCommitID,
        afterCommitSpecifier=lastCommitID
    )
else:
    # The case of getting initial commit (Without beforeCommitSpecifier)
    response = codecommit.get_differences(
        repositoryName=repository_name,
        afterCommitSpecifier=lastCommitID
    )

differences = []

if response == None:
    return differences

while "nextToken" in response:
    response = codecommit.get_differences(
        repositoryName=repository_name,
        beforeCommitSpecifier=previousCommitID,
        afterCommitSpecifier=lastCommitID,
        nextToken=response["nextToken"]
    )
    differences += response.get("differences", [])
else:
    differences += response["differences"]

return differences

def getDiffChangeTypeMessage(changeType):
type = {
'M': 'Modification',
'D': 'Deletion',
'A': 'Addition'
}
return type[changeType]
def getLastCommitID(repository, branch="master"):
response = codecommit.get_branch(
repositoryName=repository,
branchName=branch
)
commitId = response['branch']['commitId']
return commitId
def getLastCommitLog(repository, commitId):
response = codecommit.get_commit(
repositoryName=repository,
commitId=commitId
)
return response['commit']
def getMessageText(differences, lastCommit):
text = ''
text += 'Commit ID: {0}\n'.format(lastCommit['commitId'])
text += 'Author: {0} ({1}) - {2} UTC\n'.format(lastCommit['author']['name'], lastCommit['author']['email'], datetime.datetime.fromtimestamp(float(lastCommit['author']['date'].split(' ')[0])).strftime("%Y-%m-%d %I:%M:%S %p"))
text += 'Message:\n{0}\n\n'.format(lastCommit['message'])
for diff in differences:
if 'afterBlob' in diff:
text += '{0} {1}\n'.format(diff['changeType'], diff['afterBlob']['path'])
#text += '{0} {1} - Blob ID: {2}\n'.format(diff['changeType'], diff['afterBlob']['path'], diff['afterBlob']['blobId'])
#if 'beforeBlob' in diff:
#    text += '{0} {1} - Blob ID: {2}\n'.format(diff['changeType'], diff['beforeBlob']['path'], diff['beforeBlob']['blobId'])
return text

def lambda_handler(event, context):
#print json.dumps(event, indent=3)
repository = event['detail']['repositoryName']
branch = "(unknown)"
if event['detail']['referenceType'] == "branch":
branch = event['detail']['referenceName']
else:
return
print('Notify for change on {0}:{1} by {2}'.format(repository, branch, event['detail']['callerUserArn'].split(':')[5].split('/')[1]))

try:
    lastCommitID = getLastCommitID(repository, branch)
    lastCommit = getLastCommitLog(repository, lastCommitID)

    previousCommitID = None
    if len(lastCommit['parents']) > 0:
        previousCommitID = lastCommit['parents'][0]

    print('lastCommitID: {0} previousCommitID: {1}'.format(lastCommitID, previousCommitID))

    differences = getFileDifferences(repository, lastCommitID, previousCommitID)
    messageText =  'Repository: {0}\n'.format(repository)
    messageText += 'Branch: {0}\n'.format(branch)
    messageText += getMessageText(differences, lastCommit)

    return publish(repository, messageText)

except Exception as e:
    print(e)
    print('Error getting repository {}. Make sure it exists and that your repository is in the same region as this function.'.format(repository))
    raise e

`

Sorry about the formatting.... not sure how to get code to display properly in this editor,

use triple backticks to format multi-line code blocks
    ```
    code
    ```

Thanks!
Note: the code I copied is used to push a notification to SNS but you can edit as required.

Yeah, it's also python, where this project uses javascript. Wouldn't really be all that difficult to add, I don't think. I can see the value for sure. While I contributed the codecommit parser, I just don't have time to investigate this at the moment. So I'd say dive in and submit a PR! :D

Yeah - I know it's different language but figured it might help someone as a reference if they're looking to move on it since it will take me a while to find the time to code it up. =)

thks for pointing me in the right direction. might give it a try if I find the time.

@lorengordon if you have 2 seconds to check out my pull request ? I'm getting an error that I don't understand and you must have a lot more experience than me in using nodejs with lambda.

@elChapoSing Unfortunately my experience is mostly superficial. I can copy/paste with the best of them, but Node/JavaScript is a near total mystery to me. So, mostly just guessing here, but this project has moved to the new async methods available in nodejs 8.10, so maybe the promise approach in your patch is not compatible. If it works locally, I'd suspect a delta in the pkgs in your working environment vs the pkgs listed as dependencies in this project...

solved by PR#53

Amazon had some sample code (which I've modified quite a bit) that demonstrates how to pull this info. It's not trivial as you have to go looking for it in CodeCommit vs just pulling it off the notification.
# Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0

import boto3
import os
import json
import pprint
import datetime

# Define the environment variables for repository branch name and region
REGION = os.getenv('AWS_REGION')
#MAIN_BRANCH_NAME = os.getenv('MAIN_BRANCH_NAME')
#REPOSITORY_NAME = os.getenv('REPOSITORY_NAME')

codecommit = boto3.client('codecommit')

def publish(repository, message):
  SNSTopicArn = os.getenv('SNS_TOPIC_ARN')
  SNSClient = boto3.client('sns', region_name=REGION)
  SNSClient.publish(
      TopicArn=SNSTopicArn,
      Subject = 'CodeCommit Update - Repository: {0}'.format(repository),
      Message = message
  )

def getFileDifferences(repository_name, lastCommitID, previousCommitID):
    response = None

    if previousCommitID != None:
        response = codecommit.get_differences(
            repositoryName=repository_name,
            beforeCommitSpecifier=previousCommitID,
            afterCommitSpecifier=lastCommitID
        )
    else:
        # The case of getting initial commit (Without beforeCommitSpecifier)
        response = codecommit.get_differences(
            repositoryName=repository_name,
            afterCommitSpecifier=lastCommitID
        )

    differences = []

    if response == None:
        return differences

    while "nextToken" in response:
        response = codecommit.get_differences(
            repositoryName=repository_name,
            beforeCommitSpecifier=previousCommitID,
            afterCommitSpecifier=lastCommitID,
            nextToken=response["nextToken"]
        )
        differences += response.get("differences", [])
    else:
        differences += response["differences"]

    return differences

def getDiffChangeTypeMessage(changeType):
    type = {
        'M': 'Modification',
        'D': 'Deletion',
        'A': 'Addition'
    }
    return type[changeType]

def getLastCommitID(repository, branch="master"):
    response = codecommit.get_branch(
        repositoryName=repository,
        branchName=branch
    )
    commitId = response['branch']['commitId']
    return commitId

def getLastCommitLog(repository, commitId):
    response = codecommit.get_commit(
        repositoryName=repository,
        commitId=commitId
    )
    return response['commit']

def getMessageText(differences, lastCommit):
    text = ''
    text += 'Commit ID: {0}\n'.format(lastCommit['commitId'])
    text += 'Author: {0} ({1}) - {2} UTC\n'.format(lastCommit['author']['name'], lastCommit['author']['email'], datetime.datetime.fromtimestamp(float(lastCommit['author']['date'].split(' ')[0])).strftime("%Y-%m-%d %I:%M:%S %p"))
    text += 'Message:\n{0}\n\n'.format(lastCommit['message'])
    for diff in differences:
        if 'afterBlob' in diff:
            text += '{0} {1}\n'.format(diff['changeType'], diff['afterBlob']['path'])
            #text += '{0} {1} - Blob ID: {2}\n'.format(diff['changeType'], diff['afterBlob']['path'], diff['afterBlob']['blobId'])
        #if 'beforeBlob' in diff:
        #    text += '{0} {1} - Blob ID: {2}\n'.format(diff['changeType'], diff['beforeBlob']['path'], diff['beforeBlob']['blobId'])

    return text

def lambda_handler(event, context):
    #print json.dumps(event, indent=3)
    repository = event['detail']['repositoryName']
    branch = "(unknown)"
    if event['detail']['referenceType'] == "branch":
        branch = event['detail']['referenceName']
    else:
        return

    print('Notify for change on {0}:{1} by {2}'.format(repository, branch, event['detail']['callerUserArn'].split(':')[5].split('/')[1]))

    try:
        lastCommitID = getLastCommitID(repository, branch)
        lastCommit = getLastCommitLog(repository, lastCommitID)

        previousCommitID = None
        if len(lastCommit['parents']) > 0:
            previousCommitID = lastCommit['parents'][0]

        print('lastCommitID: {0} previousCommitID: {1}'.format(lastCommitID, previousCommitID))

        differences = getFileDifferences(repository, lastCommitID, previousCommitID)
        messageText =  'Repository: {0}\n'.format(repository)
        messageText += 'Branch: {0}\n'.format(branch)
        messageText += getMessageText(differences, lastCommit)

        return publish(repository, messageText)

    except Exception as e:
        print(e)
        print('Error getting repository {}. Make sure it exists and that your repository is in the same region as this function.'.format(repository))
        raise e

Hi
I need to get the file to which the last commit was done
How to do that?


User "Redux.dispatch" where is using "Redux.shared.store.dispatch"

For better code, use the project patern for redux in darch/lib/utils.

darch/src/toaster/reducer.js


Alter the internal codebase to using R6 object class

Due to the nature of the Google Slides API - it may contain large amounts of nesting, it might actually be good to explore using classes to express the data structure. The current methodology might actually impose a tax on maintainence as there is need to read and understand the lists that are being passed around in the package internals.
Internally, the package will pass around classes of such objects. However, the package will still expose functions as that is the easiest for a user to make sense of how to use the package.
More information on this will be added on a later date

Refer to the following working branch:
https://github.com/sparklineanalytics/rgoogleslides/tree/oo-requests

Rather than putting all the functions to manipulate the slides into a single class, we could use the best of both worlds:

Documentation of details within the class is not readily available and requires a lot more work to maintain
Users of the package would be unfamiliar with the concept of objects and might be the deterred from using the package due to that

Might go for the in-between solution?

Use functions to allow user to declare changes that they want to sent to slides
Create a request class to carry the requests around

Changes have been made and will be merged with the master branch


Add hostname to timeout exception message.

This will make it easier to debug which host is the problem.

Good idea.


JSpecify and restrictive annotations

According to the JSpecify spec, a @Nullable annotation should be acknowledged even if it appears in unannotated (unmarked) code.  See the spec and also https://github.com/jspecify/jspecify/issues/235.  This treatment corresponds roughly to NullAway's AcknowledgeRestrictiveAnnotations setting, which is off by default.  If we want to be compatible with the JSpecify spec on this point out of the box, we need to default AcknowledgeRestrictiveAnnotations to true.  But, this could lead to many unexpected (and possible undesirable?) new warnings after a NullAway upgrade.  Alternately, we could add a new flag (sigh) like JSpecifyStrict, and then have JSpecifyStrict imply AcknowledgeRestrictiveAnnotations.  We might need a new JSpecify-related flag anyway for handling of other features (like arrays).
@lazaroclapp thoughts?
(Side note: I think the current docs for AcknowledgeRestrictiveAnnotations are a bit wrong, in that AcknowledgeRestrictiveAnnotations impacts treatment of any unannotated code, whether present as bytecode or source.)

Actually just found another potential issue regarding fields.  Even with AcknowledgeRestrictiveAnnotations enabled, I don't think we will acknowledge a @Nullable annotation on a field in unmarked code, based on the code below:
https://github.com/uber/NullAway/blob/243f5121e38b53d2dcebf8481cdc5c8eef1d5537/nullaway/src/main/java/com/uber/nullaway/NullabilityUtil.java#L312-L319
I feel like we should be acknowledging such annotations when AcknowledgeRestrictiveAnnotations is on; so this may be just a bug.

So, the code in mayBeNullFieldFromType(...) is perfectly fine, since that's just nullability before calling handler.onOverrideMayBeNullExpr(...).
See
https://github.com/uber/NullAway/blob/a5f56d368676754b25b60782d43ba8f88aeb000c/nullaway/src/main/java/com/uber/nullaway/NullAway.java#L2252-L2255
The issue here is that RestrictiveAnnotationHandler is only providing additional nullability info for methods, not fields:
https://github.com/uber/NullAway/blob/a5f56d368676754b25b60782d43ba8f88aeb000c/nullaway/src/main/java/com/uber/nullaway/handlers/RestrictiveAnnotationHandler.java#L51-L68
This was mostly reasonable before partially annotated code, as generally speaking we want the API of a library to be method calls, not direct field accesses, but definitely breaks in the face of partially-annotated compilation units. Will work on a fix, separate from PR #651, though, since it's changing something a bit more general. Documenting it on the test cases there, though.
For the general question:

If we want to be compatible with the JSpecify spec on this point out of the box, we need to default AcknowledgeRestrictiveAnnotations to true. But, this could lead to many unexpected (and possible undesirable?) new warnings after a NullAway upgrade.

One issue here is that NullAway treats all @Nullable annotations the same, so we would immediately apply JSpecify semantics to javax and android @Nullable too... might be worth thinking if we want to hack RestrictiveAnnotationHandler to have a default mode where if the config flag is not explicitly set to either true or false, it honors org.jspecify.nullness.Nullable, but otherwise behaves as RestrictiveAnnotationHandler=false.

One issue here is that NullAway treats all @Nullable annotations the same, so we would immediately apply JSpecify semantics to javax and android @Nullable too... might be worth thinking if we want to hack RestrictiveAnnotationHandler to have a default mode where if the config flag is not explicitly set to either true or false, it honors org.jspecify.nullness.Nullable, but otherwise behaves as RestrictiveAnnotationHandler=false.

This is a great point and a great idea.  I like the idea of eventually acknowledging org.jspecify.nullness.Nullable in @NullUnmarked code always, but not other nullability annotations unless AcknowledgeRestrictiveAnnotations is set to true.  I don't even think we need to worry about doing something different for an explicit AcknowledgeRestrictiveAnnotations=false, unless we see a real need for that.


There is not much documentation about with javasccript for middleare edge nextjs 12

Yeah, having a hard time figuring out how these are supposed to be used as well.
Can't reason about how to add a header to a page response. The example has a completely empty response being returned. Instead, I want to add a header to every page's response...

Are you saying you want plain JavaScript and not TypeScript?

Can't reason about how to add a header to a page response.

Did you see this? You can return right here with the null to just add headers to the response: https://github.com/vercel/examples/blob/main/edge-functions/add-header/pages/_middleware.ts#L13

@mmmeff You can do it like this:
import { NextResponse } from "next/server"

export default function myMiddleware(req) {
  const res = NextResponse.next()
  res.headers.append('x-custom-1', 'ok')
  return res
}

.next() adds a custom header to the response which will ensure it is not returned immediately to the client (but pages/api will be executed).

@leerob For me, yes I want to know if I can use Javascript instead of Typescript?
And is there any examples for it?

Yes, you can use JavaScript instead of TypeScript. TS is a superset of JS, so you can just remove the typings and TS specific code on any example.

We will be continuing to make examples in TypeScript, since you can remove the typings to get JavaScript, versus the inverse where you might not understand how to correctly type the code.

@leerob thanks for your quick reply!


Update style lint to v15

Description
79 - This PR updates style lint in the build tools to v15
It also updates stylelint-scss to 5.3.2 and stylelint-webpack-plugin to 4.1.1 as part of this change.
Change Log

Updates stylelint to v15.0.0
Updates stylelint-scss to v5.3.2
Updates stylelint-webpack-plugin to v4.1.1
Removes the following rules from the stylelint config as they are now deprecated:

value-list-comma-newline-after
value-list-comma-space-after
value-list-comma-space-before
declaration-bang-space-after
declaration-bang-space-before
declaration-block-semicolon-newline-after
declaration-block-semicolon-space-after
declaration-block-semicolon-space-before
function-comma-newline-after
function-comma-space-after
function-comma-space-before
function-parentheses-newline-inside
function-parentheses-space-inside
function-whitespace-after
number-leading-zero
number-no-trailing-zeros
string-quotes
color-hex-case
declaration-colon-space-after
declaration-colon-space-before
block-closing-brace-newline-after
block-closing-brace-newline-before
block-closing-brace-space-before
block-opening-brace-newline-after
block-opening-brace-space-after
block-opening-brace-space-before
selector-combinator-space-after
selector-combinator-space-before
selector-list-comma-space-before
declaration-block-trailing-semicolon
media-feature-colon-space-after
media-feature-colon-space-before
media-feature-range-operator-space-after
media-feature-range-operator-space-before
media-query-list-comma-newline-after
media-query-list-comma-space-after
media-query-list-comma-space-before
media-feature-parentheses-space-inside
indentation
max-empty-lines
no-missing-end-of-source-newline

@jordanharris-6 @ampersarnie Since version 14, Stylelint no longer parses CSS-like languages which means it no longer plays nicely with inline SCSS comments (//).  E.g, I'm getting these errors when running the build tools of the main branch on the bigbitev3 theme:
ERROR in [stylelint]
themes/bigbitev3/src/styles/shared/index.scss
 5:1  ✖  Unknown word  CssSyntaxError

themes/bigbitev3/src/styles/shared/big-bite/_footer.scss
 142:25  ✖  Unclosed string  CssSyntaxError

themes/bigbitev3/src/styles/shared/core/_wp-block-navigation.scss
 38:6  ✖  Unknown word  CssSyntaxError

themes/bigbitev3/src/styles/shared/core/_wp-block-post-author.scss
 36:81  ✖  Unclosed string  CssSyntaxError

The version 14 migration guide recommends we use stylelint-config-standard-scss shared config.  Should we follow the version 14 migration guide or should we ban // comments going forward?
Also I've noticed we haven't created a release for this work.  Should the release be a minor version update since I'm not getting these issues on 1.3.1 (the current latest version of the plugin)?

Created a PR for the above: https://github.com/bigbite/build-tools/pull/121.