won't work on rails 6.1

Hi.
I installed this gem through Gemfile on an Rails 6.1 app.
# my other gems
.
.
.

gem 'bcdice'

after I installed it, then i typed rails s to start local server, there was an error happened.
/Users/xxxx/.rvm/gems/ruby-3.0.0/gems/activesupport-6.1.0/lib/active_support/evented_file_update_checker.rb:74:in `initialize': no implicit conversion of Array into String (TypeError)

my ruby version is 3.0, but i tried in Ruby 2.7, and error is the same. so I think the Ruby version doesn't matter.

➤ bundle exec rails s
=> Booting Puma
=> Rails 6.1.1 application starting in development
=> Run `bin/rails server --help` for more startup options
Exiting
Traceback (most recent call last):
	82: from bin/rails:2:in `<main>'
	81: from bin/rails:2:in `load'
	80: from /Users/xxxxxxxxxx/src/project-app/bin/spring:7:in `<top (required)>'
	79: from /Users/xxxxxxxxxx/src/project-app/bin/spring:7:in `tap'
	78: from /Users/xxxxxxxxxx/src/project-app/bin/spring:10:in `block in <top (required)>'
	77: from /Users/xxxxxxxxxx/src/project-app/bin/spring:10:in `require'
	76: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `<top (required)>'
	75: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `load'
	74: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/spring-2.1.1/bin/spring:49:in `<top (required)>'
	73: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/client.rb:30:in `run'
	72: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/client/command.rb:7:in `call'
	71: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `call'
	70: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `load'
	69: from /Users/xxxxxxxxxx/src/project-app/bin/rails:5:in `<top (required)>'
	68: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/dependencies.rb:332:in `require'
	67: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/dependencies.rb:299:in `load_dependency'
	66: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/dependencies.rb:332:in `block in require'
	65: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
	64: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
	63: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
	62: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
	61: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
	60: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/commands.rb:18:in `<main>'
	59: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/command.rb:50:in `invoke'
	58: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/command/base.rb:69:in `perform'
	57: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
	56: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
	55: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
	54: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/commands/server/server_command.rb:135:in `perform'
	53: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/commands/server/server_command.rb:135:in `tap'
	52: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/commands/server/server_command.rb:144:in `block in perform'
	51: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/commands/server/server_command.rb:37:in `start'
	50: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/commands/server/server_command.rb:77:in `log_to_stdout'
	49: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/server.rb:422:in `wrapped_app'
	48: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/server.rb:249:in `app'
	47: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/server.rb:349:in `build_app_and_options_from_config'
	46: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/builder.rb:66:in `parse_file'
	45: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/builder.rb:105:in `load_file'
	44: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/builder.rb:116:in `new_from_string'
	43: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/builder.rb:116:in `eval'
	42: from config.ru:3:in `block in <main>'
	41: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:53:in `require_relative'
	40: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/dependencies.rb:332:in `require'
	39: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/dependencies.rb:299:in `load_dependency'
	38: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/dependencies.rb:332:in `block in require'
	37: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/zeitwerk-2.4.2/lib/zeitwerk/kernel.rb:34:in `require'
	36: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
	35: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
	34: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
	33: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
	32: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
	31: from /Users/xxxxxxxxxx/src/project-app/config/environment.rb:5:in `<main>'
	30: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/application.rb:384:in `initialize!'
	29: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/initializable.rb:60:in `run_initializers'
	28: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:205:in `tsort_each'
	27: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:226:in `tsort_each'
	26: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:347:in `each_strongly_connected_component'
	25: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:347:in `call'
	24: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:347:in `each'
	23: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:349:in `block in each_strongly_connected_component'
	22: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:431:in `each_strongly_connected_component_from'
	21: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
	20: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:228:in `block in tsort_each'
	19: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/initializable.rb:61:in `block in run_initializers'
	18: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/initializable.rb:32:in `run'
	17: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/initializable.rb:32:in `instance_exec'
	16: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/application/finisher.rb:140:in `block in <module:Finisher>'
	15: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/lazy_load_hooks.rb:51:in `run_load_hooks'
	14: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/lazy_load_hooks.rb:51:in `each'
	13: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/lazy_load_hooks.rb:52:in `block in run_load_hooks'
	12: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/lazy_load_hooks.rb:66:in `execute_hook'
	11: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/lazy_load_hooks.rb:61:in `with_execution_control'
	10: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/lazy_load_hooks.rb:68:in `block in execute_hook'
	 9: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/i18n_railtie.rb:20:in `block in <class:Railtie>'
	 8: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/i18n_railtie.rb:64:in `initialize_i18n'
	 7: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/i18n_railtie.rb:64:in `new'
	 6: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/evented_file_update_checker.rb:44:in `initialize'
	 5: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/evented_file_update_checker.rb:44:in `new'
	 4: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/evented_file_update_checker.rb:74:in `initialize'
	 3: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/evented_file_update_checker.rb:74:in `map'
	 2: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/evented_file_update_checker.rb:74:in `block in initialize'
	 1: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/evented_file_update_checker.rb:74:in `Pathname'
/Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/evented_file_update_checker.rb:74:in `initialize': no implicit conversion of Array into String (TypeError)

➤ bundle exec rails s
=> Booting Puma
=> Rails 6.1.1 application starting in development
=> Run `bin/rails server --help` for more startup options
Exiting
Traceback (most recent call last):
	82: from bin/rails:2:in `<main>'
	81: from bin/rails:2:in `load'
	80: from /Users/xxxxxxxxxx/src/project-app/bin/spring:7:in `<top (required)>'
	79: from /Users/xxxxxxxxxx/src/project-app/bin/spring:7:in `tap'
	78: from /Users/xxxxxxxxxx/src/project-app/bin/spring:10:in `block in <top (required)>'
	77: from /Users/xxxxxxxxxx/src/project-app/bin/spring:10:in `require'
	76: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `<top (required)>'
	75: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/binstub.rb:11:in `load'
	74: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/spring-2.1.1/bin/spring:49:in `<top (required)>'
	73: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/client.rb:30:in `run'
	72: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/client/command.rb:7:in `call'
	71: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `call'
	70: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/client/rails.rb:28:in `load'
	69: from /Users/xxxxxxxxxx/src/project-app/bin/rails:5:in `<top (required)>'
	68: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/dependencies.rb:332:in `require'
	67: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/dependencies.rb:299:in `load_dependency'
	66: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/dependencies.rb:332:in `block in require'
	65: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
	64: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
	63: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
	62: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
	61: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
	60: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/commands.rb:18:in `<main>'
	59: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/command.rb:50:in `invoke'
	58: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/command/base.rb:69:in `perform'
	57: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
	56: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
	55: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
	54: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/commands/server/server_command.rb:135:in `perform'
	53: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/commands/server/server_command.rb:135:in `tap'
	52: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/commands/server/server_command.rb:144:in `block in perform'
	51: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/commands/server/server_command.rb:37:in `start'
	50: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/commands/server/server_command.rb:77:in `log_to_stdout'
	49: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/server.rb:422:in `wrapped_app'
	48: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/server.rb:249:in `app'
	47: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/server.rb:349:in `build_app_and_options_from_config'
	46: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/builder.rb:66:in `parse_file'
	45: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/builder.rb:105:in `load_file'
	44: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/builder.rb:116:in `new_from_string'
	43: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/builder.rb:116:in `eval'
	42: from config.ru:3:in `block in <main>'
	41: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:53:in `require_relative'
	40: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/dependencies.rb:332:in `require'
	39: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/dependencies.rb:299:in `load_dependency'
	38: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/dependencies.rb:332:in `block in require'
	37: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/zeitwerk-2.4.2/lib/zeitwerk/kernel.rb:34:in `require'
	36: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
	35: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
	34: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
	33: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
	32: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
	31: from /Users/xxxxxxxxxx/src/project-app/config/environment.rb:5:in `<main>'
	30: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/application.rb:384:in `initialize!'
	29: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/initializable.rb:60:in `run_initializers'
	28: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:205:in `tsort_each'
	27: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:226:in `tsort_each'
	26: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:347:in `each_strongly_connected_component'
	25: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:347:in `call'
	24: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:347:in `each'
	23: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:349:in `block in each_strongly_connected_component'
	22: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:431:in `each_strongly_connected_component_from'
	21: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
	20: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:228:in `block in tsort_each'
	19: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/initializable.rb:61:in `block in run_initializers'
	18: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/initializable.rb:32:in `run'
	17: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/initializable.rb:32:in `instance_exec'
	16: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.1.1/lib/rails/application/finisher.rb:140:in `block in <module:Finisher>'
	15: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/lazy_load_hooks.rb:51:in `run_load_hooks'
	14: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/lazy_load_hooks.rb:51:in `each'
	13: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/lazy_load_hooks.rb:52:in `block in run_load_hooks'
	12: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/lazy_load_hooks.rb:66:in `execute_hook'
	11: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/lazy_load_hooks.rb:61:in `with_execution_control'
	10: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/lazy_load_hooks.rb:68:in `block in execute_hook'
	 9: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/i18n_railtie.rb:20:in `block in <class:Railtie>'
	 8: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/i18n_railtie.rb:64:in `initialize_i18n'
	 7: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/i18n_railtie.rb:64:in `new'
	 6: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/evented_file_update_checker.rb:44:in `initialize'
	 5: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/evented_file_update_checker.rb:44:in `new'
	 4: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/evented_file_update_checker.rb:74:in `initialize'
	 3: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/evented_file_update_checker.rb:74:in `map'
	 2: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/evented_file_update_checker.rb:74:in `block in initialize'
	 1: from /Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/evented_file_update_checker.rb:74:in `Pathname'
/Users/xxxxxxxxxx/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.1.1/lib/active_support/evented_file_update_checker.rb:74:in `initialize': no implicit conversion of Array into String (TypeError)

@SimuraEpona
Thanks reporting!
It seems to be i18n problem.
ActiveSupport automatically loads i18n files but loading i18n files from BCDice are failed.
I don't know why failing.
To quick fix, add require: false on Gemfile add append require 'bcdice' to some file.
gem 'bcdice', '~> 3.0.0.pre.rc.2', require: false

@SimuraEpona
Thanks reporting!
It seems to be i18n problem.
ActiveSupport automatically loads i18n files but loading i18n files from BCDice are failed.
I don't know why failing.
To quick fix, add require: false on Gemfile add append require 'bcdice' to some file.
gem 'bcdice', '~> 3.0.0.pre.rc.2', require: false

@ysakasin
thanks for the reply!
I will try it later. 😃

@ysakasin
thanks for the reply!
I will try it later. 😃

@SimuraEpona
I guess this is a bug of ActiveSupport.
I will try fix it.

@SimuraEpona
I guess this is a bug of ActiveSupport.
I will try fix it.


Damage not being applied correctly

One of my players noticed this during our game this weekend. 12 body and 24 stun is rolled but when it is applied to the monster it's only 10 body 20 stun. It looks like the half die is being dropped. We noticed the same issue applies to attacks that use a pip.

Confirmed the damage reported and dealt doesn't seem to match up. 9 BODY 18 STUN reported being done. 8 BODY 16 STUN reported on damage card with 1 resistant defense dropping the damage to 7 BODY and 13 STUN. Character sheet confirms 7 BODY and 13 STUN received.

It would appear that there are 2 questions to answer:

Is defense is not applied correctly? It appears that non resistant ED is being applied against STUN despite it being a killing attack
What happened to the damage reported in the damage roll card?

Looks like I didn't know the rules so well. WRT defense, regular defense can be applied to STUN if there is matching resistant defense (5e p.410).

Additional note that rolling attacks with no dice (say 1 pip attack) will crash.

Looks like STUN for multiple dice terms was fixed in 3.0.54, but still issue with body and 1/2 dice.

Should be resolved with https://github.com/dmdorman/hero6e-foundryvtt/pull/627

Awesome!


One program identifier

closes and pull's from #656 (thanks @Billy99 For fixing up the examples 🥳  I'll fix up the commit so it says owned by you before merging)
Fixes #580
TODO add integration test support for metadata filtering.

There's still some small spelling and nit stuff in comments but otherwise this should be read for review

Added an extra commit here that fixes filtering by metadata + adds an integration test to ensure it's working.


Won't fully install requriments.txt

html2image and traceback will not install

Skill issue, I got it working but I aint telling you how even though its so simple


PowerApps checker service docs unavailable

Clicking the link to the docs https://aka.ms/buildtoolsconnection takes me to @mikkelsen2000 personal OneDrive, that does not seem to be shared with the public.
I would really like to read that documentation! :)

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

ID: 0e92c215-b337-b864-3fee-b9542e4e30c8
Version Independent ID: 8f26538c-5863-6746-8c2c-ee4438165da4
Content: Build tools tasks - PowerApps
Content Source: powerapps-docs/developer/common-data-service/build-tools-tasks.md
Service: powerapps
GitHub Login: @mikkelsen2000
Microsoft Alias: pemikkel

Looks like the link is pointing to https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/build-tools-tasks#configure-service-connection-for-powerapps-checker now

Yes, great to see it fixed! 😊


feat(batch): batch group chunks for dml

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?

For the sysbench oltp_insert workload, concurrent inserts will generate lots of small chunks. We can group them into a larger chunk to improve the performance.

Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] I have added test labels as necessary. See details.
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
[ ] All checks passed in ./risedev check (or alias, ./risedev c)
[ ] My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)

[ ] My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

[ ] My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

Will test performance in cloud before get merged

Sysbench oltp_insert workload shows that this PR can improve the oltp insert throughput about 10%  utilizing approximately 16% less CPU resources.
this PR: 4818 QPS   and CPU (of compute node) 84%
Main: 4346 QPS and CPU  (of compute node) 100%


⚠ Bofrost.lu has degraded performance

In b61845e, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1154 ms

Resolved: Bofrost.lu performance has improved in ed2f095 after 6 minutes.


FNF Psych Engine 5.1  Its Not Working Android 11 Need Debug Optimized🧐

What is your question?
Hello I Have a Question Just My Mobile Tablet It's Not Working On Android 11 In Friday Night Funkin Psych Engine Version 5.1 Need Debug Optimized Like This Of  Link?
Friday Night Funkin Psych Engine 5.1 Debug Not Optimized Android 11?
https://www.mediafire.com/file/998blvoup4t2h7t/Android+Build.zip1/file

My Mobile tablet is Samsung Galaxy Tab A 8.0 2019 But it's Not Working Of Friday Night Funkin Psych Engine it is Android 11?

My Mobile tablet is Samsung Galaxy Tab A 8.0 2019 But it's Not Working Of Friday Night Funkin Psych Engine it is Android 11?

My Device Too It Works Me Fine Bruh Idk Sorry


Propagate onPause/onResume events to the native activity handler

Needed by one of the backends

GearVRf-DCO-1.0-Signed-off-by: Mihail Marinov<EMAIL_ADDRESS>

Planning to merge on Friday


Transaction generator: multiple target nodes, WIP.

https://github.com/input-output-hk/cardano-node/issues/273

There is a requirement that each target node is delivered its own sequence of (dependent) transactions, but I can't see the logic for this being present in this code.

@njd42 It's not ready yet (I've made some force-pushes, but didn't finish yet). Moreover, currently all transactions we're generating are independent (because, after splitting phase, we already have enough outputs that will be used as inputs for all "main transactions").

bors r+


Unpredictable ordering after a model is added to a collection

With a "sort" comparator function always returning 0, the order of the models in the collection becomes unpredictable after the 11th model is added. Expected result is that the order of the models should be the same as the order they are added.
The bug was found with Backbone 1.1.0. The jsfiddle examples are based on Backbone 1.1.2 and Underscore 1.6.0.
Bug example jsfiddle
http://jsfiddle.net/ptbmaqv6/4/
It behaves correctly using a "sortBy" comparator function (see the jsfiddle below).
http://jsfiddle.net/8rLak1Lo/2/
Update
All tests made in Chrome (Version 41.0.2272.104 (64-bit)) and Mac OS 10.9.5.

When you define a comparator function with an argument count other than 1, Backbone proxies to Array.prototype.sort under the hood.
According to MDN:

If compareFunction(a, b) returns 0, leave a and b unchanged with respect to each other, but sorted with respect to all different elements. Note: the ECMAscript standard does not guarantee this behaviour, and thus not all browsers (e.g. Mozilla versions dating back to at least 2003) respect this.

Furthermore, Array.prototype.sort is unstable. By returning 0, you've told the JS engine that these objects have the same value, so what order they're returned to you should be irrelevant.
> ['a','b','c','d','e','f','g','h','i','j','k','l','m'].sort(function() { return 0; })
[ 'g', 'a', 'c', 'd', 'e', 'f', 'b', 'h', 'i', 'j', 'k', 'l', 'm' ]

Lastly (and only tangentially related), keep in mind that numbers are converted to strings before being sorted lexographically. ('11' < '3'is true).
> [80, 9, 34, 23, 5, 1].sort()
[ 1, 23, 34, 5, 80, 9 ]

As a side note, you were onto something with 10 length arrays being magical. In v8 (chrome, node) at least, Insertion Sort (which is stable) is used for arrays with up to 10 elements, while Quick Sort (unstable) is used for arrays up to 1000 elements.

Thanks for revealing the magics.
Since Array.prototype.sort is not required to be stable, possible to add an option to specify another sort function instead? I can create a new issue instead if so.

I've posted a topic in google group, where we can continue the discussion.
I'll post the link here after it's approved.
Thanks again for the deep insight.

Thanks, much appreciated for using the mailing list. I'll follow up there.

Great.
The link to the topic is https://groups.google.com/d/msg/backbonejs/2R1GQEsjs8s/J-KSSMVTPzYJ.


Import a match schedule

Allow import of match schedule in CSV format. Columns would be match number, start time, and then a column per table. Unused tables for a match would be blank. Have a page in site to show/ import schedule.

Will this need division support?


Adding tests

I added a few tests to check that an offer was being created and posted to a relay correctly.  For the test_create_and post_offer() test in mod.rs I get an error on line 74:58 in nostr_events when the list_dlc_offers functions trys to de-serialize the decoded string into a User bet struct.

I get an error on line 74:58 in nostr_events when the list_dlc_offers functions trys to de-serialize the decoded string into a User bet struct.

This is why I added the delete command because if there is an event with an encoded UserBet that is different from the current iteration of UserBet, the deserialization will fail. In  test_list_dlc_offers deserialization will always fail because you're not putting a valid UserBet as the message


Commit Popup

Actions

[x] Commit
[x] Extend
[x] Reword
[x] Amend
[ ] Fixup
[ ] Squash
[ ] Augment
[ ] Instant Fixup
[ ] Instant Squash

Feature request: Commit on Write
I've been using Neogit, and I can say I really like it over fugitive, since Neogit is much more keyboard-driven. Thank you for making this for the community!
I'm wondering if there is a way to configure Neogit so that the control-c control-c binding is applied on buffer write?
For example, I could write up a commit message and then go into normal mode, and type :w, thereby applying the commit
Another example: I could write a commit message and press ZZ in normal mode, thereby applying the commit. ZZ is short for :wq in vim.

Actions
* [x]  Commit

* [x]  Extend

* [x]  Reword

* [x]  Amend

* [ ]  Fixup

* [ ]  Squash

* [ ]  Augment

* [ ]  Instant Fixup

* [ ]  Instant Squash

Hi !
As a newcomer I was about to fill an issue because I tried to "Fixup" a commit in the previous one but nothing happened when after "c" I hit "f" (same for f/s/S).
I though this was bug or me not being smart enough to understand how to do a fixup. I first asked on r/neovim and I've been told to fill an issue so that I and other people in the same situation could benefit from the answer.
But now that I see this issue I can see that Fixup/Squash/etc is not possible yet. Maybe listing only available commands in commit popup could avoid useless issues and make things clearer to the user.
I've just switched from fugitive cause I really love the way Neogit works, so thank you :)

Maybe listing only available commands in commit popup could avoid useless issues and make things clearer to the user.

I also noticed this problem. After #131 is merged this is fixed.

Toggling a flag in the commit popup doesn't seem to do anything, or I'm misunderstanding what pressing tab on one of those lines means.

Toggling a flag in the commit popup doesn't seem to do anything, or I'm misunderstanding what pressing tab on one of those lines means.

Nvim nightly  / neogit up-to-date
Tabs on an option works for me, same if I type -u for upstream for exemple

On neogit 3226b98 and neovim 0.5.0 (from Fedora 34) hitting the -s (signoff) toggle results in a message where the sign-off trailer is not present.

@hdonnay I cannot reproduce this. If you open your command history, does it have the following line?
git commit --file=.git/NEOGIT_COMMIT_EDITMSG --signoff

Ah, sorry, I was thrown off by the trailer not being there while editing, as if I'd run git commit -s on the command line. I do see that line in the command history and the trailer in the commit with git show. I must have been mistaken before when I thought it was missing. Thanks for the help!

Hey, really enjoying this functionality. :)
I noticed one inconsistency though: when committing through :Neogit commit, I usually don't see a list of staged files etc to provide context for the commit message – but sometimes it appears. Committing via the UI at :Neogit always produces the list.

I usually don't see a list of staged files etc to provide context for the commit message

We are using the output of git commit --dry-run for that. I haven't reproduced this yet. If you encounter this again try running the command and see whether it includes the diff.

I haven't encountered the error at all today, so perhaps one of your recent commits fixed it? :)
Thank you for the amazing plugin! Using it daily.

Not sure if its right place but its related. I don't get context for commit either, but only sometimes, not sure what it depends on, is all right in some projects in others its not.
What I can tell for sure is that when it doesn't work git commit --dry-run returns Error 128 in Neogit command log (after checking with $). Error 128 is fatal: this operation must be run in a work tree. When I run it manually :execute('!cd ' . getcwd() . ' && git commit --dry-run') it runs fine.
It looks like Neogit sometimes run this command outiside git tree.

@pbogut can you create a seperate issue for this? Thank you for finding a problem 👍

@TimUntersberger I've tried to reproduce it with minimal config and it looks like it was my config. Sorry for bothering you. I will try to find out which part of my config was causing the issue and if it's not me being dumb (unlikely) I will create issue.

When trying to do a commit using the verbose flag -v, there is no inline diff of the files that are about to be committed.
Also is it possible to set defaults for the commit popup? I like doing commits with the -v and -s flags and having to press them every time can get annoying.


Fix pvc template in README

Fix pvc template in README

I think I have done it both in minikube and Minishift @spencergibb


Use "offset" instead of "index" to access variables in MIR interpreter

        mov       0x20(%rsi),%rax
        add       $0x30,%rsi
        shl       $0x4,%rax            ; this instruction may be eliminated if offset is predcalculated
        movsd     (%rbx,%rax,1),%xmm0
        mov       -0x20(%rsi),%rax
        shl       $0x4,%rax            ; this instruction may be eliminated if offset is predcalculated
        movsd     %xmm0,(%rbx,%rax,1)
        mov       (%rsi),%rax
        jmpq      *%rax

Ok.  Could you provide a small (MIR or C) test for this.

The asm above is a part of MIR interpreter (probably handler for MOVD instruction).
I discovered it using the same mandelbrot benchmark https://gist.github.com/dstogov/f055056c7ada569d4f87d3831dbeaac3
$ perf record ./c2m mandelbrot.c -ei ; perf report

then open and annotate eval
Each handler code makes few shl $0x4,%rax, but "bytecode" may keep already shifted values (offsets).
This minor optimization should reduce interpreter size and increase its speed.


Turn clippy and rustfmt on in CI again

I went ahead and fixed all the clippy lints (there were a couple I thought would be better unfixed and added cfg statements to allow them) and also re-enabled clippy and rustfmt in CI.
They were disabled with no time to explain, disable clippy checks, so hopefully this won't go against whatever the reason at the time was :laughing:.
One question about the CI though: right now, it's an allowed failure that runs against the latest nightly each time. Would it be better to pin it to a specific nightly (or use the beta versions) to lower the churn?

They were disabled with no time to explain, disable clippy checks, so hopefully this won't go against whatever the reason at the time was laughing.

At that time, I was transitioning to the to the new implementation of the syntax tree, so that code churn rate was high enough for clippy & rustfmt being a significant problem.
Overall, I am torn about this, curious what other folks think. Here are my rough thoughts about the issue.
I definitely don't want to gate PRs on clippy and rustfmt: to me, additional per-PR code improvements that these tools bring feel much less important that annoyance and additional waiting time for the PR.
I do want to use rustfmt and, to a lesser extend, clippy. These tools do improve code quality in minor-to-moderate ways. At the same time, I am not too keen on keeping a clean git history, especially since GitHub implemented the feature to get the previous blame. So applying suggestions manually from time to time seems fine by me.
I am annoyed by some of the clippy suggestions, which make the code worse :) In particular:

needless_pass_by_value is often very intentional and important for correctness. For example, when passing Senders around the moment when the last Sender is dropped is important, because it tears down the receiver and allows to wait for it.

Minor changes to boolean expressions like !(idx < container.len()) to idx >= container.len() could make the code less readable. In this case, idx < container.len() is the usual invariant, and ! very cleary states "invariant does not hold".

The .map(|&it| it) to .cloned() changes obscure the fact that it is almost-zero const operation, because the type is Copy.

I am also not thrilled by the idea of disabling clippy lints on a case-by-case bases. Is there perhaps some kind of conservative unopinionated clippy profile, that could be applied on the project level?

I think we should enforce rustfmt in ci, but then just run clippy every so often if we find a good set of options.

I think we should enforce rustfmt in ci,

@DJMcNab why would be more useful than, say, running rusfmt once a week and adding
add this to .git/hooks/pre-commit to run rustfmt automatically on save

cargo fmt-changes

where fmt-changes is a command which applies rustfmt to changed files?
I think it's a bad contributor experience when you PR fails just because you've forgotten a trailing comma, or use a different version of rustfmt.

Different rustfmt version is a good point. I guess I've been spoiled by the ecosystem around nodejs, especially prettier combined with husky and vscode that I think of formatting as a non-issue.
The Rust formatting ecosystem isn't quite there yet, unfortunately, so maybe it would be better to format every so often. I wonder if bors can handle rustfmting automatically somehow...

You can (but shouldn't) make CI commit and push to the repo.
Maybe someone could set up a bot that does fmt PRs?
(Personally, I enforce a pinned stable rustfmt. I think it's better to require standard formatting always, which keeps git-blame accurate. The CI job is named so it's simple to see why it failed.)

Definitely here you about some of the lints -- I've rebased this branch and only cherry-picked the Clippy lints that I think are probably unobjectionable.

Is there perhaps some kind of conservative unopinionated clippy profile, that could be applied on the project level?

I think so, but it looks like there's no way to configure it on a per-repo level and you need to add [cfg] statements per-crate -- surprisingly, it doesn't look like there's a way to do per-repo configuration via a toml file somewhere (at least based on https://github.com/rust-lang/cargo/issues/5034 and https://github.com/rust-lang-nursery/rust-clippy/issues/1313).
I think not-having clippy in CI and only doing it "once in a while" is probably a good choice until lints can be configured centrally and not per-crate. I think it's reasonable to do rustfmt in CI, but don't feel strongly (for the Rust  projects I work on, we have a "blessed" version of Rust to develop on, and we use the corresponding rustfmt that's rustup distributes with that version).

I guess we could also configure clippy through the command line:
cargo +nightly clippy -- -A clippy::style -A clippy::nonminimal_bool

seems to work fine.

bors r+
Thanks!

Filed https://github.com/rust-analyzer/rust-analyzer/issues/155 for rustfmt


Added SpO2 field in community log update for nurses

Proposed Changes

Fixes #8865
Added SpO2 field in community log update form of nurses
Added texts to i18n file

@ohcnetwork/care-fe-code-reviewers
Merge Checklist

[ ] Add specs that demonstrate bug / test a new feature.
[ ] Update product documentation.
[ ] Ensure that UI text is kept in I18n files.
[ ] Prep screenshot or demo video for changelog entry, and attach it to issue.
[ ] Request for Peer Reviews
[ ] Completion of QA

@rithviknishad
Can I do this once again from a new branch..?

are you facing any difficulties updating in the same branch?

Hey @noufalrahim, are you still working on this issue? If not, I’m ready to take it on—I’ve already got a solution prepared.

is it ok now?


feat(sc): A SmartContract base class

A SmartContract framework for simple contract script construction.
Before, the old framework revolves around the interface ScriptIntent (which is very similar to the new ContractCall interface). This was designed to be a simple object that SDK users can create to denote a smart contract method call. However, it was not really fully supported by the old neon-nep5 package, which was coupled tightly with the ScriptBuilder. The args field was also unknown, leading to multiple parsing issues as there was insufficient information to verify and serialize the data.
This PR reworks ScriptIntent and the neon-nep5 package for better support:
ScriptIntent is now superceded by ContractCall. With NEO3 standardizing the entry point, we can now support the (scriptHash, operation, args) inputs as a first class citizen for all contracts. Args is now typed as ContractParams which provided stable typing for us to reliably execute serialization.
The BaseContract class provides a base layer for constructing a simple SmartContract representation that can be used to safely construct ContractCall objects with their parameters parsed correctly.
The Nep5Contract class is an example of how the BaseContract class is extended and provides a clean API interface. I will further extend it to implement the NEO and GAS contracts.
Translation of a ContractCall into a hexstring is trivial with ScriptBuilder as all the parameters are now well defined. The ContractCall object can also be easily used with invokeFunction RPC call.
I intend to deprecate:

ContractParam.byteArray(value, format,...args) -> ContractParam.byteArray(value). I think moving the parameter translation upwards would reduce the burden on this class. For address conversions, there is ContractParam.hash160. For Fixed8 conversion, we should rely on BigInteger class. I plan to remove the 2 extra arguments.

ScriptBuilder.emitAppCall. This can be superceded by a new method to accept ContractCall. For now, I plan to only mark it as deprecated and visit this again after more implementation.

. For Fixed8 conversion, we should rely on BigInteger class. I plan to remove the 2 extra arguments.

Any plan to remove Fixed8 given that it is a leftover NEO2 type?

ScriptBuilder.emitAppCall. This can be superceded by a new method to accept ContractCall. For now, I plan to only mark it as deprecated and visit this again after more implementation.

Isn't the only change here the internal interop that is called? The argument pushing etc is still the same. If I would not take backwards compatibility in mind then all that I'd do at this point is a rename to ScriptBuilder.emitContractCall

I will make the removal of Fixed8 the next thing on my list.
emitAppCall allows for unknown parameters so its harder work with. Its a public method so I would like to remove it if possible and offer emitContractCall as a better solution.

emitAppCall allows for unknown parameters so its harder work with. Its a public method so I would like to remove it if possible and offer emitContractCall as a better solution.

Oh, so the idea is to have a strict version that sanity checks against the ABI?

Yes, the BaseContract class will be in charge of doing the checks against the ABI and formatting everything correct.

hash160 does use isAddress to check if it looks like an address, else it assumes its a scripthash. So in a roundabout sense, it does block invalid addresses. The error will be more of a parsing error as HexString will detect that the invalid address is not hex.

sounds good enough


feature: supporting profilegen for javasdk

This PR supports profilegen for javasdk.
The difference from connection.yaml for nodesdk is:

add 'client' section
delete 'channels' section

according to the java app test.
the other sections are the same.

gosdk file works greats for my JAVA gateway application the last 7 months

Looks like that the go sdk and Java sdk connection file nearly identical, can you try the goadk to see things working for you? Thanks.

@litong01 @pkirkinezis
I tested with connection profile for gsdk(yaml) and I got failure.
but when I delete 'client' section from it, I got success.
In my use case, I use minifab for starting fabric containers and deploying and initializing chaincode
then start fabric app, as bellow:
minifab up -i 2.2.1 -n mychaincode -l java -p  '' -o {{organization}}
minifab invoke -p '"init"'

export ROOTPATH=.../vars/keyfiles
start  fabric app # fabric app uses fabric-gateway-java.
:
java.lang.Exception: io.grpc.StatusRuntimeException: UNKNOWN: error validating proposal: access denied: channel [channelname] creator org [mspid]
        at org.hyperledger.fabric.sdk.Channel.sendProposalToPeers(Channel.java:4976) ~[fabric-sdk-java-2.2.1.jar:?]
        at org.hyperledger.fabric.sdk.Channel.sendProposalToPeers(Channel.java:4879) ~[fabric-sdk-java-2.2.1.jar:?]
        at org.hyperledger.fabric.sdk.Channel.getConfigBlock(Channel.java:941) ~[fabric-sdk-java-2.2.1.jar:?]
        at org.hyperledger.fabric.sdk.Channel.getConfigBlock(Channel.java:907) ~[fabric-sdk-java-2.2.1.jar:?]
        at org.hyperledger.fabric.sdk.Channel.parseConfigBlock(Channel.java:1995) ~[fabric-sdk-java-2.2.1.jar:?]
        at org.hyperledger.fabric.sdk.Channel.loadCACertificates(Channel.java:1832) ~[fabric-sdk-java-2.2.1.jar:?]
        at org.hyperledger.fabric.sdk.Channel.initialize(Channel.java:1222) ~[fabric-sdk-java-2.2.1.jar:?]
        at org.hyperledger.fabric.gateway.impl.NetworkImpl.initializeChannel(NetworkImpl.java:59) ~[fabric-gateway-java-2.2.1.jar:?]
        at org.hyperledger.fabric.gateway.impl.NetworkImpl.<init>(NetworkImpl.java:50) ~[fabric-gateway-java-2.2.1.jar:?]
        at org.hyperledger.fabric.gateway.impl.GatewayImpl.getNetwork(GatewayImpl.java:252) ~[fabric-gateway-java-2.2.1.jar:?]

I don't know the difference from pkirkinezis's case...

@pkirkinezis can you please add how you made gosdk connection file working? @itaru2622 said that it is not working for him.

I generate the file as is from profile-gen gosdk.yaml  file .
Then I use it in my https://github.com/hyperledger/fabric-gateway-java because it works both for yaml and json .
So i insert the file path  where it says "connection.json" .
So far every functionality worked . I was able to invoke query register enroll

@litong01 , @pkirkinezis thank you for your information.
I checked fabcar and found it needs some modification to integrate fabcar and minifabric. It may take some time...
Could you let me show your modified fabcar app which can run after 'minifab up && minifab invoke -p initLedger'.
During my investigation, I also found that connection profile in fabric-samples does not have 'channels' section, as bellow:
https://github.com/hyperledger/fabric-samples/blob/master/test-network/organizations/ccp-template.yaml
the above file generates fabric-samples/test-network/organizations/peerOrganizations/orgN.example.com/connection-orgN.yaml during startFabric.sh ( in fabric-samples/test-network/organizations/ccp-generate.sh )
and above template is almost the same as my template (playbooks/ops/profilegen/templates/javaprofileyaml.j2 ) ...
I also know that following document describes 'channels' section (as optional) ...hmm
https://hyperledger-fabric.readthedocs.io/en/release-2.2/developapps/connectionprofile.html

For the type of access denied you are getting we need more info . The channel ,how many peers are endorsers to that channel and how the topology of your network is .
Also we would like you to join our chat on chat.hyperledger.org/channel/fabric-mini to talk in more detail of your java application implementation .
If you are using java gateway example given from the devs documentation then we can check either the key files are not valid certpem/priv_sk or something is strange with your scenario .
I am telling you all of this because I did an implementation of a  java API  without any issues on production lvl using the go.yaml file along side with java gateway.
Keep in mind you can run your app separately  as a java service without using minifab command. It  will help you use  debugger and investigate any issues

@pkirkinezis @litong01  I'm using default spec.yaml ( in latest master branch) on single machine, without add-org operation.
I tested three cases, the difference is just connection profile. other condition ( chaincode, fabricapp and minifab operation) are the same among test cases.  minifab cleanup is done before every tests for safe.
As you can see following results, I got different error in three cases.
I think there is some logic-level difference in gateway-sdk language editions, and it causes different error by changing profiles.
case 1) use connection_for_gosdk.yaml which generated by profilegen: I got following error, as I described above:
io.grpc.StatusRuntimeException: UNKNOWN: error validating proposal: access denied: channel {{channel}} creator org [org0-example-com]

case 2) use connection_for_nodesdk.yaml which generated by profilegen (without client section): I got following error.
org.hyperledger.fabric.sdk.exception.NetworkConfigurationException: A client organization must be specified

case 2a) use connection_for_nodesdk.yaml for nodesdk (case2 + client section) : I still got following error.
org.hyperledger.fabric.gateway.GatewayRuntimeException: org.hyperledger.fabric.sdk.exception.InvalidArgumentException: Channel by the name {{channel}} already exists

case 3) use connection_for_javasdk.yaml (my PR version):  I got success.
about my chaincode and fabric app:

my chaincode is written in java, deployed and initialized by minifab command.
my fabric app uses inMemoryWallet, gateway-sdk for transaction,  fabric-sdk for enroll.
spec.yaml is the same as latest master branch.

fabric:
  cas:
  - "ca1.org0.example.com"
  - "ca1.org1.example.com"
  peers:
  - "peer1.org0.example.com"
  - "peer2.org0.example.com"
  - "peer1.org1.example.com"
  - "peer2.org1.example.com"
  orderers:
  - "orderer1.example.com"
  - "orderer2.example.com"
  - "orderer3.example.com"

How are you using network.yaml file in your java code ?

my fabric app uses connection.yaml as follows:
gatewayBuilder.identity(wallet, account).networkConfig(connectionYaml).discovery(false);
//then
gatewayBuilder.connect()

account

Could you please join us here https://chat.hyperledger.org/channel/fabric-mini to talk in more detail !!!!!
Propably we have to check many thing . How the wallet was made and also how the acount was created with what creds .
In my implementation i use  X509Identity userIdentity not a wallet .
But please feel free to join us there if possible it more interactive and instant.

my wallet is generated as 'org.hyperledger.fabric.gateway.Wallets.newInMemoryWallet()' and account name is  'admin' for test, and  identity(creds) is X509Identity.

Yeah but you need to check your keys.
For my case I generate new keyfiles for admin when using java SDK which calls FABRIC CA to enroll the amdin user .
I would suggest enrolling the root user using JAVA SDK and create a wallet from the enrolled creds generated.
Then use the new wallet to your app and see .
Also enroll the user using "allowAllHostNames" property as true .
Another thing is how you call invoke on your java code ?

If you are using something like the docs
try (Gateway gateway = builder.connect()) {
        // Obtain a smart contract deployed on the network.
        Network network = gateway.getNetwork("mychannel");
        Contract contract = network.getContract("fabcar");

wallets get automatically generated by minifab and you can check under vars/profiles directory I believe. There isn't anything that you have to change to use it. Wallets get generated based on fabric release.

@litong01 @pkirkinezis thank you for your comment and hints. I started investigation regarding my fabric app and fabcar with minifabric's connection profile for gosdk.


{AKS} Upgrade api-version to 2022-02-01 for ACS module

Description

Update SDK "azure-mgmt-containerservice" to 18.0.0 and API version to v2022_02_01 in acs module.

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

AKS


1.5.2: ImportError: cannot import name 'CustomFieldModelSerializer' from 'nautobot.extras.api.serializers'

Environment

Nautobot version (Docker tag too if applicable): 1.5.2
Python version: 3.8
Database platform, version: Postgres, inv tasks
Middleware(s):

Steps to Reproduce

Change tasks.py on nautobot-plugin-device-lifecycle-mgmt to 1.5.2 install
Run inv build
Run inv debug
See error

Expected Behavior
Successful start

Observed Behavior
ImportError: cannot import name 'CustomFieldModelSerializer' from 'nautobot.extras.api.serializers' (/usr/local/lib/python3.8/site-packages/nautobot/extras/api/serializers.py)

Appears to be related to #2779

This is because nautobot.extras.api.serializers is not the source of CustomFieldModelSerializer. It's inadvertently "re-exported" there because that file uses it internally. Instead that should have been imported from nautobot.extras.api.customfields.
Eventually this should migrate to nautobot.apps.api.CustomFieldModelSerializerMixin.

Related: https://github.com/nautobot/nautobot-plugin-device-lifecycle-mgmt/issues/122

Closing in favor of related issue.


ttop: 1.2.8 -> 1.5.2

Fixes #347429.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 347577 run on x86_64-linux 1

1 package built:

ttop

not merging because I've seen some urls change in the lockfile and dunno the program enough to know if it's valid. But it runs at leastr.


Generic components - unable to set regular attrs

Hello there! I wanted to report that I'm unable to get my generic component accepting html attributes. More broadly, I can't pass any attribute that is not part of my props, otherwise I get the following type-checking issue :

It does not work whether the inheritattrs option is true or false.
A repo with the issue is here.
Could you help me? Thank you!

Duplicate of #3318


[enhancement] give a list of valid id for PREFERRED_REGION

Documentation about the list of region id to use with PREFERRED_REGION would be good.
I had to download https://serverlist.piaservers.net/vpninfo/servers/v4|jq and use curl https://serverlist.piaservers.net/vpninfo/servers/v4|jq . to find the correct id I wanted.
Because it needs the proper capitalisation, otherwise this fails (because of the server)

I am not sure I understand the request. Can you please detail the issue you are facing?

If I want to run ./get_regions.sh alone on the cli, I give it PREFERRED_REGION as an env var. What are the value I am expecting to give in the varaible ?
I tried 'France' and it failed because it was 'france' that was expected. For South-Africa, it's 'za' not (south-africa or South-Africa or ZA)

May be provide an option in the script to show the output of something like:
 curl https://serverlist.piaservers.net/vpninfo/servers/v4  |jq '.regions[]| .id'|sed 's/"//g'|less

It would be more flexible than a hard-coded list.

The script provides a list of the servers, as well as output clarifying where they are located. The run_setup.sh script will walk you through the process and provide output specifically intended to clarify the script function for you, be sure to read the output.
A list of servers and connection details, ordered by latency can be found in at : /opt/piavpn-manual/latencyList
That is specifically provided for anyone preferring to get details for one line calls.

There is also a video guide available: https://www.youtube.com/watch?v=Sq8T7oBog44

I did not use run_setup.sh. I did not see the benefit of it.
OK. May be, I fast read the README. May be just rewrite some section to make it more obvious ?
Like, I need to run .get_regions.sh first without PREFERRED_REGION st or with AUTOCONNCEC=true, then look at the list in /opt/piapvn-manual/latencyList, then rerun with my preferred region id ?
The README becomes quite big. May be split it into more files. And to be able to explain som ethings better ?

The scripts themselves explain everything if you are willing to read the carefully selected on-screen output — run_setup.sh is provided for users that are not yet familiar with the script, such as the situation you describe.

Feel free to close the issue


Use is_valid_uuid from rai_test_utils

Description
Use is_valid_uuid from rai_test_utils
Checklist

[ ] I have added screenshots above for all UI changes.
[ ] I have added e2e tests for all UI changes.
[ ] Documentation was updated if it was needed.

Codecov Report

Merging #2069 (853c628) into main (6f4f38b) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #2069   +/-   ##
=======================================
  Coverage   92.34%   92.34%
=======================================
  Files         100      100
  Lines        4967     4967
=======================================
  Hits         4587     4587
  Misses        380      380

Flag
Coverage Δ

unittests
92.34% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.


Drawing a polygon with one hole

Mapsui Version: 4.1.1
Device: Android, iOS
I'm trying to draw a polygon (in this case a circle) with a hole (in this case a smaller circle).
I would like to fill the polygon with a color and a pattern but leave the hole transparent.

This is the code used:
		VectorStyle lineStyle = new VectorStyle
		{
			Fill =
			{
				Color = Mapsui.Styles.Color.Red,
				FillStyle = FillStyle.DiagonalCross
			},
			Outline =
			{
				Color = Mapsui.Styles.Color.Red,
				Width = 3.0,
				PenStyle = PenStyle.Solid
			}
		};

		List<GeometryFeature> featureLinesList = new List<GeometryFeature>();
		List<Coordinate> lineMin = new List<Coordinate>();
		List<Coordinate> lineMax = new List<Coordinate>();

		for (int step = 0; step < 360; step += 1)
		{
			(double lon, double lat) = GetCirclePoint(12.1, 42.1, step, 30000);
			(double pointX, double pointY) = SphericalMercator.FromLonLat(lon, lat);
			lineMin.Add(new Coordinate(pointX, pointY));
		}

		for (int step = 0; step < 360; step += 1)
		{
			(double lon, double lat) = GetCirclePoint(12.1, 42.1, step, 100000);
			(double pointX, double pointY) = SphericalMercator.FromLonLat(lon, lat);
			lineMax.Add(new Coordinate(pointX, pointY));
		}

		lineMin.Add(lineMin[0]);
		lineMax.Add(lineMax[0]);

		LinearRing ringMin = new LinearRing(lineMin.ToArray());
		LinearRing ringMax = new LinearRing(lineMax.ToArray());
		LinearRing[] holes = new LinearRing[] { ringMin };

		GeometryFeature lineFeature = new GeometryFeature()
		{
			Geometry = new Polygon(ringMax, holes, GeometryFactory.Default),
			Styles = { lineStyle }
		};
		featureLinesList.Add(lineFeature);
		lineFeature.Dispose();

		MemoryLayer memoryLayer = new MemoryLayer
		{
			Features = featureLinesList,
			Name = "polygon",
			Style = null
		};
		mapView.Map.Layers.Add(memoryLayer);

		...

        public (double, double) GetCirclePoint(double longitudeDeg, double latitudeDeg, double rotationDeg, double distanceMeters)
        {
            double lat1 = DegToRad(latitudeDeg);
            double lon1 = DegToRad(longitudeDeg);
            double brng = DegToRad(rotationDeg);

            double lat2 = Math.Asin(Math.Sin(lat1) * Math.Cos(distanceMeters / 6378137) +
                Math.Cos(lat1) * Math.Sin(distanceMeters / 6378137) * Math.Cos(brng));

            double lon2 = lon1 + Math.Atan2(Math.Sin(brng) * Math.Sin(distanceMeters / 6378137) * Math.Cos(lat1),
                Math.Cos(distanceMeters / 6378137) - Math.Sin(lat1) * Math.Sin(lat2));

            lat2 = RadToDeg(lat2);
            lon2 = RadToDeg(lon2);
            return (lon2, lat2);
        }

        public double DegToRad(double Degree)
        {
		return Degree * Math.PI / 180.0;
	}

	public double RadToDeg(double Radiant)
        {
		return Radiant * 180.0 / Math.PI;
	}

Your problem is, that your holes have the wrong direction. Outer ring must CW, inner ring must CCW. So you have to change
LinearRing[] holes = new LinearRing[] { ringMin };

to
LinearRing[] holes = new LinearRing[] { (LinearRing)ringMin.Reverse() };

Then it works.

Thanks very much for the reply.
I changed the two loops like this:
                 for (int step = 360; step >= 0; step -= 1) // hole
                 for (int step = 0; step <= 360; step += 1) // ring

and I removed:
                 lineMin.Add(lineMin[0]);
                 lineMax.Add(lineMax[0]);

because I saw that Reverse method is deprecated.
Anyway, thanks to you I solved it.

To be clear, LineString.Reverse() is deprected, but not (LineString)((Geometry)LineString).Reverse(). See here  for this information.

Thank you, sorry for the inattention.

No reason to apologize, but I made a PR (#2289) for this problem (for me, it is a bug) and want to make it now correct.


prevent buildColumns using null

Whenever I use dynamic columns into ngTable, i kept getting this error on first load of ngTable -
TypeError: Cannot read property 'map' of undefined
at buildColumns (ng-table.js:1189)
The reason is because newCols is null, it throws map error but it doesn't break the table, so this checks make sure newCols aren't null

+1

Thanks for PR.
I've committed a fix for this: https://github.com/esvit/ng-table/commit/be6fa19816d154c3278b4659b0d06a207dd77a43
It differs from your suggestion - the null array is treated the same as an empty array.


bazzite.gg marked as mallicious on virustotal

Describe the bug
see https://www.virustotal.com/gui/url/fc99750cf9ccb3d733b4a1d345696a309d71a81881c8e4a15ee842eadde39e4e?nocache=1
What did you expect to happen?
That no antivirussoftware marks bazzite.gg as malicious.
Output of rpm-ostree status
No response
Hardware
No response
Extra information or context
No response

False positive, already submitted tickets and waiting for them to fix it.

Heard back, should be fixed now. Waiting for change to propagate.

Gonna close this, couple still consider it malicious but I can't fix bad code that isn't mine.


Update 2021-03-03-rescript-association-rebranding.mdx

If I am not mistaking, I think this is the Tezos Foundation rather than the Tezos Software Foundation.

that's correct... thanks for correcting!


Unable to map ctrl+enter

In FZF mapping ctrl-m works as Ctrl + m and as Ctrl + Enter. But with this plugin ctrl-m works only as Ctrl + m. Is it possible to map an action to Ctrl + Enter?

FYI: Ctrl+M is Enter in NeoVim.

I haven’t tried mapping Ctrl+Enter, even though 0.7 provides distinction between C-m and <CR> I’m still not sure <C-CR> is a valid mapping. If you can make this mapping work inside neovim then you can make it work within FzfLua using the on_create callback.

Oh, got it, thank you. I just assumed that I have to set it in actions.

Sorry, my bad, I should have started with it. I trying like this:
fzf.setup({
  keymap = {
    builtin = {
      ['<C-CR>'] = 'default',
    },
  },
}

Is this wrong?

Is this wrong?

Honestly, I don’t know I never tried this mapping but this goes on to be mapped using :tmap, if you can figure out how to represent Ctrl-Enter in neovim as a mapping you can use the same one here, I’m pretty sure <C-CR> isn’t a valid mapping but I may be wrong.

Also I’m not sure what you’re trying to do, there is no default mapping under keymap.builtin if you wanted to confirm selection that mapping would have to be part of the fzf mappings (and not a neovim mapping), fzf has different syntax for it’s mappings, you might be able to make it work by setting this under  keymap.fzf as ['ctrl-enter'] = 'accept' (or maybe confirm? Check the Fzf man page).

Read the “available keys” section in fzf’s man page,  alt-enter is listed but it doesn’t look like ctrl-enter is a valid bind.

Will use on_create.

Will use on_create.

If <C-CR> is a valid neovim mapping then using on_create to tmap it is the only way to make this work.

To @Shatur:
Could you elaborate more on how you map <C-Enter> in neovim? In my case, both Enter and Ctrl-Enter sends  (shown as ^M in neovim).

I use Neovim Qt


Support aliases

Description
General config design investigation will happen in #4.
We should also support aliases of any kind.
The focus should be on relations.
e.g. you pass the following filter to NQL
filter=primary_tag:car
primary_car is in this case an alias.
Tasks

[ ] design how we pass aliases
[ ] support/implement aliases

nql-lang replaces aliases already.
I am not 100% sure currently if nql-lang should be the one who supports aliases.
Aliases in general are easy. Replace a string1 with string2. But some aliases are conditional and need to expand the query.
Simple case
nql('primary_tag:en', {aliases: {primary_tag: tags.slug}}).parse() -> { 'tags.slug': 'en' }
Extended case
If the alias primary_tag is used, i want to repalce it with tags.slug and the tag position is 0.
That means i need to apply a condition/where statement.
const filter = 'primary_tag:en'

if (filter contains primary_tag)
  filter += 'posts_tags.position:0'

nql(filter, {aliases: {primary_tag: tags.slug}}).parse()` -> `{ ... }

That means: i forward my alias to nql-lang, but before i do so, i need to detect the alias on my own.

Closing this issue for now, because mongo-knex should not know about aliases.


Vitest hangs at [RUN] v0.33.0 with no debug output or error

When I had been running tests using the @nuxt/test-utils library I could get results like:
 Test Files  1 failed | 1 passed (2)
      Tests  1 failed | 1 passed (2)
   Start at  14:49:45
   Duration  2.13s (transform 696ms, setup 0ms, collect 1.49s, tests 14ms, environment 434ms, prepare 381ms)

But because I was having trouble with Nuxt imports like ReferenceError: useRuntimeConfig is not defined, I've made changes to switch over to using this library. Unfortunately, I cannot figure out how to get the tests to actually run or at least error out. Instead, I just get this:
$ npm run test

><EMAIL_ADDRESS>test
> vitest --config ./vitest.config.ts run

 RUN  v0.33.0 .../project/test

Here are some relevant file contents...
package.json
{
  "name": "project",
  "version": "1.0.0",
  "description": "",
  "private": true,
  "type": "module",
  "engines": {
    "node": "18"
  },
  "scripts": {
    "dev": "nuxt dev",
    "generate": "nuxt generate",
    "preview": "nuxt preview",
    "prepare": "nuxt prepare",
    "build": "NITRO_PRESET=aws-lambda nuxt build",
    "deploy": "DEPLOY=true TIER=$TIER NITRO_PRESET=aws-lambda nuxt build && sls deploy --stage $TIER",
    "offline": "npm run build && sls offline start",
    "debug": "SLS_DEBUG=* node --inspect node_modules/serverless/bin/serverless offline",
    "test": "vitest --config ./vitest.config.ts run",
    "test:watch": "vitest --config ./vitest.config.ts watch",
    "lint:js": "eslint --ext \".ts,.vue\" --ignore-path .gitignore .",
    "lint:prettier": "prettier --check .",
    "lint": "npm run lint:js && npm run lint:prettier",
    "lintfix": "prettier --write --list-different . && eslint --ext \".ts,.vue\" --ignore-path .gitignore . --fix",
    "coverage": "vitest run --coverage --config ./vitest.config.ts",
    "postinstall": "patch-package"
  },
  "devDependencies": {
    "@babel/cli": "^7.23.0",
    "@babel/core": "^7.23.2",
    "@nuxt/test-utils": "^3.8.0",
    "@nuxtjs/eslint-config-typescript": "^12.1.0",
    "@nuxtjs/eslint-module": "^4.1.0",
    "@nuxtjs/partytown": "^1.3.0",
    "@pinia-plugin-persistedstate/nuxt": "^1.1.2",
    "@serverless/typescript": "^3.30.1",
    "@types/aws-lambda": "^8.10.125",
    "@types/crypto-js": "^4.1.3",
    "@types/eslint": "^8.44.6",
    "@types/node": "^20.8.10",
    "@types/papaparse": "^5.3.10",
    "@types/pdfmake": "^0.2.7",
    "@types/uuid": "^9.0.6",
    "@typescript-eslint/parser": "^6.9.1",
    "@vitejs/plugin-vue": "^4.4.0",
    "@vitest/coverage-v8": "^0.33.0",
    "@vue/compiler-sfc": "^3.3.4",
    "@vue/test-utils": "^2.4.1",
    "@vueuse/nuxt": "^10.5.0",
    "eslint": "^8.52.0",
    "eslint-config-prettier": "^9.0.0",
    "eslint-plugin-nuxt": "^4.0.0",
    "eslint-plugin-prettier": "^5.0.1",
    "eslint-plugin-vitest": "^0.3.9",
    "happy-dom": "^12.10.3",
    "jsdom": "^22.1.0",
    "naive-ui": "^2.35.0",
    "nuxt": "^3.8.0",
    "nuxt-icon": "^0.6.1",
    "nuxt-lodash": "^2.5.3",
    "nuxt-viewport": "^2.0.6",
    "nuxt-vitest": "^0.11.2",
    "patch-package": "^8.0.0",
    "prettier": "^3.0.3",
    "sass": "^1.69.5",
    "sass-loader": "^13.3.2",
    "serverless-offline": "^13.2.0",
    "serverless-s3-sync": "^3.2.0",
    "typescript": "^5.2.2",
    "unplugin-auto-import": "^0.16.7",
    "unplugin-vue-components": "^0.25.2",
    "vitest": "^0.33.0",
    "vue": "^3.3.7",
    "vue-tsc": "^1.8.22"
  },
  "dependencies": {
    "@css-render/vue3-ssr": "^0.15.12",
    "@pinia/nuxt": "^0.5.1",
    "buffer": "^6.0.3",
    "crypto-js": "^4.2.0",
    "dayjs": "^1.11.10",
    "deep-object-diff": "^1.1.9",
    "deepdash-es": "^5.3.9",
    "jszip": "^3.10.1",
    "marked": "^9.1.5",
    "mitt": "^3.0.1",
    "papaparse": "^5.4.1",
    "pdfmake": "^0.2.7",
    "pinia": "^2.1.7",
    "slugify": "^1.6.6",
    "uuid": "^9.0.1"
  },
  "overrides": {}
}

nuxt.config.ts
  modules: [
    "nuxt-vitest",
   ...
  ],

vitest.config.ts
import { defineVitestConfig } from "nuxt-vitest/config";

export default defineVitestConfig({
  plugins: [],
  test: {
    globals: true,
    environment: "jsdom",
    environmentOptions: {
      nuxt: {
        overrides: {},
      },
    },
  },
  root: "./test",
});

project/test/example.nuxt.test.ts
import { test, expect } from "vitest";

test("1 + 1", () => {
  expect(1 + 1).toEqual(2);
});

Is there a chance you have any asynchronous code in your Nuxt runtime that might not be resolving in the test environment? An app I work on, for example, was hanging like yours when we had an unresolved Promise in some of our plugin code.

Before your tests run, a global Nuxt app will be initialized (including, for example, running any plugins or code you've defined in your app.vue).
—nuxt-vitest#important-notes


Autoincrement is broken; consultation needed on how to fix

From SQLiteConnection:
    static func createAutoIncrement(_ type: String, _ primaryKey: Bool) -> String {
        if primaryKey && type == "integer" {
            return type + "AUTOINCREMENT"
        } else {
            return ""
        }
    }

There's no space before AUTOINCREMENT, so the resulting field type looks like "integerAUTOINCREMENT". Hilariously, SQLite don't care and dutifully creates a column with an integerAUTOINCREMENT type.
sqlite> .schema posts
CREATE TABLE IF NOT EXISTS "posts" ("id" integerAUTOINCREMENT PRIMARY KEY, "date" varchar(19) NOT NULL);

Unfortunately, fixing this isn't as easy as just adding that space back in, because the proper syntax for an autoincrement field is actually integer PRIMARY KEY AUTOINCREMENT. But if you define the field you want to autoincrement as a primary key, then it comes out as integer PRIMARY KEY AUTOINCREMENT PRIMARY KEY, and SQLite doesn't like since it thinks we're trying to create multiple primary keys. (Or, if you instantiate the table class and try creating a primary key using the primaryKey method, you get CREATE TABLE…("id" integer PRIMARY KEY AUTOINCREMENT…) PRIMARY KEY ("id") which SQLite also can't handle.)
Possible solutions:

Tweak the createAutoIncrement code to ignore the primaryKey state of the field, so it'd be something like:

    static func createAutoIncrement(_ type: String, _ primaryKey: Bool) -> String {
        return type == "integer" ? "integer PRIMARY KEY AUTOINCREMENT" : ""
    }

and then tell users to not define the relevant field as a primary key in their schema code. This will break cross-compatibility with other Kuery implementations, I'm pretty sure, but it wouldn't require (further hacking to) the core Kuery project.

Just as it has a createAutoIncrement method, implement a createPrimaryKey method on the  QueryBuilder class and implement it in Swift-Kuery-SQLite with something like:

    static func createPrimaryKey(_ type: String, _ isAutoIncrement: Bool) -> String {
        return isAutoIncrement ? "" : "PRIMARY KEY";
    }

Then also do the tweak to createAutoIncrement. This would be a better approach quality-of-code-wise, but requires hacking the core Kuery project.

Anyone have any better ideas?

There is no way to fix this without changing the core Kuery project as it currently builds the create query in the order:

type + auto increment?
primary key

this will need changing to add the type and the primary key before the optional auto increment and then the SQLite createPrimaryKey method will need updating to not add the type.
The new query syntax will need checking against the other databases Kuery supports to ensure it is compatible.

this will need changing to add the type and the primary key before the optional auto increment and then the SQLite createPrimaryKey method will need updating to not add the type.

It seems the reason it was done this way was to accommodate Postgres, for which the syntax of an auto-increment column is like id SERIAL PRIMARY KEY. So the type gets munged to SERIAL but there's no "AUTOINCREMENT" (or "AUTO_INCREMENT"). So in this case, it is necessary that the code that handles the auto-increment case runs before the primary key suffix code as the query string is built from start to end.
This is why I think having a method the database driver can implement to override how the PRIMARY KEY bit is added to the string the same way it's done for auto-incrementation might be the cleanest approach.
I think I'll go ahead and see if I can get this implemented and make a Kuery PR.

I have pulled together an alternate solution and raised the appropriate PR's:
https://github.com/IBM-Swift/SwiftKueryMySQL/pull/32
https://github.com/IBM-Swift/Swift-Kuery-SQLite/pull/21
By offloading to the plugin we will avoid hitting syntax differences in future.


Advent of Code 2024 Day 8 in Trealla Prolog

How would one implement Advent of Code 2024 Day 8:

Day 8: Resonant Collinearity
https://adventofcode.com/2024/day/8

In Trealla Prolog? Whats the recommended way to solve it?
It specifies as the counting of unique solutions:

How many unique locations within the bounds of the map contain an antinode?

Ok, I found a solution without aggregate_all/3 or distinct/1,
just using some other common builtins:
count_distinct(G, N) :-
   findall(G, G, L),
   sort(L, R),
   length(R, N).

But the above uses more memory usually, since findall/3
would create the non-deduplicated list first.


(nightfall-browser) web-worker comlink implement to fetch circuits files from s3 bucket

this worker thread fetch/download all files in s3 bucket and insert it in IndexedDB.
fixes #469

Can you add some instructions for testing too please?

hi @Westlad
so to test this PR, if we can run browser e2e-test locally(successfully), without doing old manual downloading/copying circuits file from AWS s3 bucket aws s3 cp s3://nightfallv3/circuits ./wallet/src/zokrates --recursive and then running script .wallet/copy-zokrates-local.sh to copy local proving key to ./wallet/src/zokrates.
Previously we were doing manual download and copy of the file (and storing it in .gitignore file ./wallet/src/zokrates). Now, this PR does automatically at start of page load in worker thread and then store as unit8Array in indexedDB

also, in this PR I have added instruction (./wallet/README.md) to run bowser e2e test


Can't use "Let's Encrypt" Logo on Simple Icons with Shields.io

Are you experiencing an issue with...

[x] shields.io
[ ] My own instance
[ ] gh-badges NPM package

:beetle: Description
Can't make use of "Let's Encrypt" Logo on Simple Icons with Shields.io
Try to put a "Let's Encrypt" Logo on the badge, tried multiple URL formats, failed.
:link: Link to the badge
https://img.shields.io/badge/Secured_by-Let's_Encrypt-blue.svg?logo=let's-encrypt
:bulb: Possible Solution
prehaps that single quote is causing this problem?

Huh, it looks like that string is a single right quote. It'd be more expected to use an apostrophe, and would be easier to type! I wonder if they would change it.
In the meantime, this is working:
https://img.shields.io/badge/Secured_by-Let's_Encrypt-blue.svg?logo=let’s-encrypt

Wow, good catch! This one had me scratching my head too

I opened simple-icons/simple-icons#1362 to talk about adding URL- and code-friendly slugs to the package and the website.

Let's track this in #4273.


0.3.27 fails zscal tests when compiled with Intel icx

Building 0.3.27 (with Spack but it didn't apply any patches) using both Intel OneAPI 2024.0.0 and 2024.1.0 fails the test suite with:
TEST 39/67 zscal:i_nan [FAIL]
  ERR: test_zscal.c:21  should be true
TEST 40/67 zscal:i_nan_inc_2 [FAIL]
  ERR: test_zscal.c:35  should be true
TEST 41/67 zscal:nan_i [FAIL]
  ERR: test_zscal.c:46  should be true
TEST 42/67 zscal:nan_i_inc_2 [FAIL]
  ERR: test_zscal.c:60  should be true

Build log

what hardware (cpu) did you use for the build (and test) please ?

I've been able to reproduce this with:

OneAPI 2023.0.0  with -march=broadwell on Intel Broadwell and 'TARGET=HASWELL' 'DYNAMIC_ARCH=1'.
OneAPI 2024.0.0 and 2024.1.0  with -march=core-avx2 on AMD Zen4 and 'TARGET=ZEN' 'DYNAMIC_ARCH=1'.

Thank you. Strangely it seems to be optimizing away the argument checks that have been put in the zscal code precisely to fix this scenario...

Looks like it is not even reaching the zscal kernel when building with a recent oneAPI - apparently it hits the quick return in the interface code where it checks if the scale factor alpha is equal to 1. So NaN is equal to any number when one asks icx ?

Oh. It's that -fp-model fast default, isn't it.

"fast and furious" apparently. I guess that needs to be overridden in the Makefiles, no good to put pragmas in individual files that are affected now grrrr


Doors appear to open but will still block the player and occlude

Description

Screenshots

Additional context

Reported by multiple people on Discord. I've seen it myself too. Seems to be sporadic.

Fixed by #6836


Titanium <IP_ADDRESS> support

Could it be possible to make this module work under Titanium <IP_ADDRESS> ?

I'm looking into recompiling this source to be 1.8.1 compatible this week. I will post it once I have got it running.

Ok. Thanks


Add dex-issuer-url and remove public-url configuration options

Context
Because the issuer URL in Dex's configuration could be either the application's Kubernetes Service DNS name + the dex endpoint (e.g. http://<dex-auth-app-name>.<namespace>.svc:5556/dex.) or a publicly accessible IP/DNS name (e.g. http://foo.com/dex), this charm should be configurable for the latter case.
This task also requires the removal of the public-url configuration option as it has been considered misleading and should not be used. Please refer to https://github.com/canonical/bundle-kubeflow/issues/608 for more information.
For details about the design, please refer to this spec (internal only).
What needs to get done

Remove the public-url configuration option
Add the following configuration:

# dex-auth config.yaml
 dex-issuer-url:
	type: string
	default: ""
	description: |
	  Format: http(s)://<publicly-accessible-dns-name>/dex
          (Also referred to as issuer) This is the canonical URL that OIDC clients MUST use to refer to dex. If not specified, it defaults to dex-auth's local endpoint constructed from dex-auth's Kubernetes Service DNS name, the Service port and Dex's endpoint, that is http://<dex-auth-app-name>.<namespace>.svc:5556/dex.
          The default is set by the charm code, not the configuration option.
          This configuration must be set when using a Dex connector that will try to reach Dex from outside the cluster, thus it should be a publicly accessible endpoint, for example:
          https://my-instance.in-my-cloud.some-cloud.com/dex

Remove any traces of the "public_url" value from the charm code
The issuer value will be set to either the default http://<dex-auth-app-name>.<namespace>.svc:5556/dex or model.config["dex-issuer-url"]
Add/modify tests appropriately

Definition of Done
The charm now gets the issuer value from either the configuration option or defaults to http://<dex-auth-app-name>.<namespace>.svc:5556/dex. This can be confirmed by checking the .well-known endpoint.

Fixed by #209


WSL2 does not support mounting F2FS partition

Version
Microsoft Windows [Version 10.0.22000.708]
WSL Version

[X] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>
Distro Version
Debian 11
Other Software
No response
Repro Steps
sudo mount some_f2fs_partition /mnt/root

Expected Behavior
Linux kernel newer than 3.8 should support mounting F2FS partition.
Actual Behavior
mount: /mnt/root: unknown filesystem type 'f2fs'.

Diagnostic Logs
No response

@yetdragon you need to rebuild the WSL kernel with flash-friendly file system support enabled. The current WSL kernel (<IP_ADDRESS>-microsoft-standard-WSL2) has # CONFIG_F2FS_FS is not set

I have my own fork with f2fs support, you can compile it yourself and use it - https://github.com/okineadev/WSL2-Linux-Kernel/tree/f2fs-support


d20_ai_utils.py - Accessing unsupported field obj_f_npc_ai_flags64

if critter is PC then this should not happen:
ai_flags = critter.obj_get_int64(obj_f_npc_ai_flags64)

Thanks, I think this was due to a bug in will_kos, it had a flipped condition:
if target.type == obj_t_npc:
instead of
if target.type != obj_t_npc:
In general it shouldn't be trying to even get AiFightingStatus for PCs. I guess in some rare cases it could happen, e.g. if you use the import party feature from DM or somehow spawn PCs.
I'll push a fix for that line, which I think should do it, but let me know if you run into this again.


added 48th ques about callbackhell promise async/await

How to replace callbackhell code with Promise or Async / Await in Javascript.

Callback hell is a situation in JavaScript where multiple asynchronous operations are nested within one another using callbacks, leading to deeply nested and hard-to-read code. To replace callback hell with Promises or async/await, you can use a more structured and readable approach.
Promises provide a cleaner solution by encapsulating asynchronous operations and allowing you to chain them using .then(). Each asynchronous operation can return a Promise, simplifying the code's structure and making it more manageable. Error handling is achieved through the .catch() method.
On the other hand, async/await is a modern syntax built on top of Promises. It allows you to write asynchronous code that looks more synchronous. By marking a function as async, you can use the await keyword to pause execution until a Promise is resolved or rejected, making the code appear more linear and readable. Error handling can be done using a try-catch block.
By utilizing Promises or async/await, you can transform callback hell into a more organized and maintainable code structure. This improves code readability, makes debugging easier, and enhances overall code quality. It allows you to handle asynchronous operations in a more elegant and sequential manner, leading to more efficient and maintainable JavaScript code.

good question


Playlist display time wrong for longer audio files

I have an audiobook with close to 10 hours length. The display in the web frontend however only shows minutes and seconds, so "9 hours, 13 minutes and 32 seconds" become "13:32".
The calculation of $playlistOverallTime and related variables in inc.loadedPlaylist.php are not sufficient in this case (and I don't think, "date" is the correct approach here anyway).
What about something like this?
function secondsToTime($seconds) {
    if (empty($seconds)) { return false;}
    $seconds = floor($seconds);
    $dtF = new \DateTime('@0');
    $dtT = new \DateTime("@$seconds");
    return $dtF->diff($dtT)->format('%ad %hh %im %ss');
}

Hi @ComicSans
can you create a pull request?

This may take a few days :)

I have fixed it in my new version.
I will make a pull request when i have completed testing for my spotify-version...


Unable to make source maps and watch work in the same build

If you clone and run https://github.com/mprins/maven-compass-example, then inspect the DOM in the browser, you will notice that source maps aren't working (since they are pointing to src/main/scss, which does not get deployed to the server). The only way I can get source maps to work in my projects is to use maven-resources-plugin to first copy my Sass sources to ${project.build.directory} and then compile them with sass-maven-plugin from there. However, this effectively makes it impossible to use Sass's watch option at the same time (unless you enjoy making changes in ${project.build.directory} and then manually copying those back to src/).
Would be great if this could just work out of the box.

In the meantime, while this isn't fixed yet, could you provide a workaround for this, @mprins?

it seems correct to me that the source map points to the source code, if you're not pushing/mapping the source code to the server there's no point in pushing the sourcemaps either. In the example this can be accomplished using an extra resource for the jetty container.
maybe I'm missing something here?...

So, in the case of https://github.com/mprins/maven-compass-example, what changes would you make to the pom.xml in order to get the source maps to work?

I just checked, and in my project, without doing anything special, Maven puts my Sass files in the same folder as the generated CSS files, side by side, but the source map that's with the generated CSS still points to src/main/scss, instead of to the same folder. How do I fix the source mapping?
If I would push the source folder to the server, then I would have my Sass files in two places on the server. That seems unnecessary.

Also, in my project, I am unable to publish to the path src/main on my server; I can only publish to very specific paths. Since I would like to keep my Sass files in src/main as per Maven conventions, I need to be able to publish my source files to a different path on the server and be able to have the source maps point to that path.

OK, I solved it by using :file. That's good enough.

OK, I solved it by using <sourcemap>:file</sourcemap>. That's good enough.

In the Maven conventions src/main/resources is reserved for non compilable resources like property files, so these are copied into the maven artifact as-is (or optionally with filtering)

basically the plugin just provides a ruby runtime and some gem files and cooks up a script that runs sass, any sass commandline option is valid

closing as this has been solved


Remove unused ref property from the parameters object used when creating annotations in AnnotationFactory._create

The use-cases for this property was removed in PRs #7570 and #7775, and it's been completely unused ever since the latter one.

/botio test

Thanks!


[Game] GameBase refactor

PR Details
Refactored a large part of the code to be less obtuse, clarified and extended a bunch of property summaries, removed and implemented a couple of minor functions and allowed internal tick producer to be overridden.
Description

Cleaned up logic and split functionnality of TickInternal into Tick, virtual RawTickProducer and RawTick.

Fixed IsMouseVisible setting itself back to true when the window is created.
Provided public read access to IsExiting.
Provides the ability to force drawing even when the window is minimized (gameplay relying on gpu compute, forcing wait for vsync, etc.)
Moved related functions near each other.

Removed the following features, if you don't agree with those changes, please reply back. I'll keep them in if they actually are useful someone.

SlowDownDrawCalls:

This variable is internal and not used anywhere in the source code.

IsRunningSlowly:

This should be implemented on a case by case basis on the user's side, it doesn't make a lot of sense to embed it in the game's core functionality and within GameTime as well.

EarlyExit:

Redundant, implementation acts in the same way as IsExiting does.

State:

Not used anywhere in source nor samples, looks like legacy code.

PlayTime:

Not used anywhere in source nor samples, extremely similar to UpdateTime, non-essential, can easily be implemented user-side if necessary.

Related Issue
Motivation and Context
I need more control over how updates and draw are scheduled, while cleaning up the logic to be overridden I decided to deal with the rest of the file as well.
Types of changes

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

Checklist

[ ] My change requires a change to the documentation.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Notes
Are the todos at GraphicsDeviceService_DeviceReset, GraphicsDeviceService_DeviceResetting and GraphicsDeviceService_DeviceDisposing implemented ? 'looks like they are ? Can I remove those comments ?

@fdrobidoux The game can be setup to run in fixed time step, the issue I have with it is that it abstracts away too much information, if someone is running in fixed time step he would rather know how many steps are queued up, sample that across time, build his own threshold to deal with this and handle them based on all of this data.

@Eideren Since there are some breaking change, it might be a good opportunity to switch to 3.2 (which is long overdue) rather than being in 3.1. What do you think?
If yes, I will branch master-3.1, mark it non-beta and merge this in master

@xen2 Sure.
Are the todos at GraphicsDeviceService_DeviceReset, GraphicsDeviceService_DeviceResetting and GraphicsDeviceService_DeviceDisposing out of date ?

@Eideren I have just splitted master & master-3.1, so I can merge anytime.
The todos seems out of date, yes.

@xen2 I don't have anything else to add, go ahead when you are ready :)

Sorry... better late than never!
Fixed some conflicts, think it should be OK (if (gamePlatform.IsBlockingRun) moved together with the new location of calls to Throttle).


Support build scan enablement configuration

We can offer a configuration for users to choose if they can enable build scan by default. Once they confirm the Terms of Service in this setting, the users can skip the step to confirm Terms of Service each time.
The configuration should be disabled by default.
cc @donat

Users have to agree to the ToS once per project.


[Psych catalog] Add Psychology Catalog to Carbon website

Cameron Calder and Jeff Longshore have been working on building a Psychology Catalog —  a collection of external links to psychology concepts, memory mechanics, learning methods, and gaming influences. It’s meant to be a helpful resource to designers, informing them as they make customer experience decisions.
Jeff has been working on building out this catalog in Gatsby so it will be ready to hand off to our devs. The catalog is driven by a .json file and users are able to filter multiple topics at once and search simultaneously. They are working on the alignments and the content on their end.
One thing to note here is that Jeff is waiting on our final spec for the interactive/filter tags to finalize the catalog.

[x] Specs sent

Content

In context in Gatsby

### Tasks
- [ ] https://github.com/carbon-design-system/carbon-website/issues/3843
- [x] https://github.com/carbon-design-system/carbon-website/issues/3845
- [ ] https://github.com/carbon-design-system/carbon-website/issues/3844
- [ ] [Psych catalog] Dev will show them how to get it into our Gatsby repo and make PR

This epic is blocked by https://github.com/carbon-design-system/carbon-website/issues/3888