Support allow_nullable_key config for models

Describe the bug
Incorrect behavior of the model when using the setting allow_nullable_key
Steps to reproduce
My dbt model create ETL process by reading the data from PostgresSQL (I use PostgreSQL Engine) and load the data into Clickhouse.
Data Source table in Postgres has a Nullable setting for columns which I use as uniqueKey and  partiotionKey (In fact, there are no Null values there)

Create a model with conf allow_nullable_key
Run the model. Everything is ok.
3.When I run the model againg I have an error
Code: 115. DB::Exception: Setting allow_nullable_key is neither a builtin setting nor started with the prefix 'custom_' registered for user-defined settings. (UNKNOWN_SETTING) (version <IP_ADDRESS> (official build))

Expected behaviour
Re-running the model should not lead to errors
Code examples, such as models or profile settings
Model conf
{{ config(
order_by='projectId',
engine='MergeTree()',
partition_by='projectId',
materialized='incremental',
settings = {'allow_nullable_key': 1},
unique_key='modelId',
schema='core') }}
dbt and/or ClickHouse server logs
I used this query to watch where the error happened:
select query from system.query_log where exception like '%115. DB::Exception%'
And query result:
/* {"app": "dbt", "dbt_version": "1.4.9", "profile_name": "clickhouse_beta", "target_name": "beta", "node_id": "model.iyno_data_marts.actual_project_data"} */
    insert into core.actual_project_data__dbt_tmp ("projectId", "periodId", "modelId")
    select "projectId", "periodId", "modelId"
    from core.actual_project_data
      where (modelId) not in (
        select modelId
        from core.actual_project_data__dbt_new_data
      )
   SETTINGS  allow_nullable_key=1

Configuration
Core:

installed: 1.4.9
latest:    1.7.1

Your version of dbt-core is out of date!
You can find instructions for upgrading here:
https://docs.getdbt.com/docs/installation
Plugins:

clickhouse: 1.4.9

Python version: 3.10.8
Operating system: Win10

ClickHouse server

ClickHouse Server version: <IP_ADDRESS>

@GonnaMakeYouCry do you use cluster or single server setup? I tried to reproduce with single server and it works fine for me.
According to code, *__dbt_tmp created only with distributed_table materialization. Maybe you can share your full debug log from dbt. dbt -d run -s yourmodel to understand why it is not working for you

@simpl1g I tried again and everything started working correctly ¯_(ツ)_/¯
P.S. We use Yandex Cloud CH Managed Service.

@simpl1g
We use Yandex Cloud CH Managed Service
And the log after using command dbt -d run -s yourmodel
============================== 2023-11-20 07:16:20.020996 | e3382018-9d72-4754-870d-b3f1ffe168d1 ==============================
07:16:20.020996 [info ] [MainThread]: Running with dbt=1.4.9
07:16:20.023435 [debug] [MainThread]: running dbt with arguments {'debug': True, 'write_json': True, 'use_colors': True, 'printer_width': 80, 'version_check': True, 'partial_parse': True, 'static_parser': True, 'profiles_dir': '/home/airflow/.dbt', 'send_anonymous_usage_stats': True, 'quiet': False, 'no_print': False, 'cache_selected_only': False, 'select': ['./models/core/actual_project_data.sql'], 'which': 'run', 'rpc_method': 'run', 'indirect_selection': 'eager'}
07:16:20.024209 [debug] [MainThread]: Tracking: tracking
07:16:20.025864 [debug] [MainThread]: Sending event: {'category': 'dbt', 'action': 'invocation', 'label': 'start', 'context': [<snowplow_tracker.self_describing_json.SelfDescribingJson object at 0x7fdaedeb7b10>, <snowplow_tracker.self_describing_json.SelfDescribingJson object at 0x7fdaedeb7e50>, <snowplow_tracker.self_describing_json.SelfDescribingJson object at 0x7fdaedeb7e10>]}
07:16:20.046441 [debug] [MainThread]: checksum: 07ac7676dbf91b944d5fe41bac352fb2dda62b33015cbd1e52faa2a2c71f6d73, vars: {}, profile: None, target: None, version: 1.4.9
07:16:20.081888 [debug] [MainThread]: Partial parsing enabled: 0 files deleted, 0 files added, 0 files changed.
07:16:20.082698 [debug] [MainThread]: Partial parsing enabled, no changes found, skipping parsing
07:16:20.084464 [warn ] [MainThread]: [WARNING]: Configuration paths exist in your dbt_project.yml file which do not apply to any resources.
There are 1 unused configuration paths:

models.iyno_data_marts.example
07:16:20.096085 [debug] [MainThread]: Sending event: {'category': 'dbt', 'action': 'load_project', 'label': 'e3382018-9d72-4754-870d-b3f1ffe168d1', 'context': [<snowplow_tracker.self_describing_json.SelfDescribingJson object at 0x7fdaec137450>]}
07:16:20.107754 [debug] [MainThread]: Sending event: {'category': 'dbt', 'action': 'resource_counts', 'label': 'e3382018-9d72-4754-870d-b3f1ffe168d1', 'context': [<snowplow_tracker.self_describing_json.SelfDescribingJson object at 0x7fdaede88a50>]}
07:16:20.108687 [info ] [MainThread]: Found 3 models, 4 tests, 0 snapshots, 0 analyses, 327 macros, 0 operations, 0 seed files, 11 sources, 0 exposures, 0 metrics
07:16:20.109326 [debug] [MainThread]: Sending event: {'category': 'dbt', 'action': 'runnable_timing', 'label': 'e3382018-9d72-4754-870d-b3f1ffe168d1', 'context': [<snowplow_tracker.self_describing_json.SelfDescribingJson object at 0x7fdaede88f90>]}
07:16:20.112247 [info ] [MainThread]:
07:16:20.114632 [debug] [MainThread]: Acquiring new clickhouse connection 'master'
07:16:20.116698 [debug] [ThreadPool]: Acquiring new clickhouse connection 'list_schemas'
07:16:20.134418 [debug] [ThreadPool]: Opening a new connection, currently in state init
07:16:20.673483 [debug] [ThreadPool]: dbt_clickhouse adapter: On list_schemas: /* {"app": "dbt", "dbt_version": "1.4.9", "profile_name": "clickhouse_beta", "target_name": "beta", "connection_name": "list_schemas"} */
select name from system.databases
...
07:16:20.676928 [debug] [ThreadPool]: dbt_clickhouse adapter: SQL status: OK in 0.00 seconds
07:16:20.682062 [debug] [ThreadPool]: Acquiring new clickhouse connection 'list_None_'
07:16:20.682941 [debug] [ThreadPool]: Re-using an available connection from the pool (formerly list_None_)
07:16:20.694269 [debug] [ThreadPool]: dbt_clickhouse adapter: On list_None_: /* {"app": "dbt", "dbt_version": "1.4.9", "profile_name": "clickhouse_beta", "target_name": "beta", "connection_name": "list_None_"} */
select
t.name as name,
t.database as schema,
if(engine not in ('MaterializedView', 'View'), 'table', 'view') as type,
db.engine as db_engine,0 as is_on_cluster
from system.tables as t join system.databases as db on t.database = db.name
where schema = ''
...
07:16:20.699395 [debug] [ThreadPool]: dbt_clickhouse adapter: SQL status: OK in 0.00 seconds
07:16:20.702432 [debug] [ThreadPool]: Acquiring new clickhouse connection 'list_None_stage'
07:16:20.703303 [debug] [ThreadPool]: Re-using an available connection from the pool (formerly list_None_stage)
07:16:20.706970 [debug] [ThreadPool]: dbt_clickhouse adapter: On list_None_stage: /* {"app": "dbt", "dbt_version": "1.4.9", "profile_name": "clickhouse_beta", "target_name": "beta", "connection_name": "list_None_stage"} */
select
t.name as name,
t.database as schema,
if(engine not in ('MaterializedView', 'View'), 'table', 'view') as type,
db.engine as db_engine,0 as is_on_cluster
from system.tables as t join system.databases as db on t.database = db.name
where schema = 'stage'
...
07:16:20.713810 [debug] [ThreadPool]: dbt_clickhouse adapter: SQL status: OK in 0.01 seconds
07:16:20.716903 [debug] [ThreadPool]: Acquiring new clickhouse connection 'list_None_core'
07:16:20.718790 [debug] [ThreadPool]: Re-using an available connection from the pool (formerly list_None_core)
07:16:20.722207 [debug] [ThreadPool]: dbt_clickhouse adapter: On list_None_core: /* {"app": "dbt", "dbt_version": "1.4.9", "profile_name": "clickhouse_beta", "target_name": "beta", "connection_name": "list_None_core"} */
select
t.name as name,
t.database as schema,
if(engine not in ('MaterializedView', 'View'), 'table', 'view') as type,
db.engine as db_engine,0 as is_on_cluster
from system.tables as t join system.databases as db on t.database = db.name
where schema = 'core'
...
07:16:20.727107 [debug] [ThreadPool]: dbt_clickhouse adapter: SQL status: OK in 0.00 seconds
07:16:20.730361 [debug] [MainThread]: Sending event: {'category': 'dbt', 'action': 'runnable_timing', 'label': 'e3382018-9d72-4754-870d-b3f1ffe168d1', 'context': [<snowplow_tracker.self_describing_json.SelfDescribingJson object at 0x7fdaec336190>]}
07:16:20.731707 [info ] [MainThread]: Concurrency: 1 threads (target='beta')
07:16:20.732359 [info ] [MainThread]:
07:16:20.739489 [debug] [Thread-1  ]: Began running node model.iyno_data_marts.actual_project_data
07:16:20.740364 [info ] [Thread-1  ]: 1 of 1 START sql incremental model core.actual_project_data .................... [RUN]
07:16:20.741440 [debug] [Thread-1  ]: Acquiring new clickhouse connection 'model.iyno_data_marts.actual_project_data'
07:16:20.742012 [debug] [Thread-1  ]: Re-using an available connection from the pool (formerly model.iyno_data_marts.actual_project_data)
07:16:20.742719 [debug] [Thread-1  ]: Began compiling node model.iyno_data_marts.actual_project_data
07:16:20.772348 [debug] [Thread-1  ]: Writing injected SQL for node "model.iyno_data_marts.actual_project_data"
07:16:20.773405 [debug] [Thread-1  ]: Timing info for model.iyno_data_marts.actual_project_data (compile): 2023-11-20 07:16:20.743301 => 2023-11-20 07:16:20.773289
07:16:20.774168 [debug] [Thread-1  ]: Began executing node model.iyno_data_marts.actual_project_data
07:16:20.853308 [debug] [Thread-1  ]: dbt_clickhouse adapter: On model.iyno_data_marts.actual_project_data: /* {"app": "dbt", "dbt_version": "1.4.9", "profile_name": "clickhouse_beta", "target_name": "beta", "node_id": "model.iyno_data_marts.actual_project_data"} */
drop table if exists core.actual_project_data__dbt_tmp
...
07:16:20.858216 [debug] [Thread-1  ]: dbt_clickhouse adapter: SQL status: OK in 0.00 seconds
07:16:20.889448 [debug] [Thread-1  ]: dbt_clickhouse adapter: On model.iyno_data_marts.actual_project_data: /* {"app": "dbt", "dbt_version": "1.4.9", "profile_name": "clickhouse_beta", "target_name": "beta", "node_id": "model.iyno_data_marts.actual_project_data"} */
drop table if exists core.actual_project_data__dbt_new_data
...
07:16:20.893359 [debug] [Thread-1  ]: dbt_clickhouse adapter: SQL status: OK in 0.00 seconds
07:16:20.933993 [debug] [Thread-1  ]: dbt_clickhouse adapter: On model.iyno_data_marts.actual_project_data: /* {"app": "dbt", "dbt_version": "1.4.9", "profile_name": "clickhouse_beta", "target_name": "beta", "node_id": "model.iyno_data_marts.actual_project_data"} */
  create table core.actual_project_data__dbt_new_data

engine = MergeTree()
order by (projectId)
  partition by (projectId)
  SETTINGS  allow_nullable_key=1

  empty

as (

WITH project_active_periods AS
(
SELECT
pg_prod_repl.element_periods.projectId as  "projectId"
,pg_prod_repl.element_periods.id as  "periodId"
FROM core.projects_in_work
JOIN pg_prod_repl.projects
ON core.projects_in_work.projectId = pg_prod_repl.projects.id
JOIN pg_prod_repl.element_periods
ON core.projects_in_work.projectId =  pg_prod_repl.element_periods.projectId
WHERE True
AND pg_prod_repl.element_periods.activeFrom < NOW()
AND pg_prod_repl.element_periods.activeTo IS NULL
AND pg_prod_repl.projects.deleted = 0
),
project_active_models AS
(
SELECT
core.projects_in_work.projectId AS "projectId"
,pg_prod_repl.models.id AS "modelId"
FROM core.projects_in_work
JOIN pg_prod_repl.projects
ON core.projects_in_work.projectId = pg_prod_repl.projects.id
JOIN pg_prod_repl.models
ON core.projects_in_work.projectId = pg_prod_repl.models.projectId
JOIN pg_prod_repl.model_pdata
ON pg_prod_repl.models.id = pg_prod_repl.model_pdata.modelId
JOIN pg_prod_repl.model_periods
ON pg_prod_repl.model_pdata.periodId = pg_prod_repl.model_periods.id
WHERE True
AND pg_prod_repl.model_periods.activeTo IS NULL
AND pg_prod_repl.model_periods.activeFrom < NOW()
AND pg_prod_repl.projects.deleted = 0
),
actual_project_data AS
(
SELECT
project_active_periods.projectId AS  projectId
,project_active_periods.periodId AS periodId
,project_active_models.modelId AS modelId
--  assumeNotNull(project_active_periods.projectId) AS  projectId
-- ,assumeNotNull(project_active_periods.periodId) AS periodId
-- ,assumeNotNull(project_active_models.modelId) AS modelId
,date_add(HOUR, 3, NOW()) AS "SYS_MOMENT"
FROM project_active_periods
JOIN project_active_models
ON project_active_periods."projectId" = project_active_models."projectId"
)
SELECT * FROM actual_project_data
-- this filter will only be applied on an incremental run
where modelId NOT IN (select modelId from core.actual_project_data)
)
    ...

07:16:21.232101 [debug] [Thread-1  ]: dbt_clickhouse adapter: SQL status: OK in 0.30 seconds
07:16:21.245551 [debug] [Thread-1  ]: dbt_clickhouse adapter: On model.iyno_data_marts.actual_project_data: /* {"app": "dbt", "dbt_version": "1.4.9", "profile_name": "clickhouse_beta", "target_name": "beta", "node_id": "model.iyno_data_marts.actual_project_data"} */
select name, type from system.columns where table = 'actual_project_data__dbt_new_data'

  and database = 'core'

order by position

...
07:16:21.249791 [debug] [Thread-1  ]: dbt_clickhouse adapter: SQL status: OK in 0.00 seconds
07:16:21.255539 [debug] [Thread-1  ]: dbt_clickhouse adapter: On model.iyno_data_marts.actual_project_data: /* {"app": "dbt", "dbt_version": "1.4.9", "profile_name": "clickhouse_beta", "target_name": "beta", "node_id": "model.iyno_data_marts.actual_project_data"} */
    insert into core.actual_project_data__dbt_new_data ("projectId", "periodId", "modelId", "SYS_MOMENT")

WITH project_active_periods AS
(
SELECT
pg_prod_repl.element_periods.projectId as  "projectId"
,pg_prod_repl.element_periods.id as  "periodId"
FROM core.projects_in_work
JOIN pg_prod_repl.projects
ON core.projects_in_work.projectId = pg_prod_repl.projects.id
JOIN pg_prod_repl.element_periods
ON core.projects_in_work.projectId =  pg_prod_repl.element_periods.projectId
WHERE True
AND pg_prod_repl.element_periods.activeFrom < NOW()
AND pg_prod_repl.element_periods.activeTo IS NULL
AND pg_prod_repl.projects.deleted = 0
),
project_active_models AS
(
SELECT
core.projects_in_work.projectId AS "projectId"
,pg_prod_repl.models.id AS "modelId"
FROM core.projects_in_work
JOIN pg_prod_repl.projects
ON core.projects_in_work.projectId = pg_prod_repl.projects.id
JOIN pg_prod_repl.models
ON core.projects_in_work.projectId = pg_prod_repl.models.projectId
JOIN pg_prod_repl.model_pdata
ON pg_prod_repl.models.id = pg_prod_repl.model_pdata.modelId
JOIN pg_prod_repl.model_periods
ON pg_prod_repl.model_pdata.periodId = pg_prod_repl.model_periods.id
WHERE True
AND pg_prod_repl.model_periods.activeTo IS NULL
AND pg_prod_repl.model_periods.activeFrom < NOW()
AND pg_prod_repl.projects.deleted = 0
),
actual_project_data AS
(
SELECT
project_active_periods.projectId AS  projectId
,project_active_periods.periodId AS periodId
,project_active_models.modelId AS modelId
--  assumeNotNull(project_active_periods.projectId) AS  projectId
-- ,assumeNotNull(project_active_periods.periodId) AS periodId
-- ,assumeNotNull(project_active_models.modelId) AS modelId
,date_add(HOUR, 3, NOW()) AS "SYS_MOMENT"
FROM project_active_periods
JOIN project_active_models
ON project_active_periods."projectId" = project_active_models."projectId"
)
SELECT * FROM actual_project_data
-- this filter will only be applied on an incremental run
where modelId NOT IN (select modelId from core.actual_project_data)
  ...

07:16:22.074887 [debug] [Thread-1  ]: dbt_clickhouse adapter: SQL status: OK in 0.82 seconds
07:16:22.077426 [debug] [Thread-1  ]: Writing runtime sql for node "model.iyno_data_marts.actual_project_data"
07:16:22.078670 [debug] [Thread-1  ]: dbt_clickhouse adapter: On model.iyno_data_marts.actual_project_data: /* {"app": "dbt", "dbt_version": "1.4.9", "profile_name": "clickhouse_beta", "target_name": "beta", "node_id": "model.iyno_data_marts.actual_project_data"} */
      create table core.actual_project_data__dbt_tmp as core.actual_project_data__dbt_new_data

  ...

07:16:22.097520 [debug] [Thread-1  ]: dbt_clickhouse adapter: SQL status: OK in 0.02 seconds
07:16:22.102323 [debug] [Thread-1  ]: dbt_clickhouse adapter: On model.iyno_data_marts.actual_project_data: /* {"app": "dbt", "dbt_version": "1.4.9", "profile_name": "clickhouse_beta", "target_name": "beta", "node_id": "model.iyno_data_marts.actual_project_data"} */
select name, type from system.columns where table = 'actual_project_data'

  and database = 'core'

order by position

...
07:16:22.106706 [debug] [Thread-1  ]: dbt_clickhouse adapter: SQL status: OK in 0.00 seconds
07:16:22.109486 [debug] [Thread-1  ]: dbt_clickhouse adapter: On model.iyno_data_marts.actual_project_data: /* {"app": "dbt", "dbt_version": "1.4.9", "profile_name": "clickhouse_beta", "target_name": "beta", "node_id": "model.iyno_data_marts.actual_project_data"} */
    insert into core.actual_project_data__dbt_tmp ("projectId", "periodId", "modelId", "SYS_MOMENT")
    select "projectId", "periodId", "modelId", "SYS_MOMENT"
    from core.actual_project_data
      where (modelId) not in (
        select modelId
        from core.actual_project_data__dbt_new_data
      )
   SETTINGS  allow_nullable_key=1

...

07:16:22.113751 [debug] [Thread-1  ]: dbt_clickhouse adapter: Error running SQL: /* {"app": "dbt", "dbt_version": "1.4.9", "profile_name": "clickhouse_beta", "target_name": "beta", "node_id": "model.iyno_data_marts.actual_project_data"} */
    insert into core.actual_project_data__dbt_tmp ("projectId", "periodId", "modelId", "SYS_MOMENT")
    select "projectId", "periodId", "modelId", "SYS_MOMENT"
    from core.actual_project_data
      where (modelId) not in (
        select modelId
        from core.actual_project_data__dbt_new_data
      )
   SETTINGS  allow_nullable_key=1

07:16:22.114606 [debug] [Thread-1  ]: Timing info for model.iyno_data_marts.actual_project_data (execute): 2023-11-20 07:16:20.774855 => 2023-11-20 07:16:22.114509
07:16:22.117265 [debug] [Thread-1  ]: Database Error in model actual_project_data (models/core/actual_project_data.sql)
:HTTPDriver for http://rc1a-ed1fhp9n65vl5ksg.mdb.yandexcloud.net:8123 returned response code 404)
Code: 115. DB::Exception: Setting allow_nullable_key is neither a builtin setting nor started with the prefix 'custom_' registered for user-defined settings. (UNKNOWN_SETTING) (version <IP_ADDRESS> (official build))
compiled Code at target/run/iyno_data_marts/models/core/actual_project_data.sql
07:16:22.118169 [debug] [Thread-1  ]: Sending event: {'category': 'dbt', 'action': 'run_model', 'label': 'e3382018-9d72-4754-870d-b3f1ffe168d1', 'context': [<snowplow_tracker.self_describing_json.SelfDescribingJson object at 0x7fdacf762c50>]}
07:16:22.119424 [error] [Thread-1  ]: 1 of 1 ERROR creating sql incremental model core.actual_project_data ........... [ERROR in 1.38s]
07:16:22.122063 [debug] [Thread-1  ]: Finished running node model.iyno_data_marts.actual_project_data
07:16:22.149095 [debug] [MainThread]: Acquiring new clickhouse connection 'master'
07:16:22.150340 [debug] [MainThread]: Connection 'master' was properly closed.
07:16:22.151008 [debug] [MainThread]: Connection 'model.iyno_data_marts.actual_project_data' was left open.
07:16:22.151685 [debug] [MainThread]: On model.iyno_data_marts.actual_project_data: Close
07:16:22.152411 [info ] [MainThread]:
07:16:22.153139 [info ] [MainThread]: Finished running 1 incremental model in 0 hours 0 minutes and 2.04 seconds (2.04s).
07:16:22.153897 [debug] [MainThread]: Command end result
07:16:22.222691 [info ] [MainThread]:
07:16:22.223473 [info ] [MainThread]: Completed with 1 error and 0 warnings:
07:16:22.224136 [info ] [MainThread]:
07:16:22.224747 [error] [MainThread]: Database Error in model actual_project_data (models/core/actual_project_data.sql)
07:16:22.225336 [error] [MainThread]:   :HTTPDriver for http://rc1a-ed1fhp9n65vl5ksg.mdb.yandexcloud.net:8123 returned response code 404)
07:16:22.225902 [error] [MainThread]:    Code: 115. DB::Exception: Setting allow_nullable_key is neither a builtin setting nor started with the prefix 'custom_' registered for user-defined settings. (UNKNOWN_SETTING) (version <IP_ADDRESS> (official build))
07:16:22.226560 [error] [MainThread]:   compiled Code at target/run/iyno_data_marts/models/core/actual_project_data.sql
07:16:22.227209 [info ] [MainThread]:
07:16:22.227799 [info ] [MainThread]: Done. PASS=0 WARN=0 ERROR=1 SKIP=0 TOTAL=1
07:16:22.228522 [debug] [MainThread]: Sending event: {'category': 'dbt', 'action': 'invocation', 'label': 'end', 'context': [<snowplow_tracker.self_describing_json.SelfDescribingJson object at 0x7fdacf872450>, <snowplow_tracker.self_describing_json.SelfDescribingJson object at 0x7fdaeb2127d0>, <snowplow_tracker.self_describing_json.SelfDescribingJson object at 0x7fdacf8d5e50>]}
07:16:22.229202 [debug] [MainThread]: Flushing usage events

I believe this is a bug with the "legacy" incremental strategy where settings that are supposed to be DDL "Table" settings are using the INSERT statements.  I believe this will be fixed in next upcoming patch release.


Directions are out of date

Customer feedback is telling they're dissatisfied with this article, as .NET core 3.1 has been out of support for nearly 6 months. Please update with supported versions of API, and any relevant changes.

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

ID: 484b1a6d-dfd0-1da6-5405-7826ed4c088f
Version Independent ID: 6e0ba9d2-aaa6-528a-daab-0e75c80f7135
Content: Double Key Encryption (DKE) - Microsoft Purview (compliance)
Content Source: microsoft-365/compliance/double-key-encryption.md
Service: information-protection
GitHub Login: @KCCross
Microsoft Alias: krowley

@KCCross Please help us in resolving this issue. Thanks

@RGrizzzz Thanks for your feedback! New issues and pull requests for this content are closed while we update this content to support upcoming feature improvements.


[BUG] Unresolveable link to operators.mdx

Current Behavior
On the latest version I get this error when running locally:
Error: Docs markdown link couldn't be resolved: (../references/run-and-secure/nodes/faq/operators.mdx) in "docs/versioned_docs/version-stable/cadence/measuring-time.mdx" for version stable
Expected Behavior
Link resolves
Steps To Reproduce
Found in: 9e820553ccf24ab60c4b3372d80d2c79ccf70514 version
Environment
- OS:Local build on Mac
- Node: v18.17.0
- npm: 9.6.7

What are you currently working on that this is blocking?
No response

redirect has been fixed. closing


[Feedback] Personal Demon

[x] Add one day delay between getting fat/thin and losing health
[x] Scroll text faster the more text is queued. Maybe only insert the demon name some percentage of the time to reduce overall text.
[x] Remove vertical line between day counter and marquee text
[x] Make medicine 85% effective
[ ] Some stats get so low they are unrecoverable, like discipline. Check this I guess?
[x] Increase stat caps to 'bank' more happiness during good years Stats are unbound, except for health
[ ] Make the magic drink a bankable item from the wheel of fortune. Only one can be banked. Will require menu modification. Have the magic drink affect all stats, besides health

@Dacvak I'm leaving the "Some stats get so low they are unrecoverable, like discipline. Check this I guess?" task to you since I think that gets fixed by balancing. You can tweak how much discipline is gained/lost, or add some bound for it.

Working on in https://github.com/AEFeinstein/Super-2021-Swadge-FW-Sandbox/pull/116


Prepare custom dataset for PatchMixer

I have a sales transactional data and I want to test PatchMixer on it. How can I prepare the data for it.

To prepare the custom dataset, you can follow the steps below:

Place the dataset (.csv file) in the 'dataset/' directory.
Set '--data' attribute to  'custom', which specifies that the dataset's partitioning is determined by Dataset_Custom (defined in data_factory.py).
Set the '--data_path' attribute to the csv file.
Other configurations can be referenced from the weather, electricity, or traffic datasets.

Please note that this code follows the data reading framework established by the Informer, and the process for custom dataset preparation should be similar or the same.


add screenshot + recommendation for instructors to present in side-by-side format

(Aniket to add screenshot in reply)


Close parenthesis when unmatched

Description
When opening a parenthesis, spyder will automatically close it.
Because of that, when I close a parenthesis, it is automatically deleted.
But when I have unmatched parenthesis, I would like to be able to close without going to the end
example: (| is the cursor)
fuc(fun(fuc(arg|))
If I want to close this parenthesis in spyder, I must type )))
So is it possible to disable the parenthesis deletion when all the parenthesis are not matched on that line?
I know the parenthesis might be closed on another line but then I would not type )
Version and main components

Spyder Version: 3.2.5.dev0 c22566281
Python Version: 3.6.2
Qt Versions: 5.9.1, PyQt5 5.9 on Darwin

Dependencies
pyflakes >=0.6.0 :  1.6.0 (OK)
pycodestyle >=2.3:  2.3.1 (OK)
pygments >=2.0   :  2.2.0 (OK)
pandas >=0.13.1  :  0.20.3 (OK)
numpy >=1.7      :  1.13.3 (OK)
sphinx >=0.6.6   :  1.6.4 (OK)
rope >=0.9.4     :  0.10.7 (OK)
jedi >=0.9.0     :  0.11.0 (OK)
psutil >=0.3     :  5.3.1 (OK)
nbconvert >=4.0  :  5.3.1 (OK)
sympy >=0.7.3    :  1.1.1 (OK)
cython >=0.21    :  0.27.1 (OK)
qtconsole >=4.2.0:  4.3.1 (OK)
IPython >=4.0    :  6.2.1 (OK)
pylint >=0.25    :  1.7.4 (OK)

This is a valid request, but I don't know how we could solve it in all possible cases.
@rlaverde, what do you think about it?

Yes, I have also experience this issue. But I don't know how the logic of this works, I'll take a look to the logic and try to fix it.

I usually turn off bracket matching because of this.


schema draft 06 support

Draft 06 has been released.  This should be supported.

See branch feature/schema-06.

Changes from Draft04 to Draft06 meta-schema:
rename      @.description -> @.title
rename      @.definitions.positiveInteger -> @.definitions.nonNegativeInteger
rename      @.definitions.positiveIntegerDefault0 -> @.definitions.nonNegativeIntegerDefault0
alter       @.type -> ["object", "boolean"]
alter       @.properties.id.format -> "uri-reference"
alter       @.properties.multipleOf.exclusiveMinimum -> 0
alter       @.properties.exclusiveMinimum -> { "type": "number" }
alter       @.properties.additionalItems -> { "$ref": "#" }
alter       @.properties.additionalProperties -> { "$ref": "#" }
add         @.definitions.stringArray.default -> []
add         @.properties.$ref -> { "type": "string", "format": "uri-reference" }
add         @.properties.contains -> { "$ref": "#" }
add         @.properties.propertyNames -> { "$ref": "#" }
add         @.properties.const -> {}
add         @.properties.format -> { "type": "string" }
delete      @.definitions.stringArray.minItems
delete      @.properties.multipleOf.minimum
delete      @.dependencies

What is uri-reference and how does it differ from uri? ($schema format is still uri.)
exclusiveMinimum & exclusiveMaximum have been changed so that they explicitly state what the min/max is rather than merely specifying that the minimum/maximum is exclusive.  What happens when both minimum and exclusiveMinimum are specified?
A schema may now be a raw boolean value.
additionalProperties & additionalItems have been simplified to just take a schema (likely a result of previous point).
Obviously, what do the new properties do?

$ref and `format should be the same as Draft04, but now it's explicitly defined as opposed to being an understood keyword.
contains, propertyNames, and const are completely new.

Answers to these questions and more, after I read the specification.

Ideally, I'd want to use the same object model that I have now.  The difficult part of that will be the exclusiveMinimum & exclusiveMaximum properties as these have changed data type from boolean to number.
I think the other properties could handle both.

The other option (which is what I'll likely do) is to have a JsonSchema06 implementation of IJsonSchema.  Hopefully, it may still share many of the implementation details, like JsonSchemaPropertyDefinition.
With this implementation, I think it would be good to rename JsonSchema to JsonSchema04.  What would follow naturally, then, would be that JsonSchema.Draft04 is renamed to MetaSchema (or something).

Another question is how to determine the version for schemata that don't explicitly define it.  I suppose the best way to do it would be to validate against both schema drafts and see which one works.  I can also expose a property which allows the user to choose a default in case they both match.
Options for such a property would be:

Draft04
Draft06
MaintainCurrent

The last option would be for child (referenced) schemata.  It would indicate that the child should take the version of its parent.

So far, I've implemented the JsonSchema04/JsonSchema06 approach.  I found an architecture which will allow me to reuse a lot of the code in the validators.  Just a few TODO items and this should be complete.

Still looking good.  Have a few tests that are throwing an OutOfMemoryException.  I think I have a recursion issue when attempting to self-validate a schema.

Resolved the exception by not validating.  This means that I can't automatically detect schema version, but it'll still pick up on a declared schema.  I also added a "default schema version" property on JsonSchemaFactory to be used when the schema doesn't specify a version.
It may be to the point where I should release a beta version to allow users a chance to start seeing some of the changes.

All existing tests pass with the refactor!  Now to add tests for the draft-06 implementation.

This site has a good summary of changes from 04 to 06.

Almost there.  Just a few tests failing.  Also, I accidentally merged the branch into master.  I'll complete the merge once I have these tests resolved.


Add version: ProjectEnv.ProjectEnvCli version 3.19.0

Pull request has been created with WinGet Releaser v2 :rocket:
Microsoft Reviewers: Open in CodeFlow

Possible duplicate package entry.
Similar installer SHA256 hash found in manifest:

InstallerSha256: 33faca8df059451e880172d3b9d8c125feaebbb9352fdacaebd01ea99e06b362

manifests\p\ProjectEnv\ProjectEnvCli\v3.19.0

Hi @repolevedavaj,
I'm guessing this is an attempt to replace https://github.com/microsoft/winget-pkgs/pull/176066 before removing that version. Is that accurate?

@stephengillie yes, I accidentially pushed new version with the 'v' prefix. It seems that this prevents me from upgrading to that version automatically.

Should I remove the other manifest?

Should I remove the other manifest?

Yes, please do.


Add remaining DSNP 1.3 items and schemaIds

Note: cli scripts read.ts and find.ts are in api-augment limbo and won't lint/compile.
[Fixed]

One non-blocking future question: How do want to remove the docker image entirely? Or perhaps just have the deploy script skip ones that are already in the base?

I think we can remove it entirely in favor of https://hub.docker.com/r/frequencychain/standalone-node and friends, given that deployed DSNP schema will be present at genesis there. I'll open a PR.


Option to ignore photo drag

Could you please include the option to ignore photo dragging?
While looking at photos in google I am constantly dragging photos when I just want to scroll down. I think adding to option to ignore photo dragging, and maybe adding a shortcut key to turn on/off this function would really help. For example, photo dragging will be switched off by default, and switched on when the spacebar is held down allowing the user to easily drag photos without interrupting the scrolling experience. Thanks!

Hi,
Could you please clarify what you mean by photo dragging? And on what pages on Google? Which mouse button are you using to drag? Does switching to the right or middle mouse button solve your issues?

Hi David, thanks for replying. So to clarify photo dragging, when I click
on an image while holding down the left button it grabs the image until I
release the button. Please have a look at the attached photo.
I am using a Wacom drawing tablet, and the tip is set as the left clicker.
On Sat, Feb 7, 2015 at 3:42 AM, David Pärsson<EMAIL_ADDRESS>wrote:

Hi,
Could you please clarify what you mean by photo dragging? And on what
pages on Google? Which mouse button are you using to drag? Does switching
to the right or middle mouse button solve your issues?
—
Reply to this email directly or view it on GitHub
https://github.com/davidparsson/ScrollbarAnywhere/issues/40#issuecomment-73360947
.

I don't see an attached photo. Could you try uploading it on GitHub's comment page?

Thank you!
I think this issue is rather tricky to solve in a good way, but I'll think about it. It's not that likely that I'll get it fixed any time soon though.

I believe that the reason that these photos are dragged is that they're links. I'm updating the name accordingly.


Code Inspector, Cannot install abapGit because of lo_type

Hi,
I got error when activating abapGit script in SAP GUI 7.40 from this link: https://raw.githubusercontent.com/abapGit/build/master/zabapgit.abap.
Here is the error message:
The result type of the functional method cannot be converted into the type of LO_TEST.
I also attached the screenshot when error occured.

Thanks in advance.

What's your netweaver version? As a quick fix just comment out the line.

@bmd-benita any news?

Hi @christianguenter2,
sorry for late reply. I don't know exactly what the netweaver version. But, this is sap ides version and I want to try abapgit on sap ides. Can abapgit be integrated to sap ides?
Thanks.

@bmd-benita
It's quite easy to figure out the netweaver version.

Anyway, did you try the above mentioned fixes?

Hi @christianguenter2, it's release 731 with SP-Level 0002.

Ok, this release is supported, but only a few people are using it. So you need to help us to fix the issue.
Can you change line33513 to this an try to activate
lo_test ?= cl_ci_tests=>get_test_ref( <ls_result>-test ).
If that fails comment the line and check whether further syntax erros occur.

Thanks for your fast reply. I have tried it and it displays another error message.

Ok, thanks. I'll fix it and let you know.

@bmd-benita error is fixed. Can you try the latest build?

I have tried it and it displays another error message.

@bmd-benita the code is continuously being updated, so it helps if you paste the code which the error is reported for

@bmd-benita fixed. Can you try the latest build?

I have tried it. It displays another error message.

method ZCL_ABAPGIT_CONVERT=>XSTRING_TO_STRING_UTF8 can be used instead

@bmd-benita fixed. Can you try the latest build?

@christianguenter2 it works now. Thanks.
But, there is an error message when creating an offline repo. I have created a new issue for this problem (https://github.com/larshp/abapGit/issues/2649). Thank you.


can't have no time

you cannot set the timer to 0. You also can't have a count up.

Creating Event Handlers...
Loaded Event Handlers
Discord Presence Setter Log
Ready To Start!
Saving Current Settings...
Saved!
Initializing Discord RPC...
Initialized!
Sending Rich Presence Settings to Discord...
Sent!
Starting Callbacks...
Error    at System.Timers.Timer.set_Interval(Double value)
at DiscordPresenceSetter.Form1.<.ctor>b__8_2(Object sender, DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

I have the same issue.


Can't signp up for lunary.ai

Hi @hughcrt,
I get a CORS error on the second step of signing up

Hi @luigimorel,
I just fixed it, there was a bug with Sentry that was fixed in a recent released, which caused the redirect on signup to not work.
Your account should have been created though, so you can log in with the credentials you've used during the signup flow.


Fix type parameter inference example?

Is this right?
It didn't make sense for the two examples to be the same, and I found this which typechecks and runs correctly

This double example appears to be a typo caused by the previous list syntax, which required providing the element type in the term:
<Nat>[1n,2n,3n]

This has now been removed, and my change on https://github.com/moonad/Formality/commit/1405846c6a86f258846b02f629d7ab163b287ead#diff-dc89fdcc242c31d756fdf63cc2b6a434L794 reflects this


feature request: tag edit

Thank you for your great work. I found linkding was missing tag edit function. Could you can it. tks.

@BeyondIM Since linkding is built with Django, it also features an admin panel where you can manage all entities. You can access the admin through:
https://linkding.my-domain.com/admin/
Or specifically the tags through:
https://linkding.my-domain.com/admin/bookmarks/tag/
I thought about implementing a tag management UI, but it felt like I would just duplicate the existing work.

Thank you very much.


Update Ansible scheduler instructions

Description
Update scheduler instructions based on recent commit (which rendered one step unnecessary) and add more information about using the scheduler without ElasticSearch.
Instructions tested in my local ansible setup on Ubuntu 20.04.
Related issue and scope

[x] I opened an issue to propose and discuss this change (#5223)

My changes affect the following components

[ ] API
[ ] Controller
[ ] Message Bus (e.g., Kafka)
[ ] Loadbalancer
[x] Scheduler
[ ] Invoker
[ ] Intrinsic actions (e.g., sequences, conductors)
[ ] Data stores (e.g., CouchDB)
[ ] Tests
[ ] Deployment
[ ] CLI
[ ] General tooling
[x] Documentation

Types of changes

[x] Bug fix (generally a non-breaking change which closes an issue).
[ ] Enhancement or new feature (adds new functionality).
[ ] Breaking change (a bug fix or enhancement which changes existing behavior).

Checklist:

[x] I signed an Apache CLA.
[x] I reviewed the style guides and followed the recommendations (Travis CI will check :).
[ ] I added tests to cover my changes.
[ ] My changes require further changes to the documentation.
[x] I updated the documentation where necessary.

Codecov Report

Merging #5224 (480af99) into master (3e3414c) will decrease coverage by 39.94%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master   #5224       +/-   ##
==========================================
- Coverage   44.49%   4.54%   -39.95%
==========================================
  Files         238     238
  Lines       13957   13957
  Branches      570     570
==========================================
- Hits         6210     635     -5575
- Misses       7747   13322     +5575

Impacted Files
Coverage Δ

.../main/scala/org/apache/openwhisk/core/WarmUp.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...ain/scala/org/apache/openwhisk/spi/SpiLoader.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...scala/org/apache/openwhisk/core/FeatureFlags.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...la/org/apache/openwhisk/http/BasicRasService.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...pache/openwhisk/http/LenientSprayJsonSupport.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...ache/openwhisk/core/database/DocumentFactory.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...che/openwhisk/core/invoker/LogStoreCollector.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...he/openwhisk/core/invoker/NamespaceBlacklist.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

.../openwhisk/core/entity/ActivationEntityLimit.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...openwhisk/core/database/ActivationStoreLevel.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 118 more

Continue to review full report at Codecov.

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


Cow: Watch calendarkart.com

Cow requests the watch of the watch_keyword calendarkart\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

calendarkart\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by VLAZ in Charcoal HQ


"A referral was returned from the server" error.

Hello.  Trying to install Bitwarden Auto-type tonight on a new Windows install.  V1.0.1 has been working wonderfully for months until tonight.  Its installer will not work anymore as it only provided the option to download the newer 1.1.1 or quit.  Proceeded to download 1.1.1 setup.exe but after installing it, am receiving this error when loading auto-type:

C:\Program Files]Auto-Type\bw-at.exe
A referral was returned from the server.

The only option in that dialog is "OK" and when pressed the program quits.
Unfortunately the 1.0.1 doesn't install anymore so am stuck.  Thanks for reading and looking forward to any guidance on what the issue is.
https://i.imgur.com/ZZ6GnUD.png

Seems like that is a Windows issue. There's lots of people commenting in the article that got around the problem, I checked those keys and looks like those values are the defaults (I'm on W10 x64 21H1, latest build).
If you don't feel confident changing them perhaps you might want to try and copy the Bitwarden CLI into %AppData%\Auto-Type directory. Why? When running executables from %ProgramFiles% security is hardened a bit, so that might be the case.
Another option is to temporarily disable security software (Anti-virus and/or Defender), if the issue is triggered by that you can safely whitelist the Bitwarden CLI executable.

Thank you for the response.
To test, I moved the bw.exe into %AppData%\Auto-Type but that had no effect, the issue remained.  I also temporarily disabled windows defender (virus and firewall) and that too had no effect, the issue remained.
I am a bit warry of changing the default security settings to get around this issue, mainly as I don't have a clear understanding of what that'll mean for other apps moving forward.  Do you have any ideas why the 1.1.1 update triggered this issue where 1.0.1 did not?  Is there any way to revert to 1.0.1 instead of the latest update (installed via setup.exe) without the attempt to do so being blocked?
Again, thank you for your insight here... hope you are having a nice weekend.

Hey! just finished with the API login and I tough that maybe your issue can be a byproduct of the files being signed. I sign the executables to get a lower false-positive rate in VirusTotal.
Given the fact that this done merely as a helper I cannot afford to buy a certificate for signing, thus I use self-signed certificates and perhaps a somewhat strict configuration is getting in the way (or Windows being Home?). If you're willing to try, here's an unsigned debug version of the current develop branch. Please feel free to inspect the code on the executable and you can block network communications it via firewall if you feel more comfortable.
If it fixes you issue I have prepared a commit for an updated build script that creates both signed and unsigned versions. Other than that from version 1.1.1 the final executables use BinMod (again to get less false positives from AV engines), here is a version without BinMod.
Finally here is the most vanilla version which uses the U64 .bin base file in the AutoHotkey distribution rather than the one I modified for the project (I removed the unnecessary bits).
Hopefully one of them has the answer for you and most likely to others facing the sane issue. If you are able to have any of them working I'd know what to do to fix the problem.
Thanks a lot for your patience and input.

Given the fact that this done merely as a helper I cannot afford to buy a certificate for signing, thus I use self-signed certificates and perhaps a somewhat strict configuration is getting in the way (or Windows being Home?). If you're willing to try, here's an unsigned debug version of the current develop branch. Please feel free to inspect the code on the executable and you can block network communications via firewall if you feel more comfortable.

Just tried this build and the problem is now gone completely. Haven't tested the others, though.

Well, that was interesting results.  I downloaded your new build setup.exe, v1.1.2 and installed it.  Same issue as before: running it from its shortcut or directly from C:\Program Files]Auto-Type\bw-at.exe where it was installed results in the same "referral" issue.  I then downloaded the zip of v1.1.2 and replaced the bw-at.exe in the same location, C:\Program Files]Auto-Type and it worked as normal (with the new UI you built to support API login, which works just fine thank you!).  I also downloaded all three of your above debug builds and all of them work fine as well (all displaying 'Debug version' on startup).
Not sure what that means, exactly or why these results.  Let me know if this helps or if there is anything else I can do to help test.  Thanks again for your excellent work on this invaluable app, the new API login correctly bypasses their new Captcha requirement with username and password.

Looks like a problem of the CA chain resolution algorithm. But I cannot seem to find a solution.
Having a somewhat complete Distinguished Name in the CA (Certification Authority) might work. My problem relies in the fact that I cannot reproduce the issue.
This is literally just a Hello World message, if anyone in the thread care to run it and reply with the findings would be awesome, otherwise I have to revert and release unsigned executables resulting in higher false-positives rate in VirusTotal.

When downloading the setup.exe for 1.1.2 using Edge (temporarily using Edige to test memory usage) it does get blocked and requires unblocking to complete the download.  Also, when running, get another block from Defender and must unblock that as well to install.
When attempting to download your Hello World, it gets blocked by Defender (Severe) as Trojan:Script/Sabsik.FL.A!ml
https://i.imgur.com/dQkFumc.png

These are the VirusTotal results from the Hello World message, it's flags it.

Yet is only flagged by Zillya which until I did this tests never heard of it, but Defender says is "Severe".
That will be the tradeoff: higher false positive rate vs random issues.
Still the setup version should work as the certificate is created by the host machine via PowerShell. So, the issue remains, why signed executables with a certificate created by the host machine gives this error? Perhaps is Windows Home or a some processor instruction set (currently I own only AMD-based PCs).
The current state of the develop branch adds a more complete DN as was the only viable fix I could think of that made sense. Most of the online information I've found is either policies too strict or wacky DN strings. This will fix the latter if that's the issue, I was previously generating the certificate via AutoHotkey itself but Windows 11 break that.
This are builds from the develop branch

bw-at.zip
bw-at-unsigned.zip
setup.zip


IN does not support AND|OR operator

Would it be possable to make the IN function put AND|OR operator between terms as it depends on how the default operator is set in query.

Isn't that why "andWhere" and "orWhere" exist?

That's on purpose


Stream deletion is incredibly slow if you have a ton of users subscribed

Reproduction recipe:

Use manage.py populate_db --extra-users=1000 to create a Zulip development instance with 1000 users, who are subscribed to random subsets of the streams.
Delete a stream using the /#administration UI for doing so.  It'll hang for like 10 seconds
Check the run-dev.py logs; you'll see it did like 500 database queries and memcached queries, and probably the console will scroll for a really long time about all the rabbitmq events being processed as well.

I bet the main thing is just a simple database queries in loop bug, though I noticed that doing so also sent 1K events to rabbitmq (I think one for each user being unsubscribed), so we may need to restructure that to do a bulk event instead as well.
For working on this, I'd uncomment the section in zproject/settnigs.py that says this: # Uncomment the following to get all database queries logged to the console so that Django logs every database query to the console; that'll make it pretty easy to see what we're doing N times.
Once fixed, we can add a test deleting a stream with like 10 users on it, using the assert_num_queries to assert that less than 10 database queries are done, so that this never regresses.
For those not familiar with the events system, http://zulip.readthedocs.io/en/latest/new-feature-tutorial.html should teach what you need to know.

I am looking into this.

@showell I am also interested in this one, if you have not started yet can I give it a try?

I'm still working on this.


Add repository/ verification n CI

Signed-off-by: Asra Ali<EMAIL_ADDRESS>
Summary

For any updates in repository/, run the CI workflow for verification
Allow verification of just the TUF repository in case this is not a ceremony/ directory with the key artifacts

Ticket Link

Fixes
Release Note

@dlorenc @lukehinds could I get an eye on this? should be pretty easy but want to get this and the snapshot update in pretty soon


Create template for Vizor Docs

ie image or gif anim + category + information + further links etc.
something that can become a markdown template

Of course for the actual site, there will need to be main & sub navigation etc, so this is just the document format, not the actual page / site. And i know there will be issues with fitting all the contents of nested patches in here, but i guess we're just going to have to work that out, because not much point in having these docs if we don't show that stuff.
Sketch file ref: Vizor Docs template 151210


[Device Support Request] TS0601 sensor variant(?)

Is your feature request related to a problem? Please describe.
I've just bought three tuya temperature/humidity sensors (expected Aquara ones, got generic/tuya ones) and connected them to my HA. So far everything went good, they got interviewed, three entities were created (temp, hum, battery) and everything seemed fine. Then I noticed, all measured values were "0", so 0°C, 0% Humidity, 0% Battery. The only working property is LQI. I researched a bit and found these sensors get randomish manufactor descriptors, so they might not have been recognized properly. Mine are _TZE200_a8sdabtg, which do not seem to be covered by https://github.com/zigpy/zha-device-handlers/blob/dev/zhaquirks/tuya/ts0601_sensor.py. But at least they are recognized as such sensor. I still don't get how reading "0" values only could happen.
Describe the solution you'd like
The sensor values should be read properly.

{
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": 260,
      "device_type": "0x0302",
      "in_clusters": [
        "0x0000",
        "0x0001",
        "0x0402",
        "0x0405"
      ],
      "out_clusters": [
        "0x000a",
        "0x0019"
      ]
    }
  },
  "manufacturer": "_TZE200_a8sdabtg",
  "model": "TS0601",
  "class": "zigpy.device.Device"
}

{
  "home_assistant": {
    "installation_type": "Home Assistant Container",
    "version": "2022.12.5",
    "dev": false,
    "hassio": false,
    "virtualenv": false,
    "python_version": "3.10.7",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Europe/Vienna",
    "os_name": "Linux",
    "os_version": "5.10.142+truenas",
    "run_as_root": true
  },
  "custom_components": {
    "hacs": {
      "version": "1.28.4",
      "requirements": [
        "aiogithubapi>=22.2.4"
      ]
    },
    "zha_toolkit": {
      "version": "v0.8.28",
      "requirements": [
        "packaging>=20.8",
        "pytz"
      ]
    },
    "thermal_comfort": {
      "version": "1.5.4",
      "requirements": []
    },
    "truenas": {
      "version": "0.0.0",
      "requirements": []
    }
  },
  "integration_manifest": {
    "domain": "zha",
    "name": "Zigbee Home Automation",
    "config_flow": true,
    "documentation": "https://www.home-assistant.io/integrations/zha",
    "requirements": [
      "bellows==0.34.5",
      "pyserial==3.5",
      "pyserial-asyncio==0.6",
      "zha-quirks==0.0.89",
      "zigpy-deconz==0.19.2",
      "zigpy==0.52.3",
      "zigpy-xbee==0.16.2",
      "zigpy-zigate==0.10.3",
      "zigpy-znp==0.9.2"
    ],
    "usb": [
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*2652*",
        "known_devices": [
          "slae.sh cc2652rb stick"
        ]
      },
      {
        "vid": "1A86",
        "pid": "55D4",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus v2"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*sonoff*plus*",
        "known_devices": [
          "sonoff zigbee dongle plus"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*tubeszb*",
        "known_devices": [
          "TubesZB Coordinator"
        ]
      },
      {
        "vid": "1A86",
        "pid": "7523",
        "description": "*zigstar*",
        "known_devices": [
          "ZigStar Coordinators"
        ]
      },
      {
        "vid": "1CF1",
        "pid": "0030",
        "description": "*conbee*",
        "known_devices": [
          "Conbee II"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8A2A",
        "description": "*zigbee*",
        "known_devices": [
          "Nortek HUSBZB-1"
        ]
      },
      {
        "vid": "0403",
        "pid": "6015",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate+"
        ]
      },
      {
        "vid": "10C4",
        "pid": "EA60",
        "description": "*zigate*",
        "known_devices": [
          "ZiGate"
        ]
      },
      {
        "vid": "10C4",
        "pid": "8B34",
        "description": "*bv 2010/10*",
        "known_devices": [
          "Bitron Video AV2010/10"
        ]
      }
    ],
    "codeowners": [
      "@dmulcahey",
      "@adminiuga",
      "@puddly"
    ],
    "zeroconf": [
      {
        "type": "_esphomelib._tcp.local.",
        "name": "tube*"
      },
      {
        "type": "_zigate-zigbee-gateway._tcp.local.",
        "name": "*zigate*"
      },
      {
        "type": "_zigstar_gw._tcp.local.",
        "name": "*zigstar*"
      }
    ],
    "dependencies": [
      "file_upload"
    ],
    "after_dependencies": [
      "onboarding",
      "usb",
      "zeroconf"
    ],
    "iot_class": "local_polling",
    "loggers": [
      "aiosqlite",
      "bellows",
      "crccheck",
      "pure_pcapy3",
      "zhaquirks",
      "zigpy",
      "zigpy_deconz",
      "zigpy_xbee",
      "zigpy_zigate",
      "zigpy_znp"
    ],
    "is_built_in": true
  },
  "data": {
    "ieee": "**REDACTED**",
    "nwk": 61041,
    "manufacturer": "_TZE200_a8sdabtg",
    "model": "TS0601",
    "name": "_TZE200_a8sdabtg TS0601",
    "quirk_applied": false,
    "quirk_class": "zigpy.device.Device",
    "manufacturer_code": 4417,
    "power_source": "Battery or Unknown",
    "lqi": 61,
    "rssi": null,
    "last_seen": "2022-12-15T19:57:17",
    "available": true,
    "device_type": "EndDevice",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)",
      "endpoints": {
        "1": {
          "profile_id": 260,
          "device_type": "0x0302",
          "in_clusters": [
            "0x0000",
            "0x0001",
            "0x0402",
            "0x0405"
          ],
          "out_clusters": [
            "0x000a",
            "0x0019"
          ]
        }
      }
    },
    "active_coordinator": false,
    "entities": [
      {
        "entity_id": "sensor.livingroom_battery",
        "name": "_TZE200_a8sdabtg TS0601"
      },
      {
        "entity_id": "sensor.livingroom_temperature",
        "name": "_TZE200_a8sdabtg TS0601"
      },
      {
        "entity_id": "sensor.livingroom_rssi",
        "name": "_TZE200_a8sdabtg TS0601"
      },
      {
        "entity_id": "sensor.livingroom_lqi",
        "name": "_TZE200_a8sdabtg TS0601"
      },
      {
        "entity_id": "sensor.livingroom_humidity",
        "name": "_TZE200_a8sdabtg TS0601"
      }
    ],
    "neighbors": [],
    "routes": [],
    "endpoint_names": [
      {
        "name": "TEMPERATURE_SENSOR"
      }
    ],
    "user_given_name": "Wohnzimmer T/rF",
    "device_reg_id": "a73d2451b881d577bfd1947f7e670ac0",
    "area_id": "wohnzimmer",
    "cluster_details": {
      "1": {
        "device_type": {
          "name": "TEMPERATURE_SENSOR",
          "id": 770
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0001": {
            "endpoint_attribute": "power",
            "attributes": {
              "0x0020": {
                "attribute_name": "battery_voltage",
                "value": 0
              },
              "0x0021": {
                "attribute_name": "battery_percentage_remaining",
                "value": 0
              }
            },
            "unsupported_attributes": {
              "0x0031": {
                "attribute_name": "battery_size"
              },
              "0x0033": {
                "attribute_name": "battery_quantity"
              }
            }
          },
          "0x0402": {
            "endpoint_attribute": "temperature",
            "attributes": {
              "0x0000": {
                "attribute_name": "measured_value",
                "value": 0
              }
            },
            "unsupported_attributes": {}
          },
          "0x0405": {
            "endpoint_attribute": "humidity",
            "attributes": {
              "0x0000": {
                "attribute_name": "measured_value",
                "value": 0
              }
            },
            "unsupported_attributes": {}
          },
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0004": {
                "attribute_name": "manufacturer",
                "value": "_TZE200_a8sdabtg"
              },
              "0x0005": {
                "attribute_name": "model",
                "value": "TS0601"
              }
            },
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {
          "0x0019": {
            "endpoint_attribute": "ota",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x000a": {
            "endpoint_attribute": "time",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      }
    }
  }
}

Additional context
I've got them here: https://www.amazon.de/gp/product/B09NKCDXT9/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1
EDIT: Found some more info about it on the deconz repo: https://github.com/dresden-elektronik/deconz-rest-plugin/issues/6604. Also Z2M seems to have support for this specific model since the beginning of december: https://github.com/Koenkk/zigbee2mqtt/discussions/15200.

It seems to be another variant for TuyaTempHumiditySensor_Square so I would suggest to enable the local quirk folder, copy the current ts0601_sensor.py file and add the manufacturer to the signature:
class TuyaTempHumiditySensor_Square(CustomDevice):
    """Custom device representing tuya temp and humidity sensor with e-ink screen."""

    # RelativeHumidity multiplier
    # RH_MULTIPLIER = 100

    signature = {
        MODELS_INFO: [
            ("_TZE200_a8sdabtg", "TS0601"),
            ("_TZE200_qoy0ekbd", "TS0601"),
            ("_TZE200_znbl8dj5", "TS0601"),
        ],
        ENDPOINTS: {

Save changes, restart HA and re pair the device.

You were right, that worked flawlessly. Even though this model has no screen. Also I'm a little disappointed of it reporting humidity values as integers only, but that might be a limitation of the sensor itself.
I'll open a PR to add this variant.


Update yarn tool import

Fix WrapPty import to relfect changes in #376
Pass nusight2 pre-push checks by running yarn eslint:fix in /NUbots/nusight2. ./b format didn't seem to format these, should be investigated.

Lots of unrelated changes in this PR

Lots of unrelated changes in this PR

The changes to the nusight files were the only way I could push or publish my branch.
All I did was:

Branch off latest master
Fix import
Went to publish branch but could not due to husky pre-push errors
Ran yarn eslint:fix in /NUbots/nusight2 to fix formatting errors which allowed to push.

Did you want this broken up into a 4 line formatting PR and a fix import PR instead @TrentHouliston?

I'm just concerned as to how those changes could have gotten in in the first place, whatever PR they came from shouldn't have been able to merge


Kaito workspace-controller support for Karpenter nodeclaim

Describe the bug
Kaito workspace controller seems to be only compatible with Karpenter version prior v0.33.0  as they deprecated the machine CRD (karpenter.sh/v1alpha5) in that release and the controller seems to relay on that machine CRD for spinning up the workspace.
Steps To Reproduce

Create an AKS cluster with NAP enabled
Install Kaito workspace-controller helm install workspace kaito/workspace --namespace workspace --create-namespace
Add an workspace kubectl apply -f https://raw.githubusercontent.com/Azure/kaito/main/examples/inference/kaito_workspace_phi-2.yaml
Nothing happens, run kubectl api-resouces and see there is no CRD machines karpenter.sh/v1alpha5

Expected behavior
As Kaito per docs supports node provisioning controllers that supports Karpenter-core APIs, it should also support the new Karpenter CRDs for nodeClaims (machine CRD was deprecated in December). In best-case scenario Kaito (workspace-controller) should also run on AKS with NAP enabled and should be aware of the Karpenter version (or which CRD is available: machines vs nodeclaim).
Logs
Controller starts and prints this:
2024-04-04T10:07:49Z	INFO	Starting EventSource	{"controller": "workspace", "controllerGroup": "kaito.sh", "controllerKind": "Workspace", "source": "kind source: *v1alpha5.Machine"}
Environment

Kubernetes version (use kubectl version): 1.28.5
Install tools: AKS NAP (Karpenter)

Thanks for filing the issue. We are working towards supporting Karpenter new APIs.


Autocomplete issue for commands

When trying to type for example vi and press TAB to autocomplete it to vim it keeps initial entry vi and adds autocompleted variants to it and it becomes something like > vivim
How I can fix this?

Please update and check if it's happening again. We fixed a unicode-related issue.


If scene is switched,  the animations are not shown

As title says, this problem occurs only after I switch rooms, after getting some debug info I got this messages. I tried with demos, but the same error occurs. I tried both methods to build the UnityArmatureComponent, by runtime or by getting it an already created UnityArmatureComponent,
it actually works on the editor but if you export it in the first case nothing is shown in the second case the base body is loaded but no animation are played.

Hi,
We will find the problem and fix the bug as soon as possible.

Hi, the bug has been fixed.

Nice! I think that youre doing a great job, keep going like this. P.S Dragon bones would be way better with a nice api documentation, you know the majority its in chinese.


Images.jl dependency

Images.jl is a heavy dependency. Do you really need it?

Images.jl is used for assess_ssim. This probably should be in user code and not in this package. But I don't want to get rid of it yet, so I'll replace Images.jl with the smaller package ImageQualityIndexes.jl.

Dependency replaced in 01d0c0b8b9ecafff69a3097b714ff982fa823cde


404 Forbidden

I just try to youtube-dl, I found something strange, is there ever experienced what I experienced.
I try this:
youtube-dl --verbose https://www.youtube.com/watch?v=-Cu0ihE490s
Response:
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'--verbose', u'https://www.youtube.com/watch?v=-Cu0ihE490s']
[debug] Encodings: locale ANSI_X3.4-1968, fs ANSI_X3.4-1968, out None, pref ANSI_X3.4-1968
[debug] youtube-dl version 2<IP_ADDRESS>
[debug] Python version 2.6.6 - Linux-2.6.32-042stab103.6-x86_64-with-centos-6.7-Final
[debug] exe versions: none
[debug] Proxy map: {}
[youtube] -Cu0ihE490s: Downloading webpage
[youtube] -Cu0ihE490s: Downloading video info webpage
[youtube] -Cu0ihE490s: Extracting video information
[youtube] -Cu0ihE490s: Downloading DASH manifest
[youtube] -Cu0ihE490s: Downloading DASH manifest
[debug] Invoking downloader on u'https://r5---sn-a5m7znez.googlevideo.com/videoplayback?
ms=au&mt=1448847853&mv=u&lmt=1448542046072724&dur=239.095&mm=31&mn=sn-a5m7znez&sparams=dur%2Cgcr%2Cid%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire&fexp=9408710%2C9416126%2C9416778%2C9416851%2C9417683%2C9418203%2C9418401%2C9418750%2C9419445%2C9420452%2C9421525%2C9421734%2C9422436%2C9422596%2C9422618%2C9423242%2C9423662%2C9423717%2C9424620%2C9424965%
2C9424987&expire=1448869722&itag=22&mime=video%2Fmp4&ip=<IP_ADDRESS>&source=youtube&pl=25&requiressl=yes&sver=3&signature=B83F33C8D99568E634F9575A95F3A7E7C80366E3.92988044A431E19ACCB10D97283B76F1805D0F12&ratebypass=yes&id=o-AOFfqtnsqi0xFDtpwt8hA6eHFIcTI4rV-28Fa_sxXBmJ&upn=xGA-RblnD8o&ipbits=0&gcr=cn&key=yt6'
[download] Destination: Isyana Sarasvati - Kau Adalah (feat. Rayi Putra)--Cu0ihE490s.mp4
[download] 0.0% of 34.75MiB at Unknown speed ETA Unknown ETA
[download] 0.0% of 34.75MiB at 2.92MiB/s ETA 00:12
[download] 0.0% of 34.75MiB at 5.54MiB/s ETA 00:06
[download] 0.0% of 34.75MiB at 9.87MiB/s ETA 00:03
[download] 0.1% of 34.75MiB at 12.57MiB/s ETA 00:02
[download] 0.2% of 34.75MiB at 18.89MiB/s ETA 00:01
[download] 0.4% of 34.75MiB at 18.64MiB/s ETA 00:01
[download] 0.7% of 34.75MiB at 19.45MiB/s ETA 00:01
[download] 1.4% of 34.75MiB at 19.02MiB/s ETA 00:01
[download] 2.9% of 34.75MiB at 17.33MiB/s ETA 00:01
[download] 5.8% of 34.75MiB at 22.55MiB/s ETA 00:01
[download] 11.5% of 34.75MiB at 23.15MiB/s ETA 00:01
[download] 23.0% of 34.75MiB at 29.79MiB/s ETA 00:00
[download] 34.5% of 34.75MiB at 28.43MiB/s ETA 00:00
[download] 46.0% of 34.75MiB at 30.29MiB/
s ETA 00:00
[download] 57.6% of 34.75MiB at 28.19MiB/s ETA 00:00
[download] 69.1% of 34.75MiB at 29.51MiB/s ETA 00:00
[download] 80.6% of 34.75MiB at 29.35MiB/s ETA 00:00
[download] 92.1% of 34.75MiB at 29.39MiB/s ETA 00:00
[download] 100.0% of 34.75MiB at 29.26MiB/s ETA 00:00
[download] 100% of 34.75MiB in 00:01 262144
It successfully downloaded, I like this.
I try to do this
youtube-dl --get-url https://www.youtube.com/watch?v=-Cu0ihE490s
This generates the url for streaming, but the url gives
403 Forbidden response ?? Why are things like this
could happen.

This is expected behavior. Please refer to our FAQ for more details.


Workflow Headache: dev dependencies (private) are resolved when not included

Hi!
Sometimes my dev dependencies come from private repos, and therefore they can't be resolved in all workflows:

during normal usage
during CI testing

for example
uv seems to try and resolve all dependency groups even if they're not included. :-)
Just posting this here to start a discussion!
Thanks

Hi @T-256, all dependencies get resolved by default, even if they are not actually downloaded and installed. This is not documented, but it is the actual implemented behavior.
You can test this by creating a nonsense group with a non-sense dependency and then explicitly telling it not to be installed.

Yeah, it's intentional that we always resolve all groups. If you have workflows where you need to use your project without resolving those groups, you should be able to uv run without re-resolving, as long as you have a uv.lock checked in.

I feel I don't understand the implementation of uv run and uv.lock well enough to comment, by my understanding is that:
if there is an updated uv.lock checked in to the git repo , uv run will skip the resolving phase and use whatever is in uv.lock, even if the dependencies impossible to resolve were added after the uv.lock was checked in?
Is there some kind of contribution I could make to provide a solution by which certain dependency groups could be entirely ignored by uv?
Such as a
[tool.uv]
ignore-groups = ["nickelback", "phish"]

It would also roll into my other issue: https://github.com/astral-sh/uv/issues/10200#issuecomment-2564096152
?


Fixes for latest zig master:

fixes build.zig to change .path API
fixes for std.Uri structure change

Thank you very much. Appreciate your work. Sorry for late response.


404 Response from tempo-timesheets API

Judging by the fact that the API is tagged "Experimental", I'd guess that they changed something.
Maybe this is just a temporary issue though.
This throws a 404 - https://github.com/molsm/jira-report-web-ui-improved/blob/87ef553923f8265b258d9bdd54f1f3719b29908f/src/server/controller/jira.js#L5

Resolved. Now authentication will be through Tempo token


BrandOrInfluencer and OtpVerification page made as responsive

Issue #56
Screenshot
OTP Verification

BrandOrInfluencer

Hey @Kajol-Kumari  @RohitGupta1237
Please review the changes.

@BHS-Harish  hey in otp verification when zooming screen buttons are overlapping not adjusting with screen layout like when zoom in to much they should align vertically but then overlap
in brand or influencer add scrolling as when zooming in its not scrollign down that it should have been
attaching ss

Okay @RohitGupta1237
Let me fix it

Fixed


Move to new go

Type of change

Enhancement / new feature

Description

Checklist

[ ] Update/write design documentation in ./documentation/design
[ ] Write tests and make sure they pass
[ ] Update documentation
[ ] Check RBAC rights for Kubernetes / OpenShift roles
[ ] Try your changes from Pod inside your Kubernetes and OpenShift cluster, not just locally
[ ] Reference relevant issue(s) and close them after merging
[ ] Update CHANGELOG.md

I think you need to update the "go.mod"/"go.sum" file as well

@ctron Why? This is just change on installed dependency on our machines. Updating go dependencies have nothing to do with actions I think.

@ctron I can surely update go.mod and go.sum too, but I don't want to dig to "your" stuff and just prepare everything so that you can change that any time you want :)

@ctron I can surely update go.mod and go.sum too, but I don't want to dig into "your" stuff and just prepare everything so that you can change that any time you want :)

Its all "our" stuff :grin: … I think it makes sense to switch to the new version in a single PR … @k-wall what do you think?

@ctron Ok, I don't have problem with that, I can bump go version here :)

Ok, it looks like there is more than just the upgrade … go dependencies are the new NPM hell :roll_eyes: … I will take a look at using Go 1.14 and come back to this PR

Ok … so #4974 would do the switch to use Go 1.14
So you've been right, we should have split up things :)

@ctron ok cool, I'll revert one commit and this PR should be ready :)

@ctron @obabec let me know if you need to merge it ASAP I can merge it before GH actions test complete


Add featured image guidelines to CONTRIBUTING doc

Bringing in convo from #41
I can imagine some people submitting a logo and others submitting a picture of the building or interior office. This could get messy if not specified and people submit varying types of images.
Personally, I like the idea of an image like ones lower in the page for Viget (https://www.viget.com/careers/). Kind of a candid interior office shot.

✅ By submitting this issue, I have verified the following

[x] Checked to see if the issue has already been discussed before 🤔
[x] If proposing new content to be added, made sure enough details were provided 🔍

This was actually tackled already so I just need to update the guidelines for developers.


Unable to update tree data using custom Data Provider

Hello, I'm having some difficulty adding a new node to a tree. I'm using an uncontrolled environment, and a custom data provider, based on the example laid out here.
I've added a new function to my custom data provider called resetData which, like the constructor, takes in items and sets the data property. I'm calling this function at the right time and with logging, I can see that the correct data is being set.
The tree does not update after calling this new function.
Is this how I'm supposed to be changing the data for a tree?
Should I be constructing a new data provider every time I need to pass in new data?
Below is the code for my data provider:
import {
  Disposable,
  ExplicitDataSource,
  TreeDataProvider,
  TreeItem,
  TreeItemIndex
} from 'react-complex-tree'

export default class CustomDataProvider<T = any> implements TreeDataProvider {
  private data: ExplicitDataSource

  private handlers: Record<string, (changedItemIds: TreeItemIndex[]) => void> = {};

  private setItemName?: (item: TreeItem<T>, newName: string) => TreeItem<T>

  constructor(
    items: Record<TreeItemIndex, TreeItem<T>>,
    setItemName?: (item: TreeItem<T>, newName: string) => TreeItem<T>
  ) {
    this.data = { items }
    this.setItemName = setItemName
  }

  public async getTreeItem(itemId: TreeItemIndex): Promise<TreeItem> {
    return this.data.items[itemId]
  }

  public async onChangeItemChildren(
    itemId: TreeItemIndex,
    newChildren: TreeItemIndex[]
  ): Promise<void> {
    this.data.items[itemId].children = newChildren
    this.data.items[itemId].isFolder = (newChildren.length > 0)
    Object.values(this.handlers).forEach(handler => handler([itemId]))
  }

  public onDidChangeTreeData(
    listener: (changedItemIds: TreeItemIndex[]) => void
  ): Disposable {
    const id = (Math.random() + 1).toString(36).substring(7)
    this.handlers[id] = listener
    return { dispose: () => delete this.handlers[id] }
  }

  public async onRenameItem(item: TreeItem<any>, name: string): Promise<void> {
    if (this.setItemName) {
      this.data.items[item.index] = this.setItemName(item, name)
    }
  }

  public resetData(items: Record<TreeItemIndex, TreeItem<T>>): void {
    this.data = { items }
    console.log('resetData', this.data) // this looks correct!
  }
}

Nevermind, I wasn't re-rendering the tree properly! (needed to change the key after updating the data)

Hey @paulfedory
I have the same issue. Can you please share the part of the code where u use your CustomDataProvider?
And what do you mean needed to change the key after updating the data?

Nevermind, I wasn't re-rendering the tree properly! (needed to change the key after updating the data)

@paulfedory what do you mean by updating the key?  I have a custom data provider and an UncontrolledTreeEnvironment, but setting a UncontrolledTreeEnvironment key to e.g. Math.Random().toString() doesn't seem to cause it to display my new tree items.


Update repositories.txt

Library for railroad decoders controlled by MM1 or MM2 protocol and based on an Arduino board.

Hello,
My repository contains a C++ and a .h file ... that are the library files.
If it is not seen like that. Please tell me how to make a real library.
Greetings
Erwin
Op vr 28 jul 2023 om 23:44 schreef per1234 @.***>:

Closed #3128 https://github.com/arduino/library-registry/pull/3128.
—
Reply to this email directly, view it on GitHub
https://github.com/arduino/library-registry/pull/3128#event-9952476211,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AC4NBH7R6IZBOQVXBH3Q5Q3XSQXEPANCNFSM6AAAAAA232TF5M
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Please tell me how to make a real library.

The requirements are documented in the FAQ:
https://github.com/arduino/library-registry/blob/main/FAQ.md#what-are-the-requirements-for-a-library-to-be-added-to-library-manager
Detailed technical documentation about the library format and metadata is available here:
https://arduino.github.io/arduino-cli/latest/library-specification/
If you would like further assistance, please post on Arduino Forum:
https://forum.arduino.cc/c/development/libraries/39
I'm sure we'll be able to help you over there.


Updated Bit ops in Two Handed Manipulatable.

Tried to do flags attribute, but Editor Inspector drawer needs a lot of work.
Ended up just declaring them again in the enum type.

Updated example scene's objects to demonstrate proper options


Getting more done in GitHub with ZenHub

Hola! @PepponeFX has created a ZenHub account for the PepponeFX organization. ZenHub is the only project management tool integrated natively in GitHub – created specifically for fast-moving, software-driven teams.

How do I use ZenHub?
To get set up with ZenHub, all you have to do is download the browser extension and log in with your GitHub account. Once you do, you’ll get access to ZenHub’s complete feature-set immediately.
What can ZenHub do?
ZenHub adds a series of enhancements directly inside the GitHub UI:

Real-time, customizable task boards for GitHub issues;
Multi-Repository burndown charts, estimates, and velocity tracking based on GitHub Milestones;
Personal to-do lists and task prioritization;
Time-saving shortcuts – like a quick repo switcher, a “Move issue” button, and much more.

Add ZenHub to GitHub
Still curious? See more ZenHub features or read user reviews. This issue was written by your friendly ZenHub bot, posted by request from @PepponeFX.

Crea il team


Add shared signal library

Summary

Our specs necessitates the need to do something after a condition (e.g. Encoder fault) has persisted for some time. SharedSignal is the answer to that.
Changelist

Testing Done

Resolved Issues

Checklist
Please change [ ] to [x] when you are ready.

[ ] I have read and followed the code conventions detailed in README.md (This will save time for both you and the reviewer!).
[ ] If this pull request is longer then 500 lines, I have provided explicit justification in the summary above explaining why I cannot break this up into multiple pull requests (Small PR's are faster and less painful for everyone involved!).

Just one comment, otherwise LGTM. This has turned out pretty nicely!


Refactor settings page to include catalyst components. FIGMA DESIGNS ADDED

Context
Check out the Figma Designs Which will show you how the settings page should look.
Codu is planning to do a redesign of the site in the near future. This will be done incrementally, because there is quite a lot involved.
In preparation for this, we will introduce the Catalyst component library from tailwind UI.

This will provide us with accessible, reusable components to provide a standard theme across the site.
We will leave the default styles on the component, and we will edit them later when we begin the redesign.
Expected Behavior
The Profile Settings page should be edited to use the Catalyst inputs.
As an example, the additional-details (onboarding form) is currently using these components.

Current Behavior
This is the settings page as it is currently:

Additional info
Note: The catalyst components can be found at :
components>ui-components
The settings page is found at :
app>(app)>settings>_client.tsx>Settings
The new onboarding form is found at
app>(app)>alpha>additional-details
Any questions feel free to ask.
Connected issues
#1003
#1004
#1005
#1006
#1008
#1009
#1011

I would like to work on this issue.

Awesome, Thanks @AuraOfDivinity
I assigned you.

Is this still WIP or should I reassign? Any more information needed to be added to this?


Setting: Autosave file location does not work

To reproduce:

Open VAPOR, go to Settings, change Autosave file location to a different folder.
Close VAPOR.
Open VAPOR again. do some operations.
There is no session file in the newly changed different folder

This issue is fixed along with PR #643


Update scalafmt-core to 3.0.5

Updates org.scalameta:scalafmt-core from 3.0.4 to 3.0.5.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalameta", artifactId = "scalafmt-core" } ]

labels: library-update, semver-patch

[error] Missing token index [2041:2042]: `
[error] `: /home/runner/work/Monocle/Monocle/example/src/test/scala/monocle/LensExample.scala
[error] (example / Test / scalafmtCheck) Missing token index [2041:2042]: `
[error] `: /home/runner/work/Monocle/Monocle/example/src/test/scala/monocle/LensExample.scala

🤔

https://github.com/scalameta/scalafmt/issues/2772

Superseded by #1211.


Added NLP course and GANs.

#74
Added Andrew Ng's Coursera course for Natural Language Processing in the General Courses section.
Added a small paragraph about GANs under the "Note for further studies" section with Andrew Ng's Coursera course.

If anyone has more resources to add please do so. @lisabecker Thank you for the contribution 😃 . Do checkout other repositories and star them if you like our approach , it keeps us motivated to do the good work. We'd merge your resources shortly.

@GlazeDonuts you can also add research papers of gans and related recent work done.


DOC: Better Annotations docs

Added some cross-references and we're now using annotations_from_events in the tutorial – a function which I only came across accidentally, as it wasn't mentioned anywhere in the docs.

annotations are not showing up on the final plot in the tutorial. But that is not a result of this PR, it's probably a bug I introduced with the raw plotting overhaul. stable master & this PR.

@drammock

annotations are not showing up on the final plot in the tutorial. But that is not a result of this PR, it's probably a bug I introduced with the raw plotting overhaul.

Yep, already opened an issue here: #8421


dart:ffi platform-dependent struct layout

On different platforms structs have different layouts.
We can reproduce the struct layout algorithm (field sizes + alignment + padding) for platforms.
So that dart:ffi users do not have to write the following.
@ffi.struct({
  'x64 && linux': { // Layout on 64-bit Linux
    'x': ffi.Field(ffi.Double, 0),
    'y': ffi.Field(ffi.Double, 8),
    'next': ffi.Field(ffi.Double, 16)
  },
  'arm && ios': {  // Layout on 32-bit iOS
    'x': ffi.Field(ffi.Float, 4),
    'y': ffi.Field(ffi.Float, 8),
    'next': ffi.Field(ffi.Pointer, 0)
  },
})
class Coord extends ffi.Pointer<Coord> {
  double x;
  double y;
  Coord next;
}

However, in some cases ifdefs might be used to differentiate between platforms. Either users need to be able to specify various layouts, or we need to invoke the C compiler to learn about the struct layouts.

Structs with native integers, floats, and pointers are supported on all platforms already. We already have issues open for extending our support to nested structs, inline arrays, and unions. That leaves ifdef-based platform differences:

However, in some cases ifdefs might be used to differentiate between platforms. Either users need to be able to specify various layouts, or we need to invoke the C compiler to learn about the struct layouts.

The current workaround is to define different structs for different platforms, duplicate all the signatures that use these structs, and branch on platform at runtime.
We could try to make this more ergonomic by somehow unifying the different structs into one nominal struct on the Dart-side as described above, but that would considerably complicate passing structs by value in AOT. The Dart VM needs to know the exact layout of the struct at compile time. See discussion in https://github.com/dart-lang/sdk/issues/37842.
So for now, we will stick with the workaround.
cc @mkustermann

We will stick with not unifying it into one nominal struct.

We support all normal struct layout rules (when not using ifdefs in the API).
Supporting ifdefs would break IDE support, does some struct field exist yes or no? The analyzer does not know what is the target architecture.

The current workaround is to define different structs for different platforms, duplicate all the signatures that use these structs, and branch on platform at runtime.

We can make this more ergonomic by generating this code from the header file https://github.com/dart-lang/sdk/issues/35843.


[New Feature]: Add a command to copy files from container to host

🚀 New Feature
What do you want?

Why do you want it?

Acceptance criteria / What expect / Requirements

[ ] functional req x
[ ] non-functional req x
[ ] ...

Proposed Solution / HOW
Tasks

[ ] Research topic x
[ ] Find a solution for issue x
[ ] Implement a feature x
[ ] ...

Written Scenario

Design
Screen Wireframe, Mockup, StoryBoard
Architectural drawings
Describe alternatives you've considered

closed by 204c669b35a5db92e9fb7d0f48e99ad963f3bf67


feat(semver): releaseCommitMessageFormat option

Description
This passes the releaseCommitMessageFormat through from the options to standard-verison
fixes: #333

Just merged your work into #395, thanks a lot for the contrib!


vault 1.6.3

Updating package vault to release v1.6.3.

Anything wrong with this PR? :grinning:

nope! just slipped through somehow. Sorry!


Code not executed in success callback when app is in background

Plugin version: 2.1.2
Platform: iOS
OS version: 9.3.4
Device manufacturer and model: Apple, iPhone 6s Plus
Plugin configuration options:

desiredAccuracy: 1,
stationaryRadius: 10,
distanceFilter: 10,
startOnBoot: true,
debug: true

Context
I have setup a whole Meteor project, which integrates well with cordova and its plugins. I'm trying to use your plugin to determine the user's location when the app is closed or in the background.
Expected Behavior
Every time I get a location from the plugin, I will send this to the server for further processing. I want to get the user's location when my app is in the foreground (this part works well), but I also want to receive the location and execute some Meteor code when the app is in the background or when the app is closed and this is where the problem lies.
Actual Behavior
So, everything works well in the foreground, when the app is open. When I go to the home screen of my iPhone (I don't kill the app), my code is no longer executed in the success callback. When I enable debug-mode and I close the app, he will give status updates once in a while.
Context
The whole project relies on sending the user's location to the server where further actions are taken.

In background location are queued. When app enters foreground again, js callback is called with locations from queue (in serial). When you need to send locations when in background use url or synUrl option.

I've set up an API for the url. When I'm in the foreground, the API does get called by the location service, but again, when I enter the background, without killing the app, the API receives no further calls.

Yes and no. The native part of plugin is working (you're receiving location updates). However the tricky part is to confirm if it possible to call js callback when app is in background. On Android, it is possible, but on iOS it seems it is not. But need to investigate bit more to confirm that. What you actually do with location updates in your app ?

Also try option saveBatteryOnBackground: false

Like I said in my comment above, I've set up an API for the option url. When I'm in the foreground, the API does get called by the background location plugin, but again, when I enter the background, without killing the app, the API receives no further calls. So that's not working either.

I don't see you using option url. Not in logs, not in configure options you have posted.

Is it confirmed that callback won't work in background mode on iOS ? Its been long since I tested on iOS and I think callbacks were working , so there was no issue.
If the callbacks are not working in latest versions of plugin , its going to be a big bummer. I don't know ios native at all to handle it lol. :D  I could do android , but now I guess its time for iOS.
I will have to test it.

No it is not confirmed yet. So will appreciate your time to do a test. If you're able to confirm callback are not called in latest alpha, then please post here last version they were working.

Just checked in simulator. JS callbacks were called in background like a charm.

Just checked on iPhone ios7 and JS callbacks were also called in background. So it seems my assumtion mentioned here was just wrong. Didn't found any problem with callbacks on iOS in background.
If you want to do test on your device try special branch of sample app:
git clone https://github.com/mauron85/cordova-plugin-background-geolocation-example.git
cd cordova-plugin-background-geolocation-example
git checkout issues/135

Edit server url on line: 247 in app.js to your local server:
cordova platform add ios
npm -g install ios-deploy
cordova run ios --device

Then in your server output check incomming locations, they will have additional attribute postedBy: 'js' meaning they was send from js callback.
Simple Local server in node:
var express    = require('express');
var bodyParser = require('body-parser');
var app = express();

// parse application/json
app.use(bodyParser.json({ limit: '50mb', type : '*/*' })); // force json

app.post('/locations', function(request, response){
    console.log('-----------Location-----------');
    console.log('Headers:\n', request.headers);
    console.log('Locations:', JSON.stringify(request.body));
    // console.log('------------------------------');
    response.set("Connection", "close");
    response.sendStatus(200);
});

app.listen(3000);
console.log('Server started...');

@mauron85  Thanks for prompt response and testing it.  I will report again once I test it.  Your test results are gave me a huge relief for now.   :p  Thanks again

@mauron85 @uzumakinaruto123
How long do you guys test the app running in the background mode?
I have a server where app gets the location and it posts to the server for about 8 minutes. The app is working fine in the background mode for only 8 minutes then I stop receiving the updates on the server.

I receive background updates on the latest version of iOS, because my counter gets incremented. If you by chance are using local notifications, you won't receive it (normally) until you open the app, but that has nothing to do with location updates.

@siddiq More details please (use issue template).

@loolooii local notifications? you mean some other cordova plugin?

yeah ! normal js will work. cordova plugin code wont work since it requires device to be ready.

Notice: this issue has been closed because it has been reported for branch 2.x or later. It could be already fixed in v3 or is not relevant anymore. You may reopen this issue if it has been closed in error.


feat: add route to return platform known resources (#22135)

(cherry picked from commit 7aaba338b2c4eeda57a6155badedad1900645855)
Backports #22135

[x] Well-formatted commit messages
[x] Rebased/mergeable
[x] Tests pass

(Clean cherry pick except minor change to the list of resources in the tests, since 2.0 does not have Notebooks and Annotations resources).


Update Service Fabric Manifests cannot find ServiceManifest.xml file

Environment

Server - VSTS
Agent - Hosted VS2017
Service Fabric Service Project is using Microsoft.VisualStudio.Azure.Fabric.MSBuild 1.6.6 NuGet package
On .net framework 4.7.1

Issue Description
I am trying to build, package and deploy in a service fabric application, and have started with the "Azure Service Fabric Deployment" template and added a few other tasks/dependencies for our solution (as a test) to get the whole solution compiling and building.
I've tested packaging the service fabric application on a local computer using Visual Studio 2017 as well as via MSBuild in the command line. The packages would be created correctly with all files created as expected (Including the ServiceManifest.xml file in the correct path).
The issue is the "Update Service Fabric Manifest" task in the VSTS Build Definition for the service application is complaining about not being able to find the ServiceManifest.xml file:

2018-07-19T09:28:31.4619434Z ##[error]Cannot find path 'D:\a\3\a\applicationpackage\xxxxxx.xxxxxx.FabricServicePkg\ServiceManifest.xml' because it does not exist.

I'm have tried all sorts of things including changing version of the Fabric MSBuild, checking if the local MS Build parameters for packaging the service fabric package works, but with no luck. If anyone can give a hint of some sort that would be most appreciated!
[Include task name(s), screenshots and any other relevant details]
The configuration used for the Update Service Fabric Manifest task:

Error logs

@whozDougie I noticed that there is a "Delete files" task in the BD before Update Service Manifest task. Are you sure, if that task is not deleting the ServiceManifest file ?
You can see if the generated build artifacts contain the ServiceManifest file.
You can do this two ways

If the Agent is private you can go and access the artifacts directly.
If you are using hosted agent, you would need the BD to succeed. To do that you can temporarily disable all tasks after "delete files" task except publish artifacts task and then download and explore the generated Artifacts. (precautionarily you can disable any Release Triggers related to this BD)

@hiyadav Thanks for responding.
I don't believe it is deleting the ServiceManifest file as the parameters specify for it to delete ***.pdb files (as per the template).

In case you were wondering, the copy files task copies ***.pdb files, and it isn't able to find any either:

It seems that .sfproj is not able to package the application properly.
@NCarlsonMSFT  can you help here ?

Could you add the flag /verbosity:diag to your package step? That will give more information about why the package task is behaving the way it is.
Another thing that may be useful for diagnostics would be to upload your output folder as an artifact after the solution build, but before the package. That would check fi something strange is happening on the initial build.
Lastly does your solution use any projects whose build architecture is not x64? That sometimes causes issues. If possible, build all of your projects as x64. If not, ensure that the default architecture of your projects is the architecture you want built.

I will give that last point a shot. Will try to compile everything in x64. At the moment, the dependencies are compiling with "Any CPU".
Will post shortly - appreciate your help on this.

Hi @NCarlsonMSFT ,
Thanks for giving us those hints. Here are the results of the attempt:

Added /verbosity:diag to the package step and have attached the log.
Packagelog.txt
Configured uploading the output of the build, checked the artifacts and can confirm all binaries were built correctly.
Ran a Build with the DB on VS Host 2017 in x64, and it appears it has made no difference to the Packaging task output: it only packaged the ApplicationManifest.xml file.

Hope this will help in the investigation.
Thanks. In parallel, we are testing with a brand new Service Fabric solution. Will let you know how we go with that.
Kinds Regards,
Doug

Looking at your log it seems like your project does not reference any services (line 1621):
2018-07-26T00:42:48.2860543Z Target "GetServiceProjectReferences" skipped, due to false condition; ( '@(ProjectReference)' != '' ) was evaluated as ( '' != '' ).
Where are you expecting the service manifests to come from?

The project is actually defined in the sfproj file.

Is that build parameter meant to be defined somewhere in the build tasks?

Looking at your project file, I can't think of why it would not have any references to your ProjectReference in the log. Are you absolutely sure the project in the comment is the one being built? We've run into issues in the past where after upgrade the old project got added in a backup folder and that was accidentally built instead of the true project.
One other thing to try would be to add an extra build task using the /pp: flag. This will run the preprocessor on the project and generate the full msbuild file that would be builf and save it to . Looking at that file may explain why the ProjectReference is not being honored.

@whozDougie did you get a chance to try out what @NCarlsonMSFT suggested above ?

@whozDougie are you still facing this issue ?

@whozDougie - I am closing the issue. Feel free to re-open if you need more help.

@whozDougie - I am closing the issue. Feel free to re-open if you need more help.


1.12 - Minor conflict with Chisel mod

The mod somewhat removes the chisel recipe for the chiseled carpets. The carpets do exist in game but for some reason when you try to chisel a carpet, the chiseled ones do not show. (What i did for now was to create custom recipes for the ones I use.)
After I disable "inspirations" chisel seems to work fine. (I am hoping a compatibility could be worked out.)
Please refer to the screenshot below & original post created:
https://github.com/Chisel-Team/Chisel/issues/828

Versions:

Minecraft: 1.12.2

Forge: <IP_ADDRESS>54

Mantle: <IP_ADDRESS>

Inspirations: 1.12.2 - 0.2.9

Chisel: MC1.12.2 - <IP_ADDRESS>

Inspirations does replace the carpet block, to allow them to conform to the shape of stairs below. If you disable that feature Chisel would work again. Fixing the issue properly needs to be done on Chisel’s side, by not using the static reference.

Closing this as I am dropping 1.12 support. For 1.16 hopefully Chisel will not have this problem