Introduce a common config to enable SHA-256 across the product

Description
We have introduced SHA-256 support in APIM with https://github.com/wso2/api-manager/issues/2848. But to complete enable S256 hashing everywhere, we need to set multiple configurations in the toml. We need to introduce a common config and infer rest of the configurations for the sake of ease.
Steps to Reproduce
Enable S256 product-wide
Affected Component
APIM
Version
4.4.0
Environment Details (with versions)
No response
Relevant Log Output
No response
Related Issues
No response
Suggested Labels
No response

Added a property to enable sha256 globally by https://github.com/wso2/carbon-apimgt/pull/12672/files#diff-088555df3dd2624705c4194a56fb6b0cba1f52ba32ec535c8ecfd8deb9065e24R35. But all the configurations has not been refered for this yet untill we can enable SHA-256 by default for all the other scenarios


0.109 I/O alert

will be fixed?

Also getting this error.

I am also getting this error.

Also getting the same error
Log Details (WARNING)
Logger: homeassistant.util.async_
Source: util/async_.py:105
First occurred: 6:37:06 PM (954 occurrences)
Last logged: 7:56:20 PM
Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for xboxone doing I/O at custom_components/xboxone/media_player.py, line 94: return requests.get(full_url, *args, **kwargs)

This error has been here for months i guess this integration is dead.....


How to pass email id as user in clickhouse installation CR

apiVersion: clickhouse.altinity.com/v1
kind: ClickHouseInstallation
metadata:
  name: "settings-03"
spec:
  configuration:
    users:
<EMAIL_ADDRESS>"::/0"
<EMAIL_ADDRESS>qwerty
<EMAIL_ADDRESS>default
    clusters:
      - name: cls1
        layout:
          shardsCount: 1
          replicasCount: 1

@Slach we are still getting the error
0. DB::ConfigProcessor::processConfig(bool*, zkutil::ZooKeeperNodeCache*, std::shared_ptr<Poco::Event> const&) @ 0x1174e9e0 in /usr/bin/clickhouse
1. DB::ConfigProcessor::loadConfig(bool) @ 0x1174ec60 in /usr/bin/clickhouse
2. DB::ConfigReloader::reloadIfNewer(bool, bool, bool, bool) @ 0x11753334 in /usr/bin/clickhouse
3. DB::ConfigReloader::ConfigReloader(String const&, String const&, String const&, zkutil::ZooKeeperNodeCache&&, std::shared_ptr<Poco::Event> const&, std::function<void (Poco::AutoPtr<Poco::Util::AbstractConfiguration>, bool)>&&, bool) @ 0x11752698 in /usr/bin/clickhouse
4. DB::UsersConfigAccessStorage::load(String const&, String const&, String const&, std::function<std::shared_ptr<zkutil::ZooKeeper> ()> const&) @ 0xf554244 in /usr/bin/clickhouse
5. DB::AccessControl::addUsersConfigStorage(String const&, String const&, String const&, String const&, std::function<std::shared_ptr<zkutil::ZooKeeper> ()> const&, bool) @ 0xf42c9d4 in /usr/bin/clickhouse
6. DB::AccessControl::addStoragesFromUserDirectoriesConfig(Poco::Util::AbstractConfiguration const&, String const&, String const&, String const&, String const&, std::function<std::shared_ptr<zkutil::ZooKeeper> ()> const&) @ 0xf4307d8 in /usr/bin/clickhouse
7. DB::AccessControl::addStoragesFromMainConfig(Poco::Util::AbstractConfiguration const&, String const&, std::function<std::shared_ptr<zkutil::ZooKeeper> ()> const&) @ 0xf42b93c in /usr/bin/clickhouse
8. DB::AccessControl::setUpFromMainConfig(Poco::Util::AbstractConfiguration const&, String const&, std::function<std::shared_ptr<zkutil::ZooKeeper> ()> const&) @ 0xf42a850 in /usr/bin/clickhouse
9. DB::Server::main(std::vector<String, std::allocator<String>> const&) @ 0xbb5f5b0 in /usr/bin/clickhouse
10. Poco::Util::Application::run() @ 0x11ee4e3c in /usr/bin/clickhouse
11. DB::Server::run() @ 0xbb548c0 in /usr/bin/clickhouse
12. Poco::Util::ServerApplication::run(int, char**) @ 0x11efa8e4 in /usr/bin/clickhouse
13. mainEntryClickHouseServer(int, char**) @ 0xbb51be0 in /usr/bin/clickhouse
14. main @ 0x7d10a60 in /usr/bin/clickhouse
15. ? @ 0x273fc in /usr/lib/aarch64-linux-gnu/libc.so.6
16. __libc_start_main @ 0x274cc in /usr/lib/aarch64-linux-gnu/libc.so.6
(version <IP_ADDRESS> (official build))
2023.04.26 12:42:38.742153 [ 1 ] {} <Error> Application: Exception: Failed to merge config with '/etc/clickhouse-server/users.d/chop-generated-users.xml': SAXParseException: Invalid token in '/etc/clickhouse-server/users.d/chop-generated-users.xml', line 3 column 14

could you share:
kubectl get cm -n <your_namespace> chi-settings-03-common-usersd -o yaml

without sensitive credentials?

in clickhouse user names stored as XML tags, which can't contains @ inside tag name
so
<EMAIL_ADDRESS>is invalid

could you try remove invalid users spec, and try add it as YAML in files section explicitly?
spec:
  configuration:
    files:
      conf.d/email_user.yaml: |
        clickhouse:
          users:
<EMAIL_ADDRESS>                networks:
                  ip: "::/0"
                password: qwerty
                profile: default

@Slach thanks for your response. I will check this out and revert.
Thanks a lot @Slach

@Slach

on adding the above config, it gets rightly populated in this configmap clickhouse-deploy-confd-chi-0-0

email_user.yaml: |
    yandex:
      users:
<EMAIL_ADDRESS>            networks:
              ip: "<IP_ADDRESS>/0"
            password: qwerty
            profile: default
            quota: default
            access_management: 1

But on query, i still get the error

Code: 516. DB::Exception<EMAIL_ADDRESS>Authentication failed: password is incorrect, or there is no user with such name. (AUTHENTICATION_FAILED) (version <IP_ADDRESS> (official build))

Hi @Slach
There were no matching results
root@chi-settings-03-cls1-0-0-0:/# grep yaml -C 10 /var/log/clickhouse-server/clickhouse-server.log
root@chi-settings-03-cls1-0-0-0:/#

I tried with the following config
spec:
  configuration:
    files:
      conf.d/email_user.yaml: |
        users:
<EMAIL_ADDRESS>              password: ''
              networks:
                  ip: '::/0'
              profile: default
              quota: default

Removed clickhouse
Now the pod is in CrashLoopBackOff. With following error
2023.05.05 07:20:51.194081 [ 1 ] {} <Error> Application: DB::Exception: Either 'password' or 'password_sha256_hex' or 'password_double_sha1_hex' or 'no_password' or 'ldap' or 'kerberos' or 'ssl_certificates' must be specified for user<EMAIL_ADDRESS>while parsing user<EMAIL_ADDRESS>in users configuration file: while loading configuration file '/etc/clickhouse-server/users.xml'

But instead of<EMAIL_ADDRESS>if I use just admin, it works without any issue.
spec:
  configuration:
    files:
      conf.d/email_user.yaml: |
        users:
          'admin':
              password: ''
              networks:
                  ip: '::/0'
              profile: default
              quota: default

do you have file inside your CH after apply changes from
https://github.com/Altinity/clickhouse-operator/issues/1147#issuecomment-1535839215 ?
cat /etc/clickhouse-server/conf.d/email_user.yaml
also share
cat /var/lib/clickhouse/preprocessed_configs/users.*
without sensitive credentials?
did you try non-empty password for<EMAIL_ADDRESS>

do you have file inside your CH after apply changes from
#1147 (comment) ?

Yes

cat /etc/clickhouse-server/conf.d/email_user.yaml

users:
  'admin':
      password: ''
      networks:
          ip: '::/0'
      profile: default
      quota: default

also share
cat /var/lib/clickhouse/preprocessed_configs/users.*
without sensitive credentials?

<!-- This file was generated automatically.
     Do not edit it: it is likely to be discarded and generated again before it's read next time.
     Files used to generate this file:
       /etc/clickhouse-server/users.xml
       /etc/clickhouse-server/conf.d/chop-generated-hostname-ports.xml
       /etc/clickhouse-server/conf.d/chop-generated-macros.xml
       /etc/clickhouse-server/conf.d/email_user.yaml
       /etc/clickhouse-server/users.d/01-clickhouse-user.xml
       /etc/clickhouse-server/users.d/02-clickhouse-default-profile.xml
       /etc/clickhouse-server/users.d/03-database-ordinary.xml
       /etc/clickhouse-server/users.d/chop-generated-users.xml      -->

<clickhouse>
    <!-- See also the files in users.d directory where the settings can be overridden. -->

    <!-- Profiles of settings. -->
    <profiles>
        <!-- Default settings. -->
        <default>

      <log_queries>1</log_queries>
      <connect_timeout_with_failover_ms>1000</connect_timeout_with_failover_ms>
      <distributed_aggregation_memory_efficient>1</distributed_aggregation_memory_efficient>
      <parallel_view_processing>1</parallel_view_processing>

            <default_database_engine>Ordinary</default_database_engine>
        </default>

        <!-- Profile that allows only read queries. -->
        <readonly>
            <readonly>1</readonly>
        </readonly>

        <clickhouse_operator>
            <log_queries>0</log_queries>
            <skip_unavailable_shards>1</skip_unavailable_shards>
            <http_connection_timeout>10</http_connection_timeout>
        </clickhouse_operator>

    </profiles>

    <!-- Users and ACL. -->
    <users>
        <!-- If user name was not specified, 'default' user is used. -->
        <default>
            <!-- See also the files in users.d directory where the password can be overridden.

                 Password could be specified in plaintext or in SHA256 (in hex format).

                 If you want to specify password in plaintext (not recommended), place it in 'password' element.
                 Example: <password>qwerty</password>.
                 Password could be empty.

                 If you want to specify SHA256, place it in 'password_sha256_hex' element.
                 Example: <password_sha256_hex>65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5</password_sha256_hex>
                 Restrictions of SHA256: impossibility to connect to ClickHouse using MySQL JS client (as of July 2019).

                 If you want to specify double SHA1, place it in 'password_double_sha1_hex' element.
                 Example: <password_double_sha1_hex>e395796d6546b1b65db9d665cd43f0e858dd4303</password_double_sha1_hex>

                 If you want to specify a previously defined LDAP server (see 'ldap_servers' in the main config) for authentication,
                  place its name in 'server' element inside 'ldap' element.
                 Example: <ldap><server>my_ldap_server</server></ldap>

                 If you want to authenticate the user via Kerberos (assuming Kerberos is enabled, see 'kerberos' in the main config),
                  place 'kerberos' element instead of 'password' (and similar) elements.
                 The name part of the canonical principal name of the initiator must match the user name for authentication to succeed.
                 You can also place 'realm' element inside 'kerberos' element to further restrict authentication to only those requests
                  whose initiator's realm matches it.
                 Example: <kerberos />
                 Example: <kerberos><realm>EXAMPLE.COM</realm></kerberos>

                 How to generate decent password:
                 Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
                 In first line will be password and in second - corresponding SHA256.

                 How to generate double SHA1:
                 Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
                 In first line will be password and in second - corresponding double SHA1.
            -->
            <password/>

            <!-- List of networks with open access.

                 To open access from everywhere, specify:
                    <ip>::/0</ip>

                 To open access only from localhost, specify:
                    <ip>::1</ip>
                    <ip><IP_ADDRESS></ip>

                 Each element of list has one of the following forms:
                 <ip> IP-address or network mask. Examples: <IP_ADDRESS> or <IP_ADDRESS>/8 or <IP_ADDRESS>/<IP_ADDRESS>
                     2a02:6b8::3 or 2a02:6b8::3/64 or 2a02:6b8::3/ffff:ffff:ffff:ffff::.
                 <host> Hostname. Example: server01.clickhouse.com.
                     To check access, DNS query is performed, and all received addresses compared to peer address.
                 <host_regexp> Regular expression for host names. Example, ^server\d\d-\d\d-\d\.clickhouse\.com$
                     To check access, DNS PTR query is performed for peer address and then regexp is applied.
                     Then, for result of PTR query, another DNS query is performed and all received addresses compared to peer address.
                     Strongly recommended that regexp is ends with $
                 All results of DNS requests are cached till server restart.
            -->
            <networks>
                <ip>::1</ip>

                <host_regexp>(chi-settings-03-[^.]+\d+-\d+|clickhouse\-settings-03)\.default\.svc\.cluster\.local$</host_regexp>

                <ip><IP_ADDRESS></ip>
                <ip><IP_ADDRESS></ip>
            </networks>

            <!-- Settings profile for user. -->
            <profile>default</profile>

            <!-- Quota for user. -->
            <quota>default</quota>

            <!-- User can create other users and grant rights to them. -->
            <!-- <access_management>1</access_management> -->

        </default>
    <admin>
            <password/>
            <networks>
                <ip>::/0</ip>
            </networks>
            <profile>default</profile>
            <quota>default</quota>
        </admin>
        <clickhouse_operator>
            <networks>
                <ip><IP_ADDRESS></ip>

            </networks>
            <profile>clickhouse_operator</profile>
            <quota>default</quota>

            <password_sha256_hex>716b36073a90c6fe1d445ac1af85f4777c5b7a155cea359961826a030513e448</password_sha256_hex>
        </clickhouse_operator>

    </users>

    <!-- Quotas. -->
    <quotas>
        <!-- Name of quota. -->
        <default>
            <!-- Limits for time interval. You could specify many intervals with different limits. -->
            <interval>
                <!-- Length of interval. -->
                <duration>3600</duration>

                <!-- No limits. Just calculate resource usage for time interval. -->
                <queries>0</queries>
                <errors>0</errors>
                <result_rows>0</result_rows>
                <read_rows>0</read_rows>
                <execution_time>0</execution_time>
            </interval>
        </default>
    </quotas>

    <interserver_http_host>chi-settings-03-cls1-0-0</interserver_http_host>

    <macros>
        <installation>settings-03</installation>
        <all-sharded-shard>0</all-sharded-shard>
        <cluster>cls1</cluster>
        <shard>0</shard>
        <replica>chi-settings-03-cls1-0-0</replica>
    </macros>

</clickhouse>

did you try non-empty password for<EMAIL_ADDRESS>
Yes. Still the same error.

For<EMAIL_ADDRESS>
cat /etc/clickhouse-server/conf.d/email_user.yaml

users:
<EMAIL_ADDRESS>      password: 'qwerty'
      networks:
          ip: '::/0'
      profile: default
      quota: default

also share
cat /var/lib/clickhouse/preprocessed_configs/users.*
without sensitive credentials?

<!-- This file was generated automatically.
     Do not edit it: it is likely to be discarded and generated again before it's read next time.
     Files used to generate this file:
       /etc/clickhouse-server/users.xml
       /etc/clickhouse-server/conf.d/chop-generated-hostname-ports.xml
       /etc/clickhouse-server/conf.d/chop-generated-macros.xml
       /etc/clickhouse-server/conf.d/email_user.yaml
       /etc/clickhouse-server/users.d/01-clickhouse-user.xml
       /etc/clickhouse-server/users.d/02-clickhouse-default-profile.xml
       /etc/clickhouse-server/users.d/03-database-ordinary.xml
       /etc/clickhouse-server/users.d/chop-generated-users.xml      -->

<clickhouse>
    <!-- See also the files in users.d directory where the settings can be overridden. -->

    <!-- Profiles of settings. -->
    <profiles>
        <!-- Default settings. -->
        <default>

      <log_queries>1</log_queries>
      <connect_timeout_with_failover_ms>1000</connect_timeout_with_failover_ms>
      <distributed_aggregation_memory_efficient>1</distributed_aggregation_memory_efficient>
      <parallel_view_processing>1</parallel_view_processing>

            <default_database_engine>Ordinary</default_database_engine>
        </default>

        <!-- Profile that allows only read queries. -->
        <readonly>
            <readonly>1</readonly>
        </readonly>

        <clickhouse_operator>
            <log_queries>0</log_queries>
            <skip_unavailable_shards>1</skip_unavailable_shards>
            <http_connection_timeout>10</http_connection_timeout>
        </clickhouse_operator>

    </profiles>

    <!-- Users and ACL. -->
    <users>
        <!-- If user name was not specified, 'default' user is used. -->
        <default>
            <!-- See also the files in users.d directory where the password can be overridden.

                 Password could be specified in plaintext or in SHA256 (in hex format).

                 If you want to specify password in plaintext (not recommended), place it in 'password' element.
                 Example: <password>qwerty</password>.
                 Password could be empty.

                 If you want to specify SHA256, place it in 'password_sha256_hex' element.
                 Example: <password_sha256_hex>65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5</password_sha256_hex>
                 Restrictions of SHA256: impossibility to connect to ClickHouse using MySQL JS client (as of July 2019).

                 If you want to specify double SHA1, place it in 'password_double_sha1_hex' element.
                 Example: <password_double_sha1_hex>e395796d6546b1b65db9d665cd43f0e858dd4303</password_double_sha1_hex>

                 If you want to specify a previously defined LDAP server (see 'ldap_servers' in the main config) for authentication,
                  place its name in 'server' element inside 'ldap' element.
                 Example: <ldap><server>my_ldap_server</server></ldap>

                 If you want to authenticate the user via Kerberos (assuming Kerberos is enabled, see 'kerberos' in the main config),
                  place 'kerberos' element instead of 'password' (and similar) elements.
                 The name part of the canonical principal name of the initiator must match the user name for authentication to succeed.
                 You can also place 'realm' element inside 'kerberos' element to further restrict authentication to only those requests
                  whose initiator's realm matches it.
                 Example: <kerberos />
                 Example: <kerberos><realm>EXAMPLE.COM</realm></kerberos>

                 How to generate decent password:
                 Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
                 In first line will be password and in second - corresponding SHA256.

                 How to generate double SHA1:
                 Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
                 In first line will be password and in second - corresponding double SHA1.
            -->
            <password/>

            <!-- List of networks with open access.

                 To open access from everywhere, specify:
                    <ip>::/0</ip>

                 To open access only from localhost, specify:
                    <ip>::1</ip>
                    <ip><IP_ADDRESS></ip>

                 Each element of list has one of the following forms:
                 <ip> IP-address or network mask. Examples: <IP_ADDRESS> or <IP_ADDRESS>/8 or <IP_ADDRESS>/<IP_ADDRESS>
                     2a02:6b8::3 or 2a02:6b8::3/64 or 2a02:6b8::3/ffff:ffff:ffff:ffff::.
                 <host> Hostname. Example: server01.clickhouse.com.
                     To check access, DNS query is performed, and all received addresses compared to peer address.
                 <host_regexp> Regular expression for host names. Example, ^server\d\d-\d\d-\d\.clickhouse\.com$
                     To check access, DNS PTR query is performed for peer address and then regexp is applied.
                     Then, for result of PTR query, another DNS query is performed and all received addresses compared to peer address.
                     Strongly recommended that regexp is ends with $
                 All results of DNS requests are cached till server restart.
            -->
            <networks>
                <ip>::1</ip>

                <host_regexp>(chi-settings-03-[^.]+\d+-\d+|clickhouse\-settings-03)\.default\.svc\.cluster\.local$</host_regexp>

                <ip><IP_ADDRESS></ip>
                <ip><IP_ADDRESS></ip>
            </networks>

            <!-- Settings profile for user. -->
            <profile>default</profile>

            <!-- Quota for user. -->
            <quota>default</quota>

            <!-- User can create other users and grant rights to them. -->
            <!-- <access_management>1</access_management> -->

        </default>
<EMAIL_ADDRESS>            <password>qwerty</password>
            <networks>
                <ip>::/0</ip>
            </networks>
            <profile>default</profile>
            <quota>default</quota>
<EMAIL_ADDRESS>        <clickhouse_operator>
            <networks>
                <ip><IP_ADDRESS></ip>

            </networks>
            <profile>clickhouse_operator</profile>
            <quota>default</quota>

            <password_sha256_hex>716b36073a90c6fe1d445ac1af85f4777c5b7a155cea359961826a030513e448</password_sha256_hex>
        </clickhouse_operator>

    </users>

    <!-- Quotas. -->
    <quotas>
        <!-- Name of quota. -->
        <default>
            <!-- Limits for time interval. You could specify many intervals with different limits. -->
            <interval>
                <!-- Length of interval. -->
                <duration>3600</duration>

                <!-- No limits. Just calculate resource usage for time interval. -->
                <queries>0</queries>
                <errors>0</errors>
                <result_rows>0</result_rows>
                <read_rows>0</read_rows>
                <execution_time>0</execution_time>
            </interval>
        </default>
    </quotas>

    <interserver_http_host>chi-settings-03-cls1-0-0</interserver_http_host>

    <macros>
        <installation>settings-03</installation>
        <all-sharded-shard>0</all-sharded-shard>
        <cluster>cls1</cluster>
        <shard>0</shard>
        <replica>chi-settings-03-cls1-0-0</replica>
    </macros>

</clickhouse>

<EMAIL_ADDRESS>will invalid XML tag
and shall get CrashLoopBack for clickhouse-server pods
i tried
<EMAIL_ADDRESS>but failed to auth
subscribe
https://github.com/ClickHouse/ClickHouse/issues/50302
and watch answer from ClickHouse team

i tried
apiVersion: clickhouse.altinity.com/v1
kind: ClickHouseInstallation
metadata:
  name: email-username
spec:
  configuration:
    files:
      users.d/admin.yaml: |-
        users:
          "admin@platform.local":
            password: ""

but authorization still not works ;(

According to
https://github.com/ClickHouse/ClickHouse/issues/50302#issuecomment-1568417536
looks like email as username allowed only for CREATE USER statement, not in XML files
so, use
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: "clickhouse-initdb-scripts"
data:
  # look https://clickhouse.com/docs/en/sql-reference/statements/create/user for details
  email_username.sql: |
    CREATE USER IF NOT EXISTS<EMAIL_ADDRESS>
---
apiVersion: "clickhouse.altinity.com/v1"
kind: "ClickHouseInstallation"
metadata:
  name: "email-user-example"
spec:
  templates:
    volumeClaimTemplates:
      - name: data-volume
        spec:
          accessModes:
            - ReadWriteOnce
          resources:
            requests:
              storage: 10Gi
      - name: log-volume
        spec:
          accessModes:
            - ReadWriteOnce
          resources:
            requests:
              storage: 1Gi

    podTemplates:
      - name: pod-template-with-initdb
        spec:
          volumes:
            - name: initdb-volume
              configMap:
                name: clickhouse-initdb-scripts
                defaultMode: 0555

          containers:
            - name: clickhouse
              image: clickhouse/clickhouse-server:latest
              volumeMounts:
                - name: initdb-volume
                  mountPath: /docker-entrypoint-initdb.d
                  readOnly: true
                - name: data-volume
                  mountPath: /var/lib/clickhouse
                - name: log-volume
                  mountPath: /var/log/clickhouse-server
  defaults:
    templates:
      podTemplate: pod-template-with-initdb


fix some typos

This repo is so great. 😄
Signed-off-by: Aaron.L.Xu<EMAIL_ADDRESS>

Fixed already.


upgrade guava due to CVE

BUG REPORT
Current pom.xml has guava 19.0. This jar has 2 security vulnerabilities - https://mvnrepository.com/artifact/com.google.guava/guava/19.0
Can we upgrade to v31.0.1-jre?

Upgrading Guava is OK, but it seems that there is no reference to Guava in RocketMQ.

@caigy rocketmq-filter seems has a guava dependency and appears to use guava code (imports like com.google.common.cache.Cache).
https://github.com/apache/rocketmq/blob/develop/filter/pom.xml#L41
https://github.com/apache/rocketmq/blob/develop/filter/src/main/java/org/apache/rocketmq/filter/parser/SelectorParser.java#L21


Pin dependencies

This PR contains the following updates:

Package
Type
Update
Change

@actions/core
dependencies
pin
^1.7.0 -> 1.8.0

@changesets/cli
devDependencies
pin
^2.22.0 -> 2.22.0

📌 Important: Renovate will wait until you have merged this Pin PR before creating any upgrade PRs for the affected packages. Add the preset :preserveSemverRanges to your config if you instead don't wish to pin dependencies.

Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled due to failing status checks.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Renovate Bot.

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: pnpm-lock.yaml

added 1 package, and audited 2 packages in 954ms

found 0 vulnerabilities
Scope: all 5 workspace projects
Progress: resolved 1, reused 0, downloaded 0, added 0
Progress: resolved 36, reused 0, downloaded 35, added 0
Progress: resolved 58, reused 0, downloaded 39, added 0
Progress: resolved 140, reused 0, downloaded 120, added 0
Progress: resolved 282, reused 0, downloaded 256, added 0
Progress: resolved 399, reused 0, downloaded 367, added 0
Progress: resolved 554, reused 0, downloaded 520, added 0
.                                        |  WARN  deprecated<EMAIL_ADDRESS>packages/add-changeset                   |  WARN  deprecated<EMAIL_ADDRESS>Progress: resolved 673, reused 0, downloaded 637, added 0
packages/add-changeset                   |  WARN  deprecated<EMAIL_ADDRESS>packages/add-changeset                   |  WARN  deprecated<EMAIL_ADDRESS>packages/add-changeset                   |  WARN  deprecated<EMAIL_ADDRESS>packages/add-changeset                   |  WARN  deprecated<EMAIL_ADDRESS> ERR_PNPM_PEER_DEP_ISSUES  Unmet peer dependencies

packages/add-changeset
└─┬ jest-runner-eslint
  └── ✕ missing peer eslint@"^6 || ^7 || ^8"
Peer dependencies that should be installed:
  eslint@"^6 || ^7 || ^8"

packages/extract-package-details
└─┬ jest-runner-eslint
  └── ✕ missing peer eslint@"^6 || ^7 || ^8"
Peer dependencies that should be installed:
  eslint@"^6 || ^7 || ^8"

packages/find-and-replace-all
└─┬ jest-runner-eslint
  └── ✕ missing peer eslint@"^6 || ^7 || ^8"
Peer dependencies that should be installed:
  eslint@"^6 || ^7 || ^8"

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: pnpm-lock.yaml

added 1 package, and audited 2 packages in 918ms

found 0 vulnerabilities
Scope: all 5 workspace projects
Progress: resolved 1, reused 0, downloaded 0, added 0
Progress: resolved 36, reused 0, downloaded 33, added 0
Progress: resolved 65, reused 0, downloaded 41, added 0
Progress: resolved 131, reused 0, downloaded 109, added 0
Progress: resolved 262, reused 0, downloaded 236, added 0
packages/add-changeset                   |  WARN  deprecated<EMAIL_ADDRESS>Progress: resolved 393, reused 0, downloaded 362, added 0
.                                        |  WARN  deprecated<EMAIL_ADDRESS>Progress: resolved 537, reused 0, downloaded 502, added 0
packages/add-changeset                   |  WARN  deprecated<EMAIL_ADDRESS>packages/add-changeset                   |  WARN  deprecated<EMAIL_ADDRESS>packages/add-changeset                   |  WARN  deprecated<EMAIL_ADDRESS>packages/add-changeset                   |  WARN  deprecated<EMAIL_ADDRESS>Progress: resolved 699, reused 0, downloaded 671, added 0
 ERR_PNPM_PEER_DEP_ISSUES  Unmet peer dependencies

packages/add-changeset
└─┬ jest-runner-eslint
  └── ✕ missing peer eslint@"^6 || ^7 || ^8"
Peer dependencies that should be installed:
  eslint@"^6 || ^7 || ^8"

packages/extract-package-details
└─┬ jest-runner-eslint
  └── ✕ missing peer eslint@"^6 || ^7 || ^8"
Peer dependencies that should be installed:
  eslint@"^6 || ^7 || ^8"

packages/find-and-replace-all
└─┬ jest-runner-eslint
  └── ✕ missing peer eslint@"^6 || ^7 || ^8"
Peer dependencies that should be installed:
  eslint@"^6 || ^7 || ^8"


Password Protection

Hi, just want to say this is one of the best eye break apps available.  If possible, please add a password protection option to prevent workaholics like me from accessing settings and quitting the program.

Hi, thanks for your feedback and sorry for such long delay.

please add a password protection option to prevent workaholics like me from accessing settings and quitting the program

But you still have the password right? Also I don't want to block user from every way to interact with PC, sometimes it is emergency to be able to work with your system.

Password protection is also good for parents to make sure kids take breaks from the PC.


Remove unecessary container div

This PR removes the container div that was being created around any children of the TreatmentVariant or TreatmentFunction components

Current dependencies on/for this PR:

main

PR #17   👈

This stack of pull requests is managed by Graphite.


Set Layer visibility after map has loaded

How to
MapboxLayer was failing to load correctly with the visibility: false option, since the render function in the olLayer to load the mapbox canvas was not called on load.
Fix: The olLayer visibility is set only after the map is fully loaded (on postrender) in the Layer class to ensure the render function in MapboxLayer class is called on load
Tested in react-spatial preview app in the BaseLayerSwitcher component, and locally in trafimage-maps
Others

[x] It's not a hack or at least an unauthorized hack :).
[x] The images added are optimized.
[x] Everything in ticket description has been fixed.
[x] The author of the MR has made its own review before assigning the reviewer.
[x] The title means something for a human being.
[x] The title contains [WIP] if it's necessary.
[x] Labels applied. if it's a release? a hotfix?
[x] The new class' members & methods are well documented
[x] Tests added.

Problem of this solution is that the tiles are loaded in the bg we should oad the map only if the layer is visible


Remove environment from implementationDetails

Description
I was mistaken when creating the PR for xdm.  I thought that implementationDetails allowed extra fields, but after the PR was merged we still got errors from Platform that the xdm didn't match the schema.  I'm removing the environment key here until I can get a PR merged in XDM to add the field.
Related Issue
https://jira.corp.adobe.com/browse/CORE-31964
Motivation and Context
The environment field will have things like [mobile|web|server|iot]
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have signed the Adobe Open Source CLA or I'm an Adobe employee.
[x] I have submitted a documentation pull request or no changes are needed.
[x] I have made any necessary test changes and all tests pass.
[x] I have run the Sandbox successfully.

Hey @jonsnyder, I will merge this PR because I need it for a demo.


Coverage checker misses deinits with conditions in them

Description
If a class has a deinit with a conditional in it, the coverage checker will claim that the code inside the conditional has not been reached, even if it has.
Steps to reproduce

Make a Swift package via swift package init

Replace the project code with:

public class CoverageBugExample {
    let foo: Bool

    init(foo: Bool) {
        self.foo = foo
    }

    deinit {
        if self.foo {
            print("foo")
        } else {
            print("bar")
        }
    }
}

Replace the test code with:

import XCTest
@testable import CoverageBugExample

final class CoverageBugExampleTests: XCTestCase {
    func testBug() {
        do {
            _ = CoverageBugExample(foo: true)
        }

        do {
            _ = CoverageBugExample(foo: false)
        }
    }
}

Turn code coverage on, and run the tests.

Notice that the deinit method is marked as not covered, even though foo and bar both show up in the console log, proving that both cases were reached.

Expected behavior
If the code is reached, it should be marked as such.
Environment

Swift compiler version info:

$ swiftc -version
swift-driver version: 1.62.15 Apple Swift version 5.7.2 (swiftlang-<IP_ADDRESS>.5 clang-14<IP_ADDRESS>)
Target: x86_64-apple-macosx13.0

Xcode version info:

$ xcodebuild -version
Xcode 14.2
Build version 14C18

Deployment target: macOS 10.15, 11, 12, or 13. Version doesn't seem to matter.

This was fixed by #60509, you can verify with a 5.8 snapshot in Xcode 14.2 (unfortunately there's currently a known issue with coverage in Xcode 14.3 beta that will prevent verifying on that version)

FYI this should be resolved in Xcode 14.3 beta 2


update dependencies

Jesus Christ, now SML/NJ build is broken for some reason. :(

And it builds fine on my machine 😦

OK, this branch fails locally on a fresh clone. good.

The current test-sml.sh will still run the tests (against the last successful build) even if the building fails. Not sure how to fix this in a robust way. Is this what causes the problems here?  It's really hard to find the errors in the SML/NJ output!


Fix Rename and Delete sheet issues

Fixes Rename Sheet and Delete Sheet issues.
#332
#58
#315

Thanks for fixing - works perfectly!


JWT returned as first argument on OS X

During debugging we noticed the JWT is returned as the first argument (err) on OSX.
OpenSSL 0.9.8zh 14 Jan 2016
OSX El Capitan 10.11.5
Here's a part of our code:
  return new Promise((resolve, reject) => {
    jwt.sign({userid: userid}, new Buffer(config.get("jwt:ec_priv"), "base64"), {issuer: "flot.to.master", expiresIn: "30d", algorithm: "ES512"}, function(err, jwt) {
      if (err) {
        return reject(err);
      }
      return resolve(jwt);
    })
  });

CC @4ware

You might be using jsonwebtoken v5. This was changed in v6 as stated in the changelog:
https://github.com/auth0/node-jsonwebtoken/blob/master/CHANGELOG.md#600---2016-04-27

Ha, now I feel silly, the dependency wasn't installed locally on the machine. Thanks for spotting it so fast.

@DamonGant no problem.. and sorry for the confusion, this breaking change was tough given we know there are lot of articles/examples using the previous version.


rasterized overlays for ImageGraphic

I just realized an extremely fast way to draw and change lots of contours with minimal VRAM usage is to just overlay an ImageGraphic with another pygfx.Image object, and set the alpha of non-contour areas to 0. Would require a simple API to make contours indexable etc. for changing, and events.

doing in https://github.com/kushalkolar/mesmerize-viz/issues/26


Force heatmap y-axis to be category type

Signed-off-by: Tyler Ohlsen<EMAIL_ADDRESS>Description
Plotly tries to determine the axis type based on the input data given. For the y-axis in the heatmap chart, we don't want this functionality, since all given data is values for a given categorical field, so it should always be categorical. This PR forces the axis type to be category. See more details on axis type functionality here.
This fixes a significant bug, where currently all values read as numerical by plotly will cause overlapping axes and an unreadable heatmap chart:

After the fix, that same data now renders properly:

Issues Resolved
#166
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #167 (aeb9ccb) into main (5d9eb9a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #167   +/-   ##
=======================================
  Coverage   43.95%   43.95%
=======================================
  Files         156      156
  Lines        5173     5173
  Branches      953      953
=======================================
  Hits         2274     2274
  Misses       2681     2681
  Partials      218      218

Impacted Files
Coverage Δ

...s/AnomalyCharts/containers/AnomalyHeatmapChart.tsx
51.12% <0.00%> (ø)

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 5d9eb9a...aeb9ccb. Read the comment docs.

Just to make sure I understand correctly, has this bug not showed up in development before since values such as IP address are not plain numerical values like the example here? Also could this issue exist in other charts?

Just to make sure I understand correctly, has this bug not showed up in development before since values such as IP address are not plain numerical values like the example here? Also could this issue exist in other charts?

Right, IPs have no problems. This just removes any dependency on plotly to determine the type, and force set the type to be categorical for all data. It is likely similar issues could come up if the data was double values, or even dates / timestamps.
I can't exist in other charts since this is the only instance of using a plotly chart.

Some issues building and running the backend due to missing org.apache.commons.lang3.* packages, e.g.
error: package org.apache.commons.lang3.tuple does not exist

See test run here

Thanks for this fix! CI Failures due to backend issues still persistent across all PRs

Seems downgrade to 1.2.4 can fix the missing commons long dependency issue "package org.apache.commons.lang3.tuple". Not sure why, can you ask infra team to help?

Thanks for this fix! CI Failures due to backend issues still persistent across all PRs

Seems downgrade AD backend to 1.2.4 can fix the missing commons long dependency issue "package org.apache.commons.lang3.tuple". Not sure why, can you ask infra team to help?

I opened an issue on Opensearch regarding this (https://github.com/opensearch-project/OpenSearch/issues/1851). Will reach out to infra as well regarding this. Did you notice it fixing issues with other packages?

Thanks for this fix! CI Failures due to backend issues still persistent across all PRs

Seems downgrade AD backend to 1.2.4 can fix the missing commons long dependency issue "package org.apache.commons.lang3.tuple". Not sure why, can you ask infra team to help?

I opened an issue on Opensearch regarding this (opensearch-project/OpenSearch#1851). Will reach out to infra as well. Did you notice it fixing issues with other packages?

Thanks. I just changed AD backend to 1.2.4 and ./gradlew build can pass locally. Not sure if other plugins have same issue or not.


How to set options.distance_table now?

Hello, I see that the API has changed since the last time I built the project and now I have problems with:
new OSRM({path: 'some_path', distance_table: 'some_number'})

the distance_table parameter is not supported anymore. So, how or where do I set it?
Thanks in advance

You don't have to. It is not restricted by default.

Great!


[MINOR] Fix typos in TestHoodieClientOnMergeOnReadStorage

Change Logs
As above.
Impact
Only typo fixes.
Risk level (write none, low medium or high below)
None.
Documentation Update
N/A
Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed

Close.


simplescreenrecorder: 0.3.6 -> 0.3.8

Motivation for this change
Things done

[ ] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Merged in 633cd69453dcb5efa922558b8cbe7bfb8cefffbe, thank you!


Include install_requires and replace requirements.txt

So it stays a well-behaved python package

Stop using no-deps for main install
move requirements.txt into install_requires

making this a PR against main baya - easier to digest/test


Update default.xml for ROCm release 2.2

@icarus-sparry pulled this in as part of the roc-2.2 release.


ARROW-1235: [C++] Make operator<< for Array/Status and std::ostream inline

I'm unable to reproduce the linker failure, but I think this will fix it.

Made operator<< inline for Array, too, and added unit tests. Will see if this fixes the linker issue


fix: use globalEndpointType as default endpoint type

这个 PR 实现什么功能/修复什么问题:
修正：GetServiceURL也使用globalEndpointType
是否需要 backport 到之前的 release 分支:

release/3.0
release/3.1

/cc @zexi @wanyaoqi
/area util

Codecov Report

Merging #5252 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master   #5252      +/-   ##
=========================================
+ Coverage    6.73%   6.73%   +<.01%
=========================================
  Files         548     548
  Lines       95793   95793
=========================================
+ Hits         6449    6451       +2
+ Misses      88805   88804       -1
+ Partials      539     538       -1

Flag
Coverage Δ

#aFlag
6.73% <ø> (ø)
:arrow_up:

Impacted Files
Coverage Δ

pkg/appsrv/response.go
69.23% <0%> (+3.07%)
:arrow_up:

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 28249f6...abfac07. Read the comment docs.

/lgtm


Rename design notes to remove the L prefix

Either change them to just DN or use X as the new L (i.e. XDN00 instead of LDN00)

files renamed


Question about not supported Features

What happens if a Breakable Constraint or Airboat gets spawned?
Does it just crash everything?
Are they just frozen and you cant interact with them?
Do the normal Physics  just apply ( in my case the GMod VPhysics) ?
Thank you for your time reading this.
I'd be grateful for every insights on this topic.

i'm not a developer, but as of right now, airboats spawn and are physical, but completely ignore driver's WASD and don't go anywhere.
breakable constraints are working as expected


Also run OpenJDK compiler with debugging (-g) on

@jensdietrich wants this as we now talk about it in the paper. Maybe just a few versions.

It turns out that Maven turns all debug info on by default, so we actually want to turn it off in a variant build. See #85.


Escape special characters in building a JSON

The goal is to escape special characters.
In this direction, we call the "quoteString" method from typesafe config which is responsible for getting this result.

Actually, since this is a bugfix, it would be better to rebase this on the current master branch, bump the patch version in the PR, merge into master, then open a PR from master to develop.


Git commit verbose not working?

As far as I understand, the --verbose switch should show a diff below the commit message. However, when I try to activate the verbose switch in the commit window I see no change.
Am I doing something wrong or is it a bug?

Fixed in latest version.

Hey, I noticed that it is not working even though I just pulled the latest changes. And I noticed this happening as well for other commands like git push, it does not add the --force flag even though I select it in the window.

@mrswats should be working now.

Awesome, now seems to work.
Thanks!


non-marine weapons

everything here
https://cm-ss13.com/wiki/Marine_Equipment#Mercenary_or_Black_Ops_Equipment
specifically in mercenary or black ops equipment
guns/ranged weapons

ROYAL MARINES (brits)

[ ] F903A1 Rifle
[ ] F903A1/B 'Breacher' Rifle (used in one hand with a shield)
[ ] F903A1 Marksman Rifle
[ ] L56A2 Smartgun
[ ] VP-78 Pistol
[ ] FBS-B Ballistic shield

UPP (commies)

[ ] Type 71 Pulse Rifle
[ ] Type 71 Pulse Carbine
[ ] Type 71 Flamethrower Pulse Rifle
[ ] Type 71 Commando Pulse Carbine
[ ] Type 23 Riot Shotgun
[ ] GSh-7.62 rotary machine gun
[ ] QYJ-72 General Purpose Machine Gun
[ ] Type 88 Designated Marksman Rifle
[ ] CZ-81 Submachinegun
[ ] Korovin PK-9 Pistol
[ ] Nagant-Yamasaki Revolver

weyland-yutani PMC

[ ] M42C Anti-Tank Rifle
[ ] M56 Dirty Smartgun
[ ] M56T Terminator Smartgun
[ ] M41A/2 Battle Rifle
[ ] NSG 23 Assault Rifle
[ ] M39B/2 SMG
[ ] VP-78 Pistol
[ ] Mateba Autorevolver
[ ] FN FP9000 Submachine Gun

freelancers/CLF

[ ] M16 Assault Rifle
[ ] MP5 SMG
[ ] HG 37-12 Pump Shotgun
[ ] Vintage Desert Eagle
[ ] MAR-40 Battle Rifle
[ ] MAR-50 Light Machine Gun
[ ] MAR-30 Battle Carbine
[ ] R4T-Lever Action
[ ] MP27 SMG
[ ] Basira-Armstrong Rifle
[ ] FN FP9000 Submachine Gun
[ ] MAC-15 Machine Pistol
[ ] Custom Built Shotgun
[ ] Double Barrel Shotgun
[ ] Sawn-Off Shotgun
[ ] M1911 Service Pistol
[ ] KT-42 Automag
[ ] Smith & Wesson Revolver
[ ] CMB Spearhead AutoRevolver
[ ] Holdout Pistol (fits in combat boots)
[ ] M83A2 SADAR
[ ] Highpower Automag
[ ] Beretta 92FS Pistol

MARSOC

[ ] XM40-SD Pulse Rifle
[ ] XM38 Tactical Shotgun

Energy weapons

[ ] RXF-M5 eva pistol
[ ] LAZ-TOP

melee weapons

[ ]  fire axe
[ ] spear
[ ] stunprod
[ ] L5 Bayonet (brits)
[ ] Lunge Mine
[ ] Combat sword
[ ] Katana

I found all the weapons on https://cm-ss13.com/wiki/Marine_Equipment
you can make an individual issue for each one just dont forget to link them here

ill rephrase the issue then

i will not add little check boxes for all the weapons that arent in but i wil for weapons that are

It would be preferred if you did, so it's easier to track what actually needs to be done

If you mean you're only adding a checklist for weapons that are already in, it would be preferred if you only did a checklist for weapons that aren't in because that's what actually needs to be tracked

also the fire axe wouldnt be considered done bc it's missing balancing and cm13 sprites btw

If you mean you're only adding a checklist for weapons that are already in, it would be preferred if you only did a checklist for weapons that aren't in because that's what actually needs to be tracked

it'll take a while but ill try

also sorry for the late response, i didn't get any notifications and i was sick the last few days

okay i think that's everything, I overestimated how long that would take

Perfect thanks


wrong Blocky help link

in blocky the context-help of text trim blocks links to some ibm website not to https://github.com/google/blockly/wiki/Text#trimming-removing-spaces

kann ich bestätigen.
Geht nach:
https://www.ibm.com/support/knowledgecenter

Ok, then please re-create in javascript adapter. Blockly != VIS!


Update faq.md

@RavennMSFT : Thanks for your contribution! The author, @MarkusVi, has been notified to review your proposed change.

#sign-off

@GitHubber17 : Thanks for your contribution! The author, @MarkusVi, has been notified to review your proposed change.

Hi @RavennMSFT @MarkusVi
Raven - Would you follow the instructions in the Contributor Guide to Link your GitHub and Microsoft accounts?
Note that Microsoft authors should make updates to content through the private repository so the updates can be staged and validated by the validation rules. See this article for more information.
Thanks!


Don't call sys.exit in atexit callback

Python is already shutting down. Calling exit again is an error.

The behavior when exception raised in atexit callback seems to be controversial.
http://bugs.python.org/issue27035
It’s better not to call sys.exit.


[Bug report] PostgreSQL serial column not supported

Version
main branch
Describe what's wrong
If you try to view a PostgreSQL table with a serial type the Gravitino UI gives an error.
Error message and/or stacktrace
UI give this error:
"Unknown data type for literal: JdbcTypeBean{typeName='serial', columnSize='10', scale='0'}"
How to reproduce
Using the lastest playground, create a table and view in the UI.
create table hr.new_departments (
    department_id serial NOT NULL,
    department_name varchar(100) NULL
);

Additional context
No response

Note the REST interface returns this error, no it's not an issue with the Gravition UI.

I prefer to remove good first issue, because it need some integration on how to support serial to the current Gravitino Type system and autoIncrement property.


Bug: Missing ER Direct Speeds

Why was ER Direct 10G and 100G removed back in the commits on Feb 16, 2022?
Now without going into Azure, you are unaware of what locations support 10G or 100G.

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

ID: a0acd798-2e5a-2a7e-bb14-7424576a8e38
Version Independent ID: 841f2ce1-b101-0fbf-e33d-4e56a6244ed9
Content: Locations and connectivity providers for Azure ExpressRoute
Content Source: articles/expressroute/expressroute-locations-providers.md
Service: expressroute
GitHub Login: @duongau
Microsoft Alias: duau

@FallenHoot
Thank you for your feedback! We have assigned this issue to the author to review further and take the next course of action.

Hello @FallenHoot, the reason why the bandwidth numbers were removed was because of capacity constrains at many locations. Having the numbers listed gave the wrong impression that the bandwidth is available for use. To validate capacity, please query the location you would like to deploy in and see if the bandwidth is available. If you have any further question, please feel free to reach back out. For now, I'll be archiving this issue. Thank you! #please-close


Added Import capability to YAML Loader

Added capability to import other YAML Resources:
imports:
    - { resource: smarkio/local/app.yml }

# ...

Resource paths are relative to the file being imported.
Files as merged in order and the last to be merged is the file it self.
Tested with: app.yml and databases.yml

LGTM.
We need to decide on the tags we publish. I think we should also make it available (open-source).

I think we should create a tag with a build number increment this should be 1.4.21 and so on.
And yes we could open repo other like Adclick could benefit from it.


No Component Name in path.extrude

Issue
In gf 6.8.1, a ComponentAllAngle contaning an extruded path cannot be shown because the extruded path is stored in a cell without name.
To Reproduce
The following generates ValueError: Cannot insert a non-flattened VInstance into a VKCell when the name is 'None'. VKCell at r0 *1 0,0.
from math import radians
import numpy as np
import gdsfactory as gf
from gdsfactory.component import ComponentAllAngle

def f(t, a=2):
    x = np.exp(-a * t)
    return np.round(x, 3) + x % 2

radius = 10

cross_section2 = gf.CrossSection(
    sections=[
        gf.Section(
            width=0,
            width_function=f,
            layer=(1, 0),
            port_names=("o1", "o2"),
        )
    ],
    radius=radius,
)

n_points = abs(int(45 / 360 * radius / 0.01))
t = np.linspace(0, radians(45) / 2, n_points)
x1 = radius * np.cos(t)
y1 = radius * np.sin(t)

p1 = gf.Path(path=np.array([x1, y1]).T)
c = gf.ComponentAllAngle(name="test")
b1 = c.create_vinst(gf.path.extrude(p1, cross_section=cross_section2, all_angle=True))

c.show()

Suggested fix
The issue is in line 817 of path.py, where ComponentAllAngle and Component are initialized without a name:
c = ComponentAllAngle() if all_angle else Component()

Providing a name solves the issue:
c = ComponentAllAngle(name="extruded_path") if all_angle else Component(name="extruded_path")

Extra
Without the x % 2 in the width function I get ValueError: dwidth needs to be even to snap to grid. Got 0.135.
Does that even matter for a ComponentAllAngle, since the polygon just snaps to some non-aligned points?
If no path can be instantiated with odd widths, then it would make sense to apply the modulo division directly in the path function, so that just any function could be used.

If you wrap your code into a function and decorate it with gf.vcell you will not have this problem. Or you just give your component a name with c.name = "mynamehere"
It would be an option to name a VKCell like your suggestion. It will come to haunt you when you do this twice though.
Wrt path width. It kinda matters. Do you want e.g. a path from (0,0) to (10,0) that produces a polygon that will result in the following?
(0,5),(10,5),(0,-4.999),(10,-4.999)
I wouldn't. I also don't like functions just rounding my numbers without informing me, but that is rather a matter lf taste, though I would always advocatefor accuracy over hidden behavior.

Thanks! By all means, vcell is the way to go, since it avoids duplicate names.  I just issued a pull request with the change.
Concering the path, that was just an example. In general, I would like to be able to draw any kind of shape with any width profile. As for rounding, we are talking about +-1 nm,  so that does not feel too critical, but I also understand the concern. However, since the action must to be performed for the code to work at all, that could also be taken care of by path itself, instead of being manually added by the user for every width profile.

Wait, no that's not what I meant. Imo it makes no sense to have cells named "path_....". So what you should do is name the returned VKCell:
@vcell
def my_bend(...):
    return extrude_path(...)

This way you control the parameters (vs what feels like 200 parameters in path extrude) and you can easily choose the name of the resulting component.
+-1nm does matter in some cases though. I would advocate to have an optional flag for rounding then though.

I thought that was what you meant too, but it doesn't work (I tried, the code was originally a function that I simplified to explain the bug). The problem is not the cell in my bend, it's the cell returned by path.extrude.

not sure what you were doing exactly but this definitely works:
import gdsfactory as gf
import numpy as np

def f(t: float, a: float = 2) -> float:
    x = np.exp(-a * t)
    return np.round(x, 3) + x % 2

@gf.vcell
def my_cell() -> gf.Component:
    radius = 10

    cross_section2 = gf.CrossSection(
        sections=[
            gf.Section(
                width=0,
                width_function=f,
                layer=(1, 0),
                port_names=("o1", "o2"),
            )
        ],
        radius=radius,
    )

    n_points = abs(int(45 / 360 * radius / 0.01))
    t = np.linspace(0, np.deg2rad(45) / 2, n_points)
    x1 = radius * np.cos(t)
    y1 = radius * np.sin(t)

    p1 = gf.Path(path=np.array([x1, y1]).T)
    return gf.path.extrude(p1, cross_section=cross_section2)

my_cell().show()

Not sure what you were doing exactly, but this definitely works:
import gdsfactory as gf
import numpy as np

def f(t: float, a: float = 2) -> float:
    x = np.exp(-a * t)
    return np.round(x, 3) + x % 2

@gf.vcell
def my_cell() -> gf.Component:
    radius = 10

    cross_section2 = gf.CrossSection(
        sections=[
            gf.Section(
                width=0,
                width_function=f,
                layer=(1, 0),
                port_names=("o1", "o2"),
            )
        ],
        radius=radius,
    )

    n_points = abs(int(45 / 360 * radius / 0.01))
    t = np.linspace(0, np.deg2rad(45) / 2, n_points)
    x1 = radius * np.cos(t)
    y1 = radius * np.sin(t)

    p1 = gf.Path(path=np.array([x1, y1]).T)
    return gf.path.extrude(p1, cross_section=cross_section2, all_angle=True)

my_cell().show()

Thanks! Yes, this works, but this is equivalent to decorating path.extrude  with vcell.
This however does not solve the issue of placing multiple extruded paths into one cell without having wrapped them in a decorated function beforehand, nor does it help if I just want to place it without a function, which should be a legitimate syntax to prevent excessive nesting (correct me if I am wrong).
After all, if I had to make a decorated function for every extruded path my code would get verbose and at that point decorating the extrude method seems like a reasonable idea to me.
Let me know what you think!

That's what kfactory is doing for most of the functions in fact.
There are multiple  good ways of handling this:

give path.extrude an optional Component as an input (this woulf require a PR)
decorate path.extrude yourself. This is as easy as decorated_path = gf.vcell( gf.path.extrude) and then you do c=decorated_path(**path_kwargs)

Great, thanks, that's what I was referring to, sorry for the confusion! I went for the latter, see my PR.

Yes, but I disagree. If you go for that option, you take away the opportunity to modify the path component. I think it's bad to only offer the decorated path, hence why the decorator was removed in the first place.

I see, but why would you want to modify an extruded path a posteriori? It's very flexible and it has its own purpose, so it would be like not decorating a straight because you may want to modify it afterwards.

Because if I want an extruded path, I definitely either want it in another cell, or I don't want it named "path_.." if it's a bend or similar.

An extruded path can be more than a bend (and any other standard component) though. Note that in my case the component is not a strictly bend, even if it looks like it, and I do not want it to be treated as such, otherwise I would have just used a normal bend with a special cross-section. I am using a path because I want to set the equation of the spline, and not because I need to go from point A to B with a component like a bend. If you want to have a standard component with a specific width profile (e.g.: tapered 90 deg bend), you can use the bend component with a tapered cross-section.
Furthermore, decorating the extrude is precisely allowing you to place any number of paths in another component without the errors that we are getting now.

yes, so I fail to see what the big issue is if you have to declare once in your tapeout:
path = gf.vcell(gf.path)

And all of this is completely ignoring that path can give you an all-angle component or a standard component/cell. There currently is not a decorator to do that automatically, nor do I know whether that's easy to implement

Closing this for now
Feel free to reach out if there’s anything else we can assist with.


Java jdbc reference libraary importing jar file but still java program not able to use it

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

VS Code Version: latest
OS Version: windows 11

program used :
import java.sql.*;
public class newfile {
public static void main(String[] args) throws Exception {
/*
* steps to follow
* 1. import
* 2. load and register the driver (we are using mysql driver) -->
* com.mysql.jdbc.Driver
* 3. create the connection --> obj of Connection interface
* 4. create a statement --> obj of Statement interface
* 5. execute the query
* 6. process the results
* 7. close
*/
    String url = "jdbc:mysql://localhost:3306/sql_workbench?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
    String uname = "root";
    String pass = "0768";
    String query = "select name from student where id=3";

    Class.forName("com.mysql.cj.jdbc.Driver");
    Connection con = DriverManager.getConnection(url, uname, pass);
    Statement st = con.createStatement();

    ResultSet rs = st.executeQuery(query);

    rs.next(); // because the pointer is not pointing at ur answer and thus to move it down to
    // point at ur answer we use this

    String name = rs.getString(1);
    System.out.println(name);
    st.close();
    con.close();

}

}
output:
Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:383)
at java.base/java.lang.Class.forName(Class.java:376)
at newfile.main(newfile.java:23)
reference library already contains the jar file but the program is still unable to run

### the same program is running perfectly in eclipse ide

/extJava

It looks like this is caused by the Java extension. Please file the issue to the Java extension repository. Make sure to check their troubleshooting instructions and provide relevant information such as the extension version you're using. See also our issue reporting guidelines for more information.
Happy Coding!


Document the plugins-always-clone-fresh feature

This feature is proposed in https://github.com/buildkite/agent/pull/1636, and i think it'd be great to have a working example of when it's useful.
cc: @moskyb

This is excellent @toothbrush, thanks for taking the time to write it! I've made some suggestions for style and clarity.

Of course, my pleasure.  Thanks for the excellent improvements and quick turnaround 🙏
It has been a pleasure contributing to Buildkite!

@moskyb is this good to go in?

@plaindocs nah, it wasn't included in the latest agent release. I'll make a note to release this when the next agent release comes in, likely in a couple of weeks or so

Merging after consulting with @moskyb.


Projects now have start end date

Validations included in #330 are implemented as well as the general date functionality:

Start date of the project must not in the past
End date of the project must be before start
All tasks and supplies as part of project should have a due date between start and end of project. Warn when saving task/supply.

Let me know if you have any questions!

Hi @NolanChan I have deployed a review app with your changes and noticed that when updating a project the start_date/due_date are not being persisted. Besides it I'm also getting an error when trying to create a brand new project with start_date/due_date. Could you please check it? I think you need to update the projects_controller to persist them.
Here's the link for the review app with your PR changes: https://lale-help-stg-pr-455.herokuapp.com (I have seeded it with a backup from lale-stg db, so there's some data in there)

Hi @diegoaad ,  I'll check on STG once I get a proper working login. From my local testing, everything seemed to show up fine for me. I'll confirm on both locations

@NolanChan STG login should be fixed with pw = Lalehelp1.
Issues in the review app were:

We are probably lacking data migrations for existing projects.

Hi @NolanChan I think the issues were gone after restarting the server. Once I deployed the review app it didn't run rake db:migrate, so I manually ran it. But I think I didn't restart the rails server after doing it, therefore it was not working as it should. After the server was restarted, everything seems to be working now.
When talking to @dottorer we thought that instead of just creating the new columns and leaving them without a value, we could re-use the start_date / due_date functions we had to update the new attributes on the migration.

Hi @diegoaad , I can uncomment the start_date and due_date functions, but will they be invoked for all the already-created projects?

@NolanChan perhaps we can leave them commented, but we need a similar function in the migration file so when migration is happening we'll set the value of the newly created column to the value returned by the function/logic.
I was thinking about something like a for each existing project call update_attributes to update start_date using the logic in the start_date function that's being commented (example in 2nd answer of stackoverflow: http://stackoverflow.com/questions/17389728/add-column-to-table-and-fix-value-for-existing-records-in-rails).

Gotcha, sounds good. I'll look into this, as I've never populated values on a migration before. Thanks for the link!

closing in favor of #464
@NolanChan please follow #464 for any updates on this PR


Database backup and restore

It's not necessarily clear to our users that we're doing backups automatically. Also, there's no way for them to restore from a backup either.

If we need to restore a backup, can you contact support to have it done?

@jetaggart Yes you can. You can either reach out to us on Discord.

Is there a way we can programmatically create a backup?
(Or a way to visualize what backups you folks have created/how often those are created?)
From the CLI or and endpoints?

@fforres Yes, the dump should work fine. We do want to improve the developer experience, of course.

Dump and load is mentioned in the reference documentation. And yes, we can definitely do better as @penberg says.

In the documentation, I only found related commands to "load", but nothing about "dump" 🤔
Mentions of loading are here: https://docs.turso.tech/cli/db/create
--from-dump	Create the database from a local SQLite dump.
--from-dump-url	Create the database from a remote SQLite dump.

But there is nothing about how to "dump", move the data from the remote database to the local computer.
I found out that this worked for me to get a dump, it would be nice to have it documented I think!
turso db shell MY_DATABASE .dump > dumpfile.sql

Hey @Jolg42
I've added the load and dump examples to this page in the docs. It was left out in our recent docs update but now should be covered.

That's super nice @notrab thanks!

Also, the platform API lets the user to upload a dump from an url, but does not offer a way to make a dump. Can this be added?

Hey @GustavoOS
This currently is a database feature that isn't yet available through the Platform API. I'm not sure if it will be any time soon, we'd likely want to make it more robust. I will document the current behaviour in our new libsql docs though.
You should be able to do this:
const response = await fetch('https://your-db-url.turso.io/dump', {
  headers: {
    Authorization: `Bearer [DATABASE_OR_GROUP_TOKEN_HERE]`,
  },
});

if (response.ok) {
  const text = await response.text();

  return new Response(text);
}

Good to know it is a mapped feature.
But I tested it with a small database, and this was the response I got
{
"error": "Replicator error: Timeout performing handshake with primary"
}


Hoverfly verifier

I propose producing another binary alongside Hoverfly which can be used to verify that simulations have not become stale.
The way it would work is by performing all the requests in a simulation and asserting the responses are still the same.
High level example
(I've only included two request fields and one response field for simplicity)

Method
Path
Response Body

GET
/foo
{"hello" : "world"}

PUT
/bar
{"hello" : "world"}

POST
/foo
{"hello" : "world"}

The verifier would iterate over each request matcher and build a request based on it.  It would then assert the response is the same as before:
assert GET /foo == {"hello" : "world"} PASS
assert PUT /bar == {"hello" : "world"} FAIL
assert POST /foo == {"hello" : "world"} PASS
In this case we no longer receive the simulated response for the second request, so we would receive a test failure.
Reporting
The results of running this binary would be a JSON or XML file, which also has a pretty formatted HTML equivalent which is human readable.
Schema verification
It's quite common for data which is returned by an external API (such as timestamps) to change even if the request does not. In the case of JSON:

{
  "foo" : "bar",
  "bacon" : "4"
}

Is the same API contract as:

{
  "foo" : "bar",
  "bacon" : "5"
}

It just happens that the second time we made the request, somebody had added more bacon. This does not mean that our simulation is invalid, as it is still the same contract but with different data.  To be invalid we would have to do something like change the name of the field:

{
  "fooRenamedToBreakingField" : "bar",
  "bacon" : "5"
}

Having this type of schema comparison instead of a straight up comparison of the raw data is going to be more useful, but I think for the first iteration of the application we can leave it out as it's quite complicated and requires a wider discussion.

See #699

We have diff mode which provides the underlying functionality. The assertion part of this could be in a wrapper such as Hoverfly-java or a separate application.


[bug] in Chef::Platform.find_provider 12.4.1

Hello,
there seems to be a bug in platform detection mechanism. Invocation of the code bellow
Chef::Platform.find_provider('ubuntu', '14.04', :service)

throws an exception - Chef::Exceptions::ProviderNotFound: Cannot find a provider for...
PS. Checked on 12.3.0, works correct.
- Denis

Chef::Resource#provider_for_action is the public interface you should be using in Chef 12.

@lamont-granquist Thanks for an idea! I've thought that the find_provider is also okay since it was (mb. is) used in mysql cookbook, which seems to be well done.

It doesn't any more...

Closing this, pretty sure we broke this interface in 12.0 with the introduction of the ProviderResolver.


removed old code, added some tests

Coverage increased (+0.5%) to 95.729% when pulling 8cf93a0f6fdb366eaa557fe21d2d8f4612a28bb2 on 161114_tests into 11ede67c5d148e5aa28a3a619fccae0b13084a9c on master.

Current coverage is 95.99% (diff: 100%)

Merging #1240 into master will increase coverage by 0.45%

@@             master      #1240   diff @@
==========================================
  Files            43         43
  Lines          3184       3169    -15
  Methods         424        423     -1
  Messages          0          0
  Branches          0          0
==========================================
  Hits           3042       3042
+ Misses          142        127    -15
  Partials          0          0

Powered by Codecov. Last update 11ede67...8cf93a0

Coverage increased (+0.6%) to 95.789% when pulling 54aca2bf9b3f774c62f61fe3bd5501f9437576be on 161114_tests into 11ede67c5d148e5aa28a3a619fccae0b13084a9c on master.


Steam Game (FTL) crashes instantly when using ludusavi

Ludusavi version
v0.22.0
Operating system
Linux (Steam Deck)
Installation method
Flatpak
Description
I'm trying to use the Ludusavi backup tool to automatically back up my save data for the game "FTL: Faster Than Light" (FTL) when launching the game via Steam on my Linux system. However, I'm encountering an issue where the Steam environment can't find the ludusavi command, despite the command being available in my system and working correctly when invoked directly from a terminal.
Steps Taken:

I installed Ludusavi as a Flatpak app.
I wrote a shell script to run ludusavi and then launch FTL. This script works correctly when executed directly from a terminal. Here's the script:

#!/bin/bash

# Clear log file
echo "" > ~/ftl.log

# enter the game directory
cd ./data

# run ludusavi, then FTL
./ludusavi --config $HOME/.var/app/com.github.mtkennerly.ludusavi/config/ludusavi wrap --name "FTL: Faster Than Light" --gui -- ./FTL "$@" >> ~/ftl.log 2>&1

I tried to use this script as a launcher for FTL in Steam. This is where the problem occurs: the Steam environment can't find the ludusavi command.

/var/home/<user>/.local/share/Steam/steamapps/common/FTL Faster Than Light/FTL: line 11: ./ludusavi: No such file or directory

I tried creating a symbolic link to ludusavi in the FTL executable's directory, but this didn't resolve the issue.

I attempted to use the flatpak run command to run ludusavi from my script, but the Steam environment couldn't find the flatpak command.

/var/home/<user>/.local/share/Steam/steamapps/common/FTL Faster Than Light/FTL: line 11: flatpak: command not found

I added the ludusavi wrap command to the Steam launch options for FTL, but the Steam environment couldn't find the flatpak command.

The original launch script for FTL looks like this:
#!/bin/bash

# enter the game directory
cd ./data

# run FTL
exec ./FTL "$@"

Logs
Steam Logs:
[2024-02-27 13:03:32] GameAction [AppID 212680, ActionID 28] : LaunchApp changed task to ProcessingInstallScript with ""
[2024-02-27 13:03:32] GameAction [AppID 212680, ActionID 28] : LaunchApp changed task to SynchronizingCloud with ""
[2024-02-27 13:03:33] GameAction [AppID 212680, ActionID 28] : LaunchApp changed task to ControllerWarnings with ""
[2024-02-27 13:03:33] GameAction [AppID 212680, ActionID 28] : LaunchApp waiting for user response to ControllerWarnings ""
[2024-02-27 13:03:33] GameAction [AppID 212680, ActionID 28] : LaunchApp continues with user response "ControllerWarnings"
[2024-02-27 13:03:33] GameAction [AppID 212680, ActionID 28] : LaunchApp changed task to SynchronizingControllerConfig with ""
[2024-02-27 13:03:33] Loaded Config for Local Selection Path for App ID 212680, Controller 15: /var/home/<user>/.local/share/Steam/steamapps/common/Steam Controller Configs/127366454/config/212680/controller_neptune.vdf
[2024-02-27 13:03:33] Created virtual controller at slot 0 for controller 0
[2024-02-27 13:03:33] GameAction [AppID 212680, ActionID 28] : LaunchApp changed task to SiteLicenseSeatCheckout with ""
[2024-02-27 13:03:33] GameAction [AppID 212680, ActionID 28] : LaunchApp changed task to WaitForStreamingEncoderConfig with ""
[2024-02-27 13:03:33] GameAction [AppID 212680, ActionID 28] : LaunchApp changed task to CreatingProcess with ""
[2024-02-27 13:03:33] GameAction [AppID 212680, ActionID 28] : LaunchApp waiting for user response to CreatingProcess ""
[2024-02-27 13:03:33] GameAction [AppID 212680, ActionID 28] : LaunchApp continues with user response "CreatingProcess"
[2024-02-27 13:03:33] Game process added : AppID 212680 "flatpak run com.github.mtkennerly.ludusavi --config $HOME/.var/app/com.github.mtkennerly.ludusavi/config/ludusavi wrap --name "FTL: Faster Than Light" --gui --  /var/home/<user>/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=212680 -- /var/home/<user>/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/var/home/<user>/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/var/home/<user>/.local/share/Steam/steamapps/common/SteamLinuxRuntime'/scout-on-soldier-entry-point-v2 --  '/var/home/<user>/.local/share/Steam/steamapps/common/FTL Faster Than Light/FTL'", ProcID 54459, IP <IP_ADDRESS>:0
[2024-02-27 13:03:33] Controller slots reset
[2024-02-27 13:03:33] Loaded Config for Local Selection Path for App ID 212680, Controller 15: /var/home/<user>/.local/share/Steam/steamapps/common/Steam Controller Configs/127366454/config/212680/controller_neptune.vdf
[2024-02-27 13:03:33] Destroyed virtual controller at slot 0 for controller 0
[2024-02-27 13:03:33] GameAction [AppID 212680, ActionID 28] : LaunchApp changed task to WaitingGameWindow with ""
[2024-02-27 13:03:33] GameAction [AppID 212680, ActionID 28] : LaunchApp changed task to Completed with ""
[2024-02-27 13:03:33] Game process removed: AppID 212680 "flatpak run com.github.mtkennerly.ludusavi --config $HOME/.var/app/com.github.mtkennerly.ludusavi/config/ludusavi wrap --name "FTL: Faster Than Light" --gui --  /var/home/<user>/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=212680 -- /var/home/<user>/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/var/home/<user>/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/var/home/<user>/.local/share/Steam/steamapps/common/SteamLinuxRuntime'/scout-on-soldier-entry-point-v2 --  '/var/home/<user>/.local/share/Steam/steamapps/common/FTL Faster Than Light/FTL'", ProcID 54459
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] Local Device Found
  type: 28de 1205
  path: /dev/hidraw0
  serial_number: MEDA20236551 - 1
[2024-02-27 13:03:34]   Manufacturer: Valve Software
[2024-02-27 13:03:34]   Product:      Steam Deck Controller
[2024-02-27 13:03:34]   Release:      100
[2024-02-27 13:03:34]   Interface:    0

[2024-02-27 13:03:34] Local Device Found
  type: 28de 1205
  path: /dev/hidraw1
  serial_number: MEDA20236551 - 1
[2024-02-27 13:03:34]   Manufacturer: Valve Software
[2024-02-27 13:03:34]   Product:      Steam Deck Controller
[2024-02-27 13:03:34]   Release:      100
[2024-02-27 13:03:34]   Interface:    1

[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:34] GLibLog: domain:Gtk  msg:gtk_disable_setlocale() must be called before gtk_init()
[2024-02-27 13:03:35] Local Device Found
  type: 28de 1205
  path: /dev/hidraw0
  serial_number: MEDA20236551 - 1
[2024-02-27 13:03:35]   Manufacturer: Valve Software
[2024-02-27 13:03:35]   Product:      Steam Deck Controller
[2024-02-27 13:03:35]   Release:      100
[2024-02-27 13:03:35]   Interface:    0

[2024-02-27 13:03:35] Local Device Found
  type: 28de 1205
  path: /dev/hidraw1
  serial_number: MEDA20236551 - 1
[2024-02-27 13:03:35]   Manufacturer: Valve Software
[2024-02-27 13:03:35]   Product:      Steam Deck Controller
[2024-02-27 13:03:35]   Release:      100
[2024-02-27 13:03:35]   Interface:    1

Steam is probably running the command with a limited PATH environment variable. I think the easiest solution would be to use an absolute path instead of just flatpak.
Could you open a console and run which flatpak? Then you can insert that full path in the script:
<FULL_PATH_HERE>/flatpak run com.github.mtkennerly.ludusavi --config $HOME/.var/app/com.github.mtkennerly.ludusavi/config/ludusavi wrap ...

I don't really know what Steam is doing, but i let it output the PATH content, but it was completely empty.
Changing the flatpak path to the full path didn't work:
/var/home/<user>/.local/share/Steam/steamapps/common/FTL Faster Than Light/FTL: line 9: /usr/bin/flatpak: No such file or directory

That's strange. I would've expected a permission error rather than not recognizing the path at all.
Could you give this a try and see what happens?

Download the non-Flatpak version of Ludusavi (i.e., ludusavi-v0.22.0-linux.zip) and extract it somewhere in your home folder
Mark it as executable (chmod +x ./ludusavi)
In your script, reference the executable with an absolute path

I tried your suggestion and it launched! Yay
Only thing i am not sure about is if it backed up anything. I had the --gui option set, but there was no confirmation dialogue. I tested the behaviour when omitting the --gui option, but in that case I got this error:
Restore save data for FTL: Faster Than Light? [y/n] Unable to request confirmation.
This sort of makes sense to me since i cannot confirm anything, but I would love to either set a default to always backup and restore or maybe find out why i don't get the GUI confirmation dialogue.
Do you have any idea?
I checked if it backed up anything, but it seems like it didn't:
lukas@Lukas-SteamDeck:~/OneDrive - Personal/Anwendungen/Backup/SteamDeck/FTL_ Faster Than Light$ ls -la
total 0
drwxr-xr-x. 2 lukas lukas  4096 Mar 15 05:56 .
drwxr-xr-x. 4 lukas lukas  4096 Mar 15 05:56 ..
-rw-r--r--. 1 lukas lukas 13290 Mar 15 13:01 backup-20240315T120149Z.zip
-rw-r--r--. 1 lukas lukas  3833 Feb 23 09:01 hs_mv_prof_backup.sav
-rw-r--r--. 1 lukas lukas  1070 Mar 12 20:03 mapping.yaml
lukas@Lukas-SteamDeck:~/OneDrive - Personal/Anwendungen/Backup/SteamDeck/FTL_ Faster Than Light$ ls -la
total 0
drwxr-xr-x. 2 lukas lukas  4096 Mar 15 05:56 .
drwxr-xr-x. 4 lukas lukas  4096 Mar 15 05:56 ..
-rw-r--r--. 1 lukas lukas 13290 Mar 15 13:01 backup-20240315T120149Z.zip
-rw-r--r--. 1 lukas lukas  3833 Feb 23 09:01 hs_mv_prof_backup.sav
-rw-r--r--. 1 lukas lukas  1070 Mar 12 20:03 mapping.yaml

Here is another log snippet, but i am not sure if this is from the Game or from ludusavi:
Warning: <FTL> not found in data/mup_mvkestrel_a.xml, adding wrapper tag
Null event creation = DROPPOINT_SUPPLY_DEPOT_LIST
Something went wrong in saving the profile!
Something went wrong in saving the profile!
Something went wrong in saving the profile!
Couldn't find in dictionary: hotkey_drone5
Couldn't find in dictionary: hotkey_drone6
Couldn't find in dictionary: hotkey_drone5
Couldn't find in dictionary: hotkey_drone6
Warning: <FTL> not found in data/mup_mvkestrel_a.xml, adding wrapper tag
Something went wrong in saving the profile!
Something went wrong in saving the profile!
Warning: <FTL> not found in data/mu_curator.xml, adding wrapper tag
Steam stats received
Something went wrong in saving the profile!
Something went wrong in saving the profile!
Something went wrong in saving the profile!
Finalizing Steam achievements

I tried your suggestion and it launched! Yay

Nice 🎉

I would love to either set a default to always backup and restore

I've just added a --force option in master. Here's a Linux build: ludusavi-v0.22.0-post.25+e2d8f79-linux.zip . Be careful, though, because Ludusavi might think some games exit right away, like if the main executable starts the actual game in the background and then quits.

or maybe find out why i don't get the GUI confirmation dialogue.

Could you check $HOME/.var/app/com.github.mtkennerly.ludusavi/config/ludusavi for a ludusavi_rCURRENT.log file? After you hit the error, that file should contain a line with Unable to request confirmation: containing the reason.
I'm guessing it's related to why the flatpak executable didn't work, since the GUI popups will try to use zenity or kdialog on Linux.

Here is another log snippet, but i am not sure if this is from the Game or from ludusavi

That's from the game.

This worked great thanks!
My FTL start script looks like this now:
#!/bin/bash

# enter the game directory
cd ./data

# start the game with ludusavi as a wrapper
./ludusavi --config $HOME/.var/app/com.github.mtkennerly.ludusavi/config/ludusavi wrap --name "FTL: Faster Than Light" --force -- ./FTL "$@"


AWR1243 read results in socket timeout

I set up adc.py parameters to match my mmWaveStudio configuration as follows:
ADC_PARAMS = {'chirps': 128,  # 32
              'rx': 4,
              'tx': 1,
              'samples': 256,
              'IQ': 2,
              'bytes': 4}

and I used the following code to read the data:
from mmwave.dataloader import DCA1000

dca = DCA1000()
adc_data = dca.read()
frame = dca.organize(adc_data, 128, 4, 2*256)

Firstly, dca.organize gives a list dimension error unless I multiply the number of samples by 2 as shown above. Why does it need to be multiplied?
Secondly, when I trigger a capture in the SensorConfig tab of mmWaveStudio (it triggers a read of 8 frames of data and then stops) and run the python, I get a timeout error. However, using a continuous stream (in the ContStream tab), I can successfully read data. Does openradar require a continuous read or is there a way to get it to detect or trigger a single capture with mmWaveStudio and the AWR1243?

Update
So I wrote the following file (a la a suggestion from a different issue on this repo), which runs mmWaveStudio and reads adc_data as it repeatedly triggers captures; this results in a timeout however:
import subprocess, time

subprocess.Popen(r'C:\ti\mmwave_studio_01_00_00_00\mmWaveStudio\RunTime\Run_mmWaveStudio.cmd',
                         cwd=r'C:\ti\mmwave_studio_01_00_00_00\mmWaveStudio\RunTime')
time.sleep(45) #Wait until mmwave is completely executed

from mmwave.dataloader import DCA1000
print("starting read")
dca = DCA1000()
adc_data = dca.read(timeout=10)
print(len(adc_data))
frame = dca.organize(adc_data, 128, 4, 2*256)
print(frame)

On the other hand, when I tried executing my original python script but with the timeout set to 10, and then triggering the capture on mmWaveStudio, it was successful, but only the first time. If I tried it again, it would give this error:
Traceback (most recent call last):
  File "C:\ti\openradar\read_dca.py", line 4, in <module>
    adc_data = dca.read(timeout=10)
  File "C:\Users\Francisco\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\mmwave\dataloader\adc.py", line 180, in read
    ret_frame[0:UINT16_IN_PACKET] = packet_data
ValueError: could not broadcast input array from shape (512,) into shape (728,)

Looking over the adc code, it seems like the length the packet gives is longer than its actual length. I can only fix this problem by closing out mmWaveStudio and reopening it. But then the problem still occurs after the first successful trigger.

Have u solved this issue yet? I'm currently facing the same one.


package versions - reproductibility

I installed on a linux machine a conda virtual environment and then I run a pip install -r requirements.txt  Unfortunately I always have errors on some package, like "from pytorch_lightning.utilities.seed import seed_everything" gives 'ImportError: cannot import name 'seed_everything' from 'pytorch_lightning.utilities.seed'" or "from pytorch_lightning.plugins import DDPPlugin
ImportError: cannot import name 'DDPPlugin' from 'pytorch_lightning.plugins'".
I tried different versions of packages, higher or lower, depending on what I found in Issues or on the internet. Is there any other method for testing this? A docker image, or the precise package numbers you used? Thank you

Not sure if this will still be helpful, but I faced the same issue and It was resolved by setting the following package versions:
torch==1.13
torchtext==0.6


⚠ ClamAV has degraded performance

In 31d52df, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 67 ms

Resolved: ClamAV performance has improved in 1c07c35 after 8 minutes.


App build fails due to missing dependencies

Which version of the Ably SDK are you using?
1.2.20
On which platform does the issue happen?
iOS 16.4
Are you using Carthage?
Yes, 0.38.0
Are you using Cocoapods?
Yes, 1.11.3
Which version of Xcode are you using?
14.3
What did you do?
The build fails when including the framework - tried with the attached framework via Github releases, Carthage and Cocoapods.

'ARTTypes.h' file not found

What did you expect to happen?
The build should succeed.
What happened instead?
The build should fails with the above error message.

Workaround: Manually fix the imports (the ARTTypes.h is a public header but referenced from private headers).
- #import "ARTTypes.h"
+ #import <Ably/ARTTypes.h>

Workaround for now: Fix the invalid reference of headers inside private headers by using a module-based import:
- #import "ARTTypes.h"
+ #import <Ably/ARTTypes.h>

Hey @hansemannn Couldn't you test the branch from this PR https://github.com/ably/ably-cocoa/pull/1756 whether it works for you. Thanks.

@maratal Looks promising! This should work, thank you!

As the workaround to manually fix the import worked, so project is completed for now. A simple Swift-based project that uses manual framework inclusion (no SPM or Cocoapods) should reproduce it. If I get some additional time, I'll try to provide the project as well

Should be now fixed https://github.com/ably/ably-cocoa/pull/1801

It wasn't - https://github.com/ably/ably-cocoa/issues/1824


Maven plugin error on Windows when JAVA_HOME path contains spaces

The gatling-maven-plugin fails with an error on Windows, when the JAVA_HOME path contains a space. The problem seems to be that the plugin cannot find the java executable.
We see this problem when running the plugin with the following conditions:

Windows 7
JDK 1.8.0_121
Maven 3.3.9
Gatling 2.2.4
gatling-maven-plugin 2.2.4
JDK installed at the default location: C:\Program Files\Java\jdk1.8.0_121
JAVA_HOME env variable set to: C:\Program Files\Java\jdk1.8.0_121

The problem seems to depend on the Windows version. In particular, we have seen this happen on Windows 7; but we could not reproduce this on Windows 10, where everything works just fine.
We first observed this on a project we are working on, but we were able to reproduce the problem with the demo application (https://github.com/gatling/gatling-maven-plugin-demo). We simply cloned the demo project, and run mvn gatling:execute without any modification to the project code, and the problem appeared.
This is the full error with stacktrace:
[ERROR] Failed to execute goal io.gatling:gatling-maven-plugin:2.2.4:execute (default-cli) on project test: Gatling failed. Cannot run program “C:\Progra~1\Java\jdk1.8.0_121\bin\java" (in directory "."): CreateProcess error=2, The system cannot find the file specified -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal io.gatling:gatling-maven-plugin:2.2.4:execute (default-cli) on project matchboxPerformanceTesting: Gatling failed.
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Gatling failed.
        at io.gatling.mojo.GatlingMojo.execute(GatlingMojo.java:219)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
        ... 20 more
Caused by: java.io.IOException: Cannot run program "C:\Progra~1\Java\jdk1.8.0_121\bin\java" (in directory "."): CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessBuilder.start(Unknown Source)
        at java.lang.Runtime.exec(Unknown Source)
        at org.apache.commons.exec.launcher.Java13CommandLauncher.exec(Java13CommandLauncher.java:58)
        at org.apache.commons.exec.DefaultExecutor.launch(DefaultExecutor.java:277)
        at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:334)
        at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:164)
        at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:151)
        at io.gatling.mojo.Fork.run(Fork.java:120)
        at io.gatling.mojo.GatlingMojo.executeGatling(GatlingMojo.java:274)
        at io.gatling.mojo.GatlingMojo.iterateBySimulations(GatlingMojo.java:236)
        at io.gatling.mojo.GatlingMojo.execute(GatlingMojo.java:214)
        ... 22 more
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(Unknown Source)
        at java.lang.ProcessImpl.start(Unknown Source)
        ... 33 more
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Thanks.

Sorry, but we can't reproduce.

Closing for now. Feel free to ping if you can figure out a procedure that would let us reproduce for sure.

I have same issue, I can guarantee you that this is a real problem on Windows 7.

Please provide an exact procedure that would let us reproduce the issue. As demonstrated above, we couldn't reproduce with the procedure @maxfliri provided. Then, we tested with a 64 bits Windows 7. Are you running on a 32 bits one?

Facing same problem. No Idea what is wrong. Just switch to GIT bash and it works. Same thing is not working in cmd , facing above mentioned issue.

Same issue here. It seems the plugin is resolving my Java home folder to progra~1, instead of correctly using progra~2:

@sonata82 No, this is a different issue. Please open a dedicated one.

I'm pretty sure it's the same issue, and the problem is the code here:
private String safeWindowsPath(String value) {
    return MojoUtils.IS_WINDOWS ?
            value
                    .replace("Program Files (x86)", "Progra~2")
                    .replace("Program Files", "Progra~1")
            : value;
  }

which assumes short names for folders.

No it’s not. This issue was because of the white space in the full name, before we were trying to use the short name instead.

To get around this issue with white space in JAVA_HOME path, I created a symbolic link called Program-Files and used it in the JAVA_HOME variable.
c:>mklink /J c:\Program-Files "c:\Program Files"
https://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/


[ml] fix: add read-write mount on input type for jobs

Description
azure-ai-ml specific only
The web azure portal allows to mount input as read write, but the SDK limits to only read only. I've tested this patch locally and it matches azure portal behaviour.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.