Baseline - Refactor GCP check labelling #388

Closes #388

krishna@turbotindias-MacBook-Pro gcp_check_labeling % terraform apply --var-file=demo.tfvars
var.turbot_profile
  Enter profile matching your turbot cli credentials.

  Enter a value: punisher

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

Terraform will perform the following actions:

  # turbot_policy_setting.default_tag_template["gcp-bigquery-table"] will be created
  + resource "turbot_policy_setting" "default_tag_template" {
      + id                           = (known after apply)
      + precedence                   = "REQUIRED"
      + resource                     = (known after apply)
      + resource_akas                = (known after apply)
      + template                     = <<~EOT
            # Actor who created the resource
            {%- set owner = $.resource.creator.items[0].actor.identity.turbot.title -%}
            created_by: "{{ owner | lower | replace(" ", "_") }}"

            # Creation Timestamp
            {%- set create_time = $.resource.creator.items[0].turbot.createTimestamp -%}
            created_time: "{{ create_time | lower | replace(".", "_") | replace(":", "-") }}"
        EOT
      + template_input               = <<~EOT
            {
              resource {
                turbot {
                  title
                  tags
                }
                creator: notifications(filter: "sort:version_id limit:1") {
                  items {
                    actor {
                      alternatePersona
                      identity {
                        turbot {
                          title
                        }
                      }
                    }
                    turbot {
                      createTimestamp
                    }
                  }
                }
              }
            }
        EOT
      + type                         = "tmod:@turbot/gcp-bigquery#/policy/types/tableLabelsTemplate"
      + value_key_fingerprint        = (known after apply)
      + value_source                 = (known after apply)
      + value_source_key_fingerprint = (known after apply)
      + value_source_used            = (known after apply)
    }

  # turbot_policy_setting.default_tag_template["gcp-computeengine-disk"] will be created
  + resource "turbot_policy_setting" "default_tag_template" {
      + id                           = (known after apply)
      + precedence                   = "REQUIRED"
      + resource                     = (known after apply)
      + resource_akas                = (known after apply)
      + template                     = <<~EOT
            # Actor who created the resource
            {%- set owner = $.resource.creator.items[0].actor.identity.turbot.title -%}
            created_by: "{{ owner | lower | replace(" ", "_") }}"

            # Creation Timestamp
            {%- set create_time = $.resource.creator.items[0].turbot.createTimestamp -%}
            created_time: "{{ create_time | lower | replace(".", "_") | replace(":", "-") }}"
        EOT
      + template_input               = <<~EOT
            {
              resource {
                turbot {
                  title
                  tags
                }
                creator: notifications(filter: "sort:version_id limit:1") {
                  items {
                    actor {
                      alternatePersona
                      identity {
                        turbot {
                          title
                        }
                      }
                    }
                    turbot {
                      createTimestamp
                    }
                  }
                }
              }
            }
        EOT
      + type                         = "tmod:@turbot/gcp-computeengine#/policy/types/diskLabelsTemplate"
      + value_key_fingerprint        = (known after apply)
      + value_source                 = (known after apply)
      + value_source_key_fingerprint = (known after apply)
      + value_source_used            = (known after apply)
    }

  # turbot_policy_setting.default_tag_template["gcp-computeengine-instance"] will be created
  + resource "turbot_policy_setting" "default_tag_template" {
      + id                           = (known after apply)
      + precedence                   = "REQUIRED"
      + resource                     = (known after apply)
      + resource_akas                = (known after apply)
      + template                     = <<~EOT
            # Actor who created the resource
            {%- set owner = $.resource.creator.items[0].actor.identity.turbot.title -%}
            created_by: "{{ owner | lower | replace(" ", "_") }}"

            # Creation Timestamp
            {%- set create_time = $.resource.creator.items[0].turbot.createTimestamp -%}
            created_time: "{{ create_time | lower | replace(".", "_") | replace(":", "-") }}"
        EOT
      + template_input               = <<~EOT
            {
              resource {
                turbot {
                  title
                  tags
                }
                creator: notifications(filter: "sort:version_id limit:1") {
                  items {
                    actor {
                      alternatePersona
                      identity {
                        turbot {
                          title
                        }
                      }
                    }
                    turbot {
                      createTimestamp
                    }
                  }
                }
              }
            }
        EOT
      + type                         = "tmod:@turbot/gcp-computeengine#/policy/types/instanceLabelsTemplate"
      + value_key_fingerprint        = (known after apply)
      + value_source                 = (known after apply)
      + value_source_key_fingerprint = (known after apply)
      + value_source_used            = (known after apply)
    }

  # turbot_policy_setting.default_tag_template["gcp-computeengine-snapshot"] will be created
  + resource "turbot_policy_setting" "default_tag_template" {
      + id                           = (known after apply)
      + precedence                   = "REQUIRED"
      + resource                     = (known after apply)
      + resource_akas                = (known after apply)
      + template                     = <<~EOT
            # Actor who created the resource
            {%- set owner = $.resource.creator.items[0].actor.identity.turbot.title -%}
            created_by: "{{ owner | lower | replace(" ", "_") }}"

            # Creation Timestamp
            {%- set create_time = $.resource.creator.items[0].turbot.createTimestamp -%}
            created_time: "{{ create_time | lower | replace(".", "_") | replace(":", "-") }}"
        EOT
      + template_input               = <<~EOT
            {
              resource {
                turbot {
                  title
                  tags
                }
                creator: notifications(filter: "sort:version_id limit:1") {
                  items {
                    actor {
                      alternatePersona
                      identity {
                        turbot {
                          title
                        }
                      }
                    }
                    turbot {
                      createTimestamp
                    }
                  }
                }
              }
            }
        EOT
      + type                         = "tmod:@turbot/gcp-computeengine#/policy/types/snapshotLabelsTemplate"
      + value_key_fingerprint        = (known after apply)
      + value_source                 = (known after apply)
      + value_source_key_fingerprint = (known after apply)
      + value_source_used            = (known after apply)
    }

  # turbot_policy_setting.default_tag_template["gcp-sql-instance"] will be created
  + resource "turbot_policy_setting" "default_tag_template" {
      + id                           = (known after apply)
      + precedence                   = "REQUIRED"
      + resource                     = (known after apply)
      + resource_akas                = (known after apply)
      + template                     = <<~EOT
            # Actor who created the resource
            {%- set owner = $.resource.creator.items[0].actor.identity.turbot.title -%}
            created_by: "{{ owner | lower | replace(" ", "_") }}"

            # Creation Timestamp
            {%- set create_time = $.resource.creator.items[0].turbot.createTimestamp -%}
            created_time: "{{ create_time | lower | replace(".", "_") | replace(":", "-") }}"
        EOT
      + template_input               = <<~EOT
            {
              resource {
                turbot {
                  title
                  tags
                }
                creator: notifications(filter: "sort:version_id limit:1") {
                  items {
                    actor {
                      alternatePersona
                      identity {
                        turbot {
                          title
                        }
                      }
                    }
                    turbot {
                      createTimestamp
                    }
                  }
                }
              }
            }
        EOT
      + type                         = "tmod:@turbot/gcp-sql#/policy/types/instanceLabelsTemplate"
      + value_key_fingerprint        = (known after apply)
      + value_source                 = (known after apply)
      + value_source_key_fingerprint = (known after apply)
      + value_source_used            = (known after apply)
    }

  # turbot_policy_setting.default_tag_template["gcp-storage-bucket"] will be created
  + resource "turbot_policy_setting" "default_tag_template" {
      + id                           = (known after apply)
      + precedence                   = "REQUIRED"
      + resource                     = (known after apply)
      + resource_akas                = (known after apply)
      + template                     = <<~EOT
            # Actor who created the resource
            {%- set owner = $.resource.creator.items[0].actor.identity.turbot.title -%}
            created_by: "{{ owner | lower | replace(" ", "_") }}"

            # Creation Timestamp
            {%- set create_time = $.resource.creator.items[0].turbot.createTimestamp -%}
            created_time: "{{ create_time | lower | replace(".", "_") | replace(":", "-") }}"
        EOT
      + template_input               = <<~EOT
            {
              resource {
                turbot {
                  title
                  tags
                }
                creator: notifications(filter: "sort:version_id limit:1") {
                  items {
                    actor {
                      alternatePersona
                      identity {
                        turbot {
                          title
                        }
                      }
                    }
                    turbot {
                      createTimestamp
                    }
                  }
                }
              }
            }
        EOT
      + type                         = "tmod:@turbot/gcp-storage#/policy/types/bucketLabelsTemplate"
      + value_key_fingerprint        = (known after apply)
      + value_source                 = (known after apply)
      + value_source_key_fingerprint = (known after apply)
      + value_source_used            = (known after apply)
    }

  # turbot_policy_setting.set_resource_tag_policies["gcp-bigquery-table"] will be created
  + resource "turbot_policy_setting" "set_resource_tag_policies" {
      + id                           = (known after apply)
      + precedence                   = "REQUIRED"
      + resource                     = (known after apply)
      + resource_akas                = (known after apply)
      + type                         = "tmod:@turbot/gcp-bigquery#/policy/types/tableLabels"
      + value                        = "Check: Labels are correct"
      + value_key_fingerprint        = (known after apply)
      + value_source                 = (known after apply)
      + value_source_key_fingerprint = (known after apply)
      + value_source_used            = (known after apply)
    }

  # turbot_policy_setting.set_resource_tag_policies["gcp-computeengine-disk"] will be created
  + resource "turbot_policy_setting" "set_resource_tag_policies" {
      + id                           = (known after apply)
      + precedence                   = "REQUIRED"
      + resource                     = (known after apply)
      + resource_akas                = (known after apply)
      + type                         = "tmod:@turbot/gcp-computeengine#/policy/types/diskLabels"
      + value                        = "Check: Labels are correct"
      + value_key_fingerprint        = (known after apply)
      + value_source                 = (known after apply)
      + value_source_key_fingerprint = (known after apply)
      + value_source_used            = (known after apply)
    }

  # turbot_policy_setting.set_resource_tag_policies["gcp-computeengine-instance"] will be created
  + resource "turbot_policy_setting" "set_resource_tag_policies" {
      + id                           = (known after apply)
      + precedence                   = "REQUIRED"
      + resource                     = (known after apply)
      + resource_akas                = (known after apply)
      + type                         = "tmod:@turbot/gcp-computeengine#/policy/types/instanceLabels"
      + value                        = "Check: Labels are correct"
      + value_key_fingerprint        = (known after apply)
      + value_source                 = (known after apply)
      + value_source_key_fingerprint = (known after apply)
      + value_source_used            = (known after apply)
    }

  # turbot_policy_setting.set_resource_tag_policies["gcp-computeengine-snapshot"] will be created
  + resource "turbot_policy_setting" "set_resource_tag_policies" {
      + id                           = (known after apply)
      + precedence                   = "REQUIRED"
      + resource                     = (known after apply)
      + resource_akas                = (known after apply)
      + type                         = "tmod:@turbot/gcp-computeengine#/policy/types/snapshotLabels"
      + value                        = "Check: Labels are correct"
      + value_key_fingerprint        = (known after apply)
      + value_source                 = (known after apply)
      + value_source_key_fingerprint = (known after apply)
      + value_source_used            = (known after apply)
    }

  # turbot_policy_setting.set_resource_tag_policies["gcp-sql-instance"] will be created
  + resource "turbot_policy_setting" "set_resource_tag_policies" {
      + id                           = (known after apply)
      + precedence                   = "REQUIRED"
      + resource                     = (known after apply)
      + resource_akas                = (known after apply)
      + type                         = "tmod:@turbot/gcp-sql#/policy/types/instanceLabels"
      + value                        = "Check: Labels are correct"
      + value_key_fingerprint        = (known after apply)
      + value_source                 = (known after apply)
      + value_source_key_fingerprint = (known after apply)
      + value_source_used            = (known after apply)
    }

  # turbot_policy_setting.set_resource_tag_policies["gcp-storage-bucket"] will be created
  + resource "turbot_policy_setting" "set_resource_tag_policies" {
      + id                           = (known after apply)
      + precedence                   = "REQUIRED"
      + resource                     = (known after apply)
      + resource_akas                = (known after apply)
      + type                         = "tmod:@turbot/gcp-storage#/policy/types/bucketLabels"
      + value                        = "Check: Labels are correct"
      + value_key_fingerprint        = (known after apply)
      + value_source                 = (known after apply)
      + value_source_key_fingerprint = (known after apply)
      + value_source_used            = (known after apply)
    }

  # turbot_smart_folder.gcp_labeling will be created
  + resource "turbot_smart_folder" "gcp_labeling" {
      + description = "Defines sets of policies for the GCP Labeling baseline"
      + id          = (known after apply)
      + parent      = "tmod:@turbot/turbot#/"
      + parent_akas = (known after apply)
      + title       = "GCP Labeling Policies"
    }

Plan: 13 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

   Resources: 13 added, 0 changed, 0 destroyed.

Outputs:

resource_tags = {
  "gcp-bigquery-table" = "Check: Labels are correct"
  "gcp-computeengine-disk" = "Check: Labels are correct"
  "gcp-computeengine-instance" = "Check: Labels are correct"
  "gcp-computeengine-snapshot" = "Check: Labels are correct"
  "gcp-sql-instance" = "Check: Labels are correct"
  "gcp-storage-bucket" = "Check: Labels are correct"
}
smart_folder_description = Defines sets of policies for the GCP Labeling baseline
smart_folder_name = GCP Labeling Policies
smart_folder_parent_resource = tmod:@turbot/turbot#/
turbot_profile = punisher


Display Gremlin/Table/Cassandra accounts when running "SQL(DocumentDB): Create Stored Procedure"

OS: Win10
Build Version: 20191009.1
Regression: Not a Regression
Repro Steps:

F1 --> Type and select "SQL(DocumentDB): Create Stored Procedure".
Check the result.

Expect:
Only list the SQL accounts.
Actual:
Display Gremlin/Table/Cassandra accounts.

More Info:
There are no commands to create & delete a stored procedure for Graph accounts.

Hiding table accounts was fixed in https://github.com/microsoft/vscode-cosmosdb/pull/1530. And it looks like it was intentional to show graph accounts as an ancestor of doc db stored procedures (https://github.com/microsoft/vscode-cosmosdb/pull/762). Please reopen if that's not the case


feat: add domain name action

Because I love valibot so much I wanted to do something in return for all the headache she saved me from so here's a PR that adds domain name validation as requested by #894.

It still needs docs for the website

Thank you so much! 🙏 I am focusing on our v1 release first before reviewing this PR. In the meantime, I recommend using the regex with our regex action as a workaround.

Too bad, I wanted to do it right away :( But isn't the following regex better suited for this purpose?
/^(?=.{1,253}$)(?![-_])(?!.+[-_]\.)([\w-]{1,63}\.)+[a-z]{2,63}$/iu
It better aligns with RFC 1035, doesn't it? This way, it also includes the restrictions that apply to a domain and its subdomains.

I haven't checked the regex yet. Almost every regex of Valibot is handmade. I will check the regex before merging.

This regex is used to validate domain names. Exactly that was my intention. I looked more closely into RFC 1035 and created this regex with the goal of adhering to the specifications as much as possible so that tools like Netscaler or DNS processes will consistently accept these domains. There is a lot of guidance in RFC 1035, especially concerning octets and the conditions for when and how certain characters are allowed.
Here’s a detailed breakdown of how the regex works:
/^(?=.{1,253}$)(?![-])(?!.+[-].)([\w-]{1,63}.)+[a-z]{2,63}$/iu
Explanation of each part:

^(?=.{1,253}$): This part checks that the total length of the input is between 1 and 253 characters, which is the maximum allowable length for domains.

(?![-_]): This ensures that the domain name does not begin with a hyphen (-) or an underscore (_).

(?!.+[-_]\.): This negative lookahead ensures there is no combination of a hyphen or underscore immediately before a period (.). This prevents invalid patterns like domain-.com.

([\w-]{1,63}\.)+: This section validates each label (segment) of the domain name:

[\w-]{1,63} allows between 1 and 63 alphanumeric characters or hyphens (but no _, which is not allowed in domain names).
\. at the end ensures each label ends with a period.
The + at the end allows one or more repetitions of this pattern, supporting subdomains.

[a-z]{2,63}$: This section at the end checks if the TLD (top-level domain) contains only lowercase letters and is between 2 and 63 characters long, as is typical for TLDs (e.g., .com, .online).

iu: The flags i and u represent:

i (ignore case): Case-insensitive, so .COM and .com are both accepted as valid.
u (unicode): Enables Unicode support for character classes like \w.

Examples of valid domains:

example.com
sub.domain.co.uk
my-site123.org

Examples of invalid domains:

-example.com (begins with a hyphen)
example-.com (hyphen before a period)
toolongtoolongtoolongtoolongtoolongtoolongtoolong.com (label is longer than 63 characters)

This regex is designed to follow DNS standards closely, enabling reliable domain validation across different DNS systems and tools.
This way, I can still help a bit :)

Sorry @JacKyDev I didn't mean to steal your thunder. I just had some spare time left and since it been a few days since you responded I figured I'd step in instead.
I will look into the regex you proposed when I get the chance today!

@paksa92 All good, I'll survive :D
But since I already put together the regex yesterday based on what I’d read, I thought it might be a way to help out. In the end, it saves me time too :)

I'm not sure if this is common practice at Valibot, so I’ll just mention it. I would assume that the documentation could also be updated so that domainName not only exists but can also be displayed in the documentation in the future. I’ve also asked Fabian about this in the issue.
Additionally, I would suggest that something similar to email should also be included in the necessary documentation files.
If I haven't overlooked anything, those would be:

index.mdx (website/src/routes/api/(actions)/domainName & website/src/routes/api/(async)/customAsync & website/src/routes/api/(async)/fallbackAsync & website/src/routes/api/(async)/intersectAsync & website/src/routes/api/(async)/lazyAsync & website/src/routes/api/(async)/unionAsync)
properties.ts (website/src/routes/api/(actions)/domainName)

Also, the menu.md in routes/api to find domainName in the docs.
But I'm not sure if this is common practice at Valibot or if I might be overthinking it. Perhaps you should wait for Fabian to respond, as I also asked him this question here: https://github.com/fabian-hiller/valibot/issues/894.

@JacKyDev yeah, I already mentioned that it is missing in the PR, but I will add it.
CONTRIBUTING.md does not mention a "definition of done" for new features, maybe it should? @fabian-hiller

I suppose devs rarely look at the CONTRIBUTING.md. So it is not too important. But feel free to create a PR.

/^(?=.{1,253}$)(?![-])(?!.+[-].)([\w-]{1,63}.)+[a-z]{2,63}$/iu

@JacKyDev I'm currently testing this regex and I think it's wrong. First off, TLD's may not exceed a length of 6. Changing the regex to:
/^(?=.{1,253}$)(?![-])(?!.+[-].)([\w-]{1,63}.)+[a-z]{2,6}$/iu

But, this regex still allows TLD's exceeding a length of 6. I suspect one of the negative lookaheads (?![-])(?!.+[-].) causes the problem, but I'm not sure. I can't seem to fix it.
I tweaked the original regex in my PR to account for the max length of a domain name, which now should cover all the cases you mentioned:
/^(?=.{1,253}$)(?!-)([a-z0-9-]{1,63}(?<!-)\.)+[a-z]{2,6}$/iu

Please test it and let me know if you find any issues.

You're right @JacKyDev, there is no limit of 6 characters on the TLD. My assumption was based on some stackoverflow posts I've seen.
I think the regex is all set now! :)

^(?=.{1,253}$) references the number of UTF-32 code points if u flag is added. length property of the input string references UTF-16.
I don't know which is better for domain validation.

@tats-u : I understand what you mean, but when I test this regex with emojis or other Unicode characters, it consistently flags them as invalid. This aligns with what I expected, since domains technically only allow ASCII characters. However, I can't replicate what you're describing in a unit test—here, all tests fail as soon as characters outside of a-z, 0-9, or - are included. So, I'm not entirely sure what you're aiming for.
From a technical standpoint, this is exactly what I'd expect, as any characters outside the ASCII range should be represented in Punycode to be valid in a domain. Converting to Punycode means that an emoji, for example, doesn't count as a single character, but as multiple ASCII characters, which would also increase the string length—especially since Punycode includes a prefix.
Do you have a test example we can try? Currently, emojis and special characters like "ü" are rejected, just as intended.

since domains technically only allow ASCII characters. However, I can't replicate what you're describing in a unit test—here, all tests fail as soon as characters outside of a-z, 0-9, or - are included.

If so we don't have to care about surrogate pairs. You designed this validator on the premise that we need to make Unicode domains punycoded in advance.
I am reminded that users care about bundle size. The current regex is small compared to code using length property and sufficient.

I think we’re in a good place by strictly requiring specific values... This way, the domain itself is validated very precisely. And we wouldn’t be offering any special exceptions. Separately, one could consider adding a toPunyCode action in the future to initially standardize a value, making it usable for everyone. This approach, I think, creates more potential.
I wouldn’t really be against the additional check, because you’re right—it’s not much more code.
I still lack experience with the process here, as a regex action might feel messy if it includes code checks. But a length Check ist really small... :)
@fabian-hiller could probably answer that better, I think.

toPunyCode

I agree with it. There are 2 strategies:

Test the return value of toPunyCode by the regex, then pass the return value of toPunyCode to the return value of parse
Test the return value of toPunyCode by the regex, then pass the input to the return value of parse as is

Users pass the punycoded domains to other libraries in 1. while they utilize unpunycoded Unicode domains as are.

I am very sorry for not getting back to you on this PR. I will try to give you feedback in the next few weeks. I plan to do the final review and merge this PR after Valibot v1 is available.


Memory "Pain point" ;)

I am currently evaluating ArangoDB for a specific use case, which essentially boils down to importing OpenStreetMap data into Arango. The final schema has not been decided upon, yet. I am evaluating a simple table-to-collection import schema, as well as a graph schema where osm ways partly become edges - connecting the osm nodes. I have also tested some in-between mixed scenarios. Besides the OSM data, there would also be custom data in the same format as OSM data, but private.
So, what's the memory pain point? Well, I grabbed that phrase off the conclusion paragraph of your benchmark post here :smile:
Here are the issues I am facing:

In OSM, the keys in the various objects are very often repeated and there are a lot of them - see here. This leads to a lot of key names wasting a lot of precious space/memory.
For a test, I did an export of all collections and ran them through the velocypack tool json-to-vpack and achieved a 35%-45% reduction in size, using the --compress and --no-compact parameters. That is, as I understand it, mostly or only key compression using a lookup table.
Overall the reduction will most possibly be higher because the usage of the keys is below average in this specific dataset, compared to the whole planet.
The compression capability would even be more important if a graph design would be chosen. To be honest I'd like to go mostly graph, but the storage needs for data and indexes are too much.
So, I guess a feature request would be to be able to use the compression capabilities of velocypack.

Also, I would like to ask if there is something on your roadmap to reduce memory consumption for edges (and including index memory reduction in general) a bit.
An example: for an edge collection with ~16.000.000 documents which has a data size of 1.89GB, the index size is 2.37GB with only the standard edge indexes _key & _from,_to. That is quiet huge.

Besides the key compression discussed before, it would also be of interest if general compression on data and/or index would be possible - or at least don't have the need to have all data in memory (there was some mention of that approach in said benchmark post).

Thank you

Regarding the memory usage for a single bucket edge collection with 16 * 10^6 docs:

attribute
_key
_from/_to

bucket size
34,132,321
34,132,321

reported size in web frontend*
657,058,568
1,638,351,408

bytes per entry
19,2503336647
48

8byte value count
~2.4
6

*Reported index size for a document collection (single bucket 34,132,321) with 16 * 10^6 docs: 657058568 bytes.

Bump :smile:

can we expect data compression in the coming months?

@frankmayer could you explain how you did OSM data loading to ArangoDB? I am getting errors http://stackoverflow.com/questions/42858056/how-to-load-osm-geojson-data-to-arangodb

@bubnenkoff it was a quick check for a potential project. I didn't opt for the osmtogeojson at the time, but implemented a custom XML-Source file importer. However the project did not take off yet, so the state of the implementation is still pending.
I don't remember the exact reason, not to go with that (osmtoegeojson) specific way, but it might have something to do with trying to avoid the "conversion and store" step, prior to the actual import.

I am closing this now, as the main issue, the "memory pain point" is now resolved with the new RocksDB storage engine.


User Profile page

This page should open you click on any user's name. It should have all the details related to the user.

You can Assign me this!
Is it for the current app user or for all like workers in the list as well?

Why was my comment deleted ?
I wanted to work on it

I have also added some screenshots.

I have also added some screenshots.


Add live RTSP stream support to Logi Circle camera entity

Description:
Adds live RTSP stream support to Logi Circle camera entities.
Related issue (if applicable): N/A
Pull request in home-assistant.io with documentation (if applicable): home-assistant/home-assistant.io#9295
Example entry for configuration.yaml (if applicable):
logi_circle:
  cameras:
    ffmpeg_arguments: "-vf eq=brightness=0.06:saturation=2"

Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.

If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[x] The manifest file has all fields filled out correctly (example).
[ ] New dependencies have been added to requirements in the manifest (example).
[x] New dependencies are only imported inside functions that use them (example).
[ ] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

Closing PR. Will reopen once stream_source is available as an async method.


Cannot connect to Aura

Hi,
integration setup cannot connect to my Aura: IP address is right. Other integrations (Android TV) are working.

How can I solve?
Thank you.

Could try setting up with configuration.yaml?

Could try setting up with configuration.yaml?

Done, now device is on UI but nothing works.

It seems that your xgimi projector is on international firmware and this integration doesn't work. Similar to https://github.com/manymuch/Xgimi-4-Home-Assistant/issues/4#issuecomment-1186148466, you can just use official Android TV integration that utilize adb.

Yes, my unit runs on Android TV. But with Android TV integration cannot send remote commands: my goal is to send remote list commands to, e.g., select HDMI1 automatically.

How can I solve?

Hello! Could you share the key for the aura? I have the same problem as you. I want to try to solve it, but I need the key. Thanks!

action: remote.send_command
data:
command: hdmi1
target:
entity_id: remote.projector_remote
works for hdmi1


Removing old package_config/package_yaml options and codepaths

Codecov Report

Merging #2023 into master will increase coverage by 0.46%.
The diff coverage is 93.33%.

@@             Coverage Diff              @@
##             master    #2023      +/-   ##
============================================
+ Coverage     85.37%   85.83%   +0.46%
+ Complexity     4998     4993       -5
============================================
  Files           457      457
  Lines         20129    19984     -145
  Branches       2114     2094      -20
============================================
- Hits          17185    17154      -31
+ Misses         2228     2118     -110
+ Partials        716      712       -4

Impacted Files
Coverage Δ
Complexity Δ

...in/java/com/google/api/codegen/config/Configs.java
76% <ø> (-6.76%)
6 <0> (-2)

...codegen/grpcmetadatagen/GrpcMetadataGenerator.java
62.79% <ø> (+7.68%)
3 <0> (ø)
:arrow_down:

...om/google/api/codegen/DiscoGapicGeneratorTool.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

.../java/com/google/api/codegen/CodeGeneratorApi.java
23.27% <ø> (-0.12%)
7 <0> (ø)

...java/com/google/api/codegen/CodeGeneratorTool.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

...com/google/api/codegen/DiscoGapicGeneratorApi.java
64.36% <0%> (+3.95%)
7 <0> (ø)
:arrow_down:

...ormer/nodejs/NodeJSPackageMetadataTransformer.java
90.35% <100%> (ø)
21 <0> (ø)
:arrow_down:

...odegen/transformer/PackageMetadataTransformer.java
100% <100%> (ø)
10 <0> (-1)
:arrow_down:

...tadatagen/java/JavaPackageMetadataTransformer.java
100% <100%> (ø)
8 <4> (ø)
:arrow_down:

...ansformer/ruby/RubyPackageMetadataTransformer.java
98.72% <100%> (ø)
26 <0> (ø)
:arrow_down:

... and 9 more

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 c9c05d5...d6fc9d6. Read the comment docs.

I don't think there's terribly much value in fixing the "_2" naming, particularly with the parameter names, because I will be adding a third format later anyway. I think it can actually help people to remember what version they are looking at.

(by "parameter names" I meant to say "command line arguments")

PTAL


Add custom meter support

Progress bars should support an additional custom "meter" (e.g. current training loss).

Done now!


[Enhancement] Optimize the eventmesh-admin of EventMesh

Search before asking

[X] I had searched in the issues and found no similar issues.

Enhancement Request
At present, eventmesh-admin provides a management interface for eventmesh storage, but it only implements the management function of rocketmq, which needs to be further expanded. At the same time, it can provide CLI for users to quickly start and experience.
Describe the solution you'd like
At present, eventmesh-admin provides a management interface for eventmesh storage, but it only implements the management function of rocketmq, which needs to be further expanded. At the same time, it can provide CLI for users to quickly start and experience.
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Hi @xwm1992, I think I can keep going on with this one since I have just done the redis-connector part.
Also data encoding and decoding in redis-connector are still need improvement, so I can start with redis-storage-admin first at the same time.
Plz assign to me.

@fabian4 Welcome, please add new changes to eventmesh-admin-redis module.

Closing as eventmesh-admin has been migrated to the eventmesh-dashboard repository.


[docs-infra] Fix arbitrary gap between paragraphs in callouts

Fix a regression introduced in #38525. I noticed the problem in #40909.
Before https://deploy-preview-40909--material-ui.netlify.app/material-ui/guides/nextjs/#installing-the-dependencies

After https://deploy-preview-40911--material-ui.netlify.app/experiments/docs/callouts/#multilines

What was broken with the previous code?

The #38525 introduced a custom gap between paragraphs:
https://github.com/mui/material-ui/pull/38525/files#diff-77f04bc58bbbb50bc7d3dea9ec533b08d76f110c581114cda8105da367d236a5R283
It no longer relies on the default margin-bottom value. I think it's a regression because:

It doesn't looks consistent, nor correct (too short of a gap).
It adds unnecessary complexity, defining the gap was for all the typography seems enough.


WFLY-7982 Singleton service jboss.test.myservice is not started

https://issues.jboss.org/browse/WFLY-7982

Retest this please


Version bump to 2.22.0

Includes:

Support CDAP SDK 3.3.5 ( Issue: #140 )
Support cdap-ambari-service installation on Ambari ( Issue: #141 )
Update README to reflect current recipes and usage ( Issue: #142 )
Support CDAP SDK 3.4.3 ( Issue: #143 )
Set default CDAP version to 3.4.3-1 ( Issue: #144 )
Update test kitchen ( Issue: #146 )
Support CDAP SDK 3.3.6 ( Issue: #147 )

👍 lgtm


GH2844: Add missing dotnet test options

Fixes #2844.

@gitfool your changes have been merged, thanks for your contribution 👍


Unauthorized mapzen API key

Hi, guys! Really sorry to ask a question, i just can't see the map! This is what I did.

I've pull the tangram-es code from github, and used "make xcode" command to build project  in my mac.

Get an mapzen key use github account, add it to the scene.yaml:
global:
feature_order: function () { return feature.sort_rank; }
sdk_mapzen_api_key: 'mapzen-TvvXXXX'
Setup an environment variable:
launchctl setenv MAPZEN_API_KEY mapzen-TvvXXXX

3.Then i run the project, everything seems alright, but only the map doesn't appear~~ I mean the glfw window appear, but map does not.
I realized it is a problem from getting vector data, but I don't know why. This is the messages:

To produce the result hereTANGRAM map.cpp:208: Loading scene file (async): scene.yaml
WARNING sceneLoader.cpp:1025: Invalid url_params entry in source 'osm', entries should be strings.
WARNING sceneLoader.cpp:1788: Can't find data source touch for layer touch
WARNING styleParam.cpp:280: Invalid font-size '1.2em'.
TANGRAM map.cpp:861: setup GL
TANGRAM hardware.cpp:60: Driver supports map buffer: 0
TANGRAM hardware.cpp:61: Driver supports vaos: 1
TANGRAM hardware.cpp:62: Driver supports rgb8_rgba8: 0
TANGRAM hardware.cpp:63: Driver supports NPOT texture: 1
TANGRAM hardware.cpp:77: Hardware max texture size 16384
TANGRAM hardware.cpp:78: Hardware max combined texture units 16
TANGRAM map.cpp:324: resize: 2048 x 1536
NOTIFY tileManager.cpp:72: add source osm
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized" from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19295/24642.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized" from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19295/24641.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized" from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19294/24641.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized" from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19294/24642.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized" from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19294/24643.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized" from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19295/24643.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized" from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19293/24641.mvt?

RESULT:
Just glfw windows appear, no map.
EXPECTED RESULT:
Show me a map, please.
ENVIRONMENT:
MacOS Sierra, 10.12.5

If you used a released version, what is the version number?
I used latest version in github, the last commit is 82831b8849ef98194c9650bdb22693342b55def1 by Matt Blair.

Any help is appreciate, thank you!

Once the API key is set, then make xcode again. I've found the order to matter.

On Jul 19, 2017, at 20:44, hymn4u<EMAIL_ADDRESS>wrote:
Hi, guys! Really sorry to ask a question, i just can't see the map! This is what I did.
I've pull the tangram-es code from github, and used "make xcode" command to build project in my mac.
Get an mapzen key use github account, add it to the scene.yaml:
global:
feature_order: function () { return feature.sort_rank; }
sdk_mapzen_api_key: 'mapzen-TvvXXXX'
Setup an environment variable:
launchctl setenv MAPZEN_API_KEY mapzen-TvvXXXX
3.Then i run the project, everything seems alright, but only the map doesn't appear~~ I mean the glfw window appear, but map does not.
I realized it is a problem from getting vector data, but I don't know why. This is the messages:
To produce the result hereTANGRAM map.cpp:208: Loading scene file (async): scene.yaml
WARNING sceneLoader.cpp:1025: Invalid url_params entry in source 'osm', entries should be strings.
WARNING sceneLoader.cpp:1788: Can't find data source touch for layer touch
WARNING styleParam.cpp:280: Invalid font-size '1.2em'.
TANGRAM map.cpp:861: setup GL
TANGRAM hardware.cpp:60: Driver supports map buffer: 0
TANGRAM hardware.cpp:61: Driver supports vaos: 1
TANGRAM hardware.cpp:62: Driver supports rgb8_rgba8: 0
TANGRAM hardware.cpp:63: Driver supports NPOT texture: 1
TANGRAM hardware.cpp:77: Hardware max texture size 16384
TANGRAM hardware.cpp:78: Hardware max combined texture units 16
TANGRAM map.cpp:324: resize: 2048 x 1536
NOTIFY tileManager.cpp:72: add source osm
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized" from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19295/24642.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized" from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19295/24641.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized" from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19294/24641.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized" from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19294/24642.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized" from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19294/24643.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized" from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19295/24643.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized" from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19293/24641.mvt?
RESULT:
Just glfw windows appear, no map.
EXPECTED RESULT:
Show me a map, please.
ENVIRONMENT:
MacOS Sierra, 10.12.5
If you used a released version, what is the version number?
I used latest version in github, the last commit is 82831b8 by Matt Blair.
Any help is appreciate, thank you!
―
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

We recently (less than 12 hours back) changed this behavior to have a run
time check than a compile time check for api key for the desktop demo apps.
Will give this a look tomorrow morning and update what's happening.
On Jul 19, 2017 10:27 PM, "Nathaniel V. KELSO"<EMAIL_ADDRESS>wrote:

Once the API key is set, then make xcode again. I've found the order to
matter.

On Jul 19, 2017, at 20:44, hymn4u<EMAIL_ADDRESS>wrote:
Hi, guys! Really sorry to ask a question, i just can't see the map! This
is what I did.
I've pull the tangram-es code from github, and used "make xcode" command
to build project in my mac.
Get an mapzen key use github account, add it to the scene.yaml:
global:
feature_order: function () { return feature.sort_rank; }
sdk_mapzen_api_key: 'mapzen-TvvXXXX'
Setup an environment variable:
launchctl setenv MAPZEN_API_KEY mapzen-TvvXXXX
3.Then i run the project, everything seems alright, but only the map
doesn't appear~~ I mean the glfw window appear, but map does not.
I realized it is a problem from getting vector data, but I don't know
why. This is the messages:
To produce the result hereTANGRAM map.cpp:208: Loading scene file
(async): scene.yaml
WARNING sceneLoader.cpp:1025: Invalid url_params entry in source 'osm',
entries should be strings.
WARNING sceneLoader.cpp:1788: Can't find data source touch for layer
touch
WARNING styleParam.cpp:280: Invalid font-size '1.2em'.
TANGRAM map.cpp:861: setup GL
TANGRAM hardware.cpp:60: Driver supports map buffer: 0
TANGRAM hardware.cpp:61: Driver supports vaos: 1
TANGRAM hardware.cpp:62: Driver supports rgb8_rgba8: 0
TANGRAM hardware.cpp:63: Driver supports NPOT texture: 1
TANGRAM hardware.cpp:77: Hardware max texture size 16384
TANGRAM hardware.cpp:78: Hardware max combined texture units 16
TANGRAM map.cpp:324: resize: 2048 x 1536
NOTIFY tileManager.cpp:72: add source osm
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized"
from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19295/24642.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized"
from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19295/24641.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized"
from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19294/24641.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized"
from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19294/24642.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized"
from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19294/24643.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized"
from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19295/24643.mvt?
ERROR osxPlatform.mm:137: Unsuccessful status code 401: "unauthorized"
from: http://tile.mapzen.com/mapzen/vector/v1/all/16/19293/24641.mvt?
RESULT:
Just glfw windows appear, no map.
EXPECTED RESULT:
Show me a map, please.
ENVIRONMENT:
MacOS Sierra, 10.12.5
If you used a released version, what is the version number?
I used latest version in github, the last commit is 82831b8 by Matt
Blair.
Any help is appreciate, thank you!
―
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tangrams/tangram-es/issues/1579#issuecomment-316600528,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAWAwTHb_Ze3zWAEl0ahHGXE8L8PV2Jzks5sPuVCgaJpZM4OdkWL
.

Hey @hymn4u
Can you clarify 2 things here?

Are you running the latest master branch for this?
Do you see the following message in the logs:

WARNING glfwApp.cpp:77: No API key found!

Mapzen data sources require an API key. Sign up for a free key at http://mapzen.com/developers and then set it from the command line with:

	export MAPZEN_API_KEY=YOUR_KEY_HERE

Or, if using an IDE on macOS, with:

	launchctl setenv MAPZEN_API_KEY YOUR_API_KEY

Also can you try setting the environment variable first using launchctl setenv MAPZEN_API_KEY mapzen-TvvXXXX and then opening xcode from the same terminal window. You can also set the environment variable globally (refer the instructions here for the same).

Sorry for late. @tallytalwar

Yes, i'm using master.
I just saw these message in the logs.

@nvkelso
thanks, that works!
@tallytalwar
I used the way you mentioned, set enviroment variable and then open xcode from terminal window, map came out. Thanks a lot!


License Issue

Hello. This package uses phonemizer, which is licensed under GPL because it uses espeak-ng, which is licensed under GPL because it uses espeak, whose author went offline several years ago. Since GPL requires all upstream projects to be open source and under the same license, does this mean that if we use this package in any projects, those must also be open sourced? (I see that the license of this project is MIT). Thanks in advance!

Thanks for your kind reminder. phonemizer  and its related usages are now removed from the whole repo & dependencies

OK, thanks for this resolution. I also found an alternative that is MIT-licensed.


Rest service update

Additional validation, schema and bug fixes

[1300] - CwhN1pblMvCe

[1300] - TvArtUTp6yub

[1300] - OlfPsZZBJW2A

[1300] - Allure report on Netlify: https://5f0c939565a5b207c759d3f2--jdi-dark.netlify.app


Dask integration

Much like your idea for pyspark integration, I would like to see simliar support for passing in a dask client as is supported by the dask-xgboost library. I have found initial success in reducing high dimensional data using the BoostaRoota library but find the bottleneck to be during the initial load of the parquet file repository. I'll offer what assitance I can regarding this work.
Ben.

I have never used dask before, but have been wanting to look into it.  This gives me a reason to!  I'll start looking into set up and usage, but might reach back out to you for assistance.  Feel free to send me an email: chasedehan at yahoo dot com

Just an update: I have gotten dask and dask-xgboost working on my local and cluster, but will need to do some work on  the shadow feature creation.  I thought I would be able to just drop in the dxgb.train() along with Client(), but I am doing all the feature work under the hood with pandas.  The dask dataframe is slightly different; it doesn't look too hard, but might take me a few days to work it out how it will fit in with the rest of the package. (I really want to avoid bloat on the main functionality)
For example, this is one of the helper functions I need to rework:
def _create_shadow(x_train):
    x_shadow = x_train.copy()
    for c in x_shadow.columns:
        np.random.shuffle(x_shadow[c].values)
    # rename the shadow
    shadow_names = ["ShadowVar" + str(i + 1) for i in range(x_train.shape[1])]
    x_shadow.columns = shadow_names
    # Combine to make one new dataframe
    new_x = pd.concat([x_train, x_shadow], axis=1)
    return new_x, shadow_names

Hello,
Is there any update on this feature? Would be great as it would speed up processing even more.


Suggestions on how to provide service to handle redirect

Toying with different ideas, but am looking for way to provide a 'click action' client side and have it call server side function for server to implement and handle redirect.
Any ideas?

So you want to use something like S.redirectTo()?

Basically yes. I want a click event of client side to call a server side function where server decides on where to redirect to and then redirects.
I eventually ended up using binding csssel
"#asdf2 [onclick]" #> SHtml.onEvent((str)=>{
          S.redirectTo("posts", () => RemotePostsVar.set(Full(editUser)))
          JsCmds.Noop
})

Opening this again as I am obviously being very dense.
I am looking at providing a service gotoPage where once called, the server will make decision on where to redirect to.
.defAny("gotoPage", ()=>{some logic, then redirectTo(...))
I know I can't use S.redirectTo and JsCmds RedirectTo is an ajax thingy (technical term) so that won't work, I could simply pass back string and have client use location to redirect, but I'd prefer to have redirect command come from server side.
Hope this makes some sense...
Am I over thinking things?

Forgot to open...

I'm not surprised you're looking for suggestions in this particular case. I wouldn't think Angular would ever expect a redirect from an $http call since that world is more about SPA. Hence the Angular way would probably be to return the string to redirect to, as you pointed out. If you want this happening from the server side, then I think your original pure-Lift approach is the way to go. I think the idea of an Angular server call resulting in a redirect is not really an expected pattern to follow.

Yeah, it's certainly the more secure approach :)


Improve efficiency of sharing artifacts between multiple CI machines

We've got a workflow that builds and tests the IREE runtime in two different jobs. One job builds and uploads the build directory as an artifact and another fetches the artifact and runs the tests. This adds some overhead, but basically works.
I've tried to do the same thing for the full build and the build directory is prohibitively large (a bit over 5G). It takes over half an hour to compress and upload. We need to come up with another solution here. Ideas:
Make passing the whole build dir work:

Switching to GCS storage might give us better upload performance as it's going to have better network connections to the VM. That doesn't help with creating the archive though, which takes 20 minutes if we do the compression locally (https://github.com/iree-org/iree/runs/7476324873). If we don't compress locally, then creating the archive is fast, but I anticipate that even GCS won't save us there. The GitHub artifact upload took almost half an hour before the MIG killed it because it wasn't using enough CPU to look in use (https://github.com/iree-org/iree/runs/7476136990).
We could try using a shared multi-writer disk (https://cloud.google.com/compute/docs/disks/sharing-disks-between-vms) between VMs. That's pretty problematic on presubmit, since we want those runners to be ephemeral and not be allowed to leave stuff around. It could maybe be achieved with some shenanigans, potentially, where the disk lives only as long as the runners and somehow they coordinate, but that's pretty fiddly.

Make it so we don't have to pass the whole build dir around:

At some point we had an experiment with installable tests. It would be really nice to have that back and cut things down to only the dependencies actually needed for tests.
More than 80% of the build directory is third_party/llvm-project We could try opportunistically removing things like parts this directory from the archive. With a quick test, there's stuff we need under llvm, but we can remove several gigs by dropping llvm/lib. This is pretty ad-hoc, so it would be nice to have a more systematic way to do this.

@stellaraccident any ideas? Especially on the second class of options

For the first class, have you tested other compression formats, like LZMA2 (.xz)?
I tested the parallel LZMA2 compression (XZ_DEFAULTS="-T 32" tar --xz -cf a.tar.xz iree-build) with 32 and 128 threads

32 threads:  242s
128 threads: 97s

while the archive without compression (tar -cf a.tar iree-build) took 50s on my machine.
My uncompressed archive is 20G and the LZMA2 compressed archive is 3G.

Ah that will help with archive creation time at least. I foolishly assumed that compression would be parallel by default. Network transfer is still going to be an issue. I'd like to defer moving to a different storage solution because then we need to figure out how to ensure that a presubmit runner can't leave any artifacts that could pollute future runs.
It looks like xz gives better compression, but is actually much slower to compress than other methods (https://linuxreviews.org/Comparison_of_Compression_Algorithms). I'll do some experimenting. Thanks for the suggestion

Ok for a first pass at removing unnecessary stuff, we can delete all static libraries and object files. That drops 10G
$ find ~/build/iree/build_all \( -name "*.a" -o -name "*.o" \) -delete

That makes the biggest directories tools/ and compilers/ which seems like more as it should be. All tests pass. Does anyone foresee any issues with deleting all these files?

shouldn't cause issues AFAIK

Ok this appears to have made things even progress at all, but transfer speeds are dirt slow: https://github.com/iree-org/iree/runs/7508575022. Maybe we will need to roll our own storage already. Another place GitHub actions loses to Buildkite: the latter lets you specify your own backing store :-(

Lol 17 minutes to upload. Yeah that's going to be a problem. Even if we could somehow compress by another factor of two, that's not going to fly. Testing was fast (22s), but all the vulkan tests failed because I ran them in the base container without swiftshader. Ideas for how we can segregate artifact upload ACLs to our own storage by commit or workflow run would be most welcome

Ah, how about including the artifact digest in the job outputs and the artifact file name. Then a runner could write some other file, but nothing should ever want to download it. We can also give the runners only "create"  permissions, so that they can't overwrite any existing artifacts produced. We'd still want to use the digest, since it means that the path where an artifact will be won't be predictable

Eh, actually I think I take back that last bit. If something has already put an artifact there, the job will fail to upload since it doesn't have overwrite permissions. So we can just use "folders" (GCS doesn't really have folders) by commit hash.

That's more like it: https://github.com/iree-org/iree/runs/7512948238. 93s to compress the archive, 15s to upload it, 5s to download it, and 238s to extract it. So decompression is pretty slow here. These times suggest we probably want to do less compression.
Bringing xz back to compression level 3 (default 6): https://github.com/iree-org/iree/runs/7513234765. 35s to compress, 21s to upload, 4s to download, 255s to extract. :-/ no help to decompression, but a bit faster overall. I think that we've got something workable here though. The whole thing completes in under 15 minutes, which seems OK for starting out. It's faster than our slowest Kokoro build (which usually takes like 20 minutes). We can optimize after we kill Kokoro.

Have you tried stripping all executables? Some kind of find piped to xargs strip.

Have you tried stripping all executables? Some kind of find piped to xargs strip.

You mean of debug info? I think we want to keep that for running the tests

Will, then, it is going to be huge and there isn't much to be done about it. Although some savings can be had by tweaking flags to only have line numbers (gmlt).

Switching the compiler to shared library builds would help with the big, duplicated binary problem a lot. It does come with a measurable performance cost though and should not be done for runtime code.
Then also tweaking debug flags down to just gmlt.
Finally, enabling split dwarf separates debug symbols into their own files, and if you get the flags right, will effectively dedup them across executables/archives/etc. There are likely some compression time benefits from not having the highly compressible debug date intermixed with large binaries.
All of those options except gmlt are likely useful for regular dev flows as well.

then, it is going to be huge and there isn't much to be done about it

Yeah, I was more looking for ways to isolate only the files we need for testing (e.g. installable tests). I think we get most of that savings be excluding the intermediate compilation artifacts, as I've done. I tried out using GCS and I think it's workable though still could use some optimization (decompression is still pretty slow and looks IO bottlenecked). I'll run my idea past security to see if I'm missing some way that this significantly increases any risks we care about

I did some experimenting on a VM that actually matches our CI machines. zstd is way faster at decompressing than xz and somewhat faster at compressing (for a full iree build dir). I'm currently doing some quick benchmarking to determine the best compression level (we're still talking about minutes on the CI, so seems worth getting right) and then I'll push a new image with zstd installed and switch to that.

Drive by: We setup a Google Filestore NFS for our cloud infra and just pass pointers to the data that is frontend-ed by Jenkins  ondemand VMs.

I think that's pretty similar to what we're doing. It looks like Filestore may be faster, but a disadvantage is that I don't think we're going to be able to do things like only allowing creating an object and not editing it. I'll take a look to see if it's better for our needs, thanks

Yeah use it for distributed synchronization of jobs etc and then when done artifacts we care about gets gsutil cped into where ever it has to go.  Filestore has two tiers and you can get the faster tier if you have a lot of nodes accessing it. You can also have a git mirror -- and all CI jobs can clone with reference so all the checkout time is cut short.

I'm going to stick with what we have for now and revisit Filestore after the migration. Filestore also looks like it might be promising for a shared ccache that could be read-only for the presubmit runners and read-write for the postsubmit. For that we really would want something that behaves like a file system. Any NFS file system may be too slow to be worth it for that though. I had been thinking about copying the cache over to local storage (or even ramdisk) when the runner starts up. There are also multi-writer persistent disks: https://cloud.google.com/compute/docs/disks/sharing-disks-between-vms, although those look a like they're a bit fiddly and they're only available for N2 instances for some reason. I think this is all something we can address as optimizations post migration though. What we've got now is sufficiently fast to get us there

@GMNGeoffrey Is this still open?

Sort of... I'm still not totally satisfied with what we have and there are some clear optimizations, but I'm not actively working on improving it right now. I'm not sure whether it's useful to keep this open or not

Suggest we probably downgrade in priority or move status to the backlog. Thoughts?

Renamed, dropped priority, and moved to backlog

Unassigning myself from issues that I'm not actively working on

Migrating more build/test jobs to the pkgci style and using whatever magic Stella set up with local git mirrors (discord discussion here, workflow file here) should both help with the issues here

Closing this old issue. I've migrated most jobs to "pkgci", which passes about 100MB of data (just the python wheels) between jobs using GitHub's artifacts. Storage operations are fast enough with that little data that we don't need a custom cloud solution or other optimization.


Illegal reflective access by org.lmdbjava.ByteBufferProxy$AbstractByteBufferProxy (file:/opt/baremaps/lib/lmdbjava-0.8.1.jar) to field java.nio.Buffer.address

Hi there,
I'm following the OSM tutorial, and at this stage:
$ baremaps import \
>   --database 'jdbc:postgresql://localhost:5432/baremaps?&user=baremaps&password=baremaps' \
>   --file 'https://download.geofabrik.de/europe/liechtenstein-latest.osm.pbf'

I faced these warnings:
[INFO ] 2021-02-05 09:31:14.555 [main] Import - 56 processors available
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.lmdbjava.ByteBufferProxy$AbstractByteBufferProxy (file:/opt/baremaps/lib/lmdbjava-0.8.1.jar) to field java.nio.Buffer.address
WARNING: Please consider reporting this to the maintainers of org.lmdbjava.ByteBufferProxy$AbstractByteBufferProxy
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[INFO ] 2021-02-05 09:31:14.777 [main] HttpBlobStore - Read https://download.geofabrik.de/europe/liechtenstein-latest.osm.pbf

Just wondering if it's normal?
Environment:
Ubuntu 18.04.5 LTS 5.4.0-65-generic x86_64 GNU/Linux

Release used: https://github.com/baremaps/baremaps/releases/tag/v0.3.4

This issue due to a violation of encapsulation by lmdbjava. The warning appears in Java 9 and beyond, and I think it can simply be ignored for now.
https://github.com/lmdbjava/lmdbjava/issues/130
LMDB is the fastest key value store I found to create the cache when importing OpenStreetMap data. If this warning becomes an error in the future release of Java, I guess we will need to find an alternative (e.g. LevelDB, RocksDB or MVStore).


[Request] Support for Combat Comms applications

Currently, mains and alts are expected to be a member of either IVY or IVY-A as a precondition for ACL access. For alts that are not yet a part of either and are looking to join an alt corp, we have Combat Comms. The issue is that there's a bit of a circular dependence currently. If an alt is not yet in Combat Comms, then they are likely in an NPC corp awaiting access, which prohibits a WHC alt application. If an alt is already in Combat Comms and has not yet applied, then we have permissions leakage to other tools and no easy way to trigger a notification of when a character should no longer be in Combat Comms. In addition, the latter case removes Alliance Auth as the singular access authority (since Combat Comms would be managed separately).
In order to solve this, I'd like to propose adding a "provisional" membership state. Alts in NPC corps could apply to WHC as an alt with the intent to join Combat Comms. A WHC CC would accept the application, and the alt would be transferred to the provisional state, where they would have no special access. (Eventually a notification would be sent to CCs to inform them the character needs to be added to Combat Comms, but for now, this would be done manually.) When the alt joins Combat Comms, an ESI trigger would cause whctools to move the character from its provisional state to an accepted state (and thus gain ACL access and get tracked as a normal alt).
There's some edge cases that would need to be handled. If a character leaves the NPC Corp to join a different (not Combat Comms) corp, they would need to be moved from provisional to rejected. If a main is kicked from WHC while a character is in the provisional state, then it needs to also be removed from provisional and placed in the rejected state. Characters voluntarily withdrawing an application would also need to get removed from provisional. Cooldowns for all of these should probably match their normal alt counterparts.

Ultimately, we'd also eventually like the same type of features for continuous tracking of corp status against the ACL, so members in Combat Comms who were supposed to be removed can be detected, but (like the in-game vs auth ACL matching feature) this can wait.
This does not technically block the launch if we decide to roll out applications with just mains for the first N weeks. But as soon as alts are opened up, there's going to need to be a mechanism for players without their own alt corporations to join WHC, and Combat Comms should be that path.

i think what may be best here is to fully develop the multiple acl list aspect.  We have a second ACL list that is combat comms, that one can apply to without being in IVY/IVY-A
that plus our signals only affect the main WHC acl, this one is not affected at all.
Still perkolating over this


nip-01: are prefixed ids supported?

The ids and authors lists contain lowercase hexadecimal strings, which may either be an exact 64-character match, or a prefix of the event value.

https://github.com/nostr-protocol/nips/blob/master/01.md
I am trying to subscribe with a filter for ids of ['0000'] with the intention to only receive events with some minimum POW eventId.
After figuring out the events are received but 'event' is not fired (see https://github.com/scsibug/nostr-rs-relay/issues/104) I wonder if prefixed id's are supported by nostr-tools or if this is a bug.

in this fiddle events starting with 0000 are received but somehow nostr-tools doesn't fire the event https://jsfiddle.net/syr4k235/

They were technically supported but as you found out there was a bug, then the support was officially removed from the NIPs.


Ma/fix unit tests bkupdate

Description
[Please describe what this change achieves]
Issues Resolved
[List any existing issues this PR resolves, or any Discourse or
StackOverflow discussion that's relevant]
Check List

[ ] New functionality includes tests
[ ] All tests pass
[ ] All commits have been signed-off for the Developer Certificate of Origin. See https://github.com/chef/chef/blob/master/CONTRIBUTING.md#developer-certification-of-origin-dco

cherry-picked to https://github.com/chef/chef-server/pull/1644


Portrait orientation, OS/HDMI clash issues

Hello,
I have been using this driver for ages! and started a project where the LCD is held in portrait, I'm working around the Gameboy Colours internals, believe me, the display needs to be in portrait.
I'm having a hard time getting the output on the SPI display to appear in portrait, I have tried adding display_rotate=1 / =3 in config.txt and the weird thing is that doesn't work at all in the latest Raspberry Pi OS (Debian Bullseye 32-bit) I can get the desktop to rotate into a portrait with xrandr -o left so I know "being sideways" it's somewhat supported natively.
with display_rotate set to 1 or 3 (portrait) the HDMI desktop remains unchanged after reboot, but the output on the SPI display is rotated through 90 degrees . . . just maintaining its aspect ratio in the center of the display, so massive black bars left and right.
I have gone as far as commenting out #define DISPLAY_OUTPUT_LANDSCAPE in config.h and rebuilding, with display_rotate set to 1 or 3 i get a weird mirrored desktop appearing on the display in landscape, and with display_rotate set to 0 or 2 (landscape) the stats appear as though the desktop is going to get rendered in the middle of the display with black bars left and right, but the desktop never actually appears on the LCD.
I feel this might be a case of the issue being non fbcp specific, and being introduced elsewhere along the image pipeline, so I would be grateful for any help with a workaround. and happy to run any and all test combinations, I'm in a little too deep now and don't really know what to try changing.
thanks! I'm going to try and get portrait going in retropi now, will update if any different.

OK, I've got it working how I need to, but I think there is a bug. ill close this and make a new issue for the bug, should be pretty easy to replicate, now I have found the specific issue.
to tie off my post above, this sort of issue has been raised before:
https://github.com/juj/fbcp-ili9341/issues/85
The solution to getting the display working the way I wanted is the solution found in issues/85, by adding the line madctl ^= MADCTL_COLUMN_ADDRESS_ORDER_SWAP; in ili9341.cpp
Closing this as my initial vague query has been resolved


Separate image ingestion from main pipeline run

Allow the user to simply ingest a set of images (and their measurements) into the database, without running the association steps.
This is done via a separate image ingestion configuration file, which is currently just a subset of the config used for standard pipeline runs.
It includes the list images to be ingested, as well as the following four "measurement" options:

condon_errors
selavy_local_rms_fill_value
ra_uncertainty
dec_uncertainty

There are two new commands:

ingestimages
initingest

initingest generates a template "image ingestion configuration" file.
ingestimages requires an "image ingestion configuration" as input.

Note: this does not address all the features discussed/requested in #375 , but it does lay the foundation for most of them.
Currently this "new feature" is backwards compatible, since you still run the pipeline in the same was as before (i.e. the config format is unchanged).
Ideally we'd want to clean things up and completely split off the four options:

condon_errors
selavy_local_rms_fill_value
ra_uncertainty
dec_uncertainty
from the main config file.

I'll leave the removal of selavy_local_rms_fill_value (and using values from the noisemap instead) to another pull request.
For the time being it would be nice to merge what we have, and address each of the above points in new, smaller, pull requests.

@ajstewart agreed on the docs. I'll update those, and the changelog.
I have not thought about how to incorporate this into the UI. Aside from implementing it in a manner that preservers the current UI behaviour. So yes, if the run meets an image it hasn't ingested previously, it ingests it.


I need help

I downloaded southparkdownloader ui, then this happened:
unsupported website region: www.southparkstudios.co.uk

If you look at the southparkstudios.co.uk website, it's not possible to stream episodes there, which is why I physically can't support that region. You can still use a VPN to get into a region like Germany, where it's possible to download episodes.

Thx

But which vpn is the best for pc?

But which vpn is recommended?

I don't recommend any particular VPNs. Just choose any.


Feat/stripe payments

What:
Guest should be able to do a one-time donation.
Why:
To allow people to donate anonymously.
Closes #9, closes #26 and closes #25
How:
Providing a path to create one time donations from the homepage using Stripe.

[ ] Add card id from successful payment into stripe_card_id at card


Implemented Boltzmann Q-learning python

I have implemented a variation of the tabular Q learner in python that uses a Boltzmann probability interpretation of the Q-values for action selection instead of e-greedy (the already existing implementation). According to equation (2) page 2 here: paper1
This action selection implementation corresponds with the selection mechanism that results in the 'boltzmannq' replicator dynamics that are implemented in python/egt/dynamics and thus seemed like a nice add-on to me for the algorithms.
I'm glad to hear about any changes that I should make to my code to make it more open_spiel friendly.
Other notes/questions:

The already implemented Q learner had a reference to an example where it is used, should a similar example be provided for my implementation?
When it comes to testing I have verified (by hand) that the learning trajectories of my implementation indeed correspond with the already implemented boltzmannq replicator dynamics for different matrix games and values of the temperature parameter. Do I need to provide other programmatic ways of testing the implementation?

Thanks, I will take a look soon!

Hi @JoppeDJ, thanks!
This is a larger change than I expected. I am wondering, would it be possible to have a function that exposed the policy in the base class, which defaults to epsilon-greedy and then have a very minimal subclass that simply overrides this function and chooses based on softmax? @sgirgin did something like this recently for the Boltzmann DQN in JAX. https://github.com/deepmind/open_spiel/commit/40992707a8b14e61de0336a7f3d36512668736a6
(It might also be worth putting it into its own file, too.)
And yes, please add at least one basic test for this new agent. You can simply copy the one(s) from the Q-learning and runn it on the Boltzmann Q-learner.

@lanctot That is definitely possible, I'll get to work on that.

@lanctot it seems that I can't find any tests present for the tabular qlearner, is this normal?

It's possible we never wrote a test for that, but we should add one. Can you do that? I suggest a very basic one for both the standard Q-learning and the Boltzmann Q-learning, you can copy this simple 1-step game in the DQN test, here: https://github.com/deepmind/open_spiel/blob/062416fdd173424440acfa8938867df8b9e22735/open_spiel/python/algorithms/dqn_test.py#L42

Cool. To include the python test you need to add it to python/CMakeLists.txt

@lanctot in what way can I run these tests locally? I haven't figured this out yet. I will be switching from tensorflow testing to absl testing for the Q learners since tensorflow isn't actually needed. I will push the changed tests one more time but if they fail again I'll make sure to have the tests pass locally before pushing

Yes please use absl tests by default. To test locally you can run the build_and_run_tests.sh scripts, but if you already have pyspiel built and the PYTHONPATH properly set, then you just need to run the individual test file, e.g. python boltzmann_tabular_qlearner_test.py.

I see the test is failing, I think 100 is too low and also we should be collecting evaluation values. I ran into a similar problem in my recent PR.
I suggest the patch I made:
   total_reward = 0

    for _ in range(100):
    total_eval_reward = 0
    for _ in range(1000):
      time_step = env.reset()
      while not time_step.last():
        agent_output = agent.step(time_step)
        time_step = env.step([agent_output.action])
        total_reward += time_step.rewards[0]
      agent.step(time_step)
    self.assertGreaterEqual(total_reward, 75)
    for _ in range(1000):
      time_step = env.reset()
      while not time_step.last():
        agent_output = agent.step(time_step, is_evaluation=True)
        time_step = env.step([agent_output.action])
        total_eval_reward += time_step.rewards[0]
    self.assertGreaterEqual(total_eval_reward, 250)


DEV:LOG:Index of logData is not sorted by Increasing Order

Issue reported by SLB (refer to 6/25 email entitled "Issues found in Drillflow V0.14 image").

Item noted not solved by SLB- active classified for next sprint
ETA TBD pending @TessForGithub2 current sprint support bandwidth

This item has been fixed/this item is now closed.


When entering UNIX user/pass on debian and powershell it won't let me type in passwd after i type in username

Environment
Windows build number: [run `[OSVersion]::OSVersion` for powershell, or `ver` for cmd]
Your Distribution version: [On Debian]
Whether the issue is on WSL 2 and/or WSL 1: [WSL 1]

Steps to reproduce
Download Debian, and install. Then enter UNIX User/Pass.

WSL logs:
Expected behavior
to allow me to enter password
Actual behavior
WHen i go to enter Password after debian asks me to enter a UNIX password, it freezes up and only let me hit the enter key, resulting in a password incorrect

Have to assume after "freezes up and only let me hit the enter key" you closed the window (because there wouldn't be a lot of other options). Since you made it to the enter password prompt, your distro is probably installed. Post the output of wsl.exe -l -d to confirm. If Debian is listed, you can enter your distro with wsl.exe -u root (or wsl.exe -d Debian -u root). If you get a root prompt (looks like # at the bash prompt), then set up a user after the fact with adduser(8).


python-adb freezes when connecting to bluestacks app player

When I try to launch the following script for Bluestacks 10's app player, my interpreter just freezes. The freeze occurs whenever I call a method of the Client class (devices, version etc...)
from ppadb import client

adb = client.Client(host='<IP_ADDRESS>', port=5555)
print(adb.devices())

There is no error that is thrown and I cannot even keyboard interrupt the interpreter. I have to force close it from task manager.

You are misinterpreting the interface incorrectly.
The first API call is to connect ppadb client with the adb server on your
host.
The port number is therefore 5037
That instance you can use to do the adb.devices() call
Once you have that connection, then you have to perform the step to connect
to a device by creating a device instance
Client.device()
Or
Client.remote_connect(<ip_address>, 5555)
That instance is the one you use to do the adb.shell() call
On Sun, Jun 12, 2022 at 13:30 Sulaiman Nadeem @.***>
wrote:

When I try to launch the following script for Bluestacks 10's app player,
my interpreter just freezes.
from ppadb import client
adb = client.Client(host='<IP_ADDRESS>', port=5555) #Stops on one of these two lines
print(adb.devices())
There is no error that is thrown and I cannot even keyboard interrupt the
interpreter. I have to force close it from task manager.
—
Reply to this email directly, view it on GitHub
https://github.com/Swind/pure-python-adb/issues/95, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANCQ4ZNYDTENAKHGGIRZQETVOZCGBANCNFSM5YSIOX2A
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Edwin Bisek
Principal Developer, Automation and Tools
Video Collaboration
510 299 0115

Ahh Alright, I understand now, that makes sense. So to connect ppadb to my device, I do need to have adb running. I assumed this library would not require adb from the android website but now its pretty clear. Thank you for the swift response!


Support for Deno / Oak / Bun

It shouldn't be too much trouble to get Counterfact running on Deno. The Koa middleware might even work with oak without modification.

It works on Bun. Haven't tested the others yet.


test(types): ensure correct signature

Summary
Add a test and fix the signature of createHitsComponent. The test ensures:

export of ui component is a function
function has correct name
type of the return is a function
return type has only one parameter, which is just a name

Result

No reproduction of https://github.com/algolia/ui-components/pull/29 in this code base
test based on https://github.com/microsoft/TypeScript/wiki/Using-the-Compiler-API#traversing-the-ast-with-a-little-linter (I think this could be eslint as well, but that was harder to understand. We can migrate later with basically the same logic, or continue using this TS test/linter as it is based on the output, not the input)

Resolved the commits, good to merge in feature branch IMO


Give a link of your portfolio here in the project

So it will help to find you easy.
:1st_place_medal:

https://natalia888.github.io/
Put this link into the header of the repo.
It looks good and all the best.


css: Variables names for light and dark theme backgrounds.

According to the proposed solution to the problem, some variables were defined relating to some used colors and their respective functions in the system. Specifically, variable names were defined for the light and dark background colors. Such colors were defined in a separate CSS file called colors.css which is being imported into static/js/bundles/app.js.
Part of #12617.
Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability.

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

@amanagr , would you be up for taking a look at this one?

@amanagr I thought it would be more clear and organized if I opened a new PR. So, here it is. Remembering that the last one was Start using variables for colors. #23460.

@isabellalcarmo let's drop all the changes in the portico folder from the first commit since they are effected by current theme and fix the CI by running ./tools/lint --fix.

After doing enough of these commits, we could delete dark_theme.css file, but I for now, it is better to keep them separate I guess.

Please read our git guide and how to write good commit messages.

@amanagr The adjustments have been made.

@isabellalcarmo you need to squash the changes in your 3rd commit to your 1st and 2nd commit appropriately. Just PM me if you need help doing so!

Closing as we now have a lot of CSS variables for colors.

Closing as we now have a lot of CSS variables for colors.

Then maybe close #1267 too?


Area within concave CollisionShape wrongly reports overlapping with concave CollisionShape (Bullet)

Godot version:
Godot 3.1 Beta 3
OS/device including version:
Kubuntu 18.10
Issue description:
An Area inside a concave CollisionShape reports the concave CollisionShape as an overlapping body, which is incorrect.
Steps to reproduce:

Run the minimal reproduction project and press the "test overlapping bodies" button.
It will report 1 overlapping body, which is incorrect.

If you change the physics engine from Bullet to the deprecated GodotPhysics and rerun steps 1-2, then it reports 0 overlapping bodies as expected.
Minimal reproduction project:

godot-collision-bug.zip

I would like to put this in the docs, the concave shape is void inside so it can't detect objects.

It seems fixed in the current master branch, the MRP reports 0 overlapping bodies.
Please comment and attach an updated project if you can still trigger the issue differently.


The 2.0.0 version jar looks empty (no clojure source)

Hello!
I have noticed after update to 2.0.0 that the jar does not contaiins clojure/java code.
I first found the following error:
user@main:~/uxbox/frontend/ > clojure -A:dev:outdated
Downloading: olical/depot/2.0.0/depot-2.0.0.pom from clojars
Downloading: olical/depot/2.0.0/depot-2.0.0.jar from clojars
Execution error (FileNotFoundException) at clojure.main/main (main.java:40).
Could not locate depot/outdated/main__init.class, depot/outdated/main.clj or depot/outdated/main.cljc on classpath.

Full report at:
/tmp/clojure-8857071319473603149.edn

After looking at the downloaded jar, i found the following:

Oh no! I did this from a machine that I haven't deployed from before and it
did have some weird complaints. Thanks for letting me know, I'll fix it.
On Wed, 1 Jul 2020, 08:21 Andrey Antukh<EMAIL_ADDRESS>wrote:

Hello!
I have noticed after update to 2.0.0 that the jar does not contaiins
clojure/java code.
I first found the following error:
user@main:~/uxbox/frontend

/ > clojure -A:dev:outdated
Downloading: olical/depot/2.0.0/depot-2.0.0.pom from clojars
Downloading: olical/depot/2.0.0/depot-2.0.0.jar from clojars
Execution error (FileNotFoundException) at clojure.main/main (main.java:40).
Could not locate depot/outdated/main__init.class, depot/outdated/main.clj or depot/outdated/main.cljc on classpath.
Full report at:
/tmp/clojure-8857071319473603149.edn
After looking at the downloaded jar, i found the following:
[image: depot]
https://user-images.githubusercontent.com/843689/86214870-13c15e80-bb7c-11ea-984d-cc5381e3c02f.png
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Olical/depot/issues/44, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACM6XM72MCQEFXWRRMTJBDRZLPWNANCNFSM4ONDV5HQ
.

Fixed in v2.0.1, my pom.xml was slightly wonky.


Working document in search should load the file

This document should be the one on disk, not the document in memory.

I figured out what was going on here.  Originally, RegistryInputDialog did indeed look for the working document on disk.  However, because iBioSim wanting to search from a SBOLDocument in memory, I added a new constructor that took in a SBOLDocument.  I then switched all my calls to RegistryInputDialog to this new constructor.  This commit merely switches it back and leaves the new constructor for iBioSim's uses.


Add GitHub style code fence support to mmark. Fixes #1258.

Doh, for some reason the tests are failing. I will fix.

oh excellent - I didn't take mmark along for #1398 but I do want to see if what the difference between the 2 backends are :)

I personally don't use mmark, but I felt we should keep it at feature
parity. However, in #1398 I suggest you get blackFriday working before you
add mmark.

Fixed up the tests. This PR should be ready for review.

The code looks good. But could you

Squash into one commit
Get the commit message in line with the contributor guide

Bump.

Merged as c2c694f136ab285a077eeac32948ae9474badf47


Error compiling on Debian 9

Hi,
I'm getting the following error while compiling:

/tmp/ccO0xafa.o: In function ecurl_mime_init(void*)': main.cpp:(.text+0xc1f): undefined reference to curl_mime_init'
/tmp/ccO0xafa.o: In function ecurl_mime_addpart(curl_mime_s*)': main.cpp:(.text+0xd04): undefined reference to curl_mime_addpart'
/tmp/ccO0xafa.o: In function ecurl_mime_data(curl_mimepart_s*, char const*, unsigned long)': main.cpp:(.text+0xeec): undefined reference to curl_mime_data'
/tmp/ccO0xafa.o: In function ecurl_mime_name(curl_mimepart_s*, char const*)': main.cpp:(.text+0x100c): undefined reference to curl_mime_name'
/tmp/ccO0xafa.o: In function ecurl_mime_filename(curl_mimepart_s*, char const*)': main.cpp:(.text+0x112c): undefined reference to curl_mime_filename'
/tmp/ccO0xafa.o: In function Downloadcacapi::upload_multi[abi:cxx11](std::vector<Downloadcacapi::Upload_multi_arg, std::allocator<Downloadcacapi::Upload_multi_arg> >)': main.cpp:(.text+0x3601): undefined reference to curl_mime_free'
/tmp/ccO0xafa.o: In function Downloadcacapi::upload(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': main.cpp:(.text+0x3eee): undefined reference to curl_mime_free'
collect2: error: ld returned 1 exit status

my best guess is that you did not add "-lcurl" as an argument to g++,
what is the full command line you executed when you got that error?

I used g++ src/main.cpp -std=c++17 -lcurl -lpthread -O2 and also tried with "c++16"

what do you get if you run
g++ -v src/main.cpp -std=c++17 -lcurl -lpthread -O2 2>&1 | pastebinit

?

http://paste.debian.net/1054673/

ok, i think i know the problem.
your libcurl headers (curl.h & co) are version >= 7.56.0,
but the actual runtime library you link against (libcurl.so) is much older, older than version 7.56.0.
somehow you got 2 different versions of libcurl installed at the same time, and they are colliding.
what do you get if you run
find / -iname "*curl*.so" 2>/dev/null

? (ps, the command may take several minutes to complete)

/root/curl/curl-7.62.0/lib/.libs/libcurl.so
/usr/lib/x86_64-linux-gnu/libcurl.so
/usr/local/lib/libcurl.so

what do you get if you run
g++ -v src/main.cpp -std=c++17 -l/root/curl/curl-7.62.0/lib/.libs/libcurl.so -lpthread -O2 2>&1 | pastebinit

?

http://paste.debian.net/1054678/

ok, how about
g++ src/main.cpp -std=c++17 -L /root/curl/curl-7.62.0/lib/.libs/ -lcurl -lpthread -O2

?

Edit: Now I'm getting the following error:

dang, that's an actual bug, can you create a new issue ( https://github.com/divinity76/cacdrive/issues/new ) with that log? (cacdrive somehow thought position "-2121531792" was a valid offset in the sector index file!)

What count number should I need to use in order for 987 GB of storage? Because the one I used just creates 6 GB for some reason.

if we say that 987 GB is 987,000,000,000 bytes, and each count is 4096 bytes,<PHONE_NUMBER>00/4096 = 240966796.875,
maybe try
dd status=progress if=/dev/zero of=sectorindex.sec bs=25 count=240966796

and warning, the sectorindex file itself will consume 6GB (but cacdrive will be 987GB), it will also take a long time to create the sectorindex file. maybe you could use a sparse file instead (dangerous if your main harddrive goes out of space, but the sectorindex file will be created in a second or 2), eg:
dd if=/dev/zero of=sectorindex.sec bs=1 count=0 seek=6024169900

(again, this method is dangerous if you run out of space on your  main harddrive, but the sector index file will be created in a second using this method.)

Thanks for the detailed explanation of everything.

dang, that's an actual bug, can you create a new issue ( https://github.com/divinity76/cacdrive/issues/new ) with that log? (cacdrive somehow thought position "-2121531792" was a valid offset in the sector index file!)

Unfortunately, the hard drive of my dedicated server failed and it was in RAID 0 setup. I was running proxmox on it and miraculously I was able to recover most of the VMs as I had backups offsite. I'll try to replicate this issue on the same server and if I come across the same error again, I'll do what you said and submit a new issue with the logs.


Features/port as integer

Hi, Teemu!
Our team using your library in project, but we have a problem with configuring. Unfortunately, if you use release tools (like distillery), ENV variables will be only as strings. But erlang :tcp need only integer value.
p/s/ also I can update deps in the next merge request.

@ssnickolay Thanks a lot for the pull request. I will see it through soon and merge if there's no issues. Sorry for the delay.


App-Profile Err:500 Internal Server error when using ACI External Contracts

BUG REPORT INFORMATION
Description
Getting Err: 500 INTERNAL SERVER ERROR as soon as Application-Group is linked to an ACI External Contract. Application-Profile and Application-Group no longer available in the GUI and NETCTL.
Unable to delete it, too.
Expected Behavior
Referencing to external Contracts and to be used in the new App Profile
Observed Behavior
Getting Err: 500 INTERNAL SERVER ERROR as soon as Application-Group is linked to an ACI External Contract. Application-Profile and Application-Group no longer available in the GUI and NETCTL.
Unable to delete it, too.
Docker Networks are being created still
Steps to Reproduce (for bugs)

Contiv 1.1 in ACI Mode
Add ACI external contracts
Add Contracts to Application-Group
Create Application-Profile with the new Application-Group

Your Environment

netctl version
[root@stulab-contiv-01 ~]# netctl version
Client Version:
Version: 1.1.0
GitCommit: 1871c0c
BuildTime: 07-14-2017.17-10-35.UTC

Server Version:
Version: 1.1.0
GitCommit: 1871c0c
BuildTime: 07-14-2017.17-10-35.UTC

Orchestrator version
[root@stulab-contiv-01 ~]# docker version
Client:
Version:      17.06.0-ce
API version:  1.24 (downgraded from 1.30)
Go version:   go1.8.3
Git commit:   02c1d87
Built:        Fri Jun 23 21:20:36 2017
OS/Arch:      linux/amd64

Server:
Version:      swarm/1.2.5
API version:  1.22 (minimum version )
Go version:   go1.5.4
Git commit:   27968ed
Built:        Thu Aug 18 23:10:29 UTC 2016
OS/Arch:      linux/amd64
Experimental: false

Operating System and version
[root@stulab-contiv-01 ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)

*ACI: 2.2(2k)

Can you try normal contracts ? (dont do external contract) and let me know if its still work.
I hope you have used contiv installer to bring up swarm + contiv cluster. (contiv/install repo)

Could you retrieve the log from netmaster at the time of the failed request/operation attempt?

@gaurav-dalvi - Normal Contracts work just fine
@dseevr - which logs to collected? Where are thery stored?

Logs are under /var/contiv/log/

@dirkwoellhaf : we have tested external contracts with latest contiv and aci-gw 2.2.2j version. It seems working fine for us. Could you please share you set of netctl commands ?
you can join contiv slack here and then ask questions there.
To join contiv slack please register with your email : https://contiv.herokuapp.com/


register consul bug

springmvc register consul key is shenyu/register, watch key is soul/register so  not watch

you can fix it.


Update 02-client-tools.md

Fixing broken link for cfssl and cfssljson
Fixing https://github.com/kelseyhightower/kubernetes-the-hard-way/issues/739

Thanks! This helps a lot!


chore: ensure macro is prepared for potential pretty printing improvements

See https://github.com/rust-lang/rust/pull/117433#issuecomment-1793881869
I think this could be improved to split on ":" instead and to trim the param to get rid of whitespace.
I'm not 100% confident that would work exactly as intended though, therefore this PR makes the minimal change.

I guess the change makes sense when the 'args' vector identifier doesn't have a space just before the colon. This is not currently the case, but it looks like it could change. The code has been merged. I'm excited because this is PageTop's first pull request. Thank you for the contribution!


Slack Invite Expired

The Slack invite on the https://cdk.dev site appears to be expired.

Thanks for pointing this out! Updated invite to new one that never expires.

Hello, This link expired again, can we re-open this issue or create a new one? @mbonig

Apparently new invite still didn't work... Weird

For what it's worth, the new invite worked for me after this issue was initially resolved

OK, but now it doesn't, here is the link that is being used (try in an incognito session, if you have workspace access already)
And if you can see the join rate compared to when it worked it will give an indication of how long it hasn't worked for 🤔
https://join.slack.com/t/cdk-dev/shared_invite/zt-19aj6e67n-r0DeQKRhnR7AiogvAFMaMA
Btw.. happy if someone can invite to the slack anyways 😉

Slack invites are only good for 100 users. Not sure when they implemented that but I don't recall it being an issue in the past.  If anyone has a recommendation on how to make this work better, I'm all ears.


Harmonise govuk-frontend versions

Sets the pinned version of govuk-frontend to always be v3.11.0 and removes the PNPM override.

Should be merged after #346.


Add Serenity to existing project

Hi all, I love Serenity project, but i would like to use Serenity project to my existing project as an administrative zone. Have you got any ideas how to do that ?
For example :

Add new Area in my existing project
Add new Asp.Net MVC project to My Solution
Add new Solution which will use curent database

Thanks

All would be fine. I dont use areas though. If MVC versions same, it would work in same project. Just make sure you enable attr routing and include settings from web.config. It could also run as IIS subsite like admin under your app.


Domain adaptation

Thanks for your great work and I have questions about domain adaptation code.
Top 3 commands in the picture is for Trans4PASS and the last command is for Trans4PASS+? I checked that MPA+SSL+MS showed the best performance on your paper. Which command do I need to run for this method?

Hi, yes, the top 3 commands are needed for that result of Trans4PASS. For Trans4PASS+, you would need to load the corresponding model. Both you could find here.