Gettting error : "Invalid Hash."

Dear :
working on same your sample code : https://github.com/payu-intrepos/PayUCheckoutPro-iOS/tree/master/SampleApp
in that delegate PayUCheckoutProDelegate method getting error code is :
 func onError(_ error: Error?) {
        // handle error scenario
        navigationController?.popToViewController(self, animated: true)
        print("onError response\n \(String(describing: error) )")

        showAlert(title: "Error", message: error?.localizedDescription ?? "")
    }

other delegate method is :
func generateHash(for param: DictOfString, onCompletion: @escaping PayUHashGenerationCompletion) {
        print("generateHash param\n \(param) )")

        let commandName = (param[HashConstant.hashName] ?? "")
        let hashStringWithoutSalt = (param[HashConstant.hashString] ?? "")
        let postSalt = param[HashConstant.postSalt]
        // get hash for "commandName" from server
        // get hash for "hashStringWithoutSalt" from server

        // After fetching hash set its value in below variable "hashValue"
        var hashValue = ""
        if commandName == HashConstant.mcpLookup {
            hashValue = "<hmacsha1 hash for hashStringWithoutSalt and secret>"
        } else if let postSalt = postSalt {
            let hashString = hashStringWithoutSalt + (saltTextField.text ?? "") + postSalt
            hashValue = "<hmacsha512 hash for hashStringWithoutSalt and secret>"
        } else {
            hashValue = "<hmacsha512 hash for hashStringWithoutSalt and salt>"
        }
        print("hashValue is :\n\(hashValue) )")

        onCompletion([commandName: hashValue])
    }

getting console log is :

 generateHash param
 ["hashString": "{\"phone\":\"9033782258\",\"userToken\":\"\",\"amount\":\"1\"}|Tue, 09 Jan 2024 07:25:48|", "hashName": "fetch_quick_pay_option"] )
hashValue is :
<hmacsha512 hash for hashStringWithoutSalt and salt> )
generateHash param
 ["hashName": "get_sdk_configuration", "hashString": "BSDwFyld|get_sdk_configuration|GET|"] )
hashValue is :
<hmacsha512 hash for hashStringWithoutSalt and salt> )
generateHash param
 ["hashName": "payment_related_details_for_mobile_sdk", "hashString": "BSDwFyld|payment_related_details_for_mobile_sdk||"] )
hashValue is :
<hmacsha512 hash for hashStringWithoutSalt and salt> )
generateHash param
 ["hashName": "get_checkout_details", "hashString": "BSDwFyld|get_checkout_details|{\"useCase\":{\"getExtendedPaymentDetails\":true,\"getTaxSpecification\":true,\"checkDownStatus\":true,\"getAdditionalCharges\":true,\"checkCustomerEligibility\":true,\"getMerchantDetails\":true,\"getPaymentDetailsWithExtraFields\":true,\"getSdkDetails\":true},\"requestId\":\"iOS240109125408\",\"customerDetails\":{\"mobile\":\"9033782258\"},\"transactionDetails\":{\"amount\":\"1\"}}|"] )
hashValue is :
<hmacsha512 hash for hashStringWithoutSalt and salt> )
generateHash param
 ["hashName": "check_balance", "hashString": "BSDwFyld|check_balance|{\"sodexoSourceId\":\"src_b0d97b32-3900-421a-bc25-5c9924dbc171\"}|"] )
hashValue is :
<hmacsha512 hash for hashStringWithoutSalt and salt> )
<0x7f9432a0b0e0> Gesture: System gesture gate timed out.
generateHash param
 ["hashName": "get_all_offer_details", "hashString": "{\"amount\":\"1\",\"userToken\":\"anshul_bajpai_token\"}|Tue, 09 Jan 2024 07:25:49|"] )
hashValue is :
<hmacsha512 hash for hashStringWithoutSalt and salt> )

Please give me solution of this, is there am i missing or doing wrong please give suggestion or help on this issue .
Thanks in advance!
@umangarya336 @dduvedi @rohitji  Please help me.

Hi @dhaval951 , You are not passing the correct hash in the completion of 'generateHash' method. That's why you’re getting this error. Please go through our Hash documentation here: https://docs.payu.in/docs/ioscheckoutpro-generate-hash
Please reach out to our integration support [<EMAIL_ADDRESS>] for further assistance


Cloudwatch Log Group created with options does not get auto destroyed

I have issues
I'm submitting a...

[x] bug report
[ ] feature request
[x] support request - read the FAQ first!
[ ] kudos, thank you, warm fuzzy

What is the current behavior?
On Creating with the following options
cluster gets created nicely but on destroy it throws
**Error: Creating CloudWatch Log Group failed: ResourceAlreadyExistsException: The specified log group already exists:  The CloudWatch Log Group '/aws/eks/test-eks/cluster' already exists.
on .terraform/modules/eks-cluster/terraform-aws-eks-12.1.0/cluster.tf line 1, in resource "aws_cloudwatch_log_group" "this":
1: resource "aws_cloudwatch_log_group" "this" {**
module "eks-cluster" {
  source                    = "terraform-aws-modules/eks/aws"
  create_eks                = lookup(var.eks_params, "createeks")
  cluster_name              = lookup(var.eks_params, "cluster_name")
  cluster_version           = lookup(var.eks_params, "cluster_version")
  subnets                   = module.vpc.public_subnets
  vpc_id                    = module.vpc.vpc_id
  cluster_enabled_log_types = ["api", "audit", "authenticator", "controllerManager", "scheduler"]

  enable_irsa = lookup(var.eks_params, "enable_irsa")

  worker_groups = [
    {
      name                 = "worker-group-1"
      instance_type        = "t2.medium"
      asg_desired_capacity = 1
      asg_max_size         = 5
      tags = [
        {
          "key"                 = "k8s.io/cluster-autoscaler/enabled"
          "propagate_at_launch" = "true"
          "value"               = "true"
        },
        {
          "key"                 = "k8s.io/cluster-autoscaler/${lookup(var.eks_params, "cluster_name")}"
          "propagate_at_launch" = "true"
          "value"               = "true"
        }
      ]
    },
    {
      name                 = "worker-group-2"
      instance_type        = "t2.medium"
      asg_desired_capacity = 2
      asg_max_size         = 5
      tags = [
        {
          "key"                 = "k8s.io/cluster-autoscaler/enabled"
          "propagate_at_launch" = "true"
          "value"               = "true"
        },
        {
          "key"                 = "k8s.io/cluster-autoscaler/${lookup(var.eks_params, "cluster_name")}"
          "propagate_at_launch" = "true"
          "value"               = "true"
        }
      ]
    }
  ]
}

If this is a bug, how to reproduce? Please include a code sample if relevant.
Create with the above options and destroy
What's the expected behavior?
The Destroy should take care of the Cloudwatch Log Group created with the options.
Are you able to fix this problem and submit a PR? Link here if you have already.
NA
Environment details

Affected module version: v12.1.0
OS:
Terraform version:
Terraform v0.12.24
provider.aws v2.66.0
provider.kubernetes v1.11.3
provider.local v1.4.0
provider.null v2.1.2
provider.random v2.2.1
provider.template v2.1.2

Any other relevant info

We're seeing this issue too. It seems that terraform does correctly destroy the log group, but that logs are still shipped to CloudWatch for some time after AWS say the EKS cluster has been deleted, causing CloudWatch to recreate the log group.

We're doing terraform destroy followed by terraform apply in a CI pipeline, and we've added a stage in-between the two that blocks until the log group is really gone.
We've seen it take ~3 minutes to stop being recreated.
function get_log_group {
  aws logs describe-log-groups --log-group-name-prefix ${LOG_GROUP_NAME} --query 'length(logGroups)'
}

REALLY_GONE=0

while [[ $REALLY_GONE -eq 0 ]]; do
  while [[ $(get_log_group) -gt 0 ]]; do
    echo "${LOG_GROUP_NAME} still exists, deleting it..."
    aws logs delete-log-group --log-group-name ${LOG_GROUP_NAME}
    sleep 5
  done
  echo "${LOG_GROUP_NAME} has been deleted. Waiting 300 seconds to validate it is not recreated..."
  sleep 300
  if [[ $(get_log_group) -eq 0 ]]; then
    REALLY_GONE=1
  fi
done

This is happening because EKS Cluster gets destroyed after Terraform delete the Cloudwatch Log Group. The AmazonEKSServicePolicy IAM policy (that is assigned to EKS Cluster role by default within this module) has permissions to CreateLogGroup and anything else needed to continue to logging correctly. When the Terraform destroys the Cloudwatch Log Group, the EKS Cluster that is running create it again. Then, when you run Terraform Apply again, the Cloudwatch Log Group doesn't exist in your state anymore (because the Terraform actually destroyed it) and the Terraform doesn't know this resource created outside him.

Could the Terraform config be changed to make sure that the EKS cluster has been destroyed before the CloudWatch log group is destroyed?

This is happening because EKS Cluster gets destroyed after Terraform delete the Cloudwatch Log Group. The AmazonEKSServicePolicy IAM policy (that is assigned to EKS Cluster role by default within this module) has permissions to CreateLogGroup and anything else needed to continue to logging correctly. When the Terraform destroys the Cloudwatch Log Group, the EKS Cluster that is running create it again. Then, when you run Terraform Apply again, the Cloudwatch Log Group doesn't exist in your state anymore (because the Terraform actually destroyed it) and the Terraform doesn't know this resource created outside him.

Humm are you sure about that @maiconbaumx ? There is an explicit dependency between the cluster resource and the cloudwatch log group. Technically, Terraform should destroy aws_cloudwatch_log_group.this before aws_eks_cluster.this.

@barryib yep... that seems to be the case as in terraform-aws-modules/terraform-aws-vpc#435 too

Is there any news on this?

I am facing the same issue. Any updates on this, expecting auto deletion of the log group once the VPC is destroyed.

Fixed this by adding a depends_on to the cloudwatch log resource

@ulfox can please you share your code snippet.

@ulfox can please you share your code snippet.

Sure
// ------------------------------------------------------------
// EKS Cluster Cloudwatch Group
// ------------------------------------------------------------
resource "aws_cloudwatch_log_group" "eks_cluster" {
      count             = local.cluster_log_types_enabled ? 1 : 0
      name              = local.eks_aws_cloudwatch_log_group
      retention_in_days = local.eks_log_retention_in_days

      tags = local.eks_cloudwatch_tags
}

// ------------------------------------------------------------
// EKS Cluster
// ------------------------------------------------------------
resource "aws_eks_cluster" "main" {
      name                      = var.eks_cluster_name
      role_arn                  = aws_iam_role.eks_cluster_role.arn
      enabled_cluster_log_types = local.cluster_log_types

      version = local.eks_version

      vpc_config {
            subnet_ids = local.eks_subnet_ids
            security_group_ids = [
                  aws_security_group.ControlPlaneSecurityGroup.id,
            ]
            endpoint_private_access = var.eks_endpoint_private_access
            endpoint_public_access  = var.eks_endpoint_public_access
      }

      timeouts {
            delete = var.eks_delete_timeouot
      }

      depends_on = [
            aws_iam_role_policy_attachment.AmazonEKSClusterPolicy,
            aws_iam_role_policy_attachment.AmazonEKSServicePolicy,
            aws_cloudwatch_log_group.eks_cluster.0
      ]
}

We already have that depends_on in this module. See https://github.com/terraform-aws-modules/terraform-aws-eks/blob/v13.1.0/cluster.tf#L47

We already have that depends_on in this module. See https://github.com/terraform-aws-modules/terraform-aws-eks/blob/v13.1.0/cluster.tf#L47

apologies, I missed the module part. I thought the comment was directly for the resource.
I switched my code to use the module, cheers

FWIW I think that this issue is not related to terraform or this module, but it's more about how AWS buffers logs and flush them in cloudwatch log group. See also https://github.com/hashicorp/terraform/issues/14750#issuecomment-303664277.

I was wondering if we shouldn't deny the logs:CreateLogGroup for the cluster if we create the cloudwatch log group our self with Terraform.
@max-rocket-internet Any thoughts ?

Yes, I think you are right.
If I understand correctly now the VPC flow logs will create such logs:CreateLogGroup if necessary (https://github.com/terraform-aws-modules/terraform-aws-vpc/blob/master/vpc-flow-logs.tf#L5). I think it should be reduced from * to just the necessary log group name.
There is related discussion (https://github.com/hashicorp/terraform-provider-aws/issues/902) and a note in terraform-aws-provider/ROADMAP.md.

But will reducing the resource from * to the necessary log group name avoid log group recreation by the VPC flow log service (vpc-flow-logs.amazonaws.com) or the EKS cluster ?

Probably it will be working fine if permissions are scoped to the more precise resources instead of *, but I would recommend checking AWS docs for that.

one thing that may be considered here is to allow the creation of the log group externally.
For my use case I have a cluster that I want to destroy every night and recreate every morning (development environment) however keeping the logs from previous days could be useful.

one thing that may be considered here is to allow the creation of the log group externally.
For my use case I have a cluster that I want to destroy every night and recreate every morning (development environment) however keeping the logs from previous days could be useful. Perhaps using 0.13's module-level depends_on users could make sure the log group is the top of the food chain?

@ostmike Yes, we can add an option to let users create and managed their own aws_cloudwatch_log_group.  Please open a feature request issue for this.
I'll happy to review any PR for that.
But for sure, that would make any difference in a busy EKS environment. Because, EKS will recreate the cloudwatch log group just after Terraform destroy it, if it has logs left.

That's still an issue.
You have to "manually" destroy CloudWatch Log group if you want to destroy existing cluster and resources and recreate cluster with exactly same name, rather than creating cluster with some random new name.

That's still an issue.
You have to "manually" destroy CloudWatch Log group if you want to destroy existing cluster and resources and recreate cluster with exactly same name, rather than creating cluster with some random new name.

Wowowow, hol’up Mr. Bot, don’t stale, this is still an issue ! So yes as @barryib said the solution, same as for the VPC module which had the same problem, is to deny the logs:CreateLogGroup permission in the service role: it is not needed since we create the log group ourselves with Terraform, and it is causing trouble. See the implementation for the VPC module: https://github.com/terraform-aws-modules/terraform-aws-vpc/pull/550. @antonbabenko you looked at it the other day so you may remember the details.
Now the situation here is a tad more complex because we don’t create the policy ourselves, we use the AWS provided one AmazonEKSClusterPolicy so it’s not like we can apply the exact same patch as for the VPC module. The solution might take the form of adding a specific deny on top of the AWS policy (which we still want to use to benefit from it always being up to date with EKS). Not so sure yet how to do that, @barryib is this what you were thinking about, do you know how to do it ?

@navaati that was the magic. Can you please open a PR for that ? Could you please test it also ?

Hi.
As I described in my previous message I have a vague idea of what’s needed but I don’t know enough to throw a patch in the air and hope for someone else to test it, and I switched jobs so I’m not really in a position to develop/test this anymore, sorry :/.
I’ll keep an eye on the issue and I might decide to invest some personal time and bucks regarding this bug but that’s very hypothetical at this point, because I don’t use EKS at home or on my new job.

Not stale.

we tested it with #1594 and deny the create log group - we managed to get the auto destroy working please have a look
thanks guys

This issue has been resolved in version 17.24.0 :tada:

Having the same symptoms when destroying and recreating the cluster on v18.4.1. I can't seem to find the IAM hack introduced by #1594 anymore - was it lost during the v18 update or removed intentionally for some reason?

Having the same symptoms when destroying and recreating the cluster on v18.4.1. I can't seem to find the IAM hack introduced by #1594 anymore - was it lost during the v18 update or removed intentionally for some reason?

This was tested and deemed no longer required and therefore removed in v18 - I test this module quite often throughout the week for various PRs and do not see any issues with cloudwatch logs not deleting. please feel free to open a new issue with reproduction steps if necessary

This was tested and deemed no longer required and therefore removed in v18 - I test this module quite often throughout the week for various PRs and do not see any issues with cloudwatch logs not deleting. please feel free to open a new issue with reproduction steps if necessary

@bryantbiggs you cannot replicate this because you dont have a workload over cluster. This is caused by general latency of cloudwatch log processing under huge load. EKS plane producing logs and is destroyed, cloudwatch group is also destroyed and then cloudwatch internal AWS queue recreates log group (when it was arlelady removed by terraform)

This was tested and deemed no longer required and therefore removed in v18 - I test this module quite often throughout the week for various PRs and do not see any issues with cloudwatch logs not deleting. please feel free to open a new issue with reproduction steps if necessary

@bryantbiggs you cannot replicate this because you dont have a workload over cluster. This is caused by general latency of cloudwatch log processing under huge load. EKS plane producing logs and is destroyed, cloudwatch group is also destroyed and then cloudwatch internal AWS queue recreates log group (when it was arlelady removed by terraform)

If that's the case, it's still not the concern of the module. It sounds like users need to delete/stop workloads before destroying the cluster

@bryantbiggs why then the overlay deny was removed with version V18 ? when the only option is now to say we need delete/stop workloads before - because we delivered the fix that it fits

I believe I answered this above. Users can attach additional policies as needed so feel free to do so with your configuration if that is what you need

I hit this recently on a simple eks cluster with virtually no workload running when I terraform destroyed it. I was reading through the issues on this, none of which really seem to completely fix it so I'm just going to manually delete the already-existing resources for now and move on. FWIW, in my case, I'm reproduced this while creating/destroying the cluster in fairly rapid succession.

@timblaktu, why is the explicit deny "hack" not working for you?

I don't know. We're using v18.x so we should have the deny hack (you mean this, right?) in place, since it was introduced in 17.24.0. In my case, this is not easily reproducible, and I'm imagining it happens in extraordinary circumstances, like maybe iff a terraform process (apply or destroy) aborted ungracefully or something..

@bryantbiggs I upgraded our module to 18.17.1 and will start a tight loop creating/destroying our infra. We don't run much workloads either yet and that might be why this is so rare. Ran into it again today, and suspect it's in cases where we destroy immediately after create finishes..

yes, this is still an issue with 18.29.0

@bryantbiggs just to confirm i'm also seeing this issue on the latest version. Could we get the code of https://github.com/terraform-aws-modules/terraform-aws-eks/pull/1594 re-added again ?

https://github.com/terraform-aws-modules/terraform-aws-eks/blob/7f901840c430c0b631cc4066a87779b915a07524/main.tf#L266-L287

perhaps the ARN for the CloudWatch log group is not sufficient for this type of denial policy. This has been changed back to what the original PR had with a wildcard "*" and is available in v18.30.1 https://github.com/terraform-aws-modules/terraform-aws-eks/pull/2267


post_updates fails with large datasets

post_updates is failing when attempting to add fairly large data sets. I assume there is a practical limit that we can adhere to but that should be documented or added as parameter we could check if not already available (I could not find it).

@tompropst thank you for reporting! Could you share the following when you have a moment?

an example of the dataset you are trying to post
error output received when post_updates fails

@kristinpeterson , sorry for the slow response. We weren't seeing the error until we created a test case without exception handling. Now we see:
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://api-m2x.att.com/v2/devices/<my_device_key_was_here>/updates

We are just uploading data that looks like the following:
{'timestamp': '2016-12-31T04:07:39.851514Z', 'value': '0.28\n'}

The issue is that at times we are posting a few thousand data points (6800 for example).

@tompropst the 400 Bad Request error is returned from the API whenever the data being sent is in a format that is not expected by the api 1.
The post_updates method is making a call to the Post Device Updates (Multiple Values to Multiple Streams) endpoint2 expects the data to be formatted as follows:
{ "values": {
    "temperature": [
      { "timestamp": "2014-09-09T19:15:00.981Z", "value": 32 },
      { "timestamp": "2014-09-09T20:15:00.124Z", "value": 30 },
      { "timestamp": "2014-09-09T21:15:00.124Z", "value": 15 } ],
    "humidity": [
      { "timestamp": "2014-09-09T19:15:00.874Z", "value": 88 },
      { "timestamp": "2014-09-09T20:15:00.752Z", "value": 60 },
      { "timestamp": "2014-09-09T21:15:00.752Z", "value": 75 } ]
  }
}

Can you model your data per the above example and try again? Also, I notice that there's a newline (/n) character at the end of the value, might be worthwhile to also remove that in case that is causing any issues as value expects just a float value.

I believe the format of the data is correct. The snippet I provided was just an example of a single timestamp / value pair. We can successfully upload such data (with the rest of the structure you show) until we have a backlog of data greater than 1000 data points. This sometimes happens if we lose network connectivity or some other, intermittent error occurs.
Now that we know there is a 1000 data point limit on a single post request, we have put a check in place to divide large data sets before posting. I opened this issue because I couldn't find this limit documented. It can be closed now unless you want to keep it open as a feature request for the documentation.
Thanks for your help.

@tompropst Apologies for the confusion. We're updating the documentation to be more clear about the 1,000 data point limit. Thank you for bringing this to our attention!


Summary suggestions

Hi everyone, I've altered the function a bit for simplicity. Please review and let me know if it needs further modifications.

@sukhleen999 friendly reminder to update the corresponding description in our R package!

@khbunyan done!


API override functionality is broken

This functionality touted in the readme does not work:

This line in webpack.config.js may have something to do with it:
var targetUrl = isProd ? "https://autorenter-nodeexpress-api.herokuapp.com/api/" : "http://<IP_ADDRESS>:3000/api/";
It would be better to use environment variables for this behavior; look into using the dotenv env module.

Fixed with PR #76


Create a Hotfix release

A yaml file that contains a hotfix build and deploy to production.
Developer should be able to branch from master with the name "hotfix/*". Manual trigger of the pipeline. Pipeline should build a nuget package, build and deploy it to production.

I don´t think that this is something needed. Will open a new one if so.


DSC 6.5.3 cannot log to ClearingHouse

When the DSC registers a new process id at the ClearingHouse, it sends an IDS message with payload (connector id of consumer and producer) to the clearing house. Like in this message:
--8b712f61-36b6-4cc2-ae5c-72c21c4fd933
Content-Disposition: form-data; name="header"
Content-Length: 2383

{
  "@context" : {
    "ids" : "https://w3id.org/idsa/core/",
    "idsc" : "https://w3id.org/idsa/code/"
  },
  "@type" : "ids:RequestMessage",
  "@id" : "https://w3id.org/idsa/autogen/requestMessage/cb79553f-fb53-40d1-9253-850a1f299740",
  "ids:issuerConnector" : {
    "@id" : "https://provider"
  },
  "ids:recipientConnector" : [ {
    "@id" : "http://tc-core:9999/process/b3f92843-7591-45dd-88be-73748148511f"
  } ],
  "ids:senderAgent" : {
    "@id" : "https://provider"
  },
  "ids:recipientAgent" : [ ],
  "ids:securityToken" : {
    "@type" : "ids:DynamicAttributeToken",
    "@id" : "https://w3id.org/idsa/autogen/dynamicAttributeToken/f1ee0ca3-d1c0-417b-af03-f41737b26965",
    "ids:tokenValue" : "...",
    "ids:tokenFormat" : {
      "@id" : "https://w3id.org/idsa/code/JWT"
    }
  },
  "ids:modelVersion" : "4.1.0",
  "ids:issued" : {
    "@value" : "2022-02-03T09:25:06.417Z",
    "@type" : "http://www.w3.org/2001/XMLSchema#dateTimeStamp"
  }
}
--8b712f61-36b6-4cc2-ae5c-72c21c4fd933
Content-Disposition: form-data; name="payload"
Content-Length: 50

{"owners":["https://provider","https://consumer"]}
--8b712f61-36b6-4cc2-ae5c-72c21c4fd933--

But instead of the connector URIs that are sent, the ClearingHouse expects the token client Ids and keys of the connectors.
FYI @kragall and @ronjaquensel
Additionally, the payload part of the IDS message needs Content-Type: application/json to be set.

The old implementation of the Clearing House apparently did not check the payload, which is why it has worked for many who have tested it so far. The current implementation of the clearing house expects the sub attribute from the DAT, i.e. the certificate, as payload to identitfy the involved connectors.  However, this does not correspond to the current definition on connector identification (IDS Think Tank / Connector identity concept), which is implemented by the DSC. We will clarify this further next week.

Provider (Connector sending to the ClearingHouse):
The ski:keyid:aki identifier combination, called by us connector fingerprint in the code, is also currently used internally by the DSC for requesting the DAT from a DAPS, as it is part of the request to the DAPS to identify the connector by its used certificate (see: Request token that is handed in at DAPS side -> sub and iss). Due to the lack of clarity as to what the unique identifier of a connector actually is, currently there seems to be several at different levels (public/internal..), so we refer to this combination as the "fingerprint of the connector". Code at which the fingerprint is determined.
Consumer:
The ski:keyid:aki identifier of this connector is part of the DAT payload of the messages that this connector sends to us (see: Dynamic Attribute Token Content -> payload fields -> sub field): ...This is the connector requesting the DAT. The sub value must be the combined entry of the SKI and AKI of the IDS X509... -> example: "sub": "A5:0C:A5:F0:84:D9:90:BB:BC:D9:57:3A:04:C8:7F:93:ED:97:A2:52:keyid:CB:8C:C7:B6:85:79:A8:23:A6:CB:15:AB:17:50:2F:E6:65:43:5D:E8"
Other:
Due to the new specification (draft) there could be braking changes when requesting a DAT from the DAPS (quote: "This should lead to a requirement that each connector MUST be identified by a unique hostname"), perhaps we should think about downward compatibility in this area, since sub and iss in the request to the DAPS are both currently the ski:keyid:aki connector identifier and not any hostname. If this is not adopted for the DAT request, we will continue to have different identifiers of a connector (internally/public) and thus possible misunderstandings which identifier is actually needed, like in this Issue case.

We discussed this a for some time. For the time being, we would suggest to stickt to aki/ski, since this is according to spec and it is available in all rolled out certificates, in contradiction to the Subject Alternative Name (SAN), which is not set everywhere etc. We could roll out certificates but this would be fragile and the implementation would be in limbo.
For a perspective: We also discussed going to the direction of URL as identifiers. But we get contradicting messages from different parties. We would have to define the deployment processes first, since:

Now, you can request an id and edit als other attributes, including the self-description endpoint (referringConnector in DAT) later.

If we keep both an connector identity and separated TLS certificate, this would be a stable solution and we could change DNS entries later.

The identifier is not bound to a fixed protocol and not bound to DNS, which is not considered to be secure enough for some applications.

If we go for a global identifier later, we should refrain from binding to a fixed protocol and use something more generic such as a URN scheme: urn:ids:someconnector.fraunhofer.de

TL;DR: We should stick to aki/ski. I hope the implementation/change burden is very low.

Other Connector:
Getting the aki/ski of the Connector of the incoming-message-DAT is already supported by using the Messaging-Services MessageAndClaimsHandler instead of just the MessageHandler, which will also pass the Claims of the incoming DAT to the handler.
e.g. in my testing connector looks like this for incoming DescriptionRequestMessage as example:

printed log info (abbr. aki/ski):
DAT SUB: 38:A1:F4:D1:37:16:...:keyid:CB:8C:C7:B6:85:79:...

Will release a new Messaging-Services version today.
Would mean for DSC:

own aki/ski (if available): ConnectorFingerprintProvider.fingerprint
other connector aki/ski (if available): MessageAndClaimsHandler -> Optional Claims -> body.subject

Would then have to be adopted where necessary.


The repository 'https://packages.adoptium.net/artifactory/deb focal InRelease' is no longer signed

Please provide a brief summary of the bug
apt update fails for an unknown reason after 3:40 PM Central
Did you test with the latest update version?

[ ] Yes

Please provide steps to reproduce where possible
Attempt to apt-update on Ubuntu 20.0 after having the following in your source.list:
deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb focal main
Expected Results
apt update command should succeed
Actual Results
apt update fails with "The repository 'https://packages.adoptium.net/artifactory/deb focal InRelease' is no longer signed" and "Clearsigned file isn't valid, got 'NOSPLIT' (does the network require authentication?)"
What Java Version are you using?
11
What is your operating system and platform?
Ubuntu 20.04, amd64
How did you install Java?
apt install temurin-11-jre
Did it work before?
Yes, it worked prior to 3:40 PM Central Time 12/2/24

Did you test with other Java versions?
No
Relevant log output
Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:3 https://artifacts.elastic.co/packages/7.x/apt stable InRelease
Hit:4 https://apt.puppet.com focal InRelease
Get:5 http://nova.clouds.archive.ubuntu.com/ubuntu focal InRelease [265 kB]
Hit:2 https://artifactory.adtechlabs.com/artifactory/debian focal InRelease
Get:6 https://packages.adoptium.net/artifactory/deb focal InRelease
Err:6 https://packages.adoptium.net/artifactory/deb focal InRelease
  Clearsigned file isn't valid, got 'NOSPLIT' (does the network require authentication?)
Get:7 http://nova.clouds.archive.ubuntu.com/ubuntu focal-updates InRelease [128 kB]
Get:8 http://nova.clouds.archive.ubuntu.com/ubuntu focal-backports InRelease [128 kB]
Reading package lists... Done
E: Failed to fetch https://packages.adoptium.net/artifactory/deb/dists/focal/InRelease  Clearsigned file isn't valid, got 'NOSPLIT' (does the network require authentication?)
E: The repository 'https://packages.adoptium.net/artifactory/deb focal InRelease' is no longer signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Other Troubleshooting
Based on the availability check we have, latency increased around 3:40PM Central Time.

I've diffed the current and available keys (.asc) and there is no difference in the public GPG key which I had thought maybe expired and we had a chicken/egg scenario but they are still identical. Happens outside of our datacenters as well. I've found a way to proxy this through our JFrog SaaS instead but I understand this is also backed by JFrog Artifactory so I'm confused why packages.adoptium.net -> our JFrog SaaS -> user works but not packages.adoptium.net -> user?

Similar issue with Java 17 on Ubuntu 20.04 and 24.04.1

For some bizarre reason, Artifactory is redirecting the request to /ui/native/deb/dists/jammy/InRelease when the User-Agent header starts with Debian.  See the below output from running apt-get -o Debug::Acquire::https=true update.  This seems like a proxy misconfiguration or something like that (I'm not aware that Artifactory itself redirects based on User-Agent).
Hit:1 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy InRelease
Hit:2 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:3 http://us-east-1.ec2.archive.ubuntu.com/ubuntu jammy-backports InRelease
Hit:4 http://security.ubuntu.com/ubuntu jammy-security InRelease
0% [Connected to packages.adoptium.net (<IP_ADDRESS>)]GET /artifactory/deb/dists/jammy/InRelease HTTP/1.1
Host: packages.adoptium.net
Cache-Control: max-age=0
Accept: text/*
User-Agent: Debian APT-HTTP/1.3 (2.4.13) non-interactive

Answer for: https://packages.adoptium.net/artifactory/deb/dists/jammy/InRelease
HTTP/1.1 302 Found
Date: Tue, 03 Dec 2024 05:00:39 GMT
Content-Length: 0
Connection: keep-alive
retry-after: 0
location: /ui/native/deb/dists/jammy/InRelease
accept-ranges: bytes
via: 1.1 varnish
x-served-by: cache-iad-kiad7000176-IAD
x-cache: HIT
x-cache-hits: 0
x-timer: S1733202039.461023,VS0,VE0
CF-Cache-Status: DYNAMIC
Server: cloudflare
CF-RAY: 8ec0fe8a7c74575e-IAD
alt-svc: h3=":443"; ma=86400

Similar issue with Java 17 on Ubuntu 20.04 and 24.04.1

same issue here.

same and https://packages.adoptium.net/artifactory/api/gpg/key/public is empty

Same issue while building a Docker image using latest Ubuntu and JDK 21.

same and https://packages.adoptium.net/artifactory/api/gpg/key/public is empty

for me wget works:
wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public
but browser requires login

maybe @gdams or @karianna can help

I have temporarily disabled some redirect logic for detecting browsers Can people please confirm the fix?

now working after @gdams fix.

Docker build also working again.

@gdams Thank you very much! It also now runs correctly in my environment.

I can confirm that the fix has resolved the issues in my environment.  Hopefully the "temporary" fix becomes a permanent fix.

Thank you for the quick response on this @gdams.


Compilation errorring with DynamicJasper & olap4j

While trying to launch gradle targets (gradle eclipse or gradle dependencies), I am encountering the following error:
FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':core'.
> Could not resolve all dependencies for configuration ':core:runtimeCopy'.
   > Could not find ar.com.fdvs:DynamicJasper:5.0.0.
     Searched in the following locations:

[...]
   > Could not find org.olap4j:olap4j:<IP_ADDRESS>9-JS-3.

Relying on mvnrepository.com, the v5.0.0 of DynamicJasper does not seem to be available anymore on the official repositories:
http://mvnrepository.com/artifact/ar.com.fdvs/DynamicJasper
This is probably due to the recent removal of the dev.mapfish.org server (which used to host a custom maven repository).
I see two possible approach to solve the issue:

Either copy the files on an accessible maven repo & modify the build.gradle so that the build process makes use of it
or
Upgrade to newer versions of these 2 libs

About the second error (with olap4j), this is not due to mapfish-print, but an upstream problem in jasperreports:
http://community.jaspersoft.com/questions/826431/failure-find-orgolap4jolap4jjar097309-js-3

Thanks for reporting, Pierre! See https://github.com/mapfish/mapfish-print/pull/416


document cache=True for DVCFileSystem

Report
DVC now supports caching files opened or downloaded from remotes if cache=True is set.
It has a caveat for fs.open, that it caches actively before yielding the control back to the user. That is, on fs.open, it immediately fetches and caches everything and then returns a file-object from the downloaded file.
See https://github.com/iterative/dvc-data/pull/429 and https://github.com/iterative/dvc-data/pull/428.

@skshetry Can you take this one?


[MKLDNN] Enable signed int8 support for convolution.

Description
Major changes:

Integrate mkldnn signed int8 convolution.
Introduce new quantization flow out_type auto, which automatically determines the out_type according to calibration information. If negative value is detected from calibration min, out_type will be int8, otherwise, out_type will be uint8.
Introduce new operator quantize_v2, which only has 1 input data and will self-calculate min/max in runtime or use calibration information set by attrs. Then calibration informations are all recorded in model file instead of part in params file. User can easily modify them without touching params file. This operator also used to implement out_type auto.
Add new parameter monitor_all for monitor module to allow monitoring both input & output of operators. This is used for collecting calibration information of in_data to support quantize first layer of graph.

@pengzhao-intel @TaoLv @zheng-da @reminisce @azai91
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[x] The PR title starts with [MXNET-$JIRA_ID], where $JIRA_ID refers to the relevant JIRA issue created (except PRs with tiny changes)
[x] Changes are complete (i.e. I finished coding on this PR)
[x] All changes have test coverage:
Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
[x] Code is well-documented:
For user-facing API changes, API doc string has been updated.
For new C++ functions in header files, their functionalities and arguments are documented.
For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
Check the API doc at http://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-$PR_ID/$BUILD_ID/index.html
[x] To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

@marcoabreu Looks like CI has trouble to build this PR. Some builds failed to compile this line
https://github.com/apache/incubator-mxnet/blob/84131807d67bb6a256b78cd75bb12a274c22347b/include/mxnet/tensor_blob.h#L290
with comparison between signed and unsigned integer expressions. But this PR doesn't touch that part, and looking into the code, both sides are returning size_t, which should be all same. Another prove is, clang can build pass with -Wsign-compare, which indicated that the gcc build has some problem. Can you have a look? Thanks.

@KellenSunderland could you help take a look for the CI issue?

FYI @yoel-shapiro

Hi, I'm still getting an issue when using "int8"
[I rebuilt MKLDNN, mxnet-incubator, and verified that the script works with "uint8"]
I am able to run calibration but when I use the quantized output model I get the following error, specifically when trying to read the model's predictions:
Traceback (most recent call last):
File "inference_dsalite.py", line 199, in
image = pred[k_head][k_im].asnumpy()
File "/home/local/ANT/yoelsh/work/mxcode/incubator-mxnet/python/mxnet/ndarray/ndarray.py", line 1987, in asnumpy
ctypes.c_size_t(data.size)))
File "/home/local/ANT/yoelsh/work/mxcode/incubator-mxnet/python/mxnet/base.py", line 252, in check_call
raise MXNetError(py_str(_LIB.MXGetLastError()))
mxnet.base.MXNetError: [12:08:38] src/operator/subgraph/mkldnn/mkldnn_conv.cc:346: Can't handle negetive value for QuantizeData
I commented out the LOG(FATAL) line (#346), but then I get:
mxnet.base.MXNetError: [12:29:51] src/operator/nn/mkldnn/mkldnn_convolution.cc:140: Check failed: conv_pd.next_impl() No implementation

@yoel-shapiro Thanks for trying MKLDNN int8 solution. Did you apply this PR? This PR removed line 346 check, and did lots of changes to support int8. Please try int8 with this PR.

@yoel-shapiro PR is updated to address the issue you mentioned. Please try again. Thanks for reporting this.

fixed!
thank you!

@marcoabreu Looks like CI has trouble to build this PR. Some builds failed to compile this line
......
So comparing size_t with index_t causing build failed. Question: why our CI didn't report this previously, and even not from other PRs sent at same time? Does ccache hide this issue?

@marcoabreu Sorry to bother you. Currently, the PR is blocked by CI failure as @ZhennanQin mentioned above.
Would you help take a look for the CI issue after the holiday? Thanks in advance.

If you can rebase this I can try and have a look at the CI failure.

@KellenSunderland Thanks for reviewing this. The reason of build failure is known, which will be fixed by https://github.com/apache/incubator-mxnet/pull/13729 and https://github.com/dmlc/mshadow/pull/367

@ZhennanQin Thanks to you for the great contribution!  I agree your change will fix the compile, but I'm curious why this warning has recently been treated as an error.

@KellenSunderland Happy New Year!
Really thanks for your review and providing amount of very good comments.
Regarding the documents, the current quantization flow is very flexible. On the other hand, it's complicated. Definitely, we need systematic documents to answer the FAQ and disclose some technical and architecture details for the advantage users. In addition to the descriptions in the script, we plan to write more info/cases, also compare INT8 and UINT8 results, in the Model Quantization with Intel® MKL-DNN by another PR.  Very appriciate for further suggestions and help us improve the documentation.
Regarding the API changes, I keep a more open attitude. Becasue the whole quantization flow is under the developments with the Experimental lable.  Thus, if the API changes or improvements are good for the users or functionality, it will be acceptable. Actually, we will still make the API as stable as possible.
Feel free to correct me :) Any other comments either for this PR or the quantization flow are highly welcome 👍

Sounds good to me @pengzhao-intel.  Really appreciate the contributions you all are making and the explanations here have been great.  Regarding unfinalized APIs I agree we can be somewhat flexible as long as we communicate to users that these are experimental APIs in some way (have them in contrib, protect them with build flags).
@ZhennanQin @apeforest Would it make sense to cast this manually for the time being to unblock the PR development?  There may be some tradeoffs I'm not seeing, but that seems to me like a good way forward that doesn't require mshadow changes.  https://github.com/apache/incubator-mxnet/pull/13755/commits/8711032d19f400284c1b6d48091a1186bc81e1f8

@KellenSunderland Thanks for your good suggestion. I've added your change into this PR to try to get CI pass.

It's not easy to pass the CI.
@KellenSunderland @reminisce @zheng-da could you help take a reveiw again?
We still have a long PR list after this PR :)

@reminisce , Thanks for review. We didn't track GPU accuracy as this PR only for mkldnn convolution integration. GPU accuracy is expected to be small affected as we reverted some entropy change in u8 PR by mistake and we add them back in this PR.

@xinyu-intel could you help verify the GPU accuracy with this PR?

@ZhennanQin This PR has touched the code shared by GPU and CPU quantization. It's better to verify that no bugs have been introduced to affect the GPU test accuracy. Thanks.

@reminisce As you have concern about entropy change, I removed the parts that for uint8 fix, as it's not the major task of this PR. Other entropy change are re-applying the fix of entropy which removed by mistake. Please review again. Thanks.

@reminisce
I tested resnet152 and inception-bn on Tesla V100 and resnet152 looks good. However, there is a quantization bug with inception-bn because  #13297 enabled quantized_concat on CPU side. It seems that #14060 is fixing this bug. Below are accuracy numbers of these two models(after apply #14060 ).

MODE
ResNet152
Inception-bn

FP32
77.18%/93.00%
72.38%/90.61%

online
75.46%/92.24%
72.08%/90.31%

5 batch naive
75.41%/92.10%
71.81%/90.29%

@xinyu-intel Thanks for the verification. I have approved PR https://github.com/apache/incubator-mxnet/pull/14060, but I cannot merge that PR because it hasn't passed CI test.

PR #14060 is merged. Please rebase to trigger CI again. Thanks.

@szha @reminisce @KellenSunderland @TaoLv all comments are resolved now.
Could you help take a look again and merge the PR in case no other new comment?


Plotting style

Currently we're using the default matplotlib plotting style:

IMO it's not very pretty we should adopt the Astropy plotting style (see here, but it doesn't show up because of Astropy Sphinx bugs, sigh) or define our own.
It's pretty easy to implement, se here and here how it was done in Gammapy.
I think there also was talk about a "dark style" for astroplan, but now I can't find any issue for that.
What do you think?
I've put the 0.2 milestone, but if someone wants to implement this today for 0.1, it should be possible.

We did talk about a "dark style", and I put that in the TODO section of all the plotting function docstrings, but it has since taken a back seat to other matters.
Matplotlib is coming out with new defaults soon.  Maybe we should wait until after?

I haven't seen the new matplotlib style (other than the color map), but I trust it's going to be good, so am OK with us using.
But there's the issue that we want to support both matplotlib 1 and 2, i.e. our image comparison tests should work with either.
Probably the simplest solution is to define our own style (which could be just a copy of the default matplotlib 2.0 style)
I've mentioned this in https://github.com/astrofrog/pytest-mpl/issues/12 ... let's wait and see what @astrofrog recommends.


[bug] Defining NOMINMAX still leads to compilation errors

Describe the bug
I am creating a MFC shared dll project .
I have included "jwt-cpp\jwt.h" in my .cpp file.
I have given the proper include path and openssl lib in project settings.
while I am trying to compile in 64 bit
I am receiving errors from include\picojson\picojson.h and
\microsoft visual studio 14.0\vc\include\xutility(2982).
If I am creating a Console Application in C++ and do the same thing.
It is getting compiled successfully
How To Reproduce (Include if Applicable)
Please provide a small snippet to reproduce the issue
Expected behavior
should be compiled successfully.
Screenshots
As suggested in readme file I have done like below in my class .cpp file
#include "jwt-cpp\jwt.h"
#include <iostream>

#define NOMINMAX
#include <Windows.h>

Desktop (please complete the following information):

OS: Windows10
Compiler Microsoft C++ Compiler,target x64
Version VS2015

Additional context
Add any other context about the problem here.
Logs (Include/Attach if Applicable)
Click to expand log
jwt-cpp-master\include\picojson\picojson.h(910): error C2059: syntax error: '::'
jwt-cpp-master\include\picojson\picojson.h(911): error C2143: syntax error: missing ';' before '{'
jwt-cpp-master\include\picojson\picojson.h(917): error C2065: 'f': undeclared identifier
jwt-cpp-master\include\picojson\picojson.h(917): error C2065: 'num_str': undeclared identifier
jwt-cpp-master\include\picojson\picojson.h(917): error C2228: left of '.c_str' must have class/struct/union
1>  c:\gcss release\roys_poc\gcssfeb2c auth\jwt-cpp-master\jwt-cpp-master\include\picojson\picojson.h(917): note: type is 'unknown-type'
jwt-cpp-master\include\picojson\picojson.h(917): error C2065: 'endp': undeclared identifier
jwt-cpp-master\include\picojson\picojson.h(918): error C2065: 'endp': undeclared identifier
jwt-cpp-master\include\picojson\picojson.h(918): error C2065: 'num_str': undeclared identifier
jwt-cpp-master\include\picojson\picojson.h(918): error C2228: left of '.c_str' must have class/struct/union
1>  c:\gcss release\roys_poc\gcssfeb2c auth\jwt-cpp-master\jwt-cpp-master\include\picojson\picojson.h(918): note: type is 'unknown-type'
jwt-cpp-master\include\picojson\picojson.h(918): error C2228: left of '.size' must have class/struct/union
1>  c:\gcss release\roys_poc\gcssfeb2c auth\jwt-cpp-master\jwt-cpp-master\include\picojson\picojson.h(918): note: type is 'unknown-type'
jwt-cpp-master\include\picojson\picojson.h(919): error C2065: 'f': undeclared identifier
jwt-cpp-master\include\picojson\picojson.h(924): error C2043: illegal break
jwt-cpp-master\include\picojson\picojson.h(926): error C3927: '->': trailing return type is not allowed after a non-function declarator
jwt-cpp-master\include\picojson\picojson.h(926): error C3484: syntax error: expected '->' before the return type
jwt-cpp-master\include\picojson\picojson.h(926): error C3613: missing return type after '->' ('int' assumed)
jwt-cpp-master\include\picojson\picojson.h(926): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
jwt-cpp-master\include\picojson\picojson.h(926): error C2146: syntax error: missing ';' before identifier 'ungetc'
jwt-cpp-master\include\picojson\picojson.h(927): error C2059: syntax error: 'return'
jwt-cpp-master\include\picojson\picojson.h(928): error C2059: syntax error: '}'
jwt-cpp-master\include\picojson\picojson.h(928): error C2143: syntax error: missing ';' before '}'
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xutility(2982): error C2143: syntax error: missing ';' before '{'
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xutility(2982): error C2447: '{': missing function header (old-style formal list?)

Seems like min/max is still defined as a macro despite NOMINMAX being defined. Are you sure Windows.h is never included before the macro is defined?

I just searched my project. Windows.h is not included before the macro. I have also moved this below code on top of my header file but received same error.For my code Windows.h is not required.To use "jwt-cpp\jwt.h" I have included it. Even if I compiled keeping only NOMINMAX and without including  Windows.h still the errors are same.
#define NOMINMAX
#include <Windows.h>

The define needs to be placed before you include any headers, something like this
#define NOMINMAX
#include "jwt-cpp\jwt.h"

Maybe give that a try and let us know!

I have tried with putting the below lines very top of the .cpp file
#define NOMINMAX
#include "jwt-cpp\jwt.h"
now received different errors
1>jwttokendecoder.cpp(2): warning C4603: 'NOMINMAX': macro is not defined or definition is different after precompiled header use
1>  jwttokendecoder.cpp(2): note: Add macro to precompiled header instead of defining here
1>  jwttokendecoder.cpp(5): note: use of precompiled header
1>jwttokendecoder.cpp(147): error C2653: 'jwt': is not a class or namespace name
1>jwttokendecoder.cpp(147): error C3861: 'decode': identifier not found
1>jwttokendecoder.cpp(148): error C2228: left of '.get_payload_claims' must have class/struct/union
1>  jwttokendecoder.cpp(148): note: type is 'unknown-type'
1>jwttokendecoder.cpp(149): error C2065: 'e': undeclared identifier
1>jwttokendecoder.cpp(149): error C2228: left of '.first' must have class/struct/union
1>  jwttokendecoder.cpp(149): note: type is 'unknown-type'
1>jwttokendecoder.cpp(149): error C2228: left of '.second' must have class/struct/union
1>  jwttokendecoder.cpp(149): note: type is 'unknown-type'
1>jwttokendecoder.cpp(149): error C2228: left of '.to_json' must have class/struct/union

Ahh I think I see whats going on. You seem to use precompiled headers. Thats a single header that should contain all headers you frequently use (like windows.h). It allows the compiler to speed up compilation by only parsing those headers once. I believe it gets automatically included in every file if enabled, which is why you include windows.h even if you dont in your source file. Try placing the NOMINMAX macro at the start of your pch.h or disable precompiled headers if you dont need them.

I disabled the use of precompiled headers as I don't need them and it worked like a charm!!.
Thank you so much for your support.

Glad we could help!


Add view of the codeflow message inline in the editor

Add an inline view of the codeflow steps message. This will allow the user to see the message/description right next to the code.
Open questions:

do we want to show all of the messages or only the current one selected?
should we show the message in the line above(via codelens) or to the right of the line(via decoration)?

Is below the line an option? I think that's what CodeSonar and Clang Static Analyzer do.
Either above or below may sometimes split a multi-line statement. I'm not sure what existing tools do in that case. It might be an argument for "to the right."
Which messages are shown inline could be tied to the "level of detail" option. Arguably should be. (You could have two separate "level of detail" sliders, but that seems a mess.)
In the code view, I'd like the level of detail to control whether messages are displayed or not, but I think involved lines should always be highlighted, regardless of the level of detail.

I believe most viewers puts this information below the line. @rscrivens, VS code lens can provide another data point as far as current viewer behavior.
I tend to agree we could consider two exclusive modes, either the discrete code flow navigator or the inlined view. We definitely should have a single detalis widget that applies to either experience.
We will retain path highlighting for verbose message inlined in code, but the events chrome and other widgets/etc. would disappear. Chrome/etc. for messages hidden due to detail level could still be available on hover.

After investigating/prototyping, the options for below the region either have issues or aren't supported yet:

Codelens Below: only seem to display above the region it's associated with, so to get it below I assign the code lens to the line after the end of the region. But this can cause indentation issues if the next line is indented differently then the region the message is for:

View zone widget: VSCode has a widget which looks like it might work well for what we need but I couldn't find anywhere it's currently exposed for extensions to use. There are a few requests for a custom inline widget for extensions to use such as https://github.com/Microsoft/vscode/issues/3220.

For now the best option I can see is using codelens showing the message above region, here's an example of that (includes the functionality to hide/show the message based on verbosity setting):


model in the right place

I have edited dummy  IOT Devices to follow the Concept Of MVC. There is 2 Links for Explanation   - >> https://de.wikipedia.org/wiki/Model_View_Controller
https://www.interserver.net/tips/kb/mvc-advantages-disadvantages-mvc/
Why should follow MVC ?

TO be readable for anyone want understand the Code.
Accelerated Development Process
To make it Possible to Develop Multiple View Components for our  Model
Supports Asynchronous Method Invocation (AMI)

👍  LGTM


Add Automated Readability Index (ARI). Closes #20

The function (added to visualization.py) returns a new series where each entry corresponds to the ARI of the given series at that position. It uses exactly the wikipedia formula & description. Numpy is imported so NaNs can be returned for invalid entries.
Also added unit tests to test_visualization.py.

Hi @hf2000510, thank you for your PR and welcome!
In general, Texthero's source code should be as minimal, as fast and as concise as possible. Probably, we can change a bit the code to make it more clear and easy to read and probably faster.
Learn from textstat
Textstat, a python toolkit that provide some text statistics has already implemented ari. Their solution is a bit more concise:
def automated_readability_index(self, text):
        chrs = self.char_count(text)
        words = self.lexicon_count(text)
        sentences = self.sentence_count(text)
        try:
            a = float(chrs) / float(words)
            b = float(words) / float(sentences)
            readability = (
                    (4.71 * legacy_round(a, 2))
                    + (0.5 * legacy_round(b, 2))
                    - 21.43)
            return legacy_round(readability, 1)
        except ZeroDivisionError:
            return 0.0

We can probably learn from them.
Notice also how they use char_count, lexicon_count and sentence_count.
Pandas way
If you look carefully at almost all Texthero's functions, when not strictly necessary, we try to avoid using apply as this is slower compared to the built-in Pandas function.
For the ARI function, we can probably obtain the same results by first computing the Pandas Series for characters_s, words_s and sentence_s and then, using broadcasting as in numpy, compute ari_s = 4.71 * character_s/ ...

x_s is a convention used in Textehero's code to show that the variable is a Pandas Series. p.s if you spot some code that does not use this convention, feel free to open a PR.

Check input is string
Using preprocessing.remove_whitespace for checking if the input is a Pandas Series of a string is not the best solution as is not very clear why and also as it uses a function not designed for that.
Instead, we should probably use pandas.api.types.is_string_dtype from Pandas: link.

Having a solid knowledge of Pandas might help when contributing to Texthero. If you haven't already done, I encourage you to have a look at the Pandas API in details. This are good pages to check: General utility functions and Pandas Series string handling.

Extra comments
For correctly achieving this function, we need to implement basically three sub-tasks:

words_s is the number of spaces, so we need to count this. This is just s.str.split().str.len() -1, right?
characters_ is the number of characters. This is s.str.len()
sentence_s is the number of sentences. This is more subtle to compute and we need spaCy, right? Splitting by . and counts would not be enough (example: Stop, F.B.I, do not move. ...)

For sentence_s would be interesting to add a hero function hero.count_sentences that does exactly that. We might, therefore, want to first add a PR that adds this new function and only later implement the ari function.
For words_s and characters_s probably an extra hero function is not necessary but probably not everyone knows these tricks.  For this part, the idea is to write a "how-to" tutorial on the blog that explains how to profit the most of Pandas.
This was quite a long PR review, hope you got some interesting and useful hints.
Let me know your feedback!
Regards,

Thanks for your help! I've converted this to a draft pull request and opened #51 to first implement a count_sentences function, which makes sense independently, and also makes the automated readability index implementation easier. Will finish this when count_sentences is done.

We had some Git trouble (as you can probably see above :3rd_place_medal: ) so we closed this and moved the PR to #74 , sorry about that :neckbeard:


Trending articles should come all from single source

Right now the trending articles are from different sources

for /learn, trending.json file in https://github.com/freeCodeCamp/freeCodeCamp/tree/main/client/i18n/locales
for /news, https://github.com/freeCodeCamp/cdn/tree/main/build/universal/trending
for forum, https://github.com/freeCodeCamp/forum-theme/blob/main/settings.yml

We need to have all footers take the articles from the same source (cdn),
and also, create a way to visually test the footer to confirm the cdn file is fine before it goes live.
cc/ @ahmadabdolsaheb @zairahira

Related discussion: https://github.com/freeCodeCamp/news/pull/218

I also remember asking in one of those repos if there was a way to automate the whole process

Here is the new CDN footer update: https://github.com/freeCodeCamp/cdn/pull/143

We should be able to pull the footer from the cdn during build for learn.
As of the forum, we could have an action that gets triggered when a pr is merged on the cdn, checks if trending has been updated and create a pr on the forum theme repo.

Had a discussion with a few of the dev team and here is the conclusion:

The CDN will be the single source of truth.
New prs to the trending links for each language will check if the new links have the required number of texts, links, and max chars for the links of each column.
Learn will pull from CDN on build
News pulls from CDN on build
Once CDN pr to the English trending articles is merged, a github action will create a pull request on the forum theme repo which will be reviewed and merged manually.

Since different characters in difference languages have different widths a visual test is also required. Here are a few ways to approach it:

pass the proposed links to local news build and view the footer grid locally.
a footer previewer tool that receives a pr and displays proposed changes.

So the next step would be to pull the learn trending links from CDN.
@scissorsneedfoodtoo, tom and I tried to reimplement your backend news solution in https://github.com/freeCodeCamp/freeCodeCamp/pull/47174 with no success yet.

@ahmadabdolsaheb, thanks for reminding me about this. I'll take a look at that PR now.


virtual-scroll: allow setting the scrolled-to index

Add an input to the virtual scroll container that allows developers to set the index of the first element that should be visible in the viewport.
We should also allow specifying an index that is greater than the length of the currently loaded data. Once the data loads we can scroll to the specified index.

I'd use this to do the actual scrolling:
        try {
          this._elementRef.nativeElement.scrollTo({ left: 0, top, behavior: 'smooth' });
        } catch (e) {
          // IE Sucks
          window.scrollTo(0, top);
        }

I think we need a scrollToItem and a scrollToOffset implementation.

@mmalerba  HI.  Could you please approximately say when scrollToIndex method for autosize strategy will be implemented?

https://github.com/angular/components/pull/12272


Introducing Spring Open Feign

Is code a good place for URLs?
This is the catch, urls are always a problem, and add to that location for each service ; so better to use Open Feign project.

Thanks, Sweelam,
First thanks very much for the issue.
I am developing this project in stages, for example, first building the services skeletons, and all communication is static as you have seen with random contents, second stage adding database, third introduce service discovery to get rid of static URL communication and using service name, then dockerize the application, and so on.
I will update the readme file to reflect these clarifications.


tasks publish_dry_run and verify_only

Changes:

New task publish_dry_run - it should prevent "gloo_timers accidents".
publish_dry_run integrated into task verify.
New task verify_only - same like verify but doesn't make changes, intended to use in CI.
Updated .travis.yml - uses verify_only.

I recommend to allow only merge branches to master with successful build (if you haven't set it up yet or it isn't GitHub default behavior). Because I've changed .travis.yml and I don't know if it pass on the first try. And button like GitLab's one "Merge when pipeline succeeds" is nice if GitHub has it.

I don't know how much is releasing annoying for you / error prone - but I saw some cargo make flows which should help with it or we can write custom.

Great stuff. Should avoid unnecessary troubleshooting commits like in last rel

Re release flow. Steps are to update chglog, test, commit, push, package, publish, add GitHub release, update homepage as required, including with a script that updates docs links. Not too bad, but could be automated.


Use NPM packages for LittleFS and ESPTool plus Cleanup

This removes the esptool.js and littlefs.js files and makes use of importing their packages. I also removed some old unused code. The generate() function from littlefs was moved here because it made more sense with it being fairly WipperSnapper Uploader specific.
@lorennorman do you want to take a look at this?

Also, the percentages finished are off and I have a PR in to the esp-web-flasher to fix it (https://github.com/NabuCasa/esp-web-flasher/pull/112).

Ok, this will wait until the Percentages PR has been fixed, then I need to update the NPM package version this points to, at which point the progress bars should be working again.

Status bars are working now. Also I removed the await on the load module and no issues.

Just tested this at your fork's GH:Pages deployment and still did not see them working. It looks as though they fill completely upon 100%, but don't show progress along the way. Here's a movie of what I saw, the first 4 files are small and it shoots to full immediately, the 5th file is large and gives no updates for a few dozen seconds:
https://user-images.githubusercontent.com/17697/162445338-ab602df1-c4fd-4ebc-bb54-d24d386294e6.mov
Aside: I also got an unhandled rejection at the end:
Uncaught (in promise) ReferenceError: struct is not defined
    at LittleFS.dirAlloc (littlefs.js:267:42)
    at LittleFS.format (littlefs.js:215:18)
    at generate (script.js:996:22)
    at Object.func (script.js:791:49)
    at programScript (script.js:845:24)
    at async HTMLButtonElement.clickProgram (script.js:634:5)

Ok, fixed the error, but now the status bars are a little wonky again.

Wack-a-Mole: Extreme Bug Edition

Everything should be golden now.


Fatal Connection String "Unable to find the requested .Net Framework Data Provider. It may not be installed."

I'm having the same problem as described in https://github.com/Glimpse/Glimpse/issues/884
I have a .NET 4.5 web project that uses a separate DAL project.  I'm using EF6 with .edmx database-first design.  I have glimpse.ado 1.7.3, glimpse asp.net 1.9.2, glimpse core 1.8.6, and glimpse EF6 1.6.5 installed into the main web project.
The connection string that is working with my app is
			<add name="ResearchEntities" connectionString="metadata=res://*/ResearchModel.csdl|res://*/ResearchModel.ssdl|res://*/ResearchModel.msl;provider=System.Data.SqlClient;provider connection string="data source=sqldev\dev;initial catalog=Research;persist security info=True;user id=datawriter;password=*******;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
But when executing a page, the SQL tab is not getting enabled, and the configuration tab shows this for this connection string and others like it.

Unfortunately there isn't much I can do at the moment. That said, the progress is being tracked at #226


parser request: C37.118 (synchrophasor)

This parser would be for the IEEE standard for Syncrophasor Data Transfer for Power Systems, C37.118.

Some links:

WireShark wiki, including some PCAPs
WireShark display fields
IEEE Standard (paywalled, but I have the PDF for internal use)
Somebody may have started working on a binpac parser for this back in '19, we could check that out
GitHub search for C37.118
shuvangkardas/pySynphasor scapy framework for C37.118

ieee-standard-for-synchrophasor-data-transfer-for-power-systems.pdf


token: methods to decode account layouts for mint and token are not publicly accessible

Currently all methods to access a token account or mint are coupled to a connection object. In order to work with data from other transport streams, e.g. when fetching accounts via geyser plugins or other indexers i can't use them and so just copied all the layout decoding logic. A simple fix like exporting unpack* wouldn't help either as it expects AccountInfo rather then a plain Buffer.

Gotcha, can you provide the exact interface that you expect for this?  As you mention, in Rust we can't use the AccountInfo version since that's only on-chain, but maybe we just need to convert from Account https://github.com/solana-labs/solana/blob/3f47c83e5c646b1184a9937117d5399d935703c5/sdk/src/account.rs#L488 to AccountInfo and then unpack from that?
And in JS, true, we just need to have one more layer of indirection, ie there's getMint which only needs the connection for the first line, then operates on the AccountInfo.  So we can have something like:
export async function getMint(...) {
  const info = await connection.getAccountInfo(address, commitment);
  if (!info) throw new TokenAccountNotFoundError();
  return unpackMint(info);
}
export function unpackMint(...) {
  // all the other logic
}

How does that sound?

no. account info is not necessarily available when the data has not been directly fetched from RPC. the unpack method right now has two concerns:
a) verify accountinfo
b) verify buffer contents
i'd like a method that only does b

referring to this unpack method: https://github.com/solana-labs/solana-program-library/blob/3e9104736afc85465512eb11bb144920e31af418/token/js/src/state/account.ts#L160
but it should also apply to the proposed unpackMint

At this point, it might be easiest for you to do a PR with the function signatures, or maybe even the whole thing :smile:

I'm spending time in the area over the next couple of weeks, so now's the best time to get your requests in :wink:

This is published in<EMAIL_ADDRESS>now.
Please note that the arg order has changed to unpackX(address, info, programId?)
I also exposed an unpackMultisig function for parity.


Extract the robot commands from a local path

Originally created by Luis Abdel Aguilar Jurado:

Added a button to add the Robotframework libraries from the local path #17


TIMEX Guidelines links to a 403 page

I'm unable to see the guidelines because the URL is a 403.
http://www.timeml.org/tempeval2/tempeval2-trial/guidelines/timex3guidelines-072009.pdf

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

ID: e64e2485-bcef-05c1-ee5a-10a0f3be7275
Version Independent ID: f5adced3-6007-4fdb-51ba-cb95f16bbee6
Content: DatetimeV2 Prebuilt entities - LUIS - Azure Cognitive Services
Content Source: articles/cognitive-services/LUIS/luis-reference-prebuilt-datetimev2.md
Service: cognitive-services
Sub-service: language-understanding
GitHub Login: @diberry
Microsoft Alias: diberry

@aaronrogers
Thanks for the feedback! We are currently investigating and will update you shortly.

@diberry Hi Dina, this PDF is broken. Could you please update the link if you have a new one? Thanks.

@cahann @tellarin Is there a different URL to use for timex info? #in-progress.

@diberry @YutongTie-MSFT Thanks for raising this.
As our TIMEX are a simplified version of that spec that's easier for developers to use, we're going to create a doc on the project GitHub (https://github.com/microsoft/Recognizers-Text) to describe it in better detail.
We can use that link once done.

Removing link until the Recognizers-Text repo has a document. #please-close


Two links in README for theme-switch are broken

The two links in README for theme-switch are broken.

The first broken link is currently pointing to:  https://preset-env.cssdb.org/
You might want to point that to this page: https://preset-env.netlify.app/
The second link is currently pointing to: https://github.com/vitejs/vite/tree/main/packages/create-app/template-vanilla
It appears broken even in the vitejs repo ¯\_(ツ)_/¯
You might want to point that to this page: https://github.com/vitejs/vite/tree/main/packages/create-vite

Just realized this affects other READMEs in the repo.


Remove faulty rules that I've previously added

These are rules that I've found helpful for my own work, and then contributed, but I later found that those are not true for all cases - I've missed that lens's (^.) mappends all items in folds..
Sorry for previously contributing bugs 😬
For (a ^. b) ^? c → a ^? (b . c):
> :set -XFlexibleContexts
> let a = [Just "Hello", Just "World"]
> let b = folded
> let c = _Just
> (a ^. b) ^? c == a ^? (b . c)
False
> (a ^. b) ^? c
Just "HelloWorld"
> a ^? b . c
Just "Hello"

For a ^? (b . _Just) → a ^. b:
> a ^? (b . _Just) == a ^. b
False
> a ^? (b . _Just)
Just "Hello"
> a ^. b
Just "HelloWorld"

Thanks for contributing fixes! It's very easy to make mistakes in the corners, and it's mostly me who does so :). Loods good, will merge once the tests pass.


Add support for threads

The Threads api is currently in open beta and can only be used in small testing guilds
Currently this encapsulates only the most minimalist pass on being able to construct entities for threads and the happy path of receiving messages in threads.
Only "supports" receiving messages via the GenericMessageEvent and MessageReceivedEvent
This PR will be in a draft state for quite a while and is here for collaboration. Expect incredibly breaking changes as we prepare for threads.

Are there any updates on this? Discord is forcefulling enabling threads on all guilds on 9/9 and JDA still doesn't support them (which is bad for moderation and logging bots).

Threads require changes to the channel hierarchy to be properly implemented, so they'll be JDA 5
For updates I'd say join the Discord and check the (archived) threads within the libdev channel.
Also, check the v5 branch.

This PR isn't what we're going to move forward with for Threads in JDA.
Threads will be reimplemented on top of the changes made in the v5 branch.
I'm hoping to publish a list of "what needs to happen to get to Threads" soon.
We've been in a transitionary period for the project, moving from having a single core developer to trying to move to more community involvement, but that comes with some bumps along the way. Threads have not been forgotten.

JDA v5.0.0-alpha.1 is released and has support for threads.
https://github.com/DV8FromTheWorld/JDA/releases/tag/v5.0.0-alpha.1


Using ref only for tag doesn't seem to work

Behaviour
Steps to reproduce this issue

Use the image-meta action with the following tags config:
     type=edge,branch=master
     type=ref,event=branch,enable=false
     type=ref,event=tag
     type=sha,format=long,prefix=sha-

Expected behaviour
when building a branch on push (eg. cicd-github-actions)
I should get the sha- tag
I should not get the cicd-github-actions tag (it's a branch, I don't want the ref for that)
Actual behaviour
Getting both the sha and branch tags
Configuration

Repository URL (if public):
Build URL (if public):

      - name: Set image name
        id: image-name
        run: |
          echo "IMAGE_NAME=${ECR_ACCOUNT_ID}.dkr.ecr.ap-southeast-1.amazonaws.com/${ECR_IMAGE_NAME}" >> $GITHUB_ENV
          echo ::set-output name=image_name::${ECR_ACCOUNT_ID}.dkr.ecr.ap-southeast-1.amazonaws.com/${ECR_IMAGE_NAME}
      - name: Docker meta
        uses: docker/metadata-action@v3
        id: image-meta
        with:
          images: |
            ${{ steps.image-name.outputs.image_name }}
          tags: |
            type=edge,branch=master
            type=ref,event=branch,enable=false
            type=ref,event=tag
            type=sha,format=long,prefix=sha-

Logs

Download the log file of your build
and attach it to this issue.

@donaldpiret Would need a link to your repo and/or logs to be able to help you as I don't have the runner context info.

Hi @crazy-max here you go. Let me know if this is sufficient or if you need anything else!
10_Docker meta.txt

@donaldpiret

I should not get the cicd-github-actions tag

cicd-github-actions tag is generated because of type=edge,branch=master.
type=edge acts pretty much like type=ref,event=branch except it will set edge as tag for the specified branch (master here) or the current branch if it does not match (cicd-github-actions here).
I agree that it is confusing and that one should rather not generate the tag if it does not correspond to an edge version. I will push a fix and let you know.


Confusing behavior for one-dimensional targets

I noticed that for one-dimensional targets the library produces erroneous results if the targets miss a target dimensional (i.e. only have a batch dimension). Here is a quick example with a linear model for which the Hessian is straightforward to compute:
from torch.utils.data import TensorDataset, DataLoader
import laplace

N=10 # number of datapoints
in_d=5 # input dimension

# generate dataset
X=torch.randn((N,in_d))
Y=torch.randn((N,)) # no target dimension
data = TensorDataset(X,Y)
dataloader = DataLoader(data, batch_size=5)

# linear net
model = torch.nn.Linear(in_d,1,bias=False)

# Laplace Approximation
la = laplace.FullLaplace(model=model, likelihood='regression')
la.fit(dataloader)

# Compare la.H with theoretical value for Hessian
H_theory = torch.einsum('ij,ik->jk',X,X)
print(torch.all(torch.isclose(la.H, H_theory))) # will yield False

Once you modify Y=torch.randn((N,)) to Y=torch.randn((N,1)) the correct Hessian is returned.
While PyTorch itself throws indeed a warning, it's really easy to overlook when lots of other output is produced. An error message from the Laplace Library would have saved me a lot of time.

Thanks a lot for reporting this!


Move to php-nextgen generator

From https://github.com/OpenAPITools/openapi-generator/pull/18347#issuecomment-2049060965

For PHP version 8.1+
Preview: #32


omniauth.rb:1:in <top (required)>': undefined method use'

in rails 4 it gives an error with the example on the readme
config/initializers/omniauth.rb:1:in <top (required)>': undefined method use' for main:Object (NoMethodError)

People use things other than Rails. The example is the basic Rack use case, which is appropriate.


feat: Add a help button to explain filter criteria

So it turns out that this is a little bit trickier than I thought.
Newer versions of panel have a description argument which you can use for tooltips – this sounds exactly what we want and adds a nice little help icon:

But unfortunately, it crops the content to the sidebar:

I tried working around this, and tried manually adding buttons to the side bar, but the layout is tricky, since it is all wrapped in an <ul> and basically only meant to stack things vertically. For now, I opted for using the modal again, with a manual button next to "Filter By".

This doesn't look great (the placement is off, etc.) but maybe as a first thing it is good enough?

I think it's good for our MVP 0.1 release. We can think of other ways later---perhaps even a separate page so that users can refer to the help while tinkering with filters etc.


Allow to disable cursor blinking in input boxes

Is there an option to disable cursor blinking in edit fields/input boxes? (such as Find box (ctrl+F), or Find in Files (ctrl+shift+F).
Cursor blinking is set to solid in my config, so the text in the file windows does not blink.
editor.cursorBlinking is set to "block"
However this setting is not applied to edit fields, and it's rather annoying and inconsistent behaviour.
Is there an option to disable cursor blinking in edit fields, too?

My current config is:

Version: 1.33.0-insider (system setup)
Commit: 9b849d9de7168eb4f685823bf9b9e27a0a8dae74
Date: 2019-03-08T06:59:35.464Z
Electron: [3.1.3]
Chrome: 66.0.3359.181
Node.js: 10.2.0
V8: 6.6.346.32
OS: Windows_NT x64 10.0.17763
Steps to Reproduce:

Press ctrl+shift+f
Type something. The cursor in the edit field will blink.

See image below.
https://imgur.com/a/wulP9oS

Does this issue occur when all extensions are disabled?: Yes

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

This would be great, the blinking cursor in the python interactive window is really annoying when blinking is turned off everywhere else.

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_frowning_face: In the last 60 days, this feature request has received less than 20 community upvotes and we closed it. Still a big Thank You to you for taking the time to create this issue! To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


Make sure kube-vip interface altname work on Debian 10

The altname property isn't available on Debian 10, need to check alternatives there.

Options so far:

update iproute2 to a version that supports this from backports, might break stuff
add a virtual interface (eg enp1s0:1) and add that to a bridge named kube-vip
use macvlan/ipvlan - http://networkstatic.net/configuring-macvlan-ipvlan-linux-networking/


release: released 1.2 version.

LGTM

The file doc/how-to-build.md and doc/how-to-build-cn.md also need to change the number to 1.2
Thanks.

@apache/apisix-committers please vote for 1.2 release: https://lists.apache.org/thread.html/rc8ae3207f0aae16ebf655cf0350ce5f295cdc41c208e2ae5a77085f6%40<dev.apisix.apache.org>

We can also include the batch processor util to the core if needed: (https://github.com/apache/incubator-apisix/pull/1121)


Semicolons in version numbers for some schemes

https://github.com/phac-nml/biohansel/blob/development/bio_hansel/const.py#L19
https://github.com/phac-nml/biohansel/blob/development/bio_hansel/const.py#L22

Fixed in #103


Getting "TypeError: this is not a typed array." on jwt.verify()

Hey guys.
I'm migrating my dev environment to prod. I created everything the same way I did on my production, except that the prod has https instead of http.
jwt.sign(obj, 'secretekey', {expiresIn: '365d'}) returns a token, but when I want to use it, I'm getting TypeError: this is not a typed array. when doing jwt.verify(token, 'secretekey') .
I validated that it was from this function call from the stack trace that i got in the callback function jwt.verify(token, 'secretekey', function(err,decoded) { // }
Might it be an issue with https encryption? Should i load pem files in sign()? Any light on the matter is greatly appreciated. Thanks!
stack trace in question
TypeError: this is not a typed array.
at Function.from (native)
at Object.verify (PATH_TO_APP/node_modules/jwa/index.js:43:31)
at Object.jwsVerify [as verify] (PATH_TO_APP/node_modules/jws/lib/verify-stream.js:54:15)
at Object.JWT.verify (PATH_TO_APP/node_modules/jsonwebtoken/index.js:213:17)
at PATH_TO_APP/app.js:38:22
at Layer.handle [as handle_request] (PATH_TO_APP/node_modules/express/lib/router/layer.js:95:5)
at next (PATH_TO_APP/node_modules/express/lib/router/route.js:131:13)
at Route.dispatch (PATH_TO_APP/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (PATH_TO_APP/node_modules/express/lib/router/layer.js:95:5)
at PATH_TO_APP/node_modules/express/lib/router/index.js:277:22
at param (PATH_TO_APP/node_modules/express/lib/router/index.js:349:14)
at param (PATH_TO_APP/node_modules/express/lib/router/index.js:365:14)
at Function.process_params (PATH_TO_APP/node_modules/express/lib/router/index.js:410:3)
at next (PATH_TO_APP/node_modules/express/lib/router/index.js:271:10)
at PATH_TO_APP/node_modules/express-validator/lib/express_validator.js:291:5
at Layer.handle [as handle_request] (PATH_TO_APP/node_modules/express/lib/router/layer.js:95:5)

EDIT: I fixed it by updating my node version on the prod machine. Which is weird because I had the exact same version on my dev machine.

Just a matter of curiosity, what version did you have in prod before and after the fix?

Sorry it took long to reply. The version was 4.2.6 and updated to 5.12.0

Weird, I'll have it in mind. Not sure if the SO difference could affect, in that case I guess it could be more about node + so, just wondering.
Thanks for your reply @TarekDeeb !


Deleting a library doesn't clear it from library list

Steps to recreate:

Create a library rascal (choose any name)

Add library rascal to library list

Right-click on the library and go to "Delete Library"

Observe that the library still exists in the iproj.json file

{
  "description": "migration demo",
  "preUsrlibl": [
    "rascal"
  ]
}

@ThePrez I can't seem to be able to reproduce this issue. Looking at our code, it looks like we already handle removing it from iproj.json (if hardcoded or added as a variable) if you do it from PE. Did you use Delete Library from PE or Code4i's Object Browser? If from the Object Browser, this is a Code4i action which will not do anything to iproj.json. In this case, the user would have to manually remove it.

I am able to reliably by using "Delete Library" from PE. How can I gather useful data?

Ending up finding the problem. Simple casing issue.


bump to 0.11.0

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

Project coverage is 90.97%. Comparing base (92eb0c5) to head (bc55e9e).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #255   +/-   ##
=======================================
  Coverage   90.97%   90.97%
=======================================
  Files          18       18
  Lines        1174     1174
=======================================
  Hits         1068     1068
  Misses        106      106

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


Add GH actions

NOTE: actions not running here because of repo-settings, but will probably run after it's merged (recommend checking). Here is a run of these actions on my fork: https://github.com/julesvirallinen/obsidian-custom-js/actions/runs/7431970694/job/20223247054

bumps node to newest version
adds .nvmrc to specify node version (with nvm installed type nvm install / nvm use to read automatically and use the specified version
uploads package-lock as is recommended
bans comments on lint (unless overridden), because it's the easiest thing to accidentally commit
adds github action to build and lint PRS + merges to master

Notes on github action:
      node-version-file: .nvmrc # reads from nvmrc, which specifies node version
          cache: 'npm' # reads the packages from the now uploaded package-lock for faster actioning!
      - name: 'Install dependencies'
        run: npm install
      - name: 'Build'
        run: npm run build-ci # alternate command which just passed --failAfterWarnings to allow the command to fail on type errors :)

Example of lint failure:

Example of build failure:

looks awesome! thanks a lot 😁


Documentation?

Any docs available yet or how to use it? Simple example?

Hey @MichealSBingham. Sorry for the late response. Please refer to Readme file to find out more details about our library usage. Also, you can check our example project located in this repo.


Investigate whether additional possessive quantifiers can be added to the parsing regexes to make them faster

Not faster.  I suspect that expressions like [^?#]*\\?[^#]* are already optimised by the compiler to be equivalent to [^?#]*+\\?[^#]*+


Initial values do not properly get initialized in ajax refresh multi-select mode

Bug description:
Initial values do not properly get initialized in ajax refresh multi-select mode.
In the example, I firstly set the  $scope.multipleDemo.people = ['Adam','Estefanía'];
Howerver, since the $scope.availablePeople get initialized via an ajax call,  $scope.multipleDemo.people won't get initialized after the data is retrieved from remote server.
Link to minimally-working plunker that reproduces the issue:
http://plnkr.co/edit/0sjOq3O54BQdKg3xQiDH
Version of Angular, UI-Select, and Bootstrap/Select2/Selectize CSS
Angular: 1.2.18
UI-Select: 0.7.0
Bootstrap/Select2/Selectize CSS (if applicable):3.4.5
This problem exists in UI-Select version up to 0.13.2, too

upgrade to ui-select to 0.19.4 (the latest version) and problem resolved!


WIFI-2502 Fix WM crash due to invalid data

Signed-off-by: Rick Sommerville<EMAIL_ADDRESS>

Merged 28bc1dae


IGNITE-11380 Add support of JAR files to UriDeploymentSpi

@alamar This behaviour is changed actually. If you have JARs lying around your repository, then they will be also loaded.
We could introduce a new configuration property to make people enable this new feature and acknowledge the fact, that their JARs will also be loaded now. But I don't think, it's too much of a problem, so another piece of configuration seems to be an overkill to me.


Jax install error on Mac M1

This is not your bug, it's a Jax bug here:
https://github.com/google/jax/issues/7237
BUT... it's preventing some people in our group from using scvi-tools versions since jax was made a requirement.  Our work-issued laptops are Mac M1, and so we cannot pip install scvi-tools anymore due to the Jax requirement.
Is it possible to make Jax an install option?  And not an actual requirement?  We don't want to use Jax ourselves.

pip install scvi-tools

import scvi

RuntimeError: This version of jaxlib was built using AVX instructions, which your CPU and/or operating system do not support. You may be able work around this issue by building jaxlib from source.

Versions:

all versions 0.15.x +

On M1 mac, it's possible to install jax via conda, where there are compatible installations for M1. Would that be a workable solution for your team?
Secondarily, on M1 Mac it's important to use a native version of Python (arm64), which can be installed via the appropriate miniconda/miniforge installer.

Alright, so thank you so much for the thorough answer!  We were in fact running an non-arm64 python install.
The correct python install, with a simple pip install of scvi-tools did work, for version 0.19.0
Someone on my team told me that the latest version 0.20.1 threw some sort of error related to jax, but unfortunately I don't have the details at this time.  If I figure out that there is a real issue there, I will reopen this.
Thanks again!

Hello,
I'm having this same issue - running anaconda3 on an M1 mac.
How did you resolve this?
Not sure how to tell if I'm using arm64 or not, or how to correct it.

Maybe try this link to install miniconda?
https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh
To figure out what you've got, type conda info

Sorry for delayed response - but this did the trick. Thanks!


[BUGFIX] Windows sane new local ember-cli

Fixes #128

Not sure why Appveyor failed.  Maybe you can restart, @Globegitter?

@IanVS LGTM


Ignore windows?

I would like to ignore the bar in xwobf. Any way to do this with a role="thing"?

It might be doable if you query for the window name and filter based on that. You'd need to know the window name of the top bar though. I'm currently not able to do any development, I don't use xwobf myself anymore and it doesn't even work in my current desktop environment, so I'm unable to test any code. But if you can cook up a pull request I'd be happy to review it. I'd recommend starting to look at xcb_get_property:  http://manpages.ubuntu.com/manpages/xenial/en/man3/xcb_get_property.3.html

@glindste I'll try to hack something up. Thanks.

I would see this also being useful for not obfuscating Conky (or hiding Conky, depending on what the user wants). I think it is fine to expect the users to execute a command quite like:
xprop -f XWOBF_NOBLUR 8c -set XWOBF_NOBLUR 0x1
or
xprop -f XWOBF_HIDE 8c -set XWOBF_HIDE 0x1


Improve filename parsing in generic parsers

Better handling of splitting filenames (on commas and semicolons)
Refactor splitting and cleaning up filenames for reuse and consistency
Warning of spaces in filenames (possible source of error in case they expected space separated filenames)
Ensure the file map validation parses read filenames by calling read_filenames (as opposed to reimplementing this check)
Bump version patch commit

Codecov Report

Merging #217 (e6af3d6) into dev (2bb7d97) will increase coverage by 0.09%.
The diff coverage is 77.41%.

@@            Coverage Diff             @@
##              dev     #217      +/-   ##
==========================================
+ Coverage   53.58%   53.67%   +0.09%
==========================================
  Files          57       57
  Lines        4130     4149      +19
==========================================
+ Hits         2213     2227      +14
- Misses       1917     1922       +5

Impacted Files
Coverage Δ

sample_metadata/parser/generic_metadata_parser.py
72.19% <77.41%> (+0.08%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2bb7d97...e6af3d6. Read the comment docs.


Remove gl matrix from public rendering interface part1

This patch is the first part of an ongoing progress to remove the GL-assumptions from the public interface of wlr_renderer.
Here any mention of "transform matrix" is removed from the public API, and all of the matrix calculations for rendering a texture is done inside the gles2 renderer. This is done because the future pixman renderer can't use matrices to calculate position and requires an explicit x/y position.
@emersion I was thinking about leaving the wlr_render_*_with_matrix functions for the next release to ease the transition and label them with a deprecation warning, and then remove them later on.

Closed for not being relevant anymore since we fixed the matrix issue in #2770


Update V1 service ports

We need to update v1 service ports to match dev.
@max-shapiro32  is there any reason for not to update yet?

Done here #125


Try mitigate mismatched JDK versions in mvn-verify checks [skip ci]

try to mitigate https://github.com/NVIDIA/spark-rapids/issues/8847
We guess that it could be related to github actions cannot isolate ENV of multiple runners on the same host well.
Try:

add new step to print out more runtime details for debugging,
explicitly specify JAVA_HOME

New check runtime step:
env | grep JAVA
  export JAVA_HOME=${JAVA_HOME_8_X64}
  java -version && mvn --version && echo "ENV JAVA_HOME: $JAVA_HOME"
  shell: /usr/bin/bash -e {0}
  env:
    COMMON_MVN_FLAGS: -Ddist.jar.compress=false -DskipTests -Dskip

    JAVA_HOME: /opt/hostedtoolcache/Java_Adopt_jdk/8.0.[3](https://github.com/NVIDIA/spark-rapids/actions/runs/5687687352/job/15416441514#step:4:3)82-5/x6[4](https://github.com/NVIDIA/spark-rapids/actions/runs/5687687352/job/15416441514#step:4:4)
    JAVA_HOME_8_X64: /opt/hostedtoolcache/Java_Adopt_jdk/8.0.382-[5](https://github.com/NVIDIA/spark-rapids/actions/runs/5687687352/job/15416441514#step:4:5)/x[6](https://github.com/NVIDIA/spark-rapids/actions/runs/5687687352/job/15416441514#step:4:6)4
JAVA_HOME_11_X64=/usr/lib/jvm/temurin-11-jdk-amd64
JAVA_HOME=/opt/hostedtoolcache/Java_Adopt_jdk/8.0.382-5/x64
JAVA_HOME_8_X64=/opt/hostedtoolcache/Java_Adopt_jdk/8.0.382-5/x64
JAVA_HOME_1[7](https://github.com/NVIDIA/spark-rapids/actions/runs/5687687352/job/15416441514#step:4:7)_X64=/usr/lib/jvm/temurin-17-jdk-amd64
openjdk version "1.[8](https://github.com/NVIDIA/spark-rapids/actions/runs/5687687352/job/15416441514#step:4:8).0_382"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_382-b05)
OpenJDK 64-Bit Server VM (Temurin)(build 25.382-b05, mixed mode)
Apache Maven 3.8.8 (4c87b05d[9](https://github.com/NVIDIA/spark-rapids/actions/runs/5687687352/job/15416441514#step:4:9)aedce574290d1acc98575ed5eb6cd39)
Maven home: /usr/share/apache-maven-3.8.8
Java version: 1.8.0_382, vendor: Temurin, runtime: /opt/hostedtoolcache/Java_Adopt_jdk/8.0.382-5/x64/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-[10](https://github.com/NVIDIA/spark-rapids/actions/runs/5687687352/job/15416441514#step:4:10)41-azure", arch: "amd64", family: "unix"
ENV JAVA_HOME: /opt/hostedtoolcache/Java_Adopt_jdk/8.0.382-5/x64

build

this change may not setup JAVA_HOME as expected, but it would help us collect more details if meet the same issue again


How generic the question should be?

Category

[ ] Bug
[ ] Feature Request
[x] Question

Brief Intro
I found some algorithms are pretty specific. Like find occurrence. So I am wondering how generic the algorithm should be here?
More Details
There is an algorithm website leetcode. There are tons of questions there. If the find occurrence could be accepted here. I think I can move most answers there to here. Thoughts?

We'd welcome specific questions, (for example: interview type questions).