⚠ API - Lens has degraded performance

In 9487718, API - Lens ($LENS_API_URL) experienced degraded performance:

HTTP code: 503
Response time: 589 ms

Resolved: API - Lens performance has improved in 144d1d6 after 6 minutes.


typo: soeone -> someone

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

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


[CT-1196] [Bug] Inconsistency between dbt_valid_from and dbt_valid_to

Is this a new bug in dbt-core?

[X] I believe this is a new bug in dbt-core
[X] I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior
I found an issue, or multiple, with snapshots using timestamp strategy. It gives inconsistency in data and some info is missing in documentation about the timestamps and how it works.
I have tried search for bug reports but haven't found much in the area except this issue https://github.com/dbt-labs/dbt-core/issues/4347 which I may think is the reason for the problem I have, but as I haven't tested this before I don't know if this is a regression.
More detailed is that I get dbt_valid_to to be before dbt_valid_from on hard deletes.
The main reason in my opinion is that the data used for dbt_valid_from is the data that is used from the source to the snapshot and with no regards to time zone, the dbt_valid_to is set to UTC time zone on hard deletes, but there is no time zone in either timestamp in the snapshot table.
As well there is no validation that the dbt_valid_to is after or equal to dbt_valid_from.
Expected Behavior
That dbt_valid_to never is before dbt_valid_from for the same record.
That the documentation is updated that the field used for updated_at need to be in UTC time zone and that dbt_valid_to will be in UTC time zone on hard deletes, or that an attribute is added to the snapshot config where one can specify what time zone should be used for the time stamps.
Steps To Reproduce
Snapshot code - data_snapshot.sql:
{% snapshot data_snapshot %}

{{
    config(
      strategy='timestamp',
      unique_key='data_key',
      updated_at='last_modified',
      invalidate_hard_deletes = true
    )
}}

SELECT
    data_key,
    last_modified
FROM
    raw_table

{% endsnapshot %}

Create a table with data:
CREATE TABLE raw_table AS
SELECT 'abc' AS data_key, CAST(CONVERT_TIMEZONE('Europe/Stockholm', CURRENT_TIMESTAMP()) AS DATETIME) AS last_modified;

DATA_KEY
LAST_MODIFIED

abc
2022-09-16 15:20:25.977000000

Run snapshot:
dbt snapshot --select data_snapshot

DATA_KEY
LAST_MODIFIED
DBT_SCD_ID
DBT_UPDATED_AT
DBT_VALID_FROM
DBT_VALID_TO

abc
2022-09-16 15:20:25.977000000
213a5f3f2f3a37846d0467d7964eb7bb
2022-09-16 15:20:25.977000000
2022-09-16 15:20:25.977000000

Remove source data:
DELETE FROM raw_table WHERE data_key = 'abc';

Run snapshot:
dbt snapshot --select data_snapshot

DATA_KEY
LAST_MODIFIED
DBT_SCD_ID
DBT_UPDATED_AT
DBT_VALID_FROM
DBT_VALID_TO

abc
2022-09-16 15:20:25.977000000
213a5f3f2f3a37846d0467d7964eb7bb
2022-09-16 15:20:25.977000000
2022-09-16 15:20:25.977000000
2022-09-16 13:40:48.814000000

dbt_valid_to is before dbt_valid_to

To complicate it more, not perhaps a that common real world scenario.
Add data, the timestamp to be before the last_modified in the previous data but after the dbt_valid_to value in the snapshot.
INSERT INTO raw_table VALUES ('abc', '2022-09-16 14:20:00.000000000');
Run snapshot:
dbt snapshot --select data_snapshot

DATA_KEY
LAST_MODIFIED
DBT_SCD_ID
DBT_UPDATED_AT
DBT_VALID_FROM
DBT_VALID_TO

abc
2022-09-16 15:20:25.977000000
213a5f3f2f3a37846d0467d7964eb7bb
2022-09-16 15:20:25.977000000
2022-09-16 15:20:25.977000000
2022-09-16 13:40:48.814000000

abc
2022-09-16 14:20:00.000000000
7e0dfe7d09cc4895c551c6a4b1944c06
2022-09-16 14:20:00.000000000
2022-09-16 14:20:00.000000000

The dbt_valid_from on the second set of data is before the dbt_valid_from in the first set of data.
Additional update of the data, the timestamp is after the timestamp in the first data:
UPDATE raw_table SET last_modified = '2022-09-16 16:20:00.000000000' WHERE data_key = 'abc';

Run snapshot:
dbt snapshot --select data_snapshot

DATA_KEY
LAST_MODIFIED
DBT_SCD_ID
DBT_UPDATED_AT
DBT_VALID_FROM
DBT_VALID_TO

abc
2022-09-16 15:20:25.977000000
213a5f3f2f3a37846d0467d7964eb7bb
2022-09-16 15:20:25.977000000
2022-09-16 15:20:25.977000000
2022-09-16 13:40:48.814000000

abc
2022-09-16 14:20:00.000000000
7e0dfe7d09cc4895c551c6a4b1944c06
2022-09-16 14:20:00.000000000
2022-09-16 14:20:00.000000000
2022-09-16 16:20:00.000000000

abc
2022-09-16 16:20:00.000000000
dbddbe4ac1fab10d820aa6d4ab956674
2022-09-16 16:20:00.000000000
2022-09-16 16:20:00.000000000

Relevant log output
No response
Environment
dbt cloud: v1.0

Which database adapter are you using with dbt?
snowflake
Additional Context
No response

One thing I quickly caught:

dbt cloud: v1.0

I have tried search for bug reports but haven't found much in the area except this issue https://github.com/dbt-labs/dbt-core/issues/4347 which I may think is the reason for the problem I have, but as I haven't tested this before I don't know if this is a regression.

The changes fixing that issue (https://github.com/dbt-labs/dbt-core/pull/4513 + https://github.com/dbt-labs/dbt-core/pull/5077) were included in v1.1. They were not included in v1.0.

@mats-wetterlund-pierce Thanks for opening this! 📅 🕙
Thanks to your detailed examples, I was able to reproduce everything you described.
What is going on
When using the timestamp strategy, there are two different things you highlighted that can definitely affect the output of snapshots:

if updated_at isn't monotonically increasing for each unique_key value for each successive snapshot
if updated_at has the timestamp_ntz data type, but it represents a local time zone other than UTC

Where to go from here
I don't think this is a bug, but rather just the result of the timestamp strategy and hard-deletes expecting updated_at to have certain properties.
(I don't think that the check strategy can even have something like this happen since all of its timestamps are guaranteed to use the same source timezone and be monotonically increasing.)
You proposed a few things that we can (and should!) take action on, namely:

Update the docs that dbt_valid_to will be in UTC time zone on hard deletes
Update the docs that the field used for updated_at needs to be in UTC time zone

There's also some things you can do (that you might have already discovered on your own):

Transform any timestamps that are in a local time zone into UTC before taking the snapshot.

You will retain the option to transform the output of the snapshot into a some other business-relevant timezone in downstream transformation steps

Ensure that the updated_at timestamp reliably gets larger or stays the same for each key (monotonically increases)

if not, you'll either need to use the check strategy instead or produce your Type 2 SCD via a method other than snapshots (like using either lead or lag within a window function)

Ensure that the updated_at timestamp is <= convert_timezone('UTC', current_timestamp() in your source data

Using dbt_utils.expression_is_true is one way to do that test. See here and here for examples.

What you could do, but we don't recommend
⚠ The following is not a recommendation, just transparency ⚠
You asked about an attribute being added to the "snapshot config where one can specify what time zone should be used for the time stamps".
Although not recommended, sharing the following for completeness' sake.
Rather than transforming all timestamps into UTC, you can override the following macro in your local project:
{% macro snowflake__snapshot_get_time() -%}
  {{ log("snowflake__snapshot_get_time", info=True) }}
  to_timestamp_ntz({{ current_timestamp() }})
{%- endmacro %}

I didn't actually test this out, but I think you'd just replace to_timestamp_ntz({{ current_timestamp() }}) with convert_timezone('Europe/Stockholm', current_timestamp()). Then when you do snapshots, they'd use this macro for the timestamp for hard deletes (and also for insert times if you switched to the check strategy).
Why is this not recommended?
One reason is that (to the best of my knowledge) we consider this a "private" macro that is an implementation detail rather than being an intentional interface for user-configurable behavior. As such, it's liable to change in a future release without us considering it a breaking change.
Next steps
I'm planning on closing this in favor of making some documentation updates instead. I'll create an issue in https://github.com/dbt-labs/dbt-docs/issues and tag you in it so you can track along.
Thank you for highlighting where there are crucial details we should communicate better!

Update the docs that the field used for updated_at needs to be in UTC time zone
Why not change the code for snapshots so all updated_at, dbt_valid_from and dbt_valid_to are in time zone format with UTC time zone? Instead of each developer needs to take this into consideration and make sure that the incoming data is transformed?

As well when using the dbt_valid_to and dbt_valid_from from the snapshots it causes problems when they are depending on the in data used for the timestamps as some are in NTZ and some in TZ formats, as then as a developer you need to remember which are in NTZ format and convert them when using the data from snapshots and especially when combining data from multiple snapshots.
So all in all I think there would be a lot less issues for developers if all timestamps in the snapshots where in UTC TZ format and ensured to be that by the dbt core code.

Hi, I just ran into this issue too while making dbt snapshots with 'check' strategy. While the problem likely wouldn't result in a failing solution, it was very confusing for us to see snapshots' updated_at fields an hour back in time. I think the essence is that updated_at (and the other timestamp fields created when making a dbt snapshot) is a timestamp that should be interpreted as a UTC timestamp.
Therefore, I fully agree with @mats-wetterlund-pierce that it should also be stored as UTC TZ timestamp.

I don't know if what I found now would be considered a separate bug or just a variation of what I submitted before.
In short when an attribute in timestamptz format is used for updated_at the timestamp attributes in the snapshot are created as timestamptz but the code doesn't take that into consideration when updating the data in the snapshots.
Mainly it is in the deletes subquery on subsequent runs the problem is:
to_timestamp_ntz(convert_timezone('UTC', current_timestamp())) as dbt_valid_to,
Where it expressly converts the data for dbt_valid_to into a NTZ timestamp that will be used in a TZ field.
In our case the default timezone set in Snowflake is "America/Los_Angeles" -08:00, so we get i.e. "2023-01-30 03:19:10.863000000 -08:00" on hard delete instead of "2023-01-30 03:19:10.863000000 +00:00" causing us to get overlapping data if the same key comes back in the data again within the 8 hours added by dbt for the valid_to.
Currently the only workaround I see is to ensure that the default timezone in the DB is UTC.
The snapshot model is:
`
{% snapshot raw_stock_snapshot %}
{{
config(
strategy = 'timestamp',
unique_key = 'article_id',
updated_at = 'last_modified',
invalidate_hard_deletes = true
)
}}
SELECT
article_id,
internal_stock,
external_stock,
sold_items,
f_timestamp_ntz_to_timestamp_tz(last_modified, '+00:00') AS last_modified,
_fivetran_synced,
f_get_utc_timestamp()                                    AS insert_datetime
FROM
{{ source('source_system', 'stock') }}
{% endsnapshot %}
`
The output for first time build:
create or replace transient table ANALYTICS_DEV.dbt_raw_snapshots.raw_stock_snapshot  as         (     select *,         md5(coalesce(cast(article_id as varchar ), '')          || '|' || coalesce(cast(last_modified as varchar ), '')         ) as dbt_scd_id,         last_modified as dbt_updated_at,         last_modified as dbt_valid_from,         nullif(last_modified, last_modified) as dbt_valid_to     from ( SELECT     article_id,     internal_stock,     external_stock,     sold_items,     f_timestamp_ntz_to_timestamp_tz(last_modified, '+00:00') AS last_modified,     _fivetran_synced,     f_get_utc_timestamp()                                    AS insert_datetime FROM     raw.source_system.stock     ) sbq         );
Output on subsequent build:
create or replace temporary table "ANALYTICS_DEV"."DBT_RAW_SNAPSHOTS"."RAW_STOCK_SNAPSHOT__dbt_tmp"  as         (with snapshot_query as ( SELECT     article_id,     internal_stock,     external_stock,     sold_items,     f_timestamp_ntz_to_timestamp_tz(last_modified, '+00:00') AS last_modified,     _fivetran_synced,     f_get_utc_timestamp()                                    AS insert_datetime FROM     raw.source_system.stock     ),     snapshotted_data as (         select *,             article_id as dbt_unique_key         from "ANALYTICS_DEV"."DBT_RAW_SNAPSHOTS"."RAW_STOCK_SNAPSHOT"         where dbt_valid_to is null     ),     insertions_source_data as (         select             *,             article_id as dbt_unique_key,             last_modified as dbt_updated_at,             last_modified as dbt_valid_from,             nullif(last_modified, last_modified) as dbt_valid_to,             md5(coalesce(cast(article_id as varchar ), '')          || '|' || coalesce(cast(last_modified as varchar ), '')         ) as dbt_scd_id         from snapshot_query     ),     updates_source_data as (         select             *,             article_id as dbt_unique_key,             last_modified as dbt_updated_at,             last_modified as dbt_valid_from,             last_modified as dbt_valid_to         from snapshot_query     ),     deletes_source_data as (         select             *,             article_id as dbt_unique_key         from snapshot_query     ),     insertions as (         select             'insert' as dbt_change_type,             source_data.*         from insertions_source_data as source_data         left outer join snapshotted_data on snapshotted_data.dbt_unique_key = source_data.dbt_unique_key         where snapshotted_data.dbt_unique_key is null            or (                 snapshotted_data.dbt_unique_key is not null             and (                 (snapshotted_data.dbt_valid_from < source_data.last_modified)             )         )     ),     updates as (         select             'update' as dbt_change_type,             source_data.*,             snapshotted_data.dbt_scd_id         from updates_source_data as source_data         join snapshotted_data on snapshotted_data.dbt_unique_key = source_data.dbt_unique_key         where (             (snapshotted_data.dbt_valid_from < source_data.last_modified)         )     ),     deletes as (         select             'delete' as dbt_change_type,             source_data.*,             to_timestamp_ntz(convert_timezone('UTC', current_timestamp())) as dbt_valid_from,             to_timestamp_ntz(convert_timezone('UTC', current_timestamp())) as dbt_updated_at,             to_timestamp_ntz(convert_timezone('UTC', current_timestamp())) as dbt_valid_to,             snapshotted_data.dbt_scd_id         from snapshotted_data         left join deletes_source_data as source_data on snapshotted_data.dbt_unique_key = source_data.dbt_unique_key         where source_data.dbt_unique_key is null     )     select * from insertions     union all     select * from updates     union all     select * from deletes         );

@mats-wetterlund-pierce and @RobbertDM I understand where you are coming from with wanting to standardize on TZ timestamps with an explicit UTC offset of +0000 in Snowflake (something like 2023-02-14 20:00:00.000 +0000).
As you know, our current implementation is standardized on NTZ, with an implied UTC offset of +0000 (so 2023-02-14 20:00:00.000 instead).
Changing that current default implementation would be a breaking change, so it's not something we are willing to do.
But I can show you how to use the TZ data type for snapshots using the timestamp strategy in dbt-snowflake (given the caveats called out below).
Using timestamp_tz for snapshots

⚠ Caveat emptor
I'd consider everything that follows "Free Solo" mode. It relies on internal implementation details that we haven't written about in other venues or declared as public interfaces. Although I'm guessing we won't, we could make a change in any version that would affect the functionality of the example below.

Example code for you to try

Click to toggle contents of `models/data_versions.sql`
models/data_versions.sql
{{
    config(
        materialized='table'
    )
}}

    -- 1 hour in the past
    select
        1 as table_version,
        'abc' AS data_key,
        cast(convert_timezone('UTC',                 dateadd(hour, -1, date_trunc('hour', current_timestamp())) ) as datetime) as last_modified_UTC_ntz,
        cast(convert_timezone('America/Los_Angeles', dateadd(hour, -1, date_trunc('hour', current_timestamp())) ) as datetime) as last_modified_LAX_ntz,
             convert_timezone('America/Los_Angeles', dateadd(hour, -1, date_trunc('hour', current_timestamp())) )              as last_modified_tz,
                                                     dateadd(hour, -1, date_trunc('hour', current_timestamp()))                as last_modified_ltz

    union all

    -- current hour
    select
        2 as table_version,
        'abc' AS data_key,
        cast(convert_timezone('UTC',                 date_trunc('hour', current_timestamp())) as datetime) as last_modified_UTC_ntz,
        cast(convert_timezone('America/Los_Angeles', date_trunc('hour', current_timestamp())) as datetime) as last_modified_LAX_ntz,
             convert_timezone('America/Los_Angeles', date_trunc('hour', current_timestamp()))              as last_modified_tz,
                                                     date_trunc('hour', current_timestamp())               as last_modified_ltz

    union all

    -- "delete" the previous data by not having any rows for table_version = 3

    -- 1 hour into the future
    select
        4 as table_version,
        'abc' AS data_key,
        cast(convert_timezone('UTC',                 dateadd(hour, 1, date_trunc('hour', current_timestamp())) ) as datetime) as last_modified_UTC_ntz,
        cast(convert_timezone('America/Los_Angeles', dateadd(hour, 1, date_trunc('hour', current_timestamp())) ) as datetime) as last_modified_LAX_ntz,
             convert_timezone('America/Los_Angeles', dateadd(hour, 1, date_trunc('hour', current_timestamp())) )              as last_modified_tz,
                                                     dateadd(hour, 1, date_trunc('hour', current_timestamp()))                as last_modified_ltz

Click to toggle contents of `snapshots/my_snapshot_tz.sql`
snapshots/my_snapshot_tz.sql
{% snapshot my_snapshot_tz %}

{{
    config(
      strategy='timestamp',
      unique_key='data_key',
      updated_at='last_modified_tz',
      invalidate_hard_deletes=true,
      target_schema=target.schema
    )
}}

select
    table_version,
    data_key,
    last_modified_LAX_ntz,
    last_modified_UTC_ntz,
    last_modified_ltz,
    last_modified_tz

from {{ ref("data_versions") }} as source

where
    source.table_version = {{ var("table_version", 1) }}

{% endsnapshot %}

Click to toggle contents of `macros/drop_my_snapshot_tz.sql`
macros/drop_my_snapshot_tz.sql
{# --This is only included so the example can be re-run repeatedly from the beginning #}
{% macro drop_my_snapshot_tz() %}

  {% set query %}
    drop table if exists {{ ref("my_snapshot_tz") }}
  {% endset %}

  {{ log(query, True) }}
  {% do run_query(query) %}

{% endmacro %}

Click to toggle contents of `macros/snapshot_get_time.sql`
This the piece that will allow use the timestamp_tz data type and render according the local timezone of your session when you do hard deletes.
⚠ it overrides the default implementation here, which is not currently documented as a user-facing public interface.
macros/snapshot_get_time.sql
{% macro snapshot_get_time() -%}
    current_timestamp()::timestamp_tz
{%- endmacro %}

Then run the following in your terminal:
dbt run -s data_versions
dbt run-operation drop_my_snapshot_tz
dbt snapshot --select my_snapshot_tz --vars '{"table_version": "2"}'
dbt snapshot --select my_snapshot_tz --vars '{"table_version": "3"}'
dbt snapshot --select my_snapshot_tz --vars '{"table_version": "4"}'

In between snapshots, you can query the table if you like. At the end, the valid_from/to values look like this:

Summary
The crucial thing is that the data types and semantics match between the snapshot_get_time() macro and whatever is specified as the updated_at column in your snapshot config.
The most recent thing you ran into @mats-wetterlund-pierce is that dbt is trusting that updated_at has the NTZ data type (representing UTC) and it's default implementation of the snapshot_get_time() macro used by hard deletes matches it within an NTZ data type.

The first "flaw" in your comment is:

As you know, our current implementation is standardized on NTZ

If it would be as stated there wouldn't be any issues as all timestamps would be converted with the same parameters and still be correct in relation to each other. The current implementation is a mix of TZ and NTZ attributes, requirements are undocumented and the implementation is flawed due to this and then with a approach to not correct the flaws.

Changing that current default implementation would be a breaking change, so it's not something we are willing to do.

So if there are bugs you preferer to keep them and not implement breaking changes that will improve the product?
I don't believe that is a good way to develop a product and was trying to report issues with the implementations to help out to improve the product but that seems to just been a waste of time.

I'm sorry @mats-wetterlund-pierce -- it was not my intent for you to feel like your time has been wasted!
We do take your feedback seriously and I agree that there are things we can do to improve the experience of using snapshots in dbt.
I did some writing offline and tried to outline three categories of things:

key details to add to the documentation for snapshots
criticisms of the current snapshot implementations (by you or others)
potential ideas to ease the use of snapshots

The 1st category can be implemented with improvements to the docs here, and I've opened a new issue to cover the key information:

https://github.com/dbt-labs/docs.getdbt.com/issues/2900

For the 2nd and 3rd categories, I created a new GitHub Discussion to allow for further open-ended dialogue and exploration:

https://github.com/dbt-labs/dbt-core/discussions/7018

I tried to capture and summarize things you've run into and reported. Would definitely invite your thoughts in that discussion on how snapshots could behave and how to accomplish it.


Zenbot tries to buy an amount lower then the Poloniex minimum allowed

System information

Have I written custom code (as opposed to using zenbot vanilla): no
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Zenbot version: 4.0.5
NodeJS version: 9.3.1
Python version: 2.7.9
Exact command to reproduce:"poloniex.XRP-USDT --strategy=trust_distrust --period=40m --min_periods=100 --sell_threshold=4 --sell_threshold_max=0 --reset_profit"

Describe the problem
When running the bot on Poloniex (XRP/USDT) it creates an error when trying to buy an amount of XRP which is lower then the allowed minimum on Poloniex. How can I solve this? Is it a configuration thing or a bug? Maybe make this minimum amount configurable?
My config buy_pct & sell_pct are 99
Source code / logs
The error:
{ Error: unable to buy     at /bot/node_modules/zenbot4/extensions/exchanges/poloniex/exchange.js:197:17     at Request._callback (/bot/node_modules/poloniex.js/lib/poloniex.js:79:7)     at Request.self.callback (/bot/node_modules/poloniex.js/node_modules/request/request.js:122:22)     at Request.emit (events.js:159:13)     at Request.<anonymous> (/bot/node_modules/poloniex.js/node_modules/request/request.js:888:14)     at Request.emit (events.js:164:20)     at IncomingMessage.<anonymous> (/bot/node_modules/poloniex.js/node_modules/request/request.js:839:12)     at IncomingMessage.emit (events.js:164:20)     at endReadableNT (_stream_readable.js:1062:12)     at process._tickCallback (internal/process/next_tick.js:152:19)   body: { error: 'Total must be at least 0.5.' },   desc: 'could not execute buy: error placing order' }

Looking at the update-products.sh of poloniex I think we don't get this information from them:
https://github.com/carlos8f/zenbot/blob/master/extensions/exchanges/poloniex/update-products.sh#L27
So we'd have to manually update products.json for XRP's min_total to 0.5.
Do note that then no trades would happen.

Think so too, I've tried the currencies api call on Poloniex but didn't found any minimum in there.

This issue was moved to highvelocityspace/zenbot#40


Use HEAD versions in presubmit CI

Following #770:

This is in preparation for the next stage of work where we will stop pinning versions and go back to running the presubmit on the head of everything.

Flip the switch so that presubmit CIs run bump.sh. Because now the URLREF_XXX build argument default values encode the upstream repository names + default branches, there is no need to duplicate that information in the manifest.yaml committed to this repository.
Leave the workflow for generating patches for Rosetta builds untouched for now, even though there is still some duplication.
The logic for tracking commits of pip-vcs transitive dependencies moves to pip-finalize.sh, which writes the commits used to a new /opt/manifest.d/pip-finalize.yaml. Commits pinned in the "input" manifest file are still respected.
Note that the Dockerfile changes included in #770 cause a new manifest to be written inside the containers, for example here is the file contained in the upstream-pax container from today's nightly (post-#770, pre-this-PR):
# cat /opt/manifest.d/git-clone.yaml
jax:
  url: https://github.com/google/jax.git
  tracking_ref: cbee909a3249fcf6ef9ff2f6708365ea72de29de
  latest_verified_commit: cbee909a3249fcf6ef9ff2f6708365ea72de29de
  mode: git-clone
xla:
  url: https://github.com/openxla/xla.git
  tracking_ref: cba9952b6c91b71adc18ad368ab801d3021ff49f
  latest_verified_commit: cba9952b6c91b71adc18ad368ab801d3021ff49f
  mode: git-clone
flax:
  url: https://github.com/google/flax.git
  tracking_ref: ae5d66d3ad7b54d7bd9544baade1551d4412044a
  latest_verified_commit: ae5d66d3ad7b54d7bd9544baade1551d4412044a
  mode: git-clone
transformer-engine:
  url: https://github.com/NVIDIA/TransformerEngine.git
  tracking_ref: a81786845c6d76c647d690f1148b31d207bffcc2
  latest_verified_commit: a81786845c6d76c647d690f1148b31d207bffcc2
  mode: git-clone
paxml:
  url: https://github.com/google/paxml.git
  tracking_ref: 9e25f0bd23783def8a665ebdb6805d530125b579
  latest_verified_commit: 9e25f0bd23783def8a665ebdb6805d530125b579
  mode: git-clone
praxis:
  url: https://github.com/google/praxis.git
  tracking_ref: 963189fa26647d5d216bb506317fae3d75429996
  latest_verified_commit: 963189fa26647d5d216bb506317fae3d75429996
  mode: git-clone

which can be fed back into the machinery if an old build needs to be reproduced.

@olupton : Can you point me to the place where patches are applied? Specifically, I was trying to find the place where flax patches are getting applied and didn't find it

LGTM

This is in preparation for the next stage of work where we will stop pinning versions and go back to running the presubmit on the head of everything.

Why this change? It was a request to have PR be tested with fixed dependency. Why change this now?

Because it didn't work. The previous architecture relied on the same commit of JAX-Toolbox being able to build both the nightlies and the "last known good" state of pinned versions. In reality, those two states of the world did not track closely enough to one another for that requirement to be viable.
It was annoying in other ways too, but I think the above is the fundamental point.


Coloured log output

At least on Windows click.echo_through_pager() seems to eat the ANSI colour codes. This PR "fixes" that by allowing the pager to be bypassed and use the "regular" click.echo() (which displays colour codes fine). It does this by adding a --pager/--no-pager option to the log sub-command, and a corresponding options.log_pager configuration setting.

It also makes a couple other small changes:

requires/includes PR #175 (I can't install watson otherwise...)
changes the formatting slightly of the log's daily heading to better match other output
removes an extra space that is displayed several places is a frame has no corresponding tags.

An issue has been submitted upstream to click (see https://github.com/pallets/click/issues/901) but this seems like a practical work-around.
Also, the main image on the first page of the documentation should be updated. It purportedly demonstrates the report sub-command, but the output looks like it's actually the log sub-command.
Thirdly, is there a comprehensive list of configuration file settings somewhere in the documentation?
Lastly, thanks for making watson; I'm super excited to have discovered it!

Thirdly, is there a comprehensive list of configuration file settings somewhere in the documentation?

https://tailordev.github.io/Watson/user-guide/configuration/

changes the formatting slightly of the log's daily heading to better match other output
removes an extra space that is displayed several places is a frame has no corresponding tags.

Can you please put these into a separate PR (they can go together)?

Also, the main image on the first page of the documentation should be updated.

See #177.

Ok, the other changes have been split off into separate PR's, and everything here just has to do with making the pager on the log output option. Documentation has also been added.

I see that the output of the report command is currently not sent through a pager. I think we should do the same there as for the log command and use a config option name that fits for both, e.g. use_pager.

docs/user-guide/commands.md also needs to be updated by running scripts/gen-cli-docs.py. You should also update the docstrings of the log and report functions and mention the new option.

Changes have been rebased onto master (and force-pushed here).
Pager selective support has been added to the report command. As a by-product of this, all the lines have to be gathered before they're printed, so this make make the command feel slower to some users.
The configuration option for both has been consolidated to options.pager.
Doc strings for both log and report have been updated. Documentation has also been updated using the script.

Lines are now printed in "real time" if printing is direct to the terminal, rather than waiting until end.

Regardless of this PR, I really think we should move the logging / reporting functionality into a separate command line script at some point.

All changes as requested have been submitted.
Moving logging/report to a separate module is beyond what I set out to do here, so I'll leave it for a separate PR/refactoring effort.

@MinchinWeb: Thanks for hanging in there. Great work!

Thanks! Glad I can do my part to make the world a little nicer!


successPercentage attribute of @Test does not work correctly

I'm using testng-6.8, while running a multiple invocation test, I found that the "successPercentage" of @Test annotation is not working correctly.
Reproducer:
===build.xml===
...
<target name="testRepeat">
    <testng classpathref="test.cp" outputDir="out"
      haltOnFailure="false" verbose="2" >
      <xmlfileset dir="." includes="repeat.config.xml"/>
    </testng>
</target>
...

===repeat.config.xml===
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="repeat-suite" verbose="1" >
  <test name="repeat-test" >
    <classes>
       <class name="testng.samples.RepeatTest"  />
    </classes>
  </test>
</suite>

===RepeatTest.java===
package testng.samples;

import org.testng.annotations.Test;
import org.testng.Assert;

public class RepeatTest {

  int count = 0;

  @Test
  public void normal() {
    System.out.println("repeat..." + (++count));
  }

  @Test(invocationCount = 30, successPercentage=98)
  public void successRate() {
    System.out.println("repeat..." + (++count));
    if (count > 15) {
      Assert.fail("fail with count > 15");
    }
  }
}

According to http://testng.org/doc/documentation-main.html#annotations, if  "successPercentage" is specified, testng should fail the test if pass percentage is smaller than expected. However, if you run above reproducer, you will see it prints below output, but never sends a FAILURE event to listeners. It only works when percentage is set to 100, or is not set.
This seems like a regression, I did no see the issue in testng-5.8.
===output===

   [testng] PASSED: successRate
   [testng] PASSED: successRate
   [testng]
   [testng] ===============================================
   [testng]     repeat-test
   [testng]     Tests run: 31, Failures: 0, Skips: 0
   [testng] ===============================================
   [testng]
   [testng]
   [testng] ===============================================
   [testng] repeat-suite
   [testng] Total tests run: 31, Failures: 16, Skips: 0
   [testng] ===============================================
   [testng]

Notice that failure count in repeat-test section is 0, and it did not log any FAILURE even it does not meet the expected percentage.
Regards,
Gan

This is a very old issue but still standing, just tested locally. Any idea if is going to be addressed or any workaround?

@cbeust : this is biting us when we use TestNG together with Jenkinsfile-based builds. Any thoughts about how hard it'd be to fix, or appetite for accepting a PR?

Always happy to accept a PR, Patrick!

I am also seeing behavior where tests that succeed below the specified success % are not causing a failure in the suite.
Currently using TestNG v6.10
This seems like a fairly old ticket, maybe there has been a fix for this since it's been open? Are there any plans to fix this? Thanks

Revisited this issue using TestNG 7.1.0. Works fine and cant reproduce the problem.
Java class
package com.rationaleemotions;

import org.testng.Assert;
import org.testng.annotations.Test;

public class RepeatTest {

  int count = 0;

  @Test
  public void normal() {
    System.out.println("repeat..." + (++count));
  }

  @Test(invocationCount = 30, successPercentage = 98)
  public void successRate() {
    System.out.println("repeat..." + (++count));
    if (count > 15) {
      Assert.fail("fail with count > 15");
    }
  }
}

suite file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="309_suite" parallel="false" configfailurepolicy="continue">
  <test name="309_test">
    <classes>
      <class name="com.rationaleemotions.RepeatTest"/>
    </classes>
  </test>
</suite>

Output
[INFO]
[INFO] Results:
[INFO]
[ERROR] Failures:
[ERROR] com.rationaleemotions.RepeatTest.successRate
[INFO]   Run 1: PASS
[INFO]   Run 2: PASS
[INFO]   Run 3: PASS
[INFO]   Run 4: PASS
[INFO]   Run 5: PASS
[INFO]   Run 6: PASS
[INFO]   Run 7: PASS
[INFO]   Run 8: PASS
[INFO]   Run 9: PASS
[INFO]   Run 10: PASS
[INFO]   Run 11: PASS
[INFO]   Run 12: PASS
[INFO]   Run 13: PASS
[INFO]   Run 14: PASS
[ERROR]   Run 15: RepeatTest.successRate:19 fail with count > 15
[ERROR]   Run 16: RepeatTest.successRate:19 fail with count > 15
[ERROR]   Run 17: RepeatTest.successRate:19 fail with count > 15
[ERROR]   Run 18: RepeatTest.successRate:19 fail with count > 15
[ERROR]   Run 19: RepeatTest.successRate:19 fail with count > 15
[ERROR]   Run 20: RepeatTest.successRate:19 fail with count > 15
[ERROR]   Run 21: RepeatTest.successRate:19 fail with count > 15
[ERROR]   Run 22: RepeatTest.successRate:19 fail with count > 15
[ERROR]   Run 23: RepeatTest.successRate:19 fail with count > 15
[ERROR]   Run 24: RepeatTest.successRate:19 fail with count > 15
[ERROR]   Run 25: RepeatTest.successRate:19 fail with count > 15
[ERROR]   Run 26: RepeatTest.successRate:19 fail with count > 15
[ERROR]   Run 27: RepeatTest.successRate:19 fail with count > 15
[ERROR]   Run 28: RepeatTest.successRate:19 fail with count > 15
[ERROR]   Run 29: RepeatTest.successRate:19 fail with count > 15
[ERROR]   Run 30: RepeatTest.successRate:19 fail with count > 15
[INFO]
[INFO]
[ERROR] Tests run: 2, Failures: 1, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.197 s
[INFO] Finished at: 2020-03-14T12:14:16+05:30
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M4:test (default-test) on project github_309: There are test failures.
[ERROR]
[ERROR] Please refer to /Users/krmahadevan/temp/github_309/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[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/MojoFailureException

Test project that was used.
github_309.zip


feature request

The plugin is great despite being completely free. But it is very raw, which is why few server owners use it.
I suggest adding:

Most important! Custom sounds. which can be played while driving a vehicle, flying a helicopter, when a player gets into a helicopter or vehicle. Also, the ability to add your own sound for each transport.

Refueling the vehicle with the /vehicle refuel  command. You can use this command only when the driver is sitting in the vehicle (Fueling the vehicle while holding it in your hand is a very, very bad idea, because not everyone allows server owners to allow players to take vehicles into inventory for very important reasons.)

Open the trunk of a vehicle with the /vehicle baggage command. This command will be available only to the driver of the transport, and it can only be opened with it while sitting in the transport (Of course, opening the trunk of a transport with SHIFT + CLICK is convenient, but this option also has a place to be.)

Add support for HEX colors, add the ability to customize the item of transport in the inventory (Add Lore, Hide attributes and flags, and so on.)

Most important! Destruction of a vehicle after its HP reaches 0. This is a very important feature, because the vehicle now just breaks down and stops working. What should server owners do if they do not allow players to take vehicles into their inventory? Add an explosion to a vehicle after it hits 0 HP

Add PlaceholderApi placeholders. This is very important, because many players want to display in ScoreBoard, ActionBar, bossbar. information about the speed of the transport, how many passengers, how much fuel is left, and so on.
It is worth adding placeholders such as:

Displays the speed and maximum speed of the vehicle in which the player is sitting.

Display of the remaining amount of fuel in the vehicle.

Displaying the number of passengers in transport

Display in which transport the player is. and in what place (driver, passenger)

Add the ability to open/close vehicles with the /vehicle lock command. This command will be available only to the driver of the vehicle, and it will be possible to open or close it only when the driver is sitting in the vehicle (Again, it’s nonsense to open and close the vehicle that you have in your hand, this is nonsense! Not all server owners allow you to take vehicles into inventory)

More settings in the transport config. You can not adjust the size of the trunk, you can not adjust the fuel consumption.

Add the ability to translate more strings. Some plugin menus cannot be translated without tampering with the code. The same kofferbak.

Add more information about the transport in which you sit, now only the amount of fuel is displayed, why not add a display of speed, passengers, type of transport, and so on. Also, the ability to display transport information in the ActionBar and placeholders (which I wrote about above)

BUG! Fix a bug with a helicopter. Its blades simply fall off when the pilot leaves it.

Add new types of transport such as: Boats, Planes, Trains

Add the ability to turn the car only in motion. It is illogical somehow that the car turns around in place.

Add the ability for helicopters to "hover" in flight, as it is in reality. The button for this can be used double shift.

Adding the Events API to the plugin will free up plugin developers and scripters to execute some code when the player gets into or out of the vehicle.

Please consider these ideas and with a 97% Guarantee I can say that after these ideas your plugin will become popular.

Hey, those are all great ideas, although some of them are very difficult to do.

Take a look at the branch development and the PR #39. Some of these have already been implemented and are expected in the next version (e.g. 17)!
We'll definitely think about the ability to use commands not only while holding a vehicle, but also while sitting in one.
Hex colours are not supported everywhere (e.g. I believe that bossbar still uses colour names) + we do support versions below 1.16 which makes it even harder to implement such feature.
Events API, and API overall is something we've been working on lately and has become our priority. I've myself have been redesigning the code and a lot has changed already.
Custom sounds have been on the waitlist for a while now, I won't say more.
For no 12 - such settings can be edited individually in vehicleData.yml (and I am not certain whether all options are available in the /vehicle edit command - that may be what you mean).
For suggestions 7-10, where should the information be displayed in your opinion?

Thanks for opening this issue. I've already seen most of these on the MTV's discord server, but still. As I have already mentioned, the plugin is free and we're gradually adding new features but we can't keep up with all of them. Also, suggestions from MTV's patrons have higher priority.
Last of all, the plugin is open source so anyone can open a pull request with one of these features.
TL;DR;
We're working on some of these, we may work on some of these, but there are so many that it may take a while. Take a look at the branch development and the PR #39.

For suggestions 7-10, where should the information be displayed in your opinion?
In the bossbar or actionbar. In the same place where the amount of fuel is displayed.
Thank you for answering me, looking forward to new updates and donate when it will be possible to open Paypal :)

Hey if you want you could support our project, we give you more priority on suggestions and exclusive support (depends on the tier) [https://patreon.com/mtvehicles]

This issue has not been forgotten! I've edited your initial message to clearly show what's been added! See #72 for the newest additions.


Bug: Hydration only activates in Chrome

To determine whether the component requires rendering or mere hydration, this code checks for existence of this.shadowRoot before attaching one. Chrome does support this approach, but Webkit's docs don't specify support for this, instead relying on ElementInternals. Since chrome does also support this, I would recommend switching the decision code to the following:
const internals = this.attachInternals()
if (isSSRTemplate(node) && internals.shadowRoot) {
  // hydrate
} else {
  // render
}

Anyways this needs to be further tested on Safari (as of writing this issue, I haven't upgraded my Safari to a version supporting DSD to test the feature).

Upon testing in latest Chrome and Safari, this is a table of how stuff works:

this.shadowRoot
internals.shadowRoot

shadowroot="open"
Chrome:✅  Safari:❌
Chrome:✅  Safari:❌

shadowroot="closed"
Chrome:❌  Safari:❌
Chrome:✅  Safari:❌

shadowrootmode="open"
Chrome:✅  Safari:✅
Chrome:✅  Safari:✅

shadowrootmode="closed"
Chrome:❌  Safari:❌
Chrome:✅  Safari:✅

Basically, shadowroot is not a standard attribute and only Chrome supports it, while shadowrootmode does the same and is supported by both. Additionally, an open shadow root can be checked via this.shadowRoot and by checking the internals, while a closed shadow root can only be checked via the internals.
This means the current implementation actually works if the HTML is serialised with shadowrootmode="open". However, to get best overall support, I will switch it to checking the internals instead.


[docker] update debian base images.

Motivation
Monthly debian drop of new base images,  not a fully reproducible build, but better than nothing.
Have you read the [Contributing Guidelines on pull requests]
Yes
Test Plan
CI
Related PRs
All open dependabot debian prs will be automatically closed when this lands.
If targeting a release branch, please fill the below out as well

Justification and breaking nature (who does it affect? validators, full nodes, tooling, operators, AOS, etc.)
Comprehensive test results that demonstrate the fix working and not breaking existing workflows.
Why we must have it for V1 launch.
What workarounds and alternative we have if we do not push the PR.

/land


Remove dead reference

Summary
jasmine.matchersUtil is not included on this fork of jasmine, so undefined is being passed to the custom matcher. We make sure we remove that dead reference and we add a comment on top, so if people looks why they are not getting the matching utilities passed, they get a hint on how to proceed and don't get confused.

#yolo not waiting for CI today. Thanks Miguel.

Also, @dmitriiabramov is currently killing all this code entirely. I'm super excited.

Codecov Report

Merging #3811 into master will not change coverage.
The diff coverage is 0%.

@@           Coverage Diff           @@
##           master    #3811   +/-   ##
=======================================
  Coverage   57.64%   57.64%
=======================================
  Files         194      194
  Lines        6780     6780
  Branches        6        6
=======================================
  Hits         3908     3908
  Misses       2869     2869
  Partials        3        3

Impacted Files
Coverage Δ

packages/jest-jasmine2/src/jest-expect.js
0% <0%> (ø)
: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 7ed15e8...f2030ee. Read the comment docs.

@cpojer, is there an intent to remove support for Jasmine matchers altogether?  Is that what you meant by removing this code altogether?
What's going to be the alternative for trivially supporting matchers in both Jest and Jasmine?
It seems like folks are leaning toward writing a matchers package and then writing a package for jest and another for jasmine to transmogrify their matchers into jest and jasmine structures.
It seems like there's value in supporting both structures.

Jest hasn't shipped with Jasmine matchers for a while. We ship our own matchers which mostly match Jasmine's default set of matchers as well.
@aaronabramov knows more.

the structure is mostly the same and it's pretty easy to write an adapter that will reshape the raw matchers to either jasmine or jest format. The only missing thing will be the equality utilities and such (i'm not sure exactly what jasmine supports) but that should not be a big issue

That makes sense.  A Jasmine-Jest matcher adapter is pretty simple (the one currently in Jest does the trick nicely . . . except for the matcher context of course).
And it makes perfect sense to say, "if it's not Jasmine's job to support Jest compatible matchers then it's not Jest's job to support Jasmine compatible matchers."
The community seems to be covering the gap by including my-custom-matchers-jasmine and my-custom-matchers-jest with every my-custom-matchers project.  Which is too bad really.
On the other hand, it probably would be worthwhile to build a matcher adapter package anyhow.  That package could attempt to establish a common custom matcher structure but also transmogrify other matcher packages between Jasmine, Jest, and others.

It's just so handy when you're used to Jasmine, you're trying to learn Jest, and you have Jasmine matchers you like that aren't available for Jest yet. :)
I suppose if I had my way, I wish I could see the adapter stick around a while, but pass the matcherContext in lieu of jasmine.matcherUtils (which will at least get equals . . . https://github.com/facebook/jest/blob/b3d944e79699fb9a4f399b163b5f0a64cdbf44c4/packages/jest-matchers/src/index.js#L178) when applying the positive and negative compares (https://github.com/facebook/jest/blob/21a2b7aaee366af7ed87ae78c5b2d58cf3f5fb86/packages/jest-jasmine2/src/jest_expect.js#L50-L51).
Then again, it would surely violate the principle of least surprise to find a jasmine matcher expecting jasmine utilities and getting a jest matcher context.

it might make sense to build a "write once, export for jest/jasmine/chai/etc..." package and maybe add another wrapper there that can pass equals that will eventually be invisible for Jest. I think we did something like this internally at fb for some of the old tests


IE9

Your current demo HTML has this downgrade tag,
<meta http-equiv="X-UA-Compatible" content="IE=8">
Which forces IE9 to use an IE8 engine and then nothing works.
Changing this to,
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
Will make it work just fine in IE9.

@holloway thanks!


[WiP] reva-storage-nextcloud

Will continue and probably be able to finish this tomorrow

invalid memory address or nil pointer dereference

I reset the nextcloud driver code to the localhome driver code and the nil pointer error is gone now. Will continue working on this tomorrow.


Wrong Battery LOW report homematic IP HmIP-SMO-A-2

Describe the bug
Battery LOW report from homematic IP BWM HmIP-SMO-A-2
The battery datapoint reports 3 V and Low_Bat is false. But the Adapter has the device in the battery low list.
hm-rpc.2.XXXXXXXXXXXX.0.LOW_BAT false
hm-rpc.2.XXXXXXXXXXXX.0.OPERATING_VOLTAGE 3V
device-watcher.0.devices.lowBatteryList [{"Device":"BWM Haustuer","Adapter":"Homematic RPC","Battery":"3V"}]
Expected behavior
Not in Battery Low report with 3V

Hello @rookie50
Is this issue related to the new update or was it in a earlier version also wrong?

It's a new device, so I can't say.

Ok, do the device have the lowbat_alarm datapoint?

Hi, yes here is a screenshoot.

@rookie50 ich habe versucht es den Fehler nachzubilden aber "leider" funktioniert es bei mir so wie es soll.  Das hat bei einen anderen User im Forum auch geholfen wo die Batterieerkennung nicht richtig funktioniert hat.

Can't reproduce and no answer from user. So it will be closed now.


awssqs: move to contrib

can you merge? sorry, some conflicts happened

This one has grown too stale, I didn't have time to keep it up to date in the past weeks. I will try and retake it from scratch soon.


Adding back smartXchange to list of social networking rails applications

@speterlin merged again. Thanks!

Haha thanks! What is the best way to get noticed on Hackernews and Reddit?
Sebastian
On Sun, Nov 6, 2016 at 5:43 PM, Ekrem Karaca<EMAIL_ADDRESS>wrote:

@speterlin https://github.com/speterlin merged again. Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ekremkaraca/awesome-rails/pull/30#issuecomment-258692981,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEyvQx7hJujvjbUFPjL5whHk88PzIpFrks5q7gOYgaJpZM4Kqmix
.

--
Sebastian Peterlin
IE IMBA Graduate 2016
+34 684 06 71 83

Posting your project to proper subreddit (probably on https://reddit.com/r/rails) or hackernews site (https://news.ycombinator.com/) as soon as possible is the best way I think. Without posting, you won't be noticed :(


RDKTV-18414: Voice Guidance not announcing activate URL properly

Reason for change : The replaceIfIsolated() will replace "/" with "or"
if the text have a punctuation character before or after it. Due to this
the URL scheme "://" will change into ":or/" which affecting the output of TTS.
To solve the issue a new function isUrlScheme() is created. if
the return value of this function is true then / will not replace by or.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@AravindMp22 Should we make this change in recent sprint 2208?

Closing older PRs. Pls bring changes to latest sprint.


Incorrect docs link after meltano add transformer dbt

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/2749
Originally created by @aaronsteers on 2021-05-08 04:35:49

After installing dbt, the docs link provided is https://meltano.com/docs/transforms.md. The correct link is: https://meltano.com/docs/transforms.html
ajsteers@ajs-macbook-pro meltano % meltano add transformer dbt
Transformer 'dbt' already exists in your Meltano project
To add it to your project another time so that each can be configured differently,
add a new plugin inheriting from the existing one with its own unique name:
        meltano add transformer dbt--new --inherit-from dbt

Installing transformer 'dbt'...
Installed transformer 'dbt'

To learn more about transformer 'dbt', visit https://meltano.com/docs/transforms.md

View 2 previous comments from the original issue on GitLab


Update old-api

Bump deps and clean up a couple clippy lints

@roderickvd I think the failure may be related to the rust version used for CI as everything builds fine on my machine with the current rust stable version. Can we bump it to 1.61?

Ok now I'm getting:
error: failed to compile `cargo-hack v0.5.22`, intermediate artifacts can be found at `/tmp/cargo-installKSXt8B`

Caused by:
  failed to select a version for the requirement `toml_edit = "^0.15"`
  candidate versions found which didn't match: 0.[14](https://github.com/librespot-org/librespot/actions/runs/3349614252/jobs/5549784083#step:9:15).4, 0.14.3, 0.14.2, ...
  location searched: crates.io index
  required by package `cargo-hack v0.5.22`

Is CI broken on this branch?

Stable, beta and nightly builds fine, with the fairly normal network error (that has nothing to do with the build) on stable.

Much better. The only failed test is a network error. What say you @roderickvd?

I'm not sure what you'd call this? It changes really nothing from the perspective of a user or consumer other than some potential bug fixes in librespot's deps. v0.4.3?

If there isn't a issue in librespot that these new deps fix I'm not sure a release/tag makes sense, even a minor one. I've certainly never done this.

Thanks for the update. I’m with @kingosticks  on the release. Certainly a Rust edition change to 2021 is breaking and warrants a new major release. But we already have a v0.5 target branch with updated crates and Rust edition so this PR seems a bit stuck between a rock and a hard place.

If there isn't a issue (edit: or security vulnerability) in librespot that these new deps fix I'm not sure a release/tag makes sense, even a minor one. I've certainly never done this.

So you don't periodically update the deps of the software you write?
You let it just sit and rot? Software does not age like fine wine.

Thanks for the update. I’m with @kingosticks on the release. Certainly a Rust edition change to 2021 is breaking and warrants a new major release. But we already have a v0.5 target branch with updated crates and Rust edition so this PR seems a bit stuck between a rock and a hard place.

The edition can prob be changed back to 2018. But other than that every now and then until dev is released we're going to need to bump the deps. Unless you want this branch to basically be abandoned ware?

There. THat doesn't change the edition nor the MSRV. It just changes the version used by CI.

That should constitute a "patch" level version bump. Nothing in librespot's API, MSRV nor Edition changes.

We really should do this every so many months on a regular schedule for our current releases so they don't rot.

Whatever I guess. If the condenses is to let released version rot and to tell people to use dev if they want up to date crates then so be it I guess. I'll just run cargo update in my build script so at least my users get the dep bump and the potential bug and security fixes.

I'm not stuck in the world of cargo pinning particular versions, no. But even if I was, assuming the software still works (no issues or vulnerabilities) then no, zero update required and no "rot". Software doesn't rot like food.

I'm not stuck in the world of cargo pinning particular versions, no. But even if I was, assuming the software still works (no issues or vulnerabilities) then no, zero update required and no "rot". Software doesn't rot like food.

There are 3 options:

Leave it as is to let it potentially rot.

Meticulously and constantly pick though librespot's deps and update when needed.

Run run cargo update every now and then and update the current librespot version with a patch release.

I don't care though. I'm not fighting the pushback. Do what you want.

Sorry, why can't we just merge the update and not cut a release? Why is this all or nothing?

Sorry, why can't we just merge the update and not cut a release? Why is this all or nothing?

So you want to not include the updates for projects that pull in librespot via cargo? What would even be the point of merging the update then?

It doesn't matter to me. I don't pull in librespot via cargo and as mentioned I can just run cargo update in my build script. So I'm going to mute this convo. If anyone wants to be a responsible maintainer they can replicate this PR pretty easily.

Whatever I guess. If the condenses is to let released versions rot and to tell people to use dev if they want up to date crates then so be it I guess.

I don't know man :shrug: I was fine merging your latest commit but minutes later you pulled the plug? You can't expect me to reply by the minute, you know. I was at the hospital visiting my wife.

If anyone wants to be a responsible maintainer they can replicate this PR pretty easily.

Thanks for the vote of confidence :-1:
For someone who volunteers his time and only ever tries to be friendly and sensible, I find these rage quits or whatever they discouraging and undeserved. Second time in a row this week.
I am about done policing MSRV, SemVer and release policies :wave:

I don't know man  I was fine merging your latest commit but minutes later you pulled the plug? You can't expect me to reply by the minute, you know. I was at the hospital visiting my wife.

It's not about the lack of immediate response it's about the amount of pushback for a very basic and responsible thing.

Thanks for the vote of confidence -1

That was more to @kingosticks who loves to chime in but doesn't actually commit any code at all.

For someone who volunteers his time and only ever tries to be friendly and sensible, I find these rage quits or whatever they discouraging and undeserved. Second time in a row this week.

I also volunteer my time. This was me trying to upstream something extremely basic and common sense and getting way to much pushback. This was not a rage quit. This was me seeing that it wasn't worth my time as I can do it myself in Raspotify. I simply wanted all librespot consumers benefit.

I looked at the other PR. He is right IMHO. If this is happening a lot it may not be us. It's probably you.


perplexity.compute - Add args to pass model and tokenizer objects instead of model_id

Hello,
I am new to the project, so I hope my request is a sensible one.
It looks like when we use the compute method for Perplexity, we can only specify a model through its model_id, which is used also to load the tokenizer.
Is there any particular reason why it is not possible to pass as arguments to the method the model object and the tokenizer object themselves instead of the model_id? I think that could help, for example when the tokenizer has some user-added tokens or when the model to be used is fine-tuned (e.g., currently, a PeftModel could not be used, but passing the model object itself that should not be a limitation anymore).
Thanks for your answer and for your amazing work.

Hello,
I am new to the project, so I hope my request is a sensible one.

hello，I am also a new to the project.I'd like to ask if you've implemented an assessment of the perplexity of the local model


When creating tag, append text to tag value

I'm using multiple select dropdown list with search and tag options. I would like to do two things.

When the tag is created, for example "test42", that the value of that tag becomes "test42-tag".

Is it possible to convert text to tag when the is typing and clicks away from the input field? I tried few things but I haven't managed to get it working.

When the tag is created, for example "test42", that the value of that tag becomes "test42-tag".

http://stackoverflow.com/q/14577014/359284#30021059, you can do this by modifying the id in the createTag function.

Is it possible to convert text to tag when the is typing and clicks away from the input field?

https://select2.github.io/options.html#can-i-select-the-highlighted-result-when-the-dropdown-is-closed, the selectOnClose method sounds like what you are looking for.

This appears to be more of a usage question than a bug report or common feature request.  As we continue to keep the Select2 issue tracker geared towards these two areas, bug reports and common feature requests, we are redirecting usage questions to other communities such as the mailing list, IRC, or Stack Overflow.

@kevin-brown there is no one replying on the IRC, ever.

@kevin-brown I'm sorry for using this as a support chat, but there is no reference to this question online.
How to activate Tags via custom adapter?
I've tried using this:
$.fn.select2.amd.require([
        "select2/utils",
		"select2/selection/multiple",
		"select2/data/tags",
		"select2/dropdown",
        "select2/dropdown/attachContainer",
        'select2/dropdown/minimumResultsForSearch',
    ], function (
			Utils,
			MultipleSelection,
			Tags,
			DropdownAdapter,
			AttachContainer,
			minimumResultsForSearch
		) {

        var CustomAdapter = Utils.Decorate(
			Utils.Decorate(DropdownAdapter, minimumResultsForSearch, MultipleSelection), AttachContainer, Tags
		);

        $('select').select2({
			dropdownAdapter: CustomAdapter,
			placeholder: "Select an item",
			createTag: function (params) {
				return {
					id: "q-" + params.term,
					text: params.term,
					newOption: true
				}
			}
        })

However, it's not working.
It is semi-working, when I include tags: true, inside select2(), but only to a point. When you input text, tab key is not converting text to tag. Also, after tag creation, text remains inside the input field.
btw. Just a side note, the "patch" for deleting tags with backspace https://github.com/select2/select2/issues/3354#issuecomment-132389291 somehow its not working for me, at all.


Format of CSV for OneDrive migration?

What is the CSV format for OneDrive. I have column1 and column4 but what about column 5, 6. Users start with any empty Onedrive. I can't be expected to first create a folder in the users' oneDrive and then migrate?
Eg. I have this,
X:\home\janedoe,,,https://contoso-my.sharepoint.com/personal/janedoe_contoso_on_ca,",,
Tried this too,
X:\home\janedoe,,,https://contoso-my.sharepoint.com/personal/janedoe_contoso_on_ca,","Documents",
.... and tried 'Shared Documents' too.
HELP, and thanks

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

ID: 4ade8182-a488-4d5e-e8d9-8d675ed90c0b
Version Independent ID: f009c3da-f902-3304-5f18-7b544b8b77c4
Content: How to format your CSV file for data content migration
Content Source: SharePoint/SharePointServer/migrate-to-sharepoint-online/how-to-format-your-csv-file-for-data-content-migration.md
Service: unspecified
GitHub Login: @JoanneHendrickson
Microsoft Alias: jhendr

@cdebbo - sorry for the delay on this and that it has gone stale in the documentation issues. I know it has been a very long time so I hope you have this resolved. If not, the best way forward is if you can open a service ticket in your tenant so this can get resolved ASAP.
Based on outcome let me know if it is something that can be called out in the docs.
Here is a quick video on opening a ticket: https://www.youtube.com/watch?v=puuOy0sEg1Y
If you don't mind please keep us posted here on the resolution and I really want to get this information you are discovering back into the docs.

What's the status on this?  The documentation is still pretty stale and I'd love to use this feature also.

@solinear - let's re-open the issue. @tseward - would this be one you could work on? @AndreaBarr - FYI.

Hello, thanks for posting this issue!  I noticed in both of the lines that you said you tried, you had quote marks in incorrect spots (this is assuming the things you said you tried were exactly as shown in the original post). In each example shown, in the 5th column you have a singular quote mark ( " ).  You do need to provide a library name.  If you are still having issues with this, feel free to submit a ticket as listed above or comment back here, thanks!


Updates to work with Evergy API

fixes urls to work with Evergy
makes updates for non-working bs4 stuff
adds ability to query by month, day, or hour by setting query_scale to m, d, or h

this should fix #2

@patrickjmcd Thank you for contributing! I appreciate your help.
I tested this with my account and it all looks good.

Awesome! Check out my repo kcwater for the water equivalent!


Broken link

The link to example Sitemap is broken

I'm moving this issue over to the other repo.


disable lint rule

Codecov Report

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

@@           Coverage Diff           @@
##           master     #113   +/-   ##
=======================================
  Coverage   98.04%   98.04%
=======================================
  Files           7        7
  Lines         205      205
=======================================
  Hits          201      201
  Misses          4        4

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 b2ec5ce...18733ad. Read the comment docs.


[Task]: Fix flakiness of cypress/e2e/Regression/ServerSide/OnLoadTests/JSOnLoad4_Spec.ts

SubTasks
Details are present in https://github.com/appsmithorg/appsmith/issues/30271
Dashboard Link: https://internal.appsmith.com/app/cypress-dashboard/run-details-65890b3c81d7400d08fa9ee5?branch=master&workflowId=7500777654&attempt=1&selectiontype=test&testsstatus=failed&specsstatus=fail

Hey team! Please add your planning poker estimate with Zenhub @AmanAgarwal041 @carinanfonseca @rishabhrathod01 @rohan-arthur @sneha122

This test is consistently passing in 7 CE and 7 EE runs.
https://github.com/appsmithorg/appsmith/pull/35265
https://github.com/appsmithorg/appsmith/pull/35265
Removing this from the list of flaky tests.
cc: @yatinappsmith @RakshaKShetty @ApekshaBhosale @rohan-arthur


[Request] Remove non-error console logs in production

Hello, I get this message in my console: "[i18n]: Promises has been purged.", (which has a grammatical error lol, should be "have" not "has") from here: https://github.com/sveltekit-i18n/base/blob/2cd00c8aa9f9d2549d4f514aee2e73c1edc24e5c/src/index.ts#L23. Is there a way to disable this? Maybe a toggle for the release build? Not a big deal at all, but I like to keep my console clean if all is running smoothly.

Hah, sure!😂

@PeterNjeim 2.1.1 released!


Moxy with Kotlin

Is Moxy normally work with Kotlin?
I have
@InjectViewState
class MainPresenter : MvpPresenter<MainView>() {

    private var mSubscriptions: CompositeSubscription? = null
    lateinit var mNetworkManager: NetworkManager
    lateinit var mDbManager: DatabaseManager
    lateinit var mRxFactory: RxSchedulersFactory

    init {
        mSubscriptions = CompositeSubscription()
        App.appComponent.inject(this)
    }

class MainActivity : MvpAppCompatActivity(), MainView{

    @InjectPresenter
    lateinit var mPresenter: MainPresenter

open class MvpAppCompatActivity : AppCompatActivity() {

    lateinit var mMvpDelegate: MvpDelegate<out MvpAppCompatActivity>

    init {
        mMvpDelegate = MvpDelegate<MvpAppCompatActivity>(this)
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        mMvpDelegate.onCreate()
    }

    override fun onStart() {
        super.onStart()
        mMvpDelegate.onStart()
    }

    override fun onSaveInstanceState(outState: Bundle?) {
        super.onSaveInstanceState(outState)
        mMvpDelegate.onSaveInstanceState(outState)
    }

    override fun onStop() {
        super.onStop()
        mMvpDelegate.onStop()
    }

    override fun onDestroy() {
        super.onDestroy()
        mMvpDelegate.onDestroy()
    }
}

   compile 'com.arello-mobile:moxy:0.4.3'
   compile 'com.arello-mobile:moxy-android:0.4.3'
   kapt 'com.arello-mobile:moxy-compiler:0.4.3'

and presenter in activity is null( what can be wrong?

@itslayo everything looks right. Which version of kotlin do you use? I know one working live sample: https://github.com/ImangazalievM/Notelin

Kotlin ver 1.0.1-2
I have another activity in my project where everything works. All the same as for MainActivity. I don't understand how to debug this issue(

@itslayo try to update to last version of kotlin and kotlin plugin. @ImangazalievM had a similar problem and kotlin update help him.

That helped)) Thanks!


CANAndCoderSwerve addition

This adds the CANandCoderSwerve absolution encoder type, adds an option for using it in the config files and sets a small delay in the burnFlash method to fix a config issue we had.

Switched to conversion functions.


Per-instance logging context

While working on https://github.com/Azure/azure-sdk-for-java/pull/25671 I found a few gaps  not covered in structured logging yet:

support for global context (i.e. ability to attach a few key-value-pairs to logger instance that will be populated on all log records produced with this logger). In case of AMQP it's always connectionId and sometimes entityPath or linkName.
support for Object values (with deferred toString() call to serialize them)
log(RuntimeException)
log(Supplier<String> message, Throwable)

This PR fills these gaps.
I'm also entertaining the idea of separating context-aware logging to a new ContextualLogger class to reduce some noise and have clearer expectations for each logger. LMK what you think
TODO:

[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.

API changes have been detected in com.azure:azure-core. You can review API changes here
API changes
+         public ClientLogger(Class<?> clazz, Map<String, Object> context)
+         public ClientLogger(String className, Map<String, Object> context)
+         public LoggingEventBuilder addKeyValue(String key, Object value)
+         public RuntimeException log(RuntimeException runtimeException)
+         public void log(Supplier<String> messageSupplier, Throwable throwable)

@JonathanGiles @srnagar can you please take another look?


Show profiles in task bar jump list when not running

Description of the new feature/enhancement
Creating separate task bar shortcuts for each profile is tedious and takes up a lot of screen space, so it would be nice if the application would show the list of profiles in the jump list when pinned to the task bar, allowing users to open a terminal window with any profile, not just the default profile.

In case my terminology is outdated, I mean a list of profiles to open in a terminal window similar to Edge's task list.

/dup #576 we just landed this for 1.4, which is coming out soon (TM)


SRS - External Interfaces

Like the other interfaces sections, but as a list with as much detail as we can get.

Section deleted due to redundancy


Grpc.Tools: Use x64 protoc on macOS arm64

As a workaround until #25755 is resolved.
@markdroth

@jtattermusch Thank you, can you give this new version a look?

I started an adhoc run of  package build and distribtest: https://fusion2.corp.google.com/invocations/6aedd5f1-57dc-443f-a335-f2320090f7e2/targets
I will post results later.

@apolcyn  please add another Gooogler's review.

One more run of distribtests:
https://fusion2.corp.google.com/invocations/d7c3d66c-f92c-4a78-9bba-75f24fcde425/targets

Distribtests are green: https://fusion2.corp.google.com/invocations/7a23e587-b8cc-4512-a8dd-8ca0bcaecef3 (except of distribtest.python_linux_x64_ubuntu1604, which is unrelated and is being fixed).


[doc] cli document

Component
docs
Problem or Necessity
need to write cli document

https://github.com/nesticat/engine/blob/develop/doc/IT-CHAIN-CLI.md
이런식으로 작성해 나가면 될까요?..

넵!! 좋은것 같아요!


bug

Description
Creating datashards for a Classification problem, you get an error in the to_example method in generator_utils.py.
It is because, for a binary classification problem, the target is an Int but in to_example() method,  it expected a list for v.
...

The generator to generator_utils needs to have all features be a list.
See Text2ClassProblem as an example of a classification problem definition: https://github.com/tensorflow/tensor2tensor/blob/8b312b55e47927d54860f88b26fb5f1c0727049b/tensor2tensor/data_generators/text_problems.py#L474


SVG isn't imported with proper width/height

Example SVG:
<svg xmlns:svg="http://www.w3.org/2000/svg"
  xmlns="http://www.w3.org/2000/svg"
  version="1.0"
  width="400"
  height="380">
  <path d="M 151.34904,307.20455 L 264.34904,307.20455 C 264.34904,291.14096 263.2021,287.95455 236.59904,287.95455 C 240.84904,275.20455 258.12424,244.35808 267.72404,244.35808 C 276.21707,244.35808 286.34904,244.82592 286.34904,264.20455 C 286.34904,286.20455 323.37171,321.67547 332.34904,307.20455 C 345.72769,285.63897 309.34904,292.21514 309.34904,240.20455 C 309.34904,169.05135 350.87417,179.18071 350.87417,139.20455 C 350.87417,119.20455 345.34904,116.50374 345.34904,102.20455 C 345.34904,83.30695 361.99717,84.403577 358.75805,68.734879 C 356.52061,57.911656 354.76962,49.23199 353.46516,36.143889 C 352.53959,26.857305 352.24452,16.959398 342.59855,17.357382 C 331.26505,17.824992 326.96549,37.77419 309.34904,39.204549 C 291.76851,40.631991 276.77834,24.238028 269.97404,26.579549 C 263.22709,28.901334 265.34904,47.204549 269.34904,60.204549 C 275.63588,80.636771 289.34904,107.20455 264.34904,111.20455 C 239.34904,115.20455 196.34904,119.20455 165.34904,160.20455 C 134.34904,201.20455 135.49342,249.3212 123.34904,264.20455 C 82.590696,314.15529 40.823919,293.64625 40.823919,335.20455 C 40.823919,353.81019 72.349045,367.20455 77.349045,361.20455 C 82.349045,355.20455 34.863764,337.32587 87.995492,316.20455 C 133.38711,298.16014 137.43914,294.47663 151.34904,307.20455 z"
    fill="black" />
</svg>

The SVG should have a width and height of 400 and 380 respectively. However, the artwork is given a width/height of 100 (which is the default). The user has to manually update the artwork width/height to make the SVG visible as a result.

Setting a break point on the svg loading code, it seems like it is possible for documentElement.viewBox to be non-null even in cases where the viewBox is not specified, such as in this example. LMK if you see the same behavior (I'm not totally sure how this is meant to be handled... seems like different browsers could handle this differently?).


Security: High Risk Vulnerabilities in current npm packages

On local installation of the project, npm had reported 1751 vulnerabilities:

8 High
2 Moderate
1741 Low

On running npm audit fix, it fixed 1746 of them however 5 of them need to be manually reviewed.
These vulnerabilities could lead to Remote Memory Exposure, Signature Malleability, Prototype Pollution, Regular Expression Denial of Service

Please suggest and I would like to work on this !

@ShubhamPalriwala Thanks for mentioning but there is actually nothing to do in this I think.

Yeah but if you want i can have a look at the vulnerabilities that require manual reviews and try to fix them, if it makes sense


material_munge crashes, so does game

Material_munge will crash with the "stopped working" message when it's editing models. It doesn't report any errors so I couldn't tell which model it is, but it worked in the previous version and I think I've properly updated all textures to line up with the new formatting so I'm not sure what's up. The game also crashes when it's loading the map, but no error messsages there either. It only ever loads up some of the textures, and it loads the effects config but then it goes kaput.
Edit: so apparently the game crashing might not even be related to the same issue. I successfully munged another map but it also crashes on the load screen. This time it did leave an error message, but...
[ERROR]   19:13:44 Unexpected volume resource magic number!
Wtf is that supposed to even mean? xd

The error message indicates that there is still some files munged using old versions of the tools being packed into your lvls. Cleaning out your munged files should fix the problem.
This material_munge crash could be the root of your other problems. Do you have any idea which model it crashes on?

Oh, derp. Yeah I thought I had cleaned up the munged files, but apparently not. That's one down.
Unfortunately, material_munge doesn't print out which model it is trying to edit when it crashes. It just garbles up the log.
Editing bes2_prop_interior_door.model for Shader Patch... EditingMunging (for Shader Patch) chamber01_emissive.tga
So essentially it's trying to do something to some model and then crashes and moves on to the textures. Curiously enough, though, just now when I re-munged without changing any source files, I got another strange .req error in the munge report. What's even more odd is that the textures it was trying to munge should have been already munged before, I didn't change them in between. The error message is as follows:
Error occured while packing "bes2.req"    Expected "ucft" but found "".
I could guess that the .req error might be a result of material_munge crashing and not wrapping things up properly, but it's worth mentioning in case it's not.

Oh my god... I just figured out why material_munge crashes and the reason is that I am Doctor Idiot and nobody ever told me about it.
In other words, there was a model that had an invalid slot 1 texture specified for rendertype 27, somewhere down the line I had written garbage in it and it was pointing to a texture that doesn't exist. Even the stock munge tools never pointed this out so I was blissfully ignorant about it lmao. Strange that the previous versions of material_munge didn't crash because of this, though.
I suppose that's a good suggestion for an improvement, and/or a feature request: make material_munge print warnings in the log when it finds missing textures like this xd

material_munge now generates tangent space vectors (the things that make normal mapping work) for models, so it's a bit more sensitive to bad models now as it has to read a lot more of them.
But I agree that updating the error handling and logging of the tools to be more robust is a good idea.

Oh yeah, I wanted to ask about the normal mapping too. So I noticed all my normal maps seem to be pointing the wrong way now, but I couldn't find consistency in it. What sort of standard does SP need now? Does it want inverted vectors or not? It wasn't just the Y vector that seemed to be wrong at times, there was inverted lighting on some X vectors too. (Maybe mirrored UVs are affecting it too? There were some parts of the same model that had normals facing correctly and then some parts that had them wrong.)

It uses MikkTSpace (with the bitangent reconstructed in the pixel shader) now for custom materials. This is the same as the tangent space used by Blender, Unity & Unreal Engine (although iirc one of them reconstructs the bitangent in the vertex shader instead, which can matter when baking normal maps from models). Finding some normal map intended for use in one of them should give you your answer though, sorry I can't be more helpful. I just tested that it worked and everything was setup right I didn't pay much attention to the details of actually authoring normal maps. But do let me know if I've made a mistake somewhere and things aren't behaving how they should.
As for stock normal maps they should be the same as they've always been for the game without SP. Again let me know if this doesn't seem to be the case.

I didn't get much useful info from the internet unfortunately, but after a little bit of brainstorming and testing, I've come to the conclusion that as of now, both stock and SP normal maps are correct when no vectors are inverted. As I said though, I think some of the models that use mirrored UVs to reflect a texture may be mirroring the normals as well and thus getting lit from the wrong direction, but I'll be sure to test that out a bit more before I go ahead and make that an actual claim.

I think some of the models that use mirrored UVs to reflect a texture may be mirroring the normals as well and thus getting lit from the wrong direction

So interestingly enough, this seems to be the case, but only for the stock normals. After correcting the normal maps, SP materials are getting lit from the correct direction regardless of UV orientation so that's all good.

Thanks, I'll have to compare my normal mapping code to Pandemic's again to try to see where I've gone wrong.


GraphQL error if Tx has inputData

Sending a transaction with inputData through Nautilus Testnet 0.8.2 produces the following error:
{code: -2, info: '[GraphQL] ERGO_NODE_ADDRESS is undefined in .env file.'}

Minimal example repo: https://github.com/SavonarolaBit/bug-tx-inputData
1-liner to reproduce:
git clone git@github.com:SavonarolaBit/bug-tx-inputData.git && cd bug-tx-inputData && npm i && npm run dev -- --open

Hi, thank you for you detailed report, this is happening because, unfortunately, official testnet GraphQL instance is misconfigured for a long time ago.
To solve that you can go to Settings and replace the current GraphQL Server by some alternative instance like https://tn-ergo-explorer.anetabtc.io/graphql


Add e2e test for secrets encryption using kms

What this PR does / why we need it:
Ensure secrets are encrypted using KMS
Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
Fixes #HOSTEDCP-386
Checklist

[ ] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

/test e2e-aws

/test e2e-aws

Thanks, seems a bit overkilling but love it!
For the oauth test, let's not spin up a new HC.  Lets rename this one and reuse the same HC.
/approve

/lgtm


Crash in waybar::modules::Custom::update() in case of bad utf-8

Hello :wave:
I noticed periodic crashes when skimming through some YouTube videos, especially those with some unicode codepoints in them. I compiled the latest version of waybar to check if it was fixed, but it still happened. I compiled with debug symbols and captured this stack trace in gdb:
Thread 1 "waybar" received signal SIGSEGV, Segmentation fault.
0x00007ffff62d594a in wcscoll_l () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007ffff62d594a in wcscoll_l () at /usr/lib/libc.so.6
#1  0x00007ffff6b0e660 in g_utf8_collate () at /usr/lib/libglib-2.0.so.0
#2  0x00005555555ae630 in Glib::operator!=(Glib::ustring const&, Glib::ustring const&) (lhs=..., rhs=...)
    at /usr/include/glibmm-2.4/glibmm/ustring.h:1820
#3  0x00005555555abe23 in waybar::modules::Custom::update() (this=0x555555a817b0) at ../src/modules/custom.cpp:167
#4  0x00005555555e31e3 in operator()() const (__closure=0x555555a16890) at ../src/bar.cpp:783
#5  0x00005555555e4bb4 in sigc::adaptor_functor<waybar::Bar::getModules(const waybar::Factory&, const std::string&,waybar::Group*)::<lambda()> >::operator()(void) const (this=0x555555a16890)
    at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
#6  0x00005555555e49b8 in sigc::internal::slot_call0<waybar::Bar::getModules(const waybar::Factory&, const std::string&, waybar::Group*)::<lambda()>, void>::call_it(sigc::internal::slot_rep *) (rep=0x555555a16860)
    at /usr/include/sigc++-2.0/sigc++/functors/slot.h:136
#7  0x00007ffff765375a in Glib::DispatchNotifier::pipe_io_handler(Glib::IOCondition) ()
    at /usr/lib/libglibmm-2.4.so.1
#8  0x00007ffff7653af0 in Glib::IOSource::dispatch(sigc::slot_base*) () at /usr/lib/libglibmm-2.4.so.1
#9  0x00007ffff7654a4f in Glib::Source::dispatch_vfunc(_GSource*, int (*)(void*), void*) ()
    at /usr/lib/libglibmm-2.4.so.1
#10 0x00007ffff6ad2f19 in  () at /usr/lib/libglib-2.0.so.0
#11 0x00007ffff6b312b7 in  () at /usr/lib/libglib-2.0.so.0
#12 0x00007ffff6ad1112 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#13 0x00007ffff6d06af6 in g_application_run () at /usr/lib/libgio-2.0.so.0
#14 0x00005555555faab0 in waybar::Client::main(int, char**) (this=0x555555909ce0, argc=1, argv=0x7fffffffde08)
    at ../src/client.cpp:267
#15 0x00005555555dd26a in main(int, char**) (argc=1, argv=0x7fffffffde08) at ../src/main.cpp:1

For context, my config looks like this:

"custom/playerctl": {
	"interval": 1,
	"exec": "~/.config/waybar/modules/playerctl.sh",
	"exec-if": "pgrep playerctl",
	"escape": true,
        "on-click": "playerctl play-pause",
        "on-scroll-up": "playerctl next",
        "on-scroll-down": "playerctl previous"
},

The contents of playerctl.sh read the currently playing track and sometimes cut the resulting string to a fixed byte length, sometimes producing invalid utf-8. For testing purpose I could trigger the issue having a script with this content:
printf "\xa0\xa1"  # some invalid utf-8

I could fix it by validating and skipping invalid utf-8:
diff --git a/src/modules/custom.cpp b/src/modules/custom.cpp
index 287b5588..491aef43 100644
--- a/src/modules/custom.cpp
+++ b/src/modules/custom.cpp
@@ -155,6 +155,12 @@ auto waybar::modules::Custom::update() -> void {
     } else {
       parseOutputRaw();
     }
+    auto g = Glib::ustring(text_);
+    if(!g.validate()) {
+      return;
+    }

That might not be the best fix to be honest, but I first wanted to check what kind of error handling you would prefer:

Log something and ignore invalid strings.
Sanitize the string by leaving out invalid utf8 sequences.
Still try to display it, but be more careful when using operator!=.

Thanks for creating waybar.

Hi!
I'll go for the latest option if possible, or the second.

FWIW - I've been getting core-dumps for a long time and just haven't had the headspace to investigate until last night - when I found this report and it's much better than I would've submitted and seems to match:
Waybar v0.9.22 on Arch
Oct 30 16:50:20 teto.ixydo.net systemd-coredump[111657]: [🡕] Process 111528 (waybar) of user 1001 dumped core.

                                                         Stack trace of thread 111528:
                                                         #0  0x00007f3f86ad594a __wcscoll_l (libc.so.6 + 0xb794a)
                                                         #1  0x00007f3f873706b0 g_utf8_collate (libglib-2.0.so.0 + 0x956b0)
                                                         #2  0x00005559693faabc n/a (waybar + 0x5fabc)
                                                         #3  0x000055596940f516 n/a (waybar + 0x74516)
                                                         #4  0x00007f3f87ea675a _ZN4Glib16DispatchNotifier15pipe_io_handlerENS_11IOConditionE (>
                                                         #5  0x00007f3f87ea6af0 _ZN4Glib8IOSource8dispatchEPN4sigc9slot_baseE (libglibmm-2.4.so>
                                                         #6  0x00007f3f87ea7a4f _ZN4Glib6Source14dispatch_vfuncEP8_GSourcePFiPvES3_ (libglibmm->
                                                         #7  0x00007f3f87334f69 n/a (libglib-2.0.so.0 + 0x59f69)
                                                         #8  0x00007f3f87393327 n/a (libglib-2.0.so.0 + 0xb8327)
                                                         #9  0x00007f3f87333162 g_main_context_iteration (libglib-2.0.so.0 + 0x58162)
                                                         #10 0x00007f3f87506b16 g_application_run (libgio-2.0.so.0 + 0xdfb16)
                                                         #11 0x00005559693e8887 n/a (waybar + 0x4d887)
                                                         #12 0x00005559693e65b5 main (waybar + 0x4b5b5)
                                                         #13 0x00007f3f86a45cd0 n/a (libc.so.6 + 0x27cd0)
                                                         #14 0x00007f3f86a45d8a __libc_start_main (libc.so.6 + 0x27d8a)
                                                         #15 0x00005559693ed755 n/a (waybar + 0x52755)

                                                         Stack trace of thread 111530:
                                                         #0  0x00007f3f86b2c73d syscall (libc.so.6 + 0x10e73d)
                                                         #1  0x00007f3f8738e2b7 g_cond_wait (libglib-2.0.so.0 + 0xb32b7)
                                                         #2  0x00007f3f873001b4 n/a (libglib-2.0.so.0 + 0x251b4)
                                                         #3  0x00007f3f87368a7e n/a (libglib-2.0.so.0 + 0x8da7e)
                                                         #4  0x00007f3f873669f5 n/a (libglib-2.0.so.0 + 0x8b9f5)
                                                         #5  0x00007f3f86aaa9eb n/a (libc.so.6 + 0x8c9eb)
                                                         #6  0x00007f3f86b2e7cc n/a (libc.so.6 + 0x1107cc)
...truncated the rest...

I now added a PR in #2624 for this issue. It implements the third option, more or less. It looks like this in case of invalid UTF-8:

Closing this issue, please move discussion to the PR.


Bump stim git tag to latest version of stim

Add prefixes for enums that became class enums
Fix a few struct-vs-class disagreements

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (e528e3a) 100.00% compared to head (c229262) 100.00%.
Report is 2 commits behind head on master.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##            master       #83   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            3         3
  Lines          331       331
=========================================
  Hits           331       331

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Doesn't NetworkPolicy work?

What happened:
I installed Calico and Liqo in K3s with the below documents.
https://docs.liqo.io/en/v0.8.1/installation/install.html#liqo-and-calico
https://docs.tigera.io/calico/latest/getting-started/kubernetes/k3s/quickstart
NetworkPolicy works in the local cluster but doesn't work in the remote cluster (Pods in the remote cluster are still accessible despite setting NetworkPolicy).
calico-node is OffloadingBackOff status towards the remote cluster, so it is an expected behavior, I think.
The Liqo documentation suggests that Calico works, so if NetworkPolicy doesn't work, we should state so.
And, is the implementation of NetworkPolicy or a NetworkPolicy-like function possible in Liqo?
Environment:

Liqo version: v0.8.1
Kubernetes version (use kubectl version): v1.26.4+k3s1
Cloud provider or hardware configuration: Google Compute Engine
Network plugin and version: Calico v3.25.1
Install tools: liqoctl
Others:

If I install Calico on the remote cluster and apply the same NetworkPolicy applied to the local cluster, the NetworkPolicy seems to work on the remote cluster as well.
So, implementation of NetworkPolicy reflection may solve this problem.
On the other hand, when Calico is installed, communication via service between remote clusters doesn't seem to be possible. I think this is an another issue, but I'm continuing to investigate.

Hi @aii-nozomu-oki, I think that if you apply a NetworkPolicy to the remote cluster, this will not enforce traffic between offloaded and not offloaded pods. And if you deny traffic from the liqo namespace, it will drop all the inter-cluster traffic. That is not a simple problem; if you have the entire application in a single cluster (local or remote), the netpol reflection will solve your problem, otherwise not.
We are working on a solution to isolate the traffic with a per-cluster granularity, so at the moment, we don't achieve the same granularity of the k8s NetwrkPolicies


Fixed nuget package metadata and READMEs

Description
The package metadata on NuGet is incorrect. Updating to reflect our new naming.
Testing
Will test by running package release pipeline against this branch.
Reviewer Checklist

[x] Update the title of the PR to be succinct and less than 50 characters
[x] Tag the PR with the type of update: Bug, New-Sample, Enhancement, or New-Feature
[ ] CI is green before merge

Repoman Generation Results
Repoman pushed changes to remotes for the following projects:
Project: azure-health-data-services-toolkit-fhir-function-quickstart
Remote: azure-samples-staging
Branch: pr/83
You can initialize this project with:
azd init -t Azure-Samples/azure-health-data-services-toolkit-fhir-function-quickstart -b pr/83

View Changes | Compare Changes

Repoman Generation Results
Repoman pushed changes to remotes for the following projects:
Project: azure-health-data-services-toolkit-fhir-function-quickstart
Remote: azure-samples-staging
Branch: pr/83
You can initialize this project with:
azd init -t Azure-Samples/azure-health-data-services-toolkit-fhir-function-quickstart -b pr/83

View Changes | Compare Changes

Repoman Generation Results
Repoman pushed changes to remotes for the following projects:
Project: azure-health-data-services-toolkit-fhir-function-quickstart
Remote: azure-samples-staging
Branch: pr/83
You can initialize this project with:
azd init -t Azure-Samples/azure-health-data-services-toolkit-fhir-function-quickstart -b pr/83

View Changes | Compare Changes

Repoman Generation Results
Repoman pushed changes to remotes for the following projects:
Project: azure-health-data-services-toolkit-fhir-function-quickstart
Remote: azure-samples-staging
Branch: pr/83
You can initialize this project with:
azd init -t Azure-Samples/azure-health-data-services-toolkit-fhir-function-quickstart -b pr/83

View Changes | Compare Changes


Feature Request: Add the ability to use file glob in excluded_files

Hi,
👍 First-off thank you for the useful plugin.
It would be useful to be able to exclude files using a file glob (wildcard pattern), something like **/.DS-Store to exclude any .DS-Store files in whatever folder or subfolder (whatever its depth) beneath docs/.
plugins:
    - search
    -
    - unused_files:
        excluded_files:
            - '**/.DS_Store'

Today I need to list exhaustively all .DS-Store files, like so:
plugins:
    - search
    - unused_files:
        excluded_files:
            - gh-actions/.DS_Store
            - gh-actions/img/.DS_Store
            - build/.DS_Store

Thanks for the suggestion! I just released version 0.2.0, which supports wildcards.
excluded_files:
  - foo-*.jpg

Also, the plugin will always exclude the given files in all directories. This should exclude all files named .DS_Store:
excluded_files:
  - .DS_Store

Thank you for the quick response.
Will upgrade to benefit from this new feature.
I didn’t know that I can exclude a file whatever the folder it is in. Useful tip!

Yes, that's also a new feature in 0.2.0 🚀