Unable to account for "encrypted=true" for root_block_device and ebs_block_device on aws_instance

Note again on another issue I opened, really need to account for new vs updated resources as a feature like this can cause a resource that is flagged for encryption to be replaced if changes need to be made. Would love to have this for only new resources.
I am creating a feature to flag aws_instance (ec2) to ensure both root_block_device configures, and encrypted is configured and set to true. I need to also do the same for ebs_block_device. I am having issues filtering for one or the other as the encrypted flag for one causes the feature to pass for the other.
I can't account for the lack of encrypted for root_block_device if it is set for ebs_block_volume. I have tried to interpolate and slice and keep running into syntax errors. Please assist me with how to write a feature or features with a scenario pattern that matches this. I see this being a logistics hurdle for any resource where When it has encrypted Then it must have encrypted if a particular subproperty of a resource is used twice. See below for my code/plan and output of feature thus far. (sorry in advance for the long post)
Feature1:
Background: Check to make sure EC2 instances are in the configuration and not named bastion
        Given I have aws_instance defined
        When its name is not bastion

    Scenario: root_block_device must be configured on all non bastion hosts
        Given I have aws_instance defined
       When its name is not bastion
       When it has ebs_block_device
       Then it must have encrypted

This drills down to all encrypted, thus passing if one of the two properties contains encrypted. This prevents me from flagging on the absence of encryption on one or the other for ebs_block_device or root_block_device see stash below:
[
    {
        "address": "aws_instance.ebs_encrypted_FALSE",
        "values": false,
        "type": "aws_instance"
    },
    {
        "address": "aws_instance.ebs_encrypted_FALSE",
        "values": true,
        "type": "aws_instance"
    },
    {
        "address": "aws_instance.ebs_encrypted_not_present",
        "values": true,
        "type": "aws_instance"
    },
    {
        "address": "aws_instance.ebs_encrypted_not_present",
        "values": true,
        "type": "aws_instance"
    },
    {
        "address": "aws_instance.root_block_encrypted_FALSE",
        "values": true,
        "type": "aws_instance"
    },
    {
        "address": "aws_instance.root_block_encrypted_FALSE",
        "values": false,
        "type": "aws_instance"
    },
    {
        "address": "aws_instance.root_block_encrypted__field_missing",
        "values": true,
        "type": "aws_instance"
    },
    {
        "address": "aws_instance.root_block_encrypted__field_missing",
        "values": true,
        "type": "aws_instance"
    },
    {
        "address": "aws_instance.root_block_missing",
        "values": true,
        "type": "aws_instance"
    }
]

I have tried
Background: Check to make sure EC2 instances are in the configuration and not named bastion
        Given I have aws_instance defined
        When its name is not bastion

    Scenario: root_block_device must be configured on all non bastion hosts
        Given I have aws_instance defined
       When its name is not bastion
       When it has root_block_device

This gets me the entire stash of instances that have root block device, but I am lost to how I can drill into root_block_device for its encrypted property, if its a slicing issue, I can't get the syntax correct, easy to drill to in ipython though
The below scenario seems to get me to a good place but I can't drill further with additional Thens/Ands, probably a knowledge gap, see below:
Background: Check to make sure EC2 instances are in the configuration and not named bastion
        Given I have aws_instance defined
        When its name is not bastion

    Scenario: root_block_device must be configured on all non bastion hosts
        Given I have aws_instance defined
       When its name is not bastion
       When it has root_block_device

I get the stash that only produces root_block_devices, this is good but how do I drill further?  `and it must have encrypted skips, and any slicing I attempt does not need to work.
Stash:
[
    {
        "address": "aws_instance.ebs_encrypted_FALSE",
        "values": [
            {
                "delete_on_termination": true,
                "encrypted": true,
                "volume_size": 200,
                "volume_type": "gp2"
            },
            {
                "device_name": true,
                "iops": true,
                "kms_key_id": true,
                "volume_id": true
            }
        ],
        "type": "aws_instance"
    },
    {
        "address": "aws_instance.ebs_encrypted_not_present",
        "values": [
            {
                "delete_on_termination": true,
                "encrypted": true,
                "volume_size": 200,
                "volume_type": "gp2"
            },
            {
                "device_name": true,
                "iops": true,
                "kms_key_id": true,
                "volume_id": true
            }
        ],
        "type": "aws_instance"
    },
    {
        "address": "aws_instance.root_block_encrypted_FALSE",
        "values": [
            {
                "delete_on_termination": true,
                "encrypted": false,
                "volume_size": 200,
                "volume_type": "gp2"
            },
            {
                "device_name": true,
                "iops": true,
                "kms_key_id": true,
                "volume_id": true
            }
        ],
        "type": "aws_instance"
    },
    {
        "address": "aws_instance.root_block_encrypted__field_missing",
        "values": [
            {
                "delete_on_termination": true,
                "volume_size": 200,
                "volume_type": "gp2"
            },
            {
                "device_name": true,
                "encrypted": true,
                "iops": true,
                "kms_key_id": true,
                "volume_id": true
            }
        ],
        "type": "aws_instance"
    }
]

Resource Blocks:
#root_block device is declared, and encrypted is declared and set to false, EBS has encrypted and set to true
resource "aws_instance" "root_block_encrypted_FALSE" {
  ami                     = "ami-003634241a8fcdec0"
  instance_type           = "t2.medium"
  key_name                = "tfcompliance_inf"
  disable_api_termination = true
  monitoring                  = true
  ebs_optimized               = true
  associate_public_ip_address = false
  security_groups = [aws_security_group.ingress_host.id,aws_security_group.egress_host.id]

  root_block_device {
    volume_size = 200
    volume_type = "gp2"
    encrypted = false
  }

  ebs_block_device {
    device_name           = "/dev/sdb"
    volume_size           = 1000
    volume_type           = "gp2"
    delete_on_termination = true
    encrypted             = true
  }

  tags = {
    budget-area = "security"
    group   = "cybersecurity"
  }
}
#root_block_device is missing the encrypted field
resource "aws_instance" "root_block_encrypted__field_missing" {
  ami                     = "ami-003634241a8fcdec0"
  instance_type           = "t2.medium"
  key_name                = "tfcompliance_inf"
  disable_api_termination = true
  monitoring                  = true
  ebs_optimized               = true
  associate_public_ip_address = false
  security_groups = [aws_security_group.ingress_host.id,aws_security_group.egress_host.id]

  root_block_device {
    volume_size = 200
    volume_type = "gp2"
  }

  ebs_block_device {
    device_name           = "/dev/sdb"
    volume_size           = 1000
    volume_type           = "gp2"
    delete_on_termination = true
    encrypted             = true
  }

  tags = {
    budget-area = "security"
    group   = "cybersecurity"
  }
}
#root_block_volume entirely missing
resource "aws_instance" "root_block_missing" {
  ami                     = "ami-003634241a8fcdec0"
  instance_type           = "t2.medium"
  key_name                = "tfcompliance_inf"
  disable_api_termination = true
  monitoring                  = true
  ebs_optimized               = true
  associate_public_ip_address = false
  security_groups = [aws_security_group.ingress_host.id,aws_security_group.egress_host.id]

  ebs_block_device {
    device_name           = "/dev/sdb"
    volume_size           = 1000
    volume_type           = "gp2"
    delete_on_termination = true
    encrypted             = true
  }

  tags = {
    budget-area = "security"
    group   = "cybersecurity"
  }
}
#root_block_volume declared and set to true, ebs encrypted not declared
resource "aws_instance" "ebs_encrypted_not_present" {
  ami               = "ami-003634241a8fcdec0"
  instance_type     = "t2.medium"
  key_name          = "tfcompliance_inf"
  security_groups = [aws_security_group.ingress_host.id,aws_security_group.egress_host.id]

  root_block_device {
    volume_size = 200
    volume_type = "gp2"
    encrypted = true
  }
  ebs_block_device {
    device_name           = "/dev/sdg"
    volume_size           = 50
    volume_type           = "gp2"
    delete_on_termination = true

  }

  tags = {
    budget-area = "security"
    group   = "Cybersecurity"
  }
}

resource "aws_instance" "ebs_encrypted_FALSE" {
  ami               = "ami-003634241a8fcdec0"
  instance_type     = "t2.medium"
  key_name          = "tfcompliance_inf"
  security_groups = [aws_security_group.ingress_host.id,aws_security_group.egress_host.id]

  root_block_device {
    volume_size = 200
    volume_type = "gp2"
    encrypted = true
  }
  ebs_block_device {
    device_name           = "/dev/sdg"
    volume_size           = 50
    volume_type           = "gp2"
    delete_on_termination = true
    encrypted             = false

  }

  tags = {
    budget-area = "security"
    group   = "Cybersecurity"
  }
}
#bastion flagging
resource "aws_instance" "bastion" {
  ami                  = "ami-003634241a8fcdec0"
  instance_type        = "t2.medium"
  key_name             = "tfcompliance_inf"
  ebs_optimized               = true
  security_groups = [aws_security_group.ingress_host.id,aws_security_group.egress_host.id]

  root_block_device {
    volume_size = 16
    volume_type = "gp2"
    encrypted = false
  }

  ebs_block_device {
    device_name           = "/dev/sdb"
    volume_size           = 1000
    volume_type           = "gp2"
    delete_on_termination = true
    encrypted             = true
  }

}
#bastion flagging
resource "aws_instance" "Bastion" {
  ami                  = "ami-0bbe6b35405ecebdb"
  instance_type        = "m5.large"
  key_name             = "tfcompliance_inf"

  disable_api_termination     = true
  monitoring                  = true
  ebs_optimized               = true
  associate_public_ip_address = true

  ebs_block_device {
    device_name           = "/dev/sdb"
    volume_size           = 1000
    volume_type           = "gp2"
    delete_on_termination = true
    encrypted             = false
  }

  tags = {
    Name        = "bastion"
    Component   = "bastion"
    Environment = "prod"
    Product     = "bastion"
  }
}

#bastion flagging
resource "aws_instance" "bastioN" {
  ami                  = "ami-0bbe6b35405ecebdb"
  instance_type        = "m5.large"
  key_name             = "tfcompliance_inf"

  disable_api_termination     = true
  monitoring                  = true
  ebs_optimized               = true
  associate_public_ip_address = true

  ebs_block_device {
    device_name           = "/dev/sdb"
    volume_size           = 1000
    volume_type           = "gp2"
    delete_on_termination = true
    encrypted             = false
  }

  tags = {
    Name        = "bastion"
    Component   = "bastion"
    Environment = "prod"
    Product     = "bastion"
  }
}

This gets it close, but has the glaring error of permitting an unencrypted ebs_block_device if the root device is encrypted and the ebs_block_device does not specify encrypted.
Feature: Check to make sure EC2 instances are encrypted if they are not named bastion

	Scenario: root_block_device must be configured on all non bastion hosts
		Given I have aws_instance defined
		When its name is not bastion
		Then it must have root_block_device
		And it must have encrypted
		And its value must be true

	Scenario: ebs_block_device, if present, must be configured on all non bastion hosts
		Given I have aws_instance defined
		When its name is not bastion
		When it has ebs_block_device
		Then it must have encrypted
		And its value must be true

Seems like compliance is regexing the first encrypted value it finds (although it does overwrite it if it finds another one).

Root Device
EBS Volume
Scenario 1
Scenario 2

Encrypted
Encrypted
Pass
Pass

Encrypted
Not Encrypted
Pass
Fail

Encrypted
Not defined
Pass
Skip

Encrypted
Defined but "encrypted not present"
Pass
(bad) Pass
This is the problem

Not Encrypted
Encrypted
Fail
Pass

Not Encrypted
Not Encrypted
Fail
Fail

Not Encrypted
Not Defined
Fail
Skip

Not Encrypted
Defined but "encrypted not present"
Fail
Fail

Thanks for making a chart, based on the blocks I posted above,  This is similar on logic to what I had come to Except
for scenario 1: in addition to your findings above There apppears to be a Parsing error with terraform compliance, I have to report a bug on
Scenario: root_block_device must be configured on all non bastion hosts
		Given I have aws_instance defined
		When its name is not bastion
		Then it must have root_block_device
		And it must have encrypted <skips here
		And its value must be true < Skips here

This should NOT SKIP,
When I look at the stash for And it must have encrypted
        When its name is not bastion
>> Press enter to continue
		Failure: aws_instance.root_block_missing (aws_instance) does not have root_block_device property.
        Then it must have root_block_device
          Failure:
>** REMOVED OTHER RESOURCES***
        "address": "aws_instance.root_block_encrypted__field_missing",    <show as part of the stash
        "values": [
            {
                "delete_on_termination": true,
                "volume_size": 200,
                "volume_type": "gp2"
            },
            {
                "device_name": true,
                "encrypted": true, < show encrypted:true
                "iops": true,
                "kms_key_id": true,
                "volume_id": true
            }
        ],
        "type": "aws_instance"
    }
]

The initial stash also shows this, so this is happening in the initial stash pass:

 When its name is not bastion
>> Press enter to continues
** REMOVED OTHER RESOURCES for brevity**
    {
        ***REMOVED BLOCKS FOR BREVITY****
            "ebs_block_device": [
                {
                    "delete_on_termination": true,
                    "device_name": "/dev/sdb",
                    "encrypted": true,
                    "volume_size": 1000,
                    "volume_type": "gp2"
                },
                {
                    "iops": true,
                    "kms_key_id": true,
                    "snapshot_id": true,
                    "volume_id": true
                }
            ],
            "ebs_optimized": true,
            "get_password_data": false,
            "hibernation": null,
            "iam_instance_profile": null,
            "instance_initiated_shutdown_behavior": null,
            "instance_type": "t2.medium",
            "key_name": "tfcompliance_inf",
            "monitoring": true,
            "root_block_device": [
                {
                    "delete_on_termination": true,
                    "volume_size": 200,
                    "volume_type": "gp2"
                },
                {
                    "device_name": true,
                    "encrypted": true, <<< ******SHOWING ENCRYPTED as true******
                    "iops": true,
                    "kms_key_id": true,
                    "volume_id": true
                }
            ],

When you look at the actual plan JSON this is not correct, Terraform compliance is parsing incorrectly:
Resource block:
resource "aws_instance" "root_block_encrypted__field_missing" {
  ami                     = "ami-003634241a8fcdec0"
  instance_type           = "t2.medium"
  key_name                = "tfcompliance_inf"
  disable_api_termination = true
  monitoring                  = true
  ebs_optimized               = true
  associate_public_ip_address = false
  security_groups = [aws_security_group.ingress_host.id,aws_security_group.egress_host.id]

  root_block_device {
    volume_size = 200
    volume_type = "gp2"
  }

  ebs_block_device {
    device_name           = "/dev/sdb"
    volume_size           = 1000
    volume_type           = "gp2"
    delete_on_termination = true
    encrypted             = true
  }

  tags = {
    budget-area = "security"
    group   = "cybersecurity"
  }
}

ACTUAL JSON OUTPUT FOR RESOURCE:
{
"address":"aws_instance.root_block_encrypted__field_missing",
*REDACTED FOR BREVITY
"disable_api_termination":true,
"ebs_block_device":[
{
"delete_on_termination":true,
"device_name":"/dev/sdb",
"encrypted":true,
"volume_size":1000,
"volume_type":"gp2"
}
],
"ebs_optimized":true,
"get_password_data":false,
"hibernation":null,
"iam_instance_profile":null,
"instance_initiated_shutdown_behavior":null,
"instance_type":"t2.medium",
"key_name":"tfcompliance_inf",
"monitoring":true,
"root_block_device":[
{
"delete_on_termination":true,
"volume_size":200,
"volume_type":"gp2". <<<< NO ENCRYPTION IN THE PLAN JSON,  terraform compliance sees it as True
}
],
*REDACTED FOR BREVITY****

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance#encrypted. Default for encrypted field is false
A parsing issue also occurs for  This piece of terraform code, ebs_block_device encryption is not declared in block:
resource "aws_instance" "ebs_encrypted_not_present" {
  ami               = "ami-003634241a8fcdec0"
  instance_type     = "t2.medium"
  key_name          = "tfcompliance_inf"
  security_groups = [aws_security_group.ingress_host.id,aws_security_group.egress_host.id]

  root_block_device {
    volume_size = 200
    volume_type = "gp2"
    encrypted = true
  }
  ebs_block_device {
    device_name           = "/dev/sdg"
    volume_size           = 50
    volume_type           = "gp2"
    delete_on_termination = true

  }

  tags = {
    budget-area = "security"
    group   = "Cybersecurity"
  }
}

STASH SHOWS INCORRECT, shows ebs_block_device encrypted = true
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance#encrypted default is also FALSE on terraform registry
{
        "address": "aws_instance.ebs_encrypted_not_present",
        ** REDACTED FOR BREVITY***
            "ebs_block_device": [
                {
                    "delete_on_termination": true,
                    "device_name": "/dev/sdg",
                    "volume_size": 50,
                    "volume_type": "gp2"
                },
                {
                    "encrypted": true,  <<<< SHOWS AS TRUE IN STASH
                    "iops": true,
                    "kms_key_id": true,
                    "snapshot_id": true,
                    "volume_id": true
                }
            ],
            "ebs_optimized": null,
            "get_password_data": false,
            "hibernation": null,
            "iam_instance_profile": null,
            "instance_initiated_shutdown_behavior": null,
            "instance_type": "t2.medium",
            "key_name": "tfcompliance_inf",
            "monitoring": null,
            "root_block_device": [
                {
                    "delete_on_termination": true,
                    "encrypted": true,
                    "volume_size": 200,
                    "volume_type": "gp2"
                },
                {
                    "device_name": true,
                    "iops": true,
                    "kms_key_id": true,
                    "volume_id": true
                }
            ],

        },

Plan JSON OUTPUT ALSO CONCURS. that terraform compliance is not passing the correct values to the stash:
{
"address":"aws_instance.ebs_encrypted_not_present",
"mode":"managed",
"type":"aws_instance",
"name":"ebs_encrypted_not_present",
"provider_name":"aws",
"schema_version":1,
"values":{
"ami":"ami-003634241a8fcdec0",
"credit_specification":[
],
"disable_api_termination":null,
"ebs_block_device":[
{
"delete_on_termination":true,
"device_name":"/dev/sdg",
"volume_size":50,
"volume_type":"gp2"
}
],
"ebs_optimized":null,
"get_password_data":false,
"hibernation":null,
"iam_instance_profile":null,
"instance_initiated_shutdown_behavior":null,
"instance_type":"t2.medium",
"key_name":"tfcompliance_inf",
"monitoring":null,
"root_block_device":[
{
"delete_on_termination":true,
"encrypted":true,
"volume_size":200,
"volume_type":"gp2"
}
],

This could be the best issue descriptions (and conversation) we might ever had. Thanks a lot for this guys! We spent few hours to really understand the root cause of this problem and we found it! PR is created but it has some other problems.
Will work on it, fix it and then release a new version as soon as possible :)
Thanks again for this SUPER detailed issue! <3

Just released 1.3.8. Based on our tests it fixed the issue but please have a try and let us know 🙏

@eerkunt @Kudbettin See my reply on 416 Looks good, fantastic turn around on this!


remove extra space character between the end of the "Applications" de…

remove extra space character between the end of the "Applications" definition
fixes https://github.com/kubernetes/website/issues/15529

/lgtm
I think the whitespace being removed is a newline, BTW.

/approve


metric index?

Is it possible to send Data to a metric index?

Hi @tihefrequi, this library does not support metrics. I'm closing the issue, feel free to email us at<EMAIL_ADDRESS>


Kong: Requested URL return 204 instead of 200

Hi,
i try to forward all request from my client to my tomcat/http backend at 8081. I try to migrate kong into my project. If i POST a request to auth myself, i should get 200 with content-length:0 but i 'll get a 204 no content back. My POSTs pass through, but my Options went back with 204. I think it could be something wrong with your nginx.conf and your proxy_ settings. Any Ideas how to forward my requests to my api and get my originall 200 code instead of 204?
P.S: All went right @ access.log / error.log no problems at all.
Kong_proxy: running @ 8080
admin: running @ 8001
my restapp is deployed under:
http://localhost:8081/app
for requests:
http://localhost:8081/app/*
P.S2: Found and fix something, only Options get now 204, Posts get 200... Any Ideas?
api_config:
{
    "data": [
        {
            "public_dns": "localhost:8080",
            "id": "apikey",
            "target_url": "http://localhost:8081/",
            "name": "auth",
            "created_at":<PHONE_NUMBER>000
        }
    ]
}

Plugin_config:
{
    "data": [
        {
            "api_id": "apikey",
            "id": "apikey",
            "value": {},
            "enabled": true,
            "name": "filelog",
            "created_at":<PHONE_NUMBER>000
        },
        {
            "api_id": "apikey",
            "id": "apikey",
            "value": {
                "methods": "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH",
                "credentials": true,
                "exposed_headers": "Options,X-Auth-Token,Content-Type,Authorization,Accept,Accept-Version,Content-Length,Content-MD5,Date",
                "origin": "*",
                "preflight_continue": false,
                "headers": "Content-Type,X-Auth-Token,Authorization,Accept,Accept-Version,Content-Length,Content-MD5,Date,Options"
            },
            "enabled": true,
            "name": "cors",
            "created_at":<PHONE_NUMBER>000
        }
    ]
}

normal Server-Return Header:
Accept: */*
Access-Control-Allow-Headers: Content-Type,X-Auth-Token,Authorization
Access-Control-Allow-Methods: POST, PUT, GET, OPTIONS, DELETE
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 3600
Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH
Content-Length: 0
Date: Fri, 15 May 2015 10:39:31 GMT
Server: Apache-Coyote/1.1
access-control-allow-credentials: true

Return Header with Kong-enabled:
Access-Control-Allow-Headers: Content-Type,X-Auth-Token,Authorization,Accept,Accept-Version,Content-Length,Content-MD5,Date,Options
Access-Control-Allow-Methods: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH
Access-Control-Allow-Origin: localhost
Connection: keep-alive
Date: Fri, 15 May 2015 10:30:48 GMT
Server: kong/0.2.1
Vary: Origin
Via: kong/0.2.1
access-control-allow-credentials: true

I see your config preflight_continue is set to false. By reading the code we can see the request is not being proxied but directly replies when this is set to false: https://github.com/Mashape/kong/blob/master/kong/plugins/cors/access.lua#L62
It is missing from the plugin's documentation but I guess you should set it to true if you want to preflight request to be proxied.

Even tho because of #203, I don't think the preflight requests can really be proxied, I will test this.

AngularJS acts that way, before calling POST, OPTIONS is called, if one isn't successfull, Promise fails and turns into error state. My Post (200) went through, the OPTIONS request fails with 204 (no content).

Even with preflight_true i'll get only OPTIONS my post won't be sent through Kong..

My guess is this issue is so old there's nothing to be done here?


difference behavior of {{= workflow.creationTimestamp }} and {{ workflow.creationTimestamp }}

Summary
What happened/what you expected to happen?
{{= workflow.creationTimesamp }} should be rfc3339 string, but outputs a map representation like:
map[A:Monday B:October H:06 I:06 L:.000 M:11 S:08 Y:2021 Z:UTC a:Mon b:Oct d:11 m:10 p:AM s:1633932668 y:21 z:+0000]

some investigations
In Template.Replace,
I guess simpleReplace searches flattened replaceMap and good, but expressionReplace has a "nested" replaceMap, as env,
so the key workflow.creationTimestamp becomes a map[string]interface{}.
I'd like to get a formatted string value or time.Time instance to send sprig.dateModify like:
{{= sprig.dateModify("-24h", sprig.toDate('2006-01-02T15:04:05Z07:00', workflow.creationTimestamp)) }}

Or more simply to send to dateModify,
I would appreciate if Argo WF has workflow.creationTimestamp.time or asTime(workflow.creationTimestamp).

Amazon EKS

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

@alexec Thanks for quick reply!
First, Option 2 seems to be good for me, but I'm not sure which is the best option for the future of Argo WF.
I prefer option 1 and add some utility function to manipulate a date (like strftime, date_add, ....), but it has a cost to existing users and need some extra implementation.

I need this feature also. :)


Send Data with MQTT (host demo.eu10.cp.iot.sap not valid anymore)

Tutorial URL: https://developers.sap.com/tutorials/iot-cf-send-data-mqtt.html
Please specify the step you are referring to
Step 6 The host demo.eu10.cp.iot.sap (point 7.) does not exist anymore.
Best regards,
Alexander

Hi Alexander,
Your issues were addressed to the development team. I´ll get back asap here to you.
Best regards,
Iwona


Add size tag and provide default tags for blossom uploads

Fixes #11, also adds some default imeta based on the provided file.

That makes sense, thanks


Add the minimum CLI version supported by the template

This CLI adds minimum version of the CLI required to use the template. Newer features (eg: https://github.com/databricks/mlops-stacks/pull/112) used by the stack are not compantible with older CLI versions.
The CLI respects the min_databricks_cli_version metadata field and returns an error to the user.
Here's the output for a couple different CLI versions:
CLI version >= {min_databricks_cli_version} (in this case v0.209):
Works as expected
shreyas.goenka@THW32HFW6T playground % ./databricks_cli_0.209.0_darwin_arm64/databricks bundle init ~/mlops-stack
Welcome to MLOps Stacks. For detailed information on project generation, see the README at https://github.com/databricks/mlops-stacks/blob/main/README.md.

Project Name [my-mlops-project]: ^C

CLI version < {min_databricks_cli_version} AND >= v0.208.2 (when support for min_databricks_cli_version was introduced)
shreyas.goenka@THW32HFW6T playground % ./databricks_cli_0.208.2_darwin_arm64/databricks bundle init ~/mlops-stack
Error: minimum CLI version "v0.209.0" is greater than current CLI version "v0.208.2". Please upgrade your current Databricks CLI

CLI version == v0.208.2
Unfortunately we don't have any method to display an error to the users of this version of the CLI.
CLI version < v0.208.1
Hacky solution to give warnings to users of older CLI versions. This is the best effort we can do. Once the CLI goes GA this hack can be reverted.
shreyas.goenka@THW32HFW6T playground % ./databricks_cli_0.208.0_darwin_arm64/databricks bundle init ~/mlops-stack
{{if false}}

ERROR: This template is no longer supported supported by CLI versions v0.209 and lower.
Please hit control-C and go to https://docs.databricks.com/en/dev-tools/cli/install.html for instructions on upgrading the CLI.

{{end}}Welcome to MLOps Stacks. For detailed information on project generation, see the README at https://github.com/databricks/mlops-stacks/blob/main/README.md.

Project Name [my-mlops-project]:

It works but it's a very hacky way. Do we have better options?

@shreyas-goenka if we don't have this hacky solution for CLI version < v0.208.1, what error do we run into?

Customers using a CLI with version < 0.209 will run into issues once we use enums and start using the selection UI for those prompts. Older versions of the CLI did not deal with multiline prompts correctly for selection type questions and would end up overlaying on top of already printed text.
Here's an example of what the experience would look like.
https://github.com/databricks/mlops-stacks/assets/88374338/27bec40d-f7b6-4492-8637-94f344c5345d
I agree that this method is hacky and does not look professional. However, this is probably the best effort we can do here and the right things for our customers. We made an oversight by not including versioning right out of the box for templates. I'll defer to your judgement however on whether we should include the hacky deprecation notice.

Customers using a CLI with version < 0.209 will run into issues once we use enums and start using the selection UI for those prompts. Older versions of the CLI did not deal with multiline prompts correctly for selection type questions and would end up overlaying on top of already printed text.
Here's an example of what the experience would look like. https://github.com/databricks/mlops-stacks/assets/88374338/847668d4-3982-49d3-aeb3-682cf386310a
I agree that this method is hacky and does not look professional. However, I could not come up with any other alternatives and this is probably the best effort we can do here and the right thing for our customers. We made an oversight by not including versioning right out of the box for templates. I'll defer to your judgement however on whether we should include the hacky deprecation notice.

Love the music choice for that video 😂 but yeah I see the issue, it doesn't fail gracefully with older versions. Is there any way we can send an interrupt ourselves?

Cookiecutter has the support of private variable that does not take input from users and has the option to show/not show the private variable values.
https://cookiecutter.readthedocs.io/en/stable/advanced/private_variables.html
How about adding similar support in bundles? Either by using a convention in the name, or adding an explicit field.
After adding the support, we can add the private variable as the first one for prompt. At least it's in a separate input variable.

@mingyu89 That's a good suggestion and gets rid of the need for a hack. The main hesitation I have with this approach is we should not introduce a new feature to bundle templates (in this case private variables) for it's side effects related to having a smooth migration path here.


Add TokenCredential and BearerTokenAuthenticationPolicy

This PR kicks off the new Azure.Identity TypeScript library implementation by temporarily introducing the TokenCredential abstract class and BearerTokenAuthenticationPolicy class which can apply a token to requests in ms-rest-js's HTTP request pipeline.
Questions for Reviewers

Is this the right library/folder to add these classes?  The policy implementation seems like it belongs with the other policies in ms-rest-js/lib/policies.  Perhaps this low-level implementation belongs in that library instead since it isn't specific to Node.js or the browser?
Are the comments sufficient?  Are there any posted guidelines for how JSDoc comments should be written?
The Prettier extension in VS Code has been auto-formatting these files when I save them.  Does the formatting look generally correct?

Tasks

[ ] Add tests for the policy implementation

/cc @schaabs @bterlson

Please update version in package.json after you address feedback from @amarzavery so the new version of package will get published.

@kpajdzik If I export these classes into the public interface of the library, would that entail a minor version bump?  I assume this library follows SemVer 2.0.

@kpajdzik If I export these classes into the public interface of the library, would that entail a minor version bump? I assume this library follows SemVer 2.0.

Correct!

OK, after looking over the code in ms-rest-js and ms-rest-nodeauth and thinking about it for a while, here’s why I think both of these classes should live in ms-rest-nodeauth inside of the identity folder:

The goal of the new "Azure Identity" effort is to produce an authentication library which can pull credentials from the deployment environment so that a developer does not need to write their own credential lookup logic.
In the JavaScript space, the only place where this type of environment credential probing logic makes sense (for now) is in server-side Node.js code deployed to Azure.
Since the actual implementation(s) of TokenCredential which handle this credential probing logic will be implemented in ms-rest-nodeauth, the two classes in this PR would need to be exported from ms-rest-js so that they could be used in this module.  BearerTokenAuthenticationPolicy directly depends on TokenCredential so they will need to live in the same library, therefore I think their home should be ms-rest-nodeauth for the aforementioned reasons.
This new credential probing logic can be an internal implementation detail in ms-rest-nodeauth for now, so there’s not yet a need to export these classes in the module’s public interface, hence TokenCredential shouldn’t cause a conceptual conflict to users of ms-rest-nodeauth.  The only difference to an outside consumer could be a new authentication method that can be used to invoke this credential probing logic but it shouldn’t need to reference these types directly (please correct me if I’m wrong!).
Once the official “Azure Identity” TS module is produced, we can move these classes there and expose them from its public interface.  ms-rest-* modules could then take a dependency on that new module to maintain the previous credential probing behavior.

How does that sound to everyone?

Hey folks, after discussing this a bit more with @AlexGhiondea and @bterlson, I've decided to close this PR and add these classes to a different module.  I'll link the new PR once it's up.


Release Lease says Lease Id cannot be None

Package Name: azure-storage-blob
Package Version: azure-storage-blob==12.3.1
Operating System: MacOS
Python Version: 3.6

Describe the bug
Trying the simple acquiring and releasing of lease using the aio BlobLeaseClient and facing issues during release of lease,
The code shows that release of lease method release on the BlobLeaseClient fills in the lease id from the BlobLeaseClient object self.id and developer doesn't need to pass the lease_id. But when running the release method asks for lease id. If it is provided, it says 2 arguments were given for 1 positional argument
To Reproduce
Steps to reproduce the behavior:
Run the following code
from azure.storage.blob.aio import BlobServiceClient, BlobClient, BlobLeaseClient,ContainerClient
from azure.identity.aio import ClientSecretCredential
import os,asyncio, time

storage_uri = "{STORAGE_URI}"
tenant_id = "{TENANT_ID}"
client_id = "{CLIENT_ID}"
client_secret = "{CLIENT_SECRET}"
container_name = "test-blob-1"
storage_cred = ClientSecretCredential(tenant_id,client_id,client_secret)
blob_service_client = BlobServiceClient(storage_uri,storage_cred)
container_client : ContainerClient = blob_service_client.get_container_client(container_name)
blob_client: BlobClient = container_client.get_blob_client("priya-env-3.json")

async def main():
    lease_id = None
    blob_lease_client: BlobLeaseClient = BlobLeaseClient(blob_client)
    async with blob_lease_client,blob_client:
        await blob_lease_client.acquire(20)
        lease_id = blob_lease_client.id
        await blob_client.upload_blob("updated_blob",overwrite=True,lease=lease_id)
        await blob_lease_client.release()

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())
    loop.close()

Expected behavior
expect blob release to happen successfully.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Also if I comment out the release part, the blob upload happens successfully, but it complains about unclosed connection from aiohttp. Despite using context managers as shown in the code above.

The problem is:
await blob_lease_client.release() is failing with
 File "/azure-blob/py36/lib/python3.6/site-packages/azure/storage/blob/_generated/aio/operations/_blob_operations.py", line 1608, in release_lease     header_parameters['x-ms-lease-id'] = self._serialize.header("lease_id", lease_id, 'str')   File "/azure-blob/py36/lib/python3.6/site-packages/msrest/serialization.py", line 717, in header     output = self.serialize_data(data, data_type, **kwargs)   File "/azure-blob/py36/lib/python3.6/site-packages/msrest/serialization.py", line 758, in serialize_data     raise ValueError("No value for given attribute")
Not sure how to let the release know of the lease id. I was assuming it automatically picks up the lease id from the blob_lease_client

Hi @priyaananthasankar
the reason is you acquired an lease on a non-existing blob which doesn't make sense.
let me know if you need any other info!

@xiafu-msft : No I acquired lease on an existing blob and it showed me the lease was acquired successfully. You can test with that code snippet.

Issue resolved. Spoke to @xiafu-msft and the following is the right approach when using python context managers:
from azure.storage.blob.aio import BlobServiceClient, BlobClient, BlobLeaseClient,ContainerClient
from azure.identity.aio import ClientSecretCredential
import os,asyncio, time

storage_uri = "{STORAGE_URI}"
tenant_id = "{TENANT_ID}"
client_id = "{CLIENT_ID}"
client_secret = "{CLIENT_SECRET}"
container_name = "test-blob-1"
storage_cred = ClientSecretCredential(tenant_id,client_id,client_secret)
blob_service_client = BlobServiceClient(storage_uri,storage_cred)

async def main():
    lease_id = None

    # async context managers for blob_service_client and storage_credentials

    async with blob_service_client,storage_cred:
        container_client : ContainerClient = blob_service_client.get_container_client(container_name)
        blob_client: BlobClient = container_client.get_blob_client("priya-env-3.json")
        blob_lease_client = await blob_client.acquire_lease(20)
        lease_id = blob_lease_client.id
        await blob_client.upload_blob("updated_blob",overwrite=True, lease=lease_id)
        await blob_lease_client.release()

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())
    loop.close()

The blob_client/container_client etc can be derived from blob_service_client. It is a recommended practice to put the parent context manager so that the aexit closes all the child client connections properly when the event loop is closed.
Particularly in the case of release lease call, the aexit also calls release which results in the lease_id. missing error. Wrapping the blob_lease_client inside the context manager helped.


README.md: remove period on gitter link

Refs https://github.com/caskroom/homebrew-cask/pull/16409#discussion_r49010355.

Merged as 52ac87aea3051ee5248548521569ec0d7bf027dd.


AP-2254: Update the means_result content

What
Link to story
Match the text from the prototype and update the tests to ensure
changes have been rendered as expected
Checklist
Before you ask people to review this PR:

Tests and rubocop should be passing: bundle exec rake
Github should not be reporting conflicts; you should have recently run git rebase main.
There should be no unnecessary whitespace changes. These make diffs harder to read and conflicts more likely.
The PR description should say what you changed and why, with a link to the JIRA story.
You should have looked at the diff against main and ensured that nothing unexpected is included in your changes.
You should have checked that the commit messages say why the change was made.

This was misidentified in commit messages, branch, and PR names. Closing and replacing with #3387


Laravel 5.4 install config, migration and activitylog:clean command not same as on github

Thanks for the great package.
I installed v. 2.4.3 and I'm running into a few issues.
I got the table and the config file published. I registered  the class and facade in the config/app.php
On github the migration looks a lot different. This is what I have:
 class CreateActivityLogTable extends Migration {    'public function up()     {         Schema::create('activity_log', function (Blueprint $table) {             $table->increments('id');             $table->integer('user_id')->nullable();             $table->string('text');             $table->string('ip_address', 64);             $table->timestamps();         });     }
And this is the config file it  published.
`<?php
return [
/*
|--------------------------------------------------------------------------
| Also log to Laravel's default log handler
|--------------------------------------------------------------------------
|
| If "alsoLogInDefaultLog" the activity will also be logged in the default
| Laravel logger handler
|
*/
'alsoLogInDefaultLog' => true,

/*
|--------------------------------------------------------------------------
| Max age in months for log records
|--------------------------------------------------------------------------
|
| When running the cleanLog-command all recorder older than the number of months
| specified here will be deleted
|
*/
'deleteRecordsOlderThanMonths' => 2,

/*
|--------------------------------------------------------------------------
| Fallback user id if no user is logged in
|--------------------------------------------------------------------------
|
| If you don't specify a user id when logging some activity and no
| user is logged in, this id will be used.
|
*/
'defaultUserId' => '',

/*
|--------------------------------------------------------------------------
| Handler that is called before logging is done
|--------------------------------------------------------------------------
|
| If you want to disable logging based on some custom conditions, create
| a handler class that implements the BeforeHandlerInterface and
| reference it here.
|
*/
'beforeHandler' => null,

/*
|--------------------------------------------------------------------------
| The class name for the related user model
|--------------------------------------------------------------------------
|
| This can be a class name or null. If null the model will be determined
| from Laravel's auth configuration.
|
*/
'userModel' => null,

];`
I can see that the package is uptodate and compatible with 5.5. I'm starting to think the whole composer package I downloaded  is different from what is current.
I tried to run php artisan activitylog:clean and there is no such command in artisan.
And about usage. I wanted to use the package to log activity for a company. Will this work now that I just  need to create a log name  and causer?

wrong package

I installed it again .. version 1.16.0 and still having the same issue. Migration, Config and even the package looks different


Exception

Hello, I'm getting an exception here:
string proxyUrl =
$"{proxyAddress}/api/VoteData?PartitionKey={((Int64RangePartitionInformation)partition.PartitionInformation).LowKey}&PartitionKind=Int64Range";
Apparently, the 'partition.PartitionInformation' is of type 'SingletonPartitionInformation'. so it can't be casted to 'Int64RangePartitionInformation'. How can I fix that?

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

ID: c0d03b4f-4157-0d04-0f48-0a3e2fb966cb
Version Independent ID: 6b7bed89-eb53-105a-7971-476ddd4cf3b7
Content: Create a .NET application for Service Fabric
Content Source: articles/service-fabric/service-fabric-tutorial-create-dotnet-app.md
Service: service-fabric
GitHub Login: @rwike77
Microsoft Alias: ryanwi

@uncarlo at which point in the doc are you getting this error?

@MicahMcKittrick-MSFT Hi Micah,
Runtime, compile time is fine. I had to turn on the setting to stop on exceptions otherwise it would keep running and just show an error on the browser saying to "run it in development mode" for more details.
Here's a screenshot:

@uncarlo I am attempting a repro now. Will update shortly.

@rwike77 can you assist on this? I am not seeing the same things in my VS when following the doc. Might be a mismatch on my end though.

@uncarlo Did you create the application by following the steps in the tutorial, or did you download the sample app from GitHub?

I created following the steps in the tutorial and copy / pasting most of the code.

Thank you for taking the time to share your product and documentation feedback with us. Your input is valued because it helps us create the right documentation for our customers.
Due to the volume of issues in our queue, our policy is to close issues that have been inactive for the last 90 days. We hope to continue hearing from you.
Thank you.
#please-close


Add hook implementation function name to plugin call order sorter

Description
As discussed at the dev meeting, having multiple hook implementations in a single file works out of the box, but each implementation is displayed by plugin name in the call order sorter, which is confusing.

The two display options which we agreed were most reasonable were

Display both the function name and the plugin name in the widget
Display the plugin name if the hook implementation doesn't have a custom name, and the function name if it does, leaving the plugin name to a tooltip.

Screenshots of what each option would look like:

I think option 1 is the nicest, but interested to hear what people would prefer.

I think option 1 is the nicest, but interested to hear what people would prefer.

I also agree, I really like the use of a smaller font. We can continue to iterate and standardize this stuff across napari.
Not necessarily for this PR, but as a followup we now might want to rename our builtin to something like magic_imread which is the function name. Not required, but probably nice to do. Curious what others think?

I too like option 1, very nice.  One additional thing you might want to do here is to use an ElidingLabel, which will truncate the name and add an ellipses if the window size is not big enough (otherwise, it could get very annoying with longer names).  There is an ElidingLabel class in qt_eliding_label.py:
In [1]: from napari._qt.widgets.qt_eliding_label import ElidingLabel

In [2]: l = ElidingLabel("some-very-long-plugin-name")

In [3]: l.show()

I too like option 1, very nice. One additional thing you might want to do here is to use an ElidingLabel, which will truncate the name and add an ellipses if the window size is not big enough (otherwise, it could get very annoying with longer names). There is an ElidingLabel class in qt_eliding_label.py:
In [1]: from napari._qt.widgets.qt_eliding_label import ElidingLabel

In [2]: l = ElidingLabel("some-very-long-plugin-name")

In [3]: l.show()

@tlambert03 I tried changing the label to an eliding label, and it mostly works. I just can't seem to get rid of the margin on the right. If I align the plugin label right or left, then it shows ellipses no matter how wide the dialog is, even with the MinimumExpanding horizontal size policy. What's the best way to achieve this? Should I be adding a sub-layout?

I just can't seem to get rid of the margin on the right.

I think the issue here is that ElidingLabel uses self.font() to determine how "wide" the displayed text is.  But style-sheets take precedence in the case of a font-size conflict... so it thinks text is actually larger than it is, and does the eliding incorrectly.  You might need to set the fontSize manually on this one, and not use the stylesheet.

ou might need to set the fontSize manually on this one, and not use the stylesheet.

If I set a fixed font point size of 8, I get one letter of the plugin name and then ellipses regardless of setting a size policy or not. If I set it to 6 the label is not displayed at all.

the ElidingLabel stores the fontMetric during the __init__... so if you're changing font size after instantiating, it won't work.  You can change the eliding label to recalculate the fontmetric each time like this:
class ElidingLabel(QLabel):
    """A single-line eliding QLabel."""

    def __init__(self, text='', parent=None):
        super().__init__(parent)
        self._text = text

    def setText(self, txt):
        self._text = txt
        fm = QFontMetrics(self.font())
        short = fm.elidedText(self._text, Qt.ElideRight, self.width())
        super().setText(short)

    def resizeEvent(self, rEvent):
        width = rEvent.size().width()
        fm = QFontMetrics(self.font())
        short = fm.elidedText(self._text, Qt.ElideRight, width)
        super().setText(short)
        rEvent.accept()

You can change the eliding label to recalculate the fontmetric each time

Okay this kind of works, as in it works for one hook spec. I've made the changes to eliding label and it works well for napari_get_reader but not for other hook specs. I tried it with fixed point size and using the small_text style. I thought maybe it was just the initial size of the dialog but resizing the window doesn't change the label.

I'm not sure I'm following the problem.  but you may need to adjust the size policy and/or the maximum width of that label as well.  setting a different background color on one or more of the widgets can help to identify what the limitations are (e.g. if it's the label size itself that's a problem, or padding, or the eliding, or the size policy, etc...).  feel free to ping me if you want more specific tips.

Ok @tlambert03 thanks for all your help on this. I think I've narrowed it down to it looking mostly good, with one issue. The label expands appropriately with the window now, and shrinks appropriately too. However, the plugin name doesn't always align, depending on the length of the function name.

If I try to align the plugin name to the right, then the label elides and won't expand, regardless of the fact that its horizontal stretch factor is larger than the function name's label. I think this is because the stretch happens to the right, and the label is right aligned so it doesn't perceive itself as having any space.

Is there a way to align the labels to the right and still have them stretch on expansion?

Is there a way to align the labels to the right and still have them stretch on expansion?

ah interesting... is this code pushed?  (i.e. can I pull and test it out myself?)

Just pushed it then with the alignment and bg color

I think I've narrowed it down to it looking mostly good, with one issue. The label expands appropriately with the window now, and shrinks appropriately too. However, the plugin name doesn't always align, depending on the length of the function name.

If you can't fix this part, I think it still looks pretty good. Definitely good enough for a first pass for me personally (top screenshot in comment above that is).

Ok @tlambert03 thanks for all your help on this. I think I've narrowed it down to it looking mostly good, with one issue. The label expands appropriately with the window now, and shrinks appropriately too. However, the plugin name doesn't always align, depending on the length of the function name.

It looks pretty good as it is @DragaDoncila 🥳 !
Now to be able to align them we would need to have some refresh mechanism to get the maximum length of the function name in all the list items and set this to be the minimum width of the other items. This would need to be triggered on resize events as well. As @sofroniewn points out, it is not critical, but doable :)

Alright @sofroniewn @goanpeca I've removed the debug blue highlighting and alignment. If we're happy with this as a first pass then I think this is ready to merge.


A user should be able to transfer a project to another user

Story
As a user, I would like to transfer a project profile to another existing user so that they can manage it going forward.
Description
Currently the person who requested a project is the only person who can see it in their dashboard. We recognize that this needs to work differently as some people may request it, but not oversee the project long term (think ppl on holidays etc). We need to implement the functionality so that users can transfer projects between them.
Done When
A user can logon to the registry and transfer a project to another user who has logged at least one time with an existing database record. Then, the project should be visible on the new persons dashboard.

Hi @jleach, could you confirm this is the Duplicate of #91 thanks

Hi @jleach, could you confirm this is the Duplicate of #91 thanks


Add University of Yangon

Yangon University Website: click

@MinMyatPaing lib/domains/mm/edu/yu: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.

@MinMyatPaing lib/domains/mm/edu/yu: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.

@MinMyatPaing I have to close this request without merging, because you requested to add a non-existent domain to this repository: Host yu.edu.mm not found: 3(NXDOMAIN) Please ensure that you are familiar with this repository rules located at the bottom of this page and submit a new request with the correct information. Thank you for understanding!


⚠ TorrentLeech has degraded performance

In abdefca, TorrentLeech ($TL) experienced degraded performance:

HTTP code: 200
Response time: 7464 ms

Resolved: TorrentLeech performance has improved in 193274f after 8 minutes.


Entity headers able to be added to directly

The headers in the routable entity are a straight dictionary which means that you can add a value directly and manipulate it. Routable entity headers should be immutable and therefore not able to be edited. This is not currently the case and means they can be manipulated and modified runtime.
This needs to be prevented to be more in line with current thoughts.

This has now been resolved.

This has now been resolved.


Advantage of manually setting up NAS IDs

Hello, I am wondering, is there some advantage in setting up the NAS IDs manually? AFAIK OpenWrt sets the NAS IDs automatically, if not filled.

Not sure, to be honest. According to https://openwrt.org/docs/guide-user/network/wifi/basic#fast_bss_transition_options_80211r it's required and there is no default. But the documentation might be outdated.

Manually setting NAS IDs has been removed in 4cce4a5737e13ad2c40b5d6faaa273c03c0d5e14


Implement Download button for selected data

Selected items should be downloadable on button press. Therefore all related surfaces should be bundled.

Almost ready, one test is missing. Now it looks like this:

Is the button label reasonable? It's "Download related surfaces".


Fix for #356

Makes sure m_db is a nullptr when it is unable to get the X resource manager.
Refs #356

The Xlib version has been dropped all together in favor of the xcb version.


Left sidebar not showing errors/warnings

Issue Report Checklist

[x] Searched the issues page for similar reports
[x] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
[x] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
[x] Tried basic troubleshooting (if a bug/error)

[x] Restarted Spyder
[ ] Reset preferences with spyder --reset
[ ] Reinstalled the latest version of Anaconda
[ ] Tried the other applicable steps from the Troubleshooting Guide

[x] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description
When I create a new file, the left side bar is not showing the errors and warnings. It however shows for some of the old files (not all). I have realised this today, and I updated to Spyder 5.4.2 about a week ago.
The corresponding option of enable basic linting is active.
If I ran the code analysis tool, the code is analysed, giving the errors and warnings, but they are not shown on the sidebar.
What steps reproduce the problem?

Click on New file
Write a line with obviously wrong syntaxis like import numpy as from numpy if from import

What is the expected output? What do you see instead?
I would expect the errors to appear on the left sidebar.
No error appears.
 Could you check if, in the Source menu, the Show code style warnings entry is checked?

Also, could you try restarting the LSP by clickin over the LSP: Python entry in the status bar and then clicking the Restart Python Language Server action?

Let us know if something of the above helps!

The Show code style warnings entry is checked.
I restarted the LSP, and it was not solved.
Also I restarted spyder in debug mode and I did not see anything strange (but I don't know much about what it should show). Tell me if you want me to post it here.
Note: When I open spyder, I get the fromIccProfile: failed minimal tag size sanity, but I ignore it, as suggested in other threads (' it's just a warning and you can simply ignore because it doesn't affect Spyder')

Yes.
Unfortunately, I had an issue (unrelated to spyder) and I had to do a fresh installation of Ubuntu. On this fresh Ubuntu, the new conda and spyder installation went correctly, and the issue with the 'code style warnings and errors' is not happening anymore.
However, I have a backup of the anaconda3 directory, where I can find the environment directory where spyder was installed. Maybe the information in this directory could help to find what was the issue, and under which conditions this happened. However, since I am not an expert, I would need you to tell me which files I could look at (or send to you) that could help you. Maybe, if you point me to the location where the user configuration of spyder is saved, I can have a look and send you the important information.
Sorry for the unexpected bad news.

Oh I see, and not bad news at all! Glad to hear that linting inside Spyder is working again!
I think if a clean installation helped then the issue most probably was related with some combination of packages versions instead of the specific config you have. From what version did you did the update to Spyder 5.4.2 in your old installation? I think at some point in Spyder 5.0.x or 5.1.x some changes where done to the LSP related packages which maybe was causing troubles in your installation after doing the update to 5.4.2 🤔
If a clean install made things work then there is not much else we can do, so I think we can close this. What do you think @Miguel-LlamasLanza ?


Avoid using the module's customized display name when creating availability render items

Bug/issue #, if applicable: rdar://92197472
Summary
This fixes a small issue where availability render items was created based on the module's display name instead of the module's symbol name. This resulted in missed default availability items not being rendered after customizing the module's display name.
Dependencies
n/a
Testing
With a documentation catalog with default availability specified in the Into.plist (using the CDAppleDefaultAvailability key)

Customize the module's display name with a @DisplayName directive in the module's documentation extension file.
Build documentation for the project and navigate to the module page.

The default availability should be rendered on the module page.
Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[x] ~Added~ Updated tests
[x] Ran the ./bin/test script and it succeeded
[x] Updated documentation if necessary

@swift-ci please test

@swift-ci please test

@swift-ci please test


Not able to override app env variables

I was trying to setup in server using the docker compose and find out cant replace the localhost with my server hostname.
NEXT_PUBLIC_API_SERVER_URL & NEXT_PUBLIC_HDX_COLLECTOR_URL cant be overriden.
localhost2 is just an example hostname.

Hi, thanks for contributing to HyperDX. It's because the app service is using pre-built image and some env vars are baked-in. I'm going to update the compose file so people can rebuild the image in this case.

Also ran into this, except I changed the exposed port on api and was trying to pass that in to app on the NEXT_PUBLIC_API_SERVER_URL.  Awesome that it's getting handled so quickly

I was trying to setup in server using the docker compose and find out cant replace the localhost with my server hostname. NEXT_PUBLIC_API_SERVER_URL & NEXT_PUBLIC_HDX_COLLECTOR_URL cant be overriden. localhost2 is just an example hostname.

@NanFengCheong
I was able to work it out by replacing the docker-compose.yml with docker-compose.dev.yml.
This helped in rebuilding the images from scratch along with the ENV var override.

@snjv94 did you mean you added the build property under app?

Hi, thanks for contributing to HyperDX. It's because the app service is using pre-built image and some env vars are baked-in. I'm going to update the compose file so people can rebuild the image in this case.

I would prefer the ability to override those variable values using env variables since it is much faster than rebuilding the whole image. But it would be fine as long as the alternatives are available.

Hi, thanks for contributing to HyperDX. It's because the app service is using pre-built image and some env vars are baked-in. I'm going to update the compose file so people can rebuild the image in this case.

I would prefer the ability to override those variable values using env variables since it is much faster than rebuilding the whole image. But it would be fine as long as the alternatives are available.

There are some more discussions going on about this here in the MR that I opened

Hi, thanks for contributing to HyperDX. It's because the app service is using pre-built image and some env vars are baked-in. I'm going to update the compose file so people can rebuild the image in this case.

I would prefer the ability to override those variable values using env variables since it is much faster than rebuilding the whole image. But it would be fine as long as the alternatives are available.

There are some more discussions going on about this here in the MR that I opened

Ya, I saw that. I dont see the purpose of adding traefik in the docker compose since everyone has their own preference/setup. As long as all the env variables with localhost can be override with the hostname, it should be fine.

I think you miss out NEXT_PUBLIC_HDX_COLLECTOR_URL variable, it should be connected to the server hostname instead of localhost.

@snjv94 did you mean you added the build property under app? or just run the docker compose using docker-compose.dev.yml?

@NanFengCheong merely using docker-compose.dev.yml instead of docker-compose.yml will rebuild the images for you. If you open the dev docker-compose file, you will see the custom added context build file there.
You can use this till the time it gets fixed.

@snjv94 did you mean you added the build property under app? or just run the docker compose using docker-compose.dev.yml?

@NanFengCheong merely using docker-compose.dev.yml instead of docker-compose.yml will rebuild the images for you. If you open the dev docker-compose file, you will see the custom added context build file there. You can use this till the time it gets fixed.

@snjv94 ok, I am able to override the env variables after build

I my case only change the FRONT to be built... to to be built must add the ARGS to the built. The problem is that on build time this variable is set, so there is not (only coding) other way to set that API URL on front.

Another suggestion for solving the issue (in regards to having env values in the frontend)
We have a plain env.js file that is then included in the index.html (we are using angular - so this is rather trivial to setup).
The env.js file looks something like this
(function (window) {
    window._env = window._env || {};
    window._env.variable= '${VARIABLE}';
})(this);

And then inside of the frontend docker container - we run a simple envsubst on the file before serving - in our case we host our compiled dashboards on nginx - so we have something like this as our docker-entrypoint.sh
e.g.
# shortened for brevity
envsubst '${VARIABLE}' < env.js > env.js.tmp && mv env.js.tmp env.js

nginx -g 'daemon off;'

This does feel a bit hacky - but works great nonetheless 😄
So maybe that could be another solution that'd be worth looking at for you. Like I said - it does

@snjv94 did you mean you added the build property under app? or just run the docker compose using docker-compose.dev.yml?

@NanFengCheong merely using docker-compose.dev.yml instead of docker-compose.yml will rebuild the images for you. If you open the dev docker-compose file, you will see the custom added context build file there. You can use this till the time it gets fixed.

@snjv94 ok, I am able to override the env variables after build

We'd not suggest to use dev build for the production since the app isn't very performant and it doesn't stand alone (without source code volume mount) in dev build (theoretically you can update target to prod) if you really want to build using compose file. We are going to ship the helper command in Makefile so you can build with the custom URLs.

Going to update the README. Now users should be able to change app/api URLs or ports in .env and run build-local to rebuild images

@wrn14897 But can we change the url's without rebuilding images? Just passing a proper ENV variable to existing image should work fine

@wrn14897 But can we change the url's without rebuilding images? Just passing a proper ENV variable to existing image should work fine

That would be ideal. The only one blocker is the api url baked in during the build time (https://github.com/hyperdxio/hyperdx/blob/593c4ca758d896d11854a9c7f4e66bbf9be0134b/packages/app/src/api.ts#L37). Thus rebuilding the app image is still required.

It's always the frontend, isn't it... Is there no way to work around that?

Yes, its mainly for the frontend app. Probably not at this moment unless we do something on the network layer.

It's always the frontend, isn't it... Is there no way to work around that?

honestly I hate this so much. I run pretty much every service behind a reverse proxy and every service with server-side rendering works just fine.

Hi @sharpSteff! Totally hear you on this, we've had some further discussion on discord in exploring being able to use things like using next-runtime-env (thanks to lennart!) to help populate these values at run time instead (since there's still some SSR going on with Next anyways). It's going to involve a few changes and some thorough testing so we just haven't had the chance to have a go at it yet - though we're of course always happy to accept PRs/chat further if anyone is opening to taking a swing at it.


[ENHANCEMENT] Manage cloud provider storage via storage class then schedule longhorn replicas on the cloud provider attached volumes

Question
Hi,
I would like to add a persistent volume to my digitalocean cluster, this is supported (see links below) by using a do-block-storage storage class but I am unsure how to get longhorn to use this volume ?
https://www.digitalocean.com/docs/kubernetes/how-to/add-volumes/
Does anybody have any experience with this, is there a small HOW TO on longhorn ?
Maybe I am reading into it too deep, but the volume is already attached using the above storage class so how can longhorn manage this ?

You need to ensure, the do volume is attached to the node then you can make longhorn use the volume to create new replicas on it.

Ok Thanks @joshimoo .
I will close this now.


what_if_calculator - need to clean up the errors when launching the development server

The following is logged upon launching a demo session for the what_if_calculator. To reproduce, include the what_if_calculator/ app in settings.py, and start a demo session for the app.

Click to see the logs
(oTree5) llinfeng 🏆 P520c ➜  modified-otree-snippets git:(master) ✗  odev 8002                                  [22/02/2| 5:22PM] Open your browser to http://localhost:8002/                                                                                To quit the server, press Control+C.                                                                                Exception in ASGI application                                                                                Traceback (most recent call last):                                                                                File "/home/llinfeng/anaconda3/envs/oTree5/lib/python3.10/site-packages/anyio/streams/memory.py", line 81, in receive                return self.receive_nowait()                                                                                File "/home/llinfeng/anaconda3/envs/oTree5/lib/python3.10/site-packages/anyio/streams/memory.py", line 76, in receive_nowait         raise WouldBlock                                                                                anyio.WouldBlock                                                                                During handling of the above exception, another exception occurred:                                                                                Traceback (most recent call last):                                                                                File "/home/llinfeng/anaconda3/envs/oTree5/lib/python3.10/site-packages/starlette/middleware/base.py", line 35, in call_next         message = await recv_stream.receive()                                                                                File "/home/llinfeng/anaconda3/envs/oTree5/lib/python3.10/site-packages/anyio/streams/memory.py", line 101, in receive               raise EndOfStream                                                                                anyio.EndOfStream                                                                                During handling of the above exception, another exception occurred:                                                                                Traceback (most recent call last):                                                                                File "/home/llinfeng/anaconda3/envs/oTree5/lib/python3.10/site-packages/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi                                                                                result = await app(self.scope, self.receive, self.send)                                                                          File "/home/llinfeng/anaconda3/envs/oTree5/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 75, in __call__                                                                                return await self.app(scope, receive, send)                                                                                File "/home/llinfeng/anaconda3/envs/oTree5/lib/python3.10/site-packages/starlette/applications.py", line 112, in __call__            await self.middleware_stack(scope, receive, send)                                                                                File "/home/llinfeng/anaconda3/envs/oTree5/lib/python3.10/site-packages/starlette/middleware/base.py", line 55, in __call__          response = await self.dispatch_func(request, call_next)                                                                          File "/home/llinfeng/anaconda3/envs/oTree5/lib/python3.10/site-packages/otree/middleware.py", line 23, in dispatch                   response = await call_next(request)
File "/home/llinfeng/anaconda3/envs/oTree5/lib/python3.10/site-packages/starlette/middleware/base.py", line 37, in call_next
raise RuntimeError("No response returned.")
RuntimeError: No response returned.

Note the text copied from the console needs line breaks. Here is how the logs above are shown in a console.

Related post from oTree forum: https://groups.google.com/g/otree/c/xDkukroQ2PQ/m/4UAigB4DAwAJ

Can you show the output of “pip freeze”? oTree is not even supposed to install on Python 3.10.
Sent from my phone

On Feb 4, 2022, at 2:27 AM, Linfeng Li @.***> wrote:

The following is logged upon launching a demo session for the what_if_calculator. To reproduce, include the what_if_calculator/ app in settings.py, and start a demo session for the app.
Click to see the logs
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.

@oTree-org Thanks for jumping in the discussion here. I posted this issue mostly for bookkeeping purposes.
To my surprise, without needing to change anything in that what_if_calculator/ app, resetting the database resolved the error messages. I assume they were introduced when I was developing the demo calculator. (As I poked around and ran otree resetdb, well, I failed to make a copy of the local database :( I will revisit this post if I may catch the same error messages again.)
RE: using the correct version for oTree - which version should I use? Upon quickly browsing the PyPI page and the documentation page, I am afraid I cannot find the advised Python version to use. Apparently, I am not using the latest oTree release either.

Here is what I see upon freezing the env:
aiofiles==0.7.0
anyio==3.3.2
asgiref==3.4.1
certifi==2020.6.20
click==7.1.2
h11==0.12.0
idna==3.2
itsdangerous==2.0.1
MarkupSafe==2.0.1
otree==5.4.4
python-multipart==0.0.5
six==1.16.0
sniffio==1.2.0
SQLAlchemy==1.3.22
starlette==0.16.0
uvicorn==0.15.0
websockets==10.0
WTForms==2.3.3
WTForms-SQLAlchemy==0.2

After searching for "Exception in ASGI application" on the oTree forum, I found this post and was tempted to move the live_method function around.


Fix Issue when cluster-agent seams enable, but dca client not initialized

What does this PR do?
Fix an Agent issue, when configuration says that Cluster-Agent is activated but the cluster-agent is not available (connection failed).
In addition to the check if Cluster-Agent is activated, we check that the DCAClient is properly created.
Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?

WDYT about rather setting c.clusterAgentEnabled to false here https://github.com/DataDog/datadog-agent/pull/3383/files#diff-58691a42377df7d0ee1ed4b57a9cf436R56 so we don't have to check for both thing everytime which could be error prone in the futur?

@mfpierre PR ready for a second review

@mfpierre unit-tests should work now.


New API: avoid message formatting when possible to be able to take advantage of zero alloc libraries

Description
The idea is to deprecate the usage of string formatting and always use typed fields instead, so:
	a.log.Debugf("Started agent: isControlling? %t, remoteUfrag: %q, remotePwd: %q", isControlling, remoteUfrag, remotePwd)

becomes:
	a.log.DebugLvl().
		Bool("isControlling", isControlling).
		Str("remoteUfrag", remoteUfrag).
		Str("remotePwd", remotePwd).
		Msg("Started agent")

This change is totally backwards compatible.
I also added a thirdparty directory with a zerolog implementation so people don't have to roll out their own implementation
This is how the integration will look like from a pion user perspective: https://github.com/decentraland/webrtc-broker/blob/5df08906d7547b5edbae3add274286a17f663f37/internal/logging/logging.go#L37
Reference issue
Related #10

@hugoArregui
I haven't figured it out yet, but this is causing compile errors in pion/webrtc, but beyond that this looks perfect!
What do you think of including info from runtime? Getting the calling function could be really helpful for debugging. Right now people just grep for the error message.
seaduboi@38f9d359441f:~/go/src/github.com/pion/webrtc$ golangci-lint run --build-tags quic ./...
peerconnection_test.go:117:9: cannot use testCatchAllLeveledLogger(t) (value of type testCatchAllLeveledLogger) as *logging.Logger value in return statement (typecheck)
	return testCatchAllLeveledLogger(t)
	       ^
seaduboi@38f9d359441f:~/go/src/github.com/pion/webrtc$ cd examples
seaduboi@38f9d359441f:~/go/src/github.com/pion/webrtc/examples$ golangci-lint run --build-tags quic ./...
custom-logger/main.go:47:9: cannot use (customLogger literal) (value of type customLogger) as *logging.Logger value in return statement (typecheck)
	return customLogger{}

@Sean-Der sorry for the delay! I've been very busy with other things.

I might be doing things wrong but pion/webrtc@master isn't able to compile.

Sorry about that, yes, that's true, I should have clarified that, this change is backwards compatible with the usage of the logger, but not with a given logger implementation, so in this case the webrtc test is defining a custom a logger in a way this PR doesn't support anymore. Before this PR, you provide your own logger, but with this PR you provide a formatter. Let me know if you think this is a problem.

What do you think of including info from runtime? Getting the calling function could be really helpful for debugging. Right now people just grep for the error message.

This is certainly doable, let me try something. I don't want to provide an API to do that because some log libraries support this functionality in their own way (zerolog and logrus for example), but I can add it to our default formatters.

@Sean-Der there you go:
$ PION_LOG_TRACE=ice  go run pion-to-pion-trickle/offer/main.go
[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/agent.go:477] Started agent: isControlling? true, remoteUfrag: "EWrKFRseuWyothki", remotePwd: "AhgwpKAinQUfayfGoPgvLtlGThydrrjU"
[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/agent.go:506] Setting new connection state: Checking
[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/selection.go:91] pinging all candidates
ICE Connection State has changed: checking
[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/selection.go:91] pinging all candidates
[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/agent.go:880] ping STUN from host <IP_ADDRESS>:50353 to host <IP_ADDRESS>:50714

[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/agent.go:880] ping STUN from host <IP_ADDRESS>:63881 to host <IP_ADDRESS>:50714

[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/candidatepair.go:92] failed to send STUN message: failed to send packet: write udp <IP_ADDRESS>:63881-><IP_ADDRESS>:50714: sendto: no route to host
[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/selection.go:91] pinging all candidates
[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/agent.go:880] ping STUN from host <IP_ADDRESS>:50353 to host <IP_ADDRESS>:50714

[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/agent.go:880] ping STUN from host <IP_ADDRESS>:63881 to host <IP_ADDRESS>:50714

[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/candidatepair.go:92] failed to send STUN message: failed to send packet: write udp <IP_ADDRESS>:63881-><IP_ADDRESS>:50714: sendto: no route to host
[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/agent.go:880] ping STUN from host <IP_ADDRESS>:50353 to host <IP_ADDRESS>:51059

[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/agent.go:880] ping STUN from host <IP_ADDRESS>:63881 to host <IP_ADDRESS>:51059

[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/selection.go:159] inbound STUN (SuccessResponse) from host <IP_ADDRESS>:50714 to host <IP_ADDRESS>:50353
[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/selection.go:169] Found valid candidate pair: prio<PHONE_NUMBER>652587007 (local, prio<PHONE_NUMBER>) host <IP_ADDRESS>:50353 <-> host <IP_ADDRESS>:50714 (remote, prio<PHONE_NUMBER>)
[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/agent.go:1006] inbound STUN (Request) from <IP_ADDRESS>:50714 to host <IP_ADDRESS>:50353
[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/selection.go:135] The candidate (host <IP_ADDRESS>:50353, host <IP_ADDRESS>:50714) is the best candidate available, marking it as nominated

[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/selection.go:115] ping STUN (nominate candidate pair) from host <IP_ADDRESS>:50353 to host <IP_ADDRESS>:50714

[/Users/hugoarregui/go/pkg/mod/github.com/pion/ice@v0.5.14/agent.go:880] ping STUN from host <IP_ADDRESS>:50353 to host <IP_ADDRESS>:50714

Oh I love that, nice work @hugoArregui
This is a merge from me! We will need to communicate/update things a little more on this. Let me handle a few outstanding issues (that are actively biting people) and lets get this in right after!

awesome! no hurry, this is a breaking change for people defining their own logger, so we can wait until the next major if that makes more sense

I found this by way of #10 which I found when I encountered some evidence of logging introducing unnecessary mutex contention.  It seems there are two orthogonal issues here and it's probably worth addressing them separately.
(1) Suboptimal usage of invocation of logging libraries (log(foo.String())).
(2) The underlying logging mechanism.
Issue (1) already has a solution in the stdlib and can be fixed fairly easily by auditing the codebase and using %q interpolation everywhere we log a https://golang.org/pkg/fmt/#Stringer types: logf("blah %s", x.String()) -> logf("blah %q", x).  In fact, I'd go even further and say that %s in logs should be banned in favor of %q unless explicitly rationalized because it's more readable and less prone to misinterpretation: i can't find  in file (double space) vs i can't find "" in file
https://play.golang.org/p/Ius_-3qHErF
type N struct{ n int }

func (n *N) String() string { return "my thing " + strconv.Itoa(n.n) }

func main() {
	fmt.Printf("foo: %q\n", &N{12})
	fmt.Printf("NOTE! this only works as intended if the interface is satisfied: %q", N{12})
}

Yields
foo: "my thing 12"
NOTE! this only works as intended if the interface is satisfied: {'\f'}

Issue (2) is a broader problem.  Given that pion's goals are oriented around being embeddable, IMO the logging library should simply be a set of interfaces (https://dave.cheney.net/2017/01/23/the-package-level-logger-anti-pattern is a concise writeup on why) and a no-op default implementation leaving the concrete implementation up to users to inject.
In addition, and tangentially related, I think pion/webrtc and its transitive dependencies would benefit from structured logging and in particular capable of supporting contextual fields so defining the interfaces as a subset of the zerolog API has my vote.  That way injecting a logging implementation would only involve instantiating a zerolog Logger instead of the wrapper approach in this PR.

@bshi I am 100% in support of this!
It is also much easier to break these things now then in August 2019 (pre-Modules) back then I had some apprehension because breaking APIs caused so much frustration.

Hey guys, it has been a while since I work on this (and in go), so maybe I'm missing something, but the proposed logging package is a set of interfaces, there is also a zerolog package in the thirdparty directory, but is not all together.

@hugoArregui sorry if I missed something but I don't see any interface types in this change?  I was also mostly chiming in on what the interface should be.  And I realized after the fact that the zerolog API surface is not amenable to hiding behind an interface without any changes.  Should we consider a community standard interface?  https://github.com/go-logr/logr supports contextual logging.

Formatter is the interface: https://github.com/pion/logging/blob/7661bb550b9d40980c02371b30401046e73c1f42/logger.go#L67 and it's implemented in the zerolog package: https://github.com/pion/logging/blob/7661bb550b9d40980c02371b30401046e73c1f42/thirdparty/zerolog/logger.go#L10

The interface as defined is still opinionated about the underlying logging mechanism (stdlib log).  My initial point (as rationalized by https://dave.cheney.net/2017/01/23/the-package-level-logger-anti-pattern) was that pions should be entirely decoupled from any concrete logging implementation (aside from a nop-logger) and that logging should be injected by client code.


Add additional container php-fpm without xDebug

Fixed here  - https://github.com/ityetti/magento2-docker/pull/19


add toggle for crash reporter

This PR adds a toggle for turning on or off the Crash Reporter module on startup. I also refactored the preferences module so that instead of having dedicated get and toggle functions for each settings, there is only one of each of those functions that take an argument for which setting to get or toggle.
I also forked and created a server that the Crash Reporter will send it's reports to. Right now that server is located at http://<IP_ADDRESS>:1127, though if we use it enough we can get some nicer domain name for it. It's just an AWS EC2 instance that I set a daemon on to run this forked mini-breakpad-server (nohup node lib/app.js & for future reference). The only useful info it records as of now is the app version, date/time, platform/CPU, and Electron version. In the future, we could convert the thread dumps it provides into full stack traces, but that is out of the scope of this PR.
Here is the repo for the mini-breakpad-server - https://github.com/OpenTrons/mini-breakpad-server

LGTM


docs: add asup eula

Also we need to change the  "Example Autosupport Information" in readme with current payload


update files to newer version

Updated pom.xml and class-files to newer keycloak, jenkins an jackson version

Fixed a problem with non serializable httpclient object in KeycloakDeployment object


Audio weak network situation

Is there any way to optimize audio when the network is not in good condition (v2.8.0)

Don't think there's anything that can be done here, audio streaming is already requires very little bitrate, and we prioritize audio over video server-side. You can try lowering the bitrate even more with the AudioTrackPublishOptions, but I don't think that will significantly improve things.

thinks

Thank you for your answer


Update units-turtle.lua

Added missing coordinated for NPC Tansy Sparkpen in Stormwind.
Fixed coordinated for NPC High Elf Ranger in Stormwind.
Fixed coordinates for NPC Ranger Canarah Kim'Alah in Stormwind.
Fix coordinates for NPC Applebough in Stormwind.

Thanks for your PR :)
@Gurky-Kronos Can you please review these stormwind positions? I don't know where the initial values came from.

I think some ended up wrong because later changes to the map so I am assuming these are more correct. I noticed the other day when leveling a lot are moved up a bit from where they should be. Also there are some minimap issues in stormwind so this could be the cause as well.

@shagu I would say this can't hurt much to merge

Thanks :+1:


Add set_neq for UseStateHandle

Description
Added a set_neq method for UseStateHandle that will only cause a re render when value is different than already set
Fixes #2104
Checklist

[x] I have run cargo make pr-flow
[x] I have reviewed my own code
[x] I have added tests

Docs look good on the preview link

I think this implementation might not work reliably if the handle is moved into a callback / event listener.
(This might not be a good example, but is one I have on hand.)
use web_sys::window;
use yew::prelude::*;
use yew_router::attach_route_listener;
use yew_router::prelude::*;

#[derive(Routable, Debug, Clone, PartialEq)]
pub enum Route {
    #[at("/")]
    Home,
    #[at("/a")]
    A,
    #[at("/b")]
    B,
}

#[function_component(Content)]
fn content() -> Html {
    let pathname = use_state(|| window().unwrap().location().pathname().unwrap());
    let route = use_state(Route::current_route);

    let pathname_clone = pathname.clone();
    let route_clone = route.clone();
    use_state(move || {
        attach_route_listener(Callback::from(move |r: Option<Route>| {
            route_clone.set_if_neq(r);
            pathname_clone.set_if_neq(window().unwrap().location().pathname().unwrap());
        }))
    });

    html! {
        <>

{"Listener: "}{format!("{:?}", *route)}

{"Pathname: "}{pathname.to_string()}

            <Link<Route> route={Route::Home}>{"Home"}</Link<Route>>
            <Link<Route> route={Route::A}>{"A"}</Link<Route>>
            <Link<Route> route={Route::B}>{"B"}</Link<Route>>
        </>
    }
}

#[function_component(App)]
fn app() -> Html {
    let render_route = Router::render(|_| {
        html! {<Content />}
    });

    html! {<Router<Route> render={render_route} />}
}

fn main() {
    yew::start_app::<App>();
}

In the example above, the component will not rerender if the new value is / even if current path is not /.
You can replicate this by clicking: Home -> A -> Home

@futursolo
I looked more into your example.
attach_route_listener creates a new event listener. It makes sense that it gets stale because you create it only in the first render.
Here is how I would solve your problem:
Essentially you need to keep route_listener in use_state and call its setter every time route state changes using Use_effect.
(No need to cleanup like in react, because event listeners get clean up on Drop)
Here is the solution to your specific problem: https://github.com/voidpumpkin/yew-playground/tree/stale-agents
@mc1098 I don't think #2112 is even a real issue since in react world it works exactly like that.
Closures concept is just hard sometimes to wrap your head around.
PS:
Im not sure why yew has no use_memo or use_callback hook

Still i don't think this separate issue blocks this PR
Or you think a solution for #2112 would create a world where set_if_neq is not even possible to implement

Still i don't think this separate issue blocks this PR

Agreed.

[mc1098] Not letting this PR through because of this issue actually doesn't change the fact that the manual approach still has the behaviour you described.

I see set_neq as a convenience method for doing the check manually before using the set method, therefore if the behaviour is consistent between the two approaches then this PR is fine.
I agree #2112 needs to be resolved somehow but shouldn't block this PR because that wouldn't stop the bug from existing or really change how and when you'd hit this bug (it just might make it more convenient to do so).


GH-32: Add retry support into the processor

Fixes https://github.com/spring-cloud-stream-app-starters/httpclient/issues/32

Introduce a HttpclientProcessorProperties.Retry configuration
options
Apply Retry options to the internal RetryTemplate and use it in
the conditional RequestHandlerRetryAdvice bean which is applied to
the endpoint of the .transform() in the httpClientFlow definition
Verify in the HttpClientProcessorTests.TestRequestWithMethodExpressionTests
that provided retry options are applied and RequestHandlerRetryAdvice
is populated into an appropriate endpoint

Looks good. Tested the application with retry enabled and made sure that the retry works when there is an error. Merged upstream.


New version: minbrowser.min version 1.22.1

[X] Have you signed the Contributor License Agreement?
[X] Have you checked that there aren't other open pull requests for the same manifest update/change?

[X] Does your manifest conform to the 1.0 schema?

Microsoft Reviewers: Open in CodeFlow

Interesting, @oxygen-dioxide this package have been at Min.Min since February, ill be deleting this package


Added the ability to ignore messages from active window

Defaults to off. I really wanted the option to disable the spamming of my ongoing slow-paced private chats to my phone :)
Of course this has the danger of preventing notifications if Irssi is left idling at the window you would want notifications from, but hey it's optional...
Now what I really wanted was ignore_until_away_seconds -type of feature with actual idle-times (last user/screen/shell/term activity, not last irc-activity) but I didn't find bindings to such data.

On a second thought, this might be a pretty crappy feature because of the problem described. Feel free to reject :P

Thought about doing this feature, but I for one will not use it because of the aforementioned problem. I'm going to merge it anyway, too much options isn't that big of a problem.


Update ttnn.clip, Support for ttnn.clamp_min, ttnn.clamp_max

To Provide support for clamp_min, clamp_max
Update ttnn.clip and its dependant op logic

Ref Link : https://github.com/pytorch/pytorch/blob/a569a8ac4c1eaaf1c3f241b0c09a6ed072570a26/torch/_refs/init.py#L1903

Changing the Issue as clamp_min , clamp_max support is not required : https://github.com/tenstorrent/tt-metal/pull/13584 - Closing PR


Protractor testing

Hello there. Thanks for this great directive! i'm trying to test a form that uses ui ace editor and i can't programmatically send keys to the ace editor.
i'm using version 0.2.3 of ui-ace with angular 1.3.x and protractor 2.0
using the following won't work:
element(by.model('my-model')).sendKeys('some text');

I also tried using jQuery to send keys to the ace_editor to no avail. It seems like there should be some integration with Protractor so that it is easy to simulate sending keypresses to the editor.
If I'm missing something please let me know. Thanks!

Was this issue ever resolved?
I am trying to implement the same and the error I am getting is that Element is not User Editable.
Failed: invalid element state: Element must be user-editable in order to clear it.


[Suggestion] allow to set the Python version for python-app

Is your feature request related to a problem? Please describe.
When initializing a new python-app cdk8s automatically sets the Python version for the pipenv to 3.7. As I'm running Ubuntu 18.04 which comes with Python 3.6 by default I end up with a lot of warnings but the execution of cdk8s works just fine.
Describe the solution you'd like
As I didn't encounter any problems running cdk8s with Python 3.6 I suppose it is compatible with Python versions lower than 3.7. If that's true it would be nice to be able to set the desired Python version when executing cdk8s init python-app. Something like cdk8s init python-app --python-version 3.6 would be very nice.

Only python 3.7.7 and above is supported.


⚠ Bofrost.be has degraded performance

In a2f422d, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 2693 ms

Resolved: Bofrost.be performance has improved in 189bee2 after 15 minutes.


Delete the *aas resources (heat stack) before cleaning up the service VM

@mak-454 @ashutosh-mishra @Vikash082 @rukansari @kedarkulkarni

ok, got your point. We can give some more time and retries for delete. But unlike create, we have to continue with other cleanup even if delete stack fails. Will make this change.

Vikas comments will be taken care later


Map renderer TODO list

Merged in https://github.com/space-wizards/space-station-14/pull/3613

[ ] Making it run ~in 40 milliseconds~ faster (it takes me 35 seconds to run it locally, 2 minutes in CI and it only does one map file at a time for example).
[x] Icon smoothing.
[x] Layer direction.
[ ] RSI delays and animations.
[ ] Adding support for selectively rendering entities (including/excluding wires, including container contents).
[ ] Separating these different versions of the map into different images.
[x] Hiding the dummy client entity.
[x] Removing the submodule update.
[ ] Make it take entities into account for image bounds, not just the grid box.
[ ] Test with multiple grids.
[ ] Make it use os mesa and llvmpipe for off screen rendering. (when PJB compiles it)
[ ] Properly rendering entities that aren't 32x32
[ ] Decals https://github.com/space-wizards/space-station-14/pull/6754

it works with multiple grids btw


Apple M2 use version 4.6.1 eroor

1.use aeprject version 4.6.1
2.aeproject init box-dice-contract
3.aearoject env
node version 16

As it's closed does it mean the issue is resolved?

@thepiwo @marc0olo Yes, it was perfect. I rebooted the computer once and it magically stopped reporting errors 😁


VScode and Rstudio images progress to OOTB defaults

Move vs code, r-studio, and cuda r-studio to the base layer to be included as defaults
https://github.com/opendatahub-io/notebooks/tree/main/manifests/base
This would help users/dev to deploy the content directly from the kustomize base.

This was completed with: https://github.com/opendatahub-io/notebooks/pull/300
Thanks for working on this.
Closing this issue and marking as done.