Unable to use KubeCTL with Google Cloud CLI: gke-gcloud-auth-plugin is not installed

Description
During the last few days, suddenly all pipelines started to fail when trying to run kubectl commands. The error that was thrown is the following:
CRITICAL: ACTION REQUIRED: gke-gcloud-auth-plugin, which is needed for continued use of kubectl, was not found or is not executable. Install gke-gcloud-auth-plugin for use with kubectl by following https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke
kubeconfig entry generated for q-machine-dev.
error: The gcp auth plugin has been removed.
Please use the "gke-gcloud-auth-plugin" kubectl/client-go credential plugin instead.
See https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke for further details

Running the solutions listed in the linked article do not work.

gcloud components install gke-gcloud-auth-plugin fails with the following error: You cannot perform this action because the Google Cloud CLI component manager is disabled for this installation.
sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin fails with the package not being found

Current workaround is to run the following before running any kubectl commands:
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
sudo apt update
sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin kubectl
export USE_GKE_GCLOUD_AUTH_PLUGIN=True

Platforms affected

[X] Azure DevOps
[x] GitHub Actions - Standard Runners
[ ] GitHub Actions - Larger Runners

Runner images affected

[ ] Ubuntu 18.04
[X] Ubuntu 20.04
[X] Ubuntu 22.04
[ ] macOS 11
[ ] macOS 12
[ ] Windows Server 2019
[ ] Windows Server 2022

Image version and build link
from the downloaded logs:
Image: ubuntu-22.04
Version: 20221212.1
Included Software: https://github.com/actions/runner-images/blob/ubuntu22/20221212.1/images/linux/Ubuntu2204-Readme.md
Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu22%2F20221212.1
Is it regression?
Yes, Image: ubuntu-22.04, Version: 20221204.2
Expected behavior
Running kubectl should work using the gke-google-auth-plugin.
Actual behavior
Fails because of the gke-google-auth-plugin not being installed.
Repro steps

Create a google project with a kubernetes cluster
Create a service account named azure-devops-service-account with access to it and generate a key json file
Create a new ubuntu-latest pipeline with a bash step:

     - task: Bash@3
      inputs:
        targetType: 'inline'
        script: |
          export USE_GKE_GCLOUD_AUTH_PLUGIN=True
          gcloud auth activate-service-account<EMAIL_ADDRESS>\
          --key-file <(echo $(GOOGLE_CLOUD_SERVICE_ACCOUNT_JSON)  | base64 -d)
          (echo $(GOOGLE_CLOUD_SERVICE_ACCOUNT_JSON) | base64 -d) > $HOME/.config/gcloud/application_default_credentials.json
          gcloud container clusters get-credentials --zone "europe-west3" "YOUR_KUBERNETES_CLUSTER_NAME" --project=YOUR_GOOGLE_CLOUD_PROJECT_NAME
          kubctl get pods

Create a secret with the name GOOGLE_CLOUD_SERVICE_ACCOUNT_JSON with the content of the service account mentioned earlier.
Try to run the pipeline

Hi @chingucoding, can you try this as a workaround
jobs:
 windows:
    runs-on: ubuntu-latest
    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v3
      # Runs a set of commands using the runners shell
      - name: Run a test
        run: |
         gcloud components list
         echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
         curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
         sudo apt update
         sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin
         echo "##vso[task.setvariable variable=USE_GKE_GCLOUD_AUTH_PLUGIN]True"
         gcloud components list

This is my results

While it shows the plugin being present, it seems kubectl does not really care about that:
2022-12-15T17:54:55.6740412Z ##[section]Starting: Bash
2022-12-15T17:54:55.6748217Z ==============================================================================
2022-12-15T17:54:55.6748500Z Task         : Bash
2022-12-15T17:54:55.6748720Z Description  : Run a Bash script on macOS, Linux, or Windows
2022-12-15T17:54:55.6748944Z Version      : 3.201.1
2022-12-15T17:54:55.6749129Z Author       : Microsoft Corporation
2022-12-15T17:54:55.6749407Z Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/bash
2022-12-15T17:54:55.6749720Z ==============================================================================
2022-12-15T17:54:55.9801765Z Generating script.
2022-12-15T17:54:55.9805288Z ========================== Starting Command Output ===========================
2022-12-15T17:54:55.9814227Z [command]/usr/bin/bash /home/vsts/work/_temp/b6af3558-e3b3-42e9-9be6-274076cff3a3.sh
2022-12-15T17:55:02.4875795Z
2022-12-15T17:55:02.4878505Z Your current Google Cloud CLI version is: 411.0.0
2022-12-15T17:55:02.4880104Z The latest available version is: 412.0.0
2022-12-15T17:55:02.4881576Z
2022-12-15T17:55:02.5331919Z ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
2022-12-15T17:55:02.5336549Z │                                                   Components                                                  │
2022-12-15T17:55:02.5337028Z ├──────────────────┬──────────────────────────────────────────────────────┬──────────────────────────┬──────────┤
2022-12-15T17:55:02.5337448Z │      Status      │                         Name                         │            ID            │   Size   │
2022-12-15T17:55:02.5337913Z ├──────────────────┼──────────────────────────────────────────────────────┼──────────────────────────┼──────────┤
2022-12-15T17:55:02.5338582Z │ Update Available │ Google Cloud CLI Core Libraries                      │ core                     │ 25.9 MiB │
2022-12-15T17:55:02.5339091Z │ Update Available │ gcloud Alpha Commands                                │ alpha                    │  < 1 MiB │
2022-12-15T17:55:02.5339608Z │ Update Available │ gcloud Beta Commands                                 │ beta                     │  < 1 MiB │
2022-12-15T17:55:02.5340112Z │ Not Installed    │ App Engine Go Extensions                             │ app-engine-go            │  4.2 MiB │
2022-12-15T17:55:02.5340593Z │ Not Installed    │ Appctl                                               │ appctl                   │ 21.0 MiB │
2022-12-15T17:55:02.5341098Z │ Not Installed    │ Artifact Registry Go Module Package Helper           │ package-go-module        │  < 1 MiB │
2022-12-15T17:55:02.5341623Z │ Not Installed    │ Cloud Bigtable Command Line Tool                     │ cbt                      │ 10.4 MiB │
2022-12-15T17:55:02.5342141Z │ Not Installed    │ Cloud Bigtable Emulator                              │ bigtable                 │  6.7 MiB │
2022-12-15T17:55:02.5342634Z │ Not Installed    │ Cloud Datalab Command Line Tool                      │ datalab                  │  < 1 MiB │
2022-12-15T17:55:02.5343311Z │ Not Installed    │ Cloud Datastore Emulator                             │ cloud-datastore-emulator │ 35.1 MiB │
2022-12-15T17:55:02.5343849Z │ Not Installed    │ Cloud Firestore Emulator                             │ cloud-firestore-emulator │ 40.2 MiB │
2022-12-15T17:55:02.5344364Z │ Not Installed    │ Cloud Pub/Sub Emulator                               │ pubsub-emulator          │ 62.4 MiB │
2022-12-15T17:55:02.5344870Z │ Not Installed    │ Cloud Run Proxy                                      │ cloud-run-proxy          │  9.0 MiB │
2022-12-15T17:55:02.5345367Z │ Not Installed    │ Cloud SQL Proxy                                      │ cloud_sql_proxy          │  7.8 MiB │
2022-12-15T17:55:02.5346099Z │ Not Installed    │ Cloud Spanner Emulator                               │ cloud-spanner-emulator   │ 28.7 MiB │
2022-12-15T17:55:02.5346620Z │ Not Installed    │ Cloud Spanner Migration Tool                         │ harbourbridge            │ 18.1 MiB │
2022-12-15T17:55:02.5347330Z │ Not Installed    │ Google Container Registry's Docker credential helper │ docker-credential-gcr    │  1.8 MiB │
2022-12-15T17:55:02.5347851Z │ Not Installed    │ Kustomize                                            │ kustomize                │  4.3 MiB │
2022-12-15T17:55:02.5348325Z │ Not Installed    │ Log Streaming                                        │ log-streaming            │ 13.9 MiB │
2022-12-15T17:55:02.5348803Z │ Not Installed    │ Minikube                                             │ minikube                 │ 31.5 MiB │
2022-12-15T17:55:02.5349270Z │ Not Installed    │ Nomos CLI                                            │ nomos                    │ 25.2 MiB │
2022-12-15T17:55:02.5349791Z │ Not Installed    │ On-Demand Scanning API extraction helper             │ local-extract            │ 13.4 MiB │
2022-12-15T17:55:02.5350281Z │ Not Installed    │ Skaffold                                             │ skaffold                 │ 20.1 MiB │
2022-12-15T17:55:02.5350777Z │ Not Installed    │ Terraform Tools                                      │ terraform-tools          │ 53.3 MiB │
2022-12-15T17:55:02.5351268Z │ Not Installed    │ anthos-auth                                          │ anthos-auth              │ 20.4 MiB │
2022-12-15T17:55:02.5351748Z │ Not Installed    │ config-connector                                     │ config-connector         │ 56.7 MiB │
2022-12-15T17:55:02.5352257Z │ Not Installed    │ gcloud app Java Extensions                           │ app-engine-java          │ 63.9 MiB │
2022-12-15T17:55:02.5352786Z │ Not Installed    │ gcloud app Python Extensions                         │ app-engine-python        │  8.6 MiB │
2022-12-15T17:55:02.5353349Z │ Not Installed    │ gcloud app Python Extensions (Extra Libraries)       │ app-engine-python-extras │ 26.4 MiB │
2022-12-15T17:55:02.5353924Z │ Not Installed    │ gke-gcloud-auth-plugin                               │ gke-gcloud-auth-plugin   │  7.6 MiB │
2022-12-15T17:55:02.5354419Z │ Not Installed    │ kpt                                                  │ kpt                      │ 12.3 MiB │
2022-12-15T17:55:02.5354891Z │ Not Installed    │ kubectl                                              │ kubectl                  │  < 1 MiB │
2022-12-15T17:55:02.5355348Z │ Not Installed    │ kubectl-oidc                                         │ kubectl-oidc             │ 20.4 MiB │
2022-12-15T17:55:02.5355807Z │ Not Installed    │ pkg                                                  │ pkg                      │          │
2022-12-15T17:55:02.5356267Z │ Installed        │ BigQuery Command Line Tool                           │ bq                       │  1.6 MiB │
2022-12-15T17:55:02.5356770Z │ Installed        │ Bundled Python 3.9                                   │ bundled-python3-unix     │ 62.2 MiB │
2022-12-15T17:55:02.5357341Z │ Installed        │ Cloud Storage Command Line Tool                      │ gsutil                   │ 15.5 MiB │
2022-12-15T17:55:02.5357852Z │ Installed        │ Google Cloud CRC32C Hash Tool                        │ gcloud-crc32c            │  1.2 MiB │
2022-12-15T17:55:02.5358438Z └──────────────────┴──────────────────────────────────────────────────────┴──────────────────────────┴──────────┘
2022-12-15T17:55:02.5358777Z To install or remove components at your current SDK version [411.0.0], run:
2022-12-15T17:55:02.5359134Z   $ gcloud components install COMPONENT_ID
2022-12-15T17:55:02.5359445Z   $ gcloud components remove COMPONENT_ID
2022-12-15T17:55:02.5359581Z
2022-12-15T17:55:02.5359872Z To update your SDK installation to the latest version [412.0.0], run:
2022-12-15T17:55:02.5360187Z   $ gcloud components update
2022-12-15T17:55:02.5360317Z
2022-12-15T17:55:02.6168095Z deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main
2022-12-15T17:55:02.6248701Z   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
2022-12-15T17:55:02.6249374Z                                  Dload  Upload   Total   Spent    Left  Speed
2022-12-15T17:55:02.6249705Z
2022-12-15T17:55:02.7526810Z   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
2022-12-15T17:55:02.8028067Z
2022-12-15T17:55:02.8029905Z 100  2426  100  2426    0     0  13697      0 --:--:-- --:--:-- --:--:-- 13706
2022-12-15T17:55:02.8378752Z OK
2022-12-15T17:55:02.8858447Z
2022-12-15T17:55:02.8861288Z WARNING: apt does not have a stable CLI interface.
I had builds work as expected when they ran on runner-image version 20221204.2 recently.
But all builds that ran in the version 20221212.1 failed with kubectl complaining about not finding the gke-gcloud-auth-plugin.

Hi @Jonathas-Conceicao @chingucoding , after some investigation I found out that issue started when they updated Google Cloud CLI to 4.11 on December 6th which was introduced to this image 20221204.2 also.
Additionally I found out when we install auth plug-in google-cloud-sdk-gke-gcloud-auth-plugin version is  (412.0.0-0) it has newest version and google-cloud-sdk on image is 411, which probably causing issue in this case. Please update google-cloud-sdk as well google-cloud-sdk-gke-gcloud-auth-plugin version (412.0.0-0), here is a code
jobs:
 windows:
    runs-on: ubuntu-latest
    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v3
      # Runs a set of commands using the runners shell
      - name: Run a test
        run: |
         gcloud components list
         echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
         curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
         sudo apt update
         sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin
         echo "##vso[task.setvariable variable=USE_GKE_GCLOUD_AUTH_PLUGIN]True"
         gcloud components list
         sudo apt-get update && sudo apt-get --only-upgrade install google-cloud-sdk-app-engine-python-extras google-cloud-sdk-datalab google-cloud-sdk-config-connector google-cloud-sdk-harbourbridge google-cloud-sdk-app-engine-java google-cloud-sdk google-cloud-sdk-spanner-emulator google-cloud-sdk-package-go-module google-cloud-sdk-skaffold kubectl google-cloud-sdk-terraform-tools google-cloud-sdk-kubectl-oidc google-cloud-sdk-cbt google-cloud-sdk-log-streaming google-cloud-sdk-local-extract google-cloud-sdk-pubsub-emulator google-cloud-sdk-app-engine-grpc google-cloud-sdk-app-engine-python google-cloud-sdk-app-engine-go google-cloud-sdk-anthos-auth google-cloud-sdk-nomos google-cloud-sdk-cloud-run-proxy google-cloud-sdk-firestore-emulator google-cloud-sdk-gke-gcloud-auth-plugin google-cloud-sdk-cloud-build-local google-cloud-sdk-minikube google-cloud-sdk-kpt google-cloud-sdk-bigtable-emulator google-cloud-sdk-datastore-emulator
         gcloud components list

Thank you for your help @igorboskovic3 Unfortunately, it seems that this also does not fix the issues: https://gist.github.com/chingucoding/3fad3f720bc57b73a62d0ddce3f2a017
It's quite strange that the gcloud CLI lists the auth plugin, yet it claims it is not installed. Could it be that we should uninstall the gcloud CLI before we do the upgrade?

@chingucoding
Our Bitbucket pipelines started failing & I saw exact same errors you have mentioned. Our Pipelines are using google/cloud-sdk:latest so the solution is to replace "google/cloud-sdk:latest" with "google/cloud-sdk:debian_component_based" & then use "gcloud components install gke-gcloud-auth-plugin". Errors will resolve as they did for our pipelines.
- gcloud auth activate-service-account<EMAIL_ADDRESS>- gcloud components install gke-gcloud-auth-plugin
- gke-gcloud-auth-plugin --version
- export USE_GKE_GCLOUD_AUTH_PLUGIN=True
- gcloud container clusters get-credentials ....

I have tried the workarounds listed here but they do not work.
I'm using "ubuntu-latest" on my runner(s) -- so that's 22.04
I've even tried removing the apt versions of gcloud and installing the binary tarball directly, into /opt/gcloud/google-cloud-sdk/bin, and adding that to GITHUB_PATH, but this also fails with the same error, "error: The gcp auth plugin has been removed. Please use the "gke-gcloud-auth-plugin" kubectl/client-go credential plugin instead."
There's something seriously wrong with the GHA ubuntu images as far as the GKE auth plugin goes.

One more followup: I tested changing the runner to use Ubutnu 18.04 -- and it works. The only step that needs to run is the installation of the gcloud auth plugin -- sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin
The 18.04 runner has gcloud v406 installed
The plugin installation step installs v412 of the plugin.
Unpacking google-cloud-sdk-gke-gcloud-auth-plugin (412.0.0-0) ...
Setting up google-cloud-sdk-gke-gcloud-auth-plugin (412.0.0-0) ...

Something broke between gcloud 411 and 412 on ubuntu 20.04 and 22.04

I find that despite the plugin being installed, kubectl will not try and use it until you set the environment variable USE_GKE_GCLOUD_AUTH_PLUGIN=True

I find that despite the plugin being installed, kubectl will not try and use it until you set the environment variable USE_GKE_GCLOUD_AUTH_PLUGIN=True

I've exported USE_GKE_GCLOUD_AUTH_PLUGIN="True" but problem is the same.

I just ran into this before. The fix is to also install kubectl, replacing/upgrading the existing version on the runners I guess?
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
sudo apt update
sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin kubectl
export USE_GKE_GCLOUD_AUTH_PLUGIN=True
gcloud container clusters get-credentials ${{ inputs.cluster }} --region ${{ inputs.zone }}

I can confirm that @acook-vhs's, @oladhari's and @dantheperson's solution work. The following snippet seems to work on Ubuntu 22.04:
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
sudo apt update
sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin kubectl
export USE_GKE_GCLOUD_AUTH_PLUGIN=True

gcloud auth activate-service-account<EMAIL_ADDRESS>\
          --key-file <(echo $(GOOGLE_CLOUD_SERVICE_ACCOUNT_JSON)  | base64 -d)
(echo $(GOOGLE_CLOUD_SERVICE_ACCOUNT_JSON) | base64 -d) > $HOME/.config/gcloud/application_default_credentials.json
gcloud container clusters get-credentials --zone "europe-west3" "YOUR_KUBERNETES_CLUSTER_NAME" --project=YOUR_GOOGLE_CLOUD_PROJECT_NAME
kubctl get pods

I can also confirm this solution.
Just ensure that USE_GKE_GCLOUD_AUTH_PLUGIN=True is exported to the shell env before running kubectl commands.
I was able to get this to work on ubuntu-latest runner (which is 22.04 currently)

Thanks everyone for contribution.

I can confirm that @acook-vhs's, @oladhari's and @dantheperson's solution work. The following snippet seems to work on Ubuntu 22.04:
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
sudo apt update
sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin kubectl
export USE_GKE_GCLOUD_AUTH_PLUGIN=True

gcloud auth activate-service-account<EMAIL_ADDRESS>\
          --key-file <(echo $(GOOGLE_CLOUD_SERVICE_ACCOUNT_JSON)  | base64 -d)
(echo $(GOOGLE_CLOUD_SERVICE_ACCOUNT_JSON) | base64 -d) > $HOME/.config/gcloud/application_default_credentials.json
gcloud container clusters get-credentials --zone "europe-west3" "YOUR_KUBERNETES_CLUSTER_NAME" --project=YOUR_GOOGLE_CLOUD_PROJECT_NAME
kubctl get pods

kubctl get pods
This one has a typo. It should be kubectl get pods
Thanks for the help @chingucoding !

@igorboskovic3
sudo gcloud container clusters get-credentials --zone "europe-west3" "YOUR_KUBERNETES_CLUSTER_NAME" --project=YOUR_GOOGLE_CLOUD_PROJECT_NAME
and
gcloud container clusters get-credentials --zone "europe-west3" "YOUR_KUBERNETES_CLUSTER_NAME" --project=YOUR_GOOGLE_CLOUD_PROJECT_NAME
Are resolving the same situation in 2 different ways.

sudo one isn't using the new GKE gcloud plugin even if you export USE_GKE_GCLOUD_AUTH_PLUGIN=True.
without sudo it works

I would like to clarify for people coming here from google - the command you want ahead of any gcloud commands is export USE_GKE_GCLOUD_AUTH_PLUGIN=True.  It wasn't clear from above answers that the export is used IMO

The solution that worked for me is :
export USE_GKE_GCLOUD_AUTH_PLUGIN=True
gcloud components install gke-gcloud-auth-plugin
Do follow this order.

Thanks for your inputs @tnovau and @hugadams, I've updated my comment and the issue accordingly to also show the solution right at the top of the issue and indicate that the export is important.

I have a bit (I think) different issue. I was able to run command gcloud container clusters get-credentials --zone "europe-west3" "YOUR_KUBERNETES_CLUSTER_NAME" --project=YOUR_GOOGLE_CLOUD_PROJECT_NAME and now it shows correctly the name of the cluster kubectl config current-context but when I try to execute other commands such as kubectl get pod or kubectl cluster-info I am getting:
E0709 10:17:27.723595   34196 memcache.go:265] couldn't get current server API group list: Get "https://34.x.x.x/api?timeout=32s": getting credentials
: exec: executable gke-gcloud-auth-plugin not found
It looks like you are trying to use a client-go credential plugin that is not installed.
To learn more about this feature, consult the documentation available at:
https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins
In fact I do not see on the list the applicable package:
Installed     │ BigQuery Command Line Tool                     │ bq                       │  1.6 MiB │
│ Installed     │ Cloud Storage Command Line Tool                │ gsutil                   │ 11.3 MiB │
│ Installed     │ Google Cloud CLI Core Libraries                │ core                     │ 20.9 MiB │
│ Installed     │ kubectl                                        │ kubectl                  │  < 1 MiB
But even I am not able to install:
gcloud components install gke-gcloud-auth-plugin
ERROR: (gcloud.components.install) The following components are unknown [gke-gcloud-auth-plugin].

According to the: https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke

I faced the same error. Installing the plug in resolved the issue.

$ gcloud components install gke-gcloud-auth-plugin


NullExpressions in Projections

I'm porting a project from QueryDSL 3.4 to version 4.1.4. I'm running into an issue will NullExpressions used in projections.
Consider this contrived class (imagine this is a DTO with a nullable constructor parameter).
public class DoubleWrapper {     private final Double value;     public DoubleWrapper(Double value) {         this.value = value;     } }
This tests fails
@Test     public void testNullExpression() {         Projections.constructor(DoubleWrapper.class, Expressions.nullExpression(Double.class));     }
Here's the stack trace
com.querydsl.core.types.ExpressionException: No constructor found for class DoubleWrapper with parameters: [class java.lang.Object] 	at com.querydsl.core.util.ConstructorUtils.getConstructorParameters(ConstructorUtils.java:119) 	at com.querydsl.core.types.ConstructorExpression.<init>(ConstructorExpression.java:82) 	at com.querydsl.core.types.ConstructorExpression.<init>(ConstructorExpression.java:72) 	at com.querydsl.core.types.Projections.constructor(Projections.java:122)
I can make this test pass, in an inelegant way.
@Test     public void testNullExpression_passes() {         Expression<Double> expr =                 Expressions.template(Double.class, TemplateFactory.DEFAULT.create("null"), Collections.emptyList());         Projections.constructor(DoubleWrapper.class, expr);     }
What I would like to see is that Expressions.nullExpression pass the type information to the superclasses. I.e. make the following test pass:
@Test     public void epressions_nullExpression_validateCorrectType() {         NullExpression<Double> expr = Expressions.nullExpression(Double.class);         assertThat(expr.getType().getName(), is(Double.class.getName()));     }

Thanks for the report.
It seems an assumption I made while changing some things for Querydsl 4 didn't hold true.

I actually have the same problem, 4 years later. NullExpression is always considered an expression of Object, which fails when searching for a valid constructor.

Same here, unable to use Projections.constructor(..., Expressions.nullExpression()).

PR is now merged, so this can be closed.


Missing WSL Blobs for openSUSE Leap 15.5

Hi,
The links for the Leap 15.5 and 15.4 SUSE distributions are missing from here:
https://docs.microsoft.com/he-il/windows/wsl/install-manual#downloading-distributions
Manual reconstructions of the links do not work:
https://aka.ms/wsl-opensuseleap15-4
https://aka.ms/wsl-opensuseleap15-5

/feature
For this specific request I don't think that logs are required

I don't personally know what the update/upkeep/lifespan is for that site, but I wouldn't bother doing anything for Leap 15.4, the current offerings in the Store (or via winget) are Leap 15.5 & Leap 15.6 ; --web-download offers Leap 15.6.

Hi @sbradnick I found it available on the store but when I try to install it from powershell it show as if the distribution doesn't exists

Hi I found it available on the store but when I try to install it from powershell it show as if the distribution doesn't exists

You'll have to be more specific (with what you're doing) than that, Leap 15.4 isn't available from the Store anymore since it's EOL.

I overlooked that Leap 15.4 was EOL, no need to worry about it indeed
I'll update the issue description
Since Leap 15.5 is available at the store shouldn't the following command work?

Text translated to english
PS C:\WINDOWS\system32> wsl --install openSUSE-Leap-15.5
Invalid distribution name: ‘openSUSE-Leap-15.5’.
To get a list of valid distributions, use ‘wsl.exe --list --online’.
Error code: Wsl/InstallDistro/WSL_E_DISTRO_NOT_FOUND

Here's the list of available distribution returned by the suggested command
PS C:\WINDOWS\system32> wsl --list --online
Veja a seguir uma lista de distribuições válidas que podem ser instaladas.
Instale usando 'wsl.exe --install <Distro>'.

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
Ubuntu-24.04                           Ubuntu 24.04 LTS
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.6                     openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-Server-15-SP6    SUSE Linux Enterprise Server 15 SP6
openSUSE-Tumbleweed                    openSUSE Tumbleweed
PS C:\WINDOWS\system32>

openSUSE-Leap-15.5 isn't available that way (there's a 4-item limit); that list is the one you'd use like so: wsl --install openSUSE-Leap-15.6 --web-download (you can probably leave --web-download off unless there is a proxy issue w/o it (no access to the Store for example), depends on your network).
The Store offers up 15.5 and you can use winget if you'd like to install it via the CLI.
I'm not 100% what you're trying to accomplish, if it's having 'openSUSE Leap 15.5' installed, it's certainly possible via the Store.

Closing


Remove obsolete code

Last backward compatible release providing selectrum-read is 3.1
Next release will be 4.0

@clemera How do you feel about this - introducing the breaking point in the master branch soon? Or do you prefer to release another non-breaking 3.2 release first? Since the project seems to have gained more and more popularity recently it may make sense to make a clean cut now. This will give a bit more freedom with regards to adjusting internals. On the other hand, the deprecation notices we have in place are already a guide in the direction this project is going. Personally I would probably make the cut soon.
EDIT: There is one thing one should consider - if there are plans for more deprecations of public APIs we should add deprecation notices for these APIs and publish a 3.2. But this does not seem to be the case?
EDIT2: On non-Emacs projects one could also move the master to 4.0 and still publish 3.2, 3.3 later on in order to introduce deprecations, backport fixes etc. But in the context of a MELPA-released project this is not really useful since most users are already following the bleeding edge commit anyways.

I agree with you, we can make a 4.0 release soon, I don't have any other deprecations in mind.

Ok, let's wait a bit longer with the next release. Sorting out a few more issues (if there are some you consider important), wait for feedback etc.


revert for setvariable of mysql DALStatement.g4

revert for #4228 .
Changes proposed in this pull request:

revert for setvariable of mysql DALStatement.g4

Pull Request Test Coverage Report for Build 9478

0 of 4 (0.0%)  changed or added relevant lines in 1 file are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.3%) to 64.815%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

shardingsphere-sql-parser/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/visitor/MySQLDALVisitor.java
0
4
0.0%

Files with Coverage Reduction
New Missed Lines
%

sharding-orchestration/sharding-orchestration-core/src/main/java/org/apache/shardingsphere/orchestration/internal/util/IpUtils.java
3
76.0%

Totals

Change from base Build 829:
0.3%

Covered Lines:
11025

Relevant Lines:
17010

💛  - Coveralls


git-commit: include promotor username into git commit author

Checklist

[ X] I've searched the issue queue to verify this is not a duplicate feature request.
[ X] I've pasted the output of kargo version, if applicable.
[ X] I've pasted logs, if applicable.

Proposed Feature
When currently using the git-commit promotion step, the commits are done with the default user kargo (if no explicit author.name is set). If a promotion is done manually, it would be useful that this becomes kargo-$logged-in-user (such as kargo-admin, in case you log in with the admin account). In the promotion history you can already see who initiated the promotion, but in the git commit log itself there is no trace of it.
Motivation
This would enable to easily see who initiated a git commit from within kargo.

I think the most sensible thing here might be to make promoter information available within expressions, so you can dynamically populate the existing author info fields.


UnsatisfiedLinkError on ch.qos.logback.classic.Logger

Hello,
I'm trying to reuse your library on one of my spring boot applications. After some tweaks I've been able to generate native image and start it successfully.
After the web server is up & running, at each request I get the following error:
Exception in thread "reactor-http-nio-2" java.lang.UnsatisfiedLinkError: sun.reflect.Reflection.getCallerClass(I)Ljava/lang/Class; [symbol: Java_sun_reflect_Reflection_getCallerClass or Java_sun_reflect_Reflection_getCallerClass__I]
at com.oracle.svm.jni.access.JNINativeLinkage.getOrFindEntryPoint(JNINativeLinkage.java:145)
at com.oracle.svm.jni.JNIGeneratedMethodSupport.nativeCallAddress(JNIGeneratedMethodSupport.java:57)
at sun.reflect.Reflection.getCallerClass(Reflection.java)
at ch.qos.logback.classic.spi.PackagingDataCalculator.populateFrames(PackagingDataCalculator.java:85)
at ch.qos.logback.classic.spi.PackagingDataCalculator.calculate(PackagingDataCalculator.java:58)
at ch.qos.logback.classic.spi.ThrowableProxy.calculatePackagingData(ThrowableProxy.java:142)
at ch.qos.logback.classic.spi.LoggingEvent.(LoggingEvent.java:122)
at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:419)
at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)
at ch.qos.logback.classic.Logger.log(Logger.java:765)
at io.netty.util.internal.logging.LocationAwareSlf4JLogger.log(LocationAwareSlf4JLogger.java:46)
at io.netty.util.internal.logging.LocationAwareSlf4JLogger.warn(LocationAwareSlf4JLogger.java:209)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:908)
at java.lang.Thread.run(Thread.java:748)
at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:473)
at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:193)
I was wondering if this has to do with missing entries in reflect.json file.
thanks for your support

We see the same problem today with Spring Boot deployment too using GraalVM.

I bypassed the issue creating a substitution directly in graal substratevm. The problem is that the method sun.reflect.Reflection.getCallerClass(int) is no more supported in Java8, hance not implemented in substratevm.
The workaround I used is to force the substitution of this method via this implementation
@Substitute     public static Class<?> getCallerClass(int depth) {         return null;   }
in the file com.oracle.svm.core/src/com/oracle/svm/core/jdk/Target_jdk_internal_reflect_Reflection.java
within graal/substratevm
Another possible approach is to try update the logback library: as you can see the current version 1.2.3 is a bit old and the current alpha implementation of the PackagingDataCalculator class (that triggers the getCallerClass call) does not contain reference to this method anymore:
if (GET_CALLER_CLASS_METHOD_AVAILABLE) {                 //callerClass = Reflection.getCallerClass(localFirstCommon + i - missfireCount + 1);   }

Simplest thing to do is remove logback and then you'll see the real problem that is causing it to need to do the digging for stack trace info.


Create Cats exercises

We should start working on create the library Cats, organize its sections and add some exercises.

Cats exercises may cover...

Creating and implementing Typeclass instances (Block style)
Functor implicit evidence for some std types (Koan style)
Xor ops (Koan style)

Blocked by #182

Done


Encrypt error when associated query with same column name.

Bug Report
Which version of ShardingSphere did you use?
4.0.0-RC3-SNAPSHOT
Which project did you use? Sharding-JDBC or Sharding-Proxy?
Sharding-JDBC
Expected behavior
associated query and decrypt successully.
Actual behavior
Exception in thread "main" javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher
	at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:936)
	at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:847)
	at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:446)
	at javax.crypto.Cipher.doFinal(Cipher.java:2165)
	at org.apache.shardingsphere.core.strategy.encrypt.impl.AESShardingEncryptor.decrypt(AESShardingEncryptor.java:72)
	at org.apache.shardingsphere.core.execute.sql.execute.result.StreamQueryResult.decrypt(StreamQueryResult.java:164)
	at org.apache.shardingsphere.core.execute.sql.execute.result.StreamQueryResult.getValue(StreamQueryResult.java:72)
	at org.apache.shardingsphere.core.merge.dql.common.StreamMergedResult.getValue(StreamMergedResult.java:49)
	at org.apache.shardingsphere.shardingjdbc.jdbc.core.resultset.EncryptResultSet.getString(EncryptResultSet.java:181)
	at org.apache.shardingsphere.example.core.jdbc.repository.OrderItemRepositoryImpl.getOrderItems(OrderItemRepositoryImpl.java:114)
	at org.apache.shardingsphere.example.core.jdbc.repository.OrderItemRepositoryImpl.selectAll(OrderItemRepositoryImpl.java:101)
	at org.apache.shardingsphere.example.core.jdbc.service.OrderServiceImpl.printData(OrderServiceImpl.java:152)
	at org.apache.shardingsphere.example.core.jdbc.service.OrderServiceImpl.processSuccess(OrderServiceImpl.java:95)
	at org.apache.shardingsphere.example.core.api.ExampleExecuteTemplate.run(ExampleExecuteTemplate.java:29)
	at org.apache.shardingsphere.example.orchestration.raw.jdbc.JavaConfigurationExampleMain.main(JavaConfigurationExampleMain.java:60)

Reason analyze (If you can)
the join tables has same column name, the column in first table is encrypted and in second not encrypted, but encryptor will try to decrypt the second table's column.
Steps to reproduce the behavior, such as: SQL to execute, sharding rule configuration, when exception occur etc.

encrypt configuration:

    private EncryptRuleConfiguration getEncryptRuleConfiguration() {
        EncryptRuleConfiguration result = new EncryptRuleConfiguration();
        Properties properties = new Properties();
        properties.setProperty("aes.key.value", "123456");
        EncryptorRuleConfiguration aesRuleConfiguration = new EncryptorRuleConfiguration("aes", properties);
        EncryptColumnRuleConfiguration columnConfigAes = new EncryptColumnRuleConfiguration("", "status", "", "status_encryptor");
        Map<String, EncryptColumnRuleConfiguration> columns = new HashMap<>();
        EncryptTableRuleConfiguration tableConfig = new EncryptTableRuleConfiguration(columns);
        columns.put("status", columnConfigAes);
        tableConfig.getColumns().putAll(columns);
        result.getEncryptors().put("status_encryptor", aesRuleConfiguration);
        result.getTables().put("t_order", tableConfig);
        return result;
    }

table structure:

CREATE TABLE IF NOT EXISTS t_order (
  order_id   BIGINT NOT NULL AUTO_INCREMENT,
  user_id    INT    NOT NULL,
  address_id BIGINT NOT NULL,
  status     VARCHAR(50),
  PRIMARY KEY (order_id)
)

CREATE TABLE IF NOT EXISTS t_order_item (
  order_item_id BIGINT NOT NULL AUTO_INCREMENT,
  order_id      BIGINT NOT NULL,
  user_id       INT    NOT NULL,
  status        VARCHAR(50),
  PRIMARY KEY (order_item_id)
)

sql:

SELECT i.* FROM t_order o, t_order_item i WHERE o.order_id = i.order_id

Example codes for reproduce this issue (such as a github link).
https://github.com/apache/incubator-shardingsphere-example
module orchestration-raw-jdbc-example

Hi @KomachiSion , I think this issue is same like https://github.com/apache/incubator-shardingsphere/issues/3194. The root cause of this issue is that we can't get tableName by columnIndex correctly.
    /**
     * Get sharding encryptor.
     *
     * @param columnIndex column index
     * @return sharding encryptor
     * @throws SQLException SQL exception
     */
    public Optional<ShardingEncryptor> getShardingEncryptor(final int columnIndex) throws SQLException {
        final String actualColumn = resultSetMetaData.getColumnName(columnIndex);
        if (null == sqlStatementContext) {
            return Optional.absent();
        }
        final Collection<String> tableNames = sqlStatementContext.getTablesContext().getTableNames();
        for (String each : tableNames) {
            Optional<ShardingEncryptor> result = findShardingEncryptorWithTable(actualColumn, each);
            if (result.isPresent()) {
                return result;
            }
        }
        return Optional.absent();
    }

The complete code is here. You can see SS try to get encryptor with all tableNames in sqlStatementContext, so we can't get encryptor correctly by same column name.
I think maybe we should discuss the issue until get a perfect solution.

Yes, there are no owner table information. JDBC resultSetMetadata do not contain, so we may get the owner table from parsingEngine.
But for i.*, o.* kind type, parsingEngine may be hard to judgement how many columns each table owns.

Can we just replace * with all column of table ?

Which step should we replace?
I think it's hard to replace * with all columns.
If the we can get TableMetaData, encryptor may calculate the owner table.

I have a crazy idea, maybe it's unfeasible.
We can generate aliases for columns in DQL like Hibernate.
If user send an sql like SELECT order_id from t_order, we generate an alias for order_id, like t_order_order_id_123 and send the new sql SELECT order_id AS t_order_order_id_123 from t_order to DB. We can exactly get owner table by column name, Because alias is we generated.
In this case, we can replace i.* with order_item_id AS t_order_item_order_item_id_, order_id AS t_order_item_order_id_, user_id  AS t_order_item_user_id_, status AS t_order_item_status_.

There are two questions for your idea.

We need to do much work to make sure the rewrite SQL is correct. Hibernate can do this because it generate SQL from JavaBean not SQL. But SS focus on SQL, SS need to parse logicSQL, and then rewrite.
Even we do rewrite for SQL, how to deal with this kind of situation that logic SQL has origin column alias like select i.status as i_status, o.status as o_status from t_order i, t_order_item o?

Yes, I known this idea is difficult, and maybe it's unfeasible.
I think we can replace user's alias with we generated alias.

Yes, there are no owner table information. JDBC resultSetMetadata do not contain, so we may get the owner table from parsingEngine.
But for i.*, o.* kind type, parsingEngine may be hard to judgement how many columns each table owns.

Why we can not get the  column's owner tableName from resultSetMetaData?
String getTableName(int column) throws SQLException;
I debuged and find this works. @KomachiSion

Yes, there are no owner table information. JDBC resultSetMetadata do not contain, so we may get the owner table from parsingEngine.
But for i.*, o.* kind type, parsingEngine may be hard to judgement how many columns each table owns.

Why we can not get the column's owner tableName from resultSetMetaData?
String getTableName(int column) throws SQLException;
I debuged and find this works. @KomachiSion

It's sound good, I will check it. Thanks.

Yes, there are no owner table information. JDBC resultSetMetadata do not contain, so we may get the owner table from parsingEngine.
But for i.*, o.* kind type, parsingEngine may be hard to judgement how many columns each table owns.

Why we can not get the column's owner tableName from resultSetMetaData?
String getTableName(int column) throws SQLException;
I debuged and find this works. @KomachiSion

I think you should debug it with oracle driver again.

I try it with mysql driver. In mysql's ResultSetMetaData, we can find infomation for column's owner tableName(aliasTableName) and originalTableName. But I think this way is not standard and universal.

java.sql.ResultSetMetaData

/**
* Gets the designated column's table name.
*
* @param column the first column is 1, the second is 2, ...
* @return table name or "" if not applicable
* @exception SQLException if a database access error occurs
*/
String getTableName(int column) throws SQLException;
Method getTableName may return a empty String. In this way, if we parse the original sql to relate the aliasTableName and originalTableName, in same time, we can get the relation of tableName and column by DatabaseMetaData. Maybe we can resolve it.

@big-mountain-z  @sunbufu @KomachiSion
Hi everyone, I fixed this issue in #6112. However, I am not sure it is what you expected. So could anyone help give a test on our master branch?
Thanks a lot.


Cleanup redundant css units and use shorthand property for background

Looks Good.
Just need to test it out

Merging if there is no more discussions


Is  "Codeunit.Run(Number: Integer, var RecRef: Variant)" officially supported?

Hi,
This is a spinoff from https://www.yammer.com/dynamicsnavdev/threads/1430313497944064
According to the docs for Codeunit.Run the Record parameter should have the datatype of Record. But it is possible to call Codeunit.Run() with a variant variable that is a RecordRef as below (in a nonsense sample):
RecRef.Open(27);
RecRef.FindFirst();
VariantRecRef := RecRef;
Codeunit.Run(5431, VariantRecRef);
RecRef := VariantRecRef;
[Do something with the results in RecRef...]

The only place I seen this documented is in the good old Design Patterns docs: https://community.dynamics.com/nav/w/designpatterns/246/variant-facade
I'm a bit hesitant about using this since I do not find any other documentation about it being supported or just functional by accident. ;-)
Now I have the need for this kind of scenario, and want to get this sorted once and for all.
If it is by design and supported, we might want to update the documentation about this. 🙂
(same apply to Page.Run() and Report.Run(), as it seems)
Thanks
Johannes

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

ID: 45c82321-afec-3c87-9e56-e83fcd4feb41
Version Independent ID: 211b3d2b-eae0-ba0d-4d09-7cfa9319f24b
Content: Codeunit.Run(Integer [, var Record]) Method - Business Central
Content Source: dev-itpro/developer/methods-auto/codeunit/codeunit-run-method.md
Service: dynamics365-business-central
GitHub Login: @SusanneWindfeldPedersen
Microsoft Alias: solsen

IMO this is a good question and should be clearly documented in all places that can/cannot take RecordRefs within Variants.
From an AL or C/AL developer PoV, generic code in NAV/BC must be written specifically to handle different possible ways of stashing a record in a variant ( see DataTypeManagement.GetRecordRef() ). If one just takes a Variant and immediately does RecordRef.GetTable(Variant), that AFAIK won't work if the Variant already IS a RecordRef (or a RecordId).
So if we reasonably draw some inference from that, IMO it's a good question whether your procedures accept and handle RecordRefs on purpose, or only 'by accident' due to some quirk in their current implementation.

I can see that this pattern is being used in the BaseApp in at least a couple of places:

table 8631 "Config. Table Processing Rule".RunCustomActionOnRecRef()
codeunit 1380 "Batch Processing Mgt.".InvokeProcessing()

These would be very hard to implement without this undocumented feature.

And Page.Run[Modal](PageId, RecRefAsVariant) is used in even more places in BaseApp.


Issue-2 Adding more content on how to make HTML webpage.

Issue: https://github.com/Rana218/webpage/issues/2

The PR looks good.

Accept the PR for the Hacktoberfest 2022.


[BUG] Unable to enable the plugin in godot v3.5

Godot version
v3.5.stable.official [991bb6ac7]
Plugin version
1.0.0
Platform
Windows 11 64-bit
Issue description

Unable to enable the plugin.
When trying to enable the plugin, a pop up window with the message appears.
"Unable to load addon script from path: 'res://addons/dreadpon.spatial_gardener/plugin.gd'. This might be due to a code error in that script. Disabling the addon at 'res://addons/dreadpon.spatial_gardener/plugin.cfg' to prevent further errors."

Since plugin cannot be enabled, the showcase scene won't run.
Steps to Reproduce
Open the release in godot 3.5.
Error messages in the output window
Godot Engine v3.5.stable.official (c) 2007-2022 Juan Linietsky, Ariel Manzur & Godot Contributors.
--- GDScript language server started ---
res://addons/dreadpon.spatial_gardener/controls/extensions/ui_signaling_hslider.gd:11 - Parse Error: The signal "drag_started" already exists in a parent class.
res://addons/dreadpon.spatial_gardener/controls/input_fields/ui_if_real_slider.gd:11 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/utility/input_field_resource/input_field_resource.gd:31 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/greenhouse/greenhouse_LOD_variant.gd:1 - Parse Error: Script isn't fully loaded (cyclic preload?): res://addons/dreadpon.spatial_gardener/utility/input_field_resource/input_field_resource.gd
res://addons/dreadpon.spatial_gardener/greenhouse/greenhouse_plant.gd:12 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/arborist/arborist.gd:21 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/controls/input_fields/ui_if_real_slider.gd:11 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/utility/input_field_resource/input_field_resource.gd:31 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/toolshed/toolshed_brush.gd:1 - Parse Error: Script isn't fully loaded (cyclic preload?): res://addons/dreadpon.spatial_gardener/utility/input_field_resource/input_field_resource.gd
res://addons/dreadpon.spatial_gardener/toolshed/toolshed.gd:11 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/utility/defaults.gd:9 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/gardener/gardener.gd:18 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/controls/input_fields/ui_if_real_slider.gd:11 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/utility/input_field_resource/input_field_resource.gd:31 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/greenhouse/greenhouse_LOD_variant.gd:1 - Parse Error: Script isn't fully loaded (cyclic preload?): res://addons/dreadpon.spatial_gardener/utility/input_field_resource/input_field_resource.gd
res://addons/dreadpon.spatial_gardener/arborist/mmi_octree/mmi_octree_node.gd:18 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/arborist/mmi_octree/mmi_octree_manager.gd:13 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/arborist/mmi_octree/mmi_octree_node.gd:18 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/utility/console/console.gd:4 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/gardener/debug_viewer.gd:12 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/controls/input_fields/ui_if_real_slider.gd:11 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/utility/input_field_resource/input_field_resource.gd:31 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/controls/input_fields/ui_if_real_slider.gd:11 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/utility/input_field_resource/input_field_resource.gd:31 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/toolshed/toolshed_brush.gd:1 - Parse Error: Script isn't fully loaded (cyclic preload?): res://addons/dreadpon.spatial_gardener/utility/input_field_resource/input_field_resource.gd
res://addons/dreadpon.spatial_gardener/toolshed/toolshed.gd:11 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/utility/defaults.gd:9 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/greenhouse/greenhouse_plant.gd:12 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.
res://addons/dreadpon.spatial_gardener/plugin.gd:16 - Parse Error: Couldn't fully preload the script, possible cyclic reference or compilation error. Use "load()" instead if a cyclic reference is intended.

I see it was already reported...


Adding installation guidance to configure settings

Suggesting another line in the WP plugin install guidance. I didn't see Hypothesis show up on my WP site until I figured out there were settings to configure.

LGTM. Thank you!

Thanks @xolotl!

No problem guys...a very small repayment for the great work you are doing!


Release 3.0.0

Update TS support to native support by Svelte
Segregation of elements to separated files
Add Filter option

TODO

[ ] Setup Cypress
[ ] Write unit tests
[ ] Refactor a code
[ ] Self-review
[ ] Setup CI for tests
[ ] Update a description
[ ] Add Wiki
[ ] Write a documentation

@Proza1k do you have any suggestions here?


feature: Login remember me functionality

Allow users logging into the admin to specify whether they want to be remembered or not.
Instead of remembering users all the time, from now on:

Sessions expire on browser close if Remember me checkbox is unchecked.

Otherwise, they're set to expire after SESSION_COOKIE_AGE.

Thanks @confuzeus!
Just wondering if you could attach a screenshot of how this change looks?

Thanks @confuzeus!
Just wondering if you could attach a screenshot of how this change looks?

For sure @kaedroho :

The template code was already there but commented out. I simply uncommented it and implemented the functionality in the view.


GameStudio to suspend game sub-windows when they are hidden in tab control

PR Details

Stops running update/draw for scene/prefab editors and the preview asset.
Description

Added EditorServiceGame.IsSuspended field to stop the game from updating/drawing.
I tried to keep close to the current architecture.
The Asset Preview tab was a bit difficult to figure out how to get this to detect when it's shown/hidden.
I wanted to use OnEventCommandBehavior in GameStudioWindow.xaml instead of using the code behind, but the CommandParameter seemed broken when binding LayoutAnchorable.IsSelected (it got the previous value instead of the current value).
Naming improvements and/or other suggestions to keep it consistent are welcome.
Motivation and Context

Scenes/Prefabs/Preview Asset windows continue running/drawing when not visible, which may slow down the Game Studio if too many tabs are open.
Types of changes

[ ] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] My change requires a change to the documentation.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Ok, this is isn't working for the Asset Preview tab. It turns out DockingLayoutManager removes all tab elements then re-adds saved ones which effectively removes any event handlers declared in the xaml.
I'll need to think of a new strategy around this...

Have you tested this with UI tabs? I did some very quick testing (not this commit, but up to the last one) with 4 tabs (1 scene, 1 prefab + 2 UI tabs), and things were pretty slow -- even after closing all tabs the slowness remained. I reverted the changes and although things still got slow after the 4 tabs, closing the tabs resolved the slowness.

Thanks for looking, I didn't but have now. It looks ok to me, but I've only tested by putting a Debug.WriteLine in the EditorServiceGame.Draw/EditorServiceGame.Update, so there could be some other hidden things running that I'm not aware about.
Can you open your 4 tabs again, then open something like Graphics Compositor (which doesn't run an EditorServiceGame), and check if EditorServiceGame.Draw is still running (after the IsSuspended check). If it is still running, then the suspend logic isn't being detected properly and I might need to rethink how to detect the tab state. You'll probably need to test with the latest commits since the asset preview was still running on the older version.
Also, I'm aware you have your own fork, this is done off the latest version, and it uses Extended.Wpf.Toolkit Version="3.8.1" (in Xenko.Core.Assets.Editor.csproj). I don't know if you're on a different version or not? The docking control may or may not have changed behaviors if you're on an older version.

Thanks for the heads up phr00t, it might not related to the docking control.
Preliminary testing shows it's not disposing the resources (calling UnloadContent) when closing the tab, which I suspect is due to the IsSuspended logic bypassing something that's needed on the inside Update. If true, I think this bug also occurs if a user closes the scene when it has faulted, well.
Will look into finding out how to fix this.

Unfortunately, I couldn't come up with a decent solution to closing the sub-window, and it required yet another hack. If someone knows a better way, feel free to pitch in.
The problem is the game's exit detection placed in the ScriptSystem, so it requires a game update to execute.
As I suspected, even the Faulted case, where Game Studio blocks the scene with a messaging saying there's fix the error before continuing, will not exit (and release its memory) if a user just decides to close the window rather than resolving it.
As a side note, even in the 'standard' case, a scene releases most of its memory, however there might be some memory leak, as it still slowly increments overall when you repeatedly open, close and open a scene.

I was going to suggest that even if game is hidden, you still want to run update once in a while (i.e. 1 every second).
This is necessary because a bunch of actions have impact in-game (we post them as action to run during next script update). and lot of UI operations might even be stuck while awaiting for results to be back.
It seems you already run into one of those issue with the exit detection not being called, but it could happen to lot of other thing (any asset edit that's being used in the live scene/game will also have each pending edit being queued to be replicated in the game).

Thanks for your input, I'll look at changing it to a throttled update instead.
As a side note, looking at the hack I tried to do (forcing a single update), it wouldn't fix the Faulted case anyway, as the exit script is executed last (which would probably be caught in another exception before attempting to run the exit script). I'll create an issue for that.

Commit has been redone to skip rendering when flagged hidden and throttle updates to once per second to ensure the exit command is detected.

Apologizes for not getting back to this quickly! I commented on the commit and didn't get a notification on this pull request. Yes, I do need to update my Wpf to 3.8.1 (doing that now). It was part of a commit I tried but ended up reverting. I'll try out your latest changes when I get a chance! You've got a bunch of interesting stuff coming really fast, which I like!

I integrated the Wpf 3.8.1 changes and tried out this latest commit. I will say performance returned when closing tabs, which is an improvement. However, performance was much worse with multiple tabs open vs. without this commit (at least on my fork). I had 3 scenes open and 2 significant UI tabs open, which slowed things down quite a bit with or without this latest commit. However, I noticed much less responsiveness (and zooming in and out of the UI tab caused huge jumps) with this commit. I've reverted it again. Perhaps try testing with more heavy scenes and UI? Might be related to something different on my fork, too.

I integrated the Wpf 3.8.1 changes and tried out this latest commit. I will say performance returned when closing tabs, which is an improvement. However, performance was much worse with multiple tabs open vs. without this commit (at least on my fork). I had 3 scenes open and 2 significant UI tabs open, which slowed things down quite a bit with or without this latest commit. However, I noticed much less responsiveness (and zooming in and out of the UI tab caused huge jumps) with this commit. I've reverted it again. Perhaps try testing with more heavy scenes and UI? Might be related to something different on my fork, too.

Thanks for trying again. I probably should have edited my previous message, you didn't actually need to update your WPF, as I note in a later message that it was an issue on my end! I won't be so quick on thinking it's a difference in the fork, but thinking of some underlying issue in my code which needs to be uncovered.
In the latest version, I changed the logic so it only throttled the updates, meaning all "games" will still run, but the rendering shouldn't be happening at all. The fact that all "games" still exist in memory while they exist in the opened tabs means there's still a memory limit on your own machine (not saying your machine specifically, I'm talking in general).
Off the top of my head, I suspect there's probably some catch up logic in the underlying game update, which might be triggered since I throttle outside the main logic, so I'll investigate if that's the case.

@phr00t I've forced pushed a new version of the commit, which you can test if you like.
I suspect it was the BeginDraw logic, where it'd still try to "prepare" the graphics device which might be expensive if multiple games are doing it (and also not actually rendering with it).
I don't know about your hardware specs, but there is also a possibility that opening too many scenes/UI editor is making you hit your ram limit, however that's probably not be your case since you're saying the editor is working ok without this commit applied.

@Basewq Should I still consider merging this without his feedbacks?

I haven't gotten to testing this and unsure if I will get to it, so please test and consider merging without my feedback.

@xen2 Yep, you have phr00t and my ok to test/merge. If there is any additional performance issues I'm a bit stump on where/how it manifests, but hopefully this is ok as is.

@Basewq merged, thanks again for yet another perf-improvement PR!


Type inference of inherited class method is wrong.

Issue Type: Bug
from typing import Type, TypeVar

T = TypeVar('T', bound='A')

class A:
    @classmethod
    def create(cls: Type[T]) -> T:
        return cls()

class B(A):
    pass

b = B.create() # thinks this is an A, when it is a B

Extension version: 2020.5.78807
VS Code version: Code 1.45.0 (d69a79b73808559a91206d73d7717ff5f798f23c, 2020-05-07T16:18:48.860Z)
OS version: Windows_NT x64 10.0.18363

Switched to using Pylance, this seems to be ok there.


Support for queries with 64-bit integer columns

When an SQL query returns a BIGINT it should map to a 64-bit integer data type.
The Ada Database Objects library supports this but the dynamo code generator does not provide a mapping type for that and only generates Integer data types.

Done in 1.4.0


#72 use version from testCatalogArtifact in GeneratePlatformProjectMojo

Use testCatalogArtifact version rather than originalBomCoords for testArtifacts from testCatalogArtifact itself.

@aloubyansky wdyt?


Use system OZW installation

As suggested in #21, switch to a system installation of OZW.
Original reason to bundle OZW as a submodule was to use a fixed version with goopenzwave, however this is not necessary as recent releases of OZW have shown to be backwards compatible.
Using an up-to-date system installation of OZW would be preferable as this library will benefit from the improvements and it can share configuration, etc. with other OZW based software such as the open-zwave-control-panel.

Hi, I tried using the standard OZW installation and had success by changing goopenzwave_linux.go as follows:
`package goopenzwave
// #cgo LDFLAGS: -lopenzwave
// #cgo CFLAGS:   -I/usr/include/openzwave -I/usr/local/include
// #cgo CPPFLAGS: -I/usr/include/openzwave -I/usr/local/include
import "C"
`
Some notes:

This ran fine on both Ubuntu and on Raspberry Pi.
I looked into using pkgconfig but openzwave doesn't ship with a .pc file
Didn't put a PR in as I'm not familiar with the environment and it might too narrow of an approach.

Thanks for the info! No problem about not doing a PR. I'll take a look at this and make it at least compatible with linux and macos. Things get more complicated with Windows... and actually might be easier by keeping the submodule.
What version of OpenZwave were you using by the way? Installation via the package manager or manual installation from source?

Here's my initial version using pkg-config, tested on macos: https://github.com/jimjibone/goopenzwave/tree/22-use-system-ozw-installation

For both Ubuntu and Raspbian the package manager version was used.  For both Raspbian and Ubuntu: (apt search openzwave)
libopenzwave1.5/bionic,now 1.5+ds-5 amd64 [installed,automatic]
API to use a Z-Wave controller
libopenzwave1.5-dev/bionic,now 1.5+ds-5 amd64 [installed]
header files for the openzwave library

Ahh right ok. Shame that the packages don't contain pkg-config files...
I'll try out the package manager version with my Pi.
Unfortunately homebrew on macos ships an old version of the library -- looks like it's mostly due to people running into the same build issues that we've seen before, asking open-zwave for the fix, not getting any response and then the PRs being closed after a load of hard work...
I'd like to switch to the package manager version completely.

Ok, just tested out the apt version of openzwave on Raspbian Jessie (v1.5) and it looks like it has installed a fairly old version of the device XML files! Some of my devices have not been correctly recognised annoyingly.
So I think for now I'm going to have to recommend an installation from source, unfortunately. At least that way you get an up-to-date device database, pkg-config files and latest set of features. Hopefully that doesn't include the latest set of bugs too...


Docs: Update references to QL for Eclipse

Found a few more outdated mentions. I've targetted rc/1.23, but this isn't a hugely important change (and we don't necessarily have to republish the help).
@jf205, could you review/merge please?

Thanks!


err : cannot import name 'soft_unicode' from 'markupsafe'

I'm getting the following error when I build the project.
err : cannot import name 'soft_unicode' from 'markupsafe' (/usr/local/lib/python3.8/dist-packages/markupsafe/__init__.py)
the issue is due to an upgrade in MarkupSafe:2.1.0 where they have removed soft_unicode.

Verfied


fix: takes long time to retrieve feature.dataset.name

Codecov Report
Attention: 1289 lines in your changes are missing coverage. Please review.

Comparison is base (5a0e6b3) 36.81% compared to head (50f038f) 53.40%.
Report is 372 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #547       +/-   ##
===========================================
+ Coverage   36.81%   53.40%   +16.58%
===========================================
  Files          61       69        +8
  Lines        5421     6631     +1210
===========================================
+ Hits         1996     3541     +1545
+ Misses       3425     3090      -335

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


email subscribe mobile ui btn fix

Problem: (in mobile version)

Also, we can have small gap between TextBox and Submit button too @jackson-dean (Haven't implemented that & make sure to check in style.scss where w-30 is considered as 10% and got no clue, which could've implemented somewhere in the code as it is)
FIxed screenshot:

Looking forward on this small fix @jackson-dean !!


Inter-country war

Countries should declare war with each other if they meet certain conditions determined by aggression score, military might, and score.


Fan 'RotationDirection' Characteristic

Is your feature request related to a problem? Please describe.

NA.
Describe the solution you'd like

Is it possible to add characteristic RotationDirection for the Fan accessory? I cannot see any open or closed issues requesting this.
Describe alternatives you've considered

I think the 0x5e fork of the official Tuya is able to do it with a lot of custom work involved, but that plugin requires you to request extensions of access every 6 months (that is if my extension past the one month has been accepted yet) and I would rather not have to keep doing that.
Additional context

NA.

Bumping this so it doesn’t get closed as stale @milo526.

@milo526 any chance you could take a look at this one please?

Please post the result of the steps under "How to check whether the api this library uses can control your device".
Without this it is hard for me to help you with regards to this specific issue.


I don't see the same capacity on the transfer screen that I see on the channel screen while closing a channel

Thanks for filing a bug report :-)
Steps to Reproduce

Close the last channel in a token network

Expected Result

Is see a message No open channel instead of the token amount

Actual Result

I see a capacity of 0

Additional Infos (Optional)
- Browser & version
- Browser console errors
- Device / OS

Fixed by https://github.com/raiden-network/light-client/pull/2045

I was wrong - reopening

Related https://github.com/raiden-network/light-client/issues/1930


Add E2E_DELETE_CLUSTER comment to e2e.yml

Which issue this PR addresses:

Fixes Ross' comment from #2422.
What this PR does / why we need it:
Our wiki page Debug-E2E suggests adding the E2E_DELETE_CLUSTER environment variable to e2e.yml, but it can be unclear exactly where and how to make this change. Provide a commented-out example to make it clearer.

Test plan for issue:
Comment-only change

Is there any documentation that needs to be updated for this PR?
I will update Debug-E2E instructing the reader to uncomment the E2E_DELETE_CLUSTER line instead of adding it.

E2E_DELETE_CLUSTER has recently disappeared. Looking into if there's a replacement.

Obsoleted by recent changes.


How to display images in "original" quality in the annotation view?

Hi,
I'm trying to display images in their original quality in the annotation view. I attempted to modify the code in server-proxy.ts as follows, but it didn't work:
async function getData(jid: number, chunk: number, quality: ChunkQuality, retry = 0): Promise<ArrayBuffer> {
    const { backendAPI } = config;

    try {
        const response = await (workerAxios as any).get(`${backendAPI}/jobs/${jid}/data`, {
            params: {
                ...enableOrganization(),
                quality: 'original', // here fixed to original quality
                type: 'chunk',
                number: chunk,
            },
            responseType: 'arraybuffer',
        });

        ...
}

I referenced this from patch.
Could anyone help me with this? I only need images in their original quality and do not require switching between original and compressed quality, as I am deploying CVAT within a local network.
Best regards,

Hello,
Could you please describe your actions besides the file change you mentioned?

Hello,
Could you please describe your actions besides the file change you mentioned?

Hi @azhavoro ,
Thank you for the reply.
After modifying the code, I ran the following commands to restart the CVAT server:
docker compose down
docker compose up -d

Then, I re-logged into CVAT, opened a previously uploaded Task (which was uploaded with 100% quality in the advanced configuration), opened the annotation view, but the image quality did not seem to improve. I also checked the URL of the image data via Chrome's inspect tool and found that:

You need to build the images after modifying the source code
docker compose -f docker-compose.yml -f docker-compose.dev.yml build

You need to build the images after modifying the source code
docker compose -f docker-compose.yml -f docker-compose.dev.yml build

Thank you, @azhavoro ! It did work!


Queries not saved in console on exit

Description
Queries in SQL console aren't being saved on exit, despite setting SQL Editor options "Auto-save after any modifications" and "Auto-save editor on close."
DBeaver Version
Community Version <IP_ADDRESS>403241413
Operating System
Windows 10E
Database and driver
Azure Databricks
Steps to reproduce

In Preferences, check "Auto-save after any modifications" and "Auto-save editor on close."
Open SQL Console
Type a query
Exit DBeaver
Restart DBeaver.  Contents are not restored.

Additional context
No response

Hello @bakoontz2,
Consoles are designed this way - they don't persist any data when you close them.
But you can press CTRL+S while in the console to turn it into a standard SQL editor and save the script.

Guess I missed that in the docs.  Thanks for the quick clarification, live and learn!


supporting mutiple alerts

from what I'm understanding, multiple alerts will be wrapped in the edxlde element but there is nothing in your code doing this..  Is it being considered in the next release ?

Multiple alerts can be wrapped in EDXL-DE (but they can also be wrapped in Atom or anything else). The focus of this project, for now, is just the CAP protocol. If you only want to produce (not consume) multiple alerts wrapped in EDXL-DE, you can use something like this:
    IEnumerable<Alert> alerts = GetAlerts();

    XNamespace edxldens = "urn:oasis:names:tc:emergency:EDXL:DE:2.0";
    var root = new XElement(edxldens + "EDXLDistribution",
        new XElement(edxldens + "distributionID", "test message"),
        new XElement(edxldens + "senderID", "some sender"),
        alerts.Select(alert =>
            new XElement(edxldens + "contentObject",
                new XElement(edxldens + "contentDescription", "This is a list of alerts"),
                new XElement(edxldens + "xmlContent", new XElement(edxldens + "embeddedXMLContent", XmlCreator.Create(alert))))));

Do you feel it would be useful to have this code wrapped in some utility class/method in CAP.NET?

thanks..   yes it would be very useful..   this is what we use in Australia.  Also within the "Info" section, i cannot see a way to add "language" element..

The Info class has a Language property. No promises for the EDXL code, it's a busy period but maybe I'll whip something up in the weekend.

sounds good to me mate..    we'll get in touch again next week

I implemented the bare minimum of EDXL-DE. It's published as a pre-release NuGet package. For an example of how to use it, take a look at this test.
Your example uses EDXL-DE 1.0, but I decided to go with 2.0.
Let me know if this works for you.

@vgrigoriu ...   do you support "thin" feeds ?

By thin clients do you mean Atom or RSS?
What do you mean you "cannot see" the nuget? Is the link above not working for you? Or is it that you can't see the package in Visual Studio?

@vgrigoriu
#1 nuget.  Yes i cannot see the new prerelease in nuget explorer in Visual Studio.
#2 thin feed.  for example, please refer to http://publicalert.pagasa.dost.gov.ph/feeds/  and http://publicalert.pagasa.dost.gov.ph/output/acp/e38557be-567a-4a1d-b4c7-7f821ebc666b.cap
As you can see each alerts are generated in its own file with having one link file pointing to each alert CAP file.

There's a drop down at the top of the nuget window where you can select "Stable Only" or "Include Prerelease". When I search for edxl, I can see this package only when "Include Prerelease" is selected.
Those feeds are Atom, a separate standard. To generate those you can use, for example, the SyndicationFeed class from the .NET Framework: https://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.syndicationfeed(v=vs.110).aspx


[10.x] Added a method for dropping index only if it exists in the given table

The provided pull request is a method named dropIndexIfExists that allows for dropping an index from a database table if it exists. It takes two parameters: $table, which represents the table name, and $index, which represents the index to be dropped.
This method can be used within Laravel migrations or other database-related tasks where you need to drop an index if it exists before making changes to the table structure.
example usage:
Schema::dropIndexIfExists('editor_invoices','foreign_invoice_id')

This needs tests.
@GrahamCampbell
no problem. I will write it as soon as possible.

@GrahamCampbell test implemented

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.

@taylorotwell
Thank you for your response. I am confident that the method I have written is correct and tests are valid. The reason behind implementing this approach is that whenever the table name changes, the index name remains unchanged, and as a result, it won't be deleted automatically with the current available function like dropForeignIdFor. By employing this method, there is no need to check for if the targeted index is exists or not.
I will look forward to your Response.


mkfifo not working?

It looks like the named pipe doesn't handle large query log output well?  It was locking up our hasura container.  A regular file seems to work fine.
talking about this: https://github.com/afitzek/hasura-metric-adapter/blob/main/docker-compose.yml#L18

I'm not 100% sure on the inner workings of named pipes, but a normal file is also an option of course. Its also mentioned in the README. :)
The files size might get quite large at some point see #11, so there are trade offs with both solutions.
"/bin/sh", "-c", ": > /tmp/log/stdout.log && /bin/graphql-engine serve | tee /tmp/log/stdout.log"


Fixed #3143: fixed functionality of 'show-weeks' attribute on datepicker popup

Show weeks attribute was not working on datepicker popup.
Even when its value is set to 'false', the calender still shows weeks as per issue #3143.
The fixed version can be seen on plunkr
http://plnkr.co/edit/MJE44Blp7D2gIKWBOuwv?p=preview

@ankit5990  Merge conflict, can you rebase and push please.

ya sure lemme fix that. Its a pretty old PR so conflicts must have crept in...

Hi karianna,
I have resolved the conflicts, please try now.

Needs a test.

@chrisirhc, yes I'll make the corrections and submit the code again with the required tests. Gimme a couple of days. I'm not very proficient with testing framework...

HI @chrisirhc, I have added the tests for the bug fix change. Please review. :)

Squashed and merged. Also cleaned up trailing spaces. Thank you!

Thanks for merging the fix @chrisirhc :)


{Function needed]

could u add the fan monitor on the coolest widget?
I need to check the fan's speed

maybe better that you add the percentage of disk, the temperature of the Motherboard?

also the itunes controller is not working

For the iTunes control please checkout your Übersicht settings. You'll normally need to press a button while clicking. I do not want to do disk percentage/free space out of both personal and lack of elegant design ideas. Temperature monitoring and fan speed has been under consideration, but I have yet to find out an energy efficient way of giving these information. I am afraid I cannot promise a delivery date, nor whether it will come out eventually.

still i can not do the itunes control. plz teach me how to do

Interaction shortcut could be what you are looking for. Press that button while clicking the control should work.


Declaration of ArraySubset::evaluate incompatible with PHPUnit 7.5

Laravel Version: 6.10.1
PHP Version: 7.3
PHPUnit: 7.5.20

Description:
@GrahamCampbell
I'm getting a very similar issue to #28827 on Laravel 6.10.1 in combination with PHPUnit 7.5.20
ErrorException : Declaration of Illuminate\Foundation\Testing\Constraints\ArraySubset::evaluate($other, string $description = '', bool $returnResult = false) should be compatible with PHPUnit\Framework\Constraint\Constraint::evaluate($other, $description = '', $returnResult = false)
This type signature was not updated in PHPUnit, but it has been changed 11 days ago in Laravel Framework with the release of 6.10.x
https://github.com/sebastianbergmann/phpunit/blob/7.5.20/src/Framework/Constraint/Constraint.php#L47
https://github.com/laravel/framework/blame/02a326ce5641b741fafb017f3d02b8917ba5e563/src/Illuminate/Foundation/Testing/Constraints/ArraySubset.php#L58

I think the actual culprit is probably https://github.com/laravel/framework/blame/02a326ce5641b741fafb017f3d02b8917ba5e563/src/Illuminate/Foundation/Testing/Constraints/ArraySubset.php#L193 because the line you highlighted is only used when PHPUnit is installed.

@driesvints If PHPUnit 7.x is not supported on versions higher than Laravel 6.9.0, maybe it's an idea to at least retroactively add that requirement to the Laravel 5.8 > 6 upgrade guide?


jasmine compatible matchers

An issue to keep track of all the matchers

[x] toBeTruthy
[x] toBeFalsy
[x] toBe
[x] toBeUndefined
[x] toBeDefined
[x] toBeNull
[x] toBeNaN
[ ] toBeCloseTo
[ ] toBeGreaterThan
[ ] toBeGreaterThanOrEqual
[ ] toBeLessThan
[ ] toBeLessThanOrEqual
[ ] toContain
[ ] toEqual
[ ] toHaveBeenCalled
[ ] toHaveBeenCalledTimes
[ ] toHaveBeenCalledWith
[ ] toMatch
[ ] toThrow
[ ] toThrowError

I vote for killing the toHaveBeenCalled ones completely.
We have our own matchers that work both with Jest mock fn's and Jasmine spies. Please put all of the matchers from https://github.com/facebook/jest/blob/master/packages/jest-jasmine2/src/index.js#L178 on your list – we should move them into the matchers file and out of jasmine2/src/index.js.

Yep, the solution for this is a codemod. @kentaromiura ran this at FB recently, we just need to open source it and put it into js-transform.

Just bumped into another case where toHaveBeenCalled behaves differently from toBeCalled and I forgot toBeCalled is the one to use.

@gaearon https://github.com/facebook/jest/pull/1512 and https://github.com/facebook/jest/pull/1526 will fix this. @maximderbin has been doing good work, we just didn't have enough time to review and polish those yet and didn't want to make 15 depend on it :(

Nice, thanks!

@cpojer @gaearon Actually it's weird as we've already migrated this matcher. Would be grade to know inconsistencies so I could fix it

I think it wasn't working with jest.fn() for me. Maybe I was doing something wrong.

It was fixed by this PR https://github.com/facebook/jest/pull/1445 . You may run on older version

Ah, I think it was toHaveBeenCalledWith().

Ah... in this case there is pending PR for this one

I've merged @maximderbin's two PRs for these in a local branch and am currently polishing up all the messages.


Update and merge the documentation

Hey @riklaunim, some feedback would be great on this. Thanks in advance.

Sorry for the ping, I just decided to push this. I wrote pnovotnak a mail asking for access to the django-ckeditor readthedocs account (if he does not want to update the settings himself).

Ok for me :+1:


feat: refine CTP implementation

When the CTP server stops, we should keep outputting the account info stream.
The reasons include:

"trade copier" will report AccountInfoTerminated errors.
"fund" will lose account info tracking.

Another solution is to design and deploy a third-party observable daemon that performs like rxjs's shareReplay.


feat: readme for the form builder

Not currently implemented using typedoc.
Definitely needs review, preferably from someone who knows :) . I got a bit lost with some of these fields, especially where the implementation within the form builder context seemed incomplete (e.g. if they were only applicable to FormR PartB).
TIS21-5641

@john12321 thanks for the positive feedback. I've made a couple of minor tweaks, but as we said, this will be a WIP mirroring the FormR PartB work.


Error when I'm trying to upgrade Debian Packager

iPad Pro 2017 running iOS 11.2.6, never install anything totally fresh device. I jailbroke with unc0ver today and went to Cydia to upgrade stuff. Getting this error when I'm trying to upgrade Debian Packager
unc0ver version 2.2.6
https://prnt.sc/ms58yi

Try to restore the SnapshotFS, I had to when I had this issue on my iPhone 7.

Try to restore the SnapshotFS, I had to when I had this issue on my iPhone 7.

Tried, doesn't work. You can fix this by upgrading to latest version of unc0ver which is 300b38 right now. But I don't want to cause some hacking tools doesn't work on that version for example lldb native by Proteas

@LaxusiC Reset cydia cache, also post /tmp/cydia.log.


Where do I get clientDataJSON and attestationObject from?

Trying to implement the webauthn flow using FusionAuth  and for the step to complete the passkey registration, the endpoint asks for a property called clientDataJSON and attestationObject.
From my understanding, I have to create attestationObject by myself by converting the CBOR to base64 URL encoded string.
And for clientDataJSON I have to convert some parts of the first response also to base64 URL encoded string, is that correct?
Been playing around but FusionAuth is complaining, so just want to see if I am on the right path, thanks! 👍

This library was designed to sit one step behind the Javascript API for the webauthn flow, if that makes sense. Take a look at the first image on the Yubico Developers Guide. This function as the "authenticator" in that flow, so by the time this library receives the information the clientDataJSON has been hashed and is received as the clientDataHash. We then use that binary data when we create assertions and attestations.
To address your specific point, though, yes you will need to create the clientDataJSON using some data received from the request. You can find the definition of this data in the W3C standard: https://www.w3.org/TR/webauthn/#client-data . The only part you will need to grab from the Relying Party's request is the challenge.
Once you've created that data, you can hash it (SHA-256) and pass it to this libraries Authenticator.makeCredential method. This method will then return the attestationObject that you can use in your response. You can use the asCBOR method to get the binary data for the info.
Right now this library only supports the self attestation of credentials.

Here's some typescript code I wrote that handles the clientDataJSON creation:
function getClientDataJson(type: string, options?: PublicKeyCredentialRequestOptions): Uint8Array {
    const challenge = options?.challenge as ArrayBuffer;
    const json = JSON.stringify({
        type,
        challenge: base64url(Buffer.from(challenge)),
        origin: origin,
        crossOrigin: false,
    });
    return new TextEncoder().encode(json);
}

It was used like this when creating the response object (the buffer was base64 encoded):
getClientDataJson("webauthn.get", publicKeyOptions).buffer

One thing I remember running in to was that the challenge in the JSON needed to be base64 encoded, then that JSON data was base64 encoded as well.


Convert FromRecoveredTransaction into TryFromRecoveredTransaction

Describe the feature
This fallible trait is unsound with eip4844 and deposit transactions
https://github.com/paradigmxyz/reth/blob/6725d43f053d3eba66c0a516af041c5018452bd9/crates/primitives/src/transaction/mod.rs#L1552-L1552
This matters here:
https://github.com/paradigmxyz/reth/blob/6725d43f053d3eba66c0a516af041c5018452bd9/crates/transaction-pool/src/traits.rs#L1127-L1130
with one caveat that eip4844 transaction are support here by marking the blob as missing:
https://github.com/paradigmxyz/reth/blob/6725d43f053d3eba66c0a516af041c5018452bd9/crates/transaction-pool/src/traits.rs#L934-L934
TODO
change the trait to TryFromRecoveredTransaction basically the same as TryFrom crate with an error type that is an associated type. for the impls we can use
https://github.com/paradigmxyz/reth/blob/6725d43f053d3eba66c0a516af041c5018452bd9/crates/primitives/src/transaction/error.rs#L56-L59
Additional context
No response

@mattsse may I?

assgined

@gr4yha7 just checking in, do you have the bandwidth to work on this?

@gr4yha7 just checking in, do you have the bandwidth to work on this?

@mattsse I've been unfortunately tied up these past couple of days. Probably best I'm unassigned? ☹

I would be happy to take over


Add support for showing ipv6 NAT table in Luci

Show also the NAT table in Status->Firewall->IPv6 if table is present.
When kmod-nf-nat6 and kmod-ipt-nat6 are installed, the firewall has also
the 'nat' table for ipv6, and packages like 'adblock' utilize that table.
Currently that table is not shown on the Luci firewall status page,
although it is visible by 'ip6tables -L -v -t nat' from console.
This patch adds support for showing that table in Luci.

Well, apparently the modification leads into two logged errors if the kernel modules are not installed:
Sun Feb 28 15:10:35 2016 daemon.err uhttpd[2137]: ip6tables v1.4.21: can't initialize ip6tables table `nat': Table does not exist (do you need to insmod?)
Sun Feb 28 15:10:35 2016 daemon.err uhttpd[2137]: Perhaps ip6tables or your kernel needs to be upgraded.

The patch needs to be tweaked. Apparently there should be a check for kmod-ipt-nat6.

I added the detection of ipv6 NAT presence.
This is still work in progress and I will continue to test this first in my own trunk and CC builds, but I wanted to document the updates here.

@jow-
This code seems to work for me. Status->Firewall->IPv6 shows NAT table if that is present.
I have edited the changeset to be as small as possible.
Do you spot any obvious mistakes / problems / improvements?

That fs.glob() can fail and return nil which would provoke a runtime error. I think its easier to inspect /proc/net/ip6_tables_names for IPv6 nat support.

Thanks for input, I will then modify the code to be something like:
grep -c nat /proc/net/ip6_tables_names

Thats would mean one extra fork while simple stdio would work too. Use this:
local ok, lines = pcall(io.lines, "/proc/net/ip6_tables_names")
if ok and lines then
    local line
    for line in lines do
        if line == "nat" then
            self._tables = { "filter", "nat", "mangle", "raw" }
        end
    end
end

I tried to follow the advice, but seem to get stuck at using the io.lines. I get an error regarding "io", but haven't been able to figure out if (and which) require would be needed.
/usr/lib/lua/luci/dispatcher.lua:460: Failed to execute template dispatcher target for entry '/admin/status/iptables/6'.
The called action terminated with an exception:
/usr/lib/lua/luci/template.lua:97: Failed to execute template 'admin_status/iptables'.
A runtime error occured: /usr/lib/lua/luci/sys/iptparser.lua:41: attempt to index global 'io' (a nil value)

--- a/modules/luci-base/luasrc/sys/iptparser.lua
+++ b/modules/luci-base/luasrc/sys/iptparser.lua
@@ -38,6 +38,15 @@ function IptParser.__init__( self, family )
 		self._nulladdr = "::/0"
 		self._tables   = { "filter", "mangle", "raw" }
 		self._command  = "ip6tables -t %s --line-numbers -nxvL"
+		local ok, lines = pcall(io.lines, "/proc/net/ip6_tables_names")
+		if ok and lines then
+		    local line
+		    for line in lines do
+			if line == "nat" then
+				self._tables = { "filter", "nat", "mangle", "raw" }
+			end
+		    end
+		end
 	end

 	self:_parse_rules()
--- a/modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm
+++ b/modules/luci-mod-admin-full/luasrc/view/admin_status/iptables.htm
@@ -47,6 +47,15 @@
 	local tables = { "Filter", "NAT", "Mangle", "Raw" }
 	if mode == 6 then
 		tables = { "Filter", "Mangle", "Raw" }
+		local ok, lines = pcall(io.lines, "/proc/net/ip6_tables_names")
+		if ok and lines then
+			local line
+			for line in lines do
+				if line == "nat" then
+					tables = { "Filter", "NAT", "Mangle", "Raw" }
+				end
+			end
+		end
 	end
 -%>

Many of the instances where io.lines are used, have skipped the pcall and are instead using a combination of nixio.fs.access and io.lines(...), or just only io.lines(...). But when I tried plain io.lines(), I got the same error. So I guess that there is a problem in the availability of io. The call in iptparser.lua is inside init function. Does that play a role here? Or what am I missing?  :-(

local io = require "io" next to other requires at the top

Thanks for advice. It helped, but was not enough by itself  :-(
I had already tried that, and got and error attempt to call global 'pcall' (a nil value), so I thought it to be wrong. But apparently also a line local pcall = pcall is needed in iptparser.lua to avoid similar error for pcall.
Adding that line seems to have fixed things.

Merged, thanks @hnyman !


Add marqo vector store integration

This PR intends to add a new vector store marqo.
Features:

Creating an index
Adding data to index
Querying over this data

Note: I have not yet added tests for this. Please let me know what tests to add for vector store.

Note: make linkcheck is failing for twitter URL(I did not even update this, maybe some linkcheck bug)

@sky-2002 , Thanks for working on the integration. At this point, we have paused adding new vector stores.


Mic resource not being released

I have modified the camera initialization in the example project to support the zoom feature with the following code:
private fun getCameras(context: Context): List<Device?> {
    val discovery = DeviceDiscovery(context)
    val deviceList = discovery.listLocalDevices()
    val cameras = deviceList.filter { it.descriptor.type == DeviceType.CAMERA }
    return cameras
}

Previously, the default code was:
fun Context.getSortedCameraList(): List<Device.Descriptor> =
    listAvailableDevices(this).sortedBy { it.deviceId }.filter { it.type == Device.Descriptor.DeviceType.CAMERA }

However, I have encountered an issue. When session?.release() is called, the microphone resource is not being released, and the Android OS displays the microphone usage icon in the status bar, indicating that "Mic access is being used by BasicBroadcast."

I think what's missing is releasing the DeviceDiscovery object - I would recommend saving it in your Activity or ViewModel so it stays around for the duration of your broadcast session, and can release it when the Activity or ViewModel is destroyed.


Dry run support?

🌈
Hi!  I was wondering if dry run support exists such that the textual output/feedback from the directory method is yielded without actually producing the files.  For example, my CLI accepts a number of options and can produce quite a few files, so I'd like to provide consumers of my CLI the ability to see exactly how their configuration will look and what files would be produced so they're not burdened with having to manually "undo".  If this isn't supported, perhaps someone can point me to a clever solution of overriding the method, etc.  Thanks!
For clarity, here's an example of Thor's output that I'm referring to:
exist
create  src/actions/users.js
append  src/types/index.js

# etc.

Yes. It is the pretend option. You can find it by running your_command --help

Worked like a charm, thanks!  For anyone who might stumble across this in the future:
class MyGenerator < Thor::Group
  include Thor::Actions
  add_runtime_options!
end


Simplify intrinsics generation tool and regenerate intrinsics list

Fixes #575.

Interestingly enough, a lot of intrinsics used by rustc are not listed in tblgen, which is very weird. So I think for now we can't really simplify the script...


Downloading blob for non-default namespace fails

Steps to reproduce:

Upload a blob to a custom namespace.
In the UI navigate to "Off-chain" -> "Data". Click on the "Download" icon. A file will be downloaded. The content of that file will be a FF error code: {"error":"FF10143: No result found"}

I believe this was resolved in https://github.com/hyperledger/firefly-ui/pull/194