Create VM failed with 'Bosh::AzureCloud::AzureAsynchronousError'

Versions
CPI      Version: 35
BOSH     Version: 264.6
CF       Version:
Diego    Version:
Stemcell
Version: 3468.13
Distro:

[x] Ubuntu
[ ] CentOS

Environment

Azure Environment:

[x] Azure
[ ] AzureChinaCloud
[ ] AzureUSGovernment
[ ] AzureGermanCloud
[ ] AzureStack
[ ] Others:

Location: West US
Subscription ID: On request
Resource Group Name: On request
[ ] Use Managed Disks

Issue Details
While upgrading a deployment, we received the following error:
Error: CPI error 'Bosh::Clouds::VMCreationFailed' with message '#<Bosh::AzureCloud::AzureAsynchronousError: Bosh::AzureCloud::AzureAsynchronousError>

We re-ran the deployment 5 hours later and it failed with the same error, although the deployment made it a bit farther. What is causing this error? Could the CPI better handle this case or return a better error message?
Logs
Initial stack trace:
D, [2018-01-09T03:47:21.145575 #60146] DEBUG -- [req_id cpi-879487]: check_completion - azure-asyncoperation: https://management.azure.com/subscriptions/3ff28d14-86e0-4c6e-aade-9a779f3637a4/providers/Microsoft.Compute/locations/westus/operations/bdd82901-9b57-4c18-9097-44e8b2b6b427?api-version=2016-04-30-preview
D, [2018-01-09T03:47:26.145950 #60146] DEBUG -- [req_id cpi-879487]: check_completion - trying to get the status of asynchronous operation: https://management.azure.com/subscriptions/3ff28d14-86e0-4c6e-aade-9a779f3637a4/providers/Microsoft.Compute/locations/westus/operations/bdd82901-9b57-4c18-9097-44e8b2b6b427?api
-version=2016-04-30-preview
D, [2018-01-09T03:47:26.146192 #60146] DEBUG -- [req_id cpi-879487]: http_get_response - 0: GET, x-ms-client-request-id: 0d6d22e9-499f-4e9d-92c7-26d4d5bbbdbd, URI: https://management.azure.com/subscriptions/3ff28d14-86e0-4c6e-aade-9a779f3637a4/providers/Microsoft.Compute/locations/westus/operations/bdd82901-9b57-4c
18-9097-44e8b2b6b427?api-version=2016-04-30-preview
D, [2018-01-09T03:47:26.429483 #60146] DEBUG -- [req_id cpi-879487]: http_get_response - 0: 200
x-ms-client-request-id: 0d6d22e9-499f-4e9d-92c7-26d4d5bbbdbd
x-ms-request-id: cb210f98-c9bd-4c54-a81e-d1e4035f4e16
x-ms-correlation-request-id: ca5bdb60-cd64-4740-bd70-e90f8e67b180
x-ms-routing-request-id: WESTUS:20180109T034726Z:ca5bdb60-cd64-4740-bd70-e90f8e67b180
response.body: {"startTime":"2018-01-09T03:47:21.7292735+00:00","endTime":"2018-01-09T03:47:21.8229635+00:00","status":"Succeeded","name":"bdd82901-9b57-4c18-9097-44e8b2b6b427"}
I, [2018-01-09T03:47:26.429635 #60146]  INFO -- [req_id cpi-879487]: Finished set_vm_metadata in 6.76 seconds
Rescued Bosh::Clouds::VMCreationFailed: #<Bosh::AzureCloud::AzureAsynchronousError: Bosh::AzureCloud::AzureAsynchronousError>
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/azure_client2.rb:2388:in `check_completion'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/azure_client2.rb:2436:in `http_put'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/azure_client2.rb:377:in `create_virtual_machine'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/vm_manager.rb:559:in `create_virtual_machine'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/vm_manager.rb:127:in `create'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/cloud.rb:180:in `block in create_vm'
/var/vcap/packages/bosh_azure_cpi/vendor/bundle/ruby/2.4.0/gems/bosh_common-1.3262.24.0/lib/common/thread_formatter.rb:49:in `with_thread_name'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/cloud.rb:133:in `create_vm'
/var/vcap/packages/bosh_azure_cpi/vendor/bundle/ruby/2.4.0/gems/bosh_cpi-2.4.1/lib/bosh/cpi/cli.rb:82:in `public_send'
/var/vcap/packages/bosh_azure_cpi/vendor/bundle/ruby/2.4.0/gems/bosh_cpi-2.4.1/lib/bosh/cpi/cli.rb:82:in `run'
/var/vcap/packages/bosh_azure_cpi/bin/azure_cpi:39:in `<top (required)>'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/cli/exec.rb:75:in `load'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/cli/exec.rb:75:in `kernel_load'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/cli/exec.rb:28:in `run'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/cli.rb:424:in `exec'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/cli.rb:27:in `dispatch'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/cli.rb:18:in `start'
/var/vcap/packages/ruby-2.4-r3/bin/bundle:30:in `block in <main>'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/friendly_errors.rb:122:in `with_friendly_errors'
/var/vcap/packages/ruby-2.4-r3/bin/bundle:22:in `<main>'. backtrace: /var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/vm_manager.rb:184:in `rescue in create'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/vm_manager.rb:18:in `create'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/cloud.rb:180:in `block in create_vm'
/var/vcap/packages/bosh_azure_cpi/vendor/bundle/ruby/2.4.0/gems/bosh_common-1.3262.24.0/lib/common/thread_formatter.rb:49:in `with_thread_name'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/cloud.rb:133:in `create_vm'
/var/vcap/packages/bosh_azure_cpi/vendor/bundle/ruby/2.4.0/gems/bosh_cpi-2.4.1/lib/bosh/cpi/cli.rb:82:in `public_send'
/var/vcap/packages/bosh_azure_cpi/vendor/bundle/ruby/2.4.0/gems/bosh_cpi-2.4.1/lib/bosh/cpi/cli.rb:82:in `run'
/var/vcap/packages/bosh_azure_cpi/bin/azure_cpi:39:in `<top (required)>'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/cli/exec.rb:75:in `load'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/cli/exec.rb:75:in `kernel_load'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/cli/exec.rb:28:in `run'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/cli.rb:424:in `exec'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/cli.rb:27:in `dispatch'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/cli.rb:18:in `start'
/var/vcap/packages/ruby-2.4-r3/bin/bundle:30:in `block in <main>'
/var/vcap/packages/ruby-2.4-r3/lib/ruby/site_ruby/2.4.0/bundler/friendly_errors.rb:122:in `with_friendly_errors'

A fix is already released to return a better error message. Feel free to mention us and have it re-opened, if you still hit the issue.

Hello @bingosummer && @gossion ,
we are using BOSH 268.4 and Azure CPI 35.4 and also getting the Bosh::AzureCloud::AzureAsynchronousError message but without additional information.
First we tried to deploy and got the following error message where the CPI actually created a VM but due to a CPI Error, Bosh doesn't know about it. Therefore, Bosh is not able to delete it. It gives a hint to delete resources manually:
| Creating missing vms:
 L Error: CPI error 'Bosh::Clouds::VMCreationFailed' with message 'This VM fails in provisioning after multiple retries.\nYou need to delete below resource manually after finishing investigation.\n
  Resource Group: ...
  Virtual Machine: ...
  Managed OS Disk: ...
  Managed Ephemeral Disk: ...
#<Bosh::AzureCloud::AzureAsynchronousError: The VM fails in provisioning but an error is thrown in cleanuping VM, os disk or ephemeral disk before retry.\n#<Bosh::AzureCloud::AzureAsynchronousError: Bosh::AzureCloud::AzureAsynchronousError>
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/azure_client2.rb:2262:in `check_completion'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/azure_client2.rb:2369:in `http_delete'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/azure_client2.rb:626:in `delete_virtual_machine'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/vm_manager.rb:567:in `rescue in create_virtual_machine'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/vm_manager.rb:520:in `create_virtual_machine'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/vm_manager.rb:112:in `create'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/cloud.rb:174:in `block in create_vm'
/var/vcap/packages/bosh_azure_cpi/vendor/bundle/ruby/2.4.0/gems/bosh_common-1.3262.24.0/lib/common/thread_formatter.rb:49:in `with_thread_name'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/cloud.rb:132:in `create_vm'
/var/vcap/packages/bosh_azure_cpi/vendor/bundle/ruby/2.4.0/gems/bosh_cpi-2.4.1/lib/bosh/cpi/cli.rb:82:in `public_send'
/var/vcap/packages/bosh_azure_cpi/vendor/bundle/ruby/2.4.0/gems/bosh_cpi-2.4.1/lib/bosh/cpi/cli.rb:82:in `run'
/var/vcap/packages/bosh_azure_cpi/bin/azure_cpi:39:in `<top (required)>'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli/exec.rb:74:in `load'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli/exec.rb:74:in `kernel_load'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli/exec.rb:27:in `run'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli.rb:362:in `exec'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli.rb:22:in `dispatch'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli.rb:13:in `start'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/exe/bundle:30:in `block in <top (required)>'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/exe/bundle:22:in `<top (required)>'
/var/vcap/packages/ruby_azure_cpi/bin/bundle:23:in `load'
/var/vcap/packages/ruby_azure_cpi/bin/bundle:23:in `<main>'>
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/vm_manager.rb:598:in `rescue in rescue in create_virtual_machine'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/vm_manager.rb:565:in `rescue in create_virtual_machine'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/vm_manager.rb:520:in `create_virtual_machine'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/vm_manager.rb:112:in `create'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/cloud.rb:174:in `block in create_vm'
/var/vcap/packages/bosh_azure_cpi/vendor/bundle/ruby/2.4.0/gems/bosh_common-1.3262.24.0/lib/common/thread_formatter.rb:49:in `with_thread_name'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/cloud.rb:132:in `create_vm'
/var/vcap/packages/bosh_azure_cpi/vendor/bundle/ruby/2.4.0/gems/bosh_cpi-2.4.1/lib/bosh/cpi/cli.rb:82:in `public_send'
/var/vcap/packages/bosh_azure_cpi/vendor/bundle/ruby/2.4.0/gems/bosh_cpi-2.4.1/lib/bosh/cpi/cli.rb:82:in `run'
/var/vcap/packages/bosh_azure_cpi/bin/azure_cpi:39:in `<top (required)>'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli/exec.rb:74:in `load'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli/exec.rb:74:in `kernel_load'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli/exec.rb:27:in `run'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli.rb:362:in `exec'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli.rb:22:in `dispatch'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli.rb:13:in `start'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/exe/bundle:30:in `block in <top (required)>'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/exe/bundle:22:in `<top (required)>'
/var/vcap/packages/ruby_azure_cpi/bin/bundle:23:in `load'
/var/vcap/packages/ruby_azure_cpi/bin/bundle:23:in `<main>'' in 'create_vm' CPI method

Then we try to re-deploy but it fails because of a blocking IP from the previous created VM. This VM was not deleted and the following error message does not contain any hint to delete the resources or any other additional information.
| Creating missing vms: ...
  L Error: CPI error 'Bosh::Clouds::VMCreationFailed' with message '#<Bosh::AzureCloud::AzureAsynchronousError: Bosh::AzureCloud::AzureAsynchronousError>
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/azure_client2.rb:2262:in `check_completion'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/azure_client2.rb:2310:in `http_put'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/azure_client2.rb:369:in `create_virtual_machine'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/vm_manager.rb:538:in `create_virtual_machine'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/vm_manager.rb:112:in `create'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/cloud.rb:174:in `block in create_vm'
/var/vcap/packages/bosh_azure_cpi/vendor/bundle/ruby/2.4.0/gems/bosh_common-1.3262.24.0/lib/common/thread_formatter.rb:49:in `with_thread_name'
/var/vcap/packages/bosh_azure_cpi/lib/cloud/azure/cloud.rb:132:in `create_vm'
/var/vcap/packages/bosh_azure_cpi/vendor/bundle/ruby/2.4.0/gems/bosh_cpi-2.4.1/lib/bosh/cpi/cli.rb:82:in `public_send'
/var/vcap/packages/bosh_azure_cpi/vendor/bundle/ruby/2.4.0/gems/bosh_cpi-2.4.1/lib/bosh/cpi/cli.rb:82:in `run'
/var/vcap/packages/bosh_azure_cpi/bin/azure_cpi:39:in `<top (required)>'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli/exec.rb:74:in `load'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli/exec.rb:74:in `kernel_load'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli/exec.rb:27:in `run'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli.rb:362:in `exec'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli.rb:22:in `dispatch'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/cli.rb:13:in `start'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/exe/bundle:30:in `block in <top (required)>'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
/var/vcap/packages/ruby_azure_cpi/lib/ruby/gems/2.4.0/gems/bundler-1.15.4/exe/bundle:22:in `<top (required)>'
/var/vcap/packages/ruby_azure_cpi/bin/bundle:23:in `load'
/var/vcap/packages/ruby_azure_cpi/bin/bundle:23:in `<main>'' in 'create_vm' CPI method

It would be helpful if also the second CPI error message could give a hint to this problem, like in the first CPI error.
Best regards,
@videlov && @langered

are there any updates on progress or prioritization?
Thanks,
@beckermax, @beyhan

Hi @beyhan,
How often do you experience this issue? Is this during a large scale test?
Thanks,
Rebecca

Hi @h4xnoodle
in the last months we occasionally see the error.
It did not happen during a large scale test. We saw it last on one of our azure production landscapes.
Best regards,
@FlorianNachtigall @beckermax


[Skeleton 1st Edition] (New sheet)

Changes / Comments
This is a new sheet for skeleton 1st edition by Skeleton by Warlock Privateer. The game was just released this weekend, and this sheet is going along with it (the sheet has been in development for a little bit). Hopefully I've done the git stuff correctly, I'm not entirely used to it.
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[x] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[x] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.


feat(tutorial): complete step 4

Closes #
{{short description}}
Changelog
New

{{new thing}}

Changed

{{change thing}}

Removed

{{removed thing}}

Thank you for applying for the badge. Prior to receiving the badge, it appears that you need to fix this step. I'm seeing this from you:

Where this link shared by @alisonjoseph shows how that section should look like this. https://react-step-5--carbon-tutorial.netlify.app/#/

Just has forgot @import scss..
please check again.. https://deploy-preview-2864--carbon-tutorial.netlify.app


Do not generate dco-merge-queue.yml for private repos

What's needed?
Merge queues might not be available for private repos where an enterprise plan is needed
Proposed solution
dco-merge-queue.yml should not be generated for private repos if merge queues are not available
Use cases
No response
Alternatives and workarounds
No response
Additional context
No response

I would like to add more options to how to generate the templates to enabled/disable features individually, like use_merge_queues or support_arm, then we could have a predefined set of defaults per type of repo (lib, actor, etc.) and repo visibility (private, public). But it is a dream, not sure if I will ever have enough time to do it :D


check some $_GET args for security reason(XSS and SQL Injection)

check some $_GET args for security reason(XSS and SQL Injection)

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


typescript deployment script example for vm & qsfs

prepare for QSFS in VM

deploy VM
deploy 4 ZDB on HD
make sure we can from within VM connect to the ZDB
deploy webgateway entry which maps a dns entry from us to the VM inside (https)

requirements

do as typescript file, all parameters can just be in the code (or as constants on top of code)

https://github.com/threefoldtech/grid3_client_ts/blob/development/scripts/vm_with_qsfs.ts

https://github.com/threefoldfoundation/fediverse/tree/main/examples   I don't also understand the point of the gateway entry, what is getting exposed on https? anyhow there's an example here
https://github.com/threefoldtech/grid3_client_ts/blob/development/scripts/name_gateway.ts


Fix issue 798 enum touch

This fixes #798 in that it passes the tests, including the new test provided by Mohamed in https://github.com/airblade/paper_trail/issues/798. However, it's a poor implementation. The val.is_a?(::String) is particularly ugly. So, perhaps only useful as a starting point for discussion.
This bug (#798) seems to have been introduced with the latest work to use AR 5's new attributes API.

I maked a bug report with the same test you have in the specs.
But this it fails too. What is wrong?

Hi Mohamed, your script is using gem "paper_trail", "5.0.1". Please try gem "paper_trail", github: "airblade/paper_trail", branch: "fix_issue_798_enum_touch".

I was having a difficult time understanding the AttributesSerialization module, so I broke it into smaller pieces in https://github.com/airblade/paper_trail/pull/810.
This PR is not compatible with https://github.com/airblade/paper_trail/pull/810, so I'm going to close it. That's fine, because I didn't want to merge this anyway. I think I can find a cleaner solution now that I understand attributes serialization better.

Okey. I was having problems to use
gem "paper_trail", github: "airblade/paper_trail", branch: "fix_issue_798_enum_touch"

in the bug report. :sos:


Fix propType detection inside class bodies

I investigated it a bit more and it turns out #2111 has more instances than just ClassProperties. A legit example is JSX render props:
type Props = {
  used: string,
}
class Hello extends React.Component<Props> {
  render() {
    return <QueryRenderer
      render={
        ({notAProp}: {notAProp: string}) => <div>{this.props.used}</div>
      }
    />;
  }
}

The no-unused-prop-types rule gives a warning that notAProp is not used, because it thinks notAProp is a prop of Hello.
I added two more tests. The problem seems to occur in many cases involving functions being declared inside class bodies. The nice thing is that all of them have a ClassBody node as an ancestor so I changed the previous fix to look for ClassBody instead, which actually feels more like a proper fix.

Thanks for the great fixes @drx! These helpers were extracted from two rules that had diverged slightly in how they detected propTypes, so it was tricky to de-duplicate them. It’s unfortunate that a few cases slipped through the cracks; they probably worked before but didn’t have test cases in the repo.


Main changes for kube/cluster-init.sh for multi-node cluster handling

create the cluster-utils.sh in pkg/kube for a number of functions
get EdgeNodeClusterStatus from 'zedkube' for cluster status, cluster nodeip, cluster prefix, etc
a background process to monitor the cluster mode changes
implement cluster mode change logic and operations for change from single-node to cluster, or from cluster back to single-node
save kube /var/lib at single-node first time setup for later use when the mode changes back from cluster mode to single node
display eve-release string for get node OS-IMAGE field
this patch tested still works in kubevirt single-node case.
some of the external_boot_img changes in the patch is from Andrew's diff.

Looks like it needs to be rebased.

Looks like it needs to be rebased.

Hi @deitch rebased in the update.
hi @andrewd-zededa, i have resolved some conflicts, in particular this:
        if ! external_boot_image_import; then
                continue
        fi

please check to see if this is in the intended place.

hi @andrewd-zededa, i have resolved some conflicts, in particular this:

@andrewd-zededa can you respond to this and take another look?


Bad Signature - unsure of how to debug further

We're using this package to sign an XML message that is going to a Modirum MPI server - however we are getting a "bad signature" error and we can't figure out why - so any assistance would be appreciated.
Here is the code:
import os
import base64
import requests
import signxml

from lxml import etree as lxml_ET
from signxml import XMLSigner, XMLVerifier, CanonicalizationMethod

TERM_URL = os.environ.get('TERM_URL', 'https://somedomain.url')
SELF_ENVIRONMENT = os.environ.get('SELF_ENVIRONMENT', 'staging')

POST_URL = 'https://modirumServerHere/url/things'

class ModiumSignXML:
    def __init__(self, xml):
        self.xml = xml

    def sign_xml(self, xml, message_id):

        cert, key = [open(f, "rb").read() for f in ("staging.cert.crt", "staging.private.key")]

        reference_uri_link = f'''#{message_id}'''

        temp = f'''<ModirumMPI xmlns="http://www.modirum.com/schemas/mpiapi" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#">
                        {xml}
                    </ModirumMPI>'''

        data = lxml_ET.fromstring(temp.encode('utf-8'))
        signer = XMLSigner(method=signxml.methods.detached,
                           c14n_algorithm=signxml.CanonicalizationMethod.CANONICAL_XML_1_0)
        signed_root = signer.sign(data, key=key, cert=cert, reference_uri=reference_uri_link)
        data_serialized = lxml_ET.tostring(signed_root)

        temp = temp.replace('</ModirumMPI>', data_serialized.decode('utf-8') + '</ModirumMPI>')

        # data_parsed = lxml_ET.fromstring(temp)
        XMLVerifier().verify(temp.encode('utf-8'), x509_cert=cert, id_attribute=reference_uri_link)

        return temp

    def process(self, pan, expiry, amount, exponent, description, currency, term_url, transaction_id, merchant_id,
                merchant_name):

        # message_id = f"{merchant_name}{transaction_id}"
        message_id = "M1561102563170" #Hardcoded for testing

        xid = str(transaction_id).zfill(20).encode('utf-8')
        xid = base64.b64encode(xid).decode('utf-8')

        to_encrypt = f'''
        <Message md="{transaction_id}" merchantId="{merchant_id}" messageId="{message_id}" version="4.0">
            <Request>
                <EnrollmentRequest>
                    <Parameters>
                        <pan>{pan}</pan>
                        <expiry>{expiry}</expiry>
                        <deviceCategory>0</deviceCategory>
                        <purchAmount>{amount}</purchAmount>
                        <exponent>{exponent}</exponent>
                        <description>{description}</description>
                        <currency>{currency}</currency>
                        <termUrl>{term_url}</termUrl>
                        <TDS2Attributes>
                            <Attribute name="TDS2.transType">01</Attribute>
                        </TDS2Attributes>
                        <xid>{xid}</xid>
                    </Parameters>
                </EnrollmentRequest>
            </Request>
        </Message>'''

        xml = self.sign_xml(to_encrypt, message_id)

        print("REQUEST")
        print("=========="*10)
        print(xml)
        print("=========="*10)
        print("")
        print("")
        print("")

        return xml

    def post_xml(self, xml):
        headers = {'Content-Type': 'application/xml'}

        r = requests.post(POST_URL, data=xml, headers=headers)

        print("RESPONSE")
        print("=========="*10)
        print(r.text)
        print("=========="*10)
        print("")
        print("")
        print("")

def main():
    pan = '4111111111111111'
    expiry = '2312'
    amount = '100'
    exponent = '2'
    description = 'Test'
    currency = '710'
    term_url = TERM_URL
    transaction_id = '90010'
    merchant_id = '123456'
    merchant_name = 'TestMerchant'

    test = ModiumSignXML('')
    xml = test.process(pan=pan, expiry=expiry, amount=amount, exponent=exponent, description=description,
                       currency=currency, term_url=term_url, transaction_id=transaction_id, merchant_id=merchant_id,
                       merchant_name=merchant_name)
    test.post_xml(xml)

if __name__ == "__main__":
    main()

Essentially the function sign_xml does the signing and then verification - and that's where the error comes in. According to the spec, it needs to be a detached signature, appearing after the last "message" and before the end of the  XML tag.
We've compared the outputted code to spec docs and other working logs and can't see anything different, yet our verification fails both locally and on the MPI server. So any help would be grand!
We tried various things - including the different signing methods and no joy on any of them. We have re-verified the cert and the key and they are both fine and have been extracted from the same pfx file.

It looks like you're altering the signed data after signing after inserting the signature into the data. You're also trying to splice XML documents together via string concatenation. Neither of these things will work, and they will both break the signature.
I suggest that you gain a clearer understanding of the three different available signature methods (enveloping, enveloped, and detached) and how to apply them in your case - ideally by taking an example provided by your integration partner and changing the SignXML parameters until you obtain the same shape of output.


Add local video track support

Add local video track support and publishing hue video track example

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

Open to feedbacks wrt exposing events to the users (Should use do a virtual class? Event polling)
Cc @cloudwebrtc


Issues about results: reads, permission and company communicator insight

Hi, I just deployed the company communicator all it working fine and I did use a few account to read the adaptive card.

When I open the View status page, in results there are only success and failure no reads.
If I want to find out who have read the adaptive card, where can I get the data?

In the message delivert.csv of export detailed results, UPN and Names columns all written "Contact your IT admin for permission to view this data".
If I want to view these columns where can i granted permission in order to view it?

I want to generated some dashboard like this using power BI. Is there any setting guide I can follow in order to generate this company communicator insight?

Hi @frannnnnnn ,
For the first point, we are looking into it and will get back to you. For the second point, Could you confirm whether you have a admin access? For the third point, we won't support for customization of the app. We will consider it as a backlog and will plan it for the future releases.

Hi, thanks for your quick response really appreciate it.
After I add Directory.Read.All(delegated) and Directory.Read.All(application) permission to graph app, the second point is actually fix. I can view all the columns in export detailed results csv file now.

Hi @frannnnnnn ,
Currently, we don't support the Read analytics functionality. We have already added it to our backlog. We will keep you updated when we plan for the feature in our upcoming releases.

Item added to backlog, hence closing this issue


Silence i18n content collection warnings

Closes https://github.com/withastro/starlight/discussions/1174
Currently, there are two warnings logged related to the i18n content collection when running our basic starter kit (i.e. with no i18n files set up):

A warning that an i18n collection is configured but doesn’t exist on disk (on dev/build start up):

The i18n collection is defined but no content/i18n folder exists in the content directory. Create a new folder for the collection, or check your content configuration file for typos.

A runtime error when Starlight actually calls getCollection('i18n') to again say that the collection directory doesn’t exist:

The collection i18n does not exist or is empty. Ensure a collection directory with this name exists.

Many of us Starlight users have trained ourselves to ignore these warnings, but they remain confusing especially for newer users who assume they need to fix something.
This PR addresses both of these points:

Removes the i18n collection set-up from our two starter templates, which stops Astro emitting that first warning. Means people have to add that manually if they need the custom i18n features, but we do already document that in our “Translate Starlight’s UI” docs.

Hackily overrides console.warn() briefly while we make our getCollection('i18n') call, so that we swallow the runtime error. Admittedly, this is a bit gross, but I considered the options and I feel like the warning does have quite a bit of value for your average Astro users, so removing it upstream seemed kind of unfair.
@Princesseuh also suggested adding a “noWarn” option to the query APIs to support this officially. I think that could be a nice idea, but I’m not 100% sure the use case is widespread enough to justify that yet.

size-limit report 📦

Path
Size

/index.html
5.22 KB (0%)

/_astro/*.js
21.54 KB (0%)

/_astro/*.css
13.14 KB (0%)

Thanks for the review Nate 💖


Add env vars to ddclient

I was getting an error on my Synology 918+ which manifested as ddclient not being able to get an IP address, which in turn meant that traefik couldn't get any certificates.  Adding the env vars to ddclient fixes this

@martynhaigh did you have to make other changes to the docker-compose or Synology for things to work well on your Synology.


Question: how about a production-version of Twig.js?

Hi,
With Handlebars, one can grab a "production only" version of Handlebars that can only execute pre-compiled templates (server-side compiled).
It would be great to have the same thing with Twig.js. That way, the lib would weigh only a few kilobytes (instead of 66kB), and we could make the client download a "package" of all the templates altogether.
It would: save bandwidth, generate far fewer HTTP requests, and more importantly greatly reduce download time (important for me because I'm creating an app designed mostly for mobiles).
If it's already there, please forgive me for my question.
Best regards,

+1

+1

I've taken a look at this as it would be quite helpful for me, but I definitely don't think it is as easy as it might first appear.

If anyone's still interested, I wrote a Twig->JS compiler.  Whole new project though, I learned about this one half-through.

This is not planned at this time.


Build failed on xcode version 13.2.1 and ios 15.2

When i add the plugin and run the app
Launching lib/main.dart on iPhone 13 in debug mode...
lib/main.dart:1
Xcode build done.                                           33.4s
Failed to build iOS app
Error output from Xcode build:
↳
    objc[9822]: Class AMSupportURLConnectionDelegate is implemented in both /usr/lib/libamsupport.dylib (0x1f6a9b678) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x1041182c8). One of the two will be used. Which one is undefined.
    objc[9822]: Class AMSupportURLSession is implemented in both /usr/lib/libamsupport.dylib (0x1f6a9b6c8) and /Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (0x104118318). One of the two will be used. Which one is undefined.
    --- xcodebuild: WARNING: Using the first of multiple matching destinations:
    { platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device }
    { platform:iOS Simulator, id:C3654F7A-9808-499C-A59D-B34A416AB62B, OS:15.2, name:iPhone 8 }
    { platform:iOS Simulator, id:C025D1A8-BB15-4065-9FDC-A354366BAEA2, OS:15.2, name:iPhone 8 Plus }
    { platform:iOS Simulator, id:53595D0E-027B-4CD5-8D51-8306BF4FF1CF, OS:15.2, name:iPhone 11 }
    { platform:iOS Simulator, id:47A316B3-2244-4EE8-93F5-3E9B06FBD0F5, OS:15.2, name:iPhone 11 Pro }
    { platform:iOS Simulator, id:C0BADDB7-2290-46EB-BE94-DD3B38C1EEC5, OS:15.2, name:iPhone 11 Pro Max }
    { platform:iOS Simulator, id:FA794F0C-97E8-4FE3-998A-8D757190E917, OS:15.2, name:iPhone 12 }
    { platform:iOS Simulator, id:FFFA9975-8F15-4F98-A8FE-B1A529AC9C08, OS:15.2, name:iPhone 12 Pro }
    { platform:iOS Simulator, id:D867A312-1D94-4D4E-9516-39377E3F274E, OS:15.2, name:iPhone 12 Pro Max }
    { platform:iOS Simulator, id:D70CC4BE-B593-47A7-A885-2244C48171F6, OS:15.2, name:iPhone 12 mini }
    { platform:iOS Simulator, id:2985BF8F-E9F4-45D3-8720-9F3197E40B43, OS:15.2, name:iPhone 13 }
    { platform:iOS Simulator, id:7E869746-8288-450F-A4E8-C8191E9C8462, OS:15.2, name:iPhone 13 Pro }
    { platform:iOS Simulator, id:22412296-359C-48E4-B7CF-D77142319155, OS:15.2, name:iPhone 13 Pro Max }
    { platform:iOS Simulator, id:22C4FDF3-9F52-4A68-AC76-E1D6DA1F9448, OS:15.2, name:iPhone 13 mini }
    { platform:iOS Simulator, id:88D15B9C-C260-4903-9C63-EA3206312CC5, OS:15.2, name:iPhone SE (2nd generation) }
    { platform:iOS Simulator, id:F05380DB-99B3-483F-AEA4-3A8552683638, OS:15.2, name:iPod touch (7th generation) }
    { platform:macOS, arch:arm64, variant:Designed for [iPad,iPhone], id:00008103-001878141E3B001E }
    { platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device }
    { platform:iOS, id:39e01ccc58d82aedcb642d0e97ec1bd333ae0593, name:Akshay’s iPhone }
    { platform:iOS Simulator, id:11B4D3DA-0BF6-4F91-AE65-83D8501B6AFC, OS:15.2, name:iPad (9th generation) }
    { platform:iOS Simulator, id:678016A1-9809-4E7E-A2C6-269CE17464BE, OS:15.2, name:iPad Air (4th generation) }
    { platform:iOS Simulator, id:9CD885B0-A499-4469-8C49-97ADB4574250, OS:15.2, name:iPad Pro (9.7-inch) }
    { platform:iOS Simulator, id:75FF37BA-4445-469F-AF19-3BC365C05096, OS:15.2, name:iPad Pro (11-inch) (3rd generation) }
    { platform:iOS Simulator, id:0CE7EFCE-E0B0-44B8-AFE6-C2FA29F74AB4, OS:15.2, name:iPad Pro (12.9-inch) (5th generation) }
    { platform:iOS Simulator, id:C0D06E04-0D2C-4C1D-9534-8B47CF5CD009, OS:15.2, name:iPad mini (6th generation) }
    ** BUILD FAILED **
Xcode's output:
↳
    ld: warning: ignoring file /Users/akshay/Development/work/folder1/folder2/appname/build/ios/Debug-iphonesimulator/flutter_callkit_incoming/flutter_callkit_incoming.framework/flutter_callkit_incoming, building for iOS Simulator-x86_64 but attempting to link with file built for iOS Simulator-arm64
    Undefined symbols for architecture x86_64:
      "_OBJC_CLASS_$_FlutterCallkitIncomingPlugin", referenced from:
          objc-class-ref in GeneratedPluginRegistrant.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    note: Using new build system
    note: Planning
    note: Build preparation complete
    note: Building targets in dependency order
    note: Removed stale file '/Users/akshay/Library/Developer/Xcode/DerivedData/Runner-akdsaeqtjqrwyyflbsnzccyvabkw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/PromisesObjC.build/Script-A8CAB799B3AFEB11821791AC52C8E24F.sh'
Could not build the application for the simulator.
Error launching application on iPhone 13.
Exited (sigterm)

I am using  flutter_callkit_incoming: ^1.0.1+2

@wa11breaker please make sure using real device(not working with simulator)

Yes, its working on real device, thanks for the quick response.


Automate building of new base images when release-builder build fails scan

Describe the feature request
Today, when release managers build a new release build, part of the process is to scan the base images for vulnerabilities. If any exist, and a flag isn't set to ignore them, the build fails.
This feature request is to automatically create a new set of base images, and create the PR to update the BASE_VERSION to use the new images. At this point the build will still fail, but the release manager won't have to tag someone with the appropriate credentials to create the images, and then the PR to use them.
The release manager can now approve the created PR, and when it is merged, can kick off a new release-builder build which should now pass the image scan.
Describe alternatives you've considered
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[x] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Additional context

Extend build-base-images.sh to take a comma separated string of HUBs as base images should be built and pushed to docker.io/istio and gcr.io/istio-release

Talked with @howardjohn, and it was mentioned to also have a periodic job that would run a scan and build a new base image as well.

Completed with #31343 (and some earlier PRs on same file) and https://github.com/istio/release-builder/pull/584


Stream infoset events while parsing and reduce memory usage

Create a new InfosetWalker class that walks the infoset with the
ability to pause and continue were it last paused. A new
infosetWalkerBlockCount reference counter is used to determine when
the backtracking is possible and so the walker must pause.
Additionally, isFinal is extended to all types (including simple
types) and set during parsing so that the infoset walker knows when
nodes will have no more changes (e.g. DIComplex/DIArray will have no
more children added)
Use this new InfosetWalker anytime an infoset is needed (e.g. parse
results, debugging, validation, etc). The visit() methods are no
longer needed and are removed.
Change the XMLTextInfosetOutputter to output empty complex types as
 rather than . When we get a startComplex event, we
may not know yet if there are any children, so we can't immediately
create a self closing start tag. Instead, always create an open tag,
and be careful about how we create a close tag so we don't create
empty complex types with newlines in them.
Remove special handling of root element on DIDocument. Treat it just
like any other DIComplex, except we only care about the zero'th
element. There was a bug in special casing that caused issues with
streaming elements.
Set DINodes to null after creating end events for them. This allows
the java garbage collector to clean up these elements to allow for
true streaming style behavior when possible. The one case where we
cannot do this is when elements are used in expressions. For now, they
simply are not freed until parse completes.

DAFFODIL-934

Thanks for the review. All good comments! Updates made it fixup commit.


Resuming from pause is slower than it needs to be

After being paused for a while, resuming made it seem to apply all subsequent changes one-by-one, and this was very slow. By changing timeline to in the past, then back to the present, I forced it to refresh and instantly 'catch up' to up-to-date reports.
Ideally I shouldn't have to trick the UI into performing this operation - I'd suggest it happen automatically if the number of pending changes exceeds some (very small) threshold - or even just have it happen on unpause no matter what.

...or even just have it happen on unpause no matter what

I feel the same - recently we had a discussion about it here in Berlin and @bia also didn't quite understand why we're still doing buffering. I don't think we have a good reason for keeping it, especially now that we'll be able to use Time Travel to go through the recent states. Would gladly get rid of it altogether once time travelling is there!


Experiment Versioning UI: archive button

Description

Adds an archive button and functionality to the details modal on an experiment version
User Impact

None currently-- This is behind a pre-release FF
Demo

https://github.com/user-attachments/assets/1d23189f-26d8-46c8-a83b-11645abbb443
Docs

Codecov Report
Attention: Patch coverage is 40.00000% with 6 lines in your changes missing coverage. Please review.

Files with missing lines
Patch %
Lines

apps/experiments/views/experiment.py
40.00%
6 Missing :warning:

Additional details and impacted files

:loudspeaker: Thoughts on this report? Let us know!


Allow running haul as a non interactive child process

This issue/enhancement is best explained with a bit of background, so bear with me.
At Redfin we work in a “monorepo” and use Lerna and Yarn to manage a large number of private npm packages. These packages range from things like our UI Toolkit and general utilities, to feature code. Each of these packages has its own build and corresponding watch commands. When a developer begins work, we want to enable them to start their developer tools and watch mode for everything in the dependency tree they’re working on. As a basic example, if they’re working on the main website, the build tools need to build and watch their feature code, the UI code, the javascript utilizes, and about 15 other packages. Changing any of the source in these packages should trigger a build for that package then trigger a build for webpack.
Here is a very simplistic view of how this looks, some things have been censored/tweaked so your head doesn't explode.

When a developer starts their tools, we use a global CLI to handle everything
fin rn -wi
rn - we’re running just the react-native side of things
-w - we want to be in watch mode (this is haul)
-i - I care about iOS, it will make sure the native build is in a good state, and launch the iOS simulator
Now, at this point, the developer can modify either homepage.jsx which will cause haul to rebuild, or Button.jsx which will run the ui package build for Button, then trigger haul which will see a change to Button.js in the ui package dist directory. This is essentially recursive watch along with its pros/cons.  This allows developers to work on any parts of the codebase without opening a bunch of terminal windows or beaming a tmux guru.
Cool, thats a long intro, thanks for listening. If you think what we’re doing is awful, feel free to email me at<EMAIL_ADDRESS>I’m actually totally open to hostile rants about how we’re totally sh***ing the bed on that setup.
Now, lets get into the dirty bits. There is a script. The best script, the greatest script that was ever scripted, that manages these shenanigans. It uses the wonderful yargs library to parse what the dev is trying to do, and runs the watch code we have. In the watch code is something like this

and it also spawns watchers for all the dependencies in the tree with a similar method.

These two chunks of code span a handful of sub processes each that each watch a thing in the tree and the app code itself. However, with the stdio inherited from all these things, the console output isn’t particularly friendly, and developers were struggling to find the errors and explain unexpected exits.
Alright, lots of talking. Lets now talk about specifically about haul.
Two things about haul, that you might have thought of:

Haul has a bunch of great code that makes the cli wonderfully interactive
Haul log output does beautiful and fancy things like progress bars

These were amazing for getting haul up and running, and made it a joy to work with. However, once it came time to integrate into our parent build cli, things got out of hand pretty quick.
The first thing we need is for haul to operate in non interactive mode, this should be relatively trivial. There are two ways that I could fix up haul to handle this, the first being CLI arg that tells it to stop being so nice and just exit, and/or an implied non interactive mode when haul detects that its being run as a child process. The easiest thing to do is look for process.send which is a telltale way to note if there is a parent running the show.  There are a few places where this would have to be done, but here is essentially what cliEntry.js would end up like, at the point where friendly haul would ask, it just dumps an error and exits.

The next thing we really want is metrics collection for sending to statsd including things like build timing for incremental builds in seconds, and number of unexpected exits from the process. We also want nice formatting of the output with prefixes on the lines denoting which sub processes they came from.  This means that we can’t just inherit the stdio since we want to do something with it and letting it stream by won’t do. We’ll need to switch our stdio of the haul child process to ipc, then start expecting structured messages.

And Haul itself must get switched to talk via ipc. Following the same pattern of above, we can look for process.send and this time actually use it. This example is from messages/bundleBuilt.js There is all sorts of good stuff that comes out of this, the most important of which is that the parent process is now receiving a structured message, complete with raw data. No log/string parsing needed!

I have to interject here that having all (most) the log/console output well refactored into the messages/ directory makes this a ton easier than I thought it would be. Well done on that pattern, whoever keep all that together gets a beer on me next time you’re in Seattle.
If this seems like a reasonable path to walk down, I've got a PR mostly together that makes these changes, I wanted to check in before I spent the time to polish it up.
Alternately, a direct Node API could be created, as mentioned in this issue (https://github.com/callstack/haul/issues/326)
which seems like more work than this, which is almost done. Although a direct Node API and the subprocess improvements largely might answer the same question, they could also exist in harmony.

Closing in favor of https://github.com/callstack/haul/issues/326


Is there any way to completely override the sorting logic? [Help]

Hi There!
Couple of questions:

Is it possible to completely override the sorting logic? What I want to be able to do is click on the header cell and get sorted records from the server without applying the Pluto sorting. I still want to be able to update the icon though to indicate the sorting order.
Is there a way to have separate icons for the sort indication and the pop-up menu? Right now the menu icon changes to a sorting icon when you sort, but I want to be able to still see the menu icon separately even when sort is applied.

I don't know if I understood your question well.

The sort is handled by the server

PlutoLazyPagination or PlutoInfinityScrollRows plugins allow sorting to be handled on the server. In addition, the above two plugins allow the user to refer to the code and create a new widget with the desired appearance.
https://pluto.weblaze.dev/rows-from-server-side
As you can see from the above document, the fetchWithSorting property handles sorting on the server.

Separating the sort icon and menu icon

This is not possible now. But let's consider an update.

Feature. separating sort and menu icons.

Hi @bosskmk, ahhh.. I see, but with the InfinityScrollRows the fetch will only happen when you reach the bottom of the screen?
I am trying to implement the grid into an already existing app. So, I already have a ScrollController which handles the data fetching when you reach a certain part of the screen and it is passed down from another widget to the widget where the Pluto grid is located. That widget where the ScrollController is initialized also provides the widget where the Pluto grid is located with the updated data. So all I need to do with the Pluto grid, when I get some new data is to just reset the rows to the new set of rows. I've got that already handled and it works, but now the problem is with sorting and filtering.
With the above-mentioned setup, when I click on the column header to sort I want to be able to call my own method that will trigger data fetching with the specified sort and the same for filtering when I set a filter. But I guess that kind of thing is currently only possible with the PlutoInifinityScrollRows, right?
Sorry if this is all a bit confusing, but I hope it kind of makes sense.

I can't recommend a good way because I don't know your business logic, but I think you can implement the behavior you want by doing the following.
import 'package:flutter/material.dart';
import 'package:pluto_grid/pluto_grid.dart';

import '../dummy_data/development.dart';

class EmptyScreen extends StatefulWidget {
  static const routeName = 'empty';

  const EmptyScreen({Key? key}) : super(key: key);

  @override
  _EmptyScreenState createState() => _EmptyScreenState();
}

class _EmptyScreenState extends State<EmptyScreen> {
  late List<PlutoColumn> columns;

  late List<PlutoRow> rows;

  late PlutoGridStateManager stateManager;

  @override
  void initState() {
    super.initState();

    columns = [
      PlutoColumn(
        title: 'column1',
        field: 'column1',
        type: PlutoColumnType.text(),
      ),
      PlutoColumn(
        title: 'column2',
        field: 'column2',
        type: PlutoColumnType.text(),
      ),
      PlutoColumn(
        title: 'column3',
        field: 'column3',
        type: PlutoColumnType.text(),
      ),
    ];

    rows = DummyData.rowsByColumns(length: 10, columns: columns);
  }

  void _handleOnSorted(PlutoGridOnSortedEvent event) {
    // Do something.
    print(event);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Container(
          padding: const EdgeInsets.all(15),
          child: PlutoGrid(
            columns: columns,
            rows: rows,
            onChanged: (PlutoGridOnChangedEvent event) {
              print(event);
            },
            onLoaded: (PlutoGridOnLoadedEvent event) {
              stateManager = event.stateManager;
              stateManager.setSortOnlyEvent(true);
            },
            onSorted: _handleOnSorted,
            configuration: const PlutoGridConfiguration(),
          ),
        ),
      ),
    );
  }
}

If you do the above, the sort icon will change, but it won't do anything.
You can handle the data after sorting by implementing the _handleOnSorted method.

Great, thank you! This might just work :)

@ashndev
Added filtering related code.

For more information about event.filterRows , please refer to the link below.
https://github.com/bosskmk/pluto_grid/blob/master/lib/src/plugin/pluto_infinity_scroll_rows.dart#L26

Thank you!

Hi @bosskmk the sorting worked beautifully, thank you! I am just having a bit of a problem with filtering.
I show the filter inputs below the column header and by default they are set to "Contains", then when I go to change the type of filter to "Ends with" for example with the filter pop-up UI, the input below the column header doesn't update. Am I missing a step somewhere? I followed the examples you provided.

Gotcha, thank you! And is there a way to get the filter icon to show up when I set the filter manually as I am doing? Because when I set this to true plutoDataGridSource!.stateManager!.setFilterOnlyEvent(true) that filter icon doesn't show up.

It's a bug.
I will fix it in the next version.

Fixed in PlutoGrid version 5.3.1.


Check and update the jetty-maven-plugin and exec-maven-plugin

The jetty-maven-plugin and exec-maven-plugin may outdated with WireWork. Need to check and update.

@anuchandy could you help load balance this one?


Command az monitor data-collection endpoint list fails with an unexpected error

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az monitor data-collection endpoint list Extension Name: monitor-control-service. Version: 0.3.0.
Errors:
(InvalidResourceType) The resource type 'dataCollectionEndpoints' could not be found in the namespace 'Microsoft.Insights' for api version '2021-09-01-preview'. The supported api-versions are '2021-04-01,2019-11-01-preview'.
Code: InvalidResourceType
Message: The resource type 'dataCollectionEndpoints' could not be found in the namespace 'Microsoft.Insights' for api version '2021-09-01-preview'. The supported api-versions are '2021-04-01,2019-11-01-preview'.

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az monitor data-collection endpoint list --resource-group {}

Expected Behavior
Environment Summary
Windows-10-10.0.19041-SP0
Python 3.8.9
Installer: MSI

azure-cli 2.32.0 *

Extensions:
monitor-control-service 0.3.0
ssh 1.0.1
storage-preview 0.8.0

Dependencies:
msal 1.16.0
azure-mgmt-resource 20.0.0

Additional Context

monitor

Similar issue. Any update?

It seems the service team does not deploy 2021-09-01-preview API in your region right now. Please use 0.2.0 version for a workaround. You can install that version by the following command:
az extension add --name monitor-control-service --version 0.2.0

@ZengTaoxu Please feedback this issue to service team. Thanks.


Duck Dodgers Starring Daffy Duck (U) - hangs at intro

Duck Dodgers Starring Daffy Duck (U) - 2C840E2991D6A2AF63C4EFE830240FC49D93FC9A
This game hangs at the intro.
Tested on the latest version of Windows 10.

I was able to play through the entire intro and in-game with the latest dev


Change term - ChronometricAge

Change term

Submitter: Stephen Richard

Justification:  Definition given on the term chrono:ChronometricAge "The age of a specimen or related materials that is generated from a dating assay." is not a definition unless 'age' is defined. In the abstract we have this: "chronometric ages - the processes and results of an assay or other analysis used to determine the age of a sample." If a thing is a process and a result, it must be the result of a process or event. These are perduants, temporal things. Interpreting probable intention, the statement reduces to "an age is a result used to determine an age". This is circular.
Specimens are endurants, they only have temporal position indirectly through their participation in events; only the events can be located in time.

Proponents: anyone trying to understand what you mean.

Proposed new attributes of the term:

Organized in Class: ChronometricAge

Term name: chronometric age:

Definition of the term: A temporal position assigned to an event in the history of a specimen.

Usage comments :
The age assignment is the result of some procedure that might involve analysis of the specimen as well as observed or inferred relationships to other analyzed materials.  Typically the event of interest is when the sampled object originated, but what constitutes 'origin' will depend on the kind of sample. For a fossil, the origin event might be considered the life of the organism that was fossilized, for an archeological artifact when the item was manufactured, for a sedimentary rock when the sediment was deposited, for a metamorphic rock when it was metamorphosed.  Other events in the history of a specimen might also be of interest and assigned chronometric ages.
Necessary properties:
-- the event that is assigned a temporal position
-- the temporal reference system used to assert temporal position
-- the assigned age value (instant or interval)
other important properties
-- method used to assign age
-- uncertainty

Examples:

Refines (identifier of the broader term this term refines, if applicable):

Replaces (identifier of the existing term that would be deprecated and replaced by this term, if applicable):

ABCD 2.06 (XPATH of the equivalent term in ABCD or EFG, if applicable):

During the public review process, the definition of ChronometricAge has changed from the one you referenced in your initial comment. You can find the updated definition, comments, and examples here: https://tdwg.github.io/chrono/terms/#chronometricage Please take a look and let us know if the updated term addresses your concerns or not.

Issues that results in the changes to the ChronometricAge definition, usage notes and examples can be found in https://github.com/tdwg/chrono/issues/23 and https://github.com/tdwg/chrono/issues/20.

Interesting, I was looking a what looks like exactly the page you link to above where I got that definition...
The new definition:

'The age of a specimen'  this hasn't changed and is the crux of the issue,  still doesn't define what 'age' means,
'how this age is known' is metadata about the age assignment. That should be part of the content model for how an age is represented, but ?does it help define what 'age' means....?
'whether by a dating assay, a relative association with dated material, or legacy collections information.'  Not part of a definition -- should be in the notes, as in my suggestion (although I phrase it differently).

Stephen, hi.  Thanks for the comments here.  We understand your concern about not defining age in detail. We propose the following alternate definition to address that concern: "The age (a reference to a range in the continuum of time) of a specimen and how this age is known, whether by a dating assay, a relative association with dated material, or legacy collections information." We feel that the examples of how an age might be determined are important to retain in the definition, as this was the consensus solution to previous concerns about the definition and we dearly want to avoid getting into an endless loop in which consensus cannot be reached.

I don't think what I'm saying is getting communicated, but this is not a good venue to sort it out. I'm just suggesting you need a definition for what you mean by 'age'. I don't think "An age is a reference to a range in the continuum of time" is a good definition, but if it works for your community I'm not going to argue.

Hi Stephen,
You are right, it seems we are all talking past each other. How would you
define age? We thought about going to the extreme of tying it to , but that
would definitely take it farther from real understanding in our community,
for which it wasn't necessary to elaborate on age at all, because the only
possible source of confusion would be the age of an organism in its own
lifespan, but that is clearly not the meaning based on any of the context
of the Class or its properties.
Cheers,
John
On Mon, Feb 15, 2021 at 3:38 PM Stephen Richard<EMAIL_ADDRESS>wrote:

I don't think what I'm saying is getting communicated, but this is not a
good venue to sort it out. I'm just suggesting you need a definition for
what you mean by 'age'. I don't think "An age is a reference to a range in
the continuum of time" is a good definition, but if it works for your
community I'm not going to argue.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/tdwg/chrono/issues/27#issuecomment-779392685, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADQ72YPNZGQUDFEDUIQURDS7FS4BANCNFSM4XRBDIYA
.

Sorry, I omitted something there - tying the definition to
https://www.w3.org/TR/owl-time/#time:TemporalPosition.
On Mon, Feb 15, 2021 at 3:58 PM John Wieczorek<EMAIL_ADDRESS>wrote:

Hi Stephen,
You are right, it seems we are all talking past each other. How would you
define age? We thought about going to the extreme of tying it to , but that
would definitely take it farther from real understanding in our community,
for which it wasn't necessary to elaborate on age at all, because the only
possible source of confusion would be the age of an organism in its own
lifespan, but that is clearly not the meaning based on any of the context
of the Class or its properties.
Cheers,
John
On Mon, Feb 15, 2021 at 3:38 PM Stephen Richard<EMAIL_ADDRESS>wrote:

I don't think what I'm saying is getting communicated, but this is not a
good venue to sort it out. I'm just suggesting you need a definition for
what you mean by 'age'. I don't think "An age is a reference to a range in
the continuum of time" is a good definition, but if it works for your
community I'm not going to argue.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/tdwg/chrono/issues/27#issuecomment-779392685, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADQ72YPNZGQUDFEDUIQURDS7FS4BANCNFSM4XRBDIYA
.

Definition of the term: A temporal position assigned to an event in the history of a specimen.
Usage comments : (see above ).
If the concept of a temporal position and the idea that physical objects don't have temporal positions directly are too difficult, perhaps the ontologic grounding could be in the background-- maybe 'expert notes'? or something.  If the only concern is the time interval during which an organism (individual or species?) was alive, then maybe simplify to "The time interval during which an organism was alive". This would be a subClass of a more generic chronometricAge that could be anchored to any event.

@ smrgeoinfo The Task Group Core members have considered and appreciate your perspective and comments. I think our target is actually the more generic one anchored in the Event. We offer an alternative term change proposal that distinguishes ChronometricAge from a TemporalPosition by virtue of there being available evidence, and relegate the rest of what we had in the definition to the usage notes encapsulated in the Comments attribute, which in Darwin Core are not normative and therefore have more flexibility for community-based evolution without the full standards ratification process.
Proposed new attributes of the term:

Term name (in lowerCamelCase): chrono:ChronometricAge
Definition of the term: "An approximation of a temporal position (in the sense conveyed by https://www.w3.org/TR/owl-time/#time:TemporalPosition) that is supported via evidence."
Previous definition: "The age of a specimen and how this age is known, whether by a dating assay, a relative association with dated material, or legacy collections information."
Usage comments (recommendations regarding content, etc.): "The age of a specimen and how this age is known, whether by a dating assay, a relative association with dated material, or legacy collections information."
Previous usage comments: "The ChronometricAge extension is to be used only in cases where the collection event is not contemporaneous with the time when the organism was alive in its context. Collection event information can be reported in dwc:eventDate."
The previous usage comments are better suited to the dc:description of the purpose of the extension within the Darwin Core extension's XML specification file.
Examples: "An age range associated with a specimen derived from an AMS dating assay applied to an oyster shell in the same stratum"; "An age range associated with a specimen derived from a ceramics analysis based on other materials found in the same stratum"; “A maximum age associated with a specimen derived from K-Ar dating applied to a proximal volcanic tuff found stratigraphically below the specimen”; “An age range of a specimen based on its biostratigraphic context”; “An age of a specimen based on what is reported in legacy collections data”.
Refines (identifier of the broader term this term refines, if applicable): N/A
Replaces (identifier of the existing term that would be deprecated and replaced by this term, if applicable): N/A
ABCD 2.06 (XPATH of the equivalent term in ABCD or EFG, if applicable): N/A

I think the proposed new definition is MUCH better!

So do we, and we thank you for the impetus to make it so. Do we have a
consensus then? If we do, we can reset the review clock for 30 days from
today.
On Thu, Feb 18, 2021 at 8:27 PM Stephen Richard<EMAIL_ADDRESS>wrote:

I think the proposed new definition is MUCH better!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/tdwg/chrono/issues/27#issuecomment-781702387, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADQ724WYMOG5EFJLE6RL4LS7WO4XANCNFSM4XRBDIYA
.

+1
On Thu, Feb 18, 2021, 7:18 PM John Wieczorek<EMAIL_ADDRESS>wrote:

So do we, and we thank you for the impetus to make it so. Do we have a
consensus then? If we do, we can reset the review clock for 30 days from
today.
On Thu, Feb 18, 2021 at 8:27 PM Stephen Richard<EMAIL_ADDRESS>wrote:

I think the proposed new definition is MUCH better!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/tdwg/chrono/issues/27#issuecomment-781702387, or
unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AADQ724WYMOG5EFJLE6RL4LS7WO4XANCNFSM4XRBDIYA
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/tdwg/chrono/issues/27#issuecomment-781722848, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADRZ3BTB7D4IL64NUBKTWLS7WU6HANCNFSM4XRBDIYA
.

Hi everyone -- I think it appears we reached consensus. Stephen, if that
is not the case, can you let us know?  We just want to be sure to reset the
clock on timing for further public comment with the new term in place.
Best, Rob
On Thu, Feb 18, 2021 at 7:22 PM Robert Guralnick<EMAIL_ADDRESS>wrote:

+1
On Thu, Feb 18, 2021, 7:18 PM John Wieczorek<EMAIL_ADDRESS>wrote:

So do we, and we thank you for the impetus to make it so. Do we have a
consensus then? If we do, we can reset the review clock for 30 days from
today.
On Thu, Feb 18, 2021 at 8:27 PM Stephen Richard<EMAIL_ADDRESS>
wrote:

I think the proposed new definition is MUCH better!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/tdwg/chrono/issues/27#issuecomment-781702387, or
unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AADQ724WYMOG5EFJLE6RL4LS7WO4XANCNFSM4XRBDIYA
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/tdwg/chrono/issues/27#issuecomment-781722848, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADRZ3BTB7D4IL64NUBKTWLS7WU6HANCNFSM4XRBDIYA
.

+1

Implemented in 9dfa3516d1699065eb32999426cca433d6146b54

Passed public comment.

Ratified! Closing.


Cant get drush running

Hey!
and thanks for this awesome tool! It has revolutionized my workdays!
Only thing not working is Drush integration.
I am using Tool version 2.0.8 & Netbeans 2.08 (Ubuntu 11.10)
I get an error that drush is not found, first at startup, then every time I start up Netbeans.
. Drush's name in my install is simply drush.
Catalog is st to /usr/bin, and /usr/bin/drush has chmod 777.
Also tried $HOME/bin/drush, but that didnt work either.
If I get this working, it would be supergreat!
By the way, Hollyit is down:)

Thanks for the headsup on my site!
Did you set the Drush path in Tools->Options->Php->Drupal  Location of Drush field?

Greetings, thanks for the response! Yes, I did.
Ive also played around a little with perms, running netbeans as root etc.
But it seems that netbeans cannot find it, even if its there, and its working perfectly elsewhere.
Correct me if(where) Im wrong:

The path is to the executable "drush"'s folder?
The drush executable that its looking for is not called "drush.exe", or similar?
The path should not end with a slash?
So when /usr/bin/drush works in terminal, setting "Location of Drush field" to /usr/bin should do it?

It simply says invalid drush path under the field, no matter what.
Its really weird, have googled me blind trying to figure it out.

You need to supply the actual folder Drush is in. /usr/bin wouldn't be that, but rather a link to the drush shell script located inside of the folder. If you have locate installed, you can do a 'locate drush.php' to find the folder, as drush.php is what the plugin checks for to see if you've selected the proper folder or not.

There, got it working!  Thanks for the help!


DrumKit Base on Js

This is very simple and easy project. Totally base on HTML, CSS and specially Javascript.
Drum Kit Starting Files.zip

This project is totally base on Javascript.

Tell us about that from where are you learning?


expose Github.Private

This PR depends on personal preferences about package API design, so I am aware that it may be rejected.
Concrete Motivation
I am writing an application that migrates data from GitHub to GitLab. I found that the Haskell bindings are not exposing some functionality of the GitHub that could be easily implemented if the functions of the module Github.Private would be available. This would allow me to already release the tool while waiting for the respective changes to be integrated in a new release of the github package on Hackage. Once those change are released I would make a new version of my package that doesn't depend on Github.Private any more. In case the customization that I need are too specialized to be integrated upstream in the github package, I wouldn't have to fork that package but could just extend it.
More General Notes
When writing applications I often find the need to extend or customize the APIs of existing packages.
Sometimes those extension and customization are general enough in order to submit them as PRs upstream, but it often takes some time until a new version with the changes shows up on Hackage.
Sometimes those extensions and customizations are rather specific and it wouldn't make sense to include them in the API of the package.
In both cases it helps if packages expose more low-level or internal APIs along with the high-level public APIs. By explicitly marking parts of the API internal users of those parts are aware that they can't expect the same (or any) guarantees regarding the stability as for the public API. So those parts can change at any time without warning or being reflected in the package version. Yet there are situations where maintainers of packages that consume those private APIs are willing and able to deal with this (often just as a transitional state).

I've certainly been stuck with work-arounds until APIs get updated, because I don't have access to the lower-level stuff. :+1:

:+1: This would be a great help to us. :heart:


Warning: Failed prop type: Invalid prop size of type number supplied to LiquidProgress, expected string. LiquidProgress@http://<IP_ADDRESS>:8081/index.bundle?platform=android&dev=true&minify=false&app=com.gfxpubg&modulesOnly=false&runModule=true:129255:30

how to fix this problem??

Hi @partyboyz please install 1.0.4 version. i just updated or just see #cbbe431 commit to make local changes.if u still have any issue feel free to raise a new issue.
thanks for your contribution.

thxyuu
On Sun, Aug 1, 2021 at 1:57 AM Vijay kumar Taduri @.***>
wrote:

Closed #3
https://github.com/vijaydemonz/react-native-liquid-progress-npm/issues/3
.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/vijaydemonz/react-native-liquid-progress-npm/issues/3#event-5094632355,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQM5RPV4EAVAGLJ5GHCJ6UTT2RBSPANCNFSM5BI33KYA
.


Add support for .Net Core

I'm working on a .net standard build.  Hope to have it done this week.

I'm working on a .net standard build. Hope to have it done this week.

Did you finally get around to it? :)


Doc command doesn't include version in the URL

Description:
Currently the generated docs from doc command does not include the version in the directory structure or the urls in the html files..
Steps to reproduce:
Affected Versions:
1.0.3
OS, DB, other environment details and versions:
MAC

@hemikak , do we need the version per module or per project?
For example, per project it will look like below.
target/api-docs/<x.x.x>/index.html
target/api-docs/<x.x.x>/mod1/index.html

Per module, it will look like below.
target/api-docs/index.html
target/api-docs/mod1/<x.x.x>/index.html

This way would work: target/api-docs/mod1/<x.x.x>/index.html

@hemikak  this is only required for docs generated for Ballerina projects with ballerina doc command or is it not? I mean do we have to do same for the docs packed in distribution?

This is for doc command only.

Fixed with central doc support


No greeting when luet

Don't display mOS greeting during luet operations.

Yeah, this means that it's needed something like this in luet.yaml:
finalizer_envs:
  - key: "LUET_FINALIZE"
    value: "1"

Thanks


cj

Challenge Name

Issue Description

Browser Information

Browser Name, Version:
Operating System:
Mobile, Desktop, or Tablet:

Your Code

Screenshot

Nonetheless


Command Error

Describe the bug
I execute command as follows
az webapp cors add --resource-group ToshimaCycle --name cycleman --allowed-origins 'http://localhost:3000'az webapp cors add --resource-group ToshimaCycle --name cycleman --allowed-origins 'http://localhost:3000'
Error occurs.
Related command
az webapp cors add
Errors
The command failed with an unexpected error. Here is the traceback:
No module named 'decorator'
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/fabric/connection.py", line 5, in
from invoke.vendor.six import StringIO
ModuleNotFoundError: No module named 'invoke.vendor.six'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/knack/cli.py", line 206, in invoke
cmd_result = self.invocation.execute(args)
File "/usr/lib/python3/dist-packages/azure/cli/core/commands/init.py", line 528, in execute
self.commands_loader.load_arguments(command)
File "/usr/lib/python3/dist-packages/azure/cli/core/init.py", line 299, in load_arguments
self.command_table[command].load_arguments()  # this loads the arguments via reflection
File "/usr/lib/python3/dist-packages/azure/cli/core/commands/init.py", line 291, in load_arguments
super(AzCliCommand, self).load_arguments()
File "/usr/lib/python3/dist-packages/knack/commands.py", line 97, in load_arguments
cmd_args = self.arguments_loader()
File "/usr/lib/python3/dist-packages/azure/cli/core/init.py", line 496, in default_arguments_loader
op = handler or self.get_op_handler(operation, operation_group=kwargs.get('operation_group'))
File "/usr/lib/python3/dist-packages/azure/cli/core/init.py", line 536, in get_op_handler
op = import_module(mod_to_import)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/usr/lib/python3/dist-packages/azure/cli/command_modules/appservice/custom.py", line 25, in
from fabric import Connection
File "/usr/lib/python3/dist-packages/fabric/init.py", line 3, in
from .connection import Config, Connection
File "/usr/lib/python3/dist-packages/fabric/connection.py", line 10, in
from decorator import decorator
ModuleNotFoundError: No module named 'decorator'
To open an issue, please run: 'az feedback'
Issue script & Debug output
az webapp cors add --resource-group ToshimaCycle --name cycleman --allowed-origins 'http://localhost:3000'az webapp cors add --resource-group ToshimaCycle --name cycleman --allowed-origins 'http://localhost:3000'
Expected behavior
Add CORS
Environment Summary
azure-cli                         2.0.81
core                              2.0.81
telemetry                          1.0.4
Extensions:
azure-devops                      0.17.0
Python location '/usr/bin/python3'
Extensions directory '/home/gorn/.azure/cliextensions'
Python (Linux) 3.8.10 (default, May 26 2023, 14:05:08)
[GCC 9.4.0]
Legal docs and information: aka.ms/AzureCliLegal
Additional context
No response

Thank you for opening this issue, we will look into it.

@naoyaikeda Apologies for the late reply. Thanks for reaching out to us and reporting this issue. Please install the most recent version (2.50.0) of the official Microsoft AzCLI and that should fix this issue.

@naoyaikeda If you face any further issue even after updating your AzCLI, please let me know. I would be happy to help.


SOLR-15786

https://issues.apache.org/jira/browse/SOLR-15786
Description
Integrate "films" into the list of example collections via bin/solr start -e command.
Solution
This is a babystep towards potentially shipping Solr with more examples that could demonstrate various features...   I'm thinking of a future where you fire up the example of Solr that demos some of the streaming expressions that are in the Ref Guide ;-)
Tests
Manually tested with regular and solr cloud modes.
Checklist
Please review the following and check all that apply:

[X ] I have reviewed the guidelines for How to Contribute and my code conforms to the standards described there to the best of my ability.
[ X] I have created a Jira issue and added the issue ID to my pull request title.
[ X] I have given Solr maintainers access to contribute to my PR branch. (optional but recommended)
[ X] I have developed this patch against the main branch.
[ X] I have run ./gradlew check.
[ ] I have added tests for my changes.
[ ] I have added documentation for the Reference Guide

@erikhatcher you want to review?

@janhoy I'd love to have you look at this?!


Add Kerberos support

We need a corporate-compatible way of specifying who is allowed to handle the truth.

According to a certain orange baboon, truth is whatever he believes today. Let's close.


Technical debt

My point is:
please separate your data archivage format
(Read/write engine)
With your analytics (ANN algo).
Data archivage format should be opened and use by anybody.
analytics becomes technical debt soon and unflexible.

You're absolutely right. We've been thinking about how best to refactor this (e.g., https://github.com/eto-ai/lance/issues/687). Any interest in working with us to make that happen? would love to get more of your insights on this.

Appreciate the feedback. We've done some of these. If there's anything else specific, happy to discuss in new github issues.


Bump to OPA v0.65.0

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 25.694%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
370

Relevant Lines:
1440

💛  - Coveralls


fix: bullet point list has been refactored

Unnecessary "." symbol have been removed

Thanks, but the style guide prefers lists-items to end with punctuation:
https://developers.google.com/style/lists#numbered-lettered-bulleted-lists

Thank you for the explanation.
On Tue, 9 Aug 2022 at 16:38, Mark Daoust @.***> wrote:

Closed #56516 https://github.com/tensorflow/tensorflow/pull/56516.
—
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/pull/56516#event-7156664954,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABQWQ6SZVG63G5HP4GQ6KYDVYJ3N7ANCNFSM5ZLBHA7A
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Kind regards,
Nikita Koselev


project pod error?!

Error msg:
[!] Error installing ZHDropDownMenu
[!] /usr/bin/git clone https://github.com/zhubch/ZHDropDownMenu.git /var/folders/7h/f_hjfnhx0dsfldk9nq0yzdj40000gn/T/d20171228-83846-ojmbol --template= --single-branch --depth 1 --branch 1.0.0
Cloning into '/var/folders/7h/f_hjfnhx0dsfldk9nq0yzdj40000gn/T/d20171228-83846-ojmbol'...
warning: Could not find remote branch 1.0.0 to clone.
fatal: Remote branch 1.0.0 not found in upstream origin

Sorry for that, I renamed the branch name, it works now.


0.9.8

@akshayka marimo is not dependent on marimo-base though right? They are both independent? Just checking from a nix packaging perspective


Coverage XML shows 0% coverage when created from a different program

Describe the bug
I am creating my .coverage files in an Azure Pipelines job on one machine, I then save the files and publish them as an artifact. On a different job I download all the .coverage files (they are formatted like .coverage-{library tested} to not overwrite each other) and attempt a coverage combine and finally a coverage xml before publishing the code coverage. While doing this I do a string find and replace to make sure the paths to the files are still valid, but the ending coverage.xml file shows 0% coverage, but manual inspection of the individual .coverage files shows that there are lines that are hit by the tests.
To Reproduce
How can we reproduce the problem?  Please be specific. Don't just link to a failing CI job. Answer the questions below:

What version of Python are you using?
Using python 3.7.9
What version of coverage.py are you using? The output of coverage debug sys is helpful.
Using coverage==4.5.4
What versions of what packages do you have installed? The output of pip freeze is helpful.
tox==3.15.0
tox-monorepo==0.1.2
pytest-cov==2.8.1
What code are you running?  Give us a specific commit of a specific repo that we can check out.
What commands did you run? (combined answer with above question

pytest --junitxml=/mnt/vss/_work/1/s/sdk/appconfiguration/azure-appconfiguration/test-junit-whl.xml --verbose --durations=10 --ignore=azure --ignore=.tox --ignore=build --ignore=.eggs --cov=azure.appconfiguration --cov-append --ignore azure_appconfiguration.egg-info /mnt/vss/_work/1/s/sdk/appconfiguration/azure-appconfiguration

From the root of the Azure SDK repository
Expected behavior
A clear and concise description of what you expected to happen.
I expect a coverage report reflecting the same data as the .coverage file in an xml format.
Additional context
Add any other context about the problem here.
We are running coverage from the pytest-cov plugin to pytest, and we are running pytest within tox. The pytest-cov does not allow for the --parallel option according to these docs

You mentioned string search and replace to fix the file paths.  Did you try using the [paths] configuration setting so that coverage combine can adjust the paths itself? Maybe I misunderstood what that step was for.

You mentioned string search and replace to fix the file paths.  Did you try using the [paths] configuration setting so that coverage combine can adjust the paths itself? Maybe I misunderstood what that step was for.

@nedbat  I believe this has solved my issue. Thanks for your prompt response!

@nedbat  I believe this has solved my issue. Thanks for your prompt response!


Middleware does not set max-age/expires

Cookies can only have session as their expiry time as a result

Since this repo isn't maintained anymore, I've fixed it on a fork https://github.com/canidam/echo-scs-session/


Some enhancements

Everything else looks good. My creating and renewing certificates worked great. A little faster than before with three domains.


Error inserting csv data

Describe the bug
I encounter a segfault while inserting data from csv files.
How to reproduce

ClickHouse <IP_ADDRESS> and above
max_partition_per_insert_block: 10000
I'm using infi.clickhouse_orm to build my table:

class CredentialPlus(Model):
    """
    Class for modelling `credential` and `leak` at the same time.
    """
    user = StringField()
    domain = StringField()
    password = StringField()
    has_been_cleaned = UInt8Field()
    # leak part
    leak_name = StringField()
    leak_desc = StringField()
    breach_date = DateField()
    publish_date = DateField()

    engine = MergeTree(
        partition_key=('domain',),
        order_by=['domain', 'breach_date', 'user'],
        index_granularity=8192
    )

example: user, domain, password, 0, name, desc, date1, date2
db.raw("INSERT INTO credentialplus format csv %s" % (csv_content))

Expected behavior
Inserting the data into the database.
Error message and/or stacktrace
 (version <IP_ADDRESS> (official build))
2019.06.03 11:53:04.256403 [ 33 ] {} <Error> BaseDaemon: ########################################
2019.06.03 11:53:04.256453 [ 33 ] {} <Error> BaseDaemon: (version <IP_ADDRESS> (official build)) (from thread 31) Received signal Segmentation fault (11).
2019.06.03 11:53:04.256471 [ 33 ] {} <Error> BaseDaemon: Address: NULL pointer.
2019.06.03 11:53:04.256479 [ 33 ] {} <Error> BaseDaemon: Access: read.
2019.06.03 11:53:04.256487 [ 33 ] {} <Error> BaseDaemon: Unknown si_code.
2019.06.03 11:53:04.326511 [ 33 ] {} <Error> BaseDaemon: 0. /usr/bin/clickhouse-server(DB::ColumnString::insertFrom(DB::IColumn const&, unsigned long)+0x1c) [0x6a196bc]
2019.06.03 11:53:04.326603 [ 33 ] {} <Error> BaseDaemon: 1. /usr/bin/clickhouse-server(DB::MergeTreeDataPart::MinMaxIndex::update(DB::Block const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)+0x10e) [0x6b7708e]
2019.06.03 11:53:04.326626 [ 33 ] {} <Error> BaseDaemon: 2. /usr/bin/clickhouse-server(DB::MergeTreeDataWriter::writeTempPart(DB::BlockWithPartition&)+0xbe) [0x6b9b11e]
2019.06.03 11:53:04.326636 [ 33 ] {} <Error> BaseDaemon: 3. /usr/bin/clickhouse-server(DB::MergeTreeBlockOutputStream::write(DB::Block const&)+0xf1) [0x6b47c71]
2019.06.03 11:53:04.326647 [ 33 ] {} <Error> BaseDaemon: 4. /usr/bin/clickhouse-server(DB::PushingToViewsBlockOutputStream::write(DB::Block const&)+0x43) [0x6d4ffb3]
2019.06.03 11:53:04.326657 [ 33 ] {} <Error> BaseDaemon: 5. /usr/bin/clickhouse-server(DB::SquashingBlockOutputStream::finalize()+0x13e) [0x6d591be]
2019.06.03 11:53:04.326667 [ 33 ] {} <Error> BaseDaemon: 6. /usr/bin/clickhouse-server(DB::SquashingBlockOutputStream::writeSuffix()+0x11) [0x6d593e1]
2019.06.03 11:53:04.326680 [ 33 ] {} <Error> BaseDaemon: 7. /usr/bin/clickhouse-server(DB::copyData(DB::IBlockInputStream&, DB::IBlockOutputStream&, std::atomic<bool>*)+0x6af) [0x679812f]
2019.06.03 11:53:04.326699 [ 33 ] {} <Error> BaseDaemon: 8. /usr/bin/clickhouse-server(DB::executeQuery(DB::ReadBuffer&, DB::WriteBuffer&, bool, DB::Context&, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>)+0x200) [0x69c6cc0]
2019.06.03 11:53:04.326716 [ 33 ] {} <Error> BaseDaemon: 9. /usr/bin/clickhouse-server(DB::HTTPHandler::processQuery(Poco::Net::HTTPServerRequest&, HTMLForm&, Poco::Net::HTTPServerResponse&, DB::HTTPHandler::Output&)+0x3636) [0x3799576]
2019.06.03 11:53:04.326727 [ 33 ] {} <Error> BaseDaemon: 10. /usr/bin/clickhouse-server(DB::HTTPHandler::handleRequest(Poco::Net::HTTPServerRequest&, Poco::Net::HTTPServerResponse&)+0x3f1) [0x379b541]
2019.06.03 11:53:04.326744 [ 33 ] {} <Error> BaseDaemon: 11. /usr/bin/clickhouse-server(Poco::Net::HTTPServerConnection::run()+0x32c) [0x7506d6c]
2019.06.03 11:53:04.326753 [ 33 ] {} <Error> BaseDaemon: 12. /usr/bin/clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x7500d6f]
2019.06.03 11:53:04.326763 [ 33 ] {} <Error> BaseDaemon: 13. /usr/bin/clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0xe9) [0x75014a9]
2019.06.03 11:53:04.326773 [ 33 ] {} <Error> BaseDaemon: 14. /usr/bin/clickhouse-server(Poco::PooledThread::run()+0x81) [0x75b45e1]
2019.06.03 11:53:04.326783 [ 33 ] {} <Error> BaseDaemon: 15. /usr/bin/clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0x38) [0x75b07a8]
2019.06.03 11:53:04.326792 [ 33 ] {} <Error> BaseDaemon: 16. /usr/bin/clickhouse-server() [0xb27522f]
2019.06.03 11:53:04.326800 [ 33 ] {} <Error> BaseDaemon: 17. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76db) [0x7fee902ed6db]

Additional context
I can insert a 9MB csv file and below. My next one to be inserted is a 22MB and it crashes. Same for bigger files. My max size is 64MB, and I split bigger files to parts of 64MB. My biggest files are >15GB.

This is after #5379: I had reinstall, downgraded and tested multiple inserts.

Can you attach .csv file to reproduce error?

Here's a csv file which leads to a segfault. I've also joined my users.xml and config.xml files.
files.zip

(
    `user` String,
    `domain` String,
    `password` String,
    `has_been_cleaned` UInt8,
    `leak_name` String,
    `leak_desc` String,
    `breach_date` Date,
    `publish_date` Date
)
ENGINE = MergeTree()
PARTITION BY domain
ORDER BY (domain, breach_date, user)

And from console:
cat example.csv | clickhouse-client --query "INSERT INTO CredentialPlus FORMAT CSV"

Everything is OK, no segfault. I'll try with address sanitizer.

<IP_ADDRESS>
cat example.csv |clickhouse-client --query "INSERT INTO CredentialPlus FORMAT CSV"
OK
=> cat example.csv curl 'http://localhost:8123/?query=INSERT INTO CredentialPlus FORMAT CSV' --data-binary @-
=> cat example.csv curl 'http://localhost:8123/?query=INSERT INTO CredentialPlus FORMAT CSV' --data-binary @-
=> cat example.csv curl 'http://localhost:8123/?query=INSERT INTO CredentialPlus FORMAT CSV' --data-binary @-
=> cat example.csv curl 'http://localhost:8123/?query=INSERT INTO CredentialPlus FORMAT CSV' --data-binary @-
=> cat example.csv curl 'http://localhost:8123/?query=INSERT INTO CredentialPlus FORMAT CSV' --data-binary @-
=> cat example.csv curl 'http://localhost:8123/?query=INSERT INTO CredentialPlus FORMAT CSV' --data-binary @-
=> cat example.csv curl 'http://localhost:8123/?query=INSERT INTO CredentialPlus FORMAT CSV' --data-binary @-
OK

Something went through my mind this morning: as I was inserting a lot of files at the same time, maybe it crashed because of unexpected behavior during multi-insertions and not because of the file itself (because I noticed even after inserting, the engine merges and removes parts, and I remember I experienced a lot of troubles during this phase). So I am going to investigate further and come back with a scenario which leads to a crash !

Well, I did not manage to recreate such a situation after changing my partition key (from domain, around 1m5 partitions to date, 1 per day).
It is good I have no more segfault but I probably should not crash when having a lot of partitions.
Feel free to close this if you won't investigate further, I no longer need help with CH ! ;)

What is 1m5 stands for?

1 million 500 thousands partitions* with domain as partition key


Can't install coda in WIndows 10 wsl ->Ubuntu

coda_crash_report_2019-11-18_03-18-21.027571.tar.gz

{"timestamp":"2019-11-18 02:38:41.271055Z","level":"Info","source":{"module":"Coda","location":"File \"app/cli/src/coda.ml\", line 252, characters 49-56"},"message":
"Coda daemon is booting up; built with commit $commit on branch $branch","metadata":{"branch":"master","commit":"d37216ce6a62a2556c2cf731f020c9196151158b","pid":7311
}}
{"timestamp":"2019-11-18 02:38:41.272402Z","level":"Info","source":{"module":"Coda","location":"File \"app/cli/src/coda.ml\", line 259, characters 51-58"},"message":
"Daemon will expire at $exp","metadata":{"exp":"2019-12-10 14:00:00-07:00","pid":7311}}
{"timestamp":"2019-11-18 02:38:41.272990Z","level":"Info","source":{"module":"Coda","location":"File \"app/cli/src/coda.ml\", line 274, characters 49-56"},"message":
"Booting may take several seconds, please wait","metadata":{"pid":7311}}
{"timestamp":"2019-11-18 02:38:41.279645Z","level":"Trace","source":{"module":"Coda","location":"File \"app/cli/src/coda.ml\", line 343, characters 63-70"},"message"
:"Error reading coda.version: $error","metadata":{"error":"(monitor.ml.Error(Unix.Unix_error\"No such file or directory\"open\"((filename /root/.coda-config/coda.ver
sion) (mode (O_RDONLY O_CLOEXEC)) (perm 0o0))\")(\"Raised at file \\\"src/result.ml\\\", line 158, characters 17-26

And the root cause appears to be:
:"Error reading coda.version: $error","metadata":
{"error":"(monitor.ml.Error(Unix.Unix_error\"No such file or directory\"open\"((
filename /root/.coda-config/coda.version)
(mode (O_RDONLY O_CLOEXEC)) (perm 0o0))\")(\"Raised at file \\\"src/result.ml\\\", line 158, characters 17-26

How repair this?

Today i install Ubuntu. more 4 hours coda try to connect with peers. After i'm install wallet and try again connect. And to got error
coda_crash_report_2019-11-18_22-23-24.428950.tar.gz

coda-wallet.log

install Ubuntu, all ok.


Using a RsFork results in calling the take twice

I am trying to implement a RsFork.
Currently it looks like this:
return new RsFork(
    req,
    new FkMethods("GET", new TkGET()),
    new FkMethods("POST", new TkPOST())
)

After provoking an exception and debugging the called take I can see that it is called twice.
Furthermore if this take is using a RqPrint then the second call to printBody() freezes the whole application as it is using the same input stream as on the first call.
When I do the forking like this:
String method = new RqMethod.Base(req).method();
switch (method) {
    case "GET": return new TkGETServices(name, environment, this.source).act(req);
    case "POST": return new TkPOSTServices(name, environment, this.source).act(req);
    default: throw new UnsupportedOperationException();
}

There are no problems.

@GilraenBurland can you show a unit test that reproduces the problem?

@yegor256 take a look at this: https://github.com/GilraenBurland/roster/blob/master/server/src/main/java/de/sl/roster/server/services/TkServices.java
Uncommenting the lines (and commenting out the return beforehand) and
after you start the local server via the Entry class and then post a request like this:
curl -XPOST http://localhost:8080/example-service/dev --data 'test'
the TkPOSTServices is called twice.
And if I remove the assertServiceDoesNotExist();call then it freezes after calling String address = new RqPrint(req).printBody(); the second time

@GilraenBurland I just added a test in f141050 and it doesn't fail. I suspect that you need to use RqGreedy, because you're reading your requests a few times and of course only the first attempt succeeds... I need more details about your case to help more. Can you create a unit test that will fail?

@yegor256 It seems I can not recreate the problem in a unit test.
I debugged some more and it seems that it has something to do with my fallback chain.
If I remove the whole TkFallback the Take is only called once.
So my first guess was my usage of a RsFork in the error handling, but after removing that it still is called twice.
I'm at a loss for the moment :disappointed:

Hi @yegor256 I tested some more and created a unit test which tested my TkRoot.
Using the unit test showed me that the TkPOSTServices is called only once.
Testing again against the whole application resulted in two calls again.
Do you think it has something to do with my Entry or App classes?
https://github.com/GilraenBurland/roster/blob/master/server/src/main/java/de/sl/roster/server/Entry.java
https://github.com/GilraenBurland/roster/blob/master/server/src/main/java/de/sl/roster/server/App.java

@GilraenBurland they both look correct to me. There is something wrong in your "takes". Try to create a unit test for TkRoot and reproduce the problem. Always reproduce in a test, don't debug.

HI @yegor256
After refactoring my application quite a bit I do not have this problem anymore. I will close this ticket as it could not be reproduced even by myself.