Initial commit to ECS Pagerduty Alerts, 8184 Changes to 7679

Information
_JIRA story _

QPPSF-7679
QPPSF-8184

Changes proposed in this PR:

QPPSF-7679 - Removed shell script,jenkins & dockerfile, Added Lambda function & terraform for deploying lambda function
QPPSF-8184 - Initial commit, Added ECS pagerduty lambda function and terraform to provision lambda

Checklist

[ ] All JUnit tests pass (mvn clean verify).
[ ] New unit tests written to cover new functionality.
[ ] Added and updated JavaDocs for non-test classes and methods.
[ ] No local design debt. Do you feel that something is "ugly" after your changes?
[ ] Updated documentation (README.md, etc.) depending if the changes require it.

`Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.
data.aws_caller_identity.current: Refreshing state...

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:

create

Terraform will perform the following actions:
aws_cloudwatch_event_rule.invoke-lambda-on-schedule will be created

resource "aws_cloudwatch_event_rule" "invoke-lambda-on-schedule" {

arn                 = (known after apply)
description         = "This Event bridge Invokes Lambda function on a Schedule"
event_bus_name      = "default"
id                  = (known after apply)
is_enabled          = true
name                = "invoke-lambda-scheduler-qppsf-dev"
name_prefix         = (known after apply)
schedule_expression = "cron(0 16 ? * * *)"
tags_all            = (known after apply)
}

aws_cloudwatch_event_target.ddbackup-invoke-lambda will be created

resource "aws_cloudwatch_event_target" "ddbackup-invoke-lambda" {

arn            = (known after apply)
event_bus_name = "default"
id             = (known after apply)
rule           = "invoke-lambda-scheduler-qppsf-dev"
target_id      = "invoke-ddb-lambda"
}

aws_iam_policy.lambda_cloudwatch_logging will be created

resource "aws_iam_policy" "lambda_cloudwatch_logging" {

arn         = (known after apply)
description = "IAM permissions for Lambda to Create Log Group"
id          = (known after apply)
name        = "ddbackup_lambda_cloudwatch_policy"
path        = "/"
policy      = jsonencode(
{
+ Statement = [
+ {
+ Action   = [
+ "logs:CreateLogGroup",
+ "logs:CreateLogStream",
+ "logs:PutLogEvents",
]
+ Effect   = "Allow"
+ Resource = "arn:aws:logs:::*"
},
]
+ Version   = "2012-10-17"
}
)
policy_id   = (known after apply)
tags_all    = (known after apply)
}

aws_iam_policy.lambda_ddb_backups will be created

resource "aws_iam_policy" "lambda_ddb_backups" {

arn         = (known after apply)
description = "IAM permission to list dynamo Db Backups"
id          = (known after apply)
name        = "dynamodb_backup_lambda_policy"
path        = "/"
policy      = jsonencode(
{
+ Statement = [
+ {
+ Action   = [
+ "dynamodb:DescribeTable",
+ "dynamodb:Scan",
+ "dynamodb:DescribeBackup",
+ "dynamodb:ListGlobalTables",
+ "dynamodb:ListTables",
+ "dynamodb:ListBackups",
+ "dynamodb:ListStreams",
]
+ Effect   = "Allow"
+ Resource = [
+ "arn:aws:dynamodb:us-east-1:003384571330:table/qpp-qrda3converter-prod-metadata/backup/*",
+ "arn:aws:dynamodb:us-east-1:003384571330:table/qpp-qrda3converter-prod-metadata",
]
},
]
+ Version   = "2012-10-17"
}
)
policy_id   = (known after apply)
tags_all    = (known after apply)
}

aws_iam_role.lambda_executionrole will be created

resource "aws_iam_role" "lambda_executionrole" {

arn                   = (known after apply)

assume_role_policy    = jsonencode(
{
+ Statement = [
+ {
+ Action    = "sts:AssumeRole"
+ Effect    = "Allow"
+ Principal = {
+ Service = "lambda.amazonaws.com"
}
+ Sid       = "AllowLambda"
},
]
+ Version   = "2012-10-17"
}
)

create_date           = (known after apply)

force_detach_policies = false

id                    = (known after apply)

managed_policy_arns   = (known after apply)

max_session_duration  = 3600

name                  = "dynamodbbackup_lambda_executionrole-qppsf-dev"

path                  = "/delegatedadmin/developer/"

permissions_boundary  = "arn:aws:iam::003384571330:policy/cms-cloud-admin/developer-boundary-policy"

tags_all              = (known after apply)

unique_id             = (known after apply)

inline_policy {

name   = (known after apply)
policy = (known after apply)
}
}

aws_iam_role_policy_attachment.cloudwatchlogs-lambda will be created

resource "aws_iam_role_policy_attachment" "cloudwatchlogs-lambda" {

id         = (known after apply)
policy_arn = (known after apply)
role       = "dynamodbbackup_lambda_executionrole-qppsf-dev"
}

aws_iam_role_policy_attachment.dynamodb-lambda will be created

resource "aws_iam_role_policy_attachment" "dynamodb-lambda" {

id         = (known after apply)
policy_arn = (known after apply)
role       = "dynamodbbackup_lambda_executionrole-qppsf-dev"
}

aws_lambda_function.ddb-notification-alerts will be created

resource "aws_lambda_function" "ddb-notification-alerts" {

arn                            = (known after apply)

filename                       = "dynamo-db-bckup-notifier.zip"

function_name                  = "dynamo-db-bckup-notifier"

handler                        = "dynamo-db-bckup-notifier.lambda_handler"

id                             = (known after apply)

invoke_arn                     = (known after apply)

last_modified                  = (known after apply)

memory_size                    = 128

package_type                   = "Zip"

publish                        = false

qualified_arn                  = (known after apply)

reserved_concurrent_executions = -1

role                           = (known after apply)

runtime                        = "python3.7"

signing_job_arn                = (known after apply)

signing_profile_version_arn    = (known after apply)

source_code_hash               = (known after apply)

source_code_size               = (known after apply)

tags_all                       = (known after apply)

timeout                        = 120

version                        = (known after apply)

environment {

variables = {

"channel_id"            = "GA20H9QJW"
"slack_channel_webhook" = "https://hooks.slack.com/services/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"
}
}

tracing_config {

mode = (known after apply)
}
}

aws_lambda_permission.allow_cloudwatch will be created

resource "aws_lambda_permission" "allow_cloudwatch" {

action        = "lambda:InvokeFunction"
function_name = "dynamo-db-bckup-notifier"
id            = (known after apply)
principal     = "events.amazonaws.com"
source_arn    = (known after apply)
statement_id  = "AllowExecutionFromCloudWatch"
}`

QPPSF-8184
`Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.
data.aws_caller_identity.current: Refreshing state...

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:

create

Terraform will perform the following actions:
aws_cloudwatch_event_rule.ecs-task-monitor will be created

resource "aws_cloudwatch_event_rule" "ecs-task-monitor" {

arn            = (known after apply)
description    = "This Event bridge rule Monitors ECS clusters of prod and impl and triggers upon a Task State Change"
event_bus_name = "default"
event_pattern  = jsonencode(
{
+ detail      = {
+ clusterArn = [
+ "arn:aws:ecs:us-east-1:003384571330:cluster/qppsf-conversion-tool-prod",
+ "arn:aws:ecs:us-east-1:003384571330:cluster/qppsf-conversion-tool-impl",
]
}
+ detail-type = [
+ "ECS Task State Change",
]
+ source      = [
+ "aws.ecs",
]
}
)
id             = (known after apply)
is_enabled     = true
name           = "ecsct-task-monitor-qppsf-dev"
name_prefix    = (known after apply)
tags_all       = (known after apply)
}

aws_cloudwatch_event_target.ecsevent-invoke-lambda will be created

resource "aws_cloudwatch_event_target" "ecsevent-invoke-lambda" {

arn            = (known after apply)
event_bus_name = "default"
id             = (known after apply)
rule           = "ecsct-task-monitor-qppsf-dev"
target_id      = "ecs-task-event-lambda"
}

aws_iam_policy.lambda_cloudwatch_logging will be created

resource "aws_iam_policy" "lambda_cloudwatch_logging" {

arn       = (known after apply)
id        = (known after apply)
name      = "ecs_lambda_cloudwatch_policy"
path      = "/delegatedadmin/developer/"
policy    = jsonencode(
{
+ Statement = [
+ {
+ Action   = [
+ "logs:CreateLogGroup",
+ "logs:CreateLogStream",
+ "logs:PutLogEvents",
]
+ Effect   = "Allow"
+ Resource = "arn:aws:logs:::*"
},
]
+ Version   = "2012-10-17"
}
)
policy_id = (known after apply)
tags_all  = (known after apply)
}

aws_iam_policy.lambda_publish_to_ses will be created

resource "aws_iam_policy" "lambda_publish_to_ses" {

arn       = (known after apply)
id        = (known after apply)
name      = "ecs_lambda_ses_policy"
path      = "/delegatedadmin/developer/"
policy    = jsonencode(
{
+ Statement = [
+ {
+ Action   = [
+ "ses:SendEmail",
+ "ses:SendRawEmail",
]
+ Effect   = "Allow"
+ Resource = "*"
},
]
+ Version   = "2012-10-17"
}
)
policy_id = (known after apply)
tags_all  = (known after apply)
}

aws_iam_role.lambda_executionrole will be created

resource "aws_iam_role" "lambda_executionrole" {

arn                   = (known after apply)

assume_role_policy    = jsonencode(
{
+ Statement = [
+ {
+ Action    = "sts:AssumeRole"
+ Effect    = "Allow"
+ Principal = {
+ Service = "lambda.amazonaws.com"
}
+ Sid       = "AllowLambda"
},
]
+ Version   = "2012-10-17"
}
)

create_date           = (known after apply)

force_detach_policies = false

id                    = (known after apply)

managed_policy_arns   = (known after apply)

max_session_duration  = 3600

name                  = "ecsct_lambda_executionrole--qppsf-dev"

path                  = "/delegatedadmin/developer/"

permissions_boundary  = "arn:aws:iam::003384571330:policy/cms-cloud-admin/developer-boundary-policy"

tags_all              = (known after apply)

unique_id             = (known after apply)

inline_policy {

name   = (known after apply)
policy = (known after apply)
}
}

aws_iam_role_policy_attachment.cloudwatchlogs-lambda will be created

resource "aws_iam_role_policy_attachment" "cloudwatchlogs-lambda" {

id         = (known after apply)
policy_arn = (known after apply)
role       = "ecsct_lambda_executionrole--qppsf-dev"
}

aws_iam_role_policy_attachment.ses-lambda will be created

resource "aws_iam_role_policy_attachment" "ses-lambda" {

id         = (known after apply)
policy_arn = (known after apply)
role       = "ecsct_lambda_executionrole--qppsf-dev"
}

aws_lambda_function.ecs-pagerduty-alerts will be created

resource "aws_lambda_function" "ecs-pagerduty-alerts" {

arn                            = (known after apply)

filename                       = "ecs-pgduty-alerts.zip"

function_name                  = "ecs-pgduty-alerts"

handler                        = "ecs-pgduty-alerts.lambda_handler"

id                             = (known after apply)

invoke_arn                     = (known after apply)

last_modified                  = (known after apply)

memory_size                    = 128

package_type                   = "Zip"

publish                        = false

qualified_arn                  = (known after apply)

reserved_concurrent_executions = -1

role                           = (known after apply)

runtime                        = "python3.7"

signing_job_arn                = (known after apply)

signing_profile_version_arn    = (known after apply)

source_code_hash               = (known after apply)

source_code_size               = (known after apply)

tags_all                       = (known after apply)

timeout                        = 120

version                        = (known after apply)

tracing_config {

mode = (known after apply)
}
}

aws_lambda_permission.allow_cloudwatch will be created

resource "aws_lambda_permission" "allow_cloudwatch" {

action        = "lambda:InvokeFunction"
function_name = "ecs-pgduty-alerts"
id            = (known after apply)
principal     = "events.amazonaws.com"
source_arn    = (known after apply)
statement_id  = "AllowExecutionFromCloudWatch"
}

Plan: 9 to add, 0 to change, 0 to destroy.
------------------------------------------------------------------------`


Fix typo in fuji.md

Docs PR Template
Why this should be merged
avaliable -> available

Thank you @eltociear


font-awesome not imported in when fixtable-ember is nested in addons > ember-cli 2.12

The error you get when running ember server in an app that includes an addon that uses fixtable-ember is:
ENOENT: no such file or directory, scandir '/Users/omarestrella/Development/orgspan/dummy-app/node_modules/dummy-addon/node_modules/fixtable-ember/node_modules/font-awesome/fonts'

You can recreate the issue by creating a dummy app and dummy addon, installing ember-fixtable in the dummy addon (inside dependencies), putting the addon in the package.json and linking the addon to the app, and running ember server.
There should probably be a distinction between the root app and the parent so that the correct node_modules path is used. For example:
let rootApp = app;
while (rootApp.app) {
  rootApp = rootApp.app;
}

let parent = app;
while (parent.parent) {
  parent = parent.parent;
}

And you can use parent.nodeModulesPath for the correct path and the rootApp.import for importing the CSS that is being imported.

Not reproducible consistently - generally when I've seen this, it's due to a dependency version mismatch somewhere in the tree.  Though we should look into making sure our imports are up to snuff in regard to nesting, addons, and engines ( again! ).


Copy smoke tests from external repo

This copies across the "smoke tests" (written in Cypress) from an external repository.
This makes it simpler to update the smoke tests along with the code, in cases where code changes affect the smoke tests.
The smoke test workflow has also been merged into the build workflow, rather than using workflow-dispatch, to increase speed and improve error messages when the smoke tests fail.

🙌

 Move smoke tests inside apply repo


How could I show posts in a grid instead of rows?

I mean what would be the best practice, I would expect to have a configuration interface where this can be switched, is there something like that in telescope admin?
is there access to telescope admin in the demo?

Just wait a few more days for the next release and you should have your answer :)
(or preview it right now on the devel branch)


Calculates mgmt port MAC rather than storing

Today ovnkube-controller relies on ovnkube-node to annotate the mac address so that it can properly program the OVN mgmt port. In practice with UDN, this means cluster manager creates the node and allocates some subnet info to the node, both the node and the ovnkube-controller side get updates, but ovnkube-controller fails to program the first time because it is waiting for the node side to configure the mac address.
This patch changes the behavior of ovn-kubernetes to calculate the MAC address for the management port from the mgmt port IP address of the first subnet for the network. For backwards compatibility (on default network), it will first attempt to read the node annotation, and if it no mgmt MAC exists, it will derive it from the mgmt IP of the subnet.
Note the DPU code already uses the mgmt IP to derive the MAC.

some unrelated egress firewall flake:
https://github.com/ovn-kubernetes/ovn-kubernetes/actions/runs/12261395552/job/34208326354?pr=4882

I missed updating some UDN unit tests which were depending on the annotation. Updating those now in next push.


Support git commit --amend

It would be great to have an option to amend a commit.
That's useful when you want want to re-add a file and keep in the same history or keep the same commit message. Or in my specific case, I want to override the the history with git push force
git add .
git commit --amend --no-edit
git push --force

(closing as "wontfix" as Repository usage is deprecated anyway)


feat: add script for import controller migration

kind/feature
What this PR does / why we need it:
Migrating to the new import controller based on clusters.management.cattle.io (v3 clusters) means we need to apply changes to the existing Rancher cluster resources to let the new controller identify CAPI clusters as already imported. As described in the migration proposal #573, the v3 controller looks for cluster resources marked with the following labels:
cluster-api.cattle.io/capi-cluster-owner
cluster-api.cattle.io/capi-cluster-owner-ns
cluster-api.cattle.io/owned

cluster-api.cattle.io/owned is added to all clusters imported via Turtles, even if using the existing clusters.provisioning.cattle.io (v1 clusters) based controller. The other two labels must be added to the existing clusters.management.cattle.io resources to let the new controller's label selector find a match and hence detect that the CAPI cluster is properly imported and no new resource needs to be created.
This PR adds a basic bash script for users to run pre-controller-migration so clusters are labeled accordingly. It simply gets one or multiple namespaces as input and applies labels to all Turtles clusters in that namespace.
We'll also be adding instructions on how to do it manually at the cluster level on a migration guide.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Checklist:

[x] squashed commits into logical changes
[ ] includes documentation
[ ] adds unit tests
[ ] adds or updates e2e tests

Thanks for the comments @alexander-demicev. I reviewed the code and I think all of them have been addressed now.


Add support to create proposals through the OpenZeppelin Defender

I was searching for a method to create proposals (e.g. upgrade proposals) that require approval from a multisig wallet through the OpenZeppelin Defender but couldn't find anything out there.
Normally, when working with a Hardhat project using the @openzeppelin/hardhat-upgrades we can create proposals for a method protected by an onlyRole multisig guard in the following way or simply upgrade proposals in this way.

Hi @gabrielstoica, thanks for the request.  Defender deployments and proposals are in plan, but we expect to only support Defender 2.0 through this.  Would the equivalent of Hardhat's proposeUpgradeWithApproval work for you?  This requires using an upgrade approval process to perform the upgrade, which is slightly different from Defender Admin.

Hi @ericglau, thanks for your feedback. Yeah, should work this way for upgrade proposals, but what about creating proposals for any specific method protected by a role (onlyRole) granted to a multisig wallet?

Can you provide more details on your use case, e.g. why you would like to create method call proposals through a Foundry script?
You can create proposals in Defender 2.0 is using Actions https://docs.openzeppelin.com/defender/v2/module/actions. This can be automated using the Defender SDK which is a Typescript/Javascript package.  Does that work for your use case?

Was thinking about automating everything (i.e. a method which needs complex inputs) through a script. As I can see, right now you have to manage two different projects: one Foundry-based project with all your contracts, tests and upgrade proposals and a second (i.e Node-based) with the Defender SDK to manage method call proposals.  Am I right?

Thanks for the feedback, we will likely add that to this library following the other features mentioned above.

Update: At the moment, this plugin includes support for the following with OpenZeppelin Defender:

Deploying upgradeable contracts (proxies and implementations)
Deploying non-upgradeable contracts
Proposing an upgrade through Defender

You can find the latest documentation here:

https://docs.openzeppelin.com/upgrades-plugins/1.x/foundry-defender
https://docs.openzeppelin.com/upgrades-plugins/1.x/api-foundry-upgrades

The remaining item (for this issue) is to add the ability to create proposals for functions other than upgrades.

Thanks, @ericglau - appreciate your effort!

Have two questions about this:
1- Is there a way to create a proposal not related to an upgrade? For example propose to pause a contract controlled by a multisig, but I want to do it using a Foundry script?
2- When I create an upgrade proposal, three addresses are added to the address book, it adds the implementation and the proxy twice. Is there a way to avoid this? I dont need it to be added to the address book


Get-TenantAllowBlockListItems fails with url that contains #

This command fails with this error: |System.Exception|Error sending HTTP request
$url = "sub.domain.com/folder/#ggfdggdg="
Get-TenantAllowBlockListItems -ListType Url -Entry $url

But when using the same URL for New-TenantAllowBlockListItems, it works.
This means is how the Get command is converted to an HTTP request that contains a bug.
PowerShell 7.3.9
MACOS
(Couldnt find elsewhere to report this)

Checking.

@katlim-br the development team does not have access to a mac and so are unable to reproduce it. Will you be available for a call so that we can troubleshoot it remotely?

if you have some steps I can do offline, I think it would be better

@katlim-br we were able to identify the gap here and working to fix it. If you use the URL encoder before sending it as a parameter it is going to work fine.
Here is an example
[MultiTenant\Exchange\namprd00] PS C:\Users\anwagadr> [System.Web.HttpUtility]::UrlEncode("axyddd.com/#")
axyddd.com%2f%23
[MultiTenant\Exchange\namprd00] PS C:\Users\anwagadr> $a = [System.Web.HttpUtility]::UrlEncode("axyddd.com/#")
[MultiTenant\Exchange\namprd00] PS C:\Users\anwagadr> $a
axyddd.com%2f%23
[MultiTenant\Exchange\namprd00] PS C:\Users\anwagadr> Get-TenantAllowBlockListItems -Block -ListType Url -ListSubType Tenant  -Organization o365tisdfv2.onmicrosoft.com  -Entry $a
Error                :
Identity             : RgAAAACMc7T0-BHaSJs2DLCiIkhhBwDudr57g0-lRJbP_YjRYjAcAAEu85EwAADudr57g0-lRJbP_YjRYjAcAAO02TDHAAAA0
Value                : axyddd.com/#
Action               : Block
Notes                :
SubmissionID         :
ListSubType          : Tenant
SysManaged           : False
LastModifiedDateTime : 29-11-2023 17:28:13
ExpirationDate       : 29-12-2023 17:28:12
ObjectState          : Unchanged
EntryValueHash       : 7eGMUphtKB7QaWwVCubYRVH8heL3X1EpDeEnPE6AaZQ=
ModifiedBy           :
LastUsedDate         :
RemoveAfter          :
CreatedDateTime      : 29-11-2023 17:28:12

To use UrlEncode, is it a workaround, or is it the long-term solution?


Clarify that members are natural persons

That wasn't obvious to me, at least. Upon reading the membership section I didn't find any explicit mention of it.
I think "natural persons" (yes, plural) is correct in legal linguo, but I'll let native speakers confirm.
I suppose we could add " without restriction of citizenship or origin to the extent allowed by U.S. law.", but I guess that goes without saying.

LGTM


Why a go-binary for this and why path at compile-time?

I came here because I found this binary in your unifi-docker image.
Perhaps I misunderstood the use case of this tool in the README, but:

why would you want to specify the path at compile-time? (instead of a command line argument)
what's the benefit over a two-liner script that's similarly set with setuid and does roughly the same thing using chown?

Perhaps it would be nice to clarify that. 😃

why would you want to specify the path at compile-time? (instead of a command line argument)

There's a tremendous amount of danger in terms of security in keeping around a binary is setuid and will give any user ownership of any files. You could just point it at /etc if it took a command line argument.

what's the benefit over a two-liner script that's similarly set with setuid and does roughly the same thing using chown?

Scripts can't actually be setuid
quake@sannhet:~$ cat >setuid.sh
#!/bin/sh
whoami
quake@sannhet:~$ sudo chmod +xs setuid.sh
[sudo] password for quake:
quake@sannhet:~$ ./setuid.sh
quake
quake@sannhet:~$


Replace su-exec with gosu

There's a major issue with su-exec whose fix has gone unreleased for 5 years (typos leading to running code as root, the opposite of the purpose of the program).
This also decreases our Debian vs Alpine variance.
Due to user scripts/downstream code potentially using su-exec, I have included a compatibility symlink to su-exec for all versions less than the 17 pre-release.

To be explicitly clear: I am open to exploring other alternatives as well, but su-exec really should be removed here, and any alternative solution needs to also consider the downstream effects (and how we keep compatibility + minimize the code/variance we have to maintain).

See https://github.com/tianon/gosu/pull/143 for one such alternative.

I agree with your hesitation to recommend your setpriv wrapper in https://github.com/tianon/gosu/pull/143#issuecomment-2174630612 since it is new and fragile, so I think gosu is the best cli-compatible alternative.

For future users wondering why the Alpine based image suddenly "has tons of CVEs": gosu has documented that naive vulnerability analysis tools will detect many CVE's; as of June 2024, none are applicable since gosu does not ever invoke any of the CVE-vulnerable functions (see gosu's security.md).
https://github.com/tianon/gosu/issues/136#issuecomment-2150375314 may also be of interest.


Added PopStateEvent

This adds PopStateEvent which is in HTML5 spec.
There is no way of creating events, is this on purpose, or would you accept a PR which adds methods to create events?

It would be nice to also include support for PopStateEvent.state property.  I think we should reflect state type on the type level with:
foreign import data PopStateEvent :: Type -> Type

Would that be fine?

The missing create event functions are not for any particular reason, they're just missing :wink:
I don't think we can do that unfortunately with the state type coming from PopStateEvent, since there's no way we can guarantee that the event is carrying state of the type we expect - we can do that when creating an event, but when it arrives from the DOM we'd just be unsafeCoerceing it pretty much.


feat: class refactored with configuration

:tada: This PR is included in version 2.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Incomplete Pointclouds

Hi,
Thank for you sharing this paper and repo.
I'm wondering if you have run any experiments where you have trained this model using complete point clouds and evaluated it on incomplete point clouds. I would like to use your work as the backbone for robotic policy learning, but am trying to understand the feasibility of training on fully observed meshes (from a simulator) and evaluating with partially observed scenes (from a depth camera).
Thanks a lot for your help and guidance!

Hi, this is a good question, as I am also interested in how our effect benefits robotic learning. So please feel free to ask me any questions about this.
Now, go back to your current question. Although we haven't tried this previously. But based on my experience, "training this model using complete point clouds and evaluating it on incomplete point clouds" definitely can work.
Assume that you have some open-source dataset with labelled full scenes and want to do inference on some RGB-D frame-level point cloud. You can try these to make the performance stronger:

Enlarging Cropping rato in data augmentation;
Take ScanNet as an example. You can project or "crop" point cloud with a random camera pose (or randomly choose a camera pose from the raw dataset);

I think these try can make a stronger performance in the case you described. But I believe, without any modification, the currently existing config is also good enough for some initial try.


Improve loading performance of TMX maps

Loading of tmx-files would be faster if the GZIPInputStream is wrapped in a BufferedInputStream in BaseTmxMapLoader.java. This improved performance even though the source is a ByteArrayInputStream.
    if (compression == null)
        is = new ByteArrayInputStream(bytes);
    else if (compression.equals("gzip"))
        is = new BufferedInputStream(new GZIPInputStream(new ByteArrayInputStream(bytes), bytes.length));
    else if (compression.equals("zlib"))
        is = new BufferedInputStream(new InflaterInputStream(new ByteArrayInputStream(bytes)));

Great, thanks :+1:


feat: Improve theme toggle button

Signed off by: @iamkryptonite<EMAIL_ADDRESS>Fixes #375
Added a new toggle switch for dark mode.
External Library used: react-switch

@muskankhedia this PR is ready for review.

@iamkryptonite Thanks for this PR! This looks good in general. I'd say the design we had earlier looked pretty basic yet minimalist to me (which was the idea). The sun and moon icons are needed, true, but for me, it looks a bit odd (notice how the icon is bigger than the mast header "Bench routes"). Can we include the earlier design and add the sun/moon icons on the circular handle of the switch? That way it's better for both parties here. Let me know what you think about it?

@iamkryptonite Thanks for this PR! This looks good in general. I'd say the design we had earlier looked pretty basic yet minimalist to me (which was the idea). The sun and moon icons are needed, true, but for me, it looks a bit odd (notice how the icon is bigger than the mast header "Bench routes"). Can we include the earlier design and add the sun/moon icons on the circular handle of the switch? That way it's better for both parties here. Let me know what you think about it?

Yes @aquibbaig, we can do that. I will use the previous design and add the icons to them. But the icons might be a little small and may not be very clear. I'll still make the requested changes and see how it looks.
Thanks.

@iamkryptonite Can you please rebase your branch with the master branch and squash all the commits to one commit. If you are new with rebasing, please follow the steps mentioned in Contributing.md

@iamkryptonite Can you please rebase your branch with the master branch and squash all the commits to one commit? If you are new to rebasing, please follow the steps mentioned in Contributing.md

Sorry for the late reply, will do it in a few minutes.


PowerToys Run - Doesn't open the most basic stuff

So the whole replace Win+R thing is a bit premature right now. And I'm probably doing a little bit of a sin right now. But I'm gonna list several issues (somewhat related with each other though).

Can't assign the key combo Win+R to use. If this is supposed to be a replacement for the old "Run"-command. Then it should be a proper replacement even in how it's opened.

Doesn't open the right thing as default. I.e when I type "cmd", the first thing for me (and what would be opened if pressed Enter) was "Install Additional Tools for Node.js". With the proper CMD-command being listen as the third option.

Doesn't open Windows Terminal (installed via MS store) via the command "wt". This does work in ordinary Run though.

Doesn't open system shortcuts such as service.msc, gpedit.msc, etc etc.

I'm getting the feel that this is basically a glorified Windows Search, with a new coat of paint on it. And nothing more.  To bad, this was something that I actually was hoping to be useful and cool.

Yeah, I second that. It looks to have potential as the go-to command to start anything, but I quickly found shortcomings in its current form - e.g. not being able to find Services at all ; "wt" doesn't find windows terminal ; "ter" doesn't find windows terminal, but does find IIS manager . . .

working on all of them.  we have to start somewhere and needed feedback on a lot of design decisions.  little by little

and 4. For Win+R, i don't think we've earned the right to replace it as you directly call out.  You can directly do that work if you do "> COMMAND" but i do believe it should be native.
working on the ranking algorithm.
we need to actually unpackage app to verify the startup.  someone called that out and we're working on that too

Which Wox fork did you use? The fuzzy matching is fixed in this: https://github.com/jjw24/Wox the original Wox had overly eager fuzzy matching.

Which Wox fork did you use? The fuzzy matching is fixed in this: https://github.com/jjw24/Wox the original Wox had overly eager fuzzy matching.
This is very opinionated subject. But myself I want predictable ranking (no preference on mostly used stuff), and fuzzy matching that's similar to VSCode file search.

Can't remember. I tried the first official version of PowerToys I found as per the instructions at the root of the project. But since I was quick to uninstall due to finding these issues. I can't check at the moment. My hope is that with some incubation, this will become what I hoped it would be from the start.
In regards to the "fuzzy matching". I'm unimaginative in that I believe when I type a system command or program, then that should be the top/default result. I.e I really shouldn't have to double check that the search/run function actually thinks I want to start CMD.exe when I type [cmd].
Where it actually does become more of personal taste:  If, and I cannot emphasize this strongly enough IF there would be some sort of predictive/fuzzy matching. Then that absolutely needs to be predictable. And if this uses Windows Search/cortana as its base search function. Then this will basically never be predictable in such a way that one would intuitively know beforehand which results it would find/use.
As I stated above. I'm going to give the project some time to mature. Because I really do hope that functions like these make into Windows Proper. Because they are the kinds of innovation that Windows actually needs. And obviously things needs to start somewhere.

All right, my comment was more for the authors of PowerToys, the ranking and fuzzy matching was really bad with original Wox: https://github.com/Wox-launcher/Wox but it was fixed and tuned in the fork: https://github.com/jjw24/Wox note that PowerToys Run is based on Wox.
However it still can't find most of the "tools" like Windows Start menu can, and I agree with you here.

But myself I want predictable ranking

totally agree with you @Ciantic

with this issue, it is too hard to track since it is multiple items all in one and is being tracked in targetted issues as well.  We have a single topic per issue ask.
The launcher spec calls out a lot of the stuff regarding weighting and we haven't had time to fully implement it.
This is an initial release and everyone is finding some great bugs.  Look at where FancyZones was when we first made it public and now.  lots of improvements in only a few short months.
Feedback lets us iterate quickly and coarse correct


How to prevent fake user data.

Hi,
I have a User model in which I am storing user information. Using this information I want to fetch regular activities of user. I know we can fetch all activities of user using user id. But my question is, How to get user id??
I don't want to get user id from user, because stack overflow user id is a public.
Is there any way to get correct user id. i.e prevent fake data??
Thanks.

user_id parameter that Stackoverflow provdies I think its what you need. You can other information using this id

@raysrashmi thanks for replay.
But issue is, In my system there are multiple users. And when user login I want to display all there activities.My question is How to get user id using user information like username and all other.
thanks

@SagareGanesh Don't you have username when user login you can search user by username and get the id I guess

@SagareGanesh Stack overflow user id is public and stack overflow also [don't allow you to find user from email id] (http://meta.stackexchange.com/questions/217678/how-to-find-the-users-by-their-email-id-in-stackoverflow/217679) so I think best way would be to ask that user to connect to your system using StackOverflow.

@raysrashmi @Shwetakale  thanks for help. @Shwetakale you are right. The better solution is we would ask the user to connect our system using StackOverflow.
thanks.


serialization options

We should be able to specify the style to be used for serializing. Such as:

trailing commas?
how much indentation?
whitespace?
single quotes or double?
property names without quotes?

Option element skipped if None ?


Added Solar Eclipse CSS Animation

Title and Issue number
Succesfully added a CSS Animation of Solar Eclipse for Issue #2494
Preview

Close #2494

Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have created a helpful and easy to understand README.md

@MohitGupta121  kindly review this PR


run.sh fails with apt-get error

So I run ./run.sh and I get this error on my terminal:

=> ERROR [member1tessera 2/4] RUN if [ -e /sbin/apk ] ; then apk add gettext --no-cache ; else apt-get u  0.0s

[member1tessera 2/4] RUN if [ -e /sbin/apk ] ; then apk add gettext --no-cache ; else apt-get update && apt-get install -y gettext && rm -rf /var/lib/apt/lists/* ; fi:

failed to solve: process "/bin/sh -c if [ -e /sbin/apk ] ; then apk add gettext --no-cache ; else apt-get update && apt-get install -y gettext && rm -rf /var/lib/apt/lists/* ; fi" did not complete successfully: failed to create endpoint 2mxuqml9glngdq8kktm0u5mxh on network bridge: failed to add the host (vethd5abf2e) <=> sandbox (vethccd29b9) pair interfaces: operation not supported

Even with that error, it outputs some endpoints that I should have, as if the script ran successfully:

List endpoints and services
JSON-RPC HTTP service endpoint                 : http://localhost:8545
JSON-RPC WebSocket service endpoint            : ws://localhost:8546
Web block explorer address                     : http://localhost:25000/explorer/nodes
For more information on the endpoints and services, refer to README.md in the installation directory.

But none of these are up. docker ps shows nothing is running.
Tried to run this on my Ubuntu and Arch Linux machines, both with the same error.

My system clock was behind which was breaking apt. Syncing the clock solved the problem.


KAFKA-8972 (2.4 blocker): TaskManager state should always be updated after rebalance

Currently when we identify version probing we return early from onAssignment and never get to updating the TaskManager and general state with the new assignment. Since we do actually give out "real" assignments even during version probing, a StreamThread should take real ownership of its tasks/partitions including cleaning them up in onPartitionsRevoked which gets invoked when we call onLeavePrepare as part of triggering the follow-up rebalance.
Every member will always get an assignment encoded with the lowest common version, so there should be no problem decoding a VP assignment. We should just allow onAssignment to proceed as usual so that the TaskManager is in a consistent state, and knows what all its tasks/partitions are when the first rebalance completes and the next one is triggered.
Should be cherry-picked to 2.4

@mjsax @abbccdda @guozhangwang @omkreddy

https://jenkins.confluent.io/job/system-test-kafka-branch-builder/3343/

@guozhangwang @ableegoldman Is this ready to megre?

Will this fix any known flaky tests?

Kicked off system test to confirm this fix: https://jenkins.confluent.io/job/system-test-kafka-branch-builder/3359/
will rebase + address comments so we can merge if (when) it's green

Unit tests passed locally.

LGTM. Merged to trunk and cherry-picked to 2.4.


filtering and throwing to upstream

Hello
Is it possible to route certain urls to the upstream proxy?
we are in a complex setup where some URLS require specific proxies in order to be accessed.
This means that all traffic should flow through Titanium, with the exception of a predefined set of URLS, preferably supported with wildcard characters... is this doable?

Doable with customfunc


Fix for HEAD requests with Content-Length

HTTP response to HEAD request might contain Content-Length header, even though it doesn't have response body. Without this fix deproxy hangs trying to HTTP response body which isn't there.
Don't read response for HEAD requests, even if they contain Content-Length.

The code changes look good to me. Are there any tests that you can add?


[Feature Request] Timeline Component

Is your feature request related to a problem? Please describe.
I'm a passionate developer who frequently uses NextUI for its sleek design and efficiency. I'd like to propose the addition of a Timeline component to the NextUI library. A Timeline component is crucial for visually representing sequences of events in a chronological order, which can be incredibly useful for project timelines, educational timelines, workflow processes, and more.
Describe the solution you'd like

Customizable Layouts: Vertical and horizontal layout options to fit different content types and screen sizes.
Interactive Elements: Ability to integrate tooltips, modal windows, or links for additional information on each event.
Dynamic Loading: Options to dynamically load past or future events, useful for long timelines that require scrolling.
Styling Flexibility: Support for theming and custom CSS to align with the visual identity of different projects.
Responsiveness: Ensuring the component's usability across various devices and screen resolutions.

Describe alternatives you've considered
Here is one example of it from material ui.
https://mui.com/material-ui/react-timeline/
Screenshots or Videos
No response

Hi, I'd like to implement this.

+1


Map Display not Working

Hello,
Following up on #518, I have successfully submitted the Map to the Interop server (it is shown in the Admin Dashboard). However, navigating to the /api/maps/1/testuser URL displays a "Map not found." page. I also cannot click on the image link (/media/maps/1-2_G9OdI3u.JPEG), as it shows a URL Not Found error, even for just the base route (/media). Am I doing something wrong? Thanks for the help!

Thank you for catching a bug! There was an issue where the map view code was using the request's user rather than the URL's user, so a superuser wouldn't actually be able to review the maps. I've added a test case for this and pushed the fix.
I've also added a readonly field to the model so that the URL link is directly viewable, rather than having to craft it yourself. This should also help people avoid the /media URL.
The /media URLs are not expected to work because they are intentionally disabled. The path listed is the path on disk at the server, which you could use to read as a superuser. The web-serving functionality is disabled because it doesn't support permissions/ACLs, so if we allowed it then users could reach each other's maps.


Make kick and ban mod only

Hello,
Currently anyone can kick /ban anyone on the discord through the bot
should be fixed by checking the user's ban and kick permissions

Ok, I will fix this when I get home ^^

Fixed !


Paging through results for queries with multiple _type parameters returns 500

Describe the bug
For search requests that have multiple _type parameters (_type=resource1,resource2,...) we get 500 responses in certain situations. It happens when we are paging through results for the last resource type that is returned.
FHIR Version?
Stu3/R4/R5
Data provider?
SQL Server
To Reproduce
Steps to reproduce the behavior:

Assuming starting from a blank fhir-server, POST 5 patients and 5 observations (can be any resources) to the server.
Do the following search: GET /_type=Patient,Observation&_count=6 and follow the continuation token.
When following the continuation token, we get a 500 response.

Expected behavior
200 response with resources.
Actual behavior
500 response.

@namadabu - Can this be closed?


ES6 concise method not propely indented

In an object literal, classic methods are correctly indented :
let o2 = {
	a: function () {
		return 1;
	},
	b: function () {
		return 2;
	},
	c: function () {
		return 3;
	}
};

Concise methods does not work that well :
let o = {
	a() {
			return 1;
		},
		b() {
			return 2;
		},
		c() {
			return 3;
		}
};

After the first method, there's one additional indent. Not a major issue, but it makes objects look weird.

ES6 is only partially supported and lower priority.  PRs welcome.

:+1:

Implementation notes: we currently recognize ObjectLiterals based on {, name, then :.  If we modify that for locations where we expect to find a value (assignment). This will be more imprecise than usual, but would still address this.
http://es6-features.org/#MethodProperties

This is actually a big bug for ember developers, not an enhancement. In ember, all code is defined as a module therefore all code is defined as an object literal. I just ran into this an it's making me look around for a beautifier that supports ES6 due to the pain. :/

@mike-post,
Yeah, it's really unfortunate, but it also non-trivial.
PRs welcome and appreciated.

+1 for ember issues.
Never looked at this project before but maybe i'll take a swing at it.

Looks like this might be fixed already in the upcoming release.

Yup, this is covered by the fix for #602


Feature request: Export image with no background on Obsidian

Can the option to check or uncheck background be implemented on Obsidian also?

@gustavindnq, this feature is there, but in a slightly different way.

You can set a default for this in plugin settings
You can override that setting by adding the following frontmatter keys to your drawing in markdown view mode. For more please consult the Readme.

Frontmatter tags to customize image export at a file level 519. If these keys are present they will override the default excalidraw embed and export settings.

excalidraw-export-transparent: true:  true == Transparent / false == with background.
excalidraw-export-dark: true == Dark mode / false == light mode.
excalidraw-export-padding: Specify the export padding for the image
excalidraw-export-pngscale: This only affects export to PNG. Specify the export scale for the image. The typical range is between 0.5 and 5, but you can experiment with other values as well.

I understand, thanks brother


Implements Infinite Scroll Artwork Grid in Collections

This PR adds the infinite scroll artwork grid to the Collections view page.

Links to GROW-1473

:rocket: PR was released in v1.21.1 :rocket:


Issue #580: script to manage the environment vars

Example usage:
$ env | grep TEST
$ export TEST1="hello
> new line
> single quote: '
> double quote: \"
> and bye"
$ export TEST2="one;two"
$ ./env-toolkit.py dump -f myenv
$ jq . myenv |grep TEST
  "TEST1": "hello\nnew line\nsingle quote: '\ndouble quote: \"\nand bye",
  "TEST2": "one;two",
$ unset TEST1 TEST2
$ env | grep TEST
$ ./env-toolkit.py load -f myenv ^TEST
export TEST1='hello
new line
single quote: '"'"'
double quote: "
and bye'
export TEST2='one;two'
$ eval "$(./env-toolkit.py load -f myenv ^TEST)"
$ echo "$TEST1"
hello
new line
single quote: '
double quote: "
and bye
$ echo "$TEST2"
one;two

@kbsingh can you review this?

Many projects use snippets like this one to obtain load the env variables set by jenkins:
# Source environment variables of the jenkins slave
# that might interest this worker.
function load_jenkins_vars() {
  if [ -e "jenkins-env" ]; then
    cat jenkins-env \
      | grep -E "(DEVSHIFT_TAG_LEN|QUAY_USERNAME|QUAY_PASSWORD|JENKINS_URL|GIT_BRANCH|GIT_COMMIT|BUILD_NUMBER|ghprbSourceBranch|ghprbActualCommit|BUILD_URL|ghprbPullId)=" \
      | sed 's/^/export /g' \
      > ~/.jenkins-env
    source ~/.jenkins-env
  fi
}

The problem is that this is not safe. jenkins-env has been generated by running env > jenkins-env which results in a format that can't be safely loaded, in particular if:

The env variables contain quotes
If they contain spaces
If they contain newlines
Malicious things could be executed since there is no escaping of the env vars

Also, the snippet above changes from repo to repo and I think it would be good to standardize it. If the PR is applied, this could be replaced entirely with:
eval "$(./env-toolkit load -f jenkins-env.json DEVSHIFT_TAG_LEN QUAY_USERNAME QUAY_PASSWORD ...)"

There has been many problems in the past trying to solve issues in jobs that have been caused by this, for example at some point one env var contained a new line and it took a long time to figure out what was going on.
This has been reported in previous:

https://github.com/openshiftio/openshiftio-cico-jobs/issues/580
https://github.com/openshiftio/openshiftio-cico-jobs/pull/186
https://github.com/openshiftio/openshiftio-cico-jobs/pull/184

And previous attempts to fix this problem have not worked out.

Also note that doing somethine like grep -E "(DEVSHIFT_TAG_LEN|QUAY_USERNAME|QUAY_PASSWORD|JENKINS_URL... is essentialy broken because it will match lines that contain those words, however in most cases the intention is to match only when the variable is exactly one of those This has caused some problems in the past.
With this change we can use patterns:
eval "$(./env-toolkit load -f jenkins-env.json ^QUAY_ ^JENKINS_URL$)"

before changing a lot of repos' can we change the 'provider' end for 1, and do the consumer end for the same, so we get end2end success before rolling it out wider ?
Also, the curl from github just makes me uncomfortable. is that the best way to ship this ? I realise most alternatives are unlikely to be pretty, but what is the best of the worst other alternatives in your opinion ?
Thanks for the example and the specific references to where the env parsing has been a problem, that is exactly what i was looking for.

before changing a lot of repos' can we change the 'provider' end for 1, and do the consumer end for the same, so we get end2end success before rolling it out wider ?

Sounds good, I will try to identify the least used template that has that bit and submit for that one.

Also, the curl from github just makes me uncomfortable. is that the best way to ship this ? I realise most alternatives are unlikely to be pretty, but what is the best of the worst other alternatives in your opinion ?

I agree, it's a bit strange.
Perhaps we could a job to deploy this, which is triggered on merge to master of openshiftio-cico-jobs, for example:
- job:
    name: 'devtools-openshiftio-cico-jobs-build-master'
    defaults: global
    node: devtools
    properties:
        - github:
            url: https://github.com/openshiftio/openshiftio-cico-jobs
    scm:
        - git:
            url: https://github.com/openshiftio/openshiftio-cico-jobs.git
            shallow_clone: true
            branches:
                - master
    triggers:
        - github
    builders:
        - shell: |
            # testing out the cico client
            set -ex
            mkdir -p ~/cico-tools
            cp scripts/env-toolkit.py ~/cico-tools/env-toolkit
            chmod +x ~/cico-tools/env-toolkit

Do you like this idea?


Form Block - Checkbox Question Type - Label Field is not doing what it says in the Editing Form

I am posting this directly here because the Bug Tracker seems to be broken. I tried to submit it 3 times and only got a ever spinning spinner animation. As far as i have tested it, It applies to the development branch and the 8.2.1 release as well.
When adding a "Checkbox" Type Question to the new Form Block (not Legacy). There is a Field with the Id akCheckboxLabel stating: "This will be displayed next to the checkbox. If it is blank, "Yes" will be displayed."
However. If you leave this empty, no "Yes" is displayed. - Just the Bare Question with the Checkbox.

That text is actually wrong: it won't display "Yes", it'll display the name of the attribute instead. I have checked in a commit to fix this. In my tests I could not get a blank label to display.


too many dependencies from lock files

deplist looks at yarn.lock and package-lock.json files to determine the dependencies of a package. While these dependencies might be used at runtime(or during testing) by the component, they are not "bundled" within the source code base. Usually bundled dependencies in NPM projects are under the ./node_modules directory and they have their own package.json file there, listing the properties of the dependency.
By using yarn.lock and package-lock.json files to determine dependencies without any way to differentiate between bundled dependencies and other types, we can generate too many false positives.

See #17 for a proposed solution


Make RadioButtonInputGroup Description support Node in addition to String

In the documentation regarding the Description prop it is descriped that the Description is to To just render a static, always visible tooltip, use this., but while Tooltip has the propType oneOfType([node, string]) the Description only supports string.
We would like to change the proptype of the Description to be the same as the Tooltip prop.
We can implement this change and make a PR, but would like to check if people agree first.

Høres fornuftig ut. Kom gjerne med en PR :slightly_smiling_face:


About the DDIM reconstruction error.

Hi there,
I've been attempting to use your code to reconstruct the original image with DDIM sampling functions, but I'm having some difficulty. Specifically, the image below is the result of my attempt to reconstruct the FFHQ dataset using a pre-trained diffusion model trained on the CelebA-HQ dataset.
Unfortunately, the reconstruction error is much larger than I expected. I was wondering if there might be something I'm overlooking or not taking into account? Any insights you could provide would be greatly appreciated.
Thank you.

def main():
    # ...

    for batch_idx, data in enumerate(dataloader):
        img_batch = data[0].to(device)
        noise = diffusion.ddim_reverse_sample_loop(
            model,
            img_batch,
            clip_denoised=False,
            device=device,
            progress=True,
        )
        recon_sample = diffusion.ddim_sample_loop(
            model,
            (args.batch_size, 3, args.image_size, args.image_size),
            noise=noise,
            clip_denoised=True,
            device=device,
            eta=args.eta,
            progress=True,
        )
        torchvision.utils.save_image(
            (torch.cat([img_batch, recon_sample], dim=0) + 1.) / 2.,
            f"results/recon_ffhq_clip=FT.png",
            nrow=4,
        )

    # ...

I encounter the same problem using Imagenet-pretrained models. If the reconstruction error is large, how to guarantee the cycle consistency?


RKE2/K3s cluster cannot provision successfully using cluster scoped registry

Seen in v2.6-head. To reproduce:

Install Rancher normally with the default private registry
Go to the global settings and set system-default-registry to an invalid global registry. I'm calling it invalid.io
Provision an RKE2 cluster in Digital Ocean. In the Registries section of the cluster configuration form, enter a valid private registry. I'm using docker.io:

If you click Edit as YAML, it appears as if the registry has been correctly configured at rkeConfig.machineSelectorConfig[0].config['system-default-registry']:

Finish creating the cluster
The cluster gets stuck in provisioning mode, with the message "Waiting for viable init node"

7. If you delete the cluster from the UI, it doesn't get removed. It just gets stuck waiting for the machine to delete.
The expected behavior is that the cluster gets created successfully because its images are supposed to be pulled from the valid registry, and it is supposed to be able to be deleted even if it gets stuck.
If the above mentioned YAML config is invalid, it's a frontend issue. If it's valid, it's a backend issue.

Transferred this from Dashboard repo since the UI appears to be doing the correct thing here with the YAML.

I've looked into this a bit and it seems like this is due to how we have implemented machine provisioning with CAPI.
When provisioning RKE1 clusters, the rancher-machine binary is stored locally called directly (either from a jail or from the local /usr/bin).
When provisioning RKE2 clusters, the rancher-machine image is pulled from a registry during the execution of a machine-provision job, and the image name is prefixed with the global registry name here. So, when an invalid global registry is set, RKE2 will fail to pull the rancher-machine image and provisioning will be unable to proceed.
A potential fix for this issue is to incorporate the cluster-level registry when pulling the rancher-machine image during the machine-provision job. Although, it can be argued that the current behavior is by design, as it is the rancher server which provisions nodes and not the downstream cluster. The rancher server does not have a concept of a cluster level registry, only the global registry.

it can be argued that the current behavior is by design, as it is the rancher server which provisions nodes and not the downstream cluster

Ah, that makes sense. Is there any way a user could tell from the UI if the cluster scoped registry was successfully used during cluster provisioning, or if the global registry was used as a fallback for all images?

@catherineluse Yes, if the user visits Cluster Explorer > Pods > All namespaces, the user will be able to verify where images were pulled

OK. In that case, this issue isn't blocking any UI work getting done. To me it would seem reasonable to close it as expected behavior since, as Harrison pointed out, node provisioning does seem outside of the cluster scope and would require the global registry to be valid. So it is expected that both cluster registry and global registry would have to be valid.

Yes, I agree.  Closing out this issue, as it has been discovered this is not a valid or supported use case


Added functionality to share a message vs chat

Closes #388

After I click the "share message", I only got this "message shared", but how should I share to others without a link?

After I click the "share message", I only got this "message shared", but I don't know how should I share to others without a link?

For now I changed it to display the URL in the prompt itself but would need to consult the team for how are we planning to display the URL for this

Copy the URL to clipboard, let user know it is copied to their clipboard

@WangGithub0 , Could you please review this whenever you get a chance?

I wanna make sure one thing,  should shared message show the sharing time or the create time?

I wanna make sure one thing, should shared message show the sharing time or the create time?

@humphd

This behavior is ok with me, not sure which behavior @humphd was looking for

I would show the created time to match what we do elsewhere.

@kliu57 Are we good to merge this then?

@kliu57 Are we good to merge this then?

Rachit if you don't have time to fix it today, just create a follow up issue and link it to this PR. Then you can go ahead and merge it.

@Rachit1313 Can you take a look at this

@kliu57 Are we good to merge this then?

Rachit if you don't have time to fix the created time today, just create a follow up issue and link it to this PR. Then you can go ahead and merge it.

No I'm just confused here... so aa of now it has created time but not the shared time... Do we need shared time or created time?

@kliu57 Are we good to merge this then?

Rachit if you don't have time to fix the created time today, just create a follow up issue and link it to this PR. Then you can go ahead and merge it.

No I'm just confused here... so aa of now it has created time but not the shared time... Do we need shared time or created time(time when shared chat was created)?

We want it to be showing the created time. So both chats should show the exact same time since they are both the created time. In yumei's screenshot from yesterday afternoon you can see that the times are different. We need the times to be the same (Created time)

@Rachit1313 I think there is some confusion here. So, "Created time" does not mean the time that the shared chat was created.

Got your point... Fill fix it in a follow up PR.

@kliu57 , We can just land it for now and create another PR for time.

@kliu57 , We can just land it for now and create another PR for time.

Hey rachit please file a follow up issue and then link it to this pr


run_keybase results in permission denied

I'm installing Keybase on Ubuntu Server 14.04. I've created a new user specifically for Keybase, gituser, as my dedicated server provider only provides root user by default. I was able to install Keybase from the .deb file, but I get the following error when trying run_keybase:
mkdir: cannot create directory ‘/run/user/0’: Permission denied

gituser is a regular user in groups gituser and sudo, and the server is otherwise untouched from fresh install. I'm wanting to set this user up with Keybase so that I can easily sync my local code with my server code using Keybase's git repositories.
I have tried running run_keybase as the target user by switching to the user through su and by using login to log in directly to an interactive shell.

Nevermind, I should have tried actually ssh'ing into this user directly.


[AutoPR] network/resource-manager

Created to accumulate context: network/resource-manager

(message created by the CI based on PR content)
Installation instruction
Package azure-mgmt-network
You can install the package azure-mgmt-network of this PR using the following command:
pip install "git+https://github.com/Azure/azure-sdk-for-python@restapi_auto_network/resource-manager#egg=azure-mgmt-network&subdirectory=azure-mgmt-network"
You can build a wheel to distribute for test using the following command:
pip wheel --no-deps "git+https://github.com/Azure/azure-sdk-for-python@restapi_auto_network/resource-manager#egg=azure-mgmt-network&subdirectory=azure-mgmt-network"
If you have a local clone of this repository, you can also do:

git checkout restapi_auto_network/resource-manager
pip install -e ./azure-mgmt-network

Or build a wheel file to distribute for testing:

git checkout restapi_auto_network/resource-manager
pip wheel --no-deps ./azure-mgmt-network

Direct download
Your files can be directly downloaded here:

azure_mgmt_network-2.0.0rc2-py2.py3-none-any.whl
azure-mgmt-network-2.0.0rc2.zip


Performance issues with DPP problems

Describe the bug
When I replace parameters with constants to make the problem DPP the solver takes dramatically longer for larger problems the moment the problem becomes DPP.
To Reproduce
Data files and code to reproduce this can be found here https://github.com/kmonson/cvxpy-performance.
git clone https://github.com/kmonson/cvxpy-performance
cd cvxpy-performance
pip install -r requirements.txt
./test.sh

This will run the non-dpp then dpp versions of the same problem at multiple problem sizes.
Expected behavior
Problem compilation and solving should take roughly the same amount of time for both DPP and non-DPP problems for the first solve.
Version

OS: OSX
CVXPY Version: 1.1.0 or greater.

I should add that removing constraints loop here https://github.com/kmonson/cvxpy-performance/blob/master/solver_dpp.py#L136 is not all of the problem and while I can refactor it some I can't really eliminate it. Besides, it compiles quickly if the problem is not DPP.

This is a know issue. DPP compilation will likely never be as fast as non-DPP compilation -- the first compilation of a parametrized program performs significantly more work, to dramatically speed up subsequent compilations.
That said the overhead is much larger than we would like. We would like to fix this, but it is a substantial engineering effort and not currently on our near-term roadmap.
For now, DPP may help for some problems with a few parameters (say hundreds or a few thousand), for which you can pay the overhead of the first compilation and for which you really need subsequent solves to be fast. In cases where the overhead is prohibitive, you can replace parameters with constants.

OK, that is what I was afraid of. I'm writing up a feature request to hopefully help with this problem.

Is there a way I can easily tell cvxpy to not treat the problem as DPP even if it is?
My program runs one large problem (8760 hours long) or 365 24 hour long problems or something in between depending on the user needs. From my benchmarking there is a pretty clear line at which it's beneficial to purposefully switch off DPP. It would nice if I could do this without modifying how the problem is built based on user parameters.

I am also encountering issues with overhead and DPP compilation.  There are many circumstances where I want to use Parameters, but not pay the overhead associated with DPP compilation.  Rewriting code to replace the parameters with constants would be troublesome and I think the logic should exist within cvxpy to disable DPP, perhaps converting parameters to constants during problem formation.  What would it take to add a flag for this?

@kmonson , @sjschneider : this is a reasonable request. We have plans to decrease the overhead of DPP compilation, but these plans are not on our near-term roadmap. Having a flag that disables parametrized compilation in the meantime is, I think, perfectly reasonable.
We will look into adding something like this, and will give an update on this thread once we have a design.

@kmonson @sjschneider, for the time being you can do something like
scale = cp.Parameter(shape=(1,), value=1.0)
prob = cp.Problem(scale**2 * objective, constraints)

If you make that change then the problem is no longer DPP (no longer affine in Parameter objects) so parameters will be evaluated before canonicalization. This is just a quick hack though and might not help as much as a proper fix.

Thanks @akshayka @rileyjmurray.
I opened a ticket for this: #1340
I ended up with this solution. I don't know if it's any better or worse.
        if not self.use_dpp:
            # Inject a nonsense constraint to make the problem non DPP
            constraints.append(
                cvxpy.Parameter(value=0) * cvxpy.Parameter(value=0) >= 0
            )

Follow-up: we just resolved #1340 with PR #1669. I'll leave this issue open since technically "performance issues with DPP problems" isn't resolved.


sign_priority doesn't seem to work

Description
I have set the priority to 100 but I still have the lsp diagnostics first, I don't have priority related settings for my lsp configs so I guess it's the default.
Neovim version
v0.7.0
Operating system and version
Arch
Expected behavior
To override lsp diagnostics
Actual behavior
not overriding  lsp sign column
Minimal config
vim.o.packpath = '/tmp/nvim/site'

local plugins = {
  gitsigns = 'https://github.com/lewis6991/gitsigns.nvim',
  -- ADD OTHER PLUGINS _NECESSARY_ TO REPRODUCE THE ISSUE
}

for name, url in pairs(plugins) do
  local install_path = '/tmp/nvim/site/pack/test/start/'..name
  if vim.fn.isdirectory(install_path) == 0 then
    vim.fn.system { 'git', 'clone', '--depth=1', url, install_path }
  end
end

require('gitsigns').setup{
  debug_mode = true, -- You must add this to enable debug messages
  -- ADD GITSIGNS CONFIG THAT IS _NECESSARY_ FOR REPRODUCING THE ISSUE
}

-- ADD INIT.LUA SETTINGS THAT IS _NECESSARY_ FOR REPRODUCING THE ISSUE

Steps to reproduce

nvim --clean -u minimal.lua
...

Gitsigns debug messages
No response

Sorry I don't have a minimal config right now but here is the packages I have for lsp
	use {
		'neovim/nvim-lspconfig',
		'williamboman/nvim-lsp-installer',
	}
	use 'onsails/lspkind-nvim'
	use 'tami5/lspsaga.nvim'

I can check, but the priority is just sent to the sign commands. We don't do anything complicated with them.
You can try running sign_getplaced to see what signs and priorities are being applied.

I tested sign_getplaced with one modification in my file, and this what it returns me : [{'signs': [], 'bufnr': 2}]

Ok, I see that the priority is still set at 6 even though I have these params :
require('gitsigns').setup {
	sign_priority = 100,
	debug_mode = true,
}

after the update I still get the same group
{ {
    bufnr = 2,
    signs = { {
        group = "gitsigns_ns",
        id = 122,
        lnum = 122,
        name = "GitSignsChange",
        priority = 6
      } }
  } }

Ok I was based on the tag release, now it works ! , priority at 100, Thanks !


Need instructions for creating releases

Originally submitted to Google Code by @pekkaklarck on 11 Sep 2010

We need to document the releasing procedure of this library in a separate wiki page. The instructions should also explain how to generate the library documentation. This will help new people to create releases and prevents problems such as explained in  issue 134  and comments to revision 90699cae52.

Originally submitted to Google Code by @pekkaklarck on 11 Sep 2010

Here's fast instructions on how to generate the documentation:

Get libdoc.py:
https://code.google.com/p/robotframework/wiki/LibraryDocumentationTool

Run command like this:
python path/to/libdoc.py --output doc/SeleniumLibrary.html src/SeleniumLibrary

We used to have libdoc.py in the SeLib source code via svn-external link, but we lost that when we switched to Hg. At that time we also had a script to generate the documentation so you didn't need to remember the libdoc.py options. Would it now make sense to put the latest libdoc.py version into SeLib version control although we needed to remember to update it manually?

Originally submitted to Google Code by @pekkaklarck on 11 Sep 2010

And here's examples of the similar Releasing pages we have with other projects:
https://code.google.com/p/robotframework/wiki/Releasing
https://code.google.com/p/robotframework-mabot/wiki/Releasing

Originally submitted to Google Code by @yanne on 11 Nov 2010

Made a sketch: https://code.google.com/p/robotframework-seleniumlibrary/wiki/Releasing

Originally submitted to Google Code by @pekkaklarck on 15 Nov 2010

The documentation can nowadays  be generated with doc/generate.py script.

Originally submitted to Google Code by @pekkaklarck on 15 Nov 2010

I did some enhancements to the Releasing wiki page. It ought to be good enough now.


Make docs fixes

Codecov Report

Merging #69 (83def8e) into master (a107b78) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master       #69   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           20        12    -8
  Lines          286       187   -99
=========================================
- Hits           286       187   -99

Impacted Files
Coverage Δ

...ges/talker_logger/lib/src/utils/console_utils.dart

...logger/lib/src/models/log_details/log_details.dart

...r/lib/src/utils/filter/loglevel_logger_filter.dart

.../src/utils/formatter/colored_logger_formatter.dart

...ogger/lib/src/settings/talker_logger_settings.dart

...ker_logger/lib/src/models/log_level/log_level.dart

packages/talker_logger/lib/src/talker_logger.dart

...src/utils/formatter/extended_logger_formatter.dart

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


3D point tracking?

Hi!
I wanted to see if this could  be used to track 3d points(x,y,z) in space, rather than just 2d (x,y) points?
Thanks
Kenneth

Ended up modifying the code to work with 3D objects.
Has anyone changed the Kalman Filter to an IMM filter? I plan on doing this but I wonder if it's better to do some before the tracker or after the tracker.

Hey, this sounds cool! If you wish to write a PR to add this for Norfair, we may be interested if the added complexity is low.

For anyone that has the same problem, we added this reference PR https://github.com/tryolabs/norfair/pull/117


SED-1636-New query builder logic

Differences:
1. Buckets count is always respected in the response (excepting the extreme situation described in the below example)
2. The buckets are always combined equally- there will be no spikes in the beginning, middle, or end of the timeseries, because of unlinear grouping (e.g the last interval is shorter than the other intervals)
3. There is only one place where the query building logic happens (`build()` method). All the parameters are accumulated, and they are combined just in the end.

I will summarize below the changes via a few example, so you can get the actual behavior:
Let's assume we have a pipeline with resolution = 500
There are 2 big options when asking for an aggregation: Window (custom resolution in response) and Split (number of buckets)
Window examples:
range [0, 2000) =>this will create one bucket / source resolution. result keys = [0, 500, 1000, 1500)
range [0, 2000) + window(600) => window will be rounded to the closest source multiplier = 500. same result as above
range [0, 3000) + window(1200) => result keys = [0, 1000, 2000], and result resolution = 1000
range [400, 2000) => the range will alyways start from the lower source interval multiplier, so [0, 2000) in our case
Split examples:
range [0, 4000) + split(2) => result = [0, 2000)
range [0, 4000) + split(3) => range is transformed to [0, 4500], with resolution 1500, the result keys will be [0, 1500, 3000)
range [0, 4000) + split(7) => range is transformed to [0, 7000)  because the resolution is too small, result being [0, 1000, 2000, 3000, 4000, 5000, 6000) - this is very unlikely to happen
range [0, 1000) + range(5) => this is the only situation when the buckets count is not respected, because the resolution don't allow us. [0, 500) is returned
This was tested with the frontend too.

@lucianbaciu the change looks mostly good and functional. I think the 3 changes requested would help the readability of the code.
Regarding:
range [0, 4000) + split(7) => range is transformed to [0, 7000)  because the resolution is too small, result being [0, 1000, 2000, 3000, 4000, 5000, 6000) - this is very unlikely to happen
It would be nicer in this case to resolve to a resolution of 500 and 8 buckets.  Between the range and number of buckets the range has an higher priority from my point of view.

@david-stephan I did it this way just to be a little more consistent. I think either way, it will have no bad effect overall. Let me know if you want me to change to work as described by you. Thanks!

@david-stephan I did it this way just to be a little more consistent. I think either way, it will have no bad effect overall. Let me know if you want me to change to work as described by you. Thanks!

Yes, please I think as a user I prefer to get a range closer to what I requested rather than the number of buckets.

@david-stephan - The range stays now at close as possible to the requested values, instead of buckets count which took priority


French translation

Hi
I have interests in your generator
Is it possible to have it in french? I can work on the files if you need help
Kind regards

@VikLeroy Sorry for the delayed response!
Localization is something I'd definitely like to offer. The issue of course is going to be getting all of the source data, and also keeping the bundle size to a reasonable one (dynamically importing the text files, maybe). Let me see if there are some things I can do to make this easier for people to contribute - it would definitely make sense to have someone who has knowledge of the localized text available in the game to contribute those words to the project. Or if you have any ideas as to how to update the project to better support localization, I am open to any and all suggestions you might have.
More soon!

I don't know how it's possible to do with your language.
If I take your example, you just have to change the name and the effect, so having a pointer in a file (XML?) to make your changes
murder: {
id: '4b50bb64-da08-448b-81ad-ad7765cf0e7d',
name: 'Murder',
effect: "One (1) other character in culprit's location dies.",
loopEstimate: 0,
==>
murder: {
id: '4b50bb64-da08-448b-81ad-ad7765cf0e7d',
name: murdername
effect: murdereffect
loopEstimate: 0,
And in your xml file

Murder
Meurtre

One (1) other character in culprit's location dies.
Un (1) autre personnage que le coupable meurt.

etc

And you can add as many languages as you want.

I am taking a look at how to use https://www.i18next.com/ to make this possible. It's going to take a little bit of time to figure out how to integrate it into what is already written but it would definitely make localization far easier to implement across various languages.

At long, long last, I finally got around to this... over a year later. Sorry for the delay, things have been really busy:
https://github.com/alephtwo/tragedy-looper-generator/blob/main/src/static/locales/en.json
I'm working on adding a language switcher to the UI - but for now it's all set up to allow for full localization of all strings that a user will see. I don't think I missed any, but if I did, please let me know.
@VikLeroy if you're still around and still interested, I'd be happy to accept a fr.json version of that file linked above for French translation!

Nice, I will look at that after my holidays.
Thank you

There are some translations already available that might be of use:
https://boardgamegeek.com/filepage/147959/recueils-de-tragedies-des-extensions-en-francais
I will probably start a branch and copy over some of the terms and whatnot - I'll update this issue if I do.


need to install python lxml for iptorrents.com search to work

is lxml and libxml2 and libxslt installed in the docker image. I have them installed on my base image but this provider fails to produce results could also be that this needs to be updated since there was a recent change in the source builds.

it also could be that the image needs to be updated to current git version because there was an issue i installed an ubuntu vm and latest couchpotato and iptorrents search works as intended so its either an lxml dependency or need an update

I have forced a rebuild of the Docker image. Please let me know if this continues.

is lxml included in your docker image i think that might be the issue just forced an update and it doesnt show any results when searching a movie from iptorrents but will on my ubuntu xen vm
it needs py lxml dependicies
the issue is described more at this page: https://github.com/RuudBurger/CouchPotatoServer/issues/4874
thank you for getting to this issue i will continue to run my vm and try to help you diagnose this. Would you like an invite to iptorrents?

i noticed this guys docker image is based off yours and has the dependencies install in the script maybe this helps as well
https://registry.hub.docker.com/u/vlefevre86/couchpotato/dockerfile/
iptorrents uses imdb searching is why it doesnt work like torrentleech for instance this site is a great resource for older movies that arent on nzbs.org

Is this issue fixed based on what you guys have discussed so far?  From what I can tell Couchpatoto 3.01 for Windows comes with its own python and its own lxml yet IPT is not working.

No not at all the new issue is from iptorrents changing their website format it just needs a simple line of code changed

Thanks, I have since become all set, running from source instead of the windows installer version.


WIP - SushiSwap Subgraph

This PR is large and a WIP. It would be a good idea to not merge yet as some things are still in flux/incomplete.
I will update the PR in the coming days with further information.

commit's subgraph for this PR: explorer


Added the file transfer function of the x/y/z modem

I often need to transfer some small files through the serial port because it is very convenient. It is best to support two ways :

drag the file to the window to send the file;
Enter the rz/sz command manually.

Nice suggestion, but I haven't used the x/y/z modem protocol to transfer files, maybe I'll research libraries to implement this later, or I'll implement the protocol