New Destination does not run setup tests (redshift)

Describe the bug
A new REDSHIFT destination is created with:
  trust_certificates = "true"
  trust_fingerprints = "true"
  run_setup_tests    = "true"

but in the fivetran console, it is INCOMPLETE and requires manual "Test connection" to change to CONNECTED
To Reproduce
resource "fivetran_destination" "destination_redshift" {
  group_id           = fivetran_group.group_for_everything.id
  service            = "redshift"
  time_zone_offset   = "0"
  region             = "GCP_US_EAST4"
  trust_certificates = "true"
  trust_fingerprints = "true"
  run_setup_tests    = "true"

  config {
    tunnel_host     = data.aws_cloudformation_export.bastion_elastic_ip_export.value
    tunnel_port     = 22
    tunnel_user     = "fivetran"
    host            = local.redshift_host
    port            = 5439
    auth_type       = "PASSWORD"
    user            = jsondecode(data.aws_secretsmanager_secret_version.fivetran_database_user_secret.secret_string)["username"]
    password        = jsondecode(data.aws_secretsmanager_secret_version.fivetran_database_user_secret.secret_string)["password"]
    database        = var.redshift_database
    connection_type = "SSHTunnel"
    cluster_region  = "us-east-2"
  }
}

Expected behavior
When
  trust_fingerprints = "true"
  run_setup_tests    = "true"

the setup should be CONNECTED without requiring any manual action
Logs & Output
ann@ann-work tf-fivetran-group % AWS_PROFILE="dbf" terraform plan -var-file="./$ENVIROMENT_LONG_NAME/$CDK_PREFIX.tfvars" -out=.terraform/$CDK_PREFIX.out
fivetran_group.group_for_everything: Refreshing state... [id=wafted_liturgy]
data.aws_cloudformation_export.fivetran_redshift_user_export_secret_arn: Reading...
data.aws_cloudformation_export.bastion_elastic_ip_export: Reading...
aws_ssm_parameter.ssm_fivetran_group_id_external_id_data_account: Refreshing state... [id=/data1-datainfra-v2/schema-v2/fivetranGroupId]
aws_secretsmanager_secret.fivetran_public_key_secret: Refreshing state... [id=arn:...]
aws_ssm_parameter.ssm_fivetran_group_id_external_id_app_account: Refreshing state... [id=/data1-datainfra-v2/schema-v2/appenvironment/fivetranGroupId]
data.aws_cloudformation_export.bastion_elastic_ip_export: Read complete after 0s [id=cloudformation-exports-us-east-2-data1-bastions-v2-tf-fivetran-group-elastic-ip]
data.aws_cloudformation_export.fivetran_redshift_user_export_secret_arn: Read complete after 0s [id=cloudformation-exports-us-east-2-data1-datainfra-v2-tf-fivetran-secret-arn]
data.aws_secretsmanager_secret.fivetran_database_user_secret_by_arn: Reading...
data.aws_secretsmanager_secret.fivetran_database_user_secret_by_arn: Read complete after 0s [id=arn:...]
data.aws_secretsmanager_secret_version.fivetran_database_user_secret: Reading...
data.aws_secretsmanager_secret_version.fivetran_database_user_secret: Read complete after 0s [id=arn:...|AWSCURRENT]
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:

create

Terraform will perform the following actions:

resource "aws_secretsmanager_secret_version" "fivetran_public_key" {

arn            = (known after apply)
id             = (known after apply)
secret_id      = "arn:..."
secret_string  = (sensitive value)
version_id     = (known after apply)
version_stages = (known after apply)
}

resource "fivetran_destination" "destination_redshift_" {

group_id           = "wafted_liturgy"

id                 = (known after apply)

last_updated       = (known after apply)

region             = "GCP_US_EAST4"

run_setup_tests    = true

service            = "redshift"

setup_status       = (known after apply)

time_zone_offset   = "0"

trust_certificates = true

trust_fingerprints = true

config {

auth_type                = "PASSWORD"
cluster_region           = "us-east-2"
connection_type          = "SSHTunnel"
database                 = "removed"
host                     = "removed"
is_private_key_encrypted = (known after apply)
password                 = (sensitive value)
port                     = 5439
public_key               = (known after apply)
tunnel_host              = "removed"
tunnel_port              = "22"
tunnel_user              = "fivetran"
user                     = (sensitive value)
}
}

Plan: 2 to add, 0 to change, 0 to destroy.
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Saved the plan to: .terraform/data1.out
To perform exactly these actions, run the following command to apply:
terraform apply ".terraform/data1.out"
Releasing state lock. This may take a few moments...
tf-fivetran-group % AWS_PROFILE="dbf" terraform apply .terraform/$CDK_PREFIX.out
fivetran_destination.destination_redshift_datainfra_v2: Creating...
fivetran_destination.destination_redshift_datainfra_v2: Still creating... [10s elapsed]
fivetran_destination.destination_redshift_datainfra_v2: Creation complete after 13s [id=wafted_liturgy]
aws_secretsmanager_secret_version.fivetran_public_key: Creating...
aws_secretsmanager_secret_version.fivetran_public_key: Creation complete after 1s [id=arn:...]
Releasing state lock. This may take a few moments...
Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
Plugin version:
Terraform v1.5.2
on darwin_arm64

provider registry.terraform.io/fivetran/fivetran v0.7.3
provider registry.terraform.io/hashicorp/aws v5.8.0

Additional context
Add any other context about the problem here.

Created an internal ticket to investigate the problem.
Thank you for report!

Seeing similar issue with S3 destinations:
terraform {
  required_version = "~> 1.4"
  required_providers {
    fivetran = {
      version = "1.0.0-pre"
      source = "fivetran/fivetran"
    }
    aws = {
      source  = "hashicorp/aws"
      version = "5.9.0"
    }
  }
}

resource "fivetran_group" "this" {
  name = "my-group"
}

resource "fivetran_destination" "this" {
  group_id           = fivetran_group.this.id
  service            = "new_s3_datalake"
  time_zone_offset   = "-5"
  region             = "AWS_US_EAST_1"
  trust_certificates = "true"
  trust_fingerprints = "true"
  run_setup_tests    = "true"

  config {
    bucket            = "my-s3-bucket"
    fivetran_role_arn = aws_iam_role.s3.arn
    prefix_path       = "my-path"
    region            = "us-east-1"
  }

I'm sorry, I am working on a totally different project now and don't have
cycles to go back.  I will come around to this again in about a month or so
I think, and will try again!
Thanks for the tip!
On Mon, Jul 31, 2023 at 9:33 AM Vitaly Mosin @.***>
wrote:

@ann8ty https://github.com/ann8ty could you please try to perform the
same with connection_type = "SshTunnel" instead of "SSHTunnel"?
It seems to me that these two cases are related.
—
Reply to this email directly, view it on GitHub
https://github.com/fivetran/terraform-provider-fivetran/issues/177#issuecomment-1658611276,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXLQTFIA4Z7BVLIIOK6RZX3XS7F5VANCNFSM6AAAAAA24AVJ4Q
.
You are receiving this because you were mentioned.Message ID:
@.***>

So this is partially working now, but I'm still getting a warning when setup tests run sometimes because Fivetran is unable to assume the role. If I had to guess, it's due to the role being setup immediately before the Fivetran destination is and the role / attached policies not having fully propagated yet. This would be due to how AWS handled propagation in IAM, but I'm wondering if this could be handled somehow in the Fivetran provider in the setup test through some type of retry mechanism. The logs do show 2 warnings with different request IDs, so I assume it already does retry?
Here is the code with some values redacted.
# ./modules/fivetran-foo-s3-destination/main.tf

################################################################################
# Providers
################################################################################
terraform {
  required_version = "~> 1.4"

  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "5.40.0"
    }
    fivetran = {
      source  = "fivetran/fivetran"
      version = "1.1.15"
    }
    time = {
      source  = "hashicorp/time"
      version = "0.9.1"
    }
  }
}

################################################################################
# Fivetran S3 Destination
################################################################################
data "aws_caller_identity" "current" {}
data "aws_region" "current" {}

locals {
  fivetran_aws_account_id = "834469178297"
  path                    = "${var.tenant}/some_path/"
}

data "aws_s3_bucket" "this" {
  bucket = var.s3_bucket
}

data "aws_iam_policy_document" "s3" {
  statement {
    actions = [
      "s3:DeleteObjectTagging",
      "s3:ReplicateObject",
      "s3:PutObject",
      "s3:GetObjectAcl",
      "s3:GetObject",
      "s3:DeleteObjectVersion",
      "s3:ListBucket",
      "s3:PutObjectTagging",
      "s3:DeleteObject",
      "s3:PutObjectAcl"
    ]
    effect = "Allow"
    resources = [
      "${data.aws_s3_bucket.this.arn}/${local.path}/*",
      data.aws_s3_bucket.this.arn
    ]
  }
}

resource "aws_iam_policy" "s3" {
  name   = "fivetran-${var.tenant}-s3"
  policy = data.aws_iam_policy_document.s3.json
}

data "aws_iam_policy_document" "glue" {
  statement {
    actions = [
      "glue:GetDatabase",
      "glue:UpdateDatabase",
      "glue:DeleteDatabase",
      "glue:CreateTable",
      "glue:GetTables",
      "glue:CreateDatabase",
      "glue:UpdateTable",
      "glue:BatchDeleteTable",
      "glue:DeleteTable",
      "glue:GetDatabases",
      "glue:GetTable"
    ]
    effect = "Allow"
    resources = [
      "arn:aws:glue:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:*"
    ]
  }
}

resource "aws_iam_policy" "glue" {
  name   = "fivetran-${var.tenant}-glue"
  policy = data.aws_iam_policy_document.glue.json
}

data "aws_iam_policy_document" "fivetran_trust" {
  statement {
    actions = ["sts:AssumeRole"]
    effect  = "Allow"
    condition {
      test     = "StringEquals"
      variable = "sts:ExternalId"
      values   = [fivetran_group.this.id]
    }
    principals {
      identifiers = [local.fivetran_aws_account_id]
      type        = "AWS"
    }
  }
}

resource "aws_iam_role" "s3" {
  name               = "fivetran-${var.tenant}-s3"
  assume_role_policy = data.aws_iam_policy_document.fivetran_trust.json
  managed_policy_arns = [
    aws_iam_policy.glue.arn,
    aws_iam_policy.s3.arn
  ]
}

################################################################################
# Fivetran
################################################################################
resource "fivetran_group" "this" {
  name = "${var.tenant}_foo"
}

resource "fivetran_destination" "this" {
  group_id         = fivetran_group.this.id
  service          = "new_s3_datalake"
  region           = "AWS_US_EAST_1"
  time_zone_offset = "-5"
  run_setup_tests  = "true"

  config {
    bucket            = var.s3_bucket
    fivetran_role_arn = aws_iam_role.s3.arn
    prefix_path       = local.path
    region            = data.aws_s3_bucket.this.region
  }
}

I'm calling this with:
# main.tf

module "fivetran_foo_s3_destination" {
  for_each = toset(["test001"])
  source = "./modules/fivetran-foo-s3-destination"

  tenant    = each.key
  s3_bucket = "REDACTED"
}

And the logs when I run terraform apply:
➜  terraform-test git:(main) ✗ tf apply -auto-approve
module.fivetran_foo_s3_destination["test001"].data.aws_s3_bucket.this: Reading...
module.fivetran_foo_s3_destination["test001"].data.aws_caller_identity.current: Reading...
module.fivetran_foo_s3_destination["test001"].data.aws_region.current: Reading...
module.fivetran_foo_s3_destination["test001"].data.aws_region.current: Read complete after 0s [id=us-east-1]
module.fivetran_foo_s3_destination["test001"].data.aws_caller_identity.current: Read complete after 0s [id=REDACTED]
module.fivetran_foo_s3_destination["test001"].data.aws_iam_policy_document.glue: Reading...
module.fivetran_foo_s3_destination["test001"].data.aws_iam_policy_document.glue: Read complete after 0s [id=575410248]
module.fivetran_foo_s3_destination["test001"].data.aws_s3_bucket.this: Read complete after 0s [id=REDACTED]
module.fivetran_foo_s3_destination["test001"].data.aws_iam_policy_document.s3: Reading...
module.fivetran_foo_s3_destination["test001"].data.aws_iam_policy_document.s3: Read complete after 0s [id=2949107403]

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create
 <= read (data resources)

Terraform will perform the following actions:

  # module.fivetran_foo_s3_destination["test001"].data.aws_iam_policy_document.fivetran_trust will be read during apply
  # (config refers to values not yet known)
 <= data "aws_iam_policy_document" "fivetran_trust" {
      + id   = (known after apply)
      + json = (known after apply)

      + statement {
          + actions = [
              + "sts:AssumeRole",
            ]
          + effect  = "Allow"

          + condition {
              + test     = "StringEquals"
              + values   = [
                  + (known after apply),
                ]
              + variable = "sts:ExternalId"
            }

          + principals {
              + identifiers = [
                  + "834469178297",
                ]
              + type        = "AWS"
            }
        }
    }

  # module.fivetran_foo_s3_destination["test001"].aws_iam_policy.glue will be created
  + resource "aws_iam_policy" "glue" {
      + arn         = (known after apply)
      + id          = (known after apply)
      + name        = "fivetran-test001-glue"
      + name_prefix = (known after apply)
      + path        = "/"
      + policy      = jsonencode(
            {
              + Statement = [
                  + {
                      + Action   = [
                          + "glue:UpdateTable",
                          + "glue:UpdateDatabase",
                          + "glue:GetTables",
                          + "glue:GetTable",
                          + "glue:GetDatabases",
                          + "glue:GetDatabase",
                          + "glue:DeleteTable",
                          + "glue:DeleteDatabase",
                          + "glue:CreateTable",
                          + "glue:CreateDatabase",
                          + "glue:BatchDeleteTable",
                        ]
                      + Effect   = "Allow"
                      + Resource = "arn:aws:glue:us-east-1:REDACTED:*"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + policy_id   = (known after apply)
      + tags_all    = (known after apply)
    }

  # module.fivetran_foo_s3_destination["test001"].aws_iam_policy.s3 will be created
  + resource "aws_iam_policy" "s3" {
      + arn         = (known after apply)
      + id          = (known after apply)
      + name        = "fivetran-test001-s3"
      + name_prefix = (known after apply)
      + path        = "/"
      + policy      = jsonencode(
            {
              + Statement = [
                  + {
                      + Action   = [
                          + "s3:ReplicateObject",
                          + "s3:PutObjectTagging",
                          + "s3:PutObjectAcl",
                          + "s3:PutObject",
                          + "s3:ListBucket",
                          + "s3:GetObjectAcl",
                          + "s3:GetObject",
                          + "s3:DeleteObjectVersion",
                          + "s3:DeleteObjectTagging",
                          + "s3:DeleteObject",
                        ]
                      + Effect   = "Allow"
                      + Resource = [
                          + "arn:aws:s3:::REDACTED/test001/foos//*",
                          + "arn:aws:s3:::REDACTED",
                        ]
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + policy_id   = (known after apply)
      + tags_all    = (known after apply)
    }

  # module.fivetran_foo_s3_destination["test001"].aws_iam_role.s3 will be created
  + resource "aws_iam_role" "s3" {
      + arn                   = (known after apply)
      + assume_role_policy    = (known after apply)
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "fivetran-test001-s3"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)
    }

  # module.fivetran_foo_s3_destination["test001"].fivetran_destination.this will be created
  + resource "fivetran_destination" "this" {
      + group_id           = (known after apply)
      + id                 = (known after apply)
      + region             = "AWS_US_EAST_1"
      + run_setup_tests    = true
      + service            = "new_s3_datalake"
      + setup_status       = (known after apply)
      + time_zone_offset   = "-5"
      + trust_certificates = (known after apply)
      + trust_fingerprints = (known after apply)

      + config {
          + always_encrypted         = (known after apply)
          + auth                     = (known after apply)
          + auth_type                = (known after apply)
          + bucket                   = "REDACTED"
          + cloud_provider           = (known after apply)
          + connection_method        = (known after apply)
          + connection_type          = (known after apply)
          + create_external_tables   = (known after apply)
          + data_format              = (known after apply)
          + enable_remote_execution  = (known after apply)
          + external_id              = (known after apply)
          + fivetran_role_arn        = (known after apply)
          + is_private_key_encrypted = (known after apply)
          + is_private_link_required = (known after apply)
          + is_redshift_serverless   = (known after apply)
          + num_of_partitions        = (known after apply)
          + port                     = (known after apply)
          + prefix_path              = "test001/foos/"
          + public_key               = (known after apply)
          + region                   = "us-east-1"
          + replication_factor       = (known after apply)
          + sasl_mechanism           = (known after apply)
          + schema_compatibility     = (known after apply)
          + schema_registry          = (known after apply)
          + security_protocol        = (known after apply)
          + snowflake_cloud          = (known after apply)
          + tunnel_port              = (known after apply)
        }
    }

  # module.fivetran_foo_s3_destination["test001"].fivetran_group.this will be created
  + resource "fivetran_group" "this" {
      + created_at   = (known after apply)
      + id           = (known after apply)
      + last_updated = (known after apply)
      + name         = "test001_foos"
    }

Plan: 5 to add, 0 to change, 0 to destroy.
module.fivetran_foo_s3_destination["test001"].fivetran_group.this: Creating...
module.fivetran_foo_s3_destination["test001"].fivetran_group.this: Creation complete after 0s [id=twerp_cette]
module.fivetran_foo_s3_destination["test001"].data.aws_iam_policy_document.fivetran_trust: Reading...
module.fivetran_foo_s3_destination["test001"].aws_iam_policy.s3: Creating...
module.fivetran_foo_s3_destination["test001"].data.aws_iam_policy_document.fivetran_trust: Read complete after 0s [id=21447609]
module.fivetran_foo_s3_destination["test001"].aws_iam_policy.glue: Creating...
module.fivetran_foo_s3_destination["test001"].aws_iam_policy.s3: Creation complete after 0s [id=arn:aws:iam::REDACTED:policy/fivetran-test001-s3]
module.fivetran_foo_s3_destination["test001"].aws_iam_policy.glue: Creation complete after 0s [id=arn:aws:iam::REDACTED:policy/fivetran-test001-glue]
module.fivetran_foo_s3_destination["test001"].aws_iam_role.s3: Creating...
module.fivetran_foo_s3_destination["test001"].aws_iam_role.s3: Creation complete after 1s [id=fivetran-test001-s3]
module.fivetran_foo_s3_destination["test001"].fivetran_destination.this: Creating...
module.fivetran_foo_s3_destination["test001"].fivetran_destination.this: Creation complete after 2s [id=twerp_cette]
╷
│ Warning: Setup Tests for destination failed on creation. Running post-creation attempt.
│
│   with module.fivetran_foo_s3_destination["test001"].fivetran_destination.this,
│   on modules/fivetran-foo-s3-destination/main.tf line 126, in resource "fivetran_destination" "this":
│  126: resource "fivetran_destination" "this" {
│
│ [{S3 Read and write access test FAILED com.amazonaws.services.securitytoken.model.AWSSecurityTokenServiceException: User: arn:aws:iam::834469178297:user/REDACTED
│ is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::REDACTED:role/fivetran-test001-s3 (Service: AWSSecurityTokenService; Status Code:
│ 403; Error Code: AccessDenied; Request ID: 3f888dbb-9622-430f-9452-033b45f91efd; Proxy: null)}]
╵
╷
│ Warning: Setup Tests for destination failed.
│
│   with module.fivetran_foo_s3_destination["test001"].fivetran_destination.this,
│   on modules/fivetran-foo-s3-destination/main.tf line 126, in resource "fivetran_destination" "this":
│  126: resource "fivetran_destination" "this" {
│
│ [{S3 Read and write access test FAILED com.amazonaws.services.securitytoken.model.AWSSecurityTokenServiceException: User: arn:aws:iam::834469178297:user/REDACTED
│ is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::REDACTED:role/fivetran-test001-s3 (Service: AWSSecurityTokenService; Status Code:
│ 403; Error Code: AccessDenied; Request ID: 04fef41c-5fb5-4544-a90b-40a489b60f1b; Proxy: null)}]
╵

Apply complete! Resources: 5 added, 0 changed, 0 destroyed.

I've switched over to SshTunnel, but ran into an issue where the config.public_key is now blank, which I will log.

working as of 1.1.16


jnp.array.base

i wonder if jax can accomodate the .base call that numpy has to determine the base memory object for a array.
Example:
import jax.numpy as jnp
a = jnp.arange(3)
b = a[::-1]
assert(id(a.base)==id(b))

Alternatively, are there other tools to determine whether a specific array is a copy or a view of another jnp array?

This isn't as relevant for JAX, as JAX works a bit differently than numpy. Unlike NumPy, JAX arrays are read-only, so you don't have to worry about things like in-place updates affecting another view. Further, a buffer-backed JAX DeviceArray will never be a view of another: single operations will always result in the creation of a new buffer. However when a sequence of operations is JIT-compiled, the compiler generally will rearrange and fuse operations so that array copies are avoided in the compiled result. For that reason, inspection of the array buffer id is not really that useful or meaningful in JAX.


bug: running cdo command on quickfix window of trouble throws errors

Did you check docs and existing issues?

[X] I have read all the trouble.nvim docs
[X] I have updated the plugin to the latest version before submitting this issue
[X] I have searched the existing issues of trouble.nvim
[X] I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)
NVIM v0.11.0-dev-693+g9762c5e34
Operating system/version
Ubuntu 24.04 WSL2
Describe the bug
Running :cdo %s/vim/trial/g after running :vimgrep vim init.lua results in errors before replacing the text in the current buffer.
Steps To Reproduce

Run :vimgrep vim init.lua
Run :cdo %s/vim/trial/g
You can see that many errors popup before the text is replaced.

Expected Behavior
No errors should popup.
Repro
Regular lsp with trouble setup with the following auto command to open trouble quick fix window whenever copen is called to be set.
	vim.api.nvim_create_autocmd("BufRead", {
		callback = function(ev)
			if vim.bo[ev.buf].buftype == "quickfix" then
				vim.schedule(function()
					vim.cmd("cclose")
					vim.cmd("Trouble qflist open")
				end)
			elseif vim.bo[ev.buf].buftype == "loclist" then
				vim.schedule(function()
					vim.cmd("lclose")
					vim.cmd("Trouble loclist open")
				end)
			end
		end,
	})

This is relavant!

Hi! Apparantly the errors seem to not come anymore. The mistake might be related to some configuration code of mine. Sorry for opening this sisue.


depfile as separate build step

I want to use ninja with a tool that generates dependencies as a separate build step. These dependencies are not necessary when building from scratch, but they can be used after an initial (full) build to correctly rebuild targets when source files change. In make, I do something roughly like
# This generates an unpredictable set of objects (one per logical unit, where
# each source file may contain multiple units). It's equivalent to running
# incremental_build once for each source file.
my.lib:
	initial_build -l $@ foo.src baz.src

%.o: | my.lib
	incremental_build -l my.lib $^

%.bin: | my.lib
	link_binary -l my.lib $@

# Note that dependencies cannot be generated until after we link the binaries
my.d: foo.bin qux.bin | my.lib
	generate_dependencies -l my.lib $@

include my.d

Where library.d contains dependencies like
foo.o: foo.src
bar.o: foo.src
baz.o: baz.src
qux.o: qux.src
foo.bin: foo.o bar.o baz.o
qux.bin: qux.o baz.o

On the first build, the incremental_build rule is never executed, but once library is created, incremental_build will be used. This is not an ideal solution, but the tool is rather constraining in this regard.
I would like to replace my makefiles with ninja, as I find it difficult to manage all the different rules. However, I could not figure out the right way to replicate the above setup. I tried something like
rule initial
	command = initial_build -l $out $srcs # Why isn't there an $in_order ?
rule incremental
	command = incremental_build -l my.lib $in # This won't work because it should actually be $in_implicit
rule link
	command = link_binary -l my.lib $out
rule gendeps
	command = generate_dependencies -l my.lib $out

build my.lib: initial
	srcs = foo.src baz.src
# We don't actually know what objects we have until we actually run a build...
build foo.o: incremental || my.dd
	dyndep = my.dd
build bar.o: incremental || my.dd
	dyndep = my.dd
build baz.o: incremental || my.dd
	dyndep = my.dd
build qux.o: incremental || my.dd
	dyndep = my.dd
build foo.bin: link || my.lib
	# Here ninja complains that my.d isn't in the dependencies, but if we add it things are circular
	dyndep = my.dd
build qux.bin: link || my.lib
	dyndep = my.dd
build my.d: gendeps | foo.bin qux.bin || my.lib

So dyndeps won't work here. But we can't use depfile either, since the dependencies aren't generated as part of the build steps. Maybe I can make build.ninja depend on my.d and regenerate the ninja file whenever the dependencies change?

In  a nutshell, what you are trying to do is not directly possible with Ninja.
I.e. depfiles and dyndeps files can only add dependencies between input/output paths (a.k.a. "Nodes"  in the source tree) and existing build statements (a.k.a. "Edges"). There is no way to create new edges dynamically, like the Make pattern matching allows. And this is by design, to keep Ninja fast.

OK, so lets try reorganizing this in a different way. If you notice, incremental_build never actually references any of the object files, just the source files. So what if I rewrote the ninja file like
rule initial
	command = initial_build -l $out $srcs
rule incremental
	command = incremental_build -l my.lib $in
rule link
	command = link_binary -l my.lib $out
	depfile = $out.d
rule gendeps
	command = generate_dependencies -l my.lib | postprocess && touch $out

build my.lib: initial
	srcs = foo.src baz.src
build foo.stamp: incremental foo.src
build baz.o: incremental baz.src
build qux.o: incremental qux.src
build foo.bin: link
build qux.bin: link
build foo.bin.d qux.bin.d: gendeps | foo.bin qux.bin || my.lib

And processed the depfile to generate something like
# foo.bin.d
foo.bin: foo.stamp bar.stamp
# qux.bin.d
qux.bin: qux.stamp bar.stamp

I'm away from the project atm, so I can't try this out, but it seems much closer to what ninja can do. Will I run into trouble with generating the depfiles in one step?


bug: when the Promise is invalid, installing it via Promise release gives you no feedback

Steps to reproduce

Create an invalid promise
Add the following label to it: kratix.io/promise-version: v1.0.0+beta.1
Try to install this promise
See that it fails
Create a Promise Release pointing to this invalid promise

apiVersion: platform.kratix.io/v1alpha1
kind: PromiseRelease
metadata:
  name: promise
spec:
  version: v1.0.0+beta.1
  sourceRef:
    type: http
    url: <url>

Apply the Promise release

Expected
Some feedback
Actual
None

By feedback, I'm assuming it to be the PromiseRelease's status and maybe an event recorded for it. I wish to give it a try.
/assign
Any idea why we're skipping the error from CreateOrUpdate here?
https://github.com/syntasso/kratix/blob/f680db09cf59a678d8b178332df7cf43702e7efe/controllers/promiserelease_controller.go#L148-L166

@kirederik Submitted PR #101 for this. Please review.

Hey @Bhargav-InfraCloud
I'll take a look! We are in the process of putting a CLA together so getting it merged can get delayed for a few days but I'll check the code later today

Sure @kirederik


HSEARCH-2178 Using bulk requests during mass indexing

Ok, that one was a true beast...
I recommend to review the commits one by one. The first and the third commit are preparatory and clean-up work, respectively. https://github.com/hibernate/hibernate-search/pull/1094/commits/fce174b50516dd1075536a2ca8bf6413180a3b56 is the interesting one.
The idea is to re-use MultiWriteDrainableLinkedList to maintain a queue of requests submitted via performStreamOperation(). A worker runnable takes all the messages which are in the queue at a given time and creates a single bulk request from that (as far as the requests are bulkable). All this happens in BackendRequestProcessor, which is the common facade for running sync and async requests.
I hope I got all the concurrency right, let me know if you spot any issues or room for significant improvement.

Added one more commit to limit the number of requests per bulk. The value is not configurable for now but it can easily be done should the need arise.

Great work! I could honestly not grasp all of the concurrency cases when travelling on my laptop, as it was quite different than what I'd have done but it looks all good.. I had to run it and debug it though :+1:
I found a couple of non-core issues so took the liberty to fix them in follow up commits.. simple to address leaks like not releasing the service and not shutting down the Executor.
While at it, I also changed the bulking logic applied when RequestProcessingRunnable is spinning to postpone index refresh.. seemed safe enough to push, but would be nice if you could post-check it.
I would not have shaped these components as Service as it looks like it will make it harder to change the Jest Service back from being a service too.. but we can face that later.
Merged

Merged

Awesome :)

... not shutting down the Executor.

Oops, good catch.

While at it, I also changed the bulking logic applied when RequestProcessingRunnable is spinning to postpone index refresh

Nice idea, looks good. I didn't care about it too much as I see the refresh as an test-only option (see the other PR and its discussion), but that's a good improvement either way.

... but we can face that later.

Right, we can easily re-adjust this sort of thing as needed later, so +1 for moving on for now.
Thanks!


Consider subtree-ing in the spec repo

Would help to preserve context on e.g. #415

Looks like json-schema-org/json-schema-spec is doing one-branch-per-draft or so, so not very easy to do this unfortunately. Oh well, not a huge loss anyhow.

@Julian the web site sub-trees the spec repo.  What are you trying to do with it?  My difficulties with keeping them in sync have to do more with the limitations of git submodule :-/

Uhhhh so basically the idea here was that if I subtreed in the spec repo, I'd be able to git subtree pull in all the changes to metaschemas (same as for the test suite repo). And could preserve (or not preserve at my whim) the commits / messages that changed them.
But since each draft is on its own branch, I'd actually need N subtrees, one for each metaschema, which is inconvenient sounding enough to not be worth it :D

Hmm... are subtrees transitive?  If you subtree'd the web site repo would you get its subtrees for managing the specs?
The spec repo is branched, the web site repo is not- it has each branch subtree'd separately already, which is how we manage the meta-schemas on the site.

A ha -- interesting.
Yeah subtrees are basically totally transparent, it's as if all the files and directories are copied over.
So that'd work if I subtree'd the website repo.


Re-designed Test Compare to support buildUrl and optional testName

used build url to replace server url, build name, and build num;
added parser and validation check for build url;
make Test Name optional
Issue: #234

Signed-off-by: Longyu Zhang<EMAIL_ADDRESS>

Example of the Test Compare view:

@llxia Code has been updated based on the comments, could you check it? Thanks.


One more bug in kucoin L3

Exchange
Kucoin
Subscription type
L3orderbook
Describe the bug
For some reason if I try to connect to the kucoin L3 orderbook it will often not send any updates at all. However, this bug is very inconsistent, sometimes it will connect and stream updates other times it won't at all.
To Reproduce
Run the following code in a AWS instance close to kucoin, like ap-northeast-1
/**
 * Prototype for maintaining a Level 3 order book for Kucoin according
 * to the instructions defined here:
 * https://docs.kucoin.com/#full-matchengine-data-level-3
 *
 * This technique uses a Map to store orders. It has efficient updates
 * but will be slow for performing tip of book or snapshot operations.
 *
 * # Example
 * ```javascript
 * */
const ccxws = require("ccxws");
const KucoinOrderBook = require("ccxws/src/orderbooks/KucoinOrderBook");
let market = {id: "BTC-USDT", base: "BTC", quote: "USDT"};
markets=[market, {id: "AMPL-USDT", base: "AMPL", quote: "USDT"}, {id: "SXP-USDT", base: "SXP", quote: "USDT"}]
for (let market of markets) {
    let updates = [];
    let ob;
    const client = new ccxws.Kucoin();
    client.subscribeLevel3Updates(market);
    client.on("l3snapshot", async (snapshot) => {
        console.log("length before", updates.length)
        await sleep(5000);
        if (updates.length === 0){
            console.log("Update length 0 wait longer");
            await sleep(5000);
        }
        console.log("updates after", updates.length);
        ob = new KucoinOrderBook(snapshot, updates);
        console.log("running ", market.id);
    });
    client.on("l3update", update => {
        // enqueue updates until snapshot arrives
        if (!ob) {
            updates.push(update);
            return;
        }
        // validate the sequence and exit if we are out of sync
        if (ob.sequenceId + 1 !== update.sequenceId) {
            console.log(`out of sync, expected ${ob.sequenceId + 1}, got ${update.sequenceId}`);
            //process.exit(1);
        }
        // apply update
        ob.update(update);
    });
}
function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

The exact error I get is as follow:
(node:120179) UnhandledPromiseRejectionWarning: Error: Missing update or Must queue updates prior to snapshot, which is the real problem
The weirdest thing is, is that it does work at my home computer (Europe), but my latency is also very high here. However, using an AWS instance it will only connect sometimes?!?!? It might be because the snapshot call is too fast after trying to connect but I have no idea tbh.
This especially happens when I try to run multiple coins at the same time (using a new ccxws object for each). Especially the SXP/USDT pair seems to fail often.
Could we maybe add a function which retries connecting to the socket if no updates start streaming?
EDIT:
I am actually thinking that it might just be Kucoin servers that are a little broken, perhaps a function to reconnect with the socket would suffice.
Second EDIT:
This is the exact output of the error I meant:
length before 0
length before 21
updates after 181
running  SXP-USDT
Update length 0 wait longer
updates after 1416
(node:121384) UnhandledPromiseRejectionWarning: Error: Missing update
    at new KucoinOrderBook (node_modules/ccxws/src/orderbooks/KucoinOrderBook.js:85:15)
    at KucoinClient.<anonymous> (test.js:29:14)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:121384) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:121384) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
updates after 0
(node:121384) UnhandledPromiseRejectionWarning: Error: Must queue updates prior to snapshot
    at new KucoinOrderBook (node_modules/ccxws/src/orderbooks/KucoinOrderBook.js:59:13)
    at KucoinClient.<anonymous> (test.js:29:14)
(node:121384) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)

Thanks for submitting the issue.  Those errors occur in the prototype l3 orderbook when it receives a snapshot but can't properly replay queued updates (either because there are no updates yet or the update stream started after the snapshot's sequence time period).
https://github.com/altangent/ccxws/blob/master/src/orderbooks/KucoinOrderBook.js#L59 and
https://github.com/altangent/ccxws/blob/master/src/orderbooks/KucoinOrderBook.js#L85
The issue is result of a race condition in how the snapshot is obtained from REST.  If the update stream starts before the REST response is obtained everything is ok. But it is possible that the REST request for the snapshot is initiated prior to the update stream starting which would result in the above errors.
https://github.com/altangent/ccxws/blob/master/src/exchanges/kucoin-client.js#L237
Coding wise, a hacky fix for this is adding a small delay to the sending of the REST request. The proper fix is sending the REST request only after we've successfully subscribed to the update stream.
In the interim, you can monkey patch a delay into _requestLevel3Snapshot.  Something like:
const REST_DELAY_MS = 50
client._originalRequestLevel3Snapshot = client._requestLevel3Snapshot;
client._requestLevel3Snapshot = market => setTimeout(() => client._originalRequestLevel3Snapshot(market), REST_DELAY_MS);

Unfortunately there is no option to disable the REST request in Kucoin like there is other clients.  If so, you could disable the automatic REST request and initiate the REST request after you're seen the first l3update event for a market. The gotcha is that if there is a disconnection you will need to re-fetch the REST request once the socket is connected again.

Thank you for your fast response @bmancini55. But I am not really sure whether this is the bug I had in mind (I think it is a different one). I outlined the problem incorrectly in my post, so let me explain it in a different way. In the current code I have used (note I edited it in the original post) in case we receive our snapshot I wait for 5 seconds before processing the orderbook. So I don't think the race condition bug is valid. After those 5 seconds I check whether the updates length is 0 (so we didn't receive any updates), and wait for another 5 seconds to see if updates would start streaming. But even after those 5 seconds, updates still don't start streaming updates after 0. So I am afraid that sometimes the websocket won't connect to kucoins api??

Ah ok, I should have read the description more carefully. So you're not getting updates at all in certain circumstances?  If so you can add a log message here to see whether the subscription is being ack'd or has an error:
https://github.com/altangent/ccxws/blob/master/src/exchanges/kucoin-client.js#L282
The code should probably emit an error event if it receives an error message.

Yes, that is exactly the case. No updates at all in some cases.
I have added the log and in case I receive no updates then I also do not receive an ack. Furthermore, no error is emitted as well (at that location).

Interesting, do you get a connected event?

On line 46 I added the following this._wss.on("connected", () => console.log("connected"));. And I can confirm that is does emit a connected event, but no ack is received.

Any update @bmancini55 ?

Hi @WoutervDijk, I haven't had a chance to dig into it yet.
You want to log anything that comes down the socket at the beginning of the _processMessage method.  There might be a message that is being missed.

@WoutervDijk  I wasn't able to reproduce locally but I made a few changes to the client to improve reliability of message sends.  Let me know if you're still seeing the issue after updating: https://github.com/altangent/ccxws/releases/tag/v0.37.7

@bmancini55 thank you very much for your response. It did unfortunately not solve the problem. I will have a look at it this weekend and log everything _processmessage and see if I can find something. What OS were you using and which Node version when you tested it?

This might be a fault in my OS (Ubuntu) or Nodejs. I have downgraded to Node 12 (latest) and it is working for now. I'll close the issue.

I think this is the best solution. I have tried all kinds of tuning on two different OS (clear linux and Ubuntu), but for some reason the KUCOIN server won't send and ACK. It does connect though via the welcome message. It so weird, might be a bug at kucoin server side?

I am just thinking out loud now, but the kucoin documentation says that the ID given must be unique https://docs.kucoin.com/#subscribe. The code now uses the current milliseconds, so what if your server is REALLY fast, then it wouldn't be unique anymore right. And what if someone else uses the same ID, would that also result in undefined behaviour at kucoin servers?

@bmancini55 I think you want to rewrite watcher because it seems to NOT consider the fact that you might have never received a message in the first place. In which case it should restart the connection

@bmancini55 I have found it!!! Because I am so close to Kucoin servers, Kucoin servers can't handle the subscription event and drops it. I think this happens because right after the socket is connected, we immediately ask for a subscription and the socket might not have been fully ready. So I added a small delay to the _onConnected method (line 223 basic-client.js).
This is the code that works for me:
  _onConnected() {
    this.emit("connected");
    setTimeout(() => {    for (let [marketSymbol, market] of this._tickerSubs) {
      this._sendSubTicker(marketSymbol, market);
    }
      for (let [marketSymbol, market] of this._candleSubs) {
        this._sendSubCandles(marketSymbol, market);
      }
      for (let [marketSymbol, market] of this._tradeSubs) {
        this._sendSubTrades(marketSymbol, market);
      }
      for (let [marketSymbol, market] of this._level2SnapshotSubs) {
        this._sendSubLevel2Snapshots(marketSymbol, market);
      }
      for (let [marketSymbol, market] of this._level2UpdateSubs) {
        this._sendSubLevel2Updates(marketSymbol, market);
      }
      for (let [marketSymbol, market] of this._level3UpdateSubs) {
        this._sendSubLevel3Updates(marketSymbol, market);
      }
      this._watcher.start();}, 1000);
}

Circling back on this.  Awesome find, thanks for tracking down the issue!!
I found this nugget in the [doco)[https://docs.kucoin.com/#create-connection].  I should be more mindful of reading the fine print :rofl:

Only when the welcome message is received will the connection be available

Architecturally, I'll add a new connection related event, ready which will fire after connected and will occur if there are any setup messages that need to be initiated. For exchanges that don't require this functionality, the ready event will fire immediately after the connected event. This will be useful in a broader context for sockets that need to authenticate or perform setup upon connection.
Until I can get a fix released, you can monkey patch a delay into your client with something like:
let client = new ccxws.Kucoin();
client._originalOnConnected = client._onConnected.bind(client);
client._onConnected = () => setTimeout(client._originalOnConnected, 500);

Awesome find! Sounds like a good fix. Like they always say RTFM 😄


Timezone issue of graal node

I am in the GMT+8 timezone (Beijing).
When I use ordinary node:
new Date(Date.now()).toLocaleTimeString() //==>'8:38:48 PM'

However, when I use graal node:
new Date(Date.now()).toLocaleTimeString() //==>'4:38:48 AM'

Seems that graal node is using the GMT-8 timezone instead of my local timezone.

Hi,
I think the timezone isn't the only problem. I'm getting the following result in Ubuntu 18.04:
$ ./bin/node -e 'console.log(new Date())' # GraalVM CE 19.1.1
2019-06-05T06:16:35.873Z
$ ./bin/node --jvm -e 'console.log(new Date())' # GraalVM CE 19.1.1
2019-08-11T20:09:58.280Z
$ node -e 'console.log(new Date())' # Node.js v12.8.0
2019-08-11T20:09:58.407Z

I can confirm that there were various timezone-related issues in the past. Happily, the last issues (that I am aware of) were fixed recently and should be part of the upcoming GraalVM 20.1.0 release. When I try the preview of this release I get:
# GraalVM native mode
$ TZ=Asia/Shanghai node
> new Date(Date.now()).toLocaleTimeString()
'1:14:48 AM'

# GraalVM jvm mode
$ TZ=Asia/Shanghai node --jvm
> new Date(Date.now()).toLocaleTimeString()
'1:14:57 AM'

# Node.js
$ TZ=Asia/Shanghai node
> new Date(Date.now()).toLocaleTimeString()
'1:15:03 AM'

The same experiment with GraalVM 20.0.0 release shows the problem that you described. So, I am closing this issue. If you encounter any timezone or Date-related problem in GraalVM 20.1+ then let us know, please.


[Proposal] Allow UTF8 string to be metric and label name

Proposal
For now, the metric and label name meets the regex expression [a-zA-Z_:][a-zA-Z0-9_:]*,
but sometimes it is not enough for some cases, like:

5xx_http_response to indicate a metric for all http response with 5xx error,
Some non ASCII letters to be a metric name will be more meaningful for localization

So, would it be possible to extend the metric and label name to support UTF8 string?
Thanks!

I'm closing this request as in the near future, Prometheus aims at being compliant with OpenMetrics which will be the source of truth for the exposition format.


Icon in Zen Morning contact does not disappear when I cancel zen morning

The son icon remain. only refresh to the browser solved it

related to #35 (Fix menu language)

Seems to be related - we saw 2 indications of conversations as if in Zen morning

Dev:
The initial result of the team is 2 hours.
2) In our experience, the team's estimate error is 30%.
2 x 1.3 = 3
3.) Our insurance rate is 30%.
3 x 1.3 = 4
Full optimistic estimate out of 2 pessimistic out of 4 hours.
Liat: approved

Fixed in <IP_ADDRESS>


synergy-1-8.8  : broken after upgrade 2003

Describe the bug
issue desrcription
synergy no longer works after upgrade to 20.03.
Work with Nixos 19.09
Notify maintainers
@aszlig , @Enzime
Metadata
After rollback it's work.
19.09

nix-shell -p nix-info --run "nix-info -m"
these paths will be fetched (0.05 MiB download, 0.28 MiB unpacked):
/nix/store/0rbnlnd1pvlpii8p72ybvvg672j2wc2f-bash-interactive-4.4-p23-dev
copying path '/nix/store/0rbnlnd1pvlpii8p72ybvvg672j2wc2f-bash-interactive-4.4-p23-dev' from 'https://cache.nixos.org'...

system: "x86_64-linux"
host os: Linux 4.19.115, NixOS, 19.09.2407.b67bc34d4e3 (Loris)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3.3
channels(pboizot): ""
channels(pierre): "nixpkgs-20.03pre204216.cc6cf0a96a6"
channels(root): "nixos-20.03.1422.1e90c46c2d9"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

20.03

nix-shell -p nix-info --run "nix-info -m"

system: "x86_64-linux"
host os: Linux 5.4.33, NixOS, 20.03.1422.1e90c46c2d9 (Markhor)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3.4
channels(pboizot): ""
channels(pierre): "nixpkgs-20.03pre204216.cc6cf0a96a6"
channels(root): "nixos-20.03.1422.1e90c46c2d9"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

How cani help to find issue?

After research , i found the pb in the server log.
during the upgrade i change the hostname. but not on the server.
Pierre


Connecting to server waited endlessly

I'm running com.github.pgasync.impl.AuthenticationTest.shouldThrowExceptionOnInvalidCredentials()
junit test on the master,with minor changes of the host to a remote server (posgresql 8.4) in my LAN .
and the test freezes waiting for something.
Please see the attached packet capture.
capture.zip

It seemes that it has something to do with the implementation of
com.github.pgasync.impl.DatabaseRule.createPoolBuilder(int),which set the ssl property to true.When ssl is set to false,the test passed.

This is  output of pg_config,which says that when postgresql is compiled,ssl is not enabled.
Which means that postgres is compiled without the ssl option and ssl property of ConnectionPoolBuilder is set to true in the client,the connection can last for long without any error.

C:\Program Files\PostgreSQL\9.4\bin>pg_config.exe
BINDIR = C:/PROGRA~1/POSTGR~1/9.4/bin
DOCDIR = C:/PROGRA~1/POSTGR~1/9.4/doc
HTMLDIR = C:/PROGRA~1/POSTGR~1/9.4/doc
INCLUDEDIR = C:/PROGRA~1/POSTGR~1/9.4/include
PKGINCLUDEDIR = C:/PROGRA~1/POSTGR~1/9.4/include
INCLUDEDIR-SERVER = C:/PROGRA~1/POSTGR~1/9.4/include/server
LIBDIR = C:/PROGRA~1/POSTGR~1/9.4/lib
PKGLIBDIR = C:/PROGRA~1/POSTGR~1/9.4/lib
LOCALEDIR = C:/PROGRA~1/POSTGR~1/9.4/share/locale
MANDIR = C:/Program Files/PostgreSQL/9.4/man
SHAREDIR = C:/PROGRA~1/POSTGR~1/9.4/share
SYSCONFDIR = C:/Program Files/PostgreSQL/9.4/etc
PGXS = C:/Program Files/PostgreSQL/9.4/lib/pgxs/src/makefiles/pgxs.mk
CONFIGURE = --enable-thread-safety --enable-integer-datetimes --enable-nls --with-ldap --with-ossp-uuid --with-libxml --with-libxslt --with-tcl --with-perl --with-python
VERSION = PostgreSQL 9.4.5


feat: Create ja.yaml

Adding Japanese support required to change how the "X photos in Y albums" sentence was handled, as Japanese doesn't say it the same way. Let me know if you feel like there's a better way to handle this !
I also took the opportunity to remove lang.FormatNumber as we only ever get integers, and their formatting is language independent.

Thanks for your PR! Could you re-add the lang.formatNumber please? The number formatting is not language independent: it will add a thousands separator, e.g. in German it will show "1.209 Fotos" (instead of "1209 Fotos"), in English it will most probably show "1,209 photos", etc.
The other changes look good!

Oh, indeed ! Thousands separators slipped my mind for some reason. I'm changing this.


Superscript change

Hey Matt,
Sent an email to you, but the "2" on line 28 should be re-superscripted, had a bit of confusion on whether there was a new region coming. 😄
Cheers,
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: f8f86bd0-7555-9be2-1015-76e3ab88062f
Version Independent ID: 1d310402-fadf-d602-048a-b2e16bd86a7e
Content: Supported regions for linked Log Analytics workspace
Content Source: articles/automation/how-to/region-mappings.md
Service: automation
Sub-service: process-automation
GitHub Login: @MGoedtel
Microsoft Alias: magoedte

@bebattis Thank you for reaching out to us. Assigning this issue to @MGoedtel ti further look into the feedback.

@bebattis - West Central US region should not have a link to the second footnote under that table.  It originally linked to a footnote stating there wasn't capacity in that region to support creating new resources, which isn't applicable any longer.  That footnote was removed along with my attempt to correctly remove reference to it and then renumber the pre-existing other two footnotes that were already there.  I fixed this late last week or on Monday.  Thanks! #please-close


Loose the advertisement on the docs

The advertisements on the docs are highly distracting. If you want to monetize the project I suggest you double down on Patreon (I just became a one). Or ... at the very least use the less intrusive Carbon base ads.
My two cents.

Yep, and a friendly advice - you'll earn zero from ads for developers, it's nothing but waste of time. I wouldn't even know that they exist, if not discovered few empty blocks on the page while analyzing its layout, and only after seeing class names I paid attention on AdBlock Plus counter, which I actually never look at.

@acrodrig @inliquid Hi, thanks for the advice and the Patreon help. I'd like to promote Spectre to wider group of developers/designers and it takes money and time. (Honestly, I have a full time job and not always available to improve it or do some more useful tools and libraries. Things will be better when I can monetize it.)
@acrodrig Sorry for those distractions. Please use AdBlock if you want.


python310Packages.asyncmy: 0.2.5 -> 0.2.6

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.asyncmy is: Python module to interact with MySQL/mariaDB
meta.homepage for python310Packages.asyncmy is: https://github.com/long2ice/asyncmy
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.2.6 with grep in /nix/store/5dqf89yzg5l21im3isj8sdjriic9yx1d-python3.10-asyncmy-0.2.6
found 0.2.6 in filename of file in /nix/store/5dqf89yzg5l21im3isj8sdjriic9yx1d-python3.10-asyncmy-0.2.6

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
python310Packages.asyncmy
python311Packages.asyncmy

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/5dqf89yzg5l21im3isj8sdjriic9yx1d-python3.10-asyncmy-0.2.6 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.asyncmy https://github.com/r-ryantm/nixpkgs/archive/63a72c29ca76c06674fe441d5e2a26e0e871d686.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/5dqf89yzg5l21im3isj8sdjriic9yx1d-python3.10-asyncmy-0.2.6
ls -la /nix/store/5dqf89yzg5l21im3isj8sdjriic9yx1d-python3.10-asyncmy-0.2.6/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

python310Packages.asyncmy
python311Packages.asyncmy

Maintainer pings
cc @fabaff for testing.

Result of nixpkgs-review pr 214042 run on aarch64-darwin 1

2 packages built:

python310Packages.asyncmy
python311Packages.asyncmy


updated entire docker block in meshery-maesh repo with meshery repo

correctly updated with a new pull request!


Create testOnPullRequest.yml

Coverage after merging createPullRequestWorkflow into master100.00%
Coverage ReportFileBranchesFuncsLinesUncovered Linesoption   index.tsN/A100%100%result   index.tsN/A100%100%


So whenever I want to use a hostname, I can easily just search in the keys/ folder for any that have the prefix.
Current solution to this is to create an a_keys/ folder instead, but I'd love to use all generated hostnames it creates.

Nevermind, trying to access or list out a certain pattern with grep with these many files is not possible(with my computer at least).


[question] about insert node in choice node

is there any way to create choice node if the line contains some characters or if it dont just go to the next insert node
like

Mhm, that should be possible via dynamicNode.
What do you want to achieve, specifically?

Mhm, that should be possible via dynamicNode. What do you want to achieve, specifically?
if choice node is "->" make new insert node like

  fn <firts insert node>  -> <here new insert node> {
    <another insert node>
  }

i do this but after second insert node is going on last insert node

Oh yeah, that's almost correct, you only have to change i(3) to i(1). The jump-positions restart inside nested snippets.

thanks


Removing optional requirement from config and fixing type issue

Some minor changes, removing requirement of optional field in config, fixing "type" used as variable name.

Looks good!


Fix make distclean

This makes distclean work correctly in master.
The windows issue is complicated by two effects,
which may be due to the specific windows machine.
First it has one of the commands to delete all generated targets
exceed the command line limit of windows.
And this machine has a cygwin somewhere in the path
almost at the end but its /usr/bin/rmdir nevetheless
overrides the builtin rmdir which makes the rmdir fail,
because it does not recognize "/S" and "/Q".

I did test that on a windows 7 machine.
I use remote access to the our internal company network.
I can still do that, but I consider this not necessary.

so I don't feel I can give the final thumbs up.

Maybe you just trust me then?

so I don't feel I can give the final thumbs up.

Maybe you just trust me then?

I do, but if Richard is free to take a look, he's much more familiar with the build-system than I.  I am not sure I be doing approvals after only cursory inspection.  Though perhaps with the build-system I may not need to be quite so cautious. Ping me again in a couple of days if nobody else steps forward...

so I don't feel I can give the final thumbs up.

Maybe you just trust me then?

You know it quite well, reviewing is not a matter of trust or distrust. It‘s simply better if someone else checks the changes independently. As the proverb says: „Vertrauen ist gut, Kontrolle ist besser.“
Maybe I find some time to test it...

Just for reference, when I post a GCC patch,
I write in the e-mail
Bootstrapped and Reg-tested on x86_64-pc-linux-gnu
Is it OK for thunk?

bootstrap takes hours, and the test suite a day or more.
every reviewer trusts me, that I say that honestly,
the review is about how the code looks like nothing more nothing less.
If they start to not trust a person that is listed in "Write after Approval"
they have to duplicate all my effort, and moreover there is
no CI, it would not be usable since the test suite that runs for days.
Just automated test runs after a patch is assigned.

Removing windows stuff for now.
I don't know if the nmake distclean was fixed by @levitte
but I dont care about windows any more.
In the moment I see the following files are leaking again,
$ git clean -ndx
Would remove crypto/include/
Would remove providers/fipsinstall.cnf
Would remove test-runs/

So since I started this PR new bugs were introduced,
nobody reviewed this, for a long time, if I spend time
to fix this PR again, it will not be reviewed again,
probably I better give up right now before I waste more time.


[SPARK-16508][SPARKR] doc updates and more CRAN check fixes

What changes were proposed in this pull request?
replace ` in code doc with \code{thing}
remove added ... for drop(DataFrame)
fix remaining CRAN check warnings
How was this patch tested?
create doc with knitr
@junyangq

Test build #64147 has started for PR 14734 at commit ea9f772.

Test build #64147 has finished for PR 14734 at commit ea9f772.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/64147/
Test PASSed.

Test build #64152 has started for PR 14734 at commit 341a2f8.

Test build #64153 has started for PR 14734 at commit 4b6c42e.

Test build #64152 has finished for PR 14734 at commit 341a2f8.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/64152/
Test PASSed.

Test build #64153 has finished for PR 14734 at commit 4b6c42e.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/64153/
Test PASSed.

Fixed a couple more warnings from CRAN check:
Consider adding
  importFrom("methods", "is", "new", "signature")
  importFrom("stats", "gaussian", "rpois", "runif", "setNames")
  importFrom("utils", "download.file", "packageVersion", "untar")
to your NAMESPACE file (and ensure that your DESCRIPTION Imports field
contains 'methods').

* checking Rd \usage sections ... WARNING
Undocumented arguments in documentation object 'spark.als'
  ‘...’

Found the following (possibly) invalid URLs:
  URL: https://cran.r-project.org/web/packages/e1071/
    From: man/spark.naiveBayes.Rd
    Status: 200
    Message: OK
    CRAN URL not in canonical form
  URL: https://cran.r-project.org/web/packages/mixtools/
    From: man/spark.gaussianMixture.Rd
    Status: 200
    Message: OK
    CRAN URL not in canonical form
  URL: https://cran.r-project.org/web/packages/survival/
    From: man/spark.survreg.Rd
    Status: 200
    Message: OK
    CRAN URL not in canonical form
  URL: https://cran.r-project.org/web/packages/topicmodels/
    From: man/spark.lda.Rd
    Status: 200
    Message: OK
    CRAN URL not in canonical form

Test build #64162 has started for PR 14734 at commit 06ab299.

Test build #64162 has finished for PR 14734 at commit 06ab299.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/64162/
Test FAILed.

Fixed another NOTE
* checking whether the namespace can be loaded with stated dependencies ... NOTE
Warning: no function found corresponding to methods exports from ‘SparkR’ for: ‘show’

With all these changes we have Status: 2 NOTEs, 0 warnings, 0 error:
NOTE Maintainer
New submission

* checking R code for possible problems ... NOTE
Found the following calls to attach():
File ‘SparkR/R/DataFrame.R’:
  attach(newEnv, pos = pos, name = name, warn.conflicts = warn.conflicts)
See section ‘Good practice’ in ‘?attach’.

Test build #64163 has started for PR 14734 at commit 58b7677.

Test build #64163 has finished for PR 14734 at commit 58b7677.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/64163/
Test FAILed.

object 'C_runif' not found
This is odd - the C function was ported in 2012.
Changed to an alternative way for runif

Test build #64164 has started for PR 14734 at commit 4d0edb5.

Test build #64164 has finished for PR 14734 at commit 4d0edb5.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/64164/
Test PASSed.

Merged build finished. Test PASSed.

@shivaram any more thought? I'll merge since we should have this to be ready for CRAN.

@junyangq Could you take one more look ? I will also do a pass now

LGTM. I had a couple of minor comments inline.

I tried cherry-picking this to branch-2.0 but merge was non-trivial - should we merge manually?

Hmm - let me give it a shot. If not I will open a fresh PR for branch-2.0 after doing a manual edit per file

all the \code{x} changes are optional and do not affect CRAN check - without those it might be easier

I just did the merge in https://github.com/apache/spark/commit/b65b041af8b64413c7d460d4ea110b2044d6f36e -- Will be great if you can run CRAN checks using this and make sure I didn't miss anything

tested with branch-2.0, looks good.
how did you merge it, btw?

It was mostly manual -- I ran dev/merge_spark_pr and it prompted me to say the cherry-pick has conflicts. I then opened another terminal and found that the conflicts were in 3 files. I manually fixed those three files, ran git add and then git cherrry-pick --continue to finish the commit.  Then I came back to the script window to do the push.


Soundausgabe bestimmen

Spotify Sound ok
Google Maps und Blitzerapp unterbrechen den Sound von Spotify.
Vorschlag: Soundausgabe für jede App selber bestimmen.

AAIdrive can not control the sound output of the phone, and relies entirely on Android to send music through Bluetooth to the car. You'll have to manually configure your phone to disable audio notifications to prevent them from interrupting music playback.


fix(inputMsg): input can be also a commit message

Fix regression from https://github.com/kentcdodds/validate-commit-msg/commit/d850cf47265d5ff18e86a3a743678ecfc7d66c03

CC @krishna63

Codecov Report

Merging #87 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master    #87   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           3      3
  Lines         126    126
=====================================
  Hits          126    126

Continue to review full report at Codecov.

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

@stevemao : May i know the reason behind this PR , PLS

Specifying commit message as input doesn't work any more
On 13 Jun. 2017 10:47 pm, "krishna63"<EMAIL_ADDRESS>wrote:

@stevemao https://github.com/stevemao : May i know the reason behind
this PR , PLS
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kentcdodds/validate-commit-msg/pull/87#issuecomment-308104370,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGBiLvytBeS5S4BpYxfhxPlEECEQqJZXks5sDoTCgaJpZM4N3-s_
.

I'm closing this since https://github.com/conventional-changelog/validate-commit-msg/pull/92#issuecomment-313691307 is merged. Please comment if I'm wrong @maxcnunes @Garbee Thanks.


tweaks to the policies

LGTM – I'm assuming that the the links (for example, /contact.html) get expanded out when the site is deployed? In the raw diff, the link 404s.

I'm assuming that the the links (for example, /contact.html) get expanded out when the site is deployed?

Yep, should work on the live site. Thanks!


Definition of automorphic form: Invariance under compact open subgroup condition

I'm not sure if InvariantSubgroup is the best name, if someone has a better suggestion I'd be happy to change it.

In fact I'll just merge this and then fix it myself, because the PR has picked up conflicts which I know how to resolve. Thanks a lot! Please add your name to the authors at some point!

Commits added to main.


The picture which name is chinese can not be displayed

The picture which name is chinese can not be displayed
I fix it,
ImageLoader.getInstance().displayImage(Uri.decode(Uri.fromFile(file).toString()), holder.iv, options, null);

Actually I don't know how to fix it.

Me too, How to fix it

See this solution https://github.com/nostra13/Android-Universal-Image-Loader/issues/371

Maybe enable UTF-8, or decode/encode :+1:

@kjsolo thx, it works.

i think that #1247 is a another workaround


fixed marker drop animation on ios

I changed the "drop" animation on iOS map markers to mirror how it works in the browser and on android.

Please take gif animations before and after.

Before:

After:

Thank you ;)

No problem. Thanks for maintaining this plugin!


image: consul no longer works.

image: consul should be updated to image: hashicorp/consul.
https://github.com/g0t4/course2-consul-gs/blob/f6af49c34fcafc21a55f69615f136cf733bb55f0/discover/files/compose.yml#L5
Official Image Deprecation Notice
Upcoming in Consul 1.16, we will stop publishing official Dockerhub images and publish only our Verified Publisher images. Users of Docker images should pull from "hashicorp/consul" instead of "consul". Verified Publisher images can be found at https://hub.docker.com/r/hashicorp/consul.

Thanks for catching this! I will get the repo updated ASAP.

All demo envs updated to use hashicorp/consul:1.12.0 as that was the highest version used in course. Change this tag to use a newer version. Most (if not all) will be fine with latest version but I'd rather tag the version used. Especially given previously I was using consul:latest implicitly and that tag was removed from the official image, thus causing the demo envs to fail!
Thanks again @McGoffmann for flagging this!

Fixed in master, had to take a second stab at it b/c my local repo was outdated.


When close windows,it will crash

AMD Vega8 Linux-zen6.011
Build it  with cmake
I use default config instead of my config, When i input Win+Q (default close window),hyprland will crash
this is when i close firefox

this is when i close kitty

I know it is in VM,but it same as in my pc
i try to searth in issues but not found

give coredump

Ok,I maybe find it question,I use killall Hyprland Have same question,so I think it maybe kill Hyprland when I use Win+ Q ,so how to avoid it,I have to idea to avoid Hyprland to kill itself ,Maybe this code run wrong

have you tried legacy renderer builds? that might help if your PC is old.

No meson.build

you did not git clone --recursive

Have same problem

coredumps people coredumps if crashing

Ok,is my problem ,so I will close this comment,I use default config to successful use


Inject ExternalService for jwksUri from authn policy.

This is still work in progress. Few concerns:

Should ExternalName be set for external services?

Is there a way to set SSLContext (and equivalent in v2) without destination rule? Port already has such information (protocol is http or https), can we use it?

Can ExternalService have subset labels? In other words, is there a reliable way to construct cluster name for it from host and port? (for more detail, we need to pass this cluster name to the jwt config for envoy)

Will externalServices and their clusters be dedupped?

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: ijsnellf
Assign the PR to them by writing /assign @ijsnellf in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pilot/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@diemtvu: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
e11dfc1a6c3994f19059a0f515e9b2d95fca9676
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Should ExternalName be set for external services?

no

Is there a way to set SSLContext (and equivalent in v2) without destination rule? Port already has such information (protocol is http or https), can we use it?

Unfortunately no. You need to create a destinationrule where TLS mode is set to simple.

Can ExternalService have subset labels? In other words, is there a reliable way to construct cluster name for it from host and port? (for more detail, we need to pass this cluster name to the jwt config for envoy)

You don't need subsets to create clusters. Every service will become a cluster by default. The format is
"outboubd||hostname|portName" .
"outbound||googleapis.com|https" is an example of cluster name

Will externalServices and their clusters be de-duped?

We do not have any deduping logic because the assumption is that services are unique. And destination rules declare unique subsets per service. So you will have to sort and deduplicate the URIs you extract in your code. Order doesn't matter.

Putting on hold for https://github.com/istio/istio/issues/4917


@conda-forge-admin,please add bot automerge

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/argopt-feedstock#4.


How use displayJS in objects or class

Tell me please what I do not correctly (use example3)?
<script>
var $ = new DisplayJS( window );

var obj = {};
obj.set = function( )
{
    var list = $.range(5);
    var average = $.average( list );
    var median = $.median( list );
   ....
    $.var( );
};

obj.set( );
</script>

Or it is necessary to use?:
let data = {
  list: '',
  average: '',
  median: ''
}

const $ = new DisplayJS( data );

But how uses displayJS in classes and many objects?

I partially understood having looked at source codes of library.
Data undertake from the object transferred to displayJS.
It turns out it is necessary for each object class to create a separate copy of displayJS.

There is a much more easier way to use DisplayJS in a class, because DisplayJS is actually a class.
class newClass extends DisplayJS {
    constructor() {
        this.params = { p1: "Hello World" }
        this.$ = super(this.params);
     }
}

And, for your initial question, the problem is the context, if you declare variables inside a function or an object, they won’t be global, they will be local. DisplayJS can’t handle local variables, you need to make them global like var myVar becomes myVar


INVESTMENT FRAUD FUNDS RECOVERY-DANIEL MEULI WEB RECOVERY

In the wake of falling victim to a devastating romance scam involving 2 BTC, I turned to Daniel Meuli Web Recovery in a desperate attempt to reclaim my lost assets. The service proved instrumental in navigating the complex landscape of cryptocurrency fraud recovery. Their expertise and professionalism were immediately evident as they patiently guided me through the recovery process, offering clear explanations and reassurances. Daniel Meuli Web Recovery provided practical steps to reclaim my funds and offered much-needed emotional support during a challenging time. They demonstrated a deep understanding of the tactics used by scammers and employed effective strategies to pursue the recovery of my assets. Their commitment to transparency and integrity was evident throughout the process, ensuring that I was informed and involved at every step. Moreover, their knowledge of legal and regulatory frameworks surrounding cryptocurrency fraud added an extra layer of confidence in their services. I am profoundly grateful to Daniel Meuli Web Recovery for their unwavering dedication and expertise in helping victims like me reclaim what was rightfully mine. If you find yourself in a similar situation, I wholeheartedly recommend reaching out to Daniel Meuli Web Recovery for their professional and compassionate assistance in recovering from cryptocurrency scams. They are not just a recovery service but a beacon of hope and support in the often murky waters of online fraud. With their help, you can take proactive steps towards reclaiming your financial security and preventing further exploitation. Trust Daniel Meuli Web Recovery to stand by your side and fight for your rights in the complex world of cryptocurrency fraud recovery.


Shell Autocompletion

Research the possibility to add a bash/zsh autocompletion.

@h4llow3En maybe?

I will rework this.
as @steigr mentioned, it would be better to add an eval to the shellconfig

As I found out, it is not possible to use eval because:
bash uses the bash-completion.d
zsh uses .zfunc
the completions written to stdout are not valid for eval to parse


First patch sometimes has zero flux or zero ivar

Example:
20200315/00055672/frame-b4-00055672.fits
Fiber index: 126

Last week, I performed a bisection analysis to identify the source of the zero values in the flux array. The initial deconvolved flux values are the solution to the linear equation with icov and the weighted pixel vector. I found intermittent cases where this solution is non-zero originally but contained zeros after the batched eigenvalue decomposition during the next step in the extraction. This was a red flag because the deconvolved flux is not an input to that step.
It turns out that there was a device pointer allocation bug in my implementation of the batched eigenvalue wrapper in cupy that has already been reported and fixed (https://github.com/cupy/cupy/issues/4440).
I have not been able to reproduce this issue since upgrading to a version of cupy that includes this bugfix.


CMD/CTRL+S to save forms

To make the editing experience more seamless, keybindings for saving the form were added. Now, Command+s or Control+s will trigger a submit on the form, just clicking the save button. Each action follows the states of the save button; if it's disabled/busy/etc., the keybindings will no-op.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Max Pennington seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@jamespohalloran This is my first PR on Tina; for some reason the license/cla check is failing, even though I signed it. Thoughts as to how I resolve that? Thanks!

Pr approved! Thanks again for this. For the license/cla check, it looks like the commits may have a different email than what you've signed the agreement with.
https://stackoverflow.com/questions/750172/how-do-i-change-the-author-and-committer-name-email-for-multiple-commits

@jamespohalloran Sorry, tried to fix the email thing, but it did some unintentional changes. I'll fix and get back to you. But hey, at least the license thing is fixed lol.


Integration test fails with docker-compose 2.x

It looks like the .env isn't being picked up when test/integration_test.sh runs with docker-compose on 2.x.  Dropping back to 1.x gets things running again.
Ubuntu 21.10
Docker 20.10.10
graylog-docker @ 9bd5687b94dda1edffd476e093492105b5d9d6be

Do you mean docker-compose v2.x? I didn't even know that was out.

Ah, obviously from the title. I just read it poorly.

Yep-- and definitely not a big deal since 2.x is still a bit rough.  I can do some poking around later on to see what's going on.

I'm no longer seeing this with Docker Compose 2.6 and Docker 20.10.17.  Closing...


Checking for external changes - Suspended, high cpu usage

I spent several hours debugging and  the problem is caused by Unix domain socket file in /tmp directory.
Directory watch service is calling BaseFileObj.refresh(final boolean expected, boolean fire) and the test on this file:
final boolean isDir = file.isDirectory();
final boolean isFile = file.isFile();
if (isDir == isFile || isFolder() != isDir || isData() != isFile) {
     invalidateFO(fire, expected, true);
}

isDir == isFile -> false == false
And it's called over and over again...
I was unable to find the originator why the /tmp is added to the watch for changes. But the reason is somewhere around Gradle and NB version control history.
A simple solution is to change java tmp directory location int the netbeans/etc/netbeans.conf:
-J-Djava.io.tmpdir=/custom/tmp

Ideally, mount a new tmpfs..
/etc/fstab
none /media/ramdisk tmpfs defaults,user,size=20G,mode=0777 0 0

I also have a netbeans cache on RAMdisk, so it's so big. And the acceleration of Netbeans is brutal.. ;)

And it's back..
Netbeans folder watching service has positively a problem with Unix domain socket files and broken Symbolic Links on linux. It always ends with creating recursive file events.
Problems with Symbolic Links causes Gradle:
https://github.com/gradle/gradle/blob/master/subprojects/native/src/main/java/org/gradle/internal/nativeintegration/filesystem/jdk7/Jdk7Symlink.java
private static boolean doesSystemSupportSymlinks() {
        Path sourceFile = null;
        Path linkFile = null;
        try {
            sourceFile = Files.createTempFile("symlink", "test");
            linkFile = Files.createTempFile("symlink", "test_link");

            Files.delete(linkFile);
            Files.createSymbolicLink(linkFile, sourceFile); //Symbolic Link is only created, not deleted
            return true;
} catch (InternalError e) {

I added a class to delete them org.nbandroid.netbeans.gradle.symlink.GradleSymLinkRemover
public class GradleSymLinkRemover implements Runnable {

    private final File tempDir;

    public GradleSymLinkRemover() {
        String tmpdir = System.getProperty("java.io.tmpdir");
        tempDir = new File(tmpdir);
    }

    @Override
    public void run() {
        File[] listFiles = tempDir.listFiles(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                return name.startsWith("symlink") && name.endsWith("test_link");
            }
        });
        for (File file : listFiles) {
            if (Files.isSymbolicLink(file.toPath())) {
                try {
                    Files.deleteIfExists(file.toPath());
                } catch (IOException ex) {
                    Exceptions.printStackTrace(ex);
                }
            }
        }
    }

}

And is scheduled from org.nbandroid.netbeans.gradle.v2.Installer
POOL.scheduleWithFixedDelay(new GradleSymLinkRemover(), 30, 60, TimeUnit.SECONDS);

Can this smth similar to this problem: https://issues.apache.org/jira/browse/NETBEANS-168

Laszlo Said smth about broken symlinks: https://issues.apache.org/jira/browse/NETBEANS-168?focusedCommentId=16704327&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16704327

Netbeans Linux killer
Usage:
First run and stop the killer, to create some broken links. It does not work without it.
Start Netbeans and open some file from /tmp, to enable directory watch.
Run the killer, and commonly use netbeans, compile some project, etc.
btw: on my i7-8750H is 500ms infinity :)
public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            Path sourceFile = null;
            Path linkFile = null;
            try {
                sourceFile = Files.createTempFile("symlink", "test");
                linkFile = Files.createTempFile("symlink", "test_link");
                System.out.println(linkFile);
                Files.delete(linkFile);
                Files.createSymbolicLink(linkFile, sourceFile);
                Files.delete(sourceFile);
            } catch (InternalError e) {
            } catch (IOException e) {
            } catch (UnsupportedOperationException e) {
            }
        }
        while (true) {
            Path sourceFile = null;
            Path linkFile = null;
            try {
                sourceFile = Files.createTempFile("symlink", "test");
                linkFile = Files.createTempFile("symlink", "test_link");
                System.out.println(linkFile);
                Files.delete(linkFile);
                Files.createSymbolicLink(linkFile, sourceFile);
            } catch (InternalError e) {
            } catch (IOException e) {
            } catch (UnsupportedOperationException e) {
            } finally {
                try {
                    if (sourceFile != null && sourceFile.toFile().exists()) {
                        Files.delete(sourceFile);
                    }
                    if (linkFile != null) {
                        Files.deleteIfExists(linkFile);
                    }
                } catch (IOException e) {
                    // We don't really need to handle this.
                }
            }
            try {
                Thread.sleep(500);
                 //500ms high cpu usage - after some time Suspended, 100ms Suspended
            } catch (InterruptedException ex) {
                Logger.getLogger(TmpTest.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

And finally the second problem:
org.netbeans.modules.masterfs.filebasedfs.fileobjects.FileObjectFactory.issueIfExist(...)
 if (parent != null && parent.isValid()) {
            if (child != null) {
                if (foForFile == null) {
                    exist = (realExists == -1) ? true : touchExists(file, realExists);
                    if (fcb.impeachExistence(file, exist)) {
                        exist = touchExists(file, realExists);
                        if (!exist) {
                            refreshFromGetter(parent,asyncFire);
                        }
                    }
                    assert checkCacheState(true, file, caller);
                } else if (foForFile.isValid()) {
                    exist = (realExists == -1) ? true : touchExists(file, realExists);
                    if (fcb.impeachExistence(file, exist)) {
                        exist = touchExists(file, realExists);
                        if (!exist) {
                            refreshFromGetter(parent,asyncFire);
                        }
                    }
                    assert checkCacheState(exist, file, caller);
                } else {
                    //!!!!!!!!!!!!!!!!! inconsistence
                    exist = touchExists(file, realExists);
                    if (!exist) {
//Problematic test, for broken link is false
                        refreshFromGetter(parent,asyncFire);
                    }
                }
            } else {

if (!exist) { changed to if (!exist && !Files.isSymbolicLink(file.toPath())) {
And CPU has been quiet since then..
Attention  change  just this one line,  I tried to move it into the method touchExists, but again it was the result Suspended

I created plugins with patches for Netbeans 8.2
https://github.com/NBANDROIDTEAM/org-netbeans-modules-masterfs-patches
Add new update center http://server.arsi.sk/masterfs/updates.xml and install modules:
org-netbeans-modules-masterfs-patch-module
org-netbeans-modules-versioning-masterfs-patch-module
After installation restart Netbeans..

And the Unix domain socket problem
org.netbeans.modules.masterfs.filebasedfs.fileobjects.BaseFileObj.refresh(boolean , boolean ) to:
public final void refresh(final boolean expected, boolean fire) {
        Statistics.StopWatch stopWatch = Statistics.getStopWatch(Statistics.REFRESH_FILE);
        stopWatch.start();
        try {
            if (isValid()) {
                refreshImpl(expected, fire);
                if (isValid()) {
                    final File file = getFileName().getFile();
                    final boolean isDir = file.isDirectory();
                    final boolean isFile = file.isFile();
                    final boolean isOther = isOther(file);
                    if ((isDir == isFile || isFolder() != isDir || isData() != isFile) && !isOther) {
                        invalidateFO(fire, expected, true);
                    }
                } else if (isData()) {
                    refreshExistingParent(expected, fire);
                }
            }
        } catch (Error e) { // #249301
            LOG.log(Level.INFO, "Cannot refresh file {0}", getPath());  //NOI18N
            throw e;
        } finally {
            stopWatch.stop();
        }
    }

    private static boolean isOther(File file) {
        boolean other = false;
        try {
            other = Files.readAttributes(file.toPath(), BasicFileAttributes.class).isOther();
        } catch (IOException ex) {
            Exceptions.printStackTrace(ex);
        }
        return other;
    }


Forward Rendering: Support single draw per draw call

Perhaps depth test with lequal will fix the previous implementation

Fixed in https://github.com/yanagiragi/ForwardPlus/pull/5


Bug with getImageCaption

Found as part of https://jira.corp.adobe.com/browse/MWPW-146743, there is an instance where caption will equal undefined and be appended to the DOM. Although there are checks for caption, if undefined is stored as a value, it can be appended to the DOM.
Note, this is an edge case that only occurs under the condition that whatever code runs does not remove the last children of the DOM sent with picture elements. In most instances, we do this removal, but better to remove the bug where it is instead of finding it later.
Before: https://main--blog--adobecom.hlx.page/en/publish/2024/05/21/lightroom-introduces-power-adobe-firefly-with-generative-remove?milolibs=get-image-caption-undefined-issue
After: https://fix-get-image-caption--blog--adobecom.hlx.page/en/publish/2024/05/21/lightroom-introduces-power-adobe-firefly-with-generative-remove?milolibs=get-image-caption-undefined-issue

Thanks @JasonHowellSlavin!

@rgclayton Looks like this has been sitting a while. Is there anything else you need from our side to get this released?


Add list headers

Please, add an option for adding a subtitle like addTitle/ addSubtitle.

Will be released in the next update


Travis integration

Added .travis which is the config for TravisCI to use. I left out Node v0.12 because that requires flags with metalsmith to run and it is nearing the end of its life.
Also added badges for when Travis is up and running.
To get Travis working, ExtraHop will need to run through steps 1 and 2 in the Getting Started Guide.
By merging this PR should trigger the CI.

@njbraun as promised. Thanks.

@woodyrew I've started the process of enabling travis CI.  I noticed that there are a couple of extraneous commits in this pull request.  Please rebase and update.

@njbraun Sorry about that. Fixed.

lgtm


Cannot open Bruker IMS-MS file

Basic information

My operating system and version: Windows 10
My MZmine version: 3.4.27

What happened

Cannot import Bruker IMS-MS .d or .tdf data file，and the pop-up window shown below.
My IMS-MS datas are collerted from Bruker timstof with data formats .d or .tdf:

Here is a IMS-MS .tdf data file:
analysis.zip

Any updata? Otherwise the issue will be closed next week.


how to enable quota or quota report?

plz,help me
how to enable quota or quota report
i have make create  /opt/harvest2-conf/conf/zapi/custom_my.yaml  and /opt/harvest2-conf/conf/zapi/cdot/9.8.0/custom_qtree.yaml
and then restart harvest2

hi ,

my version is:

hi,

can't see 'quota'

Closing.
@leejshades if you still see this problem please reopen and reply with the logs mentioned in comment


Configure Eclipse with SAPUI5

Tutorial URL: https://developers.sap.com/tutorials/sapui5-install-eclipse.html
Please specify the step you are referring to
It is not possible to complete the steps because there aren't buttons.

Good catch, thanks for reporting!


[bug] Copy problem on Windows

Can't copy selected text with mouse click:

The same problem when I try to copy from chat:

Shortcut works but I'm on Windows, do not want Ctrl+Insert, give me Ctrl+C.
Please fix it
P.S. does not work Cut and Paste on context menu (as you see on the image) but I don't understand who wants the feature?! What is the reason of these menu items?! my questions relate to the first image

Thanks for reporting @BachiMjavanadze
I alerted the team.


Why add entropy to loss when its gradient is zero?

As the differential entropy of a Gaussian distribution is dependent only on the standard deviation, how does adding it to the actor loss function promote exploration? Isn't the gradient of the differential entropy of a Gaussian distribution w.r.t policy parameters 0?
h(X) = ln[σ(2π)1/2] + 0.5
(σ is a constant vector of ones)

In this implementation, a Gaussian distribution has a learnable standard deviation parameter:
https://github.com/ikostrikov/pytorch-a2c-ppo-acktr-gail/blob/master/a2c_ppo_acktr/distributions.py#L79


CSV import config is very slow for a 50K row file

Please note, this is not for the import itself, this is for the dialog that will define the file and the format of the upload
OS: MAC OS 11.6.7
DBeaver version: Version <IP_ADDRESS>206261508
DB: postgres 14.2
drive name:postgres
I'm trying to upload a file with 50000 rows and I can't really move past the file selection dialog. I am stuck in "update data produces settings from import stream" It might eventually move to the next screen but by this time the conection to the database has dropped.
my table has 10 columns.
this is the DDL and I have attached the file.
 CREATE TABLE scribe.ff_communication_log ( 	id_ff_communication_log int4 NOT NULL, 	id_communication int4 NOT NULL, 	communication_instance_id int4 NULL, 	id_consumer int4 NULL, 	id_auth_group int4 NULL, 	id_barcode int4 NULL, 	manual_entry_enc varchar(20) NULL DEFAULT NULL::character varying, 	email varchar(255) NULL DEFAULT NULL::character varying, 	tlf varchar(18) NULL DEFAULT NULL::character varying, 	id_ff_channel int4 NULL DEFAULT 1, 	hash varchar(255) NULL DEFAULT NULL::character varying, 	status varchar(45) NULL DEFAULT NULL::character varying, 	batch_number int4 NULL, 	"token" varchar(255) NULL DEFAULT NULL::character varying, 	CONSTRAINT ff_communication_log_pkey PRIMARY KEY (id_ff_communication_log) ); CREATE INDEX email_ix ON scribe.ff_communication_log USING btree (email); CREATE INDEX ff_communication_log_account_fk ON scribe.ff_communication_log USING btree (id_auth_group); CREATE INDEX ff_communication_log_barcode_fk ON scribe.ff_communication_log USING btree (id_barcode); CREATE INDEX ff_communication_log_communication_instance_id_ix ON scribe.ff_communication_log USING btree (communication_instance_id); CREATE INDEX ff_communication_log_customer_fk ON scribe.ff_communication_log USING btree (id_consumer); CREATE INDEX ff_communication_log_ff_communication_fk ON scribe.ff_communication_log USING btree (id_communication); CREATE INDEX hash ON scribe.ff_communication_log USING btree [messages_small.txt](https://github.com/dbeaver/dbeaver/files/9039331/messages_small.txt)  (hash); CREATE INDEX id_ff_channel ON scribe.ff_communication_log USING btree (id_ff_channel); CREATE INDEX indexmanualentry ON scribe.ff_communication_log USING btree (manual_entry_enc);

Hello @mskempri,
Can you please provide your import settings on that page?
Perhaps you can reduce the Sample rows count parameter to some small value.

hI @ShadelessFox , thank yo ufor getting back to me.
I am using the default settings. these are the settings:

The moment I select the file, it goes into this screen

That takes several minutes to progress with mapping the fields

Unfortunately, I'm unable to reproduce your issue.
A thread dump might help. Please refer to our wiki:
https://github.com/dbeaver/dbeaver/wiki/Making-a-thread-dump#mac-and-linux

Thank you @ShadelessFox , I'm currently trying with a file of 1.7MB (I think about 1000 rows) and it's now taking a LONG time on

I attach the thread dump thus far
thread-dump_stuck_on_load_child_objects.txt

Thanks for the thread dump. I can see that it's reading metadata about your tables. How many tables do you have in the schema containing the target table? (It's an I/O-bound operation. A slow network connection may have an impact on the performance.)
I'm interested in a thread dump during the Update data produces settings from import stream status. Sorry for not clarifying that earlier.

The first screen progressed - now I am waiting for the second screen:

thread-dump_stuck_settings_from_import_stream_table_mapping_step.txt

I don't know if I mentioned that this is an RDS hosted postgres (I don't konw if that makes a difference) but I still can't get to import a file with 50K rows

After further investigation, it turns out the file you've provided is missing the quote (") at the start, which hangs DBeaver, making it read the file until the end.
The solution is to put " at the start of the file.
Please let me know if it helps.

Oh wow, thank you, that worked like a charm straight away.
I can go ahead and close the ticket, otherwise maybe you can treat it for validating the CSV format before uploading? Whatever you prefer

I'm not sure if we can fix that. I guess the issue can be closed now.

Thank you for your help