Indexer panics when the source is exhausted

When the source ends, it exits successfully but then the indexer panicks just after. Kill switch is activated and then the pipeline is restarted.
quickwit git:(demux-job) ✗ cargo r --release index --index-id hdfs_logs --metastore-uri file://Users/fmassot/Documents/quickwit/repos/quickwit-2/indexes --source-config-path ../quickwit-2/hdfs_source_config.json --data-dir-path datadir
    Finished release [optimized] target(s) in 0.47s
     Running `target/release/quickwit index --index-id hdfs_logs --metastore-uri 'file://Users/fmassot/Documents/quickwit/repos/quickwit-2/indexes' --source-config-path ../quickwit-2/hdfs_source_config.json --data-dir-path datadir`
2021-11-12T11:58:48.769+00:00  INFO quickwit: version="0.1.0" commit="a14f8d3"
2021-11-12T11:58:48.776+00:00  INFO {index=hdfs_logs gen=0}: quickwit_indexing::actors::pipeline_supervisor: spawn-indexing-pipeline root_dir=datadir/hdfs_logs merge_policy=StableMultitenantWithTimestampMergePolicy { max_merge_docs: 1000000, min_level_num_docs: 10000, merge_factor: 10, merge_factor_max: 12, demux_factor: 6, demux_field_name: Some("tenant_id"), merge_enabled: true, demux_enabled: false }
2021-11-12T11:58:48.778+00:00  INFO {index=hdfs_logs gen=0}:{actor=GarbageCollector}: quickwit_indexing::actors::garbage_collector: garbage-collect-operation
2021-11-12T11:58:48.834+00:00  INFO {index=hdfs_logs gen=0}:{actor=Indexer}:{msg_id=1}: quickwit_indexing::actors::indexer: new-split split_id=01FMA07EYBCTM0C82ZECCSMDH2
 Num docs   97591 Parse errs     0 PublSplits   0 Input size    36MB Thrghput 35.87MB/s Time 00:00:01
 Num docs   97591 Parse errs     0 PublSplits   0 Input size    36MB Thrghput 17.99MB/s Time 00:00:02
 Num docs  212111 Parse errs     0 PublSplits   0 Input size    78MB Thrghput 26.12MB/s Time 00:00:03
 Num docs  322601 Parse errs     0 PublSplits   0 Input size   119MB Thrghput 29.84MB/s Time 00:00:04
 Num docs  435730 Parse errs     0 PublSplits   0 Input size   161MB Thrghput 31.40MB/s Time 00:00:05
 Num docs  548707 Parse errs     0 PublSplits   0 Input size   203MB Thrghput 41.88MB/s Time 00:00:06
 Num docs  658295 Parse errs     0 PublSplits   0 Input size   244MB Thrghput 41.40MB/s Time 00:00:07
 Num docs  768303 Parse errs     0 PublSplits   0 Input size   284MB Thrghput 41.19MB/s Time 00:00:08
 Num docs  877438 Parse errs     0 PublSplits   0 Input size   324MB Thrghput 40.75MB/s Time 00:00:09
2021-11-12T11:58:57.993+00:00  INFO {index=hdfs_logs gen=0}:{actor=Indexer}:{msg_id=749}: quickwit_indexing::actors::indexer: send-to-packager commit_trigger=NumDocsLimit split="01FMA07EYBCTM0C82ZECCSMDH2" num_docs=1000244
2021-11-12T11:58:57.993+00:00  INFO {index=hdfs_logs gen=0}:{actor=Packager}:{msg_id=46 split_ids=["01FMA07EYBCTM0C82ZECCSMDH2"]}: quickwit_indexing::actors::packager: commit-split
2021-11-12T11:58:58.074+00:00  INFO {index=hdfs_logs gen=0}:{actor=Indexer}:{msg_id=750}: quickwit_indexing::actors::indexer: new-split split_id=01FMA07QY9ZJJEF0ZHEPDR5NRE
2021-11-12T11:58:58.629+00:00  INFO {index=hdfs_logs gen=0}:{actor=FileSource}:{msg_id=772}: quickwit_indexing::source::file_source: EOF
2021-11-12T11:58:58.641+00:00  INFO {index=hdfs_logs gen=0}:{actor=FileSource}: quickwit_actors::async_actor: actor-exit actor_name="FileSource-icy-KzfS" exit_status=Success
2021-11-12T11:58:58.771+00:00  INFO {index=hdfs_logs gen=0}:{actor=Indexer}: quickwit_actors::sync_actor: exit exit_status=Success
2021-11-12T11:58:58.771+00:00  INFO {index=hdfs_logs gen=0}:{actor=Indexer}: quickwit_indexing::actors::indexer: send-to-packager commit_trigger=NoMoreDocs split="01FMA07QY9ZJJEF0ZHEPDR5NRE" num_docs=44977
 Num docs  984082 Parse errs     0 PublSplits   0 Input size   364MB Thrghput 40.12MB/s Time 00:00:10
2021-11-12T11:58:58.851+00:00 ERROR {index=hdfs_logs gen=0}:{msg_id=71}: quickwit_actors::actor_handle: actor-exit-without-success actor="Indexer-weathered-jdx4" exit_status=Panicked
2021-11-12T11:58:58.851+00:00 ERROR {index=hdfs_logs gen=0}:{msg_id=71}: quickwit_indexing::actors::pipeline_supervisor: indexing pipeline error. healthy=["Packager-falling-AKV9", "Uploader-blue-Aifh", "Publisher-twilight-PmW9", "GarbageCollector-icy-fhe5", "MergePlanner-damp-ia5w", "MergeSplitDownloader-twilight-iRYj", "MergeExecutor-bold-fPvi", "MergePackager-sparkling-CGsd", "MergeUploader-holy-uWKT", "MergePublisher-broken-oSEZ"] failure_or_unhealthy_actors=["Indexer-weathered-jdx4"] success=["FileSource-icy-KzfS"]
2021-11-12T11:58:58.851+00:00  WARN {index=hdfs_logs gen=0}:{msg_id=71}: quickwit_actors::kill_switch: kill-switch-activated
2021-11-12T11:58:58.851+00:00  WARN {index=hdfs_logs gen=0}:{msg_id=71}: quickwit_actors::kill_switch: kill-switch-activated
2021-11-12T11:58:58.851+00:00  WARN {index=hdfs_logs gen=0}:{msg_id=71}: quickwit_actors::kill_switch: kill-switch-activated
2021-11-12T11:58:58.851+00:00  WARN {index=hdfs_logs gen=0}:{msg_id=71}: quickwit_actors::kill_switch: kill-switch-activated
2021-11-12T11:58:58.851+00:00  WARN {index=hdfs_logs gen=0}:{msg_id=71}: quickwit_actors::kill_switch: kill-switch-activated
2021-11-12T11:58:58.851+00:00  WARN {index=hdfs_logs gen=0}:{msg_id=71}: quickwit_actors::kill_switch: kill-switch-activated
2021-11-12T11:58:58.851+00:00  WARN {index=hdfs_logs gen=0}:{msg_id=71}: quickwit_actors::kill_switch: kill-switch-activated
2021-11-12T11:58:58.851+00:00  WARN {index=hdfs_logs gen=0}:{msg_id=71}: quickwit_actors::kill_switch: kill-switch-activated
2021-11-12T11:58:58.851+00:00  WARN {index=hdfs_logs gen=0}:{msg_id=71}: quickwit_actors::kill_switch: kill-switch-activated
2021-11-12T11:58:58.851+00:00  WARN {index=hdfs_logs gen=0}:{msg_id=71}: quickwit_actors::kill_switch: kill-switch-activated
2021-11-12T11:58:58.851+00:00  WARN {index=hdfs_logs gen=0}:{msg_id=71}: quickwit_actors::kill_switch: kill-switch-activated
2021-11-12T11:58:58.851+00:00  WARN {index=hdfs_logs gen=0}:{msg_id=71}: quickwit_actors::kill_switch: kill-switch-activated
2021-11-12T11:58:58.851+00:00  WARN {index=hdfs_logs gen=0}:{msg_id=71}: quickwit_actors::kill_switch: kill-switch-activated
2021-11-12T11:58:58.851+00:00  INFO {index=hdfs_logs gen=0}:{actor=Uploader}: quickwit_actors::async_actor: actor-exit actor_name="Uploader-blue-Aifh" exit_status=Killed
2021-11-12T11:58:58.851+00:00  INFO {index=hdfs_logs gen=0}:{actor=MergeSplitDownloader}: quickwit_actors::async_actor: actor-exit actor_name="MergeSplitDownloader-twilight-iRYj" exit_status=Killed
2021-11-12T11:58:58.851+00:00  INFO {index=hdfs_logs gen=0}:{actor=Publisher}: quickwit_actors::async_actor: actor-exit actor_name="Publisher-twilight-PmW9" exit_status=Killed
2021-11-12T11:58:58.851+00:00  INFO {index=hdfs_logs gen=0}:{actor=GarbageCollector}: quickwit_actors::async_actor: actor-exit actor_name="GarbageCollector-icy-fhe5" exit_status=Killed
2021-11-12T11:58:58.851+00:00  INFO {index=hdfs_logs gen=0}:{actor=MergePlanner}: quickwit_actors::sync_actor: exit exit_status=Killed
2021-11-12T11:58:58.851+00:00  INFO {index=hdfs_logs gen=0}:{actor=MergePublisher}: quickwit_actors::async_actor: actor-exit actor_name="MergePublisher-broken-oSEZ" exit_status=Killed
2021-11-12T11:58:58.851+00:00  INFO {index=hdfs_logs gen=0}:{actor=MergeUploader}: quickwit_actors::async_actor: actor-exit actor_name="MergeUploader-holy-uWKT" exit_status=Killed
2021-11-12T11:58:58.915+00:00 ERROR {index=hdfs_logs gen=0}:{actor=Packager}: quickwit_actors::actor: exit activating-kill-switch actor=Packager-falling-AKV9 exit_status=Failure(Commit split `IndexedSplit { id: "01FMA07EYBCTM0C82ZECCSMDH2", dir: "/Users/fmassot/Documents/quickwit/repos/quickwit/datadir/hdfs_logs/scratch/split-01FMA07EYBCTM0C82ZECCSMDH2-eEDNuj" }` failed

Caused by:
    0: An IO error occurred: 'Directory kill switch was activated.'
    1: Directory kill switch was activated.)
2021-11-12T11:58:58.915+00:00  WARN {index=hdfs_logs gen=0}:{actor=Packager}: quickwit_actors::kill_switch: kill-switch-activated
2021-11-12T11:58:58.916+00:00  INFO {index=hdfs_logs gen=0}:{actor=Packager}: quickwit_actors::sync_actor: exit exit_status=Failure(cause=Commit split `IndexedSplit { id: "01FMA07EYBCTM0C82ZECCSMDH2", dir: "/Users/fmassot/Documents/quickwit/repos/quickwit/datadir/hdfs_logs/scratch/split-01FMA07EYBCTM0C82ZECCSMDH2-eEDNuj" }` failed

Caused by:
    0: An IO error occurred: 'Directory kill switch was activated.'
    1: Directory kill switch was activated.)
2021-11-12T11:58:58.919+00:00 ERROR {index=hdfs_logs gen=0}:{actor=Indexer}: quickwit_actors::sync_actor: Finalizing failed error=The channel is closed.
2021-11-12T11:58:58.932+00:00  INFO {index=hdfs_logs gen=0}:{actor=MergePackager}: quickwit_actors::sync_actor: exit exit_status=Killed
2021-11-12T11:58:58.935+00:00  INFO {index=hdfs_logs gen=0}:{actor=MergeExecutor}: quickwit_actors::sync_actor: exit exit_status=Killed
 Num docs  984082 Parse errs     0 PublSplits   0 Input size   364MB Thrghput 30.03MB/s Time 00:00:11
2021-11-12T11:58:59.946+00:00  INFO {index=hdfs_logs gen=0}:{msg_id=78}: quickwit_indexing::actors::pipeline_supervisor: spawn-indexing-pipeline root_dir=datadir/hdfs_logs merge_policy=StableMultitenantWithTimestampMergePolicy { max_merge_docs: 1000000, min_level_num_docs: 10000, merge_factor: 10, merge_factor_max: 12, demux_factor: 6, demux_field_name: Some("tenant_id"), merge_enabled: true, demux_enabled: false }
2021-11-12T11:58:59.950+00:00  INFO {index=hdfs_logs gen=0}:{msg_id=78}:{actor=GarbageCollector}: quickwit_indexing::actors::garbage_collector: garbage-collect-operation
2021-11-12T11:59:00.008+00:00  INFO {index=hdfs_logs gen=0}:{msg_id=78}:{actor=Indexer}:{msg_id=1}: quickwit_indexing::actors::indexer: new-split split_id=01FMA07SVF4JQVBX1VN82QEDZ4
 Num docs  984082 Parse errs     0 PublSplits   0 Input size   364MB Thrghput 20.01MB/s Time 00:00:12
 Num docs 1068221 Parse errs     0 PublSplits   0 Input size   395MB Thrghput 17.65MB/s Time 00:00:13
 Num docs 1178706 Parse errs     0 PublSplits   0 Input size   436MB Thrghput 18.02MB/s Time 00:00:14
 Num docs 1290475 Parse errs     0 PublSplits   0 Input size   477MB Thrghput 28.41MB/s Time 00:00:15
 Num docs 1402245 Parse errs     0 PublSplits   0 Input size   519MB Thrghput 38.77MB/s Time 00:00:16
 Num docs 1512569 Parse errs     0 PublSplits   0 Input size   560MB Thrghput 41.25MB/s Time 00:00:17
 Num docs 1622999 Parse errs     0 PublSplits   0 Input size   601MB Thrghput 41.29MB/s Time 00:00:18
 Num docs 1730819 Parse errs     0 PublSplits   0 Input size   640MB Thrghput 40.60MB/s Time 00:00:19
 Num docs 1834575 Parse errs     0 PublSplits   0 Input size   678MB Thrghput 39.89MB/s Time 00:00:20
2021-11-12T11:59:09.385+00:00  INFO {index=hdfs_logs gen=0}:{msg_id=78}:{actor=Indexer}:{msg_id=749}: quickwit_indexing::actors::indexer: send-to-packager commit_trigger=NumDocsLimit split="01FMA07SVF4JQVBX1VN82QEDZ4" num_docs=1000244
2021-11-12T11:59:09.385+00:00  INFO {index=hdfs_logs gen=0}:{msg_id=78}:{actor=Packager}:{msg_id=47 split_ids=["01FMA07SVF4JQVBX1VN82QEDZ4"]}: quickwit_indexing::actors::packager: commit-split
2021-11-12T11:59:09.443+00:00  INFO {index=hdfs_logs gen=0}:{msg_id=78}:{actor=Indexer}:{msg_id=750}: quickwit_indexing::actors::indexer: new-split split_id=01FMA08329N4PHW46AFQQNJ1N9
 Num docs 1938438 Parse errs     0 PublSplits   0 Input size   717MB Thrghput 39.27MB/s Time 00:00:21
2021-11-12T11:59:10.000+00:00  INFO {index=hdfs_logs gen=0}:{msg_id=78}:{actor=FileSource}:{msg_id=772}: quickwit_indexing::source::file_source: EOF
2021-11-12T11:59:10.013+00:00  INFO {index=hdfs_logs gen=0}:{msg_id=78}:{actor=FileSource}: quickwit_actors::async_actor: actor-exit actor_name="FileSource-cool-YP9A" exit_status=Success
2021-11-12T11:59:10.142+00:00  INFO {index=hdfs_logs gen=0}:{msg_id=78}:{actor=Indexer}: quickwit_actors::sync_actor: exit exit_status=Success
2021-11-12T11:59:10.142+00:00  INFO {index=hdfs_logs gen=0}:{msg_id=78}:{actor=Indexer}: quickwit_indexing::actors::indexer: send-to-packager commit_trigger=NoMoreDocs split="01FMA08329N4PHW46AFQQNJ1N9" num_docs=44977
 Num docs 2008551 Parse errs     0 PublSplits   0 Input size   743MB Thrghput 35.52MB/s Time 00:00:22
2021-11-12T11:59:10.915+00:00  INFO {index=hdfs_logs gen=0}:{msg_id=78}:{actor=Packager}:{msg_id=47 split_ids=["01FMA07SVF4JQVBX1VN82QEDZ4"]}: quickwit_indexing::actors::packager: create-packaged-split
2021-11-12T11:59:10.986+00:00 ERROR {index=hdfs_logs gen=0}:{msg_id=149}: quickwit_actors::actor_handle: actor-exit-without-success actor="Indexer-fragrant-WBlt" exit_status=Panicked
2021-11-12T11:59:10.986+00:00 ERROR {index=hdfs_logs gen=0}:{msg_id=149}: quickwit_indexing::actors::pipeline_supervisor: indexing pipeline error. healthy=["Packager-patient-oxst", "Uploader-billowing-Gn0I", "Publisher-hidden-QO26", "GarbageCollector-divine-q3sj", "MergePlanner-weathered-bbkW", "MergeSplitDownloader-wild-hSTb", "MergeExecutor-wandering-fGCn", "MergePackager-frosty-Dsx8", "MergeUploader-shy-WvO0", "MergePublisher-morning-tkg8"] failure_or_unhealthy_actors=["Indexer-fragrant-WBlt"] success=["FileSource-cool-YP9A"]
2021-11-12T11:59:10.986+00:00  WARN {index=hdfs_logs gen=0}:{msg_id=149}: quickwit_actors::kill_switch: kill-switch-activated

In debug mode, we have:
2021-11-12T12:10:12.077+00:00  INFO {index=hdfs_logs gen=0}:{actor=Indexer}: quickwit_actors::sync_actor: exit exit_status=Success
2021-11-12T12:10:12.077+00:00  INFO {index=hdfs_logs gen=0}:{actor=Indexer}: quickwit_indexing::actors::indexer: send-to-packager commit_trigger=NoMoreDocs split="01FMA0W9DM3C5YWD7XSMQKR9NF" num_docs=44977
2021-11-12T12:10:12.077+00:00 DEBUG {index=hdfs_logs gen=0}:{actor=Indexer}: quickwit_actors::actor: send from=Indexer-misty-NXVo to=Packager-young-yl78 msg=IndexedSplitBatch { splits: [IndexedSplit { id: "01FMA0W9DM3C5YWD7XSMQKR9NF", dir: "/Users/fmassot/Documents/quickwit/repos/quickwit/datadir/hdfs_logs/scratch/split-01FMA0W9DM3C5YWD7XSMQKR9NF-q07JEI" }] }
2021-11-12T12:10:12.593+00:00 DEBUG tantivy::indexer::segment_writer: fastfield-serialize
2021-11-12T12:10:12.594+00:00 DEBUG tantivy::fastfield::serializer: choosing fast field codec Bitpacked for field_id Field(1)
2021-11-12T12:10:12.634+00:00 DEBUG tantivy::fastfield::serializer: choosing fast field codec Bitpacked for field_id Field(2)
2021-11-12T12:10:12.665+00:00 DEBUG tantivy::indexer::segment_writer: resort-docstore
2021-11-12T12:10:12.665+00:00 DEBUG tantivy::indexer::segment_writer: serializer-close
 Num docs 1032571 Parse errs     0 PublSplits   0 Input size   382MB Thrghput 28.00MB/s Time 00:00:14
2021-11-12T12:10:12.902+00:00  INFO {index=hdfs_logs gen=0}:{actor=Packager}:{msg_id=62 split_ids=["01FMA0VX79WM0K2MWRFP93JMW2"]}: tantivy::indexer::index_writer: Prepared commit 1000245
2021-11-12T12:10:12.902+00:00  INFO {index=hdfs_logs gen=0}:{actor=Packager}:{msg_id=62 split_ids=["01FMA0VX79WM0K2MWRFP93JMW2"]}: tantivy::indexer::prepared_commit: committing 1000245
2021-11-12T12:10:12.902+00:00  INFO tantivy::indexer::segment_updater: save metas
2021-11-12T12:10:12.902+00:00 DEBUG tantivy::directory::mmap_directory: Atomic Write "meta.json"
2021-11-12T12:10:12.921+00:00 DEBUG tantivy::indexer::segment_updater: Saved metas Ok("{\n  \"index_settings\": {\n    \"docstore_compression\": \"lz4\"\n  },\n  \"segments\": [\n    {\n      \"segment_id\": \"a133d4ab-f3db-4b8f-8f88-17b2d3bbdfb1\",\n      \"max_doc\": 1000244,\n      \"deletes\": null\n    }\n  ],\n  \"schema\": [\n    {\n      \"name\": \"_tags\",\n      \"type\": \"text\",\n      \"options\": {\n        \"indexing\": {\n          \"record\": \"basic\",\n          \"tokenizer\": \"raw\"\n        },\n        \"stored\": false\n      }\n    },\n    {\n      \"name\": \"timestamp\",\n      \"type\": \"i64\",\n      \"options\": {\n        \"indexed\": true,\n        \"fast\": \"single\",\n        \"stored\": true\n      }\n    },\n    {\n      \"name\": \"tenant_id\",\n      \"type\": \"u64\",\n      \"options\": {\n        \"indexed\": true,\n        \"fast\": \"single\",\n        \"stored\": true\n      }\n    },\n    {\n      \"name\": \"severity_text\",\n      \"type\": \"text\",\n      \"options\": {\n        \"indexing\": {\n          \"record\": \"basic\",\n          \"tokenizer\": \"default\"\n        },\n        \"stored\": true\n      }\n    },\n    {\n      \"name\": \"body\",\n      \"type\": \"text\",\n      \"options\": {\n        \"indexing\": {\n          \"record\": \"basic\",\n          \"tokenizer\": \"default\"\n        },\n        \"stored\": true\n      }\n    },\n    {\n      \"name\": \"resource.service\",\n      \"type\": \"text\",\n      \"options\": {\n        \"indexing\": {\n          \"record\": \"basic\",\n          \"tokenizer\": \"default\"\n        },\n        \"stored\": true\n      }\n    },\n    {\n      \"name\": \"attributes.class\",\n      \"type\": \"text\",\n      \"options\": {\n        \"indexing\": {\n          \"record\": \"basic\",\n          \"tokenizer\": \"default\"\n        },\n        \"stored\": true\n      }\n    }\n  ],\n  \"opstamp\": 1000245\n}")
2021-11-12T12:10:12.921+00:00  INFO tantivy::indexer::segment_updater: Running garbage collection
2021-11-12T12:10:12.921+00:00  INFO tantivy::directory::managed_directory: Garbage collect
2021-11-12T12:10:12.921+00:00 DEBUG tantivy::directory::mmap_directory: Open Write ".tantivy-meta.lock"
2021-11-12T12:10:12.933+00:00 DEBUG {index=hdfs_logs gen=0}:{msg_id=98}: quickwit_actors::actor: from=Pipeline-wild-0OMn send=Scheduler-rough-CBbT msg=ScheduleEvent { timeout: 1s }
2021-11-12T12:10:12.933+00:00 ERROR {index=hdfs_logs gen=0}:{msg_id=99}: quickwit_actors::actor_handle: actor-exit-without-success actor="Indexer-misty-NXVo" exit_status=Panicked
2021-11-12T12:10:12.933+00:00 ERROR {index=hdfs_logs gen=0}:{msg_id=99}: quickwit_indexing::actors::pipeline_supervisor: indexing pipeline error. healthy=["Packager-young-yl78", "Uploader-bold-njBB", "Publisher-winter-PmHk", "GarbageCollector-delicate-Ynee", "MergePlanner-delicate-2JZb", "MergeSplitDownloader-patient-zoPX", "MergeExecutor-misty-btvP", "MergePackager-lingering-nypW", "MergeUploader-little-N5ob", "MergePublisher-twilight-LLdF"] failure_or_unhealthy_actors=["Indexer-misty-NXVo"] success=["FileSource-lively-rp4v"]

Interpretation
Once the source is exhausted, the indexer will exit successfully and execute the finalize function. Note that if the packager is already processing a message, the indexer finalize function will block until the packager is ready.
Everything seems fine here.
But just before calling finalize function, we do ctx.exit(&exit_status)  to change the state of the indexer actor.... and now if we do a health check on the indexer actor, we have a problem:  the actor state has changed to Exit but we don't know yet what its exit status is.
And when we do a health check, we call actor_exit_status.borrow().clone().unwrap_or(ActorExitStatus::Panicked)
and now we think the indexer has panicked => kill switch activated => boom => pipeline restarts
Proposal
What we could do is just call ctx.exit(&exit_status) after finalize call so that a health check will not see the actor as panicking.

Additional thoughts.
I think this issue highlights two competing features of the actor framework:

the fact that we want the actor to gracefully exit
the fact that we want to react fast when process_msg returns an error and activate as soon as possible the kill switch button

Solution 1: Always be graceful as it is ok to wait a little bit before activating the kill switch
In this case, we just activate the kill switch button + update the actor state after the finalize function.
Solution 2: Reactivity first, activate the kill switch immediately

when the actor exit with a success, first call the finalize function and then update the actor state to avoid the issue we have here
when the actor exit with an error, activate the kill switch immediately, execute the finalize function, and update the actor state.
I don't really like this solution because we have temporary a kill switch that is activated and an actor state still at Running. We could update immediately the state on an error exit status but we take the risk of having a Panic exit status for this actor in the finalize function is taking too much time.

Solution 3
Keep things as it is but... send the exit status as soon as we can to avoid inconsistent couple (state, actor exit status).
This would mean that just after
ctx.exit(&exit_status);
if exit_status.is_some() {
    exit_status_tx.send(exit_status);
}

I like solution 3.

Sorry for the late answer. Great analysis.
I like solution 1.
My preference is coming from the fact that it can be useful to have the finalize function panic and change the status.

yes, that was my first choice at the start, I think I'm ok with 1 and 2. Let's go for the first one.


python310Packages.pyswitchbot: 0.18.14 -> 0.19.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.pyswitchbot is: "Python library to control Switchbot IoT devices"
meta.homepage for python310Packages.pyswitchbot is: "https://github.com/Danielhiversen/pySwitchbot"
meta.changelog for python310Packages.pyswitchbot is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.19.0 with grep in /nix/store/mxk7j84hxca0f99cg0fcppdqa3xmbl62-python3.10-pyswitchbot-0.19.0
found 0.19.0 in filename of file in /nix/store/mxk7j84hxca0f99cg0fcppdqa3xmbl62-python3.10-pyswitchbot-0.19.0

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

4 total rebuild path(s)

4 package rebuild(s)

First fifty rebuilds by attrpath
home-assistant-component-tests.bluetooth
home-assistant-component-tests.switchbot
python310Packages.pyswitchbot
python39Packages.pyswitchbot

Instructions to test this update (click to expand)

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

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

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

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

4 packages built:

home-assistant-component-tests.bluetooth
home-assistant-component-tests.switchbot
python310Packages.pyswitchbot
python39Packages.pyswitchbot

Maintainer pings
cc @fabaff for testing.

This needs to get rebased

Was obsoleted by python-updates.


Page session load time

Hello,
I was wondering if it is possible to accelerate the page session load time when using WGLMakie/JSServe in Pluto?
After a call to Page() followed by some plotting function (e.g. lines(rand(1_000))) the time to first plot is sometimes excruciatingly long (had it load for 5+ mins in some instances!). The time after the Plot is displayed is in most cases drastically shorter than the actual time it took; e.g. at one point I screenshoted the progress some 30s before completion:  which after the plot is displayed snaps back to: !?
I tried creating Sysimages with PackageCompiler to speed-up load time but Page() (which also often breaks for me after the long load time, requiring a restart) and the Page session load time seem to be unaffected by these attempts.
[here] is my MWE with which I tried this (disguised as a .txt for github).
Thanks, and have a nice Time!
Cheers 😊

this may be a bug...
Could this be that it's waiting for the page to be ready?
https://github.com/SimonDanisch/JSServe.jl/blob/master/src/display.jl#L154
The first 108s are pretty close to the 100s time I give the Page to get ready.

When I execute the notebook, I get:

I just tagged a new JSServe & WGLMakie version... I don't think I changed anything relevant, but maybe try out the new versions?
What browser / os are you using?

Hey,
I'm using Chrome (Chromium) on Ubuntu 20.04.3.
I'll try the new tag tomorrow!

Heyho,
so I tried the new tag and It feels a bit faster on my machine, getting roughly 70s compilation time instead of the previous 100+s.
Do you have any tips at which aspect I could take a look at to speed up the Page load time? I don't really have a clue about Web sockets but 100s just feels pretty rough for any kind of startup time IMO.
I'll hopefully be able to scour through the source soon when I find some time.
Until then, thanks and have a nice Time, CH


Can the Johnson–Lindenstrauss lemma be a replacement for Spectral embedding?

With the guarantees of the JL lemma, the increased speed of the "random projection", and because the objective of the Spectral embedding is to make the reduction deterministic.
Might it be worth using the JL lemma instead of Spectral embedding?

The purpose of the spectral initialization is a bit different from a random projection. The spectral initialization has the advantage of:

working on the graph Laplacian derived directly from the fuzzy simplicial set that UMAP attempts to approximate in the low-dimensional space.
as noted by Carreira-Perpiñán and expanded upon by Linderman and Steinerberger there is a strong connection between the spectral embedding and the attractive part of neighbor-embedding methods like UMAP and t-SNE, so by starting with the spectral embedding you get something like the early exaggeration that is used in t-SNE for "free".

Some possible downsides of using a random projection:

the results are about preserving distances (as opposed to similarities between near neighbors) so at least in the typical case of creating a 2D plot from high dimensional data we know that's not going work very well (but there's nothing wrong with having a bound on just how bad it's going to be).
someone with more mathematical sophistication than me will have to chime in here, but the JL lemma talks about Euclidean distances. It is not at all clear to me that if the input metric is not Euclidean, whether something JL lemma-like exists. So for non-Euclidean metrics, the random projection method may not be helpful.

At any rate, it's easy to try this with sklearn:
    import sklearn.random_projection

    # assume your data is in the variable x
    # probably also want to set random_seed
    embedder = sklearn.random_projection.SparseRandomProjection(
        n_components=2
    )
    init_coords = embedder.fit_transform(x)

You can then run UMAP with init=init_coords to use the random projection input as initialization. In my experience, it didn't give results that seemed particularly great. I think I would prefer truncated SVD for this kind of initialization unless speed really was an issue (these gave results I preferred the look of but I did no quantitative evaluation).
One way you could use random projections would be if you had very high dimensional data and wanted to reduce the dimensionality initially before applying UMAP. Shah and Silwal looked at this (in the context of t-SNE), but found that PCA did a better job, so truncated SVD would again be preferred for that. Oh well.


Suggest downloading Metamask

On desktop, suggest downloading Metamask with a URL to their download page

https://www.npmjs.com/package/@metamask/onboarding
Isn't that one built for it?

Fixed in v2 :)


Question: How does this work?

What is the issue? (required)
Hello,
I would like to know how this app works, how does it exactly limit the charge?
I applaud all of you guys for your hard work!!
But prior to installing it, I would like to know what's under the hood, I saw other apps that make lots of low level changes, but it didn't make sense, as M1 does not have smc but they said they are writing to the smc, so I was skeptical.
I couldn't find in the readme an explanation so I am asking here. sorry if its not the right place.
I'd appriciate if one of the devs could give a short explanation. 🙏
Thanks.

Happy to help @Tydox!
We do use the smc CLI, build from this repository.
Honestly, I am not enough of a hardware guy to understand the nuances of what is and is not an SMC chip, but we use the zsmc` CLI to set keys to the SMC equivalent that M* chip devices have.
You can view with which commands here in the source. Since the CLI is pure shell scripting, it should be easy to read.
Quick call to action: if you understand hardware better than I and after seeing the source you know how to properly describe what is happening under the hood, I would love a pull request for the  README.md explaining the nuances so that future people like you have a place to read up in the underlying tech.
Feel free to re-open this issue if you have further questions!


Cannot shorten metric interval

Bug Description
I would like to visualize in detail the amount of TCP traffic. I would like to see the change at least every second, but I cannot visualize it, it shows every 15 seconds.
Although the scraping interval for prometheus is changed to 1s, the metrics change only every 15s.
Any solutions?

Version
$ istioctl version
client version: 1.16-alpha.a19b2ac8af3ad937640f6e29eed74472034de2f5
control plane version: 1.15.2
data plane version: 1.15.2 (10 proxies)

$ kubectl version --short
Client Version: v1.23.13
Server Version: v1.23.13

Additional Information
No response

This is inherent to the design of Wasm and TCP MX. Wasm runs a single global timer so what you see is that ticker. TCP MX requires bytes to be sent first so we can't register the connection open immediately, so it waits 15s to check again.

I think with the new tighter implementation  for native stats we can probably report it much faster. The focus was just compatibility. Let's leave this as a feature request.
cc @zirain

FYI: https://github.com/istio/api/pull/2539
cc @kyessenov

@zirain This is different from histogram. This is referring to the delay in reporting in TCP metrics because of global timer in Wasm.

@zirain This is different from histogram. This is referring to the delay in reporting in TCP metrics because of global timer in Wasm.

how can you configure this after switch to native stats?

@ryota2425 here is a workaround, edit the envoyfilter as follow:

@zirain The new stats filter uses a per-worker timer. So it's bound to the connection rather than one big timer for all connections. So it'll be less bumpy. I was also suggesting to emit stats as soon as bytes are sent/read instead of timer.
5s is reasonable.

@zirain Should that be a telemetry API option?

I think it should be, let's support this as part of v1.17, WDYT?

@ryota2425 here is a workaround, edit the envoyfilter as follow:

Thanks for the advices.
I was able to get detailed TCP metrics.

It would be useful to have an API option so that users can check the data in detail.

plan to add an option in Telemetry API


Alpha or alpha / Beta or beta - seems like this is inconsistently applied across DTA materials.

https://github.com/govau/content-guide/issues/27


quick commit not working?

Sublime Text version number: 3.1.1
Git version number: 2.17.1
OS type and version: macOS high sierra, 10.13.6
Console error output,

Traceback (most recent call last):
   File "/Users/kcoelho/Library/Application Support/Sublime Text 3/Installed Packages/GitSavvy.sublime-package/core/commands/quick_commit.py", line 23, in <lambda>

   File "/Users/kcoelho/Library/Application Support/Sublime Text 3/Installed Packages/GitSavvy.sublime-package/core/commands/quick_commit.py", line 27, in on_done

   AttributeError: 'GsQuickCommitCommand' object has no attribute 'view'

A description of the problem.

Git quick commit does not work

Steps to reproduce, if possible

run the quick commit command.

If the bug is caused by a failing command, include a debug log.

I tried to follow the instructions but the log showed only [].

Thanks for the report. We'll fix it asap.

@kevin-coelho it has been fixed and 2.17.5 will soon be available on Package Control.


Pre-populate email / firstName & lastName

In our use case we already have the users email / firstName + lastName handy.
I've extended our fork to pre-populate these details which the invite method accepts (undocumented).
Let me know if you're interested in the feature.

Definitely not mergable, but just to give you an idea
https://github.com/airpair/slackin/pull/1/files


best_val_mae_both_model is not written if do_forces = MLIP_SETTINGS.USE_FORCES = False

Try to fix #394, the main source of error is in cosmo-pet and at least the fix in #6 is needed to the train to start, the change in this PR is required to finish the training since as in the title  best_val_mae_both_model is not written if do_forces = MLIP_SETTINGS.USE_FORCES = False

📚 Documentation preview 📚: https://metatrain--397.org.readthedocs.build/en/397/

Thank you @DavideTisi ! It is actually my bad, because it wanted it to be like
if do_forces:
    load_path = self.pet_dir / "best_val_mae_both_model_state_dict"
else:
    load_path = self.pet_dir / "best_val_mae_energies_model_state_dict"

but messed it up a bit because for one second I thought that "do_forces" means "do_ONLY_force". Could you please change  as I suggested? It is the standard way we export our models (with forces and best_mae_both_state_dict).

now that cosmo-pet #6 is merge we can merge also this one.
if you are ok with it @frostedoyster @abmazitov

#399 is merged, so this PR can be merged as well!


feat(platform): add clipboard support

Changes proposed in this pull request:

Add support for linux clipboard.

@lc-soft

I've not got the text back from clipboard to the textedit widget!
The approach is still quite basic and needs more handling, but it's looking promising

@lc-soft Could you take a look at the implementation?
Also, I'm a bit confused why some of my commit messages don't pass commit-lint-pr

Would you expect me to add a new macro called LCUI_KEYCODE_V and LCUI_KEYCODE_C ? Or convert the e->key.code to char and check for 'C' or 'V'

Would you expect me to add a new macro called LCUI_KEYCODE_V and LCUI_KEYCODE_C ? Or convert the e->key.code to char and check for 'C' or 'V'
Also, where can I find LCUI_GRAPH

Use LCUI_KEY_V and LCUI_KEY_C.
https://github.com/lc-soft/LCUI/blob/b3a0a94a9594c5c9451a2a5b0c2a8b13e5146840/include/LCUI/input.h#L66-L85
The LCUI_Graph type has been renamed to pd_canvas_t.

@lc-soft I'm trying to start testing the code, however, I'm encountering issues while trying to add is as taget:
test clipboard
error: execv(../build/linux/x86_64/debug/run-tests) failed(-1)
warning: cannot match target(run-tests).add_files("test/run_tests.c") at ./test/xmake.lua:10
warning: cannot match target(run-tests).add_files("test/cases/*.c") at ./test/xmake.lua:10

Any tips?

I've added a copy paste test, does it look alright? Is there a need add additional tests?

@lc-soft I'm trying to start testing the code, however, I'm encountering some warnings:
test clipboard
warning: cannot match target(run-tests).add_files("test/run_tests.c") at ./test/xmake.lua:10
warning: cannot match target(run-tests).add_files("test/cases/*.c") at ./test/xmake.lua:10

Any tips?

In which directory did you run xmake run run tests?

@lc-soft I'm trying to start testing the code, however, I'm encountering some warnings:
test clipboard
warning: cannot match target(run-tests).add_files("test/run_tests.c") at ./test/xmake.lua:10
warning: cannot match target(run-tests).add_files("test/cases/*.c") at ./test/xmake.lua:10

Any tips?

I've ran it from the project run directory.

Thank you for your patience

Run tests  took too long

Could it be because the test requires x11 clipboard to be available within the running machine and it's not there?

Could it be because the test requires x11 clipboard to be available within the running machine and it's not there? That's the reason, why I've added that timeout Observer thread, I wasn't if it would be caught if something like this had happened.
Edit: No it seems like it didn't get to that point, I'll investigate this later today

I think you should add observer thread to the linux_x11clipboard.c file and pass empty data to the callback when the clipboard request times out.

I recommend that you add a default clipboard driver for use when X11 and Windows clipboard drivers are not available.

I think you should add observer thread to the linux_x11clipboard.c file and pass empty data to the callback when the clipboard request times out.

Should we maybe indicate if it failed in some sort of way as well? Since if empty text is returned, there is no way to know whether nothing is copied or it just failed.

I recommend that you add a default clipboard driver for use when X11 and Windows clipboard drivers are not available.
Where should i place this? Create a new folder in /lib/platform/src/ called headless or just place clipboard.c there?

Should we maybe indicate if it failed in some sort of way as well? Since if empty text is returned, there is no way to know whether nothing is copied or it just failed.

Pass NULL to the callback to tell it that the clipboard request failed.
callback->action(NULL, callback->arg);

Where should i place this? Create a new folder in /lib/platform/src/ called headless or just place clipboard.c in /lib/platform/src/?

Please ignore my last comment because it's a bit complicated to implement.
An easier way to fix build failures in Windows is to add functions such as LCUI_UseClipboard without their implementation code.
void LCUI_UseClipboard(LCUI_ClipboardAction action, void *arg)
{
    // Empty
}

I've added an observer thread, in regards to testing the clipboard, how should I go about testing it? Thanks.

I've added an observer thread, in regards to testing the clipboard, how should I go about testing it? Thanks.

I think the test method in the current test_clipboard.c file is ok.

But since there is no clipboard access in the CI pipeline, it won't work right? All we'd get is a timeout

@lc-soft
So the reason it hangs it's because inside linux_clipboard.c LCUI_UseClipboard implementation is empty when X11 is not used, so the "change" event within the test never gets triggered.
I could try and add an In file clipboard for Linux within the linux_clipboard.c, which would be used when x11 is not available.

@lc-soft
So the reason it hangs it's because inside linux_clipboard.c LCUI_UseClipboard implementation is empty when X11 is not used, so the "change" event within the test never gets triggered.
I could try and add an In file clipboard for Linux within the linux_clipboard.c, which would be used when x11 is not available.

Try binding the "paste" event handler

But since there is no clipboard access in the CI pipeline, it won't work right? As we'd get is a timeout for when we request to own the clipboard thinking . I'll investigate this further

Yes, I will test this pull request with WSL in a few days.

Try binding the "paste" event handler

The paste event won't get called either, since LCUI_UseClipboard never sets the callback.

Does that work @lc-soft ?

I think it would be useful to have this kind of conversion between (char -> w_char) and (w_char -> char) extracted as a utility function, since it's easy to mess up, and it can be useful in many places

Does that work @lc-soft ?

Please try to replace #include "config.h" with #include "../config.h" in directory lib/platform/src/linux/

Does that work @lc-soft ?

Please try to replace #include "config.h" with #include "../config.h" in directory lib/platform/src/linux/

I think the failing tests aren't related to the config right?

  root width 320px
    √ $('.example')[0].box.border == (10, 10, 286, 604)
    √ $('.example')[1].box.border == (10, 624, 286, 304)
    × $('.example')[2].box.border == (10, 938, 286, 280)
      AssertionError: (10, 938, 286, 242) == (10, 938, 286, 280)
      + expected - actual

      - (10, 938, 286, 242)
      + (10, 938, 286, 280)

    × $('.example')[3].box.border == (10, 1228, 286, 732)
      AssertionError: (10, 1190, 286, 732) == (10, 1228, 286, 732)
      + expected - actual

      - (10, 1190, 286, 732)
      + (10, 1228, 286, 732)

    × $('.example')[4].box.border == (10, 1970, 286, 504)
      AssertionError: (10, 1932, 286, 504) == (10, 1970, 286, 504)
      + expected - actual

      - (10, 1932, 286, 504)
      + (10, 1970, 286, 504)

    × $('.example')[5].box.border == (10, 2484, 286, 254)
      AssertionError: (10, 2446, 286, 254) == (10, 2484, 286, 254)
      + expected - actual

      - (10, 2446, 286, 254)
      + (10, 2484, 286, 254)

  root width 320px
    √ $('.example')[0].box.border == (10, 10, 286, 604)
    √ $('.example')[1].box.border == (10, 624, 286, 304)
    × $('.example')[2].box.border == (10, 938, 286, 280)
      AssertionError: (10, 938, 286, 242) == (10, 938, 286, 280)
      + expected - actual

      - (10, 938, 286, 242)
      + (10, 938, 286, 280)

    × $('.example')[3].box.border == (10, 1228, 286, 732)
      AssertionError: (10, 1190, 286, 732) == (10, 1228, 286, 732)
      + expected - actual

      - (10, 1190, 286, 732)
      + (10, 1228, 286, 732)

    × $('.example')[4].box.border == (10, 1970, 286, 504)
      AssertionError: (10, 1932, 286, 504) == (10, 1970, 286, 504)
      + expected - actual

      - (10, 1932, 286, 504)
      + (10, 1970, 286, 504)

    × $('.example')[5].box.border == (10, 2484, 286, 254)
      AssertionError: (10, 2446, 286, 254) == (10, 2484, 286, 254)
      + expected - actual

      - (10, 2446, 286, 254)
      + (10, 2484, 286, 254)

This problem can be ignored because the test program loaded different fonts in the test environment than in my system, and rendered text with these fonts was smaller, resulting in a layout that was not as expected.

Doing the last check of trying to figure out why the test is failing and then I can confirm

Just as a final note. Is #USE_LIBX11 always set? Even in CI environment it seems to be set, that's why after I added local data to linux_clipboard.c it hung because I added else to the macro.

It's a tiny issue though, the clipboard tests are now passing, it's a small start, but hopefully we can improve it in the future, don't want to delay your other work too much!

Or potentially, I can store that data and free the previous allocation on the next ask for clipboard, this way there is no need to try and communicate if multiple listeners are created for the paste event, what do you think?

Just as a final note. Is #USE_LIBX11 always set? Even in CI environment it seems to be set, that's why after I added local data to linux_clipboard.c it hung because I added else to the macro.

Yes, it is, but you should also handle #USE_LIBX11 when it is not set.

Last fix: there is a memory leak, since after clipboard text + clipboard_data is sent, it's not freed. Which part of code should free it? textedit or clipboard

clipboard

Just as a final note. Is #USE_LIBX11 always set? Even in CI environment it seems to be set, that's why after I added local data to linux_clipboard.c it hung because I added else to the macro.

Yes, it is, but you should handle the case where #USE_LIBX11 is not set.

In that case, we should not set it in environments like CI, as the handling would be exactly the same as if LCUI_GetAppId() != LCUI_APP_LINUX_X11

Or I can just extract it to a function and make sure both variants call it

The tests are now passing

Thank you for all the guidance!

@WhoAteDaCake I made some changes to make the clipboard tests work on Windows.
https://github.com/lc-soft/LCUI/blob/v3.0-dev/lib/platform/src/clipboard.c


New Recipe: Location based alerting GH-114

Description
Resolves #114
New recipe checklist

[X] Full code validated in Confluent Cloud
[X] SQL style/syntax consistent to existing recipes
[X] Validate presentation with python3 -m mkdocs serve
[X] File structure and content follow template
[X] Recipe added to navigation: comment out until phase release
[X] Spell check, e.g. using aspell
[X] Source connector's auto topic naming convention works with the ksqlDB app values for KAFKA_TOPIC

@rspurgeon I ran through this sequence again (making sure that earliest was set) and again hit #159 (comment) . It wasn't until I added the set of manual INSERT INTO twice that there was output. Can you please take a look and see if you can repro this on your end? (cc: @mjsax for ideas)

@ybyzek I can't reproduce. I started an entirely new env, cluster, and ksql app and when I insert the 5 records in the manual file and I get output data in the alerts_raw stream

https://github.com/confluentinc/ksqldb-recipes/pull/159#issuecomment-1027374311
@rspurgeon I just reproduced this a third time!  Want to jump on a zoom?

Update: we both reproduced the issue on a call, posting question to ksqlDB team in Slack

rebased off main and force pushed


chore: fix regex demo

In order to match classes like m-100, the regex needs an extra +.

Thanks!


perfect the code. same commit with #920.

remove duplicate "if" assert.
if v_info_.is_stored == false,  tw.twist.angular.z is not set value or previous value, it is abnormal, and later in convertSteeringAngleToAngularVelocity( ) function, it also need to assert v_info_.is_stored is true or not, duplicate assert.
Status
PRODUCTION / DEVELOPMENT
Description
A few sentences describing the overall goals of the pull request's commits.
Related PRs
List related PRs against other branches:

branch
PR

other_pr_production
link

other_pr_master
link

Todos

[ ] Tests
[ ] Documentation

Steps to Test or Reproduce
Outline the steps to test or reproduce the PR here.
roslaunch pkg_A executable_A

The car should move.

any update?

I verified the logic and confirmed the exec.
I had merge since there were no problem.
Thanks!

welcome! It's my pleasure.


Release documentation

What would you like to be added:
Releasing documentation for this repo
Why is this needed:
We don't have it, lol.
I'm taking a draft crack at this in https://github.com/kubernetes-sigs/promo-tools/pull/538.
cc: @kubernetes-sigs/release-engineering
ref: https://github.com/kubernetes-sigs/promo-tools/issues/523

/remove-lifecycle stale

We have some release document, but it appears to be missing some pieces.
/remove-lifecycle stale

/remove-lifecycle rotten

/remove-lifecycle stale

/remove-lifecycle stale

/remove-lifecycle stale

/lifecycle frozen


Allow uploading multiple files/archive

We rotate log files, and have 10 files, 60 Mb each, it covers roughly 24 hours. As of right now, I can't analyze those files together, I have to do it separately and do the math myself.
It would be much easier if I could upload a .tar.gz archive or select multiple files, and they would appear as one file analysis group

This feature would be amazing.
@dmart28 , I have posted a bountysource bounty of 5$ to boost this development :)
thanks for your software by the way


Webgpu graphics

Implementation of rendering on top of the webgpu API.
Some of the code has been reused from #137
WIP, Ignore placeholder code & formatting changes.

❤
Gonna be fun to review 😄
Btw we are using some of assets in the readme!

Changes moved into wgpu-devel


Update info on persisting inotify settings on linux

Requirements

Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
All new code requires tests to ensure against regressions

Description of the Change
improve the documentation on how to make Atom work on linux (mostly Arch I guess).
The previous version already read "if this works you can make the setting persistent", however the method described only persisted until next boot. This PR describes how to make it persistent after reboot also.
Alternate Designs

Why Should This Be In Core?
Atom displays a link to this file when file watching doesnt work as expected
Benefits

Possible Drawbacks

Applicable Issues

@jakob-bebop I know this has been open for a long time now. This PR's now contains conflicts that need resolving.

We haven't gotten a response to our request to resolve the conflicts. I'm going to close this but don't hesitate to reach out when the conflicts are resolved,  we'll be happy to reopen the PR.


Support for try catch

Description
We could have support for try catch like this
ab ye krke dikhao bhai {
// try block code here
}
mujhse nhi hua bhai(sorry) {
bol bhai sorry;
}

Domain
Bhai Lang
Type of Contribution
Addition
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of bhai-lang.

No current plans to add this feature in this language as this will lead to more complexities in this toy language.


md-input-containers text and floating label misaligned when using mdPrefix

When using a md-icon as a prefix to an input inside of an md-input-container the floating label gets misaligned when using a mdPrefix, as you can see below:

The expected behavior is to have the text aligned with the icon and also have the floating label be at the correct position. As you can see when there is no mdPrefix icon the text is all aligned how it should be:

To reproduce this simply add a mdPrefix to a md-input-container.
Before:
<md-input-container>
    <input mdInput placeholder="text" type="text" name="example">
</md-input-container>

and after:
<md-input-container>
    <md-icon mdPrefix>email</md-icon>
    <input mdInput placeholder="text" type="text" name="example">
</md-input-container>

Right now using mdPrefix is making the input not look good. If I am using mdPrefix wrong please let me know.

dupe of https://github.com/angular/material2/issues/2586 I believe


IntelliSense not working

Hey! So far this plugin has been excellent, but IntelliSense is not working for me. Any ideas on how can I enable it?

Yes, I'm sorry that hasn't been supported yet, will try to integrate with IntelliSense from js/jsx someday soon, but I'm not so familiar with it actually.

Ok, I can do some research and will be happy to drop a PR.

Intellisense (e.g., import autocomplete) is still not working for me.  Are there any plans to implement it in the future?

@peterlawless PRs adding Intellisense support are welcome

I'm still loocking for it


Check generated code matches .x files in CI

What
Check generated code matches .x files in CI.
Why
It's easy to miss generating the latest code.
Close https://github.com/stellar/rs-stellar-xdr/issues/80
Known limitations
[TODO or N/A]

@jayz22 #87 was merged but turned out the code wasn't quite consistent. @jonjove had experienced the same thing recently. There hasn't actually been a check that code is fully up-to-date, and so it is super easy for that to happen, so this PR tries to fix that.

@jayz22 #87 was merged but turned out the code wasn't quite consistent. @jonjove had experienced the same thing recently. There hasn't actually been a check that code is fully up-to-date, and so it is super easy for that to happen, so this PR tries to fix that.

Ah I see, thanks for the check.


RuntimeError: cannot pin 'torch.cuda.FloatTensor' only dense CPU tensors can be pinned

The tutorial.py stops during trining the model. I was trying with dataset15 from the example datasets.

CUDA_VISIBLE_DEVICES=7 python3 Tutorial.py

[ERROR HERE]

['Acta2', 'Aldoc', 'Anln', 'Apln', 'Bmp4', 'Cnr1', 'Cpne5', 'Crh', 'Crhbp', 'Ctps', 'Flt1', 'Foxj1', 'Gad2', 'Gfap', 'Hexb', 'Itpr2', 'Kcnip2', 'Lamp5', 'Mfge8', 'Mrc1', 'Pdgfra', 'Plp1', 'Pthlh', 'Rorb', 'Serpinf1', 'Slc32a1', 'Sox10', 'Syt6', 'Tbr1', 'Tmem2', 'Ttr', 'Vip', 'Vtn']
number of cells and genes in the matrix: (5613, 30527)
Setting up for reconstruction ... done ( 21.3 seconds )
It.  |Err
0|3.830581e-04|

Loading required package: cowplot
Registered S3 methods overwritten by 'ggplot2':
method         from
[.quosures     rlang
c.quosures     rlang
print.quosures rlang
Loading required package: Matrix
Loading required package: patchwork
Attaching package: ‘patchwork’
The following object is masked from ‘package:cowplot’:
align_plots

Read 33 items
[1]   33 3405
|======================================================================| 100%
Finished in 31.61684 secs, 30 iterations.
Max iterations: 30.
Convergence loss: 4.218993e-06.
Best results with seed 1.
Warning:
This function will discard the raw data previously stored in the liger object and replace the raw.data slot with the imputed data.
Imputing given query datasets
Reference dataset:
SMSC_RNA
Query datasets:
SMSC_FISH
Registered S3 methods overwritten by 'ggplot2':
method         from
[.quosures     rlang
c.quosures     rlang
print.quosures rlang
Read 33 items
[1]   33 3405
Running CCA
Merging objects
Finding neighborhoods
Finding anchors
Found 4408 anchors
Running PCA on query dataset
Warning in irlba(A = t(x = object), nv = npcs, ...) :
You're computing too large a percentage of total singular values, use a standard svd instead.
Finding integration vectors
Finding integration vector weights
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Transfering 30527 features onto reference data
[1] "Gm9318"        "LOC105246325"  "Abi1"          "Rnf213"
[5] "Cops2"         "LOC105246475"  "Gm6555"        "Gm36857"
[9] "Pgpep1l"       "Cpsf4"         "Prdx6b"        "Bco2"
[13] "D830035M03Rik" "Gm31145"       "A930024E05Rik" "P2rx1"
[17] "Gm26851"       "Epdr1"         "Gm8995"        "Spsb3"
['Acta2', 'Aldoc', 'Anln', 'Apln', 'Bmp4', 'Cnr1', 'Cpne5', 'Crh', 'Crhbp', 'Ctps', 'Flt1', 'Foxj1', 'Gad2', 'Gfap', 'Hexb', 'Itpr2', 'Kcnip2', 'Lamp5', 'Mfge8', 'Mrc1', 'Pdgfra', 'Plp1', 'Pthlh', 'Rorb', 'Serpinf1', 'Slc32a1', 'Sox10', 'Syt6', 'Tbr1', 'Tmem2', 'Ttr', 'Vip', 'Vtn']
Trying to set attribute .obs of view, copying.
Trying to set attribute .obs of view, copying.
INFO     No batch_key inputted, assuming all cells are same batch
INFO     No label_key inputted, assuming all cells have same label
INFO     Using data from adata.X
INFO     Computing library size prior per batch
INFO     Successfully registered anndata object containing 3405 cells, 33 vars,
1 batches, 1 labels, and 0 proteins. Also registered 0 extra
categorical covariates and 0 extra continuous covariates.
INFO     Please do not further modify adata until model is trained.
INFO     No batch_key inputted, assuming all cells are same batch
INFO     No label_key inputted, assuming all cells have same label
INFO     Using data from adata.X
INFO     Computing library size prior per batch
INFO     Successfully registered anndata object containing 5613 cells, 53 vars,
1 batches, 1 labels, and 0 proteins. Also registered 0 extra
categorical covariates and 0 extra continuous covariates.
INFO     Please do not further modify adata until model is trained.
INFO     Training for 200 epochs.
Traceback (most recent call last):
File "Tutorial.py", line 119, in
Result = test.Imputing(Methods)
File "/swiftcache/x/SpatialBenchmarking/Benchmarking/SpatialGenes.py", line 290, in Imputing
result_GimVI = self.gimVI_impute()
File "/swiftcache/x/SpatialBenchmarking/Benchmarking/SpatialGenes.py", line 151, in gimVI_impute
model.train(200)
File "/home/x/.conda/envs/Benchmarking/lib/python3.6/site-packages/scvi/model/gimvi.py", line 178, in train
self.trainer.train(n_epochs=n_epochs, **train_fun_kwargs)
File "/home/x/.conda/envs/Benchmarking/lib/python3.6/site-packages/scvi/core/trainers/trainer.py", line 183, in train
self.compute_metrics()
File "/home/x/.conda/envs/Benchmarking/lib/python3.6/site-packages/torch/autograd/grad_mode.py", line 28, in decorate_context
return func(*args, **kwargs)
File "/home/x/.conda/envs/Benchmarking/lib/python3.6/site-packages/scvi/core/trainers/trainer.py", line 150, in compute_metrics
result = getattr(scdl, metric)()
File "/home/x/.conda/envs/Benchmarking/lib/python3.6/site-packages/scvi/core/trainers/jvae_trainer.py", line 25, in elbo
elbo = compute_elbo(self.model, self, mode=self.mode)
File "/home/x/.conda/envs/Benchmarking/lib/python3.6/site-packages/scvi/core/_log_likelihood.py", line 24, in compute_elbo
for i_batch, tensors in enumerate(data_loader):
File "/home/x/.conda/envs/Benchmarking/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 521, in next
data = self._next_data()
File "/home/x/.conda/envs/Benchmarking/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 563, in _next_data
data = _utils.pin_memory.pin_memory(data)
File "/home/x/.conda/envs/Benchmarking/lib/python3.6/site-packages/torch/utils/data/_utils/pin_memory.py", line 54, in pin_memory
return {k: pin_memory(sample) for k, sample in data.items()}
File "/home/x/.conda/envs/Benchmarking/lib/python3.6/site-packages/torch/utils/data/_utils/pin_memory.py", line 54, in
return {k: pin_memory(sample) for k, sample in data.items()}
File "/home/x/.conda/envs/Benchmarking/lib/python3.6/site-packages/torch/utils/data/_utils/pin_memory.py", line 50, in pin_memory
return data.pin_memory()
RuntimeError: cannot pin 'torch.cuda.FloatTensor' only dense CPU tensors can be pinned
Versions:

VERSION
gimVI

Can you try using python >= 3.8?

We can't help with this issue without more information, so closing for now.


(PE-8226) log jruby events

This PR does the following:

Refactors a few functions to make them more re-usable
Adds an action argument to all of the functions related to borrowing a JRuby instance to the pool.  This action value is a description of what the JRuby instance will be used for, and can be used in log messages and other places to help provide insight into the state of the running system.
Adds a jruby-event-logging-service, which logs debugging information when interesting events related to the JRuby pool occur.  This implementation is swappable, see PE-8226 for more details.

I think we should open a SERVER ticket for this and change the commit messages to reference that ticket instead.

I like this approach, :+1:.

This looks sane to me, but the JRubyEventHandlerService and extra dependency seems a bit heavyweight.  An alternative approach comes to mind ...
Add a new service function like register-event-handler! to the JRubyPuppetService protocol.  This function would simply take a function (callback) as a parameter, and it would document when it would invoke the callback and what data it would be passing in.  Perhaps it's cleaner as multiple functions - but the basic idea would be the same.
Along with feeling a bit "lighter-weight", this has the advantage of not requiring an extra service, in case we don't really need this extra behavior in certain cases.
I'm not sure it's a better idea, but seems worth consideration - and probably easy to hack-up a POC for comparison.

@KevinCorcoran I like that idea.  Will look into it.

Closing this until I have time to play around with the idea that @KevinCorcoran proposed.


multi: update workspace resolver and fix cln alias

Fixes #87.
We've ignored a warning:
warning: some crates are on edition 2021 which defaults to `resolver = "2"`, but virtual workspaces default to `resolver = "1"

Which means that cargo install breaks:
error[E0308]: mismatched types
  --> sim-lib/src/cln.rs:78:17
   |
78 |                 alias,
   |                 ^^^^^ expected `String`, found `Option<String>`
   |
   = note: expected struct `std::string::String`
                found enum `std::option::Option<std::string::String>`

For more information about this error, try `rustc --explain E0308`.

I think that this happened when we bumped minimum rust version via some dependency.

Merging this without review so that install isn't broken on main.

Sequence of events here:

23 August: be166381 added cln-grpc dependency at v0.1.3 on 23 August.
28 August: cln-grpc v0.1.4 was released with a breaking change (changing alias to an Option)
Cargo build and install worked because they bind to the version that we provide in our Cargo.lock.
Cargo install breaks because without --locked it'll accept any latest minor version of a dependency, so it upgraded itself to the breaking change cln-grpc.

🤯
h/t @sr-gi for figuring out how rust builds work :') resolver stuff is unrelated and opened #100 to get rid of unnecessary resolver lines in the lib/cli.


ISPN-8518 FunctionalDistributionTest.testDistributionFromNonOwner ran…

…dom failures
https://issues.jboss.org/browse/ISPN-8518

Resurrecting this as #6209


Add delay property

Trigger drag only after a specified number of milliseconds

@PuruVJ
What's the reason behind this feature?

Someone long presses the box for delay duration, and then start to drag. Moving the finger before that delay duration cancels dragging.
Kind of how native app's drag and drop works, so wanna implement that here

@PuruVJ
Added a PR and implemented this as "holdDelay" option
#156


Phone number field should not be a input type=number

It doesn't allow "-" in the phone number, and gives a little "up/down" arrow on the side, which is not very useful for phone numbers.

Yes, you are right.
The CLA form is created by the repository owner, where you opened your pull request. Could you contact him/her, please.


QR Code is not working

Hi,
I can scan qrcode with my whatsapp but in the whaticket its not working. (Still not connected)
Please update it

I have the same problem

Same problem here, but I solved with this change:
https://github.com/pedroslopez/whatsapp-web.js/issues/2477#issuecomment-1709232855


Move all uses of Core Foundation to be @_implementationOnly except getCFRunLoop().

The CF headers and module are still required (because of getCFRunLoop()), but this makes them much easier to remove in the future.

@swift-ci please test

cc @compnerd

Test failure looks unrelated.

@swift-ci please test linux

@swift-ci please test

It was not unrelated.

@swift-ci please test

@swift-ci please test

@swift-ci please test

@swift-ci please test

@swift-ci please test

Tests appear to be broken regardless of this patch. Pulling the PR brake.


Error when trying to list all the vm's running.

[Y] I am using the latest SDK version
[Y] This API is compatible with my vCenter version (You can get the info from 'vcenter_version' in each sample)
[Y] I have searched existing issues and Troubleshooting wiki

Environment

sdk package version:
nsx-vmc-aws-integration-python-sdk <IP_ADDRESS>.1.15419398
nsx-vmc-policy-python-sdk          <IP_ADDRESS>.1.15419398
pyvmomi                            6.7.3
vapi-client-bindings               3.2.0
vapi-common-client                 2.14.0
vapi-runtime                       2.14.0
vconnector                         0.6.0
vmc-client-bindings                1.23.0
vmc-draas-client-bindings          1.3.0
vSphere-Automation-SDK             1.21.0

python version: Python 3.7.6

vSphere version: vSphere-Automation-SDK             1.21.0

Operating System/Shell (used to run SDK-based apps): Mac OS(10.14.6)

Steps or code snippet to reproduce
import requests
import urllib3
from vmware.vapi.vsphere.client import create_vsphere_client
session = requests.session()

session.verify = False

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

vsphere_client = create_vsphere_client(server='aa.bbb.yyy.xxx'<EMAIL_ADDRESS>password=pwd, session=session)

print(vsphere_client.vcenter.VM.list())

Actual behavior:
Traceback (most recent call last):
  File "hosts.py", line 13, in <module>
    print(vsphere_client.vcenter.VM.list())
  File "/usr/local/lib/python3.7/site-packages/com/vmware/vcenter_client.py", line 5153, in list
    'filter': filter,
  File "/usr/local/lib/python3.7/site-packages/vmware/vapi/bindings/stub.py", line 345, in _invoke
    return self._api_interface.native_invoke(ctx, _method_name, kwargs)
  File "/usr/local/lib/python3.7/site-packages/vmware/vapi/bindings/stub.py", line 298, in native_invoke
    self._rest_converter_mode)
com.vmware.vapi.std.errors_client.InternalServerError: {messages : [LocalizableMessage(id='vapi.bindings.method.impl.unexpected', default_message='Provider method implementation threw unexpected exception: null', args=['null'], params=None, localized=None)], data : None, error_type : None}

Expected behavior:
All the Vm's should be listed up
However when I do this I get the bunch of VM's which are up. I don't know are they both doing same thing ?
from __future__ import print_function
from vconnector.core import VConnector
from config import *

client = VConnector(
<EMAIL_ADDRESS>     pwd=pwd,
     host='aa.bbb.yyy.xxx')
client.connect()
vms = client.get_vm_view()
print(vms.view)

client.disconnect()

Moreover in Vsphere - api explorer the code for fetching requests are also not given as well as no way to generate token.

I don't get the error with your code snippet.
Have you followed the installation steps correctly? https://github.com/vmware/vsphere-automation-sdk-python#installing-required-python-packages

Yep, I have configured things correctly. The issue seems to be in last line VM.list(). Because if I comment it, it works. I tried https://github.com/vmware/pyvmomi/blob/master/sample/getallvms.py this url and things worked. But not via current repo. Are both using same code base ?

Try this? https://github.com/vmware/vsphere-automation-sdk-python/blob/master/samples/vsphere/vcenter/vm/list_vms.py
pyvmomi uses SOAP APIs whereas Automation SDK uses REST endpoints

Ya I had used this as well https://github.com/vmware/vsphere-automation-sdk-python/blob/master/samples/vsphere/vcenter/vm/list_vms.py list_of_vms = self.client.vcenter.VM.list() code was breaking on this function. But when I used list_of_vms = self.client.vcenter.VM.list, it returned some object. I thought of checking the vcenter_client.py but didn't do

Can you try it in a new virtual environment? Not that what you have done is incorrect, just to make sure there are no conflicting versions.

Yes, I will do and update it. Most probably I can do this tomorrow.

Same error even when tried again in new venv
  File "file.py", line 18, in <module>
    print(vsphere_client.vcenter.VM.list())
  File "/Users/mukesh/Desktop/vcenter/sdk/sdk/lib/python3.7/site-packages/com/vmware/vcenter_client.py", line 5153, in list
    'filter': filter,
  File "/Users/mukesh/Desktop/vcenter/sdk/sdk/lib/python3.7/site-packages/vmware/vapi/bindings/stub.py", line 345, in _invoke
    return self._api_interface.native_invoke(ctx, _method_name, kwargs)
  File "/Users/mukesh/Desktop/vcenter/sdk/sdk/lib/python3.7/site-packages/vmware/vapi/bindings/stub.py", line 298, in native_invoke
    self._rest_converter_mode)
com.vmware.vapi.std.errors_client.InternalServerError: {messages : [LocalizableMessage(id='vapi.bindings.method.impl.unexpected', default_message='Provider method implementation threw unexpected exception: null', args=['null'], params=None, localized=None)], data : None, error_type : None}

what is your vsphere version?

6.7

@ngp-star can you check if you can reproduce this issue?

@iamjhamukesh
Do you have any other VC setup that you can try on? Have you by any chance modified any permissions?

No, I don't have access to other VC setups and I haven't modified any permissions. But pyVim and pyVmomi is working perfectly for me. Only vmware.vapi.vsphere.client isn't working for me .

Hi @iamjhamukesh
we tried with vc setup 67u1 version sample , its  working, able to list all vms.

I am facing same issue:
Traceback (most recent call last):
  File "sample.py", line 12, in <module>
    print(vsphere_client.vcenter.VM.list())
  File "/usr/local/lib/python3.7/site-packages/com/vmware/vcenter_client.py", line 5153, in list
    'filter': filter,
  File "/usr/local/lib/python3.7/site-packages/vmware/vapi/bindings/stub.py", line 345, in _invoke
    return self._api_interface.native_invoke(ctx, _method_name, kwargs)
  File "/usr/local/lib/python3.7/site-packages/vmware/vapi/bindings/stub.py", line 298, in native_invoke
    self._rest_converter_mode)
com.vmware.vapi.std.errors_client.InternalServerError: {messages : [LocalizableMessage(id='vapi.bindings.method.impl.unexpected', default_message='Provider method implementation threw unexpected exception: null', args=['null'], params=None, localized=None)], data : None, error_type : None}

I get the same error when trying to list VMs that are not assigned to a network and are therefore inaccessible. If I exclude the problematic VMs, then the API call works.

@iamjhamukesh is @imokyoureok 's scenario possible cause of error in your case?

@iamjhamukesh
Any update?

closing this issue as there are no updates.

wait!! we get the same issue, it errors when there are orphaned vms in the result set

we are using the rest interface directly  via c# though so maybe not the python sdk at fault

Hi,
So when i apply the powered on filter, it lists all vms. When I remove that filter, it produces the following exception:

Hi,
So when i apply the powered on filter, it lists all vms. When I remove that filter, it produces the following exception:

If it has any unaccessable, obsolete vm on vcenter?

Yes, it did have an obsolete vm.

Hi,
So when i apply the powered on filter, it lists all vms. When I remove that filter, it produces the following exception:

If it has any unaccessable, obsolete vm on vcenter?

Yes, it did have an obsolete vm.

Almost a year, issue still there....Quite easy to reproduce, what are you doing VMware, my lover?

@jhamukesh998
Could you please share the vc bundle, i'm not able to reproduce the issue


Window left/right resize icon occasionally won't disappear

When moving the cursor into the window from the left or right sides, the resize icon won't always disappear after it crosses the border.

Stopped using JFXDecorator


implement VerifyLicenseFiles()

@hellt, in my opinion the change you did to the function name limits the use of the function.
you are right that it at the moment only checks the existence of a file... but you could also check for the validity of the license and so on... which the old name allowed for ... now the usage is limited via the name...

@steiler yes, I did it on purpose. Validity of licenses is in 99% cases can't be checked off- box. As well as license file name almost never matters as we would rename it the node code when we copy it over to the node FS


Adjusted the comment that show the result

It's just a quick adjust in the "Set default objects with Object.assign" section where the results on the comment show de result after assign new attributes into the object.

Whew thanks!!! This Object.assign subsection has had some major issues from the start. I think this finally fixes everything with it.


Which permissions i need to leaving from quests?

Where else have you looked for answers to this question?
In discord, docs
Share your question with as much detail as possible.
I’m trying to give my players ability to leave quest, seems like permission for command leave it’s not working, when it answer me “Yes or No” i don’t have permissions to choose the answer.

Should be quests.quit https://pikamug.gitbook.io/quests/setup/commands-and-permissions
If that doesn't help, provide a screenshot of the error message you get.


Mig Alley with DDrawCompat v5.1

Hi Narzoul, tried the latest version of DDrawCompat and the game freezes when launching into 3D.  Since it does not enter into 3D I don't have a crash log to share.  However, attached are the log and config files.
DDrawCompat-MigAlley.zip

Just noticed that if I set DisplayResolution     = 1024x768 it will allow me into 3D, but with black bars along the sides.  Once in for the first time, I can then go back and set the ini file set DisplayResolution to higher values as well as in game.  I can then scale up to higher resolutions in game.  It goes higher but the game does not fill the screen.
One thing I noticed is that in this latest build, the overlay no longer is transparent, allowing you to see the changes real time as you make them.    Another thing I noticed is that when scrolling down to the bottom of the overlay list, white text shows up for additional settings but they are not editable in the overlay.
DDrawCompatv5.1LogFiles.zip
OverlayIssue.zip

Hi Narzoul, still figuring things out.  Found the following:
ConfigTransparency
DisplayAspectRatio
I set the Alpha to about 40 and that made the overlay transparent again.  Changed aspect ratio to 16:9 and that filled in the screen for me.
Super great progress that you are making with these settings.
This version 5.1 also fixes the blurry graphics I was experiencing on version 4.
Thank you so much.

Hi Narzoul,
getting these strange striations in ground textures when using the in game "All" filtering selection and PalletizedTextures set to off as noted in the link you sent me: https://github.com/narzoul/DDrawCompat/issues/176
In version 4.0, with the All filter setting, it drew textures correctly. Screen shot attached.
StripedGroundTextures.zip
Also, getting the following crash(ini files attached):

                                                                        *

                   Exception Analysis                                   *

                                                                        *

*** WARNING: Check Image - Checksum mismatch - Dump: 0x842e9, File: 0x84c25 - C:\ProgramData\Dbg\sym\ddraw.dll\2F5AE381e9000\ddraw.dll
*** WARNING: Unable to verify checksum for ddraw.dll
KEY_VALUES_STRING: 1
Key  : AV.Fault
Value: Write

Key  : Analysis.CPU.mSec
Value: 1484

Key  : Analysis.Elapsed.mSec
Value: 1910

Key  : Analysis.IO.Other.Mb
Value: 0

Key  : Analysis.IO.Read.Mb
Value: 0

Key  : Analysis.IO.Write.Mb
Value: 0

Key  : Analysis.Init.CPU.mSec
Value: 484

Key  : Analysis.Init.Elapsed.mSec
Value: 3181

Key  : Analysis.Memory.CommitPeak.Mb
Value: 127

Key  : Failure.Bucket
Value: INVALID_POINTER_WRITE_c0000005_ddraw.dll!D3dDrawPrimitives2

Key  : Failure.Hash
Value: {68d9e94f-6621-ab17-ebf2-e477c25b497d}

Key  : Timeline.Process.Start.DeltaSec
Value: 63

Key  : WER.OS.Branch
Value: vb_release

Key  : WER.OS.Version
Value: 10.0.19041.1

Key  : WER.Process.Version
Value: <IP_ADDRESS>

FILE_IN_CAB:  dumplog.dmp
APPLICATION_VERIFIER_FLAGS:  0
CONTEXT:  (.ecxr)
eax=0021ffde ebx=0763bbec ecx=000000df edx=00000000 esi=07e8af90 edi=12e1214c
eip=54c779c9 esp=0ff1f7d0 ebp=0ff1fa1c iopl=0         nv up ei pl nz ac pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010216
ddraw_54c20000!D3dDrawPrimitives2+0x2849:
54c779c9 898c86788c0000  mov     dword ptr [esi+eax*4+8C78h],ecx ds:002b:08713b80=????????
Resetting default scope
EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 54c779c9 (ddraw_54c20000!D3dDrawPrimitives2+0x00002849)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000001
Parameter[1]: 08713b80
Attempt to write to address 08713b80
PROCESS_NAME:  MigAlley.exe
WRITE_ADDRESS:  08713b80
ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.
EXCEPTION_CODE_STR:  c0000005
EXCEPTION_PARAMETER1:  00000001
EXCEPTION_PARAMETER2:  08713b80
STACK_TEXT:
0ff1fa1c 53f74a29     0763bbec 07e9c420 53f74550 ddraw_54c20000!D3dDrawPrimitives2+0x2849
0ff1fa68 53f65c3e     0ff1fa8c 00000002 ecfb7bd3 d3dim!CDirect3DDeviceIDP2::ExecuteI+0x4d9
0ff1fadc 546bee47     07639e00 07e9c420 075b3ba0 d3dim!DIRECT3DDEVICEI::Execute+0x11e
WARNING: Stack unwind information not available. Following frames may be wrong.
0ff1fb8c 0054d004     07639e00 07e9c420 075b3ba0 ddraw+0x11ee47
0ff1fbe8 0054f92b     0ff1fbb0 00000030 05319f78 MigAlley!direct_3d::FlushPTDraw+0x104
0ff1fc40 00542692     033aec62 05338c92 006edf28 MigAlley!direct_3d::FlushNZDraw+0x1b
0ff1fc74 00535633     033aec62 00000000 0052eeda MigAlley!direct_3d::SetZUpdate+0x1d2
0ff1fc80 0052eeda     00000000 0043b7bf 00000000 MigAlley!Display::SetZUpdate+0x23
0ff1fc88 0043b7bf     00000000 00000000 006edf28 MigAlley!Display::DoSetZUpdate+0xa
0ff1fd38 004644ad     15ed5788 0ff1fdd0 0064d218 MigAlley!ThreeDee::add_cockpit+0x5af
0ff1fd50 0043a979     069545b0 00000000 00008ae0 MigAlley!btree::drw_obj+0x3d
0ff1fdb0 0043e075     0ff1fe18 069545b0 06a07c78 MigAlley!ThreeDee::render3d+0x649
0ff1fddc 0041a519     0ff1fe18 069545b0 06a07c78 MigAlley!ThreeDee::render+0x105
0ff1febc 7216a124     051ea698 58cc685a 77d06d60 MigAlley!View3d::drawloop+0x149
0ff1ff30 77d06cff     0019f6f4 207c9a40 77d06d60 mfc42!_AfxThreadEntry+0x104
0ff1ff68 77d06dc1     0ff1ff80 7771fcc9 03402630 msvcrt!_callthreadstartex+0x25
0ff1ff70 7771fcc9     03402630 7771fcb0 0ff1ffdc msvcrt!_threadstartex+0x61
0ff1ff80 77e37c6e     03402630 8533a24d 00000000 kernel32!BaseThreadInitThunk+0x19
0ff1ffdc 77e37c3e     ffffffff 77e58c24 00000000 ntdll!__RtlUserThreadStart+0x2f
0ff1ffec 00000000     77d06d60 03402630 00000000 ntdll!_RtlUserThreadStart+0x1b
SYMBOL_NAME:  ddraw_54c20000!D3dDrawPrimitives2+2849
MODULE_NAME: ddraw_54c20000
IMAGE_NAME:  ddraw.dll
STACK_COMMAND:  ~15s; .ecxr ; kb
FAILURE_BUCKET_ID:  INVALID_POINTER_WRITE_c0000005_ddraw.dll!D3dDrawPrimitives2
OS_VERSION:  10.0.19041.1
BUILDLAB_STR:  vb_release
OSPLATFORM_TYPE:  x86
OSNAME:  Windows 10
IMAGE_VERSION:  6.2.19041.1
FAILURE_ID_HASH:  {68d9e94f-6621-ab17-ebf2-e477c25b497d}
Followup:     MachineOwner
0:015> lmvm ddraw_54c20000
Browse full module list
start    end        module name
54c20000 54d09000   ddraw_54c20000 # (pdb symbols)          C:\ProgramData\Dbg\sym\ddraw.pdb\B99F24CB90CBDA316C60E979B85CC00D1\ddraw.pdb
Loaded symbol image file: ddraw.dll
Mapped memory image file: C:\ProgramData\Dbg\sym\ddraw.dll\2F5AE381e9000\ddraw.dll
Image path: C:\Windows\System32\ddraw.dll
Image name: ddraw.dll
Browse all global symbols  functions  data
Image was built with /Brepro flag.
Timestamp:        2F5AE381 (This is a reproducible build file hash, not a timestamp)
CheckSum:         000842E9
ImageSize:        000E9000
File version:     6.2.19041.1
Product version:  10.0.19041.1
File flags:       0 (Mask 3F)
File OS:          40004 NT Win32
File type:        2.0 Dll
File date:        00000000.00000000
Translations:     0409.04b0
Information from resource tables:
CompanyName:      Microsoft Corporation
ProductName:      Microsoft® Windows® Operating System
InternalName:     DDraw.dll
OriginalFilename: DDraw.dll
ProductVersion:   10.0.19041.1005
FileVersion:      10.0.19041.1005 (WinBuild.160101.0800)
FileDescription:  Microsoft DirectDraw
LegalCopyright:   © Microsoft Corporation. All rights reserved.
DDrawCompat_ini files.zip

I set the Alpha to about 40 and that made the overlay transparent again.

That's odd, 40 is way too transparent and hard to read for me. Can you take a screenshot of what it looks like at 90 and 40 for you?

getting these strange striations in ground textures when using the in game "All" filtering selection and PalletizedTextures set to off as noted in the link you sent me: https://github.com/narzoul/DDrawCompat/issues/176
In version 4.0, with the All filter setting, it drew textures correctly. Screen shot attached.

I've no idea about this. Unfortunately the game crashes on start for me now (with any wrapper, seems unrelated to ddraw), so it's hard to check out these issues. What you could do is try the previous builds here:
https://github.com/narzoul/DDrawCompat/releases/download/v0.5.0/DDrawCompat-v0.5.0-debug-previous-builds.7z
Let me know which is the first one that introduced the problem, and the last one that still rendered correctly. Maybe that'll give me some idea.

Also, getting the following crash(ini files attached):

At first look it seems like it might be a bug in the game, since it crashed in native ddraw, not in DDrawCompat. But I'd need the crash dump to check it better. Do you have it somewhere? I think it should be this one:
FILE_IN_CAB: dumplog.dmp
Or you might find it in %LOCALAPPDATA%\CrashDumps

Found the dumplog.dmp:
dumplog_11.24.23.zip

Hi Narzoul, you were right. I found the bug that caused that CTD.  It was due to the clouds.
Fixed it.  Still hunting for the version that did not have the ground texture striations.
Attached is a pic with the overlay set at 34.
<EMAIL_ADDRESS>

Hi Narzoul, you were right. I found the bug that caused that CTD. It was due to the clouds. Fixed it.

How did you figure that out, and what did you do to fix it?
I didn't get very far with the crash dump, it's seemingly indexing into an array with a bad index ((0xFFFF * 33 + 0xFFFF) * 4), but it's way too hard to track down where those 0xFFFFs are coming from. Since we're in the middle of processing the execute buffer contents, I'd assume there's something bad the game puts in the buffer.

Attached is a pic with the overlay set at 34.

You mean 41? Anyway, that actually looks normal to me. I guess we just have different expectations about how transparent it should be. The default 90 should also be transparent, but only a little bit.
I managed to get my game working again, I'm not sure how, I think it started working after reinstalling the demo version.
How do I reproduce the texture issue exactly? Which map to load and how? I'm not very good at this game so I'd need detailed instructions how to get there. Also screenshots of your in-game settings could be useful.

Hi Narzoul, havent been on due to the holidays. I was able to figure it out because everytime i turned the view to look at a batch of clouds, the crash occurred. In the very exact spot.  I was testing out a 3D clouds mod. Once I disabled that, the crash stopped.  In terms of the Overlay transparency, when it was set to 90, the background was completely black.  Adjusting to 41(I guess the overlay game menu takes priority over the ini file's 34 setting), enables the level of transparency shown in that screen shot  I sent.
In terms of the striations seen in ground textures in the latest version of DDrawCompat, I did a test in v3.1 versus the latest version.  3.1 does not have them.  I have the 3.1 in game settings in a screen shot, ini file and dll in the attached.
ddrawNoStriations3.1.zip

Ok, likewise attached are the files from the latest version of DDrawCompat with screen shot of striations, ini fils, screenshot of in game 3D settings and dll.  When you enter the 3D for the first time(won't happen in the 2D menu), the game may CTD with these settings. The work around is what you had me do in an earlier message where you only list the three lowest resolution settings in the ini file(640x480, 800x600, 1024x768).  Then, once you launch to 3D for the first time, exit and add the additional resolutions that your monitor can display to the ini file. You may then select the desired higher resolutions in the game's 2D menu.  Pick a campaign mission with the F-51D aircraft.  This will put on on the runway. The runway should have steel planking, but it will be striated.  If you move your squadron to one of the runway's that are made of dirt, they will be striated as well in this latest version of the dll. The striations are not noticeable from the air unless you fly near the surface.
DDrawCompatLatestwStriations.zip

The Pusan Perimeter is the F-51D's campaign...

In terms of the Overlay transparency, when it was set to 90, the background was completely black. Adjusting to 41(I guess the overlay game menu takes priority over the ini file's 34 setting), enables the level of transparency shown in that screen shot I sent.

Yes, your screenshot looks the same as mine at 41. What I don't understand is how can it be completely black at 90, because it doesn't look that way for me. Can you take a screenshot of the overlay at 90 too?

In terms of the striations seen in ground textures in the latest version of DDrawCompat, I did a test in v3.1 versus the latest version. 3.1 does not have them.

It's the SoftwareDevice=hal setting that causes it. I'm not sure why yet, but you can just set it back to default because it's not needed for this game anyway, it's already using a HAL device for 3D.

Ok, I will change the device to default.  Attached are Alpha 100 and 90.
Not sure if any other setting affects it.  90 was looking like 100 before.  Now it is better but 41 allows for more color.
Alpha 100.zip

Hey @TheSilkMan, how did you get this game in widescreen? Looks great.


is there a way to use the golden shovel normally?

If you don't want to use the golden shovel then change the item in config or use no item by setting it to blank. If you use no item then you will have to use the /claim command.


Rows with skipped elements?

I have a problem when going below 1024px width and shifting from:
@include column(1/4, $cycle: 4, $gutter: 0);
to:
@include column(1/3, $cycle: 3, $gutter: 0);
The first row is fine. The next is missing the first two element (having only the last element in place before going to the next row).
What did I miss?

That looks correct. Can you put a reduced test case up somewhere?


32864 md syntax create task

Details
Fixed Issues
$ https://github.com/Expensify/App/issues/32864
PROPOSAL: https://github.com/Expensify/App/issues/32864#issuecomment-1851179720
Tests

Open any chat
Typing a message with rule start with [] then mention a user has a chat by @ character then type a title is required

[x] Verify that no errors appear in the JS console

Offline tests
QA Steps

Open any chat
Typing a message with rule start with [] then mention a user has a chat by @ character then type a title is required

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/11959869/e35b1bde-532b-4592-a0e1-69a38730f7b4

Android: mWeb Chrome
https://github.com/Expensify/App/assets/11959869/0426d1fc-420a-42ba-83ab-cd4eae31f4f1

iOS: Native
https://github.com/Expensify/App/assets/11959869/8951f139-043a-4d94-8e2a-d88851cc50e2

iOS: mWeb Safari
https://github.com/Expensify/App/assets/11959869/bc46d8d0-7857-48e9-814b-8110dca73a9c

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/11959869/6f9f451e-7120-49ba-a321-77dc51965913
https://github.com/Expensify/App/assets/11959869/81a872d3-9dad-4d31-b61c-abdf4b95088d

MacOS: Desktop
https://github.com/Expensify/App/assets/11959869/7036fe60-95b0-4074-8ea5-a8502eba611a

@thienlnam Do we also want this functionality for the edit message composer?

We can skip this for now

Looks good thanks!

Just an observation:
If we use a @mention that is not a valid email (i.e [] @you testtitle) it will be added as part of the title.
I think this is fine but alternatively we could strip the @mention.

Yeah this is not a bad idea - though let's try this out in the wild first and see what the responses are. I think it's still possible we might have people using @ in task titles so we don't want to rule that out yet

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/thienlnam in version: 1.4.24-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/thienlnam in version: 1.4.24-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Update transport_drivers release repository.

The release repository was forked into ros2-gbp for the Galactic migration in April 2021.  Since then there have been releases into the upstream release repository.
These releases were merged into the ros2-gbp branch on 2022-02-07.
Since the upcoming Rolling platform migration will again branch the release repositories into ros2-gbp and the ros2-gbp repository is now up-to-date with the external repository I recommend that we update the release repository pre-emptively to reduce churn in the bloom configuration branches.

@nuclearsandwich In-general, are you OK with me just transitioning to using the ros2-gbp version as the de-facto source (switching release repo URLs for all released distros) and dumping the ros-drivers-gbp version? If so, I am happy to apply this to all repos that I maintain.

In-general, are you OK with me just transitioning to using the ros2-gbp version as the de-facto source (switching release repo URLs for all released distros) and dumping the ros-drivers-gbp version? If so, I am happy to apply this to all repos that I maintain.

Yes. I think there's some potential value in keeping ROS 1 and ROS 2 releases separate from a ref count perspective but usage of ros2-gbp for all ROS 2 releases is a bigger priority and if keeping ROS and ROS 2 releases in a single repository is easiest for maintainers I'm all for it.


Less rationalisation of metadata during arithmetic

✨ Feature Request
Lenient cube arithmetic is great and is allowing us to do new things. However, it would sometime be useful to keep some metadata.
Motivation
Please see the metadata always rationalised at https://scitools-iris.readthedocs.io/en/stable/further_topics/lenient_maths.html#finer-detail. When using arithmetic to remove a bias, e.g. cube1 - cube2, then the underlying property is still air_temperature and the previous cell_methods are still valid and would be useful to keep them somehow, e.g. perhaps:
subtract(cube1, cube2, standard_name='air_temperature')

It was suggested that @bjlittle might be the local expert on this.

This might also be relevant for https://github.com/ESMValGroup/ESMValCore/issues/651
That specific use case is about calculating anomalies, which is very similar to the bias use case.

@jonseddon The final step in cube arithmetic is iris.analysis.maths._sanitise_metadata, which honours the previous cube arithmetic behaviour prior to iris v3.0 and the introduction of lenient operations.
Preserving the standard_name, long_name and var_name only when lenient addition (+) and (-) has been performed seems to make sense to me, rather than purging that metadata regardlessly.
No special treatment has ever been performed for maintaining cell_methods, but without thinking about this too deeply, the lenient concession here might be to preserve cell_methods iff they exactly match for each cube operand, or the case where one cube operand has cell_methods and the other not. However, for the strict case the cell_methods must match, otherwise they are cleared.
Would this fit your use case @jonseddon ?

@jonseddon Is this still an issue for you?
It would be good to come to some conclusion to move forwards...