TypeError: no implicit conversion of Sprockets::BundledAsset into String Compass#1836

compass/compass#1836

Try with the latest master. If the problem persists please re-open this ticket with more information.

Hi,
I having the exact same issue here. But I don't want to disable image_optim because I want it to compress my images and sprites.
So everything is working great till it get to the spreadsheets.
Then here it goes:
TypeError: no implicit conversion of Sprockets::BundledAsset into String
  (in /Users/julien/juliedesk/app/assets/stylesheets/admin.css.scss)
/Users/julien/.rvm/gems/ruby-2.2.0/gems/compass-core-1.0.3/lib/compass/core/sass_extensions/functions/image_size.rb:19:in `extname'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/compass-core-1.0.3/lib/compass/core/sass_extensions/functions/image_size.rb:19:in `initialize'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/compass-core-1.0.3/lib/compass/core/sass_extensions/functions/image_size.rb:54:in `new'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/compass-core-1.0.3/lib/compass/core/sass_extensions/functions/image_size.rb:54:in `image_dimensions'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/compass-core-1.0.3/lib/compass/core/sass_extensions/functions/image_size.rb:12:in `image_height'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/script/tree/funcall.rb:140:in `_perform'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/script/tree/node.rb:50:in `perform'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:394:in `visit_prop'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/base.rb:36:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:158:in `block in visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:79:in `block in with_base'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:115:in `with_frame'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:79:in `with_base'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:158:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:363:in `block (4 levels) in visit_mixin'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:363:in `map'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:363:in `block (3 levels) in visit_mixin'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:179:in `with_environment'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:363:in `block (2 levels) in visit_mixin'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:84:in `perform_arguments'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:358:in `block in visit_mixin'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:98:in `block in with_mixin'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:115:in `with_frame'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:98:in `with_mixin'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:346:in `visit_mixin'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/base.rb:36:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:158:in `block in visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:79:in `block in with_base'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:115:in `with_frame'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:79:in `with_base'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:158:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:363:in `block (4 levels) in visit_mixin'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:363:in `map'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:363:in `block (3 levels) in visit_mixin'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:179:in `with_environment'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:363:in `block (2 levels) in visit_mixin'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:84:in `perform_arguments'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:358:in `block in visit_mixin'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:98:in `block in with_mixin'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:115:in `with_frame'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:98:in `with_mixin'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:346:in `visit_mixin'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/base.rb:36:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:158:in `block in visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:79:in `block in with_base'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:115:in `with_frame'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:79:in `with_base'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:158:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:430:in `block (2 levels) in visit_rule'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:430:in `map'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:430:in `block in visit_rule'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:179:in `with_environment'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:428:in `visit_rule'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/base.rb:36:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:158:in `block in visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:79:in `block in with_base'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:115:in `with_frame'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:79:in `with_base'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:158:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:430:in `block (2 levels) in visit_rule'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:430:in `map'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:430:in `block in visit_rule'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:179:in `with_environment'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:428:in `visit_rule'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/base.rb:36:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:158:in `block in visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:79:in `block in with_base'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:115:in `with_frame'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:79:in `with_base'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:158:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:430:in `block (2 levels) in visit_rule'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:430:in `map'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:430:in `block in visit_rule'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:179:in `with_environment'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:428:in `visit_rule'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/base.rb:36:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:158:in `block in visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:79:in `block in with_base'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:115:in `with_frame'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:79:in `with_base'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:158:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:325:in `block (2 levels) in visit_import'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:325:in `map'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:325:in `block in visit_import'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:88:in `block in with_import'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:115:in `with_frame'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:88:in `with_import'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:322:in `visit_import'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/base.rb:36:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:158:in `block in visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:79:in `block in with_base'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:115:in `with_frame'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/stack.rb:79:in `with_base'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:158:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/base.rb:52:in `block in visit_children'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/base.rb:52:in `map'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/base.rb:52:in `visit_children'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:167:in `block in visit_children'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:179:in `with_environment'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:166:in `visit_children'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/base.rb:36:in `block in visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:186:in `visit_root'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/base.rb:36:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:157:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/visitors/perform.rb:8:in `visit'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/root_node.rb:36:in `css_tree'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/tree/root_node.rb:20:in `render'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sass-3.4.10/lib/sass/engine.rb:268:in `render'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/compass-rails-2.0.4/lib/compass-rails/patches/sass_importer.rb:48:in `evaluate'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/context.rb:197:in `block in evaluate'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/context.rb:194:in `each'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/context.rb:194:in `evaluate'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/processed_asset.rb:12:in `initialize'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/base.rb:374:in `new'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/base.rb:374:in `block in build_asset'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/base.rb:395:in `circular_call_protection'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/base.rb:373:in `build_asset'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/index.rb:94:in `block in build_asset'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/caching.rb:58:in `cache_asset'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/index.rb:93:in `build_asset'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/base.rb:287:in `find_asset'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/index.rb:61:in `find_asset'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/bundled_asset.rb:16:in `initialize'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/base.rb:377:in `new'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/base.rb:377:in `build_asset'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/index.rb:94:in `block in build_asset'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/caching.rb:58:in `cache_asset'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/index.rb:93:in `build_asset'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/base.rb:287:in `find_asset'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/index.rb:61:in `find_asset'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:211:in `block in find_asset'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:257:in `benchmark'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:210:in `find_asset'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:119:in `block in compile'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:118:in `each'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:118:in `compile'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-rails-2.2.4/lib/sprockets/rails/task.rb:70:in `block (3 levels) in define'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-2.12.3/lib/rake/sprocketstask.rb:146:in `with_logger'
/Users/julien/.rvm/gems/ruby-2.2.0/gems/sprockets-rails-2.2.4/lib/sprockets/rails/task.rb:69:in `block (2 levels) in define'
/Users/julien/.rvm/gems/ruby-2.2.0/bin/ruby_executable_hooks:15:in `eval'
/Users/julien/.rvm/gems/ruby-2.2.0/bin/ruby_executable_hooks:15:in `<main>'


[Feat] add comment formatting function by VS Code language ID

Closes #14
Description

Support for All Language Identifiers (https://code.visualstudio.com/docs/languages/identifiers#_known-language-identifiers)

https://github.com/YouOnlyCopyOnce/YOCO/assets/63575891/2f43df84-01e6-42aa-8ed0-1a4451524629
ETC

Checklist (Merge should only be performed once all of the following conditions are checked.)

[x] I have completed the necessary tests and verified that the functionality works as intended.
[x] I have written the code according to the code style guide.
[x] I have confirmed that only the intended files and changes have been committed.
[x] I have discussed these changes with my team members in advance, and all team members are aware of this PR.

우리 새로운 기능 추가하는 거 src 밑에 util 파일 만들자고 얘기해야지 생각만 하고 전 이미 그렇게 작업하고 있었는데 역시 유리 님도 알잘딱 해 주셨군요. 👍


Add a Gitter chat link to README.txt

atlassian/httpclient now has a Chat Room on Gitter
@kimar has just created a chat room. You can visit it here: https://gitter.im/atlassian/httpclient.
This pull-request adds a link to your README.txt.
If my aim is a little off, please let me know.
Happy chatting.
PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

Accidentally clicked the wrong button, obviously :-1:


changefeed does not make progress since resolved ts not received.

What did you do?

create a changefeed
run some workload

What did you expect to see?
changefeed make progress
What did you see instead?
changefeed blocked, since resolved ts event not received.
Versions of the cluster
Upstream TiDB cluster version (execute SELECT tidb_version(); in a MySQL client):
master

Upstream TiKV version (execute tikv-server --version):
master

TiCDC version (execute cdc version):
master

[2022/03/15 01:08:10.052 +00:00] [WARN] [region_worker.go:354] ["region not receiving resolved event from tikv or resolved ts is not pushing for too long time, try to resolve lock"] [changefeed=tikv-scale-sync] [addr=upstream-tikv-1.upstream-tikv-peer.cdc-testbed-tps-660928-1-540.svc:20160] [regionID=637] [span="[6d44444c4a6f6241ff64ff644964784c69ff7374ff0000000000ff000000f700000000ff0000006c00000000fb, 6d44444c4a6f6241ff64ff644964784c69ff7374ff0000000000ff000000f700000000ff0000006d00000000fb)"] [duration=6h0m9.951s] [lastEvent=389.664591ms] [resolvedTs=431825847569874978]
[2022/03/15 01:08:10.053 +00:00] [INFO] [lock_resolver.go:133] ["resolve lock successfully"] [regionID=637] [lockCount=0] [maxVersion=431831509867429888] [changefeed=tikv-scale-sync] [role=processor]
[2022/03/15 01:08:10.664 +00:00] [WARN] [region_worker.go:751] ["The resolvedTs is fallen back in kvclient"] [changefeed=tikv-scale-sync] [EventType=RESOLVED] [resolvedTs=431825847569874978] [lastResolvedTs=431825847635410946] [regionID=272]

[2022/03/15 01:08:10.052 +00:00] [WARN] [region_worker.go:354] ["region not receiving resolved event from tikv or resolved ts is not pushing for too long time, try to resolve lock"] [changefeed=tikv-scale-sync] [addr=upstream-tikv-1.upstream-tikv-peer.cdc-testbed-tps-660928-1-540.svc:20160] [regionID=637] [span="[6d44444c4a6f6241ff64ff644964784c69ff7374ff0000000000ff000000f700000000ff0000006c00000000fb, 6d44444c4a6f6241ff64ff644964784c69ff7374ff0000000000ff000000f700000000ff0000006d00000000fb)"] [duration=6h0m9.951s] [lastEvent=389.664591ms] [resolvedTs=431825847569874978]
[2022/03/15 01:08:10.053 +00:00] [INFO] [lock_resolver.go:133] ["resolve lock successfully"] [regionID=637] [lockCount=0] [maxVersion=431831509867429888] [changefeed=tikv-scale-sync] [role=processor]
[2022/03/15 01:08:10.664 +00:00] [WARN] [region_worker.go:751] ["The resolvedTs is fallen back in kvclient"] [changefeed=tikv-scale-sync] [EventType=RESOLVED] [resolvedTs=431825847569874978] [lastResolvedTs=431825847635410946] [regionID=272]

duplicate of #4886


Linting errors

Fixing some linting errors from yarn lint
Will add some VSCode extensions to auto fix linting errors for convenience.

Padding build: https://github.com/jasonmadigan/kuadrant-console-plugin/actions/runs/11404840764/job/31734890036


Explicitly offloading nogil code to device/GPU

Allow marking nogil-code to be run on a device/GPU.
There is also a discussion on the mailing-list: https://mail.python.org/pipermail/cython-devel/2020-January/005262.html.
Older CEPs suggest doing similar things by

either automatically determining regions for offload using OpenCL  (https://github.com/cython/cython/wiki/enhancements-opencl) which is relatively tricky and intriduces a new tool
or pretty extensively extend the Cython language (https://github.com/cython/cython/wiki/enchancements-metadefintions)

A first and already very powerful step would be to explicitly mark code that should be offloaded, minimize language extensions and not require extra tools.
As a start, we could consider only parallel devices, such as GPUs and use OpenMP target since Cython already uses OpenMP for parallelism
Let's consider a simple example for computing pairwise distances between vectors in parallel:
def pairwise_distance_host(double[:, ::1] X):
    cdef int M = X.shape[0]
    cdef int N = X.shape[1]
    cdef double tmp, d
    cdef double[:, ::1] D = np.empty((M, M), dtype=np.float64)
    cdef int i,j,k
    with nogil:
        for i in prange(M):
            for j in prange(M):
                d = 0.0
                for k in range(N):
                    tmp = X[i, k] - X[j, k]
                    d = d + tmp * tmp  # cython would interpret '+=' as a reduction variable!
                    D[i, j] = sqrt(d)
    return np.asarray(D)

The parallel region is implicitly defined by the first, outermost prange. For offloading we could demand that the parallel region needs to be defined explicitly:
...
    with nogil, parallel():
        for i in prange(M):
...

Now all we need is a marker that the parallel region should be offloaded to a device:
...
    with nogil, parallel(device={}):
        for i in prange(M):
...

Cython should take care of a safe way to define data mappings: transferring the necessary data to the device and from device to the host:

by default arrays are sent from host to device when entering the parallel region and from the device to host when exiting
read-only data is only sent from host to device but not from device to host
ideally, write-only data will not be sent from host to device but only from device to host
ideally, we can also detect that a variable is not used outside the parallel region so that we do not need to transfer any data (only allocate and deallocate)

Because complex indexing can make it impossible to correctly determine the best mapping and because data-movement is often the biggest performance bottleneck, we also need a way for experts to optimize the data movement. For that, device should accept a dictionary mapping variable names to a map-type (as borrowed from OpenMP target map clauses)

"to" means host to device
"from" means device to host
"tofrom" means host to device and device to host
"alloc" means not data-transfer at all

In the above example, the input array/memview is read-only on the device, so we could indicate it like this:
...
    with nogil, parallel(device={X:'to'}):
        for i in prange(M):
...

Map-values provided in device overwrite whatever Cython would automatically infer.
Another common challenge in offloading is that computation might go back and forth between host and GPU. In such cases it is often required to keep data on the GPU between different GPU regions even if a host-section is in between. As an example, let's look at the above code and block the computation by only computing a single row of the output array at once. Note that this will be needed anyway if the input array becomes large since the output vector size increases with quadratically and might simply not fit on the GPU.
def pairwise_distance_row(double[:, ::1] X):
    cdef int M = X.shape[0]
    cdef int N = X.shape[1]
    cdef double tmp, d
    cdef double[:, ::1] D = np.empty((M, M), dtype=np.float64)
    cdef double[::1] Dslice
    cdef int i,j,k
    with nogil:
        for i in range(M):
            Dslice = D[i,:]
            with parallel(device={Dslice:'from', X:'to'}):
                for j in prange(M):
                    d = 0.0
                    for k in range(N):
                        tmp = X[i, k] - X[j, k]
                        d = d + tmp * tmp  # cython would interpret '+=' as a reduction variable!
                        Dslice[j] = sqrt(d)
    return np.asarray(D)

Even though we only transfer slices of D in Dslice from device to host, the entire input array X will be send from host to device in every iteration of the outermost loop. The suggested solution adds a data-context (to be used with with) defining the lifetime of variables on the device. Let's simply use the same keyword device and let it accept the same mappings:
...
    with nogil, device({X:'to'}):
        for i in range(M):
...

Since this is an expert tool we might not want or need to infer any map-type and leave it to the programmer.
Calling functions in a device block
The OpenMP compiler will try to inline a function that appears in a target/device section/block and will usually
complain if that's not possible. For such cases Cython provides the decorate @cython.device to explicitly make
functions available on the device::
    @cython.device
    cdef double _dist(double[:] v1, double[:] v2) nogil:
        cdef double d = 0.0
        cdef double tmp
        for k in range(min(v1.shape[0], v1.shape[0])):
            tmp = v1[k] - v2[k]
            d += tmp * tmp  # cython would interpret '+=' as a reduction variable!
        return sqrt(d)

    def pairwise_distance_target_row_context_annotated_func(double[:, ::1] X):
        cdef int M = X.shape[0]
        cdef double tmp, d
        cdef double[:, ::1] D = np.empty((M, M), dtype=np.float64)
        cdef double[::1] Dslice
        cdef int i,j,k
        with device({X:'to'}):
            with nogil:
                for i in range(M):
                    Dslice = D[i,:]
                    with parallel(device={Dslice:'from'}):
                        for j in prange(M):
                            Dslice[j] = _dist(X[i], X[j])
        return np.asarray(D)

A first prototype is implemented here: https://github.com/fschlimb/cython/tree/offload
Limitations, open questions etc

In most cases the generated code does not work if @boundscheck and @wraparound are not set to False.
OpenMP does not allow mapping overlapping memory regions. We need to at least check that 2 memviews do not overlap
C-pointers are not properly checked
Only C-contiguous memviews are supported
need support for setup.py/distutils
need tests
need docu (syntax, semantics, and how to setup offload compiler)
error reporting back to host is disabled, properly mapping related variables could allow a useful error reporting
string support has not been looked at yet

@ogrisel @GaelVaroquaux @oleksandr-pavlyk @DrTodd13

This is exciting!

A first prototype is implemented here: https://github.com/fschlimb/cython/tree/offload

@fschlimb the link is broken.

@jeremiedbb Sorry. The branch is now back online.

I also added the keyword simd for prange which will add it to the openmp pragma (without any further check)

I managed to build llvm/clang with openmp offloading capability. However, using your branch of cython the compilation of the toy program you wrote in the beginning of this thread (pairwise_distance_host) fails with this error message:
 error: unexpected OpenMP clause 'shared' in directive '#pragma omp for'
         #pragma omp for private(__pyx_t_10, __pyx_t_11, __pyx_t_12, __pyx_t_13, __pyx_t_14, __pyx_t_15, __pyx_t_16, __pyx_t_17, __pyx_t_18, __pyx_t_19, __pyx_t_20, __pyx_t_21, __pyx_t_22) private(__pyx_filename, __pyx_lineno, __pyx_clineno) shared(__pyx_parallel_why, __pyx_parallel_exc_type, __pyx_parallel_exc_value, __pyx_parallel_exc_tb) lastprivate(__pyx_v_d) firstprivate(__pyx_v_i) lastprivate(__pyx_v_i) lastprivate(__pyx_v_j) lastprivate(__pyx_v_k) lastprivate(__pyx_v_tmp)

Here I'm not even trying to use offloading. I tried with cython master and it compiles.

@jeremiedbb I forgot to mention that you need to switch off some cython checks.
# cython: boundscheck=False
# cython: wraparound=False

Sometimes you also need # cython: initializedcheck=False .
Of course you can also use @decorators.
This can probably auto-enabled in with-device blocks, but for now I chose the easier path...

thanks, it works

now I have this error when trying to use  offloading:
/home/parietal/jduboisb/R/tst/tst.cpython-37m-x86_64-linux-gnu.so: undefined symbol: __tgt_register_requires

Here's what it does for me:
clang -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fopenmp -fopenmp-targets=nvptx64 -fPIC -I.../miniconda3/envs/cython/include/python3.8 -c test_pairwise_distance.c -o build/temp.linux-x86_64-3.8/test_pairwise_distance.o

clang -shared -fopenmp -fopenmp-targets=nvptx64 build/temp.linux-x86_64-3.8/test_pairwise_distance.o -o build/lib.linux-x86_64-3.8/test_pairwise_distance.cpython-38-x86_64-linux-gnu.so

I just forgot to put the -fopenmp-targets=nvptx64 in the link flags as well... It works now \o/
Thanks for your help. I will do some tests with real code from scikit-learn and I'll let you know how it goes.

Great!

I looked at kmeans in scikit-learn and identified a limitation. scikit-learn currently implements an explicit parallel loop, which lets each thread call gemm on its own block (I take this is to avoid oversubscription due to MKL's internal threading). While calling functions within a device block is ok, MKL does not provide device functions for BLAS (to call BLSA from the device). Porting the code as-is to OpenMP-offload is quite a challenge (we'd need to transform the prange into a series of OpenMP tasks with appropriate dependences).
Question (@ogrisel @GaelVaroquaux @jeremiedbb): is this a common pattern (for example in scikit-learn) we'd want to see supported? Providing a specialization one algorithm or two for GPU would probably be ok- the question is if this is a common or rare case.
From the cython perspective I tend to believe this is a corner case.
BTW: Another option for sklearn would be to provide a task-based backend for cython and joblib based on dpc++/SYCL and then by default avoid the explicit outer prange...

We could make some experiments in a branch of scikit-learn where the euclidean distances are computed in a more naive way without calling into BLAS to see whether or not GPU offloading can bring us good performances. And we could compare to an implementation of KMeans that uses vendor specific BLAS implementations such as cuML / cuBLAS.


Add a variant of Trace.ioTrace that takes an existing IOLocal

In absence of a built-in IOLocal[A] => Local[IO, A] which would allow using natchezMtlTraceForLocal (might eventually be available if https://github.com/typelevel/cats-effect/pull/3429 ever gets merged and released), this would allow for some useful Java interop in a style similar to what otel4s suggests.
The ability to directly create (and thus, read afterwards) the IOLocal that holds the current span, lets some Java interop apply the following process:

capture the current value in an effect
downcast to a particular Span implementation, e.g. DDSpan
extract the underlying java Span, e.g. the opentracing Span
in a delay block, set the current span of the global Tracer instance to the span it just found.

I acknowledge this might not be a popular usecase (given nobody requested it by now), but it'd be quite helpful to my team at the moment.

Kindly requesting a look @mpilquist 🥺

I was going to suggest copying catsMtlEffectLocalForIO into natchez-mtl until it's adding to cats-effect, but maybe this is fine instead.
My main hesitation is that we'd want to be careful (both now and in the future) that this Trace[IO] doesn't do anything that can't be encoded using Local[IO, Span[IO]] semantics, since I think it's been concluded that Local semantics are safe, but using IOLocal directly can be dangerous in some scenarios? (See https://github.com/typelevel/cats-effect/issues/3385 for some additional discussion on this point. And to be clear, I'm sure @kubukoz has seen that, I'm just noting it for the record here.)

yeah, I would've liked to have Local[IO, E] at the ready and to implement this in terms of Local, but I'm hopeful that we can get https://github.com/typelevel/cats-effect/pull/3429 (or similar, but indeed a solution for https://github.com/typelevel/cats-effect/issues/3385) soon, and I wouldn't want there to be an implicit conflict. I guess we could keep the instance, and then un-implicit it when CE gets one of their own?

If we didn't want to publicly expose a copy of catsMtlEffectLocalForIO (although I do think including it here and then making it no longer implicit once it's available in cats-effect should be fine), one compromise would be to make a private copy and use that to implement def ioTraceLocal(local: IOLocal[Span[IO]]): Trace[IO]. Just brainstorming, really. 🤔

Sorry for the long wait, it's a busy time at work and I have no puter time left. I think you're right, we can always hide that implicit when there's an alternative with the same behavior.


Fixing hot reloading in examples

Description

I created a couple of projects, one using the basic template and another using the animated-routes template.  Everything went great (I am really glad I found this project!)  but I noticed hot reloading was not working.
Changes/Tasks

[x] Added react-hot-loader/babel plugin to root .babelrc file
[x] Added/updated the latest react-hot-loader dependency to the package.json file for each of the examples.

Motivation and Context

Gets hot reloading working and addresses https://github.com/nozzle/react-static/issues/606
Types of changes

[ ] Refactoring/add tests (refactoring or adding test which isn't a fix or add a feature)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] My changes have tests around them

This won't be necessary in v6. Have you tried using master?

I just tried that and ran into some issues:
Here is what I did:
cloned repo:
yarn install
yarn run build
from \react-static\bin directory, ran: node .\react-static create
ran through the prompts selecting basic template
watched it yarn install
ran yarn start on the newly created project.
This was done on a Windows 10 machine
yarn 1.7
node v8.9.4
On Tue, Jul 3, 2018 at 9:39 PM, Tanner Linsley<EMAIL_ADDRESS>wrote:

This won't be necessary in v6. Have you tried using master?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/nozzle/react-static/pull/654#issuecomment-402346338,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABQNeqqPslr591xajk4vJ87DMNkGLiRMks5uDCrxgaJpZM4VB3Ch
.

This is because the templates generate a package.json that depends on an older version of react-static
You have to manually change the local project dependency to also use version 6.. I ran into this too, took me a while to notice the discrepancy between cli / project versions..

Correct. The easiest way to do this during development is to use yarn link in the react-static root and yarn link react-static in the example
directory to link the dependencies locally.
On Tue, Jul 10, 2018 at 10:15 AM Conor Dockry<EMAIL_ADDRESS>wrote:

This is because the templates generate a package.json that depends on an
older version of react-static
You have to manually change the local project dependency to also use
version 6.. I ran into this too, took me a while to notice the discrepancy
between cli / project versions..
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/nozzle/react-static/pull/654#issuecomment-403880857,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFUmCRkaZ2FrfbpsZpXMeY7p6ZeoF4Eoks5uFNMagaJpZM4VB3Ch
.


Cannot delete account: "DB error"

I can't delete my account<EMAIL_ADDRESS>I'm using this page: https://keybase.io/account/delete_me
It gives me the error message: "Error In Deletion: DB error"

I have a fix for this bug, it should be live in a few days


v2.6 beta gives [Math processing error] 30 seconds after successfully rendering text on windows phone webview

With this 2.6 beta release for windows phone 8.1 webview, problem of not being able to retain rendered text has been solved to some extent but now exactly after 30 seconds it shows [Math processing error].
May be for now people can write logic to reprint it before every 30 seconds but it creates a flicker once which looks odd in apps.

Thanks for the feedback. Can you provide more information? A live sample that reproduces the problem in a browser would be ideal, more information on your setup would help, too.

I have this small html page that I render,

 \[a=\frac{\mathrm{sin}\left( x\right) }{2}+1\]
I have stripped unnecessary(for me) files and kept a trimmed version of 2.6beta in my project.
I am working with Visual studio 2013, windows phone 8.1, Also if I view this file in any browser, including IE it never causes a problem but on webview it does. Is there any more information I need to provide ?
Usually on browsers the text should get rendered or I should get [math processing error] but here both happen which is strange !!

I have created a minimal zip of the project which is available at
https://drive.google.com/file/d/0B36DQjLI_-hxZE5wclVJRHdmNHM/view?usp=sharing
Just open the project with visual studio and launch with some mobile simulator and wait for 30 seconds after app is launched.
Also note that I have a stripped version of v2.6beta but it doesn't seem to be a problem because if I use browser to view the same html file that I am trying to render onwebview, its flawless, works fine.

I'm afraid we don't have the resources to debug windows phone apps.
Since the problem happens after the rendering is complete, I would suggest to start by disabling the AssistiveMML extension, see http://docs.mathjax.org/en/v2.6-latest/options/assistive-mml.html.

A delay like the one you are experiencing usually indicates that some auxiliary file is not loading and MathJax is waiting for it to load and eventually timing out.  The AssistiveMML extension will not cause "Math Processing Error" messages, since it doesn't run until after the visual output is already in place.
To see if any files aren't being loaded, you can look at the output of MathJax.Message.Log().  I'm not sure what debugging facilities you have with the windows phone, but if you can execute that in a debugging console, that should show if anything is timing out.  If you can't execute it interactively, you might be able to get the app to output the result using something like
<script type="text/x-mathjax-config">
MathJax.Hub.Queue(function () {alert(MathJax.Message.Log())});
</script>

before the script that loads MathJax.js itself.
I suspect it is the web fonts.  I see that you have only included the WOFF and SVG fonts.  You can drop the SVG fonts, as they will not be used by any modern browser.  It may be that you have to add in the EOT fonts; depending on what documentMode is being triggered, it may be that MathJax is asking for the EOT fonts.  You could do
<script>
alert(document.documentMode);
</script>

to find out what the documentMode is.
Let us know what you find from these and we will see if that leads to anything.

Based on suggestion above I found that problem was caused because of removing "png" folder in Tex rather than EOT. If I keep it, it works fine.
The logging script output gives
Loading [MathJax]/config/Tex-AMS-MML_HTMLorMML.js
Loading [MathJax]/jax/output/HTML-CSS/jax.js
Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js
Loading web-font Tex/Math/Italic
Loading web-font Tex/Main/Regular
And documentmode = 11.
I am highly thankful to people here for taking time to suggest me which helped me resolve my problem.

I found that problem was caused because of removing "png" folder in Tex rather than EOT.

This sounds strange to me. It might mean the app is not able to load the webfonts at all (maybe a variant of http://docs.mathjax.org/en/latest/installation.html#ie9-and-remote-fonts ?) and falling back to the PNG fonts.
Is the output from MahtJax.Message.Log maybe cut-off? If MathJax fails to load webfonts, it will fallback to PNG-based "fonts". This would also be noted on MathJax's about pop-up (via the MathJax menu) and it would show at high zoom levels (as blurry PNGs instead of fonts).

First I want to apologize that the output mentioned above if from web browser and not mobile. I messed up, webview won't allow alerts and popups so I tested on web browser.
I tested now again by setting it as inner html and now I can see it on mobile, details are
Loading[MathJax]/config/TeX-AMS-MML_HTMLorMML.js
Loading[MathJax]/jax/output/HTML-CSS/jax.js
Loading[MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js
Loading web-font/TeX/Size2/Regular Can't load web font
TeX/Size2/Regular Web-fonts not available -- using image fonts instead
Loading[MathJax]/jax/output/HTML-CSS/imageFonts.js
Loading[MathJax]/fonts/HTML-CSS/TeX/png/imagedata.js
I couldn't recover documentmode though. Your assumption that web-fonts have not been loaded is correct. Have I deleted some file I shouldn't have had ?

Have I deleted some file I shouldn't have had ?

Not necessarily but I would try adding the eot and otf versions of the fonts.
You might also run into security-measures for resource loading blocking webfonts.
But from a quick google search it seems windows phone apps have had issues with loading fonts, e.g., http://stackoverflow.com/questions/14347667/webfont-in-windows-phone-8-html5-app and it seems you might have to declare the fonts in your manifest to have them included in the build http://blogs.msdn.com/b/lighthouse/archive/2014/03/15/how-to-use-custom-font-in-windows-phone-8-application.aspx.
If all else fails, you might want to give our SVG output a try.

I tried with adding eot and otf versions and removing png but it didn't solve the problem. I will try SVG in future, I have tonnes of work pending in my app and I will have to live with png at least for now. Thanks for help :)

I have one more question, how do I disable the 30 second wait time, I want it not wait at all. Which file I should look into?

If you want to force PNGs fonts, you need to disable all other forms, e.g., have something like this in your MathJax configuration
"HTML-CSS": {availableFonts: [], preferredFont: null, webFont: null, imageFont: "TeX"}

@pkra :+1:  yes, indeed it does the needed work. It takes less than a second now. I am just so thankful to you. :)


Hover effect for elements of navbar

Current Behavior
they are very simple
Desired Behavior
By applying hover effects to navbar elements will attract more people

Please assign me this task


Add RCT1AA wooden twister coaster trains

Adds the RCT1AA wooden twister trains for the classic wooden twister roller coaster.
I'm unsure on how to add co-authors but if spacek could be added as a co-author for this that would be great, as he did a lot of the work on this one in particular from what i recall.

Fallback images need to be fixed.


Create Examples of functionnal tests

GitHub Issue: #
Proposed Changes

[ ] Bug fix
[x] Feature
[ ] Code style update (formatting)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build or CI related changes
[ ] Documentation content changes
[ ] Other, please describe:

Description

Adding examples of functionnal tests that run on the pipeline.
Impact on version

[ ] Major

The template structure was changed.

[x] Minor

New functionalities were added.

[ ] Patch

A bug in behavior was fixed.
Documentation was changed.

PR Checklist
Always applicable
No matter your changes, these checks always apply.

[x] Your conventional commits are aligned with the Impact on version section.
[x] Updated CHANGELOG.md.

Use the latest Major.Minor.X header if you do a Patch change.
Create a new Major.Minor.X header if you do a Minor or Major change.
If you create a new header, it aligns with the Impact on version section and matches what is generated in the build pipeline.

[x] Documentation files were updated according with the changes.
[x] Images about the template are referenced from the wiki and added as images in this git.
[x] TODO comments are hints for next steps for users of the template and not planned work.

Contextual
Based on your changes these checks may not apply.

[x] Automated tests for the changes have been added/updated.
[x] Tested on all relevant platforms

Other information

Internal Issue (If applicable):

/azp run

/azp run


Handle browser arguments

Closes #7226. Passing arguments to BROWSER environment variable like google-chrome --remote-debugging-port=9222 was breaking the build. The problem was that open requires arguments to be passed as array instead of plain string. This change solves that.

@arvigeus, have you considered "BROWSER_ARGS" as an option? That would simplify this a lot I think :)

@mrmckeb It would simplify things code-wise for sure. I wanted to try making it simpler in user's point of view, while also avoiding introducing new environment variables. It seems that it is not possible. Will redo it with additional var then. BROWSER_OPTIONS or BROWSER_ARGS?

I think ARGS, as that's more precise in this case.

The CI tests seem to be unrelated to this, so I'll merge. Great work @arvigeus!


<EMAIL_ADDRESS>

CashApp.$Ag42024.   https://wd5.myworkday.com/CashAppPay.$Ag42024

@Ag2279122,
We see that the issue template has not been filled, could you please do so as it helps us analyze the issue [SDK version, steps followed before you ran into this error or stand alone code/colab gist to reproduce the issue faced and reopen this issue. Thanks!


Model save() method not saving changes to database

I am attempting to geocode an address and save the results to the model using django's save method. The method is being called, but any changes to self are not being saved in the database. Here is the code containing the models.
http://dpaste.com/2BA3Q27
(I added a simple update to self.telephone, just to rule out the geocoding code not working. self.telephone is not saving to the model.)

Are you testing this from ./manage.py shell, or through the Wagtail admin backend? The page admin interface has a non-standard workflow involving Page and PageRevision objects, which can make it look as if changes haven't been written to the database.

I am testing this through the admin. Is there a specific hook or method I would need to use instead of the save method?

I've also encountered this problem. How would you go about overriding a field's value if overriding save() won't work?

Unfortunately Wagtail is currently lacking a 'streamlined' way of updating fields so that the update takes effect on both the Page and PageRevision record - but there's some discussion of how we might achieve that on #1101.


Fixing two issues that showed up in pod scheduling

The first issue was caused by the introductions of ArrayListGrouped and not updating all references appropriately
The other was caused by LabeledSelect calling the @input handler twice for every selection. The handler was toggling which caused the value to always reset. It looks like the reason labeled select was calling the handler twice was because of having both v-bind="$attrs" and @input="...". So i removed @input and verified that LabeledSelect still works for both v-model and value/@input.

rancher/dashboard#2211

@westlywright would you take a look at the LabeldInput portion of this change?

Just as a note since I looked into this further. It wasn't  v-bind="$attrs" that @input conflicted with, it was v-on="$listeners". But I'm merging since it doesn't make a difference in this case.


clear  call

String::getValue value->clear();  call clear
String::getValues not all clear

Thanks @liuqian1990 feedback.
The String::getValues also clears the input values when calling the function getRawValues.

function getRawValue also call clear

rocksdb::Status String::getRawValue(const std::string &ns_key, std::string *raw_value) {raw_value->clear();

Sorry that I didn't get what your mean. Do you find any problems?


Add a module to manage windows

Contributing guidelines

[X] I have read CONTRIBUTING.md
[X] I have read CODE_OF_CONDUCT.md

Module(s)
mini.window
Description
Hi echasnovski! Is it possible to add something like yorickpeterse/nvim-window to mini.nvim.

Thanks for the suggestion!
I personally don't the need for this kind of module at the moment (the monitor is not large enough to allow so many splits), but I can see the potential in 'mini.windows' to be something like:

Interactive window picker.
Custom layouts manager, like popular desktop window managers.

This probably won't happen in the near future, but overall idea might be interesting.

I believe the use case of window jumping is better satisfied with 1. modal modes and 2. having a saner per window headline/statusline configuration, 3. using something more simple like leader+1-9.
Take a quick look at my hydra.nvim config: https://github.com/matu3ba/dotfiles/blob/7c0a95efa7eb540132c8a217f658e6faaf28ea0c/.config/nvim/lua/my_hydra.lua#L39


Counting sort algorithm implementation

The algorithm counting sort which is used to sort in O(n) time complexity is implemented in python.
Issue: #289

@amrutha-m206 add test cases file too in test folder.

@UTSAVS26 added it


2FA account cannot login to DSM after sync

I know I have the correct Username Password as I can login to the Computer;
I enabled 2FA on a test account and even copied the app password for it;
I've tried both the App Password and the known correct Password and it fails to auth/login to the DSM on the Web and thereby no SMB access;
detail: AuthenticationRequiredError: invalid_grant: AADSTS50076: Due to a configuration change made by your administrator, or because you moved to a new location, you must use multi-factor authentication to access '00000003-0000-0000-c000-000000000000'.
ERROR: 2022-06-28T14:24:06.991Z:  server.js server.bind<EMAIL_ADDRESS>wrong password, retry against sambaNTPassword

MFA is not supported, the explanations from Microsoft are linked the FAQ.


Scrolling object function

Can be useful to add  scrolling function (x/y) for each object that use this mechanics.
That will allow people to do automatic scrolling with anything  (e.g: timer, interrupt, uart, ...)
Very good for rotating texts / windows.

Hi,
I implemented the following functions to achieve this:
lv_page_scroll_up(page);
lv_page_scroll_down(page);

lv_win_scroll_up(page);
lv_win_scroll_down(page);

I found that the other lv_page related objects already has some kind of navigation interface:

lv_list: lv_list_up/down
lv_ta: lv_ta_cursor_up/down/left/right
lv_tabview: it craetes lv_pages

Can you test it?

I have test it, seem to work. I just found that scrolling top behavior is different than scrolling bot. it is maybe me or the content. we don't see the bottom bar (padding/inner) ?
Top picture (start):

Bot picture (end):

Custom problem:
I want just show the Text  in the object Page. but i don't no style config to do for this i want remove all border. It is possible to do that ?
Code:
    static lv_style_t style_sb;
    lv_style_copy(&style_sb, &lv_style_plain);
    style_sb.body.main_color = LV_COLOR_BLACK;
    style_sb.body.grad_color = LV_COLOR_BLACK;
    //
    style_sb.body.border.color = LV_COLOR_BLACK;
    style_sb.body.border.width = 0;
    style_sb.body.border.opa = LV_OPA_70;
    style_sb.body.border.part = LV_BORDER_NONE;
    //
    style_sb.body.padding.hor = 0;          /*Horizontal padding on the right*/
    style_sb.body.padding.inner = 0;        /*Scrollbar width*/
    style_sb.body.padding.ver = 0;

    style_sb.body.radius = LV_RADIUS_CIRCLE;
    style_sb.body.opa = LV_OPA_60;

    lv_obj_align(pxPrvArgs->apxObjects[2], pxPrvArgs->apxObjects[1], LV_ALIGN_OUT_BOTTOM_LEFT, 0, 0);
    lv_obj_set_size(pxPrvArgs->apxObjects[2], 128, 64);
    lv_page_set_style(pxPrvArgs->apxObjects[2], LV_PAGE_STYLE_SB, &style_sb);
    lv_page_set_sb_mode(pxPrvArgs->apxObjects[2] , LV_SB_MODE_OFF);

What config i miss ? i try to change  width, padding. Set value seems to change nothing...
Questions:

Why each object need a specific function for scrolling actions ? can't be global "obj" API ? Maybe they are too much different for that.
Page and Win can be multidimensional (x/y) (top/down/left/right) ? It is maybe not implemented.

Idea:

Multidimensional object like window/Page  will allow to create a virtual screen size. Can be an interested feature to expand screen size ? user use input/API/keypad to navigate.

thank for this feature :). Really nice for me !

Question/idea:

the srolling mouvement  size is hard-coded ?  Second parameter to select the scroll speed can be great ? e.g: lv_page_scroll_down(page, LV_SCROLL_FAST);
the scroll speed is a factor  factor * screen size

Problem about the bottom of page is not a problem. My setting about height was wrong.
Ignore pictures :)

Answer:

thank you ! it is work :)
Ok.
Really nice !
You are right lv_page do it already. I missed that. I was thinking page only work vertically.

Feature/question:
i like the fact to design GUI without specify "pixel argument". The big advantage is to keep the same GUI code when the HW is not the same. It is maybe a big new feature.
the goal of my idea is to replace all pixel entry by some enumeration or API that will compute what is needed.
e.g for page:
lv_page_scroll_hor(page, lv_scroll_speed(LV_SLOW));
The API will determine what is a slow scrolling with the width of the screen.
instead of :
lv_page_scroll_hor(page, 5);
It more like a utility API idea.
Tip/memory:
I recently change the way i declare typedef enum to save memory. i share it if you want use it. I don't know disadvantage yet (maybe speed?, not sur). a typedef enum for me is a int encoded on 4 byte.
current declaration:
typedef enum
{
    LV_SB_MODE_OFF 	= 0x0,   	/*Never show scrollbars*/
    LV_SB_MODE_ON  	= 0x1,   	/*Always show scrollbars*/
    LV_SB_MODE_DRAG = 0x2,   	/*Show scrollbars when page is being dragged*/
    LV_SB_MODE_AUTO = 0x3,   	/*Show scrollbars when the scrollable container is large enough to be scrolled*/
    LV_SB_MODE_HIDE = 0x4,	 	/*Hide the scroll bar temporally*/
    LV_SB_MODE_UNHIDE = 0x5,	/*Unhide the previously hidden scrollbar. Recover it's type too*/
} lv_sb_mode_t;

new declaration:
enum
{
    LV_SB_MODE_OFF 	= 0x0,   	/*Never show scrollbars*/
    LV_SB_MODE_ON  	= 0x1,   	/*Always show scrollbars*/
    LV_SB_MODE_DRAG = 0x2,   	/*Show scrollbars when page is being dragged*/
    LV_SB_MODE_AUTO = 0x3,   	/*Show scrollbars when the scrollable container is large enough to be scrolled*/
    LV_SB_MODE_HIDE = 0x4,	 	/*Hide the scroll bar temporally*/
    LV_SB_MODE_UNHIDE = 0x5,	/*Unhide the previously hidden scrollbar. Recover it's type too*/
};
typedef uint8_t lv_sb_mode_t;

The current enumeration will be 1 byte, whatever the compiler is. Enumeration size depend on how the compiler implemented it and what option are available to define the size.
Just an idea too :)

1-4:
Great :)
Feature/question:
If you want to move the GUI to other displays you can:

lv_page_scroll_hor(page, LV_HOR_RES / 2)
lv_page_scroll_hor(page, lv_obj_get_width(page) / 2)
lv_page_scroll_hor(page, MY_SCROLL_SIZE)

For me, it seems a suitable way to use the current API. What do you think?
Tip/memory
Thanks for sharing this! I also noticed the wasting of memory if typedef enum is not used carefully. As LittlevGL usually uses the enums in structures I use it this way: https://github.com/littlevgl/lvgl/blob/dev-5.2/lv_objx/lv_page.h#L65 It needs less memory but a little bit more difficult to read the code.

I didn't knew that neat trick to reduce enums size @Zaltora 👍 , surfing the web i found this compiler flags -fshort-enums, -fno-short-enums, those flags tell the compiler what size the enums will be (available on gcc as well).
One thing to notice:

The -fshort-enums option can improve memory usage, but might reduce performance because narrow memory accesses can be less efficient than full register-width accesses.

@kisvegabor : Yes you are right. I need think more before talk xD. I just wondering how make portable the shift parameters of a function like this lv_obj_align(obj1, obj2, LV_ALIGN_TYPE, x_shift, y_shift) .
Use the screnn size solve everything i guess :)
Bit field:
I learn something important about it recently: source

Bit fields are not portable. Because bit fields cannot span machine words, and because the number of bits in a machine word is different on different machines, a particular program using bit fields might not even compile on a particular machine.
Assuming that your program does compile, the order in which bits are assigned to bit fields is not defined. Therefore, different compilers, or even different versions of the same compiler, could produce code that would not work properly on data generated by compiled older code. Stay away from using bit fields, except in cases in which the machine can directly address bits in memory and the compiler can generate code to take advantage of it and the increase in speed to be gained would be essential to the operation of the program.

Question: use bit field mean that compiler will use bit operations. It is slower than use an variable like a byte ?
@C47D

The -fshort-enums option can improve memory usage, but might reduce performance because narrow memory accesses can be less efficient than full register-width accesses.

The problem is the same everywhere you use a variable smaller or larger than the size of the architecture.
To go faster (less memory for app ), we can use int but that variable can be too small. Other solution is to use uint_fast32_t definition (or equivalent 8,16,..) that allow  minimum 32 bit but can be 64 bit if needed by the architecture .
To allow this optimisation for the user, lvgl need maybe to create thiw own variable in lv_conf.h
e.g for area:
typedef  int16_t lv_coord_t;  //< currently
typedef  int_fast16_t  lv_coord_t;  //< faster size variable possible with minimum of 16 bit.

As the original issue is solved  I close it now.
If you have ideas or remarks related to the bitfields, please open a new issue for it.


Presentation: Set serialized responses as Napi::Buffer to avoid copying native string to Napi::String

Related to https://github.com/iTwin/imodel-native/issues/275.
The change doesn't fix the problem altogether, but makes the request:

fail instead of crashing the whole backend,
require less peak memory,
slightly quicker as we don't need to copy the string which may sometimes be massive (100+ MB).

The consolidated descriptor request will still fail for the iModel mentioned in the Sentry report due to massive amount of duplicated aspects in the iModel. The request is to load all properties of all aspects and the response is 700+ MB serialized JSON string. Node supports up to 512 MB strings and fails.
itwinjs-core PR: https://github.com/iTwin/itwinjs-core/pull/5534
itwinjs-core: https://github.com/iTwin/itwinjs-core/tree/presentation/accept-buffer-responses-from-addon

/azp run imodel-native


Error TS2349 using concurrently in full ESM module

Hello,
I have a problem using  concurrently (and others modules) in my project after migrate from CJS to full ESM. I have the error TS2349 when I try to call concurrently function. But, In VSCode, the definition is correctly loaded on CTRL+click :/
This is my config :

tsconfig.json{
  "compileOnSave": false,
  "compilerOptions": {
    "rootDir": ".",
    "sourceMap": true,
    "declaration": true,
    "esModuleInterop": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "importHelpers": false,
    "resolveJsonModule": true,
    "noImplicitAny": false,
    "strict": true,
    "useDefineForClassFields": false,
    "target": "ES2022",
    "lib": [
      "esnext"
    ],
    "skipLibCheck": true,
    "skipDefaultLibCheck": true,
    "baseUrl": ".",
    "outDir": "dist",
    "types": [
      "node"
    ],
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
  }
}

And my example code :
import concurrently from 'concurrently';

const main = async () => {
    concurrently([
        { command : 'ls /etc' },
        { command : 'ls /usr' }
    ]);
}

main();

He is a screen on my VSCode :

I don't know how to do to fix that. I think my problem is with typescript, but I don't understand how to fix that :/

Hey! So apparently there's a lengthy discussion here about this issue: https://github.com/microsoft/TypeScript/issues/50058
It's coming from the use of module: "Nodenext" in your tsconfig.json.
There are a couple of hacks suggested in there that you could try, but none that is pretty.
It seems that what typescript is doing is right for your compiler options.

Hey! This is now fixed in v9.0.0.
https://github.com/open-cli-tools/concurrently/releases/tag/v9.0.0


Linux: Setting position via play() shortcut doesn't work

Checklist

[X] I read the troubleshooting guide before raising this issue
[X] I made sure that the issue I am raising doesn't already exist

Current bug behaviour
Passing a position in play() doesn't seem to apply.
Expected behaviour
The clip should start playing at the position passed, instead it starts playing from 0:00.
Steps to reproduce
Run the code sample.  Compare the two methods of seeking.
Code sample

Code sample
import 'package:audioplayers/audioplayers.dart';
import 'package:flutter/material.dart';

class SampleApp extends StatelessWidget {
  AudioPlayer player = AudioPlayer();
  final SampleAudioFile = '/home/jonathan/Documents/music/2855.mp3';

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Container(
      color: Colors.black,
      child: Column(children: [
        DefaultTextStyle(
            style: TextStyle(fontSize: 12, color: Colors.white),
            child: Text(
              'Click prepare, wait, then click play\nCompare to hitting insta-play',
              textAlign: TextAlign.center,
            )),
        TextButton(onPressed: playShortcut, child: Text('play()')),
        TextButton(onPressed: playThenSeek, child: Text('play() then seek()')),
        TextButton(onPressed: playWithSeek, child: Text('play(position)')),
        TextButton(onPressed: kill, child: Text('KILL AUDIO'))
      ]),
    ));
  }

  Future<void> kill() async {
    await player.stop();
  }

  Future<void> playShortcut() async {
    player.stop();
    player = AudioPlayer();
    await player.play(DeviceFileSource(SampleAudioFile));
  }

  Future<void> playThenSeek() async {
    player.stop();
    player = AudioPlayer();
    await player.play(DeviceFileSource(SampleAudioFile));
    await player.seek(Duration(minutes: 1));
  }

  Future<void> playWithSeek() async {
    player.stop();
    player = AudioPlayer();
    await player.play(DeviceFileSource(SampleAudioFile),
        position: Duration(minutes: 1));
  }
}

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(SampleApp());
}

Affected platforms
Linux
Platform details
Debian 12
AudioPlayers Version
5.2.1
Build mode
debug
Audio Files/URLs/Sources
No response
Screenshots
No response
Logs

 • Debian clang version 14.0.6
 • cmake version 3.25.1
 • ninja version 1.11.1
 • pkg-config version 1.8.1

Full Logs
Flutter doctor:
[✓] Flutter (Channel stable, 3.16.5, on Debian GNU/Linux 12 (bookworm) 6.6.6-surface-1, locale en_US.UTF-8)
• Flutter version 3.16.5 on channel stable at /home/jonathan/src/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 78666c8dc5 (5 weeks ago), 2023-12-19 16:14:14 -0800
• Engine revision 3f3e560236
• Dart version 3.2.3
• DevTools version 2.28.4

[✓] Linux toolchain - develop for Linux desktop
• Debian clang version 14.0.6
• cmake version 3.25.1
• ninja version 1.11.1
• pkg-config version 1.8.1

Related issues / more information
Perhaps related: #1749
Working on PR
no way

This was fixed here: https://github.com/bluefireteam/audioplayers/pull/1695
You can checkout by using these lines in pubspec.yaml:
https://github.com/bluefireteam/audioplayers/blob/main/contributing.md#current-development


car Detection

Hi
I only want to detect car objects. Can anybody tell me which tflite class used? So that I am able to detect only car object in Android.
Thanks!

This question is better asked on StackOverflow since it is not a bug or feature request. There is also a larger community that reads questions there.
If you think we've misinterpreted a bug, please comment again with a clear explanation, as well as all of the information requested in the issue template. Thanks!


Wrong folder structure

The skill doesn't work by cloning the repo in the skills folder since the skill is inside the demo folder. When the demo folder is moved into the skills folder it works fine. Just put the files directly in the root of the repo and it will work.

Resolved, thank you!


Emit a signal when VideoPlayer stops?

Operating system or device - Godot version:
Any OS - Godot 2.X
Issue description (what happened, and what was expected):
I'm trying to get the best performance out of a scene of mine that plays a video and adds subtitles (thanks to a custom GDScript I wrote).
The video is played via a VideoStreamTheora and handled by a VideoPlayer Node.
Now, my scene constantly checks if the video is still playing so that it can move on when it stops. I've been looking around in godot's code and I can't find out the source of the is_playing() since it points to a playback->is_playing() (I think it checks for a bool value?), but anyways, I believe a signal would lay off a little bit — if not more — stress out of CPU (on a side note, I see that Theora drops many frames).
So, I looked at the signals singleton but found out (remembered, actually) that "finished" is already a signal that exists for animation, so I'm not sure if the signal can conflict with the video if we were to point both towards it. If this is the case, it's best to make a signal entirely for streaming.
If this is not feasible, what can be an alternative?

If I did something like #5227 but for VideoPlayer, would that solve the issue? So that started signal is emitted each time the stream starts/restarts. Stopped signal is emitted only when the stream is interrupted while playing and finished signal is emitted when the stream stops naturally(runs out).

Ah, I somehow didn't find that PR. Yes, that'll solve the issue, and actually add more to it!


Faster Test PG Spin-up

I believe this has been addressed by using pre-existing archive DB in CI.

It has been indeed!


remove examples

can we remove

https://github.com/it-at-m/opensource.muenchen.de/tree/main/examples
https://github.com/it-at-m/opensource.muenchen.de/tree/main/de/examples

of course!


Auto join invite link

In the previous version, the invite link would take the user directly to the room. Now they have to enter the password, and there's no way to include the password in the link. Even if you don't put a password on the server, it still doesn't auto join. The old version had all sorts of options around "auto join" and "auto connect", those all seem to be gone.
Is there any way to have a seamless link that allows a user to automatically join the room?

At the moment, setting autojoin will automatically populate the server and room name, and all the user has to do is press join. User interaction is a requirement for some browsers for autoplaying video so this is a reasonable way to integrate that into the application flow.

For autojoin, what is your use case for wanting it to autofill a password? What value does having a password provide in that case?

At the moment, setting autojoin will automatically populate the server and room name, and all the user has to do is press join.

That's actually exactly what I need, I thought this was removed since it's not in defaults.js and not documented anywhere.
Although, when I set autojoin=true, these are what I experience

I still see room name/password fields, but I can't type anything in room name
I no longer see a button to generate an invite button
The user can enter simply pressing "Join room" with room name/password blank

Does that mean that now the server can only have a single server (unnamed) room?
I guess this is all fine, though the overall experience would be a lot better if it would then fully hide the name/password fields.
Really, what I expect is the ability for me to create rooms with passwords, but the "invite link" the user gets allows them to join by simply clicking "join room" without having to type the room name or password. Is that not what the previous version did?

Documentation is still in the process of being updated for the new version. If you are using Docker, set the autojoin config with the following env variables:
autojoin__server=""
autojoin__room="desiredRoomName"

Note: just set autojoin__server to the empty string and it will use the included server
Using autojoin like that will force everyone to join that single room.
If you are not using Docker, you can also use the same env variables, or you can make a json config file and call synclounge --config_file /path/to/config.json
{
  "autojoin": {
    "server": "",
    "room": "desiredRoomName"
  }
}

You can use invite links and send them to people and it will have them join that room. If you set a password on that room, they will need to type in the password. If you do not want them to have to type in a password, do not set the password on the room.

That works perfectly, thank you.


Does not work with Kirby 3.8

As it is easy to overlook on Discord:

For the love of — Today at 10:31 AM
@rasteiner I was just trying out the 3.8.0 rc and noticed your amazing whenQuery plugin was no longer working. I have not been able to thoroughly test it but it seems to always return true.
Excuse me if this is not the right place for this message

distantnative : nico — Today at 10:44 AM
@rasteiner I think it is this line https://github.com/rasteiner/k3-whenquery/blob/main/src/index.ts#L39 where you are hacking the meetsCondition method. This got change and now there is this.$helper.field.isVisible() that you probably can use https://github.com/getkirby/kirby/blob/develop/panel/src/helpers/field.js

Thanks for the ping, the last time I've looked at discord was several weeks ago. I'm in my september - february period where I don't really have time for OS work...
Putting this here for myself and future reference.

@Bastianallgeier thinking about this, I think @rasteiner won't be able to extend the functionality anymore because you now call the helper directly from the template. So it could be harder to extend the method call.

@bastianallgeier thinking about this, I think @rasteiner won't be able to extend the functionality anymore because you now call the helper directly from the template. So it could be harder to extend the method call.

I actually thought about simply overriding the helper function itself... Should work

I love that everything in JS can simply be monkey-patched 🙈

fixed in 0.4.0


IFeatureManager.GetFeatureNamesAsync returning all configuration keys

I dont have a 'FeatureManagement' section in my appsettings.json, but when I call GetFeatureNamesAsync, it is returning key in IConfiguration.
I'd also try adding  'FeatureManagement' section without any feature set, but the result was the same.
the following are some of the names return from GetFeatureNamesAsync()
"AllowedHosts"
"ALLUSERSPROFILE"
"APPDATA"
"applicationName"
"APP_POOL_CONFIG"
"APP_POOL_ID"
"ASPNETCORE_ENVIRONMENT"
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES"
"ASPNETCORE_IIS_HTTPAUTH"
"ASPNETCORE_IIS_PHYSICAL_PATH"

Hello @satuday,
When no FeatureManagement section is provided the library treats the root of the registered IConfiguration as the featuremanagement section. This is detailed in the readme.
Using a FeatureManagement section would be the proper method to prevent all configuration keys from being returned from this API. Otherwise, there is no way to distinguish a non-feature configuration key vs a feature configuration key.

Closing by design. To avoid this please use a "FeatureManagement" section in the application's configuration or pass in an IConfiguration instance which does not contain non-features.

Super confusing behavior IMO


Add support for topics with multiple schemas

This contribution makes kafka-connect-bigquery compatible with topics that carry different types of messages, especially when Kafka is used for an event sourcing.
Approach of putting several event types in a single topic is already supported by Kafka and Schema Registry (see https://www.confluent.io/blog/put-several-event-types-kafka-topic/).
This PR has been derived from #219 and rebased on top of the recent changes made by @bingqinzhou

@mkubala are you planning to update this with TableRouter?

Hi @criccomini!
Sorry for late response. I cannot tell you if and when I'll find time to update this PR.
I've been working on it as a part of my daily job and since we are behind the original schedule for BigQuery integration I found myself between a rock and a hard place.
My client, who paid for the contribution made so far, does not want to spend more money and see the working integration in our product ASAP.
On the other hand you guys want to keep as clean and maintainable codebase as possible.
Due to personal reasons I cannot sacrifice my spare time in order to introduce TableRouter to this PR in a reasonable time. Also I have yet another PR to expose (datasets based on both - topic & record names).
I wonder if there is any chance that you could approve & merge this PR "as it is" and TableRouter would be introduced as a separate PR, in a near future?

No, this PR adds too much complexity to the codebase, and isn't the right approach--the refactor is. I don't think it's much more work than this PR, itself. I am reaching out to @rhauch to see if you all can allocate time for refactor that's outlined in issue #245.

I understand. @rhauch please let me know if you start working on that.

@mkubala sorry, I won’t have time to work on this.

There is a light in a tunnel. I spoke to my client this morning and they will let me finish the feature as part of my daily job if I give them a kind of hard estimate / deadline.
How much time you will need to review this PR and release a new version of the plugin?
Can you guarantee that after this PR got merged (and optionally the other one with support for matching datasets by both topic and record name) a new version of the connector plugin will be released?

Hello,
We are very interested in this feature. Can you tell us when you would consider adding @mkubala's contribution to your release?

@mustosm Maybe I'll find some spare time in the next couple of weeks to finish this feature.
Although I have no idea how much time it will take to re-review this PR and release a new version, so if you cannot wait then build connector from this branch on your own - that's what we did.

@mkubala thank you for your answer. If the feature is released by wepay it would be better.
Are you using this feature in production today?

It's been used on the staging environment.

Hi @mkubala 👋
Any update on this?
Are you using it in prod on your side please?

Hi @mkubala 👋
Any update on this please?
Are you using this in prod env?

👋
I'm sharing a solution for this using SMTs with the current version of the connector.
https://github.com/confluentinc/kafka-connect-bigquery/issues/114#issuecomment-973118252


The new logger interface is a bit awkward to work with

Describe the feature
It´s not so much of a feature but a request for change ..
Motivation
There are two places in the new logger code that make the new logger interface kind of hard to work with.
NR 1: https://github.com/go-gorm/gorm/blob/70a7bd52ca2bbf64443b7227524e4600997ea1b9/logger/logger.go#L51
Having an interface that has a method which returns the interface it self is quite restrictive when one wants to re-implement the logger.
This is what my method signature looks like:
func (l GORMLoggerv2) LogMode(level logger.LogLevel) logger.Interface {
	newlogger := l
	newlogger.LogLevel = 1
	return &newlogger
}

it needs to have knowledge of the interface from your package, this kind of goes against the idea of being able to full fill the interface without explicit knowledge of the interface it self.
Note: Why does changing the log mode require a new copy of the logger it self ? it feels like the method naming is not really telling the story of what is happening under the hood.
NR 2: https://github.com/go-gorm/gorm/blob/70a7bd52ca2bbf64443b7227524e4600997ea1b9/logger/logger.go#L29
The log level is just an int .. why can´t it just be an int without it´s own type ?
I am making my own custom gorm logger and when I want to change the log mode from another project I have to also import gorm to be able to input the LogLevel type or if I want to go around it I have to make my own wrapper function, which is not really optimal.
The requests

Could you change the log level to being just an int ?
Could you change the interface´s dependency on it self ?

Final words
I would like to thank you for all the good work you are doing, gorm has served me well through the years :) <3

Note: Why does changing the log mode require a new copy of the logger it self ? it feels like the method naming is not really telling the story of what is happening under the hood.

Seems the Name is not that meaning for, but haven't came out a better name ;(
The method needs to returns a copy or it would mess up the default logger when use it with several GORM instances and the Debug method

Could you change the log level to being just an int ?

I don't agree this is a better implementation

I don't agree this is a better implementation
How is it a better implementation to make a new type for just an int ? I'm having a hard time seeing that.

The method needs to returns a copy or it would mess up the default logger when use it with several GORM instances and the Debug method
Why not make a "NewLogger" or "Clone" method then ? If you want, I can make the change my self on a fork and make a pull request ?

Hi

How is it a better implementation to make a new type for just an int ? I'm having a hard time seeing that.

Not confusion, hard to broken when compares to use int as argument.

Why not make a "NewLogger" or "Clone" method then ? If you want, I can make the change my self on a fork and make a pull request ?

Maybe you could make your own custom logger works like this? I don't really want to change the logger interface right now, and it seems works well when I develop our company's customized logger.

Not confusion, hard to broken when compares to use int as argument.

That´s not true, it´s equally easy to break the input even if you type cast the int. In both cases the user either has to guess what the input should be OR go to the documentation to find out. In both cases he will get his answers the same way.

Maybe you could make your own custom logger works like this? I don't really want to change the logger interface right now, and it seems works well when I develop our company's customized logger.

The whole point is that outside developers should not have to re-implement the methods already in place. You already have a LogMode method which I NEED to implement because of the interface dependency, why would I RE-implement it ?
Here is a more detailed explination why you should at least think about changing this:
Let´s say I want to make a layer between my application and your package:
APP <> LAYER<> GORM
My LAYER is required to implement your LogMode method and it´s functionality.  If I want to use that method in my APP, which is what would be considered normal, I now have to create a dependency on GORM in my APP.
And yes, I can just wrap your LogMode method with more code, but that´s not really the optimal way of doing things.

My LAYER is required to implement your LogMode method and it´s functionality. If I want to use that method in my APP, which is what would be considered normal, I now have to create a dependency on GORM in my APP.

I don't get why create a dependency on GORM in your APP if implemented in my way, but won't create a dependency in your way.

Because of this method:
// LogMode log mode
func (l *logger) LogMode(level LogLevel) Interface {
	newlogger := *l
	newlogger.LogLevel = level
	return &newlogger
}

If I don´t wrap your function with my own function then I have to import GORM/logger in my APP.. outside of my abstraction layer.
If this method would look like this:
// LogMode log mode
func (l *logger) LogMode(level int) Interface {
	newlogger := *l
	newlogger.LogLevel = level
	return &newlogger
}

it would remove the dependency on your package for the input variable.
Since you are worried about breaking things you can set an upper and lower limit to the log level, like so:
// LogMode log mode
func (l *logger) LogMode(level int) Interface {
	newlogger := *l
	if level < 0 {
		l.LogLevel = 0
	} else if level > 3 {
		 l.LogLevel = 3
	} else {
		l.LogLevel = level
	}
	return &newlogger
}

Preferably, this method should be split into two and the interface changed, like this:
// Interface
// This interface describes the requirements for the GORM logger
type Interface interface {
	LogMode(int)
	Info(context.Context, string, ...interface{})
	Warn(context.Context, string, ...interface{})
	Error(context.Context, string, ...interface{})
	Trace(ctx context.Context, begin time.Time, fc func() (string, int64), err error)
}

// Clone
// Clone the logger instance
func (l *logger) Clone(level int) Interface {
	newlogger := *l
	return &newlogger
}
// LogMode
// Change the LogMode
func (l *logger) LogMode(level int)  {
	if level < 0 {
		l.LogLevel = 0
	} else if level > 3 {
		 l.LogLevel = 3
	} else {
		l.LogLevel = level
	}
}

You could then change your code to call Clone() before log mode whenever you need a new logger. This would remove ALL dependency on GORM when implementing a new logger and there for allowing GORM to be abstracted away from the main APP/program.

in you wrapper
var Silent = logger. Silent

in your application
wrapper.Silent

I would actually like to argue that the LogMode method should not even be a part of the Interface at all. I don´t see why it needs to be:

How can GORM change the log level with Debug method then?

How can GORM change the log level with Debug method then?

Make another interface for the logger object that is more settings oriented instead of printing oriented. One struct can satisfy more then one interface :)


Dedicated shortcut to only remove comments

A proposal for a dedicated shortcut (ctrl-shift-1) to remove comments from any highlighted section of commented and uncommented lines.  Conversation started in PR #3958
Keep the current commenting tool the same
I think ctrl-1 is very easy as it is now and should remain the same, removing comments if only all the selected lines are commented. The ctrl-1 code already comments mixed commented and uncommented code. I can't think of a time I would want to double or triple comment something that is already commented out.
Add an option for just uncommenting
I have had times when I wanted to uncomment a whole section that had mixed commented and uncommented code.  A ctrl-shift-1 uncomment could be very handy in these situations.
If there is multiple #'s in a line only one should be removed per key press.
For example, pressing ctrl-shift-1 twice would completely uncomment this code with only one selection. With the current commenting code this would require three selections and three key presses
# if language.lower() in value:
#     self.supported_language = True
#     # sh_class, comment_string, CFMatch = self.LANGUAGES[key]
#     # self.comment_string = comment_string
    if key in CELL_LANGUAGES:
        self.supported_cell_language = True
        self.cell_separators = CELL_LANGUAGES[key]
#     if CFMatch is None:
#         self.classfunc_match = None
#     else:
#         self.classfunc_match = CFMatch()

This way we can keep the commenting tool "smart"(or contextual) like it is now about when to comment or uncomment, as well as give the option to take an arbitrary block of code and uncomment all of it.

Hi @bcolsen for now we think the current logic for the comment functionalities is a little bit complex but if you want to give it a try and add this proposal please go ahead!, it has the potencial to be a nice feature to have. If you have any question let us know :)

I think that the comments right now are amazing :)
I will have a look at this one, but l completely agree that there are higher priorities, maybe even for me.


Backport CMake support to 3.15.1

Some of the SPM builders appear to be running CMake 3.15.4, so I'm back porting ArgumentParser to 3.15.1 to match SPM's minimum version. I haven't tested this on Windows yet to make sure the output directory workarounds behave as expected, I'm going to try to spin up a VM this weekend.
Checklist

[x] I've added at least one test that validates that my change is working, if appropriate
[x] I've followed the code style of the rest of the project
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary

cc @compnerd

Sure, that’s reasonable.  From the CMake perspective, it seems fine.  Just adds a bit of complexity, so as long as Nate’s happy, LGTM.

@owenv Looks good on my end, just let me know when you’ve been able to verify on Windows. Thanks! 🙏

@natecook1000 https://dev.azure.com/compnerd/swift-build/_build/results?buildId=33747&view=results
Lets just make it easy - triggered a CI run for argument-parser :)

Seems to build fine on Windows :)

@swift-ci Please test


[Documentation] Rename tabs "Design" to "Resources"

As requested by @Elisabetmh through Slack

✅ Done


Add tutorial: how to install MongoDB and Mongo Express with docker and connect Mongo Express with MongoDB

I have read and understood the Contributor's Certificate of Origin at the end of the template and I hereby certify that I meet the contribution criteria described in it.
Signed-off-by: (Patrick Weber<EMAIL_ADDRESS>

Hi PatrickWe, thank you for contributing! It's been a while since you opened this PR and it probably is an open secret we're currently overwhelmed with reviewing all the awesome tutorials we got. Please  be patient - we're about to publish tutorials this and next week. Thank you!

Hey @PatrickWe, as you see there is a conflict which I´m not able to resolve. Please resolve the conflict by your own. If you are also not able to resolve it, just open a new PR with the latest state.

i resolved the conflicts

Please delete all of my opened pull requests. It is outrageous, that vouchers are not allowed for more than the half of your products.


Add description of performance issues to REAME

BTW, what is the reason to choose so expensive way to do this  (pandoc)? I thought that some kind of https://github.com/Python-Markdown/markdown/blob/master/markdown/extensions/abbr.py way would be more effective.

AFAIK, abbr is just a pop-up, so it's difficult to explain complex words.  There were other reasons, but I can't eat now.
If need to work for performance issue, I need to consider to do this by sed or similar functions instead of pandoc.

I just mean the way abbr work and not what it does.  abbr uses internal python-markdown mechanic which is (yep!) based on regex. I think it is better way then raw sed.


Install final

The blue color you used is too dark. Please use a bright color just for showing install hosts, e.g. bright blue color.
Consider the scenario where user does not input install path. You can tell user a default path will be used if not given, for instance, /root for root user and /home/$(whoami) for other users.


docs: Add query tracing blog

Add a query tracing blog to the Velox website.
Original design doc, https://docs.google.com/document/d/1crIIeVz4tWKYQnBoHoxrv2i-4zAML9HSYLps8h5SDrc/edit?tab=t.0#heading=h.y6j2ojtr7hm9

@duanmeng Is this a copy of https://facebookincubator.github.io/velox/develop/debugging/tracing.html ?

@duanmeng the blog post reads pretty well, thanks for putting it together. As a thought: are we also adding it to the Velox docs? It would be nice to add the full version there so that people find it more easily in the future.
One way we could organize this to prevent the blog post from being too dense, would be to move all the detailed information to a doc page (maybe this version could be the doc), and having a more condensed version as the blog post? This reads great, but it feels a bit long for a blog post - which is not necessarily bad.
Wondering what other think - @mbasmanova @xiaoxmeng @Yuhta @majetideepak

@pedroerp sounds good. @duanmeng could you make a short one and have reference to the detailed design doc? Thanks!

I've moved all the detailed information to a tracing doc page and condensed the blog post. Could you please help take another look? Thanks. @xiaoxmeng @pedroerp @mbasmanova


Command "module:make:controller" is not defined

I am getting this issue when attempting to run this artisan command. Any help is appreciated!

Was able to get this working by manually updating the composer package.


Modernize the acceptance tests

This takes the lessons from https://github.com/rubocop/rubocop-rspec/issues/1231 and applies them here.

Updated to top the Debian backport acceptance test. See that commit for details.

I had one copy-paste error where .not_to was replaced by .to. Fixed that.

I think this should be good to merge. I'm leaning to dropping Archlinux from the metadata for now since the tests obviously fail. Also #439 suggests it's entirely broken at the moment.

That would be https://github.com/voxpupuli/puppet-redis/pull/441. I still think the changed in this PR that relate to Arch are good to keep in. Those are in separate commits so easy to distinguish.
@pirj do you think this is now all good to merge?

2 year ping @ekohl :) do you want to rebase this to the current master?

Rebased to resolve merge conflicts. I didn't run it locally yet, so it may have broken something in the rebase.

Additionally we should look at why the Puppet 7 on Centos 8 test times out.

It's common for the CentOS 8 tests to time out. I suspect pulling from quay.io may cause problems.

Updated to drop legacy facts in the test suite.


drivers/spi: spi_context_longest_current_buf fix

spi_context_longest_current_buf must return max buffer len.
Also remove redundant check
Signed-off-by: Ilya Averyanov<EMAIL_ADDRESS>

Just to make sure: this is a code clean-up but doesn't change functionality?

It's change functionality. Before changes this function return smallest buf


Update NYX vector - split run()

Split the run() function into two parts - the preparation and checking for errors, then the kicking off of the vector.
The first part will need to be copied and integrated into the flyer as part of update_parameters() - this will need to be using object.put(value) instead of the Bluesky plans used in run() now (yield from bps.mv()...).
#131
#136

https://github.com/NSLS-II-NYX/nyxtools/pull/4


Implemented dynamic split_overlays

Fixes https://github.com/ioam/holoviews/issues/2284 and implements https://github.com/ioam/holoviews/issues/2254.

All tests passed! Very happy to see this as I wasn't expecting to see this attempted before the next release.
My main suggestion is unit tests (I realize those are probably planned with this PR marked as WIP) and to merge ASAP to maximise general testing.

Main reason I tackled this now is that it's really a prerequisite for https://github.com/ioam/holoviews/pull/2174. The logic here has been used for a long time but it's never been directly tested and I think it needs at least a few changes to be completely safe. Will need lots of tests before I'm happy with it.

Given that DynamicMap.split_overlay is completely broken atm, and causing errors in certain cases I think we should merge this now. It will also fix: https://github.com/ioam/holoviews/issues/2782

...  I think we should merge this now. It will also fix: #2782

Sounds good. At a glance it looks ok but I'll have another look once the tests are passing.

Seems to require some more changes. Will add those on Sunday.

Fixed the last few issues, should be ready to review and merge once tests pass.

Other than a few comments this looks good.

Ready to merge.

Looks good and the tests are green. Merging.


Update transform extension - Add JSON to string / String to JSON

Description
Add stringify methods for JSON objects:

JSON to string, to stringify a JSON object
string to JSON, to parse a string as JSON

Related slack discussion: https://raycastcommunity.slack.com/archives/C02HEMAF2SJ/p1693482682545509
Screencast
JSON to String

String to JSON

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

LGTM 👍


Create separate torch multiconvolutional and multidense layers for python usage and non-python (i.e. ONNX) usage

Native PyTorch in Python can utilize sparse tensors during the inference step, but conversion to ONNX for these layers fails.  To work around this, we need to develop layers which can either be instantiated to utilize either sparse tensors or dense tensors (first pass), or to build separate layers for sparse and dense operations if that does not work.

This has been pushed to the v0.3.0 branch


Update SETUP.md

Clarifying setup in case user does react-native link

Thanks for the contribution!