RUMM-2659 editable additional attributes

What does this PR do?
Allow edition of custom attributes for RUM events.
Motivation
The context's additional attributes were immutable by default, meaning there was no way to edit them within the EventMapper callback.

Codecov Report

Merging #1089 (94730be) into develop (4cdbce3) will decrease coverage by 0.02%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##           develop    #1089      +/-   ##
===========================================
- Coverage    83.27%   83.25%   -0.02%
===========================================
  Files          273      273
  Lines         9342     9344       +2
  Branches      1501     1502       +1
===========================================
  Hits          7779     7779
- Misses        1146     1149       +3
+ Partials       417      416       -1

Impacted Files
Coverage Δ

...droid/core/internal/constraints/DataConstraints.kt
75.00% <ø> (ø)

...id/rum/internal/domain/event/RumEventSerializer.kt
99.07% <ø> (ø)

...oid/src/main/kotlin/com/datadog/android/Datadog.kt
81.97% <100.00%> (ø)

...ore/internal/constraints/DatadogDataConstraints.kt
94.67% <100.00%> (+0.07%)
:arrow_up:

...om/datadog/android/core/internal/utils/MapUtils.kt
100.00% <100.00%> (ø)

...id/log/internal/domain/event/LogEventSerializer.kt
95.00% <100.00%> (ø)

...droid/log/internal/user/DatadogUserInfoProvider.kt
100.00% <100.00%> (ø)

...android/rum/internal/ndk/DatadogNdkCrashHandler.kt
89.19% <100.00%> (+1.62%)
:arrow_up:

...acing/internal/domain/event/SpanEventSerializer.kt
90.32% <100.00%> (ø)

...android/log/internal/logger/TelemetryLogHandler.kt
75.00% <0.00%> (-25.00%)
:arrow_down:

... and 6 more


Contribution Flow: error message is in french

Describe the bug
While I actively set the interface to English, Credit Card related error messages are displayed to me in French (likely because it's my browser's default language).
To Reproduce
As a Signed In user, without a Credit Card stored on your account, with a browser language set to french and the Open Collective website set to English.

Go to 'https://opencollective.com/veganbrussels/contribute'
Click on 'Next step'
Click on 'Next step' again
Click on 'Next step' again

Current behavior
Credit Card error in French.
Expected behavior
Credit Card error in English.
Screenshots

This is because Stripe auto-detects the language if not provided. To fix it we have to provide the locale manually. See https://github.com/stripe/react-stripe-elements#props-shape-1

Let's do that.

@Betree  How is this suppose to work exactly? The docs doesn't really provide more information about the locale option. Do we just set locale to en?

@flickz It needs to match the current active locale.
So, if strings are currently in english, it should be effectively en. But if I french is activated, it should be fr, etc ...

locale is mentioned in this page. https://stripe.com/docs/stripe-js/reference
One way to test might be to to set the Open Collective interface to French, and test that Stripe errors are appearing in French.


Handle dynamic visual situations

Add a "black box" around image sliders and other animated content.

I'm closing this issue so we can archive this repository. It is a reference implementation, not a product to be used. See this comment on the README


PagerDuty Enhancement

Improvements to the PagerDuty service integration:

Adds the concept of alert levels that correspond to the PagerDuty trigger and resolved events
Includes the alert ID in the PagerDuty requests, instead of opening a new incident with every alert

Fixes #288

@nathanielc I think this is ready to go. The current functionality has changed so that a kapacitor.WarnAlert or kapacitor.CritAlert will send a trigger event to the PagerDuty API (opening an alert). All other kapacitor.AlertLevel types will send a resolve, resolving the alert.
Testing this with the PagerDuty API, on a critical alert:
{
  "client": "kapacitor",
  "client_url": "http://[::]:9092",
  "description": "cpu/kapacitor1 is CRITICAL",
  "details": "{\"Series\":[{\"name\":\"cpu\",\"tags\":{\"cpu\":\"cpu0\",\"host\":\"kapacitor1\"},\"columns\":[\"time\",\"time_guest\",\"time_guest_nice\",\"time_idle\",\"time_iowait\",\"time_irq\",\"time_nice\",\"time_softirq\",\"time_steal\",\"time_system\",\"time_user\",\"usage_guest\",\"usage_guest_nice\",\"usage_idle\",\"usage_iowait\",\"usage_irq\",\"usage_nice\",\"usage_softirq\",\"usage_steal\",\"usage_system\",\"usage_user\"],\"values\":[[\"2016-03-09T20:57:30Z\",0,0,174491.01,11.72,41.94,5.68,107.41,0,341.67,167.67,0,0,21.72131147540617,0,1.2295081967237784,0,34.73360655744749,0,42.213114754184005,0.1024590163935572]]}],\"Err\":null}",
  "event_type": "trigger",
  "incident_key": "cpu/kapacitor1",
  "service_key": "<SERVICE KEY>"
}

And then on an okay:
{
  "client": "kapacitor",
  "client_url": "http://[::]:9092",
  "description": "cpu/kapacitor1 is OK",
  "details": "{\"Series\":[{\"name\":\"cpu\",\"tags\":{\"cpu\":\"cpu0\",\"host\":\"kapacitor1\"},\"columns\":[\"time\",\"time_guest\",\"time_guest_nice\",\"time_idle\",\"time_iowait\",\"time_irq\",\"time_nice\",\"time_softirq\",\"time_steal\",\"time_system\",\"time_user\",\"usage_guest\",\"usage_guest_nice\",\"usage_idle\",\"usage_iowait\",\"usage_irq\",\"usage_nice\",\"usage_softirq\",\"usage_steal\",\"usage_system\",\"usage_user\"],\"values\":[[\"2016-03-09T20:57:50Z\",0,0,174499.04,11.78,42.13,5.68,112.7,0,347.57,167.71,0,0,81.52284263953392,0.30456852791859523,0.406091370558127,0,8.527918781720883,0,9.238578680197262,0]]}],\"Err\":null}",
  "event_type": "resolve",
  "incident_key": "cpu/kapacitor1",
  "service_key": "<SERVICE KEY>"
}

The only downside I can see here is that an .info will also resolve the alert, but I would assume that people won't want to be alerted on .info.

@rossmcdonald What if info alerts where just ignored by PagerDuty? Maybe log an error saying infos are ignore and then ignore it? That way infos are not side effecting and the concept of an informational alert doesn't work with PagerDuty since it will page someone. Thoughts?

Overall looks great, thanks for digging in.

@nathanielc I completely agree. Erring out will be much more straight-forward and ensure an alert is not accidentally resolved prematurely.
How does this look?
[cpu_alert:alert2] 2016/03/09 22:32:40 E! failed to send alert data to PagerDuty: AlertLevel 'info' is currently ignored by the PagerDuty service

:+1:


"Help Wanted" peewee.OperationalError: unable to open database file

Hi.
I am using this gorgeous app now for few weeks and really people thank you all for the effort. And with the last update and adding the multi account it got even better. But now to my issue. On my PC everything works without any problem. But I am trying to install it on the PC of my wife (Win10 64x, app version 0.34) and when I start the app it just says "Loading, please wait..." I am using a verified PTC account which works on my PC. When I opened the developer console in the app I have found this (I have replaced the win user name by "...") in the log:
server up: null
Error getting location, trying second provider PositionError
2016-09-03 06:36:49,467 [      MainThread][     runserver][    INFO] Parsed location is: 48.8178/2.2870/69.9708 (lat/lng/alt)
2016-09-03 06:36:49,470 [      MainThread][        models][    INFO] Connecting to local SQLite database
Traceback (most recent call last):
File "./run_map.py", line 36, in
main()
File "C:\Users...\AppData\Local\pokemon\app-0.3.4\resources\app\map\runserver.py", line 163, in main
create_tables(db)
File "C:\Users...\AppData\Local\pokemon\app-0.3.4\resources\app\map\pogom\models.py", line 900, in create_tables
db.connect()
File "C:\Users...\AppData\Local\pokemon\app-0.3.4\resources\app\packages.zip\peewee.py", line 3404, in connect
File "C:\Users...\AppData\Local\pokemon\app-0.3.4\resources\app\packages.zip\peewee.py", line 3316, in exit
File "C:\Users...\AppData\Local\pokemon\app-0.3.4\resources\app\packages.zip\peewee.py", line 3402, in connect
File "C:\Users...\AppData\Local\pokemon\app-0.3.4\resources\app\packages.zip\peewee.py", line 3658, in _connect
peewee.OperationalError: unable to open database file
Found location [49.4403,11.0809] by ipinfo.io

Any ideas how to make it work?
Thanks

No solution for this problem yet?


Side by Side matrices Are not populating correctly

A side by side matrix is

bad for usability but
used sometimes so we should support it (especially in our old surveys before we knew better)

Currenly qsurvey and qquestion are not building and handling these question types properly. Troubleshooting is required.
example in test build doc: intern_pre_tools$questions$QID3

very close on this
0753e2af3c55eb67f66826e588219accb643378f
The next step is to split the question id on the col number so join works properly for plotting with facets. the data are coming back nicely formatted.
NOTE: factors may still be buggy...
NOTE: currently %>% isn't importing properly into the package. look into how to do that properly.

I believe this is now fixed with
4f28d1f8a5c8f4e3bbeb65cf3c7624994d3df1f4
will test a bit more next week!!


⚠ ClamAV has degraded performance

In 83c80f6, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 469 ms

Resolved: ClamAV performance has improved in 256675f after 5 minutes.


fix ja.yml

The Japanese sentence ends with "。" At the end.
It is not a semicolon.
Others are doing so.

ありがとう!


-a only support up to 10 versions

With 1.7 release, 'credstash put foo bar -a' only support up to 10 versions.
After that 'credstash put foo bar -a' always update the value of 10th version,
and 'credstash get foo' always return the value of the 9th version.

The root of the issue here is that we store the version as a string, and when we ask DDB to sort by range key (version), it does so lexicographically (which is a reasonable thing to do), when we want it sorted numerically.
My knee-jerk response is that we should change the table schema to store versions as numbers instead of as strings. That would be a breaking change and require that everyone recreate their DDB table. We could make it easy by having a migrate function that copies all the old table values to the new table, but it's still going to be a hassle.
The alternative would be to fetch all the versions for a given secret, and then do the sort locally. The big downside here is that as people have wither lots of secret versions, or larger secrets, this operation will consume more read capacity.
Both options have downsides.
I'm a fan of doing a simple migration command and moving version to numbers.
What do other people think?

Changing version to numbers will also break credstash for anyone using a non-numerical versioning scheme, so dates, code names, and n.n.n releases would be right out.
From a cursory glance at the versioning code, I think there might be another alternative. Could you modify the autoversioning (line 468) to left-pad integer strings so that they are of a fixed size large enough to accommodate a common value of sys.maxint? Though it feels a bit hacky, it's not a suggestion given out of laziness; rather, it would offer support for the most use cases, and the overhead & complexity is relatively small.
I'm also curious to know if any credstash users actually are using custom, non-numerical versioning schemes. If nobody is doing that, then I'm +1 to migration to numbers.

Assuming dynamo sorts what dom proposes properly, that seems to be the best all-around fix.  Given that this is a version value that credstash is maintaining, creating an arbitrary rule that has the side effect of correct behavior seems permissible.
One caveat would be that if credstash ever got ported to a different datastore, sort results might be different.

I had thought about left-padding, but couldn't figure out how far to go. sys.maxint on amazon linux or something is probably a good bet. Thanks for the suggestion @dom-at-luminal. I'll play with that

Just fyi, I am seeing this in version 1.6 as well.

@chothia what we're looking at doing is having the -a flag left-pad numbers with zeros so that they sort properly, and then have a migration script to pad existing versions. See #54
probably going to merge it this weekend. Just want to do more testing and update docs

Is this bug fixed? We are looking at deploying credstash here at work, so this issue is of some interest.

@michel-slm there is a PR open with a fix. I want us to add some clarification to the README about how auto-versions will work after the patch. The patch should get merged in in the next few days


Better examples

It would be great to see some more detailed examples on the website.
For example, how to add the LocationComponent / puck, waypoints, right click menus, offline maps combined with GeoJSON, etc.
Would love to use the library but piecing together working code from the API docs is quite painful.
best wishes

@owenson Could you make one issue (or multiple issues) with a specific example for a specific platform you would want to see?
There is #516 as a general improve docs tracking issue.

These examples may probably be re-used.
https://github.com/mapbox/ios-sdk-examples

The Amazon Location Samples are also published under a permissive license (MIT): https://github.com/aws-samples/amazon-location-samples

These examples can probably be re-used.
https://github.com/mapbox/ios-sdk-examples

do we need to ask for permission here @louwers ? Do you know?

@ovivoda No copyright. So, no!

These Mapbox iOS examples are CC0, see https://github.com/mapbox/ios-sdk-examples/blob/main/LICENSE.md. Practically this means we can use the examples on our docs website without attribution. When forking the examples, we are still going to keep the original License and will just add MapLibre contributors to the top. See other repos for how we did it...

Good news: some issues (with bounties) for a Getting Started guide, adding annotations and showing the current location for both platforms were just created.
Please feel free to share more ideas for examples here (but write one or two sentences with what the example should cover).


2 forms cannot exist at same time

I found this by accident; no real use case. But it is unexpected.  The second form simply overwrites the first one.  Is the service somehow stateful, and the data from the second instance gets stored in the service, overwriting the configuration of the first instance?
Here's a simple component to reproduce:
import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'simple-component',
  template: `
    <json-schema-form [data]="jsonFormObject1"
                      [options]="jsonFormOptions"></json-schema-form>

    <json-schema-form [data]="jsonFormObject2"
                      [options]="jsonFormOptions"></json-schema-form>

  `
})
export class SimpleComponent implements OnInit {

  jsonFormObject1: object = {
    data: {
      username: 'JoeSmith',
      password: '1234'
    }
  };

  jsonFormObject2: object = {
    first_name: 'Jane',
    last_name: 'Doe',
  };

  constructor() { }

  ngOnInit() {
  }

  jsonFormOptions: any = {
    addSubmit: true, // Add a submit button if layout does not have one
    loadExternalAssets: true, // Load external css and JavaScript for frameworks
    formDefaults: { feedback: true }, // Show inline feedback icons
    debug: false,
    returnEmptyFields: false,
  };
}

I met the same issue, weird.

I found the old version 0.5.0-alpha.2 is OK, above versions fail. While the layout is different in this version.

That's odd.
OK, since it was working before, I've changed this from "enhancement" back to "bug."
I don't know what's causing it, but I'll try to figure it out.

Maybe add the providers from module to the json-schema Component
This way, each service will have its own instance for each json-schema component and manage data for each instance individually.

@dschnelldavis any update on a fix for this bug? i am facing the same issue. :)


Update/Add MicrosoftPowerBIMgmt

Tool name
MicrosoftPowerBIMgmt
Tool license
https://github.com/microsoft/powerbi-powershell/blob/master/LICENSE
Add or update?

[X] Add
[ ] Update

Desired version
1.2.1111
Approximate size
No response
Brief description of tool
Powershell Modules to interact with Microsoft PowerBI
See https://learn.microsoft.com/en-us/powershell/power-bi/overview?view=powerbi-ps
URL for tool's homepage
https://github.com/microsoft/powerbi-powershell
Provide a basic test case to validate the tool's functionality.
No response
Platforms where you need the tool

[X] Azure DevOps
[ ] GitHub Actions

Runner images where you need the tool

[ ] Ubuntu 20.04
[ ] Ubuntu 22.04
[ ] Ubuntu 24.04
[ ] macOS 12
[ ] macOS 13
[ ] macOS 13 Arm64
[ ] macOS 14
[ ] macOS 14 Arm64
[ ] macOS 15
[ ] macOS 15 Arm64
[X] Windows Server 2019
[X] Windows Server 2022

Can this tool be installed during the build?
Install-Module -Name MicrosoftPowerBIMgmt

Tool installation time in runtime
2s
Are you willing to submit a PR?
No response

Hi @hmayer1980 - Thank you for bringing this issue to our attention. We will look into this issue and will update you after investigating.

Hi
We have evaluated the feasibility of including Microsoft Power BI Management nevertheless, we perfer maintaining lightweight OS images for users, considering its inclusion of BI  in the operating system images unfeasible due to the larger size of the installation.

Hi
We have evaluated the feasibility of including Microsoft Power BI Management nevertheless, we prefer maintaining lightweight OS images for users, considering its inclusion of BI  in the operating system images unfeasible due to the larger size of the installation.


chore(master): release 1.2.45

:robot: I have created a release beep boop
1.2.45 (2023-08-15)
Miscellaneous

deps: update dependency phpunit/phpunit to v10.3.2 (956bcd0)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wayofdev/php-cs-fixer-config/releases/tag/v1.2.45 :sunflower:


Error : tile [0,0] reference different palette.make: *** [gfx.s] Error 1

when I edit and save the sample image of the sonic background with photoshop
I see this error
--> executing plugin IMAGE...
Error: tile [0,0] reference different palette.make: *** [gfx.s] Error 1
rm gfx.s
the image is indexed and is the same size as the original

Not a problem from rescomp but from your image : a tile (8x8 pixels block) cannot address different palette, it looks like it's the case here. You should use a image software which allow to manipulate the palette (as GIMP for instance) to fix that issue


requestPointerLock not working for webview element

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

VS Code Version: 1.68.1 (user setup)
OS Version: Windows_NT x64 10.0.19044

Explanation
The htmlElement.requestPointerLock() method does not seem to work when called from within a VSCode webview. I'm writing an extension that uses a custom webview. Inside the webview, I would like to have a button that I can mousedown on to drag, but anytime the mouse leaves the webview, the dragging calculations stop too.

Here's an example of the current limitations that I'm trying to work around:

requestPointerLock() would be the perfect way to solve this. However, it appears to be broken inside vscode webviews.

here's what happens when I try to use requestPointerLock()
![requestPointerLock-failure](https://user-images.githubusercontent.com/2544493/177401170-db7d5d94-68a8-4d61-8c3c-6cd70c5a7003.gif)

Steps to Reproduce:

download and extract the
sample extension project
Open the sample project in vscode, run npm install, and launch the debug session (which opens the extension host)
click the "Explorer" tab in vscode, and then click the "Calico Colors" section.
Click anywhere inside the green box. The pointer is supposed to get locked inside, but instead there's a javascript error.

The root of the issue is that the call to requestPointerLock() throws an exception saying "The root document of this element is not valid for pointer lock.". What can be done to fix this in vscode? I've tested this functionality in a plain electron shell, and it works. So this appears to be a vscode issue.
Here's a snippet of code from the attached project to show how I'm attempting to use it.

Click me to lock the cursor

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!

You could try using pointer capture instead of pointer lock, I'm not sure it's supported by VSCode but if it does it may fix the issue.


how to use conditions in cluster_security_group_additional_rules

Description
I think something is weird. I can't handle conditions in cluster_security_group_additional_rules.
Reproduction Code [Required]
cluster_security_group_additional_rules = {
    ingress_argocd = var.env_type == "dev" ? {
      description = "argocd"
      protocol    = "tcp"
      from_port   = 443
      to_port     = 443
      type        = "ingress"
      cidr_blocks = var.argocd_cidr
    } : {}
}

when use this code, terraform show below error.
Error: Inconsistent conditional result types
│
│   on cluster.tf line 69, in locals:
│   69:     ingress_argocd = var.env_type == "dev" ? {
│   70:       description = "argocd"
│   71:       protocol    = "tcp"
│   72:       from_port   = 443
│   73:       to_port     = 443
│   74:       type        = "ingress"
│   75:       cidr_blocks = var.argocd_cidr
│   76:     } : {}
│     ├────────────────
│     │ var.argocd_cidr is a list of dynamic, known only after apply
│     │ var.env_type is a string, known only after apply
│
│ The true and false result expressions must have consistent types. The 'true' value includes object attribute "cidr_blocks", which is absent in the 'false' value.
╵

and if I use null,
cluster_security_group_additional_rules = {
    ingress_argocd = var.env_type == "dev" ? {
      description = "hybe-b2c-prod b2c-web-prod EKS VPC (argocd)"
      protocol    = "tcp"
      from_port   = 443
      to_port     = 443
      type        = "ingress"
      cidr_blocks = var.argocd_cidr
    } : null

also there's error like below.
Error: Attempt to get attribute from null value
│
│   on .terraform/modules/eks/main.tf line 179, in resource "aws_security_group_rule" "cluster":
│  179:   protocol          = each.value.protocol
│     ├────────────────
│     │ each.value is null
│
│ This value is null, so it does not have any attributes.
╵
╷
│ Error: Attempt to get attribute from null value
│
│   on .terraform/modules/eks/main.tf line 180, in resource "aws_security_group_rule" "cluster":
│  180:   from_port         = each.value.from_port
│     ├────────────────
│     │ each.value is null
│
│ This value is null, so it does not have any attributes.
╵
╷
│ Error: Attempt to get attribute from null value
│
│   on .terraform/modules/eks/main.tf line 181, in resource "aws_security_group_rule" "cluster":
│  181:   to_port           = each.value.to_port
│     ├────────────────
│     │ each.value is null
│
│ This value is null, so it does not have any attributes.
╵
╷
│ Error: Attempt to get attribute from null value
│
│   on .terraform/modules/eks/main.tf line 182, in resource "aws_security_group_rule" "cluster":
│  182:   type              = each.value.type
│     ├────────────────
│     │ each.value is null
│
│ This value is null, so it does not have any attributes.

[x] ✋ I have searched the open/closed issues and my issue is not listed.

Versions

Module version [Required]:

Terraform version:
Terraform v1.2.9
on darwin_amd64

provider registry.terraform.io/gavinbunney/kubectl v1.14.0
provider registry.terraform.io/hashicorp/aws v4.31.0
provider registry.terraform.io/hashicorp/cloudinit v2.2.0
provider registry.terraform.io/hashicorp/helm v2.6.0
provider registry.terraform.io/hashicorp/kubernetes v2.13.1
provider registry.terraform.io/hashicorp/null v3.1.1
provider registry.terraform.io/hashicorp/random v3.4.3
provider registry.terraform.io/hashicorp/time v0.8.0
provider registry.terraform.io/hashicorp/tls v4.0.2

Expected behavior
I don't know how to search null variable.
And I can't use count.

oy, this is why workspaces are not to be used like this. but if you insist on going this route:
  cluster_security_group_additional_rules = {
    ingress_argocd =  {for k,v in {
      description = "argocd"
      protocol    = "tcp"
      from_port   = 443
      to_port     = 443
      type        = "ingress"
      cidr_blocks = var.argocd_cidr
    } : k => v if var.env_type == "dev" }
}

@bryantbiggs thanks for your reply.
I edit code following you, but stiil here's error.
 Error: Unsupported attribute
│
│   on .terraform/modules/eks/main.tf line 179, in resource "aws_security_group_rule" "cluster":
│  179:   protocol          = each.value.protocol
│     ├────────────────
│     │ each.value is object with no attributes
│
│ This object does not have an attribute named "protocol".
╵
╷
│ Error: Unsupported attribute
│
│   on .terraform/modules/eks/main.tf line 180, in resource "aws_security_group_rule" "cluster":
│  180:   from_port         = each.value.from_port
│     ├────────────────
│     │ each.value is object with no attributes
│
│ This object does not have an attribute named "from_port".
╵
╷
│ Error: Unsupported attribute
│
│   on .terraform/modules/eks/main.tf line 181, in resource "aws_security_group_rule" "cluster":
│  181:   to_port           = each.value.to_port
│     ├────────────────
│     │ each.value is object with no attributes
│
│ This object does not have an attribute named "to_port".
╵
╷
│ Error: Unsupported attribute
│
│   on .terraform/modules/eks/main.tf line 182, in resource "aws_security_group_rule" "cluster":
│  182:   type              = each.value.type
│     ├────────────────
│     │ each.value is object with no attributes
│
│ This object does not have an attribute named "type".

locals {
  cluster_security_group_additional_rules = { for k, v in {
    ingress_argocd = {
      description = "argocd"
      protocol    = "tcp"
      from_port   = 443
      to_port     = 443
      type        = "ingress"
      cidr_blocks = var.argocd_cidr
    } } : k => v if var.env_type == "dev"
  }
}

actually I have more rules in commonly used.
so I tried,
locals {
  dev_sg_rules = {
    common_rule = {
      ...
    }
    ingress_argocd = {
      ...
    }
  }

  prod_sg_rules = {
    common_rule = {
      ...
    }
  }
}

then,
cluster_security_group_additional_rules = var.env_type == "dev" ? dev_sg_rules : prod_sg_rules

but it does not work.
│ Error: Inconsistent conditional result types
│
│   on cluster.tf line 143, in module "eks":
│  143:   cluster_security_group_additional_rules = var.env_type == "dev" ? local.dev_sg_rules : local.prod_sg_rules
│     ├────────────────
│     │ local.dev_sg_rules is object with 3 attributes
│     │ local.prod_sg_rules is object with 2 attributes
│     │ var.env_type is a string, known only after apply
│
│ The true and false result expressions must have consistent types. The 'true' value includes
│ object attribute "ingress_argocd", which is absent in the 'false' value.

apologies but this isn't a module issue here and I would look at restructuring your code to be flatter and not utilize workspaces which raises issues like this. I tested this and it worked as expected so maybe you can adapt that for your use case if you want to continue down that path


Question about setting maxOutstandingByteCount to null on FlowControlSettings

Sorry for the question but I didn't get any answers to my SO question.
What are the ramifications of setting the max-outstanding value on FlowControlSettings to be null or some large integer? Does this only impact client side memory storage of outstanding GUIDs or other telemetry? Anything else we need to worry about?
We have our own flow-control that will limit the outstanding messages but we need to vary the record-count based on our own triggers.
Thanks.

@igorbernstein2, do you have a good answer for this?

I'm not familiar with the pubsub client in specific, but I can try to help with FlowController in general.
Removing it will impact client side memory as well as the service itself. If you have a large number of outstanding RPCs, then it implies that your application is sending RPCs faster than the service can send replies. If you don't throttle your qps, then your service will never catch up.  The general idea of the FlowController is to temporarily block your calling thread from sending more requests while the service is processing the already sent ones.
Does that help at all?

The Pub / Sub service has a maximum number of outstanding messages.  Once you hit the limit, you will not receive any new messages.  We encountered this limit around 1 million outstanding messages.
There may be a Pub / Sub service maximum on outstanding bytes as well.

Thanks for the response @igorbernstein2 .  Sorry to not respond sooner.
I suspected as much.  We need more fine grained control over the outstanding messages so we block the client threads which seems to be working.  Thanks again.


Add path and readonly options to cupyx.optimizing.optimize

Implements #3574.

pfnCI, test this please.

Jenkins CI test (for commit 5bf15fc43811df1819d5ce06cdf850df265df57d, target branch master) succeeded!

Thanks!
pfnCI, test this please.

Jenkins CI test (for commit e253f3fe5f4526c41a750249987ca5a87c7830a6, target branch master) succeeded!


Remove Karma + Mocha + Chai + Sinon setup

Just use Jest!
It used to be super complicated to string the right series of tools together to get a cohesive and full featured JS test suite — which is why we previously did it for you. But now Jest exists, solves these issues and is our strong recommendation.
This cuts out a TON of dependencies, and significantly lightens up the package.
Also removes some old README files that have since been consolidated.

👍


Sync github action from nuttx side

Summary
especially, the change from https://github.com/apache/incubator-nuttx/pull/6472
Impact
The bot could generate the PR to update the dependence automatically
Testing
Pass CI

@naveensrinivasan please take a look.

@pkarashchenko could you merge this PR?


Added Opportunity Stage to State Mapping custom metadata type and updated the code to utilize the new CMT

Critical Changes
Changes
We've created a new metadata type which is a mapping between an Opportunity Stage to an Opportunity State. The code has been updated to utilize this new Custom Metadata Type.
Issues Closed
New Metadata
Custom Metadata Type: "Opportunity_Stage_to_State_Mapping__mdt"
Layout: "Opportunity  Stage to State Mapping Layout"
Deleted Metadata

@KietTruongSFDO and @jbrandolinisf I was taking a look at this PR just because it hits the CRLP Metadata API classes, but I noticed some files in there that seem completely unrelated to what this is supposed to be. There's a CCI task and some related files for loading BDI data, some other file, a change to gitignore. Is there a possibility that this branch has some extraneous stuff in it that should not be here? Maybe a manual merge was done off an incorrect branch (I think that would explain what I'm seeing). Also, can the PR name be updated to reflect the functionality instead of just the branch name?

@KietTruongSFDO and @jbrandolinisf I was taking a look at this PR just because it hits the CRLP Metadata API classes, but I noticed some files in there that seem completely unrelated to what this is supposed to be. There's a CCI task and some related files for loading BDI data, some other file, a change to gitignore. Is there a possibility that this branch has some extraneous stuff in it that should not be here? Maybe a manual merge was done off an incorrect branch (I think that would explain what I'm seeing). Also, can the PR name be updated to reflect the functionality instead of just the branch name?

@force2b I've updated the PR name to be more descriptive. In regards to the extra files, I think it's because another branch got merged in and I hadn't updated this PR yet. I just did a pull and updated this branch and those files are no longer in the PR.

Not in a loop, and it is why we are initializing sets from the metatada for
calls to the API.
John Brandolini
Senior Member of Technical Staff, Engineering | Salesforce.org
Phone:<PHONE_NUMBER>
On Wed, Jun 5, 2019 at 7:08 PM Michael Smith<EMAIL_ADDRESS>wrote:

@force2b commented on this pull request.
In src/classes/OPP_StageMappingUtil.cls
https://github.com/SalesforceFoundation/Cumulus/pull/4297#discussion_r290969039
:

   } else {

       metadataRecordList = [Select Id, Opportunity_Stage__c, Opportunity_State__c FROM Opportunity_Stage_To_State_Mapping__mdt];

   }

   return metadataRecordList;

}

/*******************************************************************************************************

@description Creates the finalized state record if there are no finalized records. It utilizes the

"Opportunity Stage when Fully Paid" field as the Opportunity stage for the finalized state.

********************************************************************************************************/
public static List<Metadata.CustomMetadata> createFinalizedOppStageToStateRecord(List<Metadata.CustomMetadata> metadataToInsert) {

   npe01__Contacts_And_Orgs_Settings__c contactAndOrgCustomSetting = UTIL_CustomSEttingsFacade.getOrgContactsSettings();

   // Only create the finalized opp stage to state record if there's no existing finalized record.

   Integer finalizedCount = [Select Count() From Opportunity_Stage_To_State_Mapping__mdt Where Opportunity_State__c =: FINALIZED_STATE_VAL];

I've also noticed that SOQL against the CMT object is slower than with
SObjects. Definitely something to keep in mind if you're doing any queries
against this in a loop.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/SalesforceFoundation/Cumulus/pull/4297?email_source=notifications&email_token=AKSRLQYBVBDZFHI67E3ORM3PZBBNTA5CNFSM4HRH5OQ2YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOB2XEA2A#discussion_r290969039,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKSRLQZXHIFIQ4OI43QYVTLPZBBNTANCNFSM4HRH5OQQ
.

@force2b - Anything further we need to do with this, or can you approve it?

Hey @force2b, any other changes necessary for this PR?

@KietTruongSFDO Looks to be fine. I can re-review after all of John's requested changes have been made if you'd like.

@force2b  I believe I've taken care of @jbrandolinisf 's requested changes already. John, let me know if I've missed something.

@force2b I misread the PR, I thought you were a required reviewer. Sorry about that!

No problem @KietTruongSFDO

Hi @davisagli, why was this PR closed?

@KietTruongSFDO my apologies, I deleted the feature/scuevo/crlp-api-retrieve-rollup-state branch because it didn't have any changes compared to master, but that automatically closed this PR (I didn't realize that there was an open PR targeting that branch).
I'll try to undo that but is there a reason this PR is targeting the feature/scuevo/crlp-api-retrieve-rollup-state branch instead of master?

@davisagli I was targeting that branch because at the time, I needed some changes to "CMT_MetadataAPI" that Patrick Yan had changed at the time. That was many weeks ago, so maybe those changes are already in master at this point since you mentioned there's no diff compared to master.

@KietTruongSFDO it looks like feature/scuevo/crlp-api-retrieve-rollup-state was merged into master on June 20: https://github.com/SalesforceFoundation/Cumulus/pull/4197

We will need to recreate this PR from master, right @davisagli

@jbrandolinisf Based on my understanding of the situation, it would make sense for this PR to target master. You can do that by editing the PR and changing its base branch; you don't need to open a new PR.

Done, and thanks for the tip!

@jbrandolinisf thanks for switching the base to master!


how to use log tracking in turn server ?

in my project , i need to print the deviceid when turn server given a relay address to deivce, and also when a device lost conntions with turn server so that i can debug device status in ELK.
but i didn’t  find a hook function , struct or lifecycle function in turn server source code to solve this problem. so i help me ,thanks!
that is all i need:

when turn server allocate a relay address, i need print "deviceid jnsdau73hasd get relay addr success: <IP_ADDRESS>:38811 "
when the allocation manager delete a  allocation, i need print  "delete deviceid jnsdau73hasd relay addr success: <IP_ADDRESS>:38811 "

AFAIK there is indeed no hook in pion/turn for event reporting.
Question is, whether you want a quick and dirty solution, or you want to get your feet wet and do some coding:

the ugliest solution would to parse the pion/turn logs, but in general I'd not recommend this unless you need something badly that works right now (and I'm not sure we get a log every time an allocation is closed))
the allocation manager calls the user-supplied PacketConnConfig.AllocatePacketConn when making a new connection so you can report new allocations from this function (but at this point it is not 100% that the allocation will be successful), and you can return an overloaded net.PacketConn that will report the deletion of the allocation when the underlying RelayConn is closed (assuming that your relay connections will be properly closed, which is not always the case); see an example here
the best solution would be to create general event-reporting framework in pion/turn (and maybe in the entire pion/webrtc framework): I'd prefer OpenTelemetry or Prometheus events, both allow you to trace what's going on from a central telemetry service (see again the above example)

Thanks @rg0now for answering the question with so much detail :)
@gsmini I will close the issue as your question seems to be answered.
For general support, I also recommend that you join the Pion community Slack channel which is linked in the repo's README.


Can't figure out how to get RRType from Resource Record

Trying to cache results and using RData abstraction to get type is not obvious. Need a way to get a u16 rrtype.

Added a method in 1912667 this should be good enough for your task.


Fixes #2: Loosen /opt/jboss perms

@goldmann Thanks for merging - I was expecting this to trigger a build on Docker hub but no such luck... can you trigger manually please?

Yes, I'll trigger it right now. None of the JBoss' Docker images are triggered automatically. It would be impossible to maintain it.


moveOnStartChange causes unnecessary state updates

I'm using react-draggable in my application to scroll an item in a viewport (i.e. dragging the background scrolls the view), and also for custom scrollbars around the viewport. Needless to say, I needed to use the moveOnStartChange attribute to keep these two manners of scrolling the same viewport consistent. I found, however, that there was some really buggy behavior in react-draggable, and it stemmed from the fact that componentWillReceiveProps triggers too often.
If you declare your component like this:
<Draggable start={{x: 0, y: 0}}>...</Draggable>

then every time the render() method is called, the componentWillReceiveProps method is called because, technically, a new object is being passed as the 'start' property.
The solution I have come up with is to change lines 471-473 in the componentWillReceiveProps method to:
if (newProps.moveOnStartChange && newProps.start &&
    (newProps.start.x !== this.props.start.x || newProps.start.y !== this.props.start.y))
{
    this.setState(this.getInitialState(newProps));
}

Thoughts?

Yeah, I really dislike how moveOnStartChange works in general. It is an unfortunate problem in React when you start managing state for the programmer; when he wants to override it, it gets hairy.
See the coreRefactor branch where I've started addressing this concern by splitting the component into <DraggableCore>, which relies on you to update its x and y, and <Draggable>, which builds upon <DraggableCore> to deliver the existing API.

Hmmm, I'm not really able to read the new code effectively because it's in .es6 format, but making the translation state for the drag public is a great solution. It briefly crossed my mind while implementing that I wished that that state were accessible.
When is that refactor planned to be shipped?

I believe it's complete, but I'm working it into React-Grid-Layout and
React-Draggable beta versions to ensure the API is useful before tagging
it. Should be a week or so. I believe the README's updated, give it a
shot and see if it works for you.
On 7/14/15 4:30 PM, jmuerle wrote:

Hmmm, I'm not really able to read the new code effectively because
it's in .es6 format, but making the translation state for the drag
public is a great solution. It briefly crossed my mind while
implementing that I wished that that state were accessible.
When is that refactor planned to be shipped?
—
Reply to this email directly or view it on GitHub
https://github.com/mzabriskie/react-draggable/issues/72#issuecomment-121396063.

The README in the coreRefactor branch is the same as in the main branch as far as I can tell. Is that the README you were referring to?

You're right. I haven't yet updated it. It's very simple though - <Draggable> API stays the same, <DraggableCore> relies on its start prop to be told where to go. It will call back with drag data for you but you have to update it manually.

Do you have an update on the status of the coreRefactor branch?

I'm really happy to see that the coreRefactor branch is still being worked on! I'll give <DraggableCore> a try :smile:. When do you expect this to get merged into master?

Oh, hopefully soon. I'm trying to get React-Grid-Layout back to its original functionality on coreRefactor branch, which will signal that the new version is usable enough for release.

It looks like the coreRefactor branch hasn't been touched for almost a month now. Do you have a target date in mind for when you would like to merge that into master?

I'm working on migrating an existing project that was using moveOnStartChange. Now that it's removed, what is the recommended way of programmatically updating the position?

Use <DraggableCore>, which doesn't keep any state but calls back on drag with its deltas. Use the callback to apply deltas to the position that you keep inside your parent component, and modify that position at will. Apply the position to <DraggableCore> by setting its left/top or by using transform or transform3d.

Got it! Thanks for the quick reply.


Would be nice if a Ctrl+C (and other aborts) would leave the console in a nice state

Currently the font is set grey after you abort the script on the password prompt.

Okay, I will add it. Thanks

Merged the pull request after patching, it's fixed now


"show compare" and "show compare | display cli" differs

debian@khn-dev> show compare
debian@khn-dev>

And:
debian@khn-dev> show compare | display cli
set devices device crpd1
set devices device crpd1 enabled true
set devices device crpd1 conn-type NETCONF_SSH
set devices device crpd1 user admin
set devices device crpd1 addr <IP_ADDRESS>
set devices device crpd1 config
set devices device crpd1
set devices device crpd1 enabled true
set devices device crpd1 conn-type NETCONF_SSH
set devices device crpd1 user admin
set devices device crpd1 addr <IP_ADDRESS>
set devices device crpd1 config

The reason is that compare_dbs uses fork/exec as well, and then the output pipes do not work.
compare_dbs() can be rewritten using xml_tree_diff_print()

Reworked the show compare for xml and text  (well beyond the aim of the issue req)

Verified.


ImportError: cannot import name 'notebook_utils' from 'alphafold.notebooks' (unknown location)

I'm trying to run AlphaFold in the Colab interface for the first time and the first two code blocks ran fine, however, I get this import error when I try running the 3rd block of code with my amino acid sequence:

Not sure how to fix this since it seems to be a directory error and not a dependency error.
Thoughts on how to get to find the correct location?
Thanks!
Tayla

Hi! Is there a chance that your kernel died after running cells 1 and 2? If so, and it restarted, this would mean that cells 1 and 2 would need to be re-run from the start. Could you try running the notebook again?

I think that worked! Thanks!

Import error: cannot import name 'get_pae_json' from 'alphafold.notebooks.notebook_utils' (/usr/local/lib/python3.10/site-packages/alphafold/notebooks/notebook_utils.py)
any one can help?


Cannot play audio file

Add-on works great using TTS, this works flawlessly:
service: hassio.addon_stdin
data:
  addon: c7744bff_ha-sip
  input:
    command: dial
    number<EMAIL_ADDRESS>    menu:
      message: Testing announcement.
      tts_language: en
      post_action: hangup
action: hassio.addon_stdin

However, this does not:
service: hassio.addon_stdin
data:
  addon: c7744bff_ha-sip
  input:
    command: play_audio_file
    number<EMAIL_ADDRESS>    audio_file: '/config/www/test.mp3'
action: hassio.addon_stdin

Just tried running it three time and this is all that shows up in the logs:
--end msg--
| 18:02:35.048738 [ ] Warning: call not in progress<EMAIL_ADDRESS>| 18:02:35.048877 [ ] No active calls.
| 18:03:09.911058 [ ] Warning: call not in progress<EMAIL_ADDRESS>| 18:03:09.911262 [ ] No active calls.
| 18:03:20.571608 [ ] Warning: call not in progress<EMAIL_ADDRESS>| 18:03:20.571823 [ ] No active calls.

Am I missing something really obvious?

Yes, you are. To play an audio file you first need to establish a call, which the command "play_audio_file" does not. It is meant to be used in callbacks on the web-hook.


Static pods or kni networking infra

This PR intends to move all the podman+systemd net infra services to static pods

Will tackle haproxy in a follow-up PR

The PR is working fine for here.
/LGTM

Build FAILURE, see build http://<IP_ADDRESS>:8080/job/dev-tools/535/


Train on my own dataset with only one class

❓ Questions and Help
Hello, thanks for this great repository.
I would love to fine tune the model e2e_mask_rcnn_X_101_32x8d_FPN_1x_caffe2.yaml on my own dataset and to detect just one class instead of the 81 classes of COCO dataset.
Could you briefly explain how and where in the code to prune my network outputs and how to organize the dataset?
Thanks a lot

Hi,
This is a similar question as in https://github.com/facebookresearch/maskrcnn-benchmark/issues/15 , where a number of solutions are proposed there.
In order to avoid duplicate issues, I'm closing this one in favor of https://github.com/facebookresearch/maskrcnn-benchmark/issues/15, but let me know if you have further questions, either by commenting here or in https://github.com/facebookresearch/maskrcnn-benchmark/issues/15.


verilog style guidelines: Logical versus Bitwise

I have read this part of the verilog style guidelines:
Logical vs. Bitwise
Use logical constructs for logical comparisons, bit-wise for data.
Logical constructs (!, ||, &&, ==, !=) should be used for all constructs that are evaluating logic (true or false) values, such as if clauses and ternary assignments. Use bit-wise constructs (~, |, &, ^) for all data constructs, even if scalar.
I reread the style guidelines again on this. I concluded that the guidelines could be roughly rewritten like this: "For control path statements, use logical operators. For data path statements, use bit wise operators, even if the data is a single bit."
So for control logic, these examples apply:

if (fifo_pop && enable[0]) then
assign fifo_push = (fifo_not_full && enable) ? fifo_write : 1'b0;
assign fifo_push = fifo_not_full && enable && fifo_write;

For data path:

assign write_bus[31:0] = raw_bus[31:0] & {32{write_valid}}; (vector case)
assign write_bus[0] = raw_bus[0] & write_valid; (scalar case)

This issue has been opened to clean up any ambiguities in the style guidelines.

I also like the proposed changes, they make sense intuitively to me.

Hi @mwbranstad ,
thanks for opening this issue. I think your third example for control logic
assign fifo_push = fifo_not_full && enable && fifo_write;

is the only case in which your suggestion is different from the current guidelines which recommend
assign fifo_push = fifo_not_full & enable & fifo_write;

To me, using bitwise operators in this case seems more natural as you generate a 1-bit signal by combining multiple 1-bit signals. Of course, if you are describing the same functionality using the synthax as in your Example 1 or 2, the boolean operations are more natural as you formulate a boolean expression. We could probably argue for hours about this and personal preferences... But I think the really important point here is that - unfortunately this together with some reference papers got removed from the style guide in a previous PR - what logical/boolean operators do with X inputs.
The previous style guide was inconsistent. On one hand, it stated that, "whenever evaluated in a boolean context, X always resolves to false."  Logical operators would thus not propagate X: if one of the inputs is X, the output would be false.
On the other hand, the previous style guide also stated "Any logical operation involving X always propagates the X". This matches also the   SystemVerilog Language Reference Manual (Section 11.4.7 Logical Operators, and Section 11.4.8 Bitwise Operators) which says that logical operators always forward the X whereas bitwise operators mask X to 0 if the second input is 0 or leaves the X if the second input is 1, X, Z (vice versa for OR, |).
Therefore, and because we want to propagate X assignments (more precisely, we don't assign X, but if there is an X value we do not want to silently resolve it into something else), I support your proposal.
However, before moving forward, I would be happy if someone involved in writing this section on X usage in the original styleguide could weigh in, maybe I got something wrong here. Maybe @sjgitty ?
For reference, here are the mentioned papers:

"I'm Still In Love With My X!" by Stuart Sutherland
"Being Assertive With Your X" by Don Mills

@vogelpi I tend to agree with @mwbranstad on the suggestion - My default is always decisions are logical expressions (if/else)
and you are correct this is an argument that has no "true" answer.
Opentitan have x-propagation enabled as default. which will ensure that X is forwarded.
which ensures the behavior you are worried about masking.
and with x propagation there are a ton of other cases where x is not propagated. so in my opinion enforcing a (to me) unnatural use of bitwise operators does not win us much!
if( my_logic) begin
...
end else begin
..
end

if my_logic is x
the else branch will be selected every time.

Extra information on X prop: Just discussed this topic with a Synopsys verification FAE. He basically said the Rasmus's example is how the LRM describes how the statement should behave. However, VCS has a feature (used to have to pay extra, but now included) to propagate the X instead. He also said that there is a performance penalty for enabling that feature. I am quite certain that the assignment equivalent will always propagate the X and still use standard simulator operation.

@mwbranstad the xprop is still extra for VCS (at least we don't have the XPROP license at WDC)
but we do have it for xcelium.
the point I was trying to make is while the argument from @vogelpi is true.
ît only includes a very small fraction of the problem with x propagation.
if this is considered an actual hazard we might want to enforce the use of
(x=y)?a:b;
over if/ else statements
this is not feasible if you ask me - but the risk of an x there is just as big as for an assign.

Let me add my two cents here as well (and sorry for the late reply, I have been out for some time).

regarding what "feels right": this seems to be a highly religious topic :). I am happy with both styles, but based on the feedback in this thread and based on what I have seen internally, I get a sense that more people would prefer boolean operators when decisions are formed, since this seems to convey design intent more clearly, and allows you to distinguish between control- and datapath.

regarding the X-prop issue - this is unfortunately another can of worms. @vogelpi is right that the behavior of X-prop is dependent on which operators you use, and whether you use them within an if/else statement or within an assign statement. However, as @rasmus-madsen points out, if we want our RTL code to properly propagate X in all cases, we would have to rewrite most of our if/else and case statements as well, which I think is infeasible and inconvenient. This is one of the reasons why we chose to go for a purely assertive coding style where X literals are banned from RTL and KNOWN assertions are mandatory on all module outputs. This assertive coding style together with our linting solution should minimize the likelihood of creating spurious Xes (which may or may not be squashed somewhere in our logic), since mishaps like undriven signals, width mismatches, indexing operations in unaligned arrays etc. are flagged immediately. As an additional safety precaution, @weicaiyang is running the simulation regressions in pessimistic x-propagation mode, which forces the tool to propagate Xes even through if/else blocks, and this should give us some additional confidence that we did not miss any spurious Xes in the code.

@sjgitty would you like to give the final verdict here? I think it would be good if we could soon converge on this rather religious topic, and I feel like most of us are in favor of @mwbranstad's proposal.

Thanks to Pirmin for providing the links to the papers, I re-read the
Sutherland paper to make sure I remembered the concerns.
I do agree with Michael that the X-prop is definitely a whole other can of
worms.  My previous work had a style guide that mandated what Rasmus said:
ternary operators instead of if statements (except for the declarations of
registers where you need the if-statement to get proper register
inference), and mandated defaulted case statements - but we also were
pre-SystemVerilog "logic" types so the behavior was ~slightly different.
We also banned multi-bit results appearing in the select item of the
ternary to fix one of Sutherland's objections.  Sutherland generally
doesn't like ternary statements for readability, but I actually prefer them
at this point having worked this way for so long.  I realize it is
infeasible to re-code all of what we have now to use some style guide like
that, and I also realize it's a bit of personal preference/religious debate.
I do think it's important to have a fairly aggressive/pessimistic x-prop
strategy in the RTL, along with the KNOWN assertions, to flag any generated
X quickly, which I think we now have.  When/if we do any gate-level
simulation we'll need to make sure that the X-clearing (via reset/load) is
done sufficiently to let us get "lift off" of the gate-level sim.  There
are also issues coming out of low power sleep states that we'll have to
make sure are handled.   I haven't looked closely at how our assertions are
bundled, but it would be nice to be able to use many of the assertions at
the gate-level as well - unfortunately some of the "KNOWN" assertions will
fail because of time-zero/first-cycle X resolution in a gate-level sim, I
suspect.  We found that for doing glitch/fault-attack simulation testing
the gate-level netlist was a necessary tool, though not the preferred one.
To me, it appears that either logical or bitwise will be OK, I am just more
accustomed to logical operators for this usage, but I also recognize that
they both have advantages and drawbacks.  I think one of the reasons that I
like logical operators is that we have consistency across all 3
of @mwbranstad 's examples - it feels strange to me to have logical
operators for 2 of the 3, and bitwise for the 3rd, where you might
transform the RTL code for some reason (from example 3 to example 1, or
vice versa) and then need to change the operators used because of the
construct used to express the same kind of conditional/logic flow.
Feels like someone (@sjgitty?) will end up being nominated to pick a
direction and we'll all go along?
On Mon, Feb 10, 2020 at 6:16 PM Michael Schaffner<EMAIL_ADDRESS>wrote:

Let me add my two cents here as well (and sorry for the late reply, I have
been out for some time).

regarding what "feels right": this seems to be a highly religious
topic :). I am happy with both styles, but based on the feedback in this
thread and based on what I have seen internally, I get a sense that more
people would prefer boolean operators when decisions are formed, since this
seems to convey design intent more clearly, and allows you to distinguish
between control- and datapath.
2.
regarding the X-prop issue - this is unfortunately another can of
worms. @vogelpi https://github.com/vogelpi is right that the
behavior of X-prop is dependent on which operators you use, and whether you
use them within an if/else statement or within an assign statement.
However, as @rasmus-madsen https://github.com/rasmus-madsen points
out, if we want our RTL code to properly propagate X in all cases, we would
have to rewrite most of our if/else and case statements as well,
which I think is infeasible and inconvenient. This is one of the reasons
why we chose to go for a purely assertive coding style where X literals are
banned from RTL and KNOWN assertions are mandatory on all module outputs.
This assertive coding style together with our linting solution should
minimize the likelihood of creating spurious Xes (which may or may not be
squashed somewhere in our logic), since mishaps like undriven signals,
width mismatches, indexing operations in unaligned arrays etc. are flagged
immediately. As an additional safety precaution, @weicaiyang
https://github.com/weicaiyang is running the simulation regressions
in pessimistic x-propagation mode, which forces the tool to
propagate Xes even through if/else blocks, and this should give us some
additional confidence that we did not miss any spurious Xes in the code.
@sjgitty https://github.com/sjgitty would you like to give the final
verdict here? I think it would be good if we could soon converge on this
rather religious topic, and I feel like most of us are in favor of
@mwbranstad https://github.com/mwbranstad's proposal.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/lowRISC/style-guides/issues/21?email_source=notifications&email_token=AJBZS7BX57A4HISBGOGNTTTRCIDBRA5CNFSM4KMHN56KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELLAQZY#issuecomment-584452199,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJBZS7G7MKTFQ4D3A5JPPODRCIDBRANCNFSM4KMHN56A
.

Sorry for the slowness on the response here. This has been in the "P2 to respond
to when I have a moment to weigh in" category which often gets lost in the tide.
My concern with the guidance suggested by @mwbranstad is that the two provided
examples are hard to split without knowing designer intent, which would normally
have to come via signal naming, comments, or finding where the signal propagates
to to determine if it is datapath or control. Quite often a signal can propagate as both.
The two I'm referring to:
3. assign fifo_push = fifo_not_full && enable && fifo_write;
2. assign write_bus[0] = raw_bus[0] & write_valid; (scalar case)
Both are scalar assignments which today's Style Guide say should use & only.
While I agree that the intent for the first one - especially after declaring it as
a control path in the example just above it - is clear here, would it be for the following:
assign data_bit = fifo_not_full && enable && fifo_write;
or
assign ctrl_signal = raw_bus[0] & write_valid;
These are a bit contrived and obviously written to confuse the point,
but just indicating that it isn't always a clear distinction.
So that leaves me inclining towards the blanket statement of today. However, I'll
kick the can slightly down the road (and promise to respond more quickly) and
suggest we could a) relax the guidance and split the baby by allowing both based
upon "designer intent" (like we've done for "intended-to-be-modified parameters"
(which has its own issue I am about to jump in on)); or b) someone (@mwbranstad
perhaps) could propose a PR that rewords the section to indicate definitively how one
could define the control vs datapath context (the test: can you write a script to
scrape our code database and change all the "incorrect usages of bitwise"?)
Otherwise I'm inclined to live with it as is.
Re: x-prop, as others have indicated, I think it is a bigger concern and I believe we
have a variety of safeguards already in place.
Re: those two "lost" references, I'm fine with putting those back in as @vogelpi suggested.
I'll give this a few days to echo and try and resolve next week.

Thanks everybody for weighing in and for clarifying the situation with X propagation. It looks like switching from bitwise to boolean operations alone would not make a big difference regarding X propagation, and we have other, more suitable means to detect X in simulation.
To be honest, the different behaviour for X inputs between boolean/bitwise operators would have been the only reason for me to switch from bitwise to boolean for such cases. I am fine with the current guidance, also because it is IMO very simple and clear.
I agree with @sjgitty 's suggestion on how to move forward. I will prepare a PR to add back the two references and mention that we recommend other means to detect X in simulation.

Ok, sgtm @vogelpi!

After re-reading the overall response from @sjgitty, there appears to be a case to go either way. It seems that at least one acceptable solution is to write a comment to explain a particular control path, and then use boolean operators. Comments should be used in general for any code, so this seems like a reasonable approach.
If this an acceptable resolution, I would like to see the guidelines updated, and close this issue.

@mwbranstad how about this very brief verbiage:
In some cases, when scalar values are used as boolean arguments after
assignment, it is acceptable to assign these with logical operators,
preferably with a comment to its purpose. Example:
// logical assignment for boolean test
assign request_valid = !fifo_empty && data_available;

always_comb begin
  if (request_valid) begin
    output_valid = 1'b1;
  end else begin
    output_valid = 1'b0;
  end
end

I personally would not like to emphasize it more than that else we'll
muddy it too much. Thoughts?

@sjgitty I think this is fine, since it showing the link between two style types, and comments are always better than no comments. The first statement is still consistent with the statement that control logic will use boolean operators.


Profiling tool, add in job to stage, duration, executor cpu time, fix writing to HDFS

This has a few  things in it.

change file writer to work with writing to HDFS
Add support for profiling tool printing job to stages to sqlid
Add profiling tool printing the sql duration and executor cpu time, and shows with contains dataset

Output for new profiling tables look like:
Job Information:
+--------+-----+------------+-----+
|appIndex|jobID|stageIds    |sqlID|
+--------+-----+------------+-----+
|1       |0    |[0]         |null |
|1       |1    |[1, 2, 3, 4]|0    |
+--------+-----+------------+-----+

SQL Duration and Executor CPU Time Percent
+--------+------------------------------+-----+------------+-------------------+------------+------------------+-------------------------+
|appIndex|App ID                        |sqlID|SQL Duration|Contains Dataset Op|App Duration|Potential Problems|Executor CPU Time Percent|
+--------+------------------------------+-----+------------+-------------------+------------+------------------+-------------------------+
|1       |application_1603128018386_7759|0    |11042       |false              |119990      |null              |68.48                    |
+--------+------------------------------+-----+------------+-------------------+------------+------------------+-------------------------+

build

build

build


🔥🛠[Hotfix] Buy tab crashes [Merge into Develop]

Hotfix
v3.5.0 has a critical bug where the app crashes when tapping on the Receive or Buy tabs
Approach
Fix was trivial adding new release tag Hotfix-v3.5.1

This is prior to the process for main


bump kernel in AL2 to 5.10 for rest of k8s versions

Issue #, if available:
Description of changes:
Bumping the kernel version to 5.10 across the board. newer kernel versions have already been released in GPU variants even on 1.23, so there is little foreseeable risk here
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Testing Done

See this guide for recommended testing for PRs. Some tests may not apply. Completing tests and providing additional validation steps are not required, but it is recommended and may reduce review time and time to merge.

/ci
+workflow:os_distros al2
+workflow:k8s_versions 1.23

/ci
+workflow:os_distros al2
+workflow:k8s_versions 1.23

/ci
+workflow:os_distros al2
+workflow:k8s_versions 1.21,1.22,1.23

/ci
+workflow:k8s_versions 1.21,1.22

/ci
+workflow:k8s_versions 1.21


Slimerjs not working

hi, does anyone realize it, slimerjs not work in manet http://manet.herokuapp.com/?url=google.com&engine=slimerjs

Hi,
I agree. When you put --engine=slimerjs, manet doesn't work and you get all the time the error, whatever the website: {"error":{"error":"Can not capture: google.com"}}


[ms-go1.22-support] Error out when encoding hash objects not implemented by the built-in providers

This is a backport of #212 to the ms-go1.22-support branch.

macOS runners are failing because just today there is a scheduled burnout. See https://github.com/golang-fips/openssl/pull/213.


Add support for crawling css, js and images

[x] Save images correctly.
[x] Process relative paths (mostly used in css).

May be we should change the logic for determining whether to create directory with index.html.
Currently we use "file extension", but we may use a content-type to match text/html.

Not for now..


Integrate gitleaks into PR pipeline

Problem statement
We have gitleaks enabled but this runs as a pre-commit hook and a scheduled GitHub action. But we do not run PRs through gitleaks. We should enable this too
Acceptance criteria
The commits that are part of Pull Requests are scanned by gitleaks

This one should only scan the master branch


Update Makefile help command to work on all platforms

Closes #221
This PR switches the style and format of the python script in the Makefile that generates the help message text. The old script was not formatted correctly to regex match commented commands written with the structure we use in our Makefile, and leveraged $$VAR syntax in the command itself that does not work in Windows environments.
In order for this to work in the intended way, we had to treat the Python script as a single line - otherwise, because we're invoking the script as a command, newlines would trigger running a new command entirely. That's why the script ends each line with ; \.

@pjbull this is ready for review!


revert aggregate log removal + fix html render

This PR hopes to address 2 issues:

removal of the aggregated log for QNA for triagers
render HTML properly

Confirmed it works: https://github.com/Gregory-Pereira/taxonomy/pull/4#issuecomment-2143943674

/cc @vishnoianil @nerdalert can we merge this


Repetition.lparse fails when min repeat count is 0.

There is an off-by-one error in the code; match_count should be initialized to 0, since it is a loop counter.  And one needs to distinguish between repeat.max 0 and None.

Fixed in 3a73ca32e31ca7601518fb037b5651e520e7da78.


Console prompt is not displayed after opening the terminal

VS Code Version: 1.53.2
OS Version: Windows 10 x64

Steps to Reproduce:

Open terminal
See that no prompt is displayed on the first line. It is displayed only after I press Enter.

More details from me:

4k monitor with 225% scaling
vscode user settings related to terminal:

	"terminal.integrated.scrollback": 50000,
	"terminal.integrated.shell.windows": "cmd.exe",

If I commented the line "terminal.integrated.shell.windows" (powershell is used instead of cmd) - issue has changed a little bit: console prompt is not displayed until I wrote any symbol. Interesting thing is that this issue with powershell appears only once after vscode has been started. If I close terminal (exit) and open it again - console prompt is displayed correctly.
If I open cmd.exe in Windows (not in vscode), console prompt is displayed correctly.
"terminal.integrated.scrollback" line doesn't impact to this issue.

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

Does this happen for you if you use Insider's?

Tested with vscode-insider's:

Version: 1.54.0-insider
Commit: 192c817fd350bcbf3caecae22a45ec39bae78516
Date: 2021-02-19T05:14:28.632Z

The same behavior. Issue is reproduced.

Thanks for that info. When did this begin happening?

Issue is reproducible on 1.57.1 only with "terminal.integrated.defaultProfile.windows": "Command Prompt"

Thanks for that info. When did this begin happening?

I have investigated it a bit:

vscode version
Same issue with powershell
Same issue with cmd

>= 1.56.0
no reproduce
reproduced (no input prompt)

1.55.2
reproduced (no input prompt till I start typing)
reproduced (no input prompt)

1.55.0
reproduced (no input prompt till I start typing)
reproduced (no input prompt)

1.53.0
reproduced (no input prompt till I start typing)
reproduced (no input prompt)

1.50.0
reproduced (no input prompt till I start typing)
reproduced (no input prompt)

1.45.0
reproduced (no input prompt)
reproduced (no input prompt)

1.35.0
reproduced (no input prompt)
reproduced (no input prompt)

So, looks like since 1.56.0 the issue has been fixed for powershell, but not for "Command Prompt".

More information about my system:

OS Name:
Microsoft Windows 10 Enterprise LTSC 1809

OS Version:
10.0.17763 N/A Build 17763

This looks like an issue with our old terminal backend "winpty", going forward we are focusing our efforts on the new backend "conpty" which is build by the Console team at Microsoft and should fix many issues with the terminal under Windows. You can read more about getting ConPTY here.
/duplicate https://github.com/Microsoft/vscode/issues/45693


icons: Replace fa-globe icon with a custom globe icon.

I confirmed that column issue was preexisting, so that can be a separate follow-up PR.  It'd be great if you can prioritize that.
Merged with these changes, thanks @amanagr!
diff --git a/static/js/message_view_header.js b/static/js/message_view_header.js
index 51811e1cff..3995d79fae 100644
--- a/static/js/message_view_header.js
+++ b/static/js/message_view_header.js
@@ -35,6 +35,9 @@ function make_message_view_header(filter) {
     message_view_header.title = filter.get_title();
     message_view_header.icon = filter.get_icon();
     if (message_view_header.icon === "globe") {
+        // This is a bit hacky, but it works as a way to communicate
+        // to the HTML template that we need to use the different HTML
+        // required for the globe icon.
         message_view_header.web_public_stream = true;
     }
     if (filter.has_operator("stream") && !filter._sub) {
diff --git a/templates/zerver/help/web-public-streams.md b/templates/zerver/help/web-public-streams.md
index 18e29475ba..a822fba976 100644
--- a/templates/zerver/help/web-public-streams.md
+++ b/templates/zerver/help/web-public-streams.md
@@ -17,8 +17,7 @@ Zulip web application without needing to create an account.
 Users who wish to post content will need to create an account in order
 to do so.

-Web-public streams are indicated with a globe () icon.
+Web-public streams are indicated with a globe () icon.

 ## Enabling web-public streams in your organization

I also added c710d18ec59dfc369d0aa9756377ef62529042cf to fix a bug I noticed with the gear menu while reviewing this.

And also 7cc553b75da12fb371c6bceca802d8ae8ddcd79b for a small visual thing.

Opened #21283


Select question ui

Updated drop zone area
Moved add section to bottom
Visual defect fixes
Added select question UI and angular rework to fix safari issue

I've rebased and fixed the conflicts for the second time. It would be nice to get this merged now.

@alexmorris Is this ready for review and merge now?

nope, on cleanup duty

On 23 Nov 2015, at 15:59, Dan Hilton<EMAIL_ADDRESS>wrote:
@alexmorris https://github.com/alexmorris Is this ready for review and merge now?
—
Reply to this email directly or view it on GitHub https://github.com/ONSdigital/eq-author/pull/94#issuecomment-158978937.


Implement gdip_get_display_dpi on Windows using older Win32 API.

@monojenkins whitelist

I am not particularly happy about this PR, so comments are welcome. Right now it removes the "#define NOGDI" for Windows headers and resolves all the conflicts caused by that. The unfortunate side effect is that it is more prone to be broken by name clashes when someone develops on non-Windows systems and chooses to name a function with same name as existing Win32 API. It will be caught by the CI, but could be annoying nonetheless.

...and I should definitely find a way to enable more warning in the Windows builds to spot calls to undeclared functions.

Another alternative approach is to go the Carbon route, create a separate .c file with gdip_get_display_dpi_win32 and #include <windows.h> there.


AWS (MSK + EMR) to Azure

Can you provide us a document or reference architecture which will be helpful to migrate AWS (MSK +EMR) to Azure?

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

ID: f0edc8be-5f9c-4146-17a3-08f88d3bcd48
Version Independent ID: 3d390731-26cf-3a8e-a11c-e73a3efccf4e
Content: An introduction to Apache Kafka on HDInsight - Azure
Content Source: articles/hdinsight/kafka/apache-kafka-introduction.md
Service: hdinsight
GitHub Login: @hrasheed-msft
Microsoft Alias: hrasheed

Duplicate of #66267


[2.x] Remove request helper from TenantManager

I've removed request() helper from TenantManager's init method because it's called only from single place (from middleware) and there we have $request already.

The middleware change is nice because it's more explicit and uses a variable instead of a helper. But I'd keep the default value in init() for convenience and backwards compatibility.

As you wish. Just added |null type in DocBlock

I was thinking that removing the default wouldn't really break anything, but I think it's a nice "fallback", when no domain is specified and this is called perhaps in some custom middleware.


reset doesn't reset to original version

When calling connect-deps reset it resets the package to the version the linked package had and not to the original version the package.json file had.
I think a proper fix would be to read in the original package.json and preserve the version string for resetting it.

really ?
this https://github.com/hugomrdias/connect-deps/blob/2a0c9e01af9bc4faae37c66d612b969ee3582751/cli.js#L70 doesn't do that ?

This is still an issue. Here are the steps to reproduce (I used npm).
$ git clone https://github.com/ipfs/js-ipfs-mfs --branch v0.12.0
…
$ git clone https://github.com/ipfs/js-ipfs-unixfs-importer --branch v0.39.11
…
$ git clone https://github.com/ipfs/js-ipfs-unixfs-exporter --branch v0.37.7
…
$ cd js-ipfs-mfs
$ /home/vmx/src/pl/misc/connect-deps/cli.js link ../js-ipfs-unixfs-importer ../js-ipfs-unixfs-exporter
✔ Linking ../js-ipfs-unixfs-importer
✔ Linking ../js-ipfs-unixfs-exporter
$ /home/vmx/src/pl/misc/connect-deps/cli.js connect
✔ Packing ipfs-unixfs-importer
✔ Packing ipfs-unixfs-exporter
✔ Installing dependencies: file:/tmp/resetbug/js-ipfs-mfs/.connect-deps-cache/ipfs-unixfs-importer-0.39.11-1564745336554.tgz file:/tmp/resetbug/js-ipfs-mfs/.connect-deps-cache/ipfs-unixfs-exporter-0.37.7-1564745336952.tgz
$ /home/vmx/src/pl/misc/connect-deps/cli.js reset
✔ Resetting normal dependencies<EMAIL_ADDRESS><EMAIL_ADDRESS>✔ Cleaning up
$ git diff
diff --git a/package.json b/package.json
index fa733c4..ed64186 100644
--- a/package.json
+++ b/package.json
@@ -61,8 +61,8 @@
     "interface-datastore": "~0.6.0",
     "ipfs-multipart": "~0.1.0",
     "ipfs-unixfs": "~0.1.16",
-    "ipfs-unixfs-exporter": "~0.37.6",
-    "ipfs-unixfs-importer": "~0.39.9",
+    "ipfs-unixfs-exporter": "^0.37.7",
+    "ipfs-unixfs-importer": "^0.39.11",
     "ipld-dag-pb": "~0.17.2",
     "joi-browser": "^13.4.0",
     "mortice": "^1.2.1",

I propose that we parse the package.json file and replace the version directly there and then do an npm install without any arguments. I tried that locally and it seems to work.

I would like to avoid changing package.json manually. Is there any flag on the yarn/npm cli that help with this?

Wow it changed the symbol didn't notice that at first...
Yarn does the same thing ?

Can you make sure you have the latest version of npm and yarn ?

I happens with the latest npm version (I haven't tried yarn).
Though I think manipulating the package.json would be the right behaviour. If you have a certain version range in your package.json, and you do an npm install package@version-range it will of course install the latest version. As you have run install it will also update the package.json. So it is the correct behaviour.
When manipulating the package.json directly, it will also take (hopefully) the package-lock.json correctly into account.


[DOCS] Documentation for this constraint

This is based on my discussion with on Discord followed-up by https://github.com/facebook/flow/issues/452#issuecomment-513224097
I thought this was important and common enough to be worth documenting. Note that it may be quickly deprecated depending on what happens with https://github.com/facebook/flow/pull/7807

Thanks for taking the time to write this up! However, I talked with the team, and I'm not sure we'd like to put this workaround in our official documentation. Using an unstable part of the type system to hack around an unimplemented part just seems unwise.
We do intend at some point to build the ability to annotate the this type. Until then, you're welcome to use your workaround but I'm afraid we'd rather avoid putting this in the docs.


What's the difference between this project and the one below? Are they copied from each other

例行检查

[x] 我已确认目前没有类似 issue
[x] 我已确认我已升级到最新版本
[x] 我已完整查看过项目 README，尤其是常见问题部分
[x] 我理解并愿意跟进此 issue，协助测试和提供反馈
[x] 我理解并认可上述内容，并理解项目维护者精力有限，不遵循规则的 issue 可能会被无视或直接关闭

问题描述
What's the difference between this project and the one below? Are they copied from each other
https://github.com/MartialBE/one-api
复现步骤
What's the difference between this project and the one below? Are they copied from each other
https://github.com/MartialBE/one-api
预期结果
What's the difference between this project and the one below? Are they copied from each other
https://github.com/MartialBE/one-api
相关截图
如果没有的话，请删除此节。

they are forked project of https://github.com/songquanpeng/one-api，under MIT License


Notion

Added analysis results to the Business Case and SWOT/Ansoff matrices.

Added analysis results to the Business Case and SWOT/Ansoff matrices.


Left sidebar border colour incorrect in dark mode

Border colour should be matched to the other borders on the page.

Resolved in commit 7bc4676.


[Bug]: Loaded Plugins not shown in Site Health > Info > MU Plugins

Description of the bug
The primary plugins screen shows all the loaded MU plugins, however I would expect the Site Health > Info > Must Use Plugins section does not show the plugins loaded by the MU Loader.
Reproduction instructions

Go to Tools > Site Health
Navigate to the "Info" tab
Expand the 'Must Use plugins' section
Plugins listed here do not include those loaded by the MU Loader

Expected behavior
The Site Health > Info > Must Use Plugins section should show the same list as the Plugins > Must Use section, including those loaded by this loader.
Environment info
MU Loader v1.3.1
WP v6.3.1
Relevant log output
No response
Additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

ENahnced for the understanding an example:
Three plugins in the mu-plugins directory:

The plugin page in the admin area:

The site health information:

The filter hook plugin_auto_update_debug_string should be the right point to enhance the missing information.
https://github.com/WordPress/WordPress/blob/0ed09d9b4b8d60240dfc3955e06ea380b9bfa013/wp-admin/includes/class-wp-debug-data.php#L1084


Wrong method names in API documentation and example notebook

In both the API documentation and the example notebook: "add_cost" and "add_constraint" should be "add_costs" and "add_constraints."

It turns out the API documentation is incomplete/outdated. For example, there is no documentation on the motile.plot module.

The API documentation is up-to-date with the main branch, but ahead of the latest PyPI release. The changed function names (#63 - issue and #108 - closed PR) and moving plotting functionality to the motile_toolbox library (#105 - issue and #110 - open PR) are recent changes in preparation for releasing a more stable Version 1.
That said, we do manually select the classes to document in the API, which is definitely subject to getting outdated. Are there also missing Cost and Constraint classes? Or just the plotting, which we are going to move.
We can also reconsider if the docs should be deployed only on release, to avoid confusion for users who install from PyPI.

Thanks, Caroline. Yes, it will be helpful to have the documentation matching the release.
Costs and Constraints are there. I only noticed plotting was missing at the moment.


Add optional S3 notifications

This PR includes S3 bucket notifications. These are only created if var.notification_enabled is set to true.
Customer will need to supply an SNS topic ARN, and a list of notification events.

I actually think the defaults are OK as discussed on Slack; given that notifications_enabled is used conditionally, the values that it relies on need to be optional, and that's where those defaults come in - it's my understanding that they have to be valid defaults given the type that's set by the variable.

The PR still has two outstanding things to my mind:

It needs the unit tests updating - test/s3_bucket_creation_test.go.
The terraform that creates the bucket for the unit tests also need updating - test/unit-test/main.tf

Since we're adding some code for notifications we should create them to test; we'll need to add an SNS topic and configure the unit test to use the topic for notifications.


Aggregation innacuracies

premature optimization is the root of all evil
-- Donald E. Knuth

The spatial aggregation suffers from a numeric problem that affects how points are assigned to clusters in tiles of high zoom levels and far from the origin of coordinates.
The problem, gratuitously introduced by yours truly, is that the expression to compute the aggregation resolution (size of the cells), originally CDB_XYZ_Resolution(CDB_ZoomFromScale(!scale_denominator!)) (here for resolution 1) was optimized as !scale_denominator!*0.00028.
In theory that expression makes sense, and by looking at how mapnik seems to compute it it should be accurate.
But for some reason I can't understand yet, the values of !scale_denominator! seem to be rounded to 6 significant digits before they are injected in the SQL code.
Now, we compute grid cells for a point x, y as gx=floor(x/cell_size) gy=floor(y/cell_size)
to adscribe each point to an aggregation cell (cluster).
An inaccuracy in cell_size will accumulate as we get away from the origin, and when the coordinate values are much greater than the cell_size this will be a problem.
This table shows for Z levels from 1 to 20, and resolution = 1, the maximum error (at 180 degrees longitude from the origin or latitude 85) in meters and as percentage of the cell size that occurs when assigning points to cells.
This means that points are "moved" this distance when aggregated (so they can end up in the wrong cell). (remember this is the maximum, error increases linearly from the origin)

z
cell size
error m
error %

1
78272.0
9.0
0.012

2
39136.0
62.0
0.16

3
19568.0
5.0
0.025

4
9784.0
24.0
0.24

5
4892.0
24.0
0.49

6
2446.0
0.86
0.035

7
1223.0
0.86
0.07

8
611.0
45.0
7.0

9
306.0
45.0
15.0

10
153.0
8.0
5.0

11
76.0
28.0
37.0

12
38.0
45.0
118.0

13
19.0
14.0
72.0

14
10.0
16.0
164.0

15
5.0
43.0
901.0

16
2.0
4.0
164.0

17
1.0
4.0
327.0

18
0.6
4.0
655.0

19
0.3
90.0
30157.0

20
0.15
15.0
9968.0

For resolutions higher than 1 the error increases too, add the logarithm of the resolution to the zoom level to find the corresponding error, e.g. for resolution = 4 use the row for zoom+2.
Note that the expression CDB_XYZ_Resolution(CDB_ZoomFromScale(!scale_denominator!)) even thoug it uses the rounded scale denominator does not suffer from any imprecision: the zoom level is computed first (which can be determined unambiguosly from the approximate scale since it is a discrete value) and then the resolution for the zoom level is computed accurately. Using this expressions the error are negligible: (extract of the table)

z
cell size
error m
error %

1
78272.0
8.3e-10
1.1e-12

2
39136.0
8.3e-10
2.1e-12

3
19568.0
8.3e-10
4.2e-12

....

18
0.6
8.3e-10
1.4e-07

19
0.3
8.3e-10
2.8e-07

20
0.15
8.3e-10
5.6e-07

We also have !pixel_width! and !pixel_height!. These are more precise than !scale_denominator! but still less precise than the CDB_XYZ_Resolution expression. For example, here are values for some zoom levels I've measured and the resulting errors (we see error can get big too in extreme cases):

z
pixel_width
error m
error %

1
78272.0
4.0
0.0055

5
4892.0
2.0
0.034

10
153.0
8.0
5.0

14
10.0
4.0
38.0

20
0.15
10.0
6928.0

I've been writing some tests to detect this problems.
The best solution seems to use CDB_XYZ_Resolution.  I have yet to benchmark this solution to see if optimizations are required. :grimacing:
While testing this I've detected some troublesome accuracies in !bbox! which affects #889

But for some reason I can't understand yet, the values of !scale_denominator! seem to be rounded to 6 significant digits before they are injected in the SQL code.

If you are talking about Mapnik, since it's C++ and it's using streams (<<) it'll use the default precision which is 6 by default.

Wow, that would explain it. Thanks @Algunenano

Funny that we reach this at almost the same time: https://github.com/mapnik/mapnik/pull/3942
Do you we should backport it or we should wait for a 3.1/4 release?


New Apps require Push-Link-Button

New Apps, like the 2. gen Android App find the bridge,
but won't get past waiting for the user to press the Push-Link-Button on the Bridge.
Same happens for the Luminance Hue App for Linux(relies on phue Phyton library),
which throws an exception at the Push-Link screen:
http.client.RemoteDisconnected: Remote end closed connection without response

Can you send a pull request that presses the emulated button automagically?

I have to dig into the code first, as I don't have profound knowledge about the hue api yet

Do you have a reference code of how the hue bridge works?
Because i just tried this Java based Hue Bridge Emulator on my computer, and it behaved strange:
It does have an implementation to emulate the press the Link Button, however the 2. gen Hue App didn't find it at all.
The 1. gen Hue App found it, but then asked to push the Link Button:
So I (virtually) pressed the button, and it connected and worked afterwards.
When i use the ESP8266 based bridge with the 1. gen App, it doesnt ask for the press of the Link button, so I wonder if there already is some kind of implementation for that here?

I also mainly studied the Java based Hue Bridge Emulator. Philips has some documentation, too.

Seems to be working with both iOS apps as of 1ad3705

I have an issue with this with the original android app..
Could you help me?

Please describe the issue in detail, and state the exact app version.

I believe i have the same problem. I use Wemos D1 mini pro with 60 leds. I setup pixelCount to 60 and NUM_PIXELS_PER_LIGHT to 20.  I start the android official up, the bridge is detected, but i cannot turn the lights on. As a secondary issue, i have 6 lights, instead of 3 (i expect to be pixelCount / NUM_PIXELS_PER_LIGHT). I don't believe the app is the issue, because i tried also manually with curl.

No of the apps i tried are working (able to pair).. They discover the hue bridge but are not able to pair..
The original hue app (https://play.google.com/store/apps/details?id=com.philips.lighting.hue2) requests me to push "link button".. but there is no such thing in code.. I'm not sure if there is some external button that i need to connect.
I'm using esp-12e

Hello, i did some research and i found that the linking works in the way that the HUE app sends post request to http://[IP]/api
After that the HUE bridge must respond with a username which the app can use to access the bridge.. in this case
[{"success":{"username":"api"}}]
so i constructed following html:
<form action="http://[IP]/api" method="POST">
    <input type="submit" value="Submit">
</form>

if i launch this html in browser on my phone and hit submit i get an url not available error.
If i enter the same url to a browser (e.g. do a GET request) http://[IP]/api i will get a response so the esp is available on network.
If i try the same page on my PC it works as expected, [{"success":{"username":"api"}}] is returned
I was thinking that some csrf policy on android might be the problem but the HUE app probably does not use a browser to execute the post..
Any ideas on what could block the post request?

Hello, any new ideas on this??

I tried this myself, for some reason my Android phone can't connect to http://[IP]/api but my macOS laptop can.
I've no ideas, but at least this is triaged.

Hm..
OK.. probably the phone/network or ESP8266WebServer is the issue here..
I just opened the HelloServer sketch..
the page looks like this
`

`
From pc it works fine
From android the page is unavailable..
It does not matter if i enter a port after the IP

Very strange, potentially a bug in the ESP8266WebServer?
But Chrome is crosscompiled, so the results should not be different.
Could you try with Firefox on Android?

The android test was done using webview only.. i can't launch it with ff or chrome.. let me try

chrome from android works

Now let's switch to the hueEmulator sketch and see if it logs a request

Mkay.. so with Chrome this works on Android.. it might be something completely different :((
Aaaaaaaaaaaaaaaaggghhhrrrrr!

This is weird, I'll try again when I'm back home with Chrome on Android as it didn't work for me before.

Calling the api GET now works for me using Chrome on Android, WebView (Chrome) and Firefox...

Get works as expected.. that was never an issue...
Also the put method fails only in webview.. chrome for android works ok...
I'm not sure now if the post for /api never gets send from the app or what. There is nothing being logged to console if i put serial.print into the auth method of lightservice.. i was reading the HUE api spec but i dont know if there is s9mething failing before that..

Ok.. so i put Serial debug info into every single function.. and this is what i get when i try to pair the bridge to official hue app:
After i hit search:
configFn GET
274163
{"name":"hue emulator","swversion":"81012917","bridgeid":"18FE34FFFED2C582","portalservices":false,"linkbutton":true,"mac":"18:FE:34:D2:C5:82","dhcp":true,"ipaddress":"<IP_ADDRESS>","netmask":"<IP_ADDRESS>","gateway":"<IP_ADDRESS>","apiversion":"1.3.0
After that no requests are being made.. so it seems that the app does not try the authFn..
after a while i get
descriptionFn
10http://<IP_ADDRESS>:80/urn:schemas-upnp-org:device:Basic:1Philips hue (<IP_ADDRESS>)Royal Philips Electronicshttp://www.philips.comPhilips hue Personal Wireless LightingPhilips hue bridge<PHONE_NUMBER>226503http://www.meethue.com18:FE:34:D2:C5:82uuid:2f402f80-da50-11e1-9b23-18:FE:34:D2:C5:82index.htmlimage/png484824hue_logo_0.pngimage/png12012024hue_logo_3.png
.. but that is just some software pinging the ip (i guess)..
What methods should be called in order for the app to connect?

I'm not sure why the json is not ending with } ,... is this just stripped?

Mkay .. now we are getting somewhere..
The json from /api/config is stripped! Why?

Ah crap! I had 2 aJson libraries.. one on my lib folder and one in documents (without the 4096 byte modification as specified in the sketch)..
So after i fixed the lib, everything works as expected!
Thanx everyone for help.. Nice coding exercise 🐇

@janus-reith is it also working for you now, so that we can close this issue?

Yes, you can.. thank you!

Just a note for others.
HUE  ap looks for the bridge usind SSDP protocol. This worked ok.. and returns bridge ip. After that it makes a get request to /api to retreive bridge capabilities. This returned incomplete json. Unfortunately no error was displayed in app.
This caused the app never calling the auth (post to /api)


Becatrue/187/config json

This PR will close #187.
I just renamed setup.json to config.json.

Aren't there any comments, for example how-to-use?

I will fix the unittest errors😅

Please merge this after @Aijuh reviews this.

I didn't know that this PR needs my review. As far as I can check, there seems no problem.

Thanks for approving!
Until everyone submits his or her own first PR, Jiyong and I will merge it although there is only one approve.
However, if you afford to leave reviews, it may help you to understand codes!


Dashboard view with custom METADATA

In GitLab by @ltenorio on Jan 31, 2024, 11:42
We got a great idea from @bdepaula of having a customizable way to track a set of experiments with the data we have of them (status, user, completed jobs, etc), and metadata set by the users in the configuration YML files like this:
METADATA:
    KEY1: value1
    KEY2: value2

Initially, this custom view can be set as a Table view that can select/add the columns to track. Then, we can include other ways to visualize this data as well.
This is feasible to do after the new GUI is finally released by extending the Home page. Also, we will need to extend the API to support these data requests.
Nevertheless, for some users, this will be quite useful in the short term. So, having it as a patch of the previous GUI is an alternative to handling it as a workaround. Also, we have the opportunity to handle it as a separate "supervisor" GUI project for people who will not need some features like authentication, specific views, and interactivity.

In GitLab by @ltenorio on May 6, 2024, 11:19
mentioned in issue autosubmit-api#75


fix panic when command empty

Fixes the panic when parsing an empty command, say when hitting enter at the prompt or when running a |  | b (note the two spaces).

Thanks for the contribution!


Update lightslider.js

Meant to address issue noted in #172 where adaptiveHeight compounds height and padding-bottom attributes when in 'fade' mode
First pull request—hope I'm doing it right!

Any reason this hasn't been included yet? Every time I update my libraries I have to go make this fix.

Any reason this hasn't been included yet? Every time I update my libraries I have to go make this fix.

I have the same problem. Almost 4 years later, it still fixes this issue! Thank you, @elihorn


PR: Fix introspection testing (CI)

Description of Changes

Properly handle instrospection usage via the Completions plugin configuration
Issue(s) Resolved

Fixes #22012
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct: dalthviz

Sure @jitseniesen ! So basically here I:

Removed the ad hoc way to disable/enable instrospection when testing that was using an env variable (SPY_TEST_USE_INTROSPECTION) and instead changed things to rely on each completion provider enabled config value (for example CONF.set('completions', ('enabled_providers', 'lsp'), False) to disable the languageserver provider and CONF.set('completions', ('enabled_providers', 'lsp'), True) to enable it)

Doing the above, I noticed an issue related with the logic to close/call the shutdown logic of the completion providers which prevented closing the completion plugin when no provider (lsp, fallback and snippets) is enabled (the can_close |= True changes).

Added a missing wait call for the fallback provider actor following the logic used over the other completion providers.

Related to how these changes fix things, my guess is that the initial migration of the Editor caused the previous logic in place for handling the introspection for the tests (via an env var) to not be enough. This due to the Editor initialization logic now taking place alongside the other plugins which, regardless of the env var, makes the Editor interact with the completion plugin. I would say the main problem is that the env var approach doesn't deal with the providers still appearing from the config side of things as enabled 🤔
My local testing suggested that the changes here prevent seeing the QThread warning and the test process to crash when exiting but let me know if they work in your end too!


Remove wrapping of answer below question on desktop

Will resolve issues #220 and #217 making PR #219 redundant.

 Summary answer column width bias

 Remove the mode for wrapping summary answers below questions on desktop