[Key Vault] Add KeyVaultSettingsClient

Description
Resolves https://github.com/Azure/azure-sdk-for-python/issues/26869. Based on https://github.com/Azure/azure-sdk-for-js/pull/23643, https://github.com/Azure/azure-sdk-for-java/pull/31705, and https://github.com/Azure/azure-sdk-for-net/pull/31984.
The changes to generated code are from regenerating with API version 7.4-preview.1 specified as the explicit default; newer versions of autorest now only use the latest stable API version as the default version otherwise.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-keyvault-administration

/azp run python - keyvault - ci

Everything is good to go for KV -- the analyze failure is coming from a different package's dependency that doesn't match a frozen requirement. Overriding CI for now

/check-enforcer override


Add a basic Au test using strategies.yaml, with consistent hashing.

[approve ci clang-format]

[approve ci autest]

@bneradt this is ready for re-review.

Not sure this should be merged.  A similar, but more complex test (also tests fallover), has already been merged:  https://github.com/apache/trafficserver/pull/7914

Cherry-picked to v9.1.x branch.


Contributing.md : Updated contributing list😊

Try adding a student page too :)

Yes working On it 😊. @rishabh-bansal


Add another API method support

#87 😉

Result of Integration 1
Duration: 1 minute and 13 seconds
Result: Perfect build! All 56 tests passed. :+1:
Test Coverage: 54%.

:+1:


Inconsistent DDL (Column order changes, and some columns are intermittently missing)

Describe the bug
Every time the Steampipe service restarts, the DDL of one of the CRDs, the kubernetes_ec2nodeclass table, changes.
Not only does the order of the columns change, but some fields are also missing. From several experiments, sometimes .status.amis is missing, other times .status.subnets is missing, and sometimes both are missing or both are present.
Steampipe version (steampipe -v)
Example: v0.23.2
Plugin version (steampipe plugin list)
Example: hub.steampipe.io/plugins/turbot/kubernetes@latest 0.28.0
To reproduce
Steps to reproduce the behavior (please include relevant code and/or commands).
$ steampipe service stop
$ steampipe service start
<check kubernetes_ec2nodeclass table's schema with any clients like steampipe query or DataGrip>
<each time the service is restarted and the schema is dynamically generated, the DDL of the table changes>

Expected behavior
Consistent DDL. While the order of columns is a minor issue, missing columns make it difficult to write reliable queries.
Additional context
I wasn't sure if this was a bug or something else, so I initially posted it on Slack to get some info
You can check the actual DDL statements that changed with each attempt at the link above.

For reference, I specified the install directory and completely reinstalled everything from the Steampipe backend database to the plugin. After about 10 more experiments, the issue I described, and the symptoms shared in the Slack thread, were consistently repeated.

Hi @dongho-jung, I apologize for the inconvenience.
I have a few follow-up questions regarding the issue you mentioned. Please review them:

If I understand correctly, In your environment the AWS EKS cluster has been configured, right?
Is this issue occurring with all CRD tables or just a specific one?

Hi @ParthaI 😄

If I understand correctly, In your environment the AWS EKS cluster has been configured, right?
Yes you're right. I configured 3 EKS cluster environments

Is this issue occurring with all CRD tables or just a specific one?
I tried experimenting with different clusters and resources about 8 times, and other CRDs in different clusters had the same issue.

Specifically, in the case of the GitHub Actions CRD RunnerSet, up to 7 fields were missing. The original report was for the karpenter.ec2nodeclass CRD in the dev cluster, but below is the actions.runnerset CRD from the main cluster.
6th attempt
create foreign table k8s_main.kubernetes_runnerset
    (
        name text,
        uid text,
        kind text,
        api_version text,
        namespace text,
        creation_timestamp timestamp with time zone,
        labels jsonb,
        context_name text,
        source_type text,
        annotations jsonb,
        docker_enabled boolean,
        enterprise text,
        volume_size_limit jsonb,
        "group" text,
        ordinals jsonb,
        replicas bigint,
        effective_time text,
        min_ready_seconds bigint,
        service_account_name text,
        service_name text,
        template jsonb,
        volume_claim_templates jsonb,
        volume_storage_medium text,
        dockerd_within_runner_container boolean,
        github_api_credentials_from jsonb,
        image text,
        spec_labels jsonb,
        status_replicas bigint,
        path text,
        start_line bigint,
        end_line bigint,
        sp_connection_name text,
        sp_ctx jsonb,
        _ctx jsonb
        )
    server steampipe
    options (table 'kubernetes_runnerset');

comment on foreign table k8s_main.kubernetes_runnerset is 'RunnerSet is the Schema for the runnersets API. Custom resource for runnersets.actions.summerwind.dev.';

... <skipped>

comment on column k8s_main.kubernetes_runnerset._ctx is 'Steampipe context in JSON form.';

alter foreign table k8s_main.kubernetes_runnerset
    owner to root;

grant select on k8s_main.kubernetes_runnerset to steampipe_users;

8th attempt
create foreign table k8s_main.kubernetes_runnerset
    (
        name text,
        uid text,
        kind text,
        api_version text,
        namespace text,
        creation_timestamp timestamp with time zone,
        labels jsonb,
        context_name text,
        source_type text,
        annotations jsonb,
        work_volume_claim_template jsonb,
        container_mode text,
        docker_mtu bigint,
        ephemeral boolean,
        github_api_credentials_from jsonb,
        service_name text,
        volume_size_limit jsonb,
        work_dir text,
        docker_registry_mirror text,
        min_ready_seconds bigint,
        pod_management_policy text,
        revision_history_limit bigint,
        template jsonb,
        image text,
        replicas bigint,
        service_account_name text,
        update_strategy jsonb,
        enterprise text,
        volume_storage_medium text,
        "group" text,
        spec_labels jsonb,
        available_replicas bigint,
        desired_replicas bigint,
        ready_replicas bigint,
        status_replicas bigint,
        path text,
        start_line bigint,
        end_line bigint,
        sp_connection_name text,
        sp_ctx jsonb,
        _ctx jsonb
        )
    server steampipe
    options (table 'kubernetes_runnerset');

comment on foreign table k8s_main.kubernetes_runnerset is 'RunnerSet is the Schema for the runnersets API. Custom resource for runnersets.actions.summerwind.dev.';

... <skipped>

comment on column k8s_main.kubernetes_runnerset._ctx is 'Steampipe context in JSON form.';

alter foreign table k8s_main.kubernetes_runnerset
    owner to root;

grant select on k8s_main.kubernetes_runnerset to steampipe_users;

Hello @dongho-jung, I wanted to share an update with you. I've delved deeper into the issues and successfully replicated one on my end. Here are the details:

Our plugin employs the CustomResourceDefinitions().List(ctx, input) function to retrieve column names.
This function returns a structure called CustomResourceDefinition.
Within this structure, there are two attributes, Spec and Status, from which we derive the column names. For reference, see the plugin code: https://github.com/turbot/steampipe-plugin-kubernetes/blob/main/kubernetes/plugin.go#L108-L111
Occasionally, the API fails to return the properties under Status, leading to missing columns.

In my case I have CRD tables, I targeted a single table named kubernetes_cninode.

In my first few attempts I was able to see a property named features under both spec and status.

> select * from kubernetes_cninode
+------+-----+------+-------------+-----------+--------------------+--------+--------------+-------------+-------------+----------+-----------------+------+------------+----------+--------------------+--------+------+
| name | uid | kind | api_version | namespace | creation_timestamp | labels | context_name | source_type | annotations | features | status_features | path | start_line | end_line | sp_connection_name | sp_ctx | _ctx |
+------+-----+------+-------------+-----------+--------------------+--------+--------------+-------------+-------------+----------+-----------------+------+------------+----------+--------------------+--------+------+
+------+-----+------+-------------+-----------+--------------------+--------+--------------+-------------+-------------+----------+-----------------+------+------------+----------+--------------------+--------+------+

However, after a few attempts the features attribute under status did not populate.

> select * from kubernetes_cninode
+------+-----+------+-------------+-----------+--------------------+--------+--------------+-------------+-------------+----------+------+------------+----------+--------------------+--------+------+
| name | uid | kind | api_version | namespace | creation_timestamp | labels | context_name | source_type | annotations | features | path | start_line | end_line | sp_connection_name | sp_ctx | _ctx |
+------+-----+------+-------------+-----------+--------------------+--------+--------------+-------------+-------------+----------+------+------------+----------+--------------------+--------+------+
+------+-----+------+-------------+-----------+--------------------+--------+--------------+-------------+-------------+----------+------+------------+----------+--------------------+--------+------+

I explored the issue further using standalone Go code to investigate the attributes under spec and status. I suspect the problem may originate from the API we are utilizing. It's unclear whether this is intended behavior or not. Unfortunately, I couldn't determine the specific circumstances when the Status structure's attributes are not returned.
Below is the standalone code I used:
package main

import (
	"context"
	"fmt"
	"log"

	"k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	// v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
	"k8s.io/client-go/tools/clientcmd"
	clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
)

func main() {
	// Assuming the path to your kubeconfig is correctly provided
	kubeconfigPath := "/apthe/to/.kube/config"

	// Prepare the configuration using the specified context
	configLoadingRules := clientcmd.ClientConfigLoadingRules{ExplicitPath: kubeconfigPath}
	configOverrides := clientcmd.ConfigOverrides{
		CurrentContext: "<Current Context>", // Replace with your context name
		Context:        clientcmdapi.Context{},
	}

	// Build the configuration from the rules and overrides
	config, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(&configLoadingRules, &configOverrides).ClientConfig()
	if err != nil {
		log.Fatalf("Error building kubeconfig: %s", err)
	}

	// Create a Clientset for apiextensions
	apiextensionsClient, err := clientset.NewForConfig(config)
	if err != nil {
		log.Fatalf("Failed to create apiextensions client: %s", err)
	}

	// Get CustomResourceDefinitions
	crds, err := apiextensionsClient.ApiextensionsV1().CustomResourceDefinitions().List(context.TODO(), metav1.ListOptions{})
	if err != nil {
		log.Fatalf("Failed to get CustomResourceDefinitions: %s", err)
	}

	fmt.Printf("There are %d CRDs in the cluster\n", len(crds.Items))
	for _, crd := range crds.Items {
		if len(crd.Spec.Versions) > 0 {
			for _, version := range crd.Spec.Versions {
				if version.Served {
					if version.Schema != nil && version.Schema.OpenAPIV3Schema != nil {
						schemaSpec := version.Schema.OpenAPIV3Schema.Properties["spec"]
						for k, _ := range schemaSpec.Properties {

							fmt.Printf("Specs Key ====>>> %s \n\n", k)
						}
						schemaStatus := version.Schema.OpenAPIV3Schema.Properties["status"]
						if schemaStatus.Properties != nil {
							data := schemaStatus.Properties
							for k, _ := range data {

								fmt.Printf("Status Key ====>>> %s \n\n", k)
							}
						}
						// fmt.Printf("Specs ====>>> %+v \n\n", version.Schema.OpenAPIV3Schema.Properties["spec"])
						// fmt.Printf("Status ====>>> %+v \n\n", version.Schema.OpenAPIV3Schema.Properties["status"])
					}
				}
			}
		}
	}
}

I'll continue to investigate this issue further. If you have any additional context or insights, please do share them.
Thank you!

Thank you for the prompt and professional sharing of information.
I'm glad that a reproducible standalone has been developed. I expect this will accelerate troubleshooting.
Please feel free to mention me if there is anything you need from me.
Have a nice day : )

Hi @ParthaI
I tried to verify if there were any intermittent drops occurring from CustomResourceDefinitions().List() using the code you provided. To facilitate easy diffing, I sorted the CRD and internal keys alphabetically. However, after testing about five times, I did not observe any noticeable drops from this method.
package main

import (
	"context"
	"fmt"
	"log"
	"sort"

	"k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/client-go/tools/clientcmd"
	clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
)

func main() {
	// Assuming the path to your kubeconfig is correctly provided
	kubeconfigPath :=  "<YourConfigPath>"  // "/Users/dongho/.kube/config"

	// Prepare the configuration using the specified context
	configLoadingRules := clientcmd.ClientConfigLoadingRules{ExplicitPath: kubeconfigPath}
	configOverrides := clientcmd.ConfigOverrides{
		CurrentContext: "<YourContext>", // "dev"
		Context:        clientcmdapi.Context{},
	}

	// Build the configuration from the rules and overrides
	config, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(&configLoadingRules, &configOverrides).ClientConfig()
	if err != nil {
		log.Fatalf("Error building kubeconfig: %s", err)
	}

	// Create a Clientset for apiextensions
	apiextensionsClient, err := clientset.NewForConfig(config)
	if err != nil {
		log.Fatalf("Failed to create apiextensions client: %s", err)
	}

	// Get CustomResourceDefinitions
	crds, err := apiextensionsClient.ApiextensionsV1().CustomResourceDefinitions().List(context.TODO(), metav1.ListOptions{})
	if err != nil {
		log.Fatalf("Failed to get CustomResourceDefinitions: %s", err)
	}

	crdDetails := make(map[string]map[string][]string)

	for _, crd := range crds.Items {
		crdName := crd.Name
		crdDetails[crdName] = make(map[string][]string)

		if len(crd.Spec.Versions) > 0 {
			for _, version := range crd.Spec.Versions {
				if version.Served {
					if version.Schema != nil && version.Schema.OpenAPIV3Schema != nil {
						schemaSpec := version.Schema.OpenAPIV3Schema.Properties["spec"]
						specKeys := []string{}
						for k := range schemaSpec.Properties {
							specKeys = append(specKeys, k)
						}
						sort.Strings(specKeys)
						crdDetails[crdName]["spec"] = specKeys

						schemaStatus := version.Schema.OpenAPIV3Schema.Properties["status"]
						statusKeys := []string{}
						if schemaStatus.Properties != nil {
							for k := range schemaStatus.Properties {
								statusKeys = append(statusKeys, k)
							}
						}
						sort.Strings(statusKeys)
						crdDetails[crdName]["status"] = statusKeys
					}
				}
			}
		}
	}

	crdNames := make([]string, 0, len(crdDetails))
	for name := range crdDetails {
		crdNames = append(crdNames, name)
	}
	sort.Strings(crdNames)

	fmt.Printf("There are %d CRDs in the cluster\n", len(crds.Items))
	for _, crdName := range crdNames {
		fmt.Printf("CRD Name: %s\n", crdName)
		if specKeys, ok := crdDetails[crdName]["spec"]; ok {
			fmt.Printf("  Spec Keys:\n")
			for _, key := range specKeys {
				fmt.Printf("    - %s\n", key)
			}
		}
		if statusKeys, ok := crdDetails[crdName]["status"]; ok {
			fmt.Printf("  Status Keys:\n")
			for _, key := range statusKeys {
				fmt.Printf("    - %s\n", key)
			}
		}
		fmt.Println()
	}
}

However, after a few attempts the features attribute under status did not populate.

Upon further review, although the order changed slightly, it appears that the features are present. This phenomenon might be due to another part of the system.

Did you notice that the dropped columns (status.amis and status.subnets) are consistently returned from that standalone code?

That's strange. When I ran the standalone code about 8 times, I could no longer reproduce the issue. (I did make some minor modifications for better visibility, though.)
~/tmp/2024-05-30
❯ go run main.go                                                                                11:55:30
There are 1 CRDs containing 'nodeclass' in the cluster
CRD Name: ec2nodeclasses.karpenter.k8s.aws
  Spec Keys: #13
    - amiFamily
    - amiSelectorTerms
    - blockDeviceMappings
    - context
    - detailedMonitoring
    - instanceProfile
    - instanceStorePolicy
    - metadataOptions
    - role
    - securityGroupSelectorTerms
    - subnetSelectorTerms
    - tags
    - userData
  Status Keys: #4
    - amis
    - instanceProfile
    - securityGroups
    - subnets

~/tmp/2024-05-30 6s
❯ go run main.go                                                                                11:59:35
There are 1 CRDs containing 'nodeclass' in the cluster
CRD Name: ec2nodeclasses.karpenter.k8s.aws
  Spec Keys: #13
    - amiFamily
    - amiSelectorTerms
    - blockDeviceMappings
    - context
    - detailedMonitoring
    - instanceProfile
    - instanceStorePolicy
    - metadataOptions
    - role
    - securityGroupSelectorTerms
    - subnetSelectorTerms
    - tags
    - userData
  Status Keys: #4
    - amis
    - instanceProfile
    - securityGroups
    - subnets

~/tmp/2024-05-30
❯ go run main.go                                                                                11:59:50
There are 1 CRDs containing 'nodeclass' in the cluster
CRD Name: ec2nodeclasses.karpenter.k8s.aws
  Spec Keys: #13
    - amiFamily
    - amiSelectorTerms
    - blockDeviceMappings
    - context
    - detailedMonitoring
    - instanceProfile
    - instanceStorePolicy
    - metadataOptions
    - role
    - securityGroupSelectorTerms
    - subnetSelectorTerms
    - tags
    - userData
  Status Keys: #4
    - amis
    - instanceProfile
    - securityGroups
    - subnets

~/tmp/2024-05-30
❯ go run main.go                                                                                12:00:02
There are 1 CRDs containing 'nodeclass' in the cluster
CRD Name: ec2nodeclasses.karpenter.k8s.aws
  Spec Keys: #13
    - amiFamily
    - amiSelectorTerms
    - blockDeviceMappings
    - context
    - detailedMonitoring
    - instanceProfile
    - instanceStorePolicy
    - metadataOptions
    - role
    - securityGroupSelectorTerms
    - subnetSelectorTerms
    - tags
    - userData
  Status Keys: #4
    - amis
    - instanceProfile
    - securityGroups
    - subnets

~/tmp/2024-05-30
❯ go run main.go                                                                                12:00:09
There are 1 CRDs containing 'nodeclass' in the cluster
CRD Name: ec2nodeclasses.karpenter.k8s.aws
  Spec Keys: #13
    - amiFamily
    - amiSelectorTerms
    - blockDeviceMappings
    - context
    - detailedMonitoring
    - instanceProfile
    - instanceStorePolicy
    - metadataOptions
    - role
    - securityGroupSelectorTerms
    - subnetSelectorTerms
    - tags
    - userData
  Status Keys: #4
    - amis
    - instanceProfile
    - securityGroups
    - subnets

~/tmp/2024-05-30
❯ go run main.go                                                                                12:00:15
There are 1 CRDs containing 'nodeclass' in the cluster
CRD Name: ec2nodeclasses.karpenter.k8s.aws
  Spec Keys: #13
    - amiFamily
    - amiSelectorTerms
    - blockDeviceMappings
    - context
    - detailedMonitoring
    - instanceProfile
    - instanceStorePolicy
    - metadataOptions
    - role
    - securityGroupSelectorTerms
    - subnetSelectorTerms
    - tags
    - userData
  Status Keys: #4
    - amis
    - instanceProfile
    - securityGroups
    - subnets

~/tmp/2024-05-30
❯ go run main.go                                                                                12:00:22
There are 1 CRDs containing 'nodeclass' in the cluster
CRD Name: ec2nodeclasses.karpenter.k8s.aws
  Spec Keys: #13
    - amiFamily
    - amiSelectorTerms
    - blockDeviceMappings
    - context
    - detailedMonitoring
    - instanceProfile
    - instanceStorePolicy
    - metadataOptions
    - role
    - securityGroupSelectorTerms
    - subnetSelectorTerms
    - tags
    - userData
  Status Keys: #4
    - amis
    - instanceProfile
    - securityGroups
    - subnets

~/tmp/2024-05-30
❯ go run main.go                                                                                12:00:30
There are 1 CRDs containing 'nodeclass' in the cluster
CRD Name: ec2nodeclasses.karpenter.k8s.aws
  Spec Keys: #13
    - amiFamily
    - amiSelectorTerms
    - blockDeviceMappings
    - context
    - detailedMonitoring
    - instanceProfile
    - instanceStorePolicy
    - metadataOptions
    - role
    - securityGroupSelectorTerms
    - subnetSelectorTerms
    - tags
    - userData
  Status Keys: #4
    - amis
    - instanceProfile
    - securityGroups
    - subnets

this is the modified code
package main

import (
	"context"
	"fmt"
	"log"
	"sort"
	"strings"

	apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/client-go/tools/clientcmd"
	clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
)

func main() {
	kubeconfigPath := "/Users/dongho/.kube/config"

	configLoadingRules := clientcmd.ClientConfigLoadingRules{ExplicitPath: kubeconfigPath}
	configOverrides := clientcmd.ConfigOverrides{
		CurrentContext: "dev",
		Context:        clientcmdapi.Context{},
	}

	config, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(&configLoadingRules, &configOverrides).ClientConfig()
	if err != nil {
		log.Fatalf("Error building kubeconfig: %s", err)
	}

	crdClient, err := apiextensionsv1.NewForConfig(config)
	if err != nil {
		log.Fatalf("Failed to create apiextensions client: %s", err)
	}

	crds, err := crdClient.ApiextensionsV1().CustomResourceDefinitions().List(context.TODO(), metav1.ListOptions{})
	if err != nil {
		log.Fatalf("Failed to get CustomResourceDefinitions: %s", err)
	}

	crdDetails := make(map[string]map[string][]string)

	for _, crd := range crds.Items {
		crdName := crd.Name
		if !strings.Contains(strings.ToLower(crdName), "nodeclass") {
			continue
		}
		crdDetails[crdName] = make(map[string][]string)

		if len(crd.Spec.Versions) > 0 {
			for _, version := range crd.Spec.Versions {
				if version.Served {
					if version.Schema != nil && version.Schema.OpenAPIV3Schema != nil {
						schemaSpec := version.Schema.OpenAPIV3Schema.Properties["spec"]
						specKeys := []string{}
						for k := range schemaSpec.Properties {
							specKeys = append(specKeys, k)
						}
						sort.Strings(specKeys)
						crdDetails[crdName]["spec"] = specKeys

						schemaStatus := version.Schema.OpenAPIV3Schema.Properties["status"]
						statusKeys := []string{}
						if schemaStatus.Properties != nil {
							for k := range schemaStatus.Properties {
								statusKeys = append(statusKeys, k)
							}
						}
						sort.Strings(statusKeys)
						crdDetails[crdName]["status"] = statusKeys
					}
				}
			}
		}
	}

	crdNames := make([]string, 0, len(crdDetails))
	for name := range crdDetails {
		crdNames = append(crdNames, name)
	}
	sort.Strings(crdNames)

	fmt.Printf("There are %d CRDs containing 'nodeclass' in the cluster\n", len(crdDetails))
	for _, crdName := range crdNames {
		fmt.Printf("CRD Name: %s\n", crdName)
		if specKeys, ok := crdDetails[crdName]["spec"]; ok {
			fmt.Printf("  Spec Keys: #%d\n", len(specKeys))
			for _, key := range specKeys {
				fmt.Printf("    - %s\n", key)
			}
		}
		if statusKeys, ok := crdDetails[crdName]["status"]; ok {
			fmt.Printf("  Status Keys: #%d\n", len(statusKeys))
			for _, key := range statusKeys {
				fmt.Printf("    - %s\n", key)
			}
		}
		fmt.Println()
	}
}

After a few attempts, the status_features column was no longer visible.

Ah, I see that I made a mistake regarding that part. The second table you uploaded shows the features, but it does not show the status_features. I apologize for the confusion.

Not just looking at a single CRD, but considering all the keys of all CRDs, the total number of keys consistently comes out to 1218 when I run it multiple times.
package main

import (
	"context"
	"fmt"
	"log"
	"sort"

	apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/client-go/tools/clientcmd"
	clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
)

func main() {
	kubeconfigPath := "/Users/dongho/.kube/config"

	configLoadingRules := clientcmd.ClientConfigLoadingRules{ExplicitPath: kubeconfigPath}
	configOverrides := clientcmd.ConfigOverrides{
		CurrentContext: "dev",
		Context:        clientcmdapi.Context{},
	}

	config, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(&configLoadingRules, &configOverrides).ClientConfig()
	if err != nil {
		log.Fatalf("Error building kubeconfig: %s", err)
	}

	crdClient, err := apiextensionsv1.NewForConfig(config)
	if err != nil {
		log.Fatalf("Failed to create apiextensions client: %s", err)
	}

	crds, err := crdClient.ApiextensionsV1().CustomResourceDefinitions().List(context.TODO(), metav1.ListOptions{})
	if err != nil {
		log.Fatalf("Failed to get CustomResourceDefinitions: %s", err)
	}

	totalLeafKeys := 0

	for _, crd := range crds.Items {
		crdName := crd.Name
		fmt.Printf("CRD Name: %s\n", crdName)

		if len(crd.Spec.Versions) > 0 {
			for _, version := range crd.Spec.Versions {
				if version.Served {
					if version.Schema != nil && version.Schema.OpenAPIV3Schema != nil {
						schemaSpec := version.Schema.OpenAPIV3Schema.Properties["spec"]
						specKeys := []string{}
						for k := range schemaSpec.Properties {
							specKeys = append(specKeys, k)
						}
						sort.Strings(specKeys)
						fmt.Printf("  Spec Keys: #%d\n", len(specKeys))
						for _, key := range specKeys {
							fmt.Printf("    - %s\n", key)
						}
						totalLeafKeys += len(specKeys)

						schemaStatus := version.Schema.OpenAPIV3Schema.Properties["status"]
						statusKeys := []string{}
						if schemaStatus.Properties != nil {
							for k := range schemaStatus.Properties {
								statusKeys = append(statusKeys, k)
							}
						}
						sort.Strings(statusKeys)
						fmt.Printf("  Status Keys: #%d\n", len(statusKeys))
						for _, key := range statusKeys {
							fmt.Printf("    - %s\n", key)
						}
						totalLeafKeys += len(statusKeys)
					}
				}
			}
		}
		fmt.Println()
	}

	fmt.Printf("Total number of leaf keys: %d\n", totalLeafKeys)
}

...
Total number of leaf keys: 1218
...
Total number of leaf keys: 1218
...
Total number of leaf keys: 1218
...
Total number of leaf keys: 1218
...

I wondered if it might be a version issue, so I changed the standalone code dependency from apiextensions-apiserver v0.30.1 to v0.25.2, which the plugin currently relies on, and experimented again, but I still got the same result..

Hmm, that's strange. I can see you are getting the keys as expected.
CRD Name: ec2nodeclasses.karpenter.k8s.aws
  Spec Keys: #13
    - amiFamily
    - amiSelectorTerms
    - blockDeviceMappings
    - context
    - detailedMonitoring
    - instanceProfile
    - instanceStorePolicy
    - metadataOptions
    - role
    - securityGroupSelectorTerms
    - subnetSelectorTerms
    - tags
    - userData
  Status Keys: #4
    - amis
    - instanceProfile
    - securityGroups
    - subnets

Hmm, that's strange. It seems that we are consistently getting the missing keys (status.amis, status.subnets) every time from the underlying API we are using today.
CRD Name: ec2nodeclasses.karpenter.k8s.aws
  Spec Keys: #13
    - amiFamily
    - amiSelectorTerms
    - blockDeviceMappings
    - context
    - detailedMonitoring
    - instanceProfile
    - instanceStorePolicy
    - metadataOptions
    - role
    - securityGroupSelectorTerms
    - subnetSelectorTerms
    - tags
    - userData
  Status Keys: #4
    - amis
    - instanceProfile
    - securityGroups
    - subnets

Could you please try querying the table ec2nodeclasses.karpenter.k8s.aws using Steampipe (select * from <Table Name>) again and see if you observe the same behavior (sometimes .status.amis is missing, other times .status.subnets is missing, and sometimes both are missing or both are present)?
Note: Before running the query, give a few seconds to load the table (Steampipe takes a few seconds to load the configurations/dynamic tables). Follow these steps:

In your terminal, run the command steampipe query.
Pause for a few seconds (10-15 seconds).
Run the query select * from <Table Name>.

Could you please try querying the table ec2nodeclasses.karpenter.k8s.aws using Steampipe (select * from ) again and see if you observe the same behavior (sometimes .status.amis is missing, other times .status.subnets is missing, and sometimes both are missing or both are present)?

~/tmp/foo 12s
❯ sp query                                                                                13:55:11
Welcome to Steampipe v0.23.2
For more information, type .help
> select ordinal_position, column_name from information_schema.columns where table_schema='k8s_dev' and table_name='kubernetes_ec2nodeclass'
+------------------+-------------------------------+
| ordinal_position | column_name                   |
+------------------+-------------------------------+
| 1                | name                          |
| 2                | uid                           |
| 3                | kind                          |
| 4                | api_version                   |
| 5                | namespace                     |
| 6                | creation_timestamp            |
| 7                | labels                        |
| 8                | context_name                  |
| 9                | source_type                   |
| 10               | annotations                   |
| 11               | ami_selector_terms            |
| 12               | instance_profile              |
| 13               | instance_store_policy         |
| 14               | metadata_options              |
| 15               | block_device_mappings         |
| 16               | context                       |
| 17               | detailed_monitoring           |
| 18               | ami_family                    |
| 19               | role                          |
| 20               | security_group_selector_terms |
| 21               | subnet_selector_terms         |
| 22               | tags                          |
| 23               | user_data                     |
| 24               | subnets                       |
| 25               | amis                          |
| 26               | status_instance_profile       |
| 27               | path                          |
| 28               | start_line                    |
| 29               | end_line                      |
| 30               | sp_connection_name            |
| 31               | sp_ctx                        |
| 32               | _ctx                          |
+------------------+-------------------------------+
>

~/tmp/foo 14s
❯ sp query                                                                                13:55:36
Welcome to Steampipe v0.23.2
For more information, type .help
> select ordinal_position, column_name from information_schema.columns where table_schema='k8s_dev' and table_name='kubernetes_ec2nodeclass'
+------------------+-------------------------------+
| ordinal_position | column_name                   |
+------------------+-------------------------------+
| 1                | name                          |
| 2                | uid                           |
| 3                | kind                          |
| 4                | api_version                   |
| 5                | namespace                     |
| 6                | creation_timestamp            |
| 7                | labels                        |
| 8                | context_name                  |
| 9                | source_type                   |
| 10               | annotations                   |
| 11               | ami_selector_terms            |
| 12               | block_device_mappings         |
| 13               | instance_profile              |
| 14               | metadata_options              |
| 15               | role                          |
| 16               | subnet_selector_terms         |
| 17               | tags                          |
| 18               | ami_family                    |
| 19               | context                       |
| 20               | instance_store_policy         |
| 21               | security_group_selector_terms |
| 22               | user_data                     |
| 23               | detailed_monitoring           |
| 24               | amis                          |
| 25               | status_instance_profile       |
| 26               | path                          |
| 27               | start_line                    |
| 28               | end_line                      |
| 29               | sp_connection_name            |
| 30               | sp_ctx                        |
| 31               | _ctx                          |
+------------------+-------------------------------+
>

~/tmp/foo 11s
❯ sp query                                                                                13:55:48
Welcome to Steampipe v0.23.2
For more information, type .help
> select ordinal_position, column_name from information_schema.columns where table_schema='k8s_dev' and table_name='kubernetes_ec2nodeclass'
+------------------+-------------+
| ordinal_position | column_name |
+------------------+-------------+
+------------------+-------------+
> select ordinal_position, column_name from information_schema.columns where table_schema='k8s_dev' and table_name='kubernetes_ec2nodeclass'
+------------------+-------------+
| ordinal_position | column_name |
+------------------+-------------+
+------------------+-------------+
> select ordinal_position, column_name from information_schema.columns where table_schema='k8s_dev' and table_name='kubernetes_ec2nodeclass'
+------------------+-------------+
| ordinal_position | column_name |
+------------------+-------------+
+------------------+-------------+
>

~/tmp/foo 21s
❯ sp query                                                                                13:56:09
Welcome to Steampipe v0.23.2
For more information, type .help
> select ordinal_position, column_name from information_schema.columns where table_schema='k8s_dev' and table_name='kubernetes_ec2nodeclass'
+------------------+-------------------------------+
| ordinal_position | column_name                   |
+------------------+-------------------------------+
| 1                | name                          |
| 2                | uid                           |
| 3                | kind                          |
| 4                | api_version                   |
| 5                | namespace                     |
| 6                | creation_timestamp            |
| 7                | labels                        |
| 8                | context_name                  |
| 9                | source_type                   |
| 10               | annotations                   |
| 11               | ami_family                    |
| 12               | instance_store_policy         |
| 13               | security_group_selector_terms |
| 14               | instance_profile              |
| 15               | metadata_options              |
| 16               | role                          |
| 17               | ami_selector_terms            |
| 18               | block_device_mappings         |
| 19               | user_data                     |
| 20               | context                       |
| 21               | detailed_monitoring           |
| 22               | subnet_selector_terms         |
| 23               | tags                          |
| 24               | amis                          |
| 25               | status_instance_profile       |
| 26               | path                          |
| 27               | start_line                    |
| 28               | end_line                      |
| 29               | sp_connection_name            |
| 30               | sp_ctx                        |
| 31               | _ctx                          |
+------------------+-------------------------------+
>
>

~/tmp/foo 21s
❯ sp query                                                                                13:56:31
Welcome to Steampipe v0.23.2
For more information, type .help
> select ordinal_position, column_name from information_schema.columns where table_schema='k8s_dev' and table_name='kubernetes_ec2nodeclass'
+------------------+-------------------------------+
| ordinal_position | column_name                   |
+------------------+-------------------------------+
| 1                | name                          |
| 2                | uid                           |
| 3                | kind                          |
| 4                | api_version                   |
| 5                | namespace                     |
| 6                | creation_timestamp            |
| 7                | labels                        |
| 8                | context_name                  |
| 9                | source_type                   |
| 10               | annotations                   |
| 11               | instance_profile              |
| 12               | subnet_selector_terms         |
| 13               | block_device_mappings         |
| 14               | instance_store_policy         |
| 15               | detailed_monitoring           |
| 16               | context                       |
| 17               | metadata_options              |
| 18               | tags                          |
| 19               | user_data                     |
| 20               | ami_family                    |
| 21               | role                          |
| 22               | security_group_selector_terms |
| 23               | ami_selector_terms            |
| 24               | security_groups               |
| 25               | subnets                       |
| 26               | amis                          |
| 27               | status_instance_profile       |
| 28               | path                          |
| 29               | start_line                    |
| 30               | end_line                      |
| 31               | sp_connection_name            |
| 32               | sp_ctx                        |
| 33               | _ctx                          |
+------------------+-------------------------------+
>

In Steampipe, the issue still recurs. Regarding the part "Before running the query, give a few seconds to load the table," the intermittent drop phenomenon was reproduced in various cases, whether I didn't wait at all, waited for 5 seconds, or waited for 1 minute before running the query.

For reference, if the cache is turned off, the ordinary position interestingly gets mixed up.
~/tmp/foo 12s
❯ export STEAMPIPE_CACHE=false                                                                                14:03:32

~/tmp/foo
❯ sp query                                                                                14:03:32
Welcome to Steampipe v0.23.2
For more information, type .help
> select ordinal_position, column_name from information_schema.columns where table_schema='k8s_dev' and table_name='kubernetes_ec2nodeclass'
+------------------+-------------------------------+
| ordinal_position | column_name                   |
+------------------+-------------------------------+
| 31               | _ctx                          |
| 6                | creation_timestamp            |
| 7                | labels                        |
| 10               | annotations                   |
| 11               | tags                          |
| 12               | ami_selector_terms            |
| 13               | security_group_selector_terms |
| 15               | subnet_selector_terms         |
| 16               | detailed_monitoring           |
| 17               | metadata_options              |
| 20               | block_device_mappings         |
| 24               | amis                          |
| 27               | start_line                    |
| 28               | end_line                      |
| 30               | sp_ctx                        |
| 25               | status_instance_profile       |
| 26               | path                          |
| 2                | uid                           |
| 3                | kind                          |
| 4                | api_version                   |
| 5                | namespace                     |
| 18               | role                          |
| 19               | user_data                     |
| 8                | context_name                  |
| 9                | source_type                   |
| 29               | sp_connection_name            |
| 21               | context                       |
| 22               | ami_family                    |
| 23               | instance_profile              |
| 14               | instance_store_policy         |
| 1                | name                          |
+------------------+-------------------------------+
>

~/tmp/foo 18s
❯ sp query                                                                                14:03:54
Welcome to Steampipe v0.23.2
For more information, type .help
> select ordinal_position, column_name from information_schema.columns where table_schema='k8s_dev' and table_name='kubernetes_ec2nodeclass'
+------------------+-------------------------------+
| ordinal_position | column_name                   |
+------------------+-------------------------------+
| 33               | _ctx                          |
| 6                | creation_timestamp            |
| 7                | labels                        |
| 10               | annotations                   |
| 11               | ami_selector_terms            |
| 15               | metadata_options              |
| 17               | security_group_selector_terms |
| 18               | tags                          |
| 20               | detailed_monitoring           |
| 22               | subnet_selector_terms         |
| 23               | block_device_mappings         |
| 24               | security_groups               |
| 25               | subnets                       |
| 26               | amis                          |
| 29               | start_line                    |
| 30               | end_line                      |
| 32               | sp_ctx                        |
| 2                | uid                           |
| 3                | kind                          |
| 4                | api_version                   |
| 5                | namespace                     |
| 28               | path                          |
| 19               | ami_family                    |
| 8                | context_name                  |
| 9                | source_type                   |
| 31               | sp_connection_name            |
| 21               | instance_store_policy         |
| 12               | instance_profile              |
| 13               | user_data                     |
| 14               | context                       |
| 1                | name                          |
| 16               | role                          |
| 27               | status_instance_profile       |
+------------------+-------------------------------+
>

~/tmp/foo 11s
❯ sp query                                                                                14:04:06
Welcome to Steampipe v0.23.2
For more information, type .help
> select ordinal_position, column_name from information_schema.columns where table_schema='k8s_dev' and table_name='kubernetes_ec2nodeclass'
+------------------+-------------------------------+
| ordinal_position | column_name                   |
+------------------+-------------------------------+
| 31               | _ctx                          |
| 6                | creation_timestamp            |
| 7                | labels                        |
| 10               | annotations                   |
| 12               | detailed_monitoring           |
| 14               | security_group_selector_terms |
| 16               | ami_selector_terms            |
| 18               | tags                          |
| 20               | block_device_mappings         |
| 22               | metadata_options              |
| 23               | subnet_selector_terms         |
| 24               | amis                          |
| 27               | start_line                    |
| 28               | end_line                      |
| 30               | sp_ctx                        |
| 29               | sp_connection_name            |
| 17               | role                          |
| 2                | uid                           |
| 3                | kind                          |
| 4                | api_version                   |
| 5                | namespace                     |
| 1                | name                          |
| 19               | user_data                     |
| 8                | context_name                  |
| 9                | source_type                   |
| 25               | status_instance_profile       |
| 11               | context                       |
| 21               | instance_store_policy         |
| 13               | instance_profile              |
| 26               | path                          |
| 15               | ami_family                    |
+------------------+-------------------------------+
>

Thank you so much, @dongho-jung, for your cooperation.
Hmm, it is quite strange. I will investigate the plugin code further. There might be a gap in the table schema building process. I will reach out if I need anything else from you.
Thanks again for all your information and help!

Hello @ParthaI. I had some time this morning to dig a bit deeper.
I confirmed that the issue was resolved by making the following modifications. Could you please review them?

Sure, here's the sentence rewritten for better clarity and politeness:

Awesome, @dongho-jung! It's great to hear that the issue got resolved. I also had a doubt about this block of code, something was going wrong there.

We were setting the flag value to 1 if there was a match.
However, we were not resetting the flag value in any other conditions.

I think the changes look good. I tested the following cases:

Only with spec properties.
With both spec and status properties (different attribute names).
With both spec and status properties (same attribute name).

Thanks!

Sure, here's the sentence rewritten for better clarity and politeness:

is that chatGPT thing? XD


Introduce out of the box code split API

Basically thinking:

Create small component wrapper to define code split points
Wrap every animation/baba/baba manager
???
All animations now code split, initial effect on your bundle = few hundred bytes

Who thinks this is a good idea?

maybe later


[mongodb] Add pendingRecords and numRecordsInErrors metrics for legacy source

This PR contains following changes:

Added pendingRecords and numRecordsInErrors for CDC connector metrics
Registered above two metrics in MongoSource (Legacy)
Registered numRecordsInErrors metric in MongoSource (Modern)

Some concerns:

pendingRecords now yields how many records ConnectorSourceTask::poll() received. However it won't exceed poll.max.batch.size, so it won't be accurate when pending data is huge.
Currently, metric guage registering is hard-encoded in base classes, so this change affects every CDC connector. Maybe we should allow each connector decide its metrics?

Marked ready for @leonardBang's review.


pypardiso will not build out of pypi on LINUX cluster

I am having problems building pypardiso on our LINUX cluster using pypi:
[jhein@cosmos-sw ~]$ pip install --prefix=$HOME/test_paradiso pypardiso
Collecting pypardiso
  Using cached pypardiso-0.4.2-py3-none-any.whl (10 kB)
Requirement already satisfied: scipy in /sw/easybuild_milan/software/SciPy-bundle/2022.05-foss-2022a/lib/python3.10/site-packages (from pypardiso) (1.8.1)
Collecting mkl
  Using cached mkl-2023.2.0-py2.py3-none-manylinux1_x86_64.whl (258.0 MB)
Requirement already satisfied: numpy in /sw/easybuild_milan/software/SciPy-bundle/2022.05-foss-2022a/lib/python3.10/site-packages (from pypardiso) (1.22.3)
Collecting tbb==2021.*
  Using cached tbb-2021.10.0-py2.py3-none-manylinux1_x86_64.whl (4.4 MB)
Collecting intel-openmp==2023.*
  Using cached intel_openmp-2023.2.0-py2.py3-none-manylinux1_x86_64.whl (20.2 MB)
Installing collected packages: tbb, intel-openmp, mkl, pypardiso
Successfully installed intel-openmp-2023.2.0 mkl-2023.2.0 pypardiso-0.4.2 tbb-2021.10.0

So far so good.   When I try to run it, I get
[jhein@cosmos-sw ~]$ python
Python 3.10.4 (main, Jan 30 2023, 12:07:46) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pypardiso
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/jhein/test_paradiso/lib/python3.10/site-packages/pypardiso/__init__.py", line 4, in <module>
    from .scipy_aliases import spsolve, factorized
  File "/home/jhein/test_paradiso/lib/python3.10/site-packages/pypardiso/scipy_aliases.py", line 9, in <module>
    pypardiso_solver = PyPardisoSolver()
  File "/home/jhein/test_paradiso/lib/python3.10/site-packages/pypardiso/pardiso_wrapper.py", line 93, in __init__
    raise ImportError('Shared library mkl_rt not found')
ImportError: Shared library mkl_rt not found

The issue is that the pypi installed mkl supplies a libmkl_rt.so.2 but not a libmkl_rt.so.   If add another mkl library to the path which supplies a libmkl_rt.so`, the module will load.
Could you please comment?

As far as I can tell the reason the mkl_rt library isn't discovered is because you use the --prefix option with pip install.
I'd recommend to use a virtual environment instead to install pypardiso (as is also suggested in the README). Something like this should do the trick:
cd $HOME/test_paradiso
python -m venv pypardiso_venv
source pypardiso_venv/bin/activate
pip install pypardiso

see https://docs.python.org/3.10/library/venv.html

If you don't want to use a virtual environment, pip install --user pypardiso should also work.

Or if you just want to fix it for your current installation, creating a symbolic link will work:
cd $HOME/test_paradiso/lib
ln -s libmkl_rt.so.2 libmkl_rt.so

I'm closing this issue, feel free to reopen it if my suggestions didn't fix your problem.


test Windows install path ACL

What does this PR do?

Add test assertion that ddagentuser does not have an ACE on the install root.
Motivation

precautionary against regressions
https://datadoghq.atlassian.net/browse/WINA-975
Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

N/A, test change

/merge

/merge


Connects, but doesn't work

My bot connects, and tries to respond but... it blows on my cmd

[2023-04-25 13:00:04] [ERROR   ] discord.app_commands.tree: Ignoring exception in command 'reset'
Traceback (most recent call last):
File "C:\Users\x\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\discord\app_commands\commands.py", line 842, in _do_call
return await self.callback(interaction, **params)  # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\x\Downloads\New folder\BotDIscord\BingGPT-Discord-Bot\dcbot\bot.py", line 134, in reset
await interaction.response.send_message("Alfred conversation has been reset")
File "C:\Users\x\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\discord\interactions.py", line 778, in send_message
await adapter.create_interaction_response(
File "C:\Users\x\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\discord\webhook\async.py", line 221, in request
raise HTTPException(response, data)
discord.errors.HTTPException: 400 Bad Request (error code: 40060): Interaction has already been acknowledged.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\x\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\discord\app_commands\tree.py", line 1248, in _call
await command._invoke_with_namespace(interaction, namespace)
File "C:\Users\x\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\discord\app_commands\commands.py", line 867, in _invoke_with_namespace
return await self._do_call(interaction, transformed_values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\x\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\discord\app_commands\commands.py", line 860, in _do_call
raise CommandInvokeError(self, e) from e
discord.app_commands.errors.CommandInvokeError: Command 'reset' raised an exception: HTTPException: 400 Bad Request (error code: 40060): Interaction has already been acknowledged.

Most probably there's something wrong with cookies.json. Please check and try again if it helps.

Hi there. I am having the same issue.
What could be wrong with the cookies? Everything seems fine.
Exported cookies directly from the cookies editor. I tried it again with the session box checked, yet, still getting the same issue when loading responses..... My conversationSignature is set to None since the key was not found in the dict after adjusting to .struct.get('coversationSignature') to workaround an inital keyError.
screenshot.

I can confirm the issue. /ask command throws an exception


⚠ Bofrost.de has degraded performance

In 9b33535, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1739 ms

Resolved: Bofrost.de performance has improved in 87aebc0 after 6 minutes.


Server side resuming

Hi @igolaizola,
6 years later, it's been a while 😄
I naively tried to change tls.Client() to tls.Server() (in both clientInitialize and clientResume) as my use case is transferring open sockets from a server app to an updated instance of it. Then I did as written in the README. Of course it failed (error: local error: tls: bad record MAC).
I have very little knowledge about TLS and its Go implementation, do you think there is a possibility to achieve that ? What would it take ?
Thank you very much!
For reference, here is my relevant portion of code
	conn, err := lis.Accept()
	if err != nil {
		panic(err)
	}

	cl, err := resume_tls.Client(conn, config, nil)
	if err != nil {
		panic(err)
	}
	cl.Handshake()

	state := cl.State()
	cli, err := resume_tls.Client(conn, config, state)
	if err != nil {
		panic(err) <--- panics here with the error above
	}

It definitely has been a while! My oldest child is the same age now!
I have uploaded a fix/workaround for the client-side part. It wasn't working with the latest Golang version due to how random bytes are consumed when elliptic curve keys are generated.
I've added the code for the server-side part, adapting the client-side code (similar to what you did), but it is not working yet.
I will try to take a deeper look.

@scwgoire I fixed it!
Golang's TLS handshake key generation uses internally randutil.MaybeReadByte which randomly reads one byte from the Rand reader. This makes the bytes used by handshake process non-deterministic.
To avoid this, I have overriden the state Rand buffer to avoid writing or reading from it when only one byte is needed.
Here is the commit that fixes it: https://github.com/igolaizola/resumetls/commit/a5ae86de46e736c78f62097cfdea5aa058396934
I also renamed the package and the project from resume-tls to resumetls (I hate hyphens in package names).

Iñigo, you are amazing! Jumping that fast so many years after last commit... I'm impressed! 😮
I gave it a try, but it still didn't solve the issue. Same error appears. I suspect this may be due to how different ciphers need different material to work. I'll try to dig deeper later on.
Here is my code (cert and key containing certificate/key data)
package main

import (
	"crypto/tls"
	"fmt"
	"net"

	"github.com/igolaizola/resumetls"
)

func main() {
	pair, err := tls.X509KeyPair([]byte(cert), []byte(key))
	if err != nil {
		panic(err)
	}

	config := &tls.Config{
		Certificates:       []tls.Certificate{pair},
		InsecureSkipVerify: true,
	}

	lis, err := net.Listen("tcp", "localhost:2000")
	if err != nil {
		panic(err)
	}

	conn, err := lis.Accept()
	if err != nil {
		panic(err)
	}

	fmt.Println("Connection accepted from", conn.RemoteAddr())
	cl, err := resumetls.Server(conn, config, nil)
	if err != nil {
		panic(err)
	}
	err = cl.Handshake()
	if err != nil {
		panic(err)
	}
	cl.Write([]byte("Hello world!"))
	state := cl.State()

	cli, err := resumetls.Server(conn, config, state)
	if err != nil {
		panic(err)
	}
	cl.Write([]byte("Welcome back darling!"))
	cli.Close()
}

Hi again, @scwgoire.
I have updated the tests, and now they are passing on both the client and server for all available cipher suites. Could you try explicitly specifying the cipher suite in the TLS configuration? It could be something related with that.

I've just uploaded a fix that shoud make it work even without specifying a cipher suite.
https://github.com/igolaizola/resumetls/commit/a253f5cca5eb6567e7edecc9da194761edc22803
The negotiated cipher suite is now persisted in the state and then restored on resumption.

Iñigo, thanks again for spending some time to get there!
Unfortunately, this doesn't work either. When calling resumetls.Server(), the TLS stack acts like the TLS negociation hasn't been done and tries to perform another handshake instead of just keep going on with the current keying material, is this expected?
I just ran the code above (with the proper cert and key variables) and issued an openssl s_client -connect localhost:2000 in my term.
This is the call stack where the error is produced (I stopped digging at the decrypt level, this indicates the keying material is not good).
tls.(*Conn).readRecordOrCCS (conn.go:686) crypto/tls
tls.(*Conn).retryReadRecord (conn.go:791) crypto/tls
tls.(*Conn).readRecordOrCCS (conn.go:750) crypto/tls
tls.(*Conn).readRecord (conn.go:588) crypto/tls
tls.(*Conn).readHandshakeBytes (conn.go:1075) crypto/tls
tls.(*Conn).readHandshake (conn.go:1086) crypto/tls
tls.(*serverHandshakeStateTLS13).readClientFinished (handshake_server_tls13.go:979) crypto/tls
tls.(*serverHandshakeStateTLS13).handshake (handshake_server_tls13.go:81) crypto/tls
tls.(*Conn).serverHandshake (handshake_server.go:53) crypto/tls
<autogenerated>:2
tls.(*Conn).handshakeContext (conn.go:1553) crypto/tls
tls.(*Conn).HandshakeContext (conn.go:1493) crypto/tls
tls.(*Conn).Handshake (conn.go:1477) crypto/tls
resumetls.resume (resumetls.go:117) github.com/igolaizola/resumetls
resumetls.newConn (resumetls.go:48) github.com/igolaizola/resumetls
resumetls.Server (resumetls.go:42) github.com/igolaizola/resumetls
main.main (rtls.go:57) main
runtime.main (proc.go:271) runtime
runtime.goexit (asm_arm64.s:1222) runtime

Please note I can run the tests fine. I can't see any significant difference between the testServer function and my code. I tried also reading from the client before dumping the state and creating the new server, no luck. I also tried to force tls1.2 on the openssl client, no luck either.
Tomorrow I'll try to do it with a golang TLS client. Just in case.

Hi @scwgoire! Yes, you're right. The server side is not working properly.
I have confirmed it implementing some manual end to end tests that use OpenSSL.
Check this: https://github.com/igolaizola/resumetls/tree/main/cmd/e2e
We need to figure out what we're missing in the resumed TLS connection and see if it is a field that can be updated using reflection.


Detection of a Lightning Address on Linktree page

Is your feature request related to a problem? Please describe
Linktree has 12m users: https://linktr.ee/ and is a simple way to show different websites to visitors.
one Linktree example of a Bitcoiner: https://linktr.ee/BlueeMooon
Describe the solution you'd like
I would like that Linktree users can add a Lightning Address to their LinkTree profile, Alby detects it and allows the Alby user to send bitcoin.
Describe alternatives you've considered
A linktree user could add a link to the Alby donation website. But they can already do that today. If Alby can detect a Lightning Address directly on the Linktree page the Alby user does not need to leave the website.
Are you working on this?
No

not urgent.

You already have one.

Yeah, so I tested this:

Hi, this is implemented. I think can be closed, right?

Yes, the last related PR was this:
https://github.com/getAlby/lightning-browser-extension/pull/1456


Application opens empty and unable to open any todo.txt

Bug Report
App Version: 2.0.0
Platform: Linux
Window Manager: BSPWM
Installation Method: AUR
Bug Description:
When I open sleek, I am greeted with an empty application. The file menu works, I can not open the developer console.
Steps to Reproduce:

Using the PKGBUILD run makepkg -sci
Launch sleek via the command line to get logger errors

Expected Behavior:
Expected the app to not be blank 🤣
Actual Behavior:
Application opens empty
Additional Information:
config.ts: sleek userdata is located at: /home/warmwaffles/.config/sleek/userData
(node:131279) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 change listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(Use `electron --trace-warnings ...` to show where the warning was created)
[131279:1031/162325.931193:ERROR:object_proxy.cc(590)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/portal/desktop: org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.FileChooser”
[131279:1031/162325.931219:ERROR:select_file_dialog_linux_portal.cc(274)] Failed to read portal version property
main.ts: Menu created
main.ts: Tray not shown
main.ts: TypeError: Error processing argument at index 0, conversion failure from undefined
    at Ke (/usr/lib/sleek.asar/dist/main/main.js:8:269372)
    at /usr/lib/sleek.asar/dist/main/main.js:8:270308
[131279:1031/162325.968910:ERROR:object_proxy.cc(590)] Failed to call method: org.freedesktop.portal.Settings.Read: object_path= /org/freedesktop/portal/desktop: org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.portal.Settings” on object at path /org/freedesktop/portal/desktop

Screenshots:

Is fixed and will be part of 2.0.1 :)

v2.0.1 resolves this issue. I had to delete all of my configurations to stop the blank screen from happening.

It still won't work for me for 2.0.6.
Here's what I'm seeing
config.ts: sleek userdata is located at: /home/xxx/snap/sleek/1193/.config/sleek/userData
[2898185:0118/161229.499765:ERROR:object_proxy.cc(577)] Failed to call method: org.freedesktop.DBus.ListActivatableNames: object_path= /org/freedesktop/DBus: org.freedesktop.DBus.Error.AccessDenied: An AppArmor policy prevents this sender from sending this message to this recipient; type="method_call", sender=":1.5162" (uid=1000 pid=2898185 comm="/snap/sleek/1193/sleek/sleek --disable-gpu --no-sa" label="snap.sleek.sleek (enforce)") interface="org.freedesktop.DBus" member="ListActivatableNames" error name="(unset)" requested_reply="0" destination="org.freedesktop.DBus" (bus)
[2898185:0118/161229.526247:ERROR:object_proxy.cc(577)] Failed to call method: org.freedesktop.DBus.ListNames: object_path= /org/freedesktop/DBus: org.freedesktop.DBus.Error.AccessDenied: An AppArmor policy prevents this sender from sending this message to this recipient; type="method_call", sender=":1.5164" (uid=1000 pid=2898185 comm="/snap/sleek/1193/sleek/sleek --disable-gpu --no-sa" label="snap.sleek.sleek (enforce)") interface="org.freedesktop.DBus" member="ListNames" error name="(unset)" requested_reply="0" destination="org.freedesktop.DBus" (bus)
[2898185:0118/161229.557359:ERROR:object_proxy.cc(577)] Failed to call method: org.freedesktop.DBus.ListNames: object_path= /org/freedesktop/DBus: org.freedesktop.DBus.Error.AccessDenied: An AppArmor policy prevents this sender from sending this message to this recipient; type="method_call", sender=":1.5165" (uid=1000 pid=2898185 comm="/snap/sleek/1193/sleek/sleek --disable-gpu --no-sa" label="snap.sleek.sleek (enforce)") interface="org.freedesktop.DBus" member="ListNames" error name="(unset)" requested_reply="0" destination="org.freedesktop.DBus" (bus)
Styles injected found in CSS file: /home/xxx/snap/sleek/1193/.config/sleek/userData/customStyles.css


acvp_process_vsid  can not parse ctx->curl_buf sometimes.

I tried to run the hash algorithm by calling acvp_cap_hash_set_domain(ctx, ACVP_HASH_SHA1, ACVP_HASH_MESSAGE_LEN, 0, 51200, 8), sometimes the lib will report JSON parse error in acvp_process_vsid .

the error log is:
***ACVP [STATUS][acvp_login:2508]--> Logging in...
***ACVP [STATUS][acvp_login:2528]--> Login successful
***ACVP [STATUS][acvp_register:1962]--> Building registration of capabilities...
***ACVP [STATUS][acvp_register:1970]--> Sending registration of capabilities...
***ACVP [STATUS][acvp_register:1979]--> Successfully sent registration and received list of vector set URLs
***ACVP [STATUS][acvp_register:1980]--> Test session URL: /acvp/v1/testSessions/104462
***ACVP [STATUS][acvp_run:3266]--> Beginning to download and process vector sets...
***ACVP [STATUS][acvp_retry_handler:2454]--> 200 OK KAT values not ready, server requests we wait 30 seconds and try again...
***ACVP [ERR][acvp_process_vsid:2579]--> JSON parse error
***ACVP [ERR][acvp_process_tests:2419]--> Unable to process vector set! Error: 4
***ACVP [ERR][acvp_run:3274]--> Failed to process vectors

We would need additional information to see why we are flagging a parse error, please use --verbose and re-run.
I ran the same test multiple times and had no issue on the demo server, the testSession always passed.

Hello,
Closing for inactivity - please feel free to reopen if further dialog is needed. Thanks!
Andrew


Fix modernize simplify buildsystem - Part 2

In a nutshell, this PR modernize the build system removing unused CMake code and making use of ExternalProjectDependency module.
It maintains the ability to build the project as a standalone package.
It also:

update the build system to use Usage Requirements and ensure build flags and include directories are transitively propagated
fixes packaging as a Slicer extension on macOS
fix support for the DEVELOPMENT option and associate component with install rules
and many more.

Next step will be the integration of LAPACKE (like what will be done for GROUPS) instead of the obsolete CLAPACK

Cc: @juanprietob

Thanks for merging. Next round of changes will integrate update to use LAPACKE.


View Dropdown Box in Logs Page is so shy to stay open

It keeps disappearing itself once I open the dropdown menu for less than one second. Almost not possible to change view mode (log level).

Ooh, that bug manifested in a much less noticeable way in the browsers I've tested (Firefox flickers a little, Chrome doesn't react at all). Fixed.

Thanks! The fix works for Chrome on my Mac.


Does Poyo need a safe_parse() method?

Or is it safe by default?
A brief note on this, perhaps in the README, would be helpful.

Hi @nchammas! 👋
Poyo does not support deserialization of arbitrary Python objects, so I would say it is safe.
It can create dict, list, str, int, float, and NoneType values.
Please see the parse_ methods in parser.py.

Good to hear. If that's part of Poyo's "public contract", so to speak, it would be good to document it officially somewhere.

Ohh an bool obviously.
The example on the README captures really good what Poyo understands.

Okie doke. Fine by me if the README example is how we want to express that Poyo is safe by default, though I think some will find it clearer if it's spelled out for them.

I'll add a note. 🙇

Done.

👍
I only bring this up since most people will come to Poyo from PyYAML, and PyYAML has this design flaw in that it's not safe by default. So I assume they will be curious to know if Poyo repeats this mistake or not.


Can never finish compiling. HELP

Hi last year i used this for my group chat and it worked perfectly. But this year when im trying again (the group chat has around 350k messages in it) it doesn't work.  And when i try it on group chats with only like 50-100 messages it works perfectly. Please please help me fix it I really want to use it. Thank you (PS it is not a certain message that is screwing it up because it terminates at a different place every time)
Around half of the time i got the message:
"Traceback (most recent call last):
File "groupme_analytics.py", line 244, in
menu()
File "groupme_analytics.py", line 19, in menu
prepare_analysis_of_group(groups_data, group_id)
File "groupme_analytics.py", line 54, in prepare_analysis_of_group
user_id_mapped_to_user_data = analyze_group(group_id, user_dictionary, number_of_messages)
File "groupme_analytics.py", line 114, in analyze_group
name = data['response']['messages'][i]['name']  # grabs name of sender
TypeError: 'NoneType' object has no attribute 'getitem'
Bens-MBP:GroupMeAnalytics-master bensauberman$ "
while the other half it just freezes with no message

This is fixed by #6.

Hello, I'm having a very similar issue to the one described above. The program runs perfectly on smaller groups (couple hundred messages), but fails on my largest group chat. I really appreciate this project btw, it's been a great learning experience for Python. Thank you inadvance!

@SkrumpKing It's almost impossible to help you without an error message or an explicit description of what you mean by "fails." Could you provide the stack trace you're seeing?

Yes, I believe I can. Here's the output I get when running the code on a specific group. I am a new developer, so any help you can provide would be awesome!
"
99.99% doneTraceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Local\Programs\Python\Python312\Lib\json_init_.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Local\Programs\Python\Python312\Lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\User\AppData\Local\Programs\Python\Python312\Lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:\Users\User.vscode\analyze.py", line 173, in
users = analyze_group(group, users, message_count)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Billy.vscode\analyze.py", line 40, in analyze_group
messages = response.json()['response']['messages']
^^^^^^^^^^^^^^^
File "C:\Users\Billy\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)"


imagenet-100 result cannot reproduce

for cifar and imagenet-1000, i can get similar results as what paper reported.
how ever, for imangenet-100 only, i cannot get the same result, with 3~4% deviation.
the followings are my running scripts and experiment results.
scipts
bash train.sh 6,7
--options options/data/imagenet100_10-10.yaml options/data/imagenet100_order1.yaml options/model/imagenet_dytox.yaml \
--name dytox \
--data-path ~/ilsvrc2012 \
--output-basedir ./checkpoints

results (i ran two times on different machines)

i focus on both avg and last acc.

Hello, I've saw your issue. I'll first look into https://github.com/arthurdouillard/dytox/issues/5, which may (or not) explain your issue and #2
I'll get back to you asap. Sorry for the inconvenience.

Hello, I've saw your issue. I'll first look into #5, which may (or not) explain your issue and #2
I'll get back to you asap. Sorry for the inconvenience.

ok, i totally understand.

Hi @arthurdouillard
I also tried ImageNet-100 and got a similar result as @zhaoedf.
BTW, I wonder that is it possible to share your trained checkpoints with us?

Hi all, I also tried ImageNet-1000 but got a lower result:(
I am using Pytorch 1.10.1, CUDA 10.1

I'll try to use a different Pytorch version and try again.

Please see erratum.


consistent naming of output folder & schema

Fixes #21 by creating the date/time string used for naming once in utility_functions.get_formatted_time and reusing it in settings.init_model_settings and again in data_functions.create_output_schema.

@T-Man-Stan @paritoshdas


Issue Links #12

Issue Links #12 should now be fixed. I wrap the thumbnail image showed in README.md into markdown URL pointing to the original image.

@firefly-cpp please, yes


Easy interface for Modification on other objects

I found that it's hard to write things like "If I hit some object, then that object becomes blah blah...". Is it possible to design a shared "Buff" lib so that users could simply write what will happen to any object if some functions are triggered? Therefore, units could directly assign a particular "Buff" to the target to realize the effect mentioned at the beginning.

可以看一下#198对你有没有一定的帮助


Solutions don't get unlocked while sending solution

Can't pass this Kata with the following code:
def read_ncbi_genetic_code(string)
  data=string.gsub(/(.)+=([^\w\*\-\n]+)/,'').split(/[\n]/)
  aas= data[0]
  starts=data[1]
  base1=data[2]
  base2=data[3]
  base3=data[4]

  nucleotidsAtStart = Array.new
  starts.to_enum(:scan,/[^-]/).map do |m,|
    nucleotidsAtStart.push base1[$`.size]+base2[$`.size]+base3[$`.size]
  end

 tri_amino = Hash.new
 aas.to_enum(:scan,/./).map do |m,|
   key=base1[$`.size]+base2[$`.size]+base3[$`.size]
   tri_amino.store(key, m)
 end

  return [tri_amino,nucleotidsAtStart]
end

My solution appears in the past solutions section with formatting altered as
def read_ncbi_genetic_code(string)  data=string.gsub(/(.)+=([^\w\*\-\n]+)/,'').split(/[\n]/)  aas= data[0]  starts=data[1]  base1=data[2]  base2=data[3]  base3=data[4]    nucleotidsAtStart = Array.new  starts.to_enum(:scan,/[^-]/).map do |m,|
    nucleotidsAtStart.push base1[$`.size]+base2[$`.size]+base3[$`.size]
  end

 tri_amino = Hash.new
 aas.to_enum(:scan,/./).map do |m,|
   key=base1[$`.size]+base2[$`.size]+base3[$`.size]
   tri_amino.store(key, m)
 end

  return [tri_amino,nucleotidsAtStart]
end

but solutions don't get shown.

This is related to #391. It was a problem before but may be more common now after the platform transition.

ty :)

Hopefully everything gets fixed soon. Thanks jhoffner, you are doing a great job.

The main cause for this (and #391) has been resolved. There may be some very infrequent data issues caused by other reasons, I'll keep an eye on the exception logs for those. Closing for now.

tested again an confirm it's solved thank you :)


error: linking with rust-lld failed: signal: 6

I'm unable to build the js-hello-world example project. Googled around for about an hour and can't seem to figure out the issue so thought I'd post open an issue here.
Here is the output when I try to build the js-hello-world example from the guide.
$ cargo clean
$ cargo +nightly build --target wasm32-unknown-unknown
error: linking with `rust-lld` failed: signal: 6
  |
  = note: "rust-lld" "-flavor" "wasm" "-L" "/Users/chinedufn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/wasm32-unknown-unknown/lib" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.14ozal7lwfl8vh7j.rcgu.o" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.170nia5w7ovlt2mf.rcgu.o" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.1jurx37538uoco60.rcgu.o" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.1qu7nvr55bs6praf.rcgu.o" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.2i9t6o1ey980w1zb.rcgu.o" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.2oyivi2xkai5ob7g.rcgu.o" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.2wb25hw2cem3b8zj.rcgu.o" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.3ae019drw7oeun3s.rcgu.o" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.3q3tglu8i9hq8zuu.rcgu.o" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.3zw241pm116az3hu.rcgu.o" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.4dl5ubbk62ytrr5f.rcgu.o" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.4oms4v65tmue1nvg.rcgu.o" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.bzlzgb2to6tfq6u.rcgu.o" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.gbk2fv70teu0zr3.rcgu.o" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.sijcvmvfa0vi2ct.rcgu.o" "-o" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.wasm" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/js_hello_world.1njnrf1nlc31z5n2.rcgu.o" "--gc-sections" "-O0" "-L" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps" "-L" "/Users/chinedufn/Development/learning/js-hello-world/target/debug/deps" "-L" "/Users/chinedufn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/wasm32-unknown-unknown/lib" "/Users/chinedufn/Development/learning/js-hello-world/target/wasm32-unknown-unknown/debug/deps/libwasm_bindgen-0b5398c07230e260.rlib" "/Users/chinedufn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/wasm32-unknown-unknown/lib/libstd-cd01f171f10de1e8.rlib" "/Users/chinedufn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/wasm32-unknown-unknown/lib/libpanic_abort-7687e220af568896.rlib" "/Users/chinedufn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/wasm32-unknown-unknown/lib/libunwind-3e24df5899f01d86.rlib" "/Users/chinedufn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/wasm32-unknown-unknown/lib/liblibc-d9a2fda2d70b2021.rlib" "/Users/chinedufn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/wasm32-unknown-unknown/lib/liballoc_system-46843561342a117d.rlib" "/Users/chinedufn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/wasm32-unknown-unknown/lib/libdlmalloc-4ea44c3dc43b8881.rlib" "/Users/chinedufn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/wasm32-unknown-unknown/lib/liballoc-a8086c5bdb3394f0.rlib" "/Users/chinedufn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/wasm32-unknown-unknown/lib/libcore-58225d356de98748.rlib" "/Users/chinedufn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/wasm32-unknown-unknown/lib/libcompiler_builtins-6c3b474824dcaa09.rlib" "--no-threads" "-z" "stack-size=1048576" "--stack-first" "--allow-undefined" "--no-entry" "--export-table"
  = note: dyld: Library not loaded: @rpath/libLLVM.dylib
            Referenced from: /Users/chinedufn/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/bin/rust-lld
            Reason: image not found

I'll keep trying things in the meantime, but hopefully somewhere here might know the problem/solution!

Sorry it looks like there is already an issue about this -> https://github.com/rust-lang/rust/issues/53813


1.3 was a breaking release

Upgrading the node version is a breaking change.
So actually 1.3 should have been 2.0.
I also did this wrong in the past and learned this from my action's users.
If the action is used on a custom self-hosted runner, there is no guarantee that the new Node version is available and so updating the node version is a breaking change.
Feel free to decide how you proceed or whether you ignore the breaking change.
Back then I reverted the change, cut a new release and did the change in a directly following major version release.

Apologies for staleness... I need to check my notifications in GitHub a bit more. Will be refreshing between now and end of year


Google+ API Being Deprecated

Discussion on the mailing list: https://groups.google.com/forum/?fromgroups#!topic/pac4j-users/xlFNWXEMEog

I have make an PR which attempt to solve this issue (see #1249), see if that PR is suitable, thanks.


[Android]Don't assume that Json object elements are sorted and do sorting based on tag value in kotlin json/tlv conversion module

not needed any more


Having issues with NavigateTo

Hi
I am having issues with NavigateTo function after submitting a page, it supper simple but cannot seem to make any progress
This is my method I am calling but as soon as the Post message happens it just refreshed the page I was on and doesn't redirect to the new page with the Id, am I doing something wrong? Just updated to Blazor 0.6 and using .NET Core 2.1
        protected async Task SubmitForm()
        {
            var request = await Http.PostJsonAsync<ModeratorResult>("/api/moderator/ScreenText", ci);
            UriHelper.NavigateTo($"/tickets/{request.TrackingId}");

        }

Full code is here
https://github.com/msimpsonnz/fn18/tree/master/src/FN18.Blazor.Client

Perhaps the problem lies here... note the version's value

Perhaps the problem lies here... note the version's value
FN18.Blazor.Client.csproj => Version="0.5.1"

Thanks but no, I’ve tried moving back to a simple standalone app but still same issue. I can retrieve data and render the page but upon submission it sends the data and ignores the navigation.
Is there an example of this working?

Try this out your tour on a string variable and give that to the NavigateTo call. It fix it for me. Also correct me if I'm wrong but I think http call should be inside Using statement, anyway let me know if that fixes you issue

Thanks, I think it was down to deserialiser throwing an error. I’ve given up with the built in helper for HttpClient and will roll my own

I ran into the same issue, seems to be related to using await:
` protected void SubmitForm()
{
var request =Http.PostJsonAsync("/api/moderator/ScreenText", ci);
UriHelper.NavigateTo($"/tickets/{request.TrackingId}");
    }

`
should do it but of course it's no longer async

oops, actually: if you're using a button, make sure the type is set to button:
<button type="button"
https://github.com/aspnet/Blazor/issues/1731


DebugBridge fails to connect

Greetings,
I tried using the DebugBridge class together with the debug bridge IP in my design but could not make it work. I documented the problem in this post. Does the original author of this class have some idea on what am I doing wrong?

PYNQ version 3.0.1
board PYNQ-ZU
IP generated with Vivado 2023.1

Thanks in advance.
Best,
Jacopo

Hi,
looks like a simple bug to me:
The DebugBridge constructor checks if the description is of type ReprDict (this line) while other drivers, such as the DMA, check for ReprDict or dict (here).
I was able to work around this using:
from pynq.lib.debugbridge import DebugBridge
from pynqutils.runtime.repr_dict import ReprDict

bridge_desc = ReprDict(ol.ip_dict["debug_bridge_0"]) # ol is the Overlay
bridge = DebugBridge(bridge_desc)
bridge.start_xvc_server(bufferLen=4096, serverAddress="<IP_ADDRESS>", serverPort=2542, reconnect=True, verbose=True)

That's a good point @fpjentzsch. That check is not really necessary, although it can be fixed as you suggest. Could you do a PR?

Sure: https://github.com/Xilinx/PYNQ/pull/1445


Look for mariadbd process for MariaDB 10.5+

What does this PR do?
Looks for mariadbd process instead of mysqld for MariaDB 10.5+
Motivation
AGENT-6383
Missing mysql.performance.cpu_time metric for MariaDB 10.5 hosts, though is is working for MariaDB 5.5 hosts.
It appears in version 10.4 the executable name was changed from mysql to mariadb.
Additional Notes

https://mariadb.com/docs/features/whats-new/whats-new-in-community-server-105/

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] PR title must be written as a CHANGELOG entry (see why)
[ ] Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
[ ] PR must have changelog/ and integration/ labels attached

Can you add a new tox env for maria 10.5? (I suggest renaming the existing one, for example py{27,38}-{5.6,5.7,8.0,maria-10.2,maria-10.5})


Content changes for part year and effective date calculation feature

Trello cards:
https://trello.com/c/dbyKP467/168-child-benefit-tax-calculator-change-stop-date-in-question-2-to-3-years-in-the-past
https://trello.com/c/hThMXpGx/170-child-benefit-tax-calculator-re-order-questions-2-and-3-swap-them-around
https://trello.com/c/NqFHIT6z/169-child-benefit-tax-calculator-change-which-mondays-are-included-in-the-calculation
https://trello.com/c/eXfGf5lL/171-child-benefit-tax-calculator-add-question-part-year-and-complete-logic-for-answering-no
https://trello.com/c/KbE3axrr/172-child-benefit-tax-calculator-part-year-all-children-add-logic-for-answering-yes
https://trello.com/c/HXEm9Bkk/173-child-benefit-tax-calculator-part-year-some-children-add-logic-for-answering-yes
Factcheck
Child benefit tax calculator
Expected Changes
URL on GOV.UK

Change copy on questions, help text and error messages. Follows on from changes in PR #149

###Enter the number of children
Before

After

###Choose tax year
Before

After

Part Year and Number of part year children
After

###Error message
After

@leenagupte This PR LGTM


Unable to use with both Routers and MongoDB

Describe the bug
Details in this StackOverflow question.   Essentially, fastapi-users relies on a MongoDB client instance, which could be set up globally in one's main.py.  However, if I want to split up my app into Router files, each file would need to be able to get this MongoDB Client object (rather than making a new one) to ensure it's all working in the same thread.  This would be done using a FastAPI startup trigger.   Because such Router endpoints rely on fastapi-users for auth, then I need to somehow instantiate that in main.py too, which doesn't yet have access to a DB client object since it won't be made until the app has started up.
To Reproduce
Steps to reproduce the behavior:

Make app with Routers
Ensure each router relies on fastapi-users
Use startup trigger to make MongoDB client
Observe chaos
Scroll down to '....'
See error

Expected behavior
Allow FastAPIUsers() to take a DB-contention-generating function rather than a DB connection itself (ie a sort of promise)
Configuration

Python version : 3.9
FastAPI version : 0.63.0
FastAPI Users version : 5.0.0

Well, what you could do is just to move all the MongoDB initialization logic in a separate module, and import it whenever you need it. I've created a working Repl.it example to show you:
https://repl.it/@frankie567/fastapi-users-modular-mongodb


rancher-agent-bootstrap uses hardcoded dns instead of host provided

Rancher versions:
rancher/server:1.6.20
rancher/agent or rancher/rancher-agent: N/A
Infrastructure Stack versions:
healthcheck: N/A
ipsec: N/A
network-services: N/A
scheduler: N/A
kubernetes (if applicable): N/A
Docker version: (docker version,docker info preferred)
18.06 from Rancher Install Dialog in AWS Provisioner
Operating system and kernel: (cat /etc/os-release, uname -r preferred)
Ubuntu 18.04
Type/provider of hosts: (VirtualBox/Bare-metal/AWS/GCE/DO)
AWS
Setup details: (single node rancher vs. HA rancher, internal DB vs. external DB)
Single Node Rancher
Environment Template: (Cattle/Kubernetes/Swarm/Mesos)
Cattle
Steps to Reproduce:

Setup Rancher Server 1.20 with a registration URL on a Private DNS Zone
Try to provision a new Host using AWS provider using: ami-b04847cf
In advanced, select 18.06.sh for install URL

Results:
You'll receive an error once it gets to provisioning the agent: ""Failed to find rancher-agent container" because the rancher-agent-bootstrap uses <IP_ADDRESS> / <IP_ADDRESS> for DNS instead of host provided DNS and thus won't be able to resolve any private zones.

The agent does not hardcode anything, Ubuntu 18.04 uses systemd-resolved which has an IP from the loopback range in /etc/resolv.conf, and Docker automatically picks Google's DNS if it finds unreachable addresses in /etc/resolv.conf. Resolutions are mentioned here https://github.com/rancher/rancher/issues/10249, https://github.com/rancher/rancher/issues/13888 and soon in the docs here: https://github.com/rancher/rancher.github.io/pull/1040/files

@superseb could you provide some background on "unreachable" addresses? Here's the scenario:
Docker hosts resolv.conf
 cat /etc/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "systemd-resolve --status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver <IP_ADDRESS>
search ec2.internal

The address is reachable -
ubuntu@rancher-test:~$ nc -tvvz <IP_ADDRESS> 53
Connection to <IP_ADDRESS> 53 port [tcp/domain] succeeded!
ubuntu@rancher-test:~$ nc -tuvz <IP_ADDRESS> 53
Connection to <IP_ADDRESS> 53 port [udp/domain] succeeded!

The Resolution works as well:
ubuntu@rancher-test:~$ nslookup
> server <IP_ADDRESS>
Default server: <IP_ADDRESS>
Address: <IP_ADDRESS>#53
> rancher.infra.<ourdomain>.com
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>#53

Non-authoritative answer:
Name:   rancher.infra.<ourdomain>.com
Address: <IP_ADDRESS>
>

And the output from the bootstrap container (replacing the actual domain with ):
...
ERROR: http://rancher.infra.<ourdomain>:8080/v1 is not accessible (Could not resolve host: rancher.infra.<ourdomain>.com)
ERROR: http://rancher.infra.<ourdomain>.com:8080/v1 is not accessible (Could not resolve host: rancher.infra.<ourdomain>.com)
ERROR: http://rancher.infra.<ourdomain>.com:8080/v1 is not accessible (Could not resolve host: rancher.infra.<ourdomain>.com)
...

Also this is not an issue for Ubuntu 16.04, just Ubuntu 18.04
Does this mean Rancher 1.6.x isn't supported on Ubuntu 18.04 with Private DNS Zones?


Add license

Hey, thanks for the library.  Can you add a license file?  I'd suggest MIT if you have no preference.  That would be awesome.

Yeah, I'll do MIT. I should write a README too I guess…

Awesome, thanks
On Fri, Dec 4, 2015 at 4:20 AM, Ben Alpert<EMAIL_ADDRESS>wrote:

Yeah, I'll do MIT. I should write a README too I guess…
—
Reply to this email directly or view it on GitHub
https://github.com/spicyj/match-at/issues/1#issuecomment-161861846.


After updating to Atom 0.190.0 I get following deprecation notification of Atom core

After updating to Atom 0.190.0 I get the following 3 deprecation notices of Atom core. Anyone else noticed this?
Use a config schema instead. See the configuration section of https://atom.io/docs/latest/hacking-atom-package-word-count and https://atom.io/docs/api/latest/Config for more details
Called 1 time
Package.activateConfig - /usr/share/atom/resources/app/src/package.js:250:11
Package.activateNow - /usr/share/atom/resources/app/src/package.js:221:14

Use activationCommands instead of activationEvents in your package.json Commands should be grouped by selector as follows:
"activationCommands": {
"atom-workspace": ["foo:bar", "foo:baz"],
"atom-text-editor": ["foo:quux"]
}
Called 1 time
Package.getActivationCommands - /usr/share/atom/resources/app/src/package.js:764:9
Package.hasActivationCommands - /usr/share/atom/resources/app/src/package.js:689:20

ContextMenuManager::add has changed to take a single object as its argument. Please see https://atom.io/docs/api/latest/ContextMenuManager for more info.
Called 1 time
ContextMenuManager.add - /usr/share/atom/resources/app/src/context-menu-manager.js:57:18
Package.activateResources - /usr/share/atom/resources/app/src/package.js:299:61

This looks very similar to https://github.com/atom/atom/issues/6278. @kevinsawicki -- https://github.com/atom/atom/issues/6278 turned out to be a problem in two packages. Would it be possible to somehow not report these as Atom core problems, but rather package problems?

@izuzak It's shown as deprecation notices for atom core, doesn't show as a problem with any packages. That's why reported it as an atom core problem because I couldn't find any packages that's causing the problem

Starting Atom in safe mode generates only 2 error,
Use a config schema instead. See the configuration section of https://atom.io/docs/latest/hacking-atom-package-word-count and https://atom.io/docs/api/latest/Config for more details
Called 1 time
Package.activateConfig - /usr/share/atom/resources/app/src/package.js:250:11
Package.activateNow - /usr/share/atom/resources/app/src/package.js:221:14

Use activationCommands instead of activationEvents in your package.json Commands should be grouped by selector as follows:
"activationCommands": {
"atom-workspace": ["foo:bar", "foo:baz"],
"atom-text-editor": ["foo:quux"]
}
Called 1 time
Package.getActivationCommands - /usr/share/atom/resources/app/src/package.js:764:9
Package.hasActivationCommands - /usr/share/atom/resources/app/src/package.js:689:20

+1

@rukshn Have you tried starting Atom in safe mode (atom --safe)? I see the same deprecation warnings normally, but not in safe mode, which makes me think it's actually some user installed package(s) that's causing this, despite the deprecation warning text.

@mnquintana Hi, yes the warnings are there in the safe mode also when i tried atom in safe mode.

In my tests, this errors shows when installs "linter" and "linter-jshint" packages.
I compile atom with these packages included.
Anyone knows how to fix this error?

You should post issues on the repos for those packages.
On Sat, Apr 11, 2015 at 7:20 PM, rabugento<EMAIL_ADDRESS>wrote:

In my tests, this errors shows when installs "linter" and "linter-jshint"
packages.
I compile atom with these packages included.
Anyone knows how to fix this error?
—
Reply to this email directly or view it on GitHub
https://github.com/atom/atom/issues/6310#issuecomment-91971307.

mark-hahn, I'll do this. Thanks.

+1

Seeing the same deprecation warnings in 0.192, with slightly different line numbers:

Also seeing a warning about using a configSchema in package.activateConfig.
Unlike OP, both of these warnings go away when I load with --safe. Going through my addons and trying to isolate which one is responsible.

OK, it is caused by 3rd party packages:

sublime-style-column-selection triggers the first deprecation error
emmet triggers the second

Filing tickets on each.

Emmet: [https://github.com/emmetio/emmet-atom/issues/257]
sublime-style-column-selection: [https://github.com/bigfive/atom-sublime-select/issues/42]
linter-jshint: [https://github.com/AtomLinter/linter-jshint/issues/60]
linter-jsonlint: [https://github.com/AtomLinter/linter-jsonlint/issues/8]
redacted: [https://github.com/ymendel/atom-redacted/issues/2]

@izuzak Is this one resolved now with the recent changes in Grim?

@izuzak Is this one resolved now with the recent changes in Grim?

Not yet. There are a few different deprecations here that needed tweaking, and we've been fixing them one-by-one. For example, this isn't fixed/merge yet: https://github.com/atom/atom/issues/6522. After that's fixed, I plan on going through this issue one more time to make sure we didn't miss anything. I'll close the issue once that's done.

Thanks for all the reports, everyone! :sparkles: The way deprecated calls were being detected and reported needed some tweaking for specific calls. We've been doing that over the last week and I think we've handled all the incorrect attributions mentioned in this issue (e.g. see https://github.com/atom/atom/issues/6510, https://github.com/atom/atom/issues/6522, https://github.com/atom/grim/pull/5).
These changes will be shipped with the next release of Atom (or right now if you're building from source). If you notice any other incorrect attributions in Deprecation Cop in Atom 0.195.0 (when it's released) -- please open a new issue here, or even better at https://github.com/atom/deprecation-cop. :bow:

+1 Just reporting that the warning goes away when disabling https://atom.io/packages/atom-alignment @Freyskeyd