MIoU not properly reported at ensembles

Describe the bug
MIoU is NaN in ensembles
To Reproduce
alpha-ade20k-SIGLIP-P16-224-7: accelerate launch --mixed_precision=bf16 gate/run.py exp_name=alpha-ade20k-SIGLIP-P16-224-7 encoder=timm encoder.image_size=224 encoder.pretrained=True encoder.timm_model_name=vit_base_patch16_siglip_224 encoder.clip_model_name=openai/clip-vit-base-patch16  adapter=segmentation-adapter adapter.loss_type_id=default  dataset=ade20k optimizer.lr=6e-06 optimizer.weight_decay=0.01 trainer=image_semantic_segmentation evaluator=image_semantic_segmentation num_workers=32 seed=7 train_batch_size=8 eval_batch_size=8 train_iters=10000 learner.evaluate_every_n_steps=500

Expected behavior
MIoU should be properly computed
Screenshots
/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/transformers/models/bart/modeling_bart.py:755: FutureWarning: The class `PretrainedBartModel` has been depreciated, please use `BartPreTrainedModel` instead.
  warnings.warn(
wandb: Currently logged in as: evolvingfungus (machinelearningbrewery). Use `wandb login --relogin` to force relogin
wandb: Tracking run with wandb version 0.16.0
wandb: Run data is saved locally in /disk/scratch_fast1/aantoni2/GATE/wandb/run-20231201_235449-8a10k19m
wandb: Run `wandb offline` to turn off syncing.
wandb: Syncing run clean-puddle-201
wandb: ⭐ View project at https://wandb.ai/machinelearningbrewery/gate-dev-0-9-1
wandb: 🚀 View run at https://wandb.ai/machinelearningbrewery/gate-dev-0-9-1/runs/8a10k19m
/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/transformers/optimization.py:411: FutureWarning: This implementation of AdamW is deprecated and will be removed in a future version. Use the PyTorch implementation torch.optim.AdamW instead, or set `no_deprecation_warning=True` to disable this warning
  warnings.warn(

wandb:
wandb: Run history:
wandb:                                         global_step ▁▁▁▁▂▂▂▂▂▃▃▃▃▃▃▄▄▄▄▄▅▅▅▅▅▅▆▆▆▆▆▇▇▇▇▇▇███
wandb:                                model/num_parameters ▁
wandb:    testing/ensemble_1/background_ce_loss-epoch-mean ▁▁
wandb:     testing/ensemble_1/background_ce_loss-epoch-std ▁▁
wandb:  testing/ensemble_1/background_dice_loss-epoch-mean ▁▁
wandb:   testing/ensemble_1/background_dice_loss-epoch-std ▁▁
wandb: testing/ensemble_1/background_focal_loss-epoch-mean ▁▁
wandb:  testing/ensemble_1/background_focal_loss-epoch-std ▁▁
wandb:       testing/ensemble_1/background_loss-epoch-mean ▁▁
wandb:        testing/ensemble_1/background_loss-epoch-std ▁▁
wandb:               testing/ensemble_1/ce_loss-epoch-mean ▁▁
wandb:                testing/ensemble_1/ce_loss-epoch-std ▁▁
wandb:             testing/ensemble_1/dice_loss-epoch-mean ▁▁
wandb:              testing/ensemble_1/dice_loss-epoch-std ▁▁
wandb:            testing/ensemble_1/focal_loss-epoch-mean ▁▁
wandb:             testing/ensemble_1/focal_loss-epoch-std ▁▁
wandb:                  testing/ensemble_1/loss-epoch-mean ▁▁
wandb:                   testing/ensemble_1/loss-epoch-std ▁▁
wandb:                 testing/ensemble_1/overall_accuracy ▁
wandb:    testing/ensemble_3/background_ce_loss-epoch-mean ▁▁
wandb:     testing/ensemble_3/background_ce_loss-epoch-std ▁▁
wandb:  testing/ensemble_3/background_dice_loss-epoch-mean ▁▁
wandb:   testing/ensemble_3/background_dice_loss-epoch-std ▁▁
wandb: testing/ensemble_3/background_focal_loss-epoch-mean ▁▁
wandb:  testing/ensemble_3/background_focal_loss-epoch-std ▁▁
wandb:       testing/ensemble_3/background_loss-epoch-mean ▁▁
wandb:        testing/ensemble_3/background_loss-epoch-std ▁▁
wandb:               testing/ensemble_3/ce_loss-epoch-mean ▁▁
wandb:                testing/ensemble_3/ce_loss-epoch-std ▁▁
wandb:             testing/ensemble_3/dice_loss-epoch-mean ▁▁
wandb:              testing/ensemble_3/dice_loss-epoch-std ▁▁
wandb:            testing/ensemble_3/focal_loss-epoch-mean ▁▁
wandb:             testing/ensemble_3/focal_loss-epoch-std ▁▁
wandb:                  testing/ensemble_3/loss-epoch-mean ▁▁
wandb:                   testing/ensemble_3/loss-epoch-std ▁▁
wandb:                 testing/ensemble_3/overall_accuracy ▁
wandb:                         training/background_ce_loss ▅█▂▆▂▄▂▄▁▂▁▂▂▄▅▃▄▃▂▄▅▄▇█▃▂▂▆▄▃▅▆▁▃▆▄▂▄▃▆
wandb:                       training/background_dice_loss ▄▇▂▃▄▂▂▂▄▃▂▃▄▆▂▃▃▄▂▂▃▃▂▄▂▃▂█▂▂▃▅▄▂▃▄▃▄▂▁
wandb:                      training/background_focal_loss ▅█▂▆▂▄▃▄▁▁▂▃▃▄▅▂▄▃▂▄▅▄▇█▄▁▁▅▄▄▅▆▁▃▆▄▃▄▃▆
wandb:                            training/background_loss ▅█▂▆▂▄▃▄▁▂▁▂▂▄▅▃▄▃▂▄▅▄▇█▃▂▂▆▄▃▅▆▁▃▆▄▃▄▃▆
wandb:                                 training/bprop_time █▁▁▁▁▁▁▁█▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂▁▁
wandb:                                    training/ce_loss ▆▅▂▆▃▅▄▃▂▂▂▃▁▄▅▂▃▂▅▂▃▄▅▆▄▁▁▅▂█▂▅▆▅▄▃▅▄▁▆
wandb:                                  training/dice_loss ▄▇▂▃▄▂▂▂▄▃▂▃▄▆▂▃▃▅▂▂▃▃▂▄▂▃▂█▂▃▃▅▄▂▃▄▃▄▂▁
wandb:                                 training/focal_loss ▅▅▂▆▃▅▄▃▂▂▂▄▂▃▄▂▃▂▄▂▃▄▄▆▄▁▁▄▂█▂▄▅▅▃▂▅▄▁▅
wandb:                                 training/fprop_time █▂▂▁▂▂▂▂▆▁▂▂▂▂▂▂▂▂▂▂▂▁▂▂▂▁▂▂▂▂▂▂▂▂▁▂▂▂▂▂
wandb:                                       training/loss ▆▅▂▇▃▅▄▃▂▂▂▃▁▄▅▂▃▂▅▂▃▄▅▇▄▁▁▅▂█▂▅▅▅▄▃▅▄▁▆
wandb:                                         training/lr ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
wandb:            validation/background_ce_loss-epoch-mean ▁▁
wandb:             validation/background_ce_loss-epoch-std ▁▁
wandb:          validation/background_dice_loss-epoch-mean ▁▁
wandb:           validation/background_dice_loss-epoch-std ▁▁
wandb:         validation/background_focal_loss-epoch-mean ▁▁
wandb:          validation/background_focal_loss-epoch-std ▁▁
wandb:               validation/background_loss-epoch-mean ▁▁
wandb:                validation/background_loss-epoch-std ▁▁
wandb:                       validation/ce_loss-epoch-mean ▁▁
wandb:                        validation/ce_loss-epoch-std ▁▁
wandb:                     validation/dice_loss-epoch-mean ▁▁
wandb:                      validation/dice_loss-epoch-std ▁▁
wandb:                    validation/focal_loss-epoch-mean ▁▁
wandb:                     validation/focal_loss-epoch-std ▁▁
wandb:                          validation/loss-epoch-mean ▁▁
wandb:                           validation/loss-epoch-std ▁▁
wandb:                                     validation/mIoU ▁
wandb:                            validation/mean_accuracy ▁
wandb:                         validation/overall_accuracy ▁
wandb:
wandb: Run summary:
wandb:                                         global_step 10000
wandb:                                model/num_parameters 349639319
wandb:    testing/ensemble_1/background_ce_loss-epoch-mean 1.37157
wandb:     testing/ensemble_1/background_ce_loss-epoch-std 0.18978
wandb:  testing/ensemble_1/background_dice_loss-epoch-mean 0.69328
wandb:   testing/ensemble_1/background_dice_loss-epoch-std 0.01147
wandb: testing/ensemble_1/background_focal_loss-epoch-mean 0.24148
wandb:  testing/ensemble_1/background_focal_loss-epoch-std 0.04643
wandb:       testing/ensemble_1/background_loss-epoch-mean 1.61305
wandb:        testing/ensemble_1/background_loss-epoch-std 0.23586
wandb:               testing/ensemble_1/ce_loss-epoch-mean 1.56341
wandb:                testing/ensemble_1/ce_loss-epoch-std 0.36976
wandb:             testing/ensemble_1/dice_loss-epoch-mean 0.69663
wandb:              testing/ensemble_1/dice_loss-epoch-std 0.01147
wandb:            testing/ensemble_1/focal_loss-epoch-mean 0.30386
wandb:             testing/ensemble_1/focal_loss-epoch-std 0.09362
wandb:                  testing/ensemble_1/loss-epoch-mean 2.02857
wandb:                   testing/ensemble_1/loss-epoch-std 0.4718
wandb:                             testing/ensemble_1/mIoU nan
wandb:                    testing/ensemble_1/mean_accuracy nan
wandb:                 testing/ensemble_1/overall_accuracy 0.0
wandb:    testing/ensemble_3/background_ce_loss-epoch-mean 1.39623
wandb:     testing/ensemble_3/background_ce_loss-epoch-std 0.19077
wandb:  testing/ensemble_3/background_dice_loss-epoch-mean 0.69405
wandb:   testing/ensemble_3/background_dice_loss-epoch-std 0.01155
wandb: testing/ensemble_3/background_focal_loss-epoch-mean 0.24716
wandb:  testing/ensemble_3/background_focal_loss-epoch-std 0.04706
wandb:       testing/ensemble_3/background_loss-epoch-mean 1.64339
wandb:        testing/ensemble_3/background_loss-epoch-std 0.2375
wandb:               testing/ensemble_3/ce_loss-epoch-mean 1.55858
wandb:                testing/ensemble_3/ce_loss-epoch-std 0.36999
wandb:             testing/ensemble_3/dice_loss-epoch-mean 0.69733
wandb:              testing/ensemble_3/dice_loss-epoch-std 0.01156
wandb:            testing/ensemble_3/focal_loss-epoch-mean 0.30295
wandb:             testing/ensemble_3/focal_loss-epoch-std 0.09361
wandb:                  testing/ensemble_3/loss-epoch-mean 2.02587
wandb:                   testing/ensemble_3/loss-epoch-std 0.47207
wandb:                             testing/ensemble_3/mIoU nan
wandb:                    testing/ensemble_3/mean_accuracy nan
wandb:                 testing/ensemble_3/overall_accuracy 0.0
wandb:                         training/background_ce_loss 1.02779
wandb:                       training/background_dice_loss 0.66912
wandb:                      training/background_focal_loss 0.17874
wandb:                            training/background_loss 1.20653
wandb:                                 training/bprop_time 0.03071
wandb:                                    training/ce_loss 1.43193
wandb:                                  training/dice_loss 0.67313
wandb:                                 training/focal_loss 0.25909
wandb:                                 training/fprop_time 0.11533
wandb:                                       training/loss 1.81167
wandb:                                         training/lr 0.0
wandb:            validation/background_ce_loss-epoch-mean 1.36121
wandb:             validation/background_ce_loss-epoch-std 0.19231
wandb:          validation/background_dice_loss-epoch-mean 0.69493
wandb:           validation/background_dice_loss-epoch-std 0.0138
wandb:         validation/background_focal_loss-epoch-mean 0.23839
wandb:          validation/background_focal_loss-epoch-std 0.04665
wandb:               validation/background_loss-epoch-mean 1.5996
wandb:                validation/background_loss-epoch-std 0.23863
wandb:                       validation/ce_loss-epoch-mean 1.53148
wandb:                        validation/ce_loss-epoch-std 0.37269
wandb:                     validation/dice_loss-epoch-mean 0.69829
wandb:                      validation/dice_loss-epoch-std 0.01381
wandb:                    validation/focal_loss-epoch-mean 0.29462
wandb:                     validation/focal_loss-epoch-std 0.09379
wandb:                          validation/loss-epoch-mean 1.98606
wandb:                           validation/loss-epoch-std 0.47918
wandb:                                     validation/mIoU 27.62092
wandb:                            validation/mean_accuracy 36.35272
wandb:                         validation/overall_accuracy 63.85703
wandb:
wandb: 🚀 View run clean-puddle-201 at: https://wandb.ai/machinelearningbrewery/gate-dev-0-9-1/runs/8a10k19m
wandb: ⚡ View job at https://wandb.ai/machinelearningbrewery/gate-dev-0-9-1/jobs/QXJ0aWZhY3RDb2xsZWN0aW9uOjEyMDA3Mjg1Ng==/version_details/v10
wandb: Synced 7 W&B file(s), 187 media file(s), 3 artifact file(s) and 1 other file(s)
wandb: Find logs at: ./wandb/run-20231201_235449-8a10k19m/logs
Exception in thread ChkStopThr:
Traceback (most recent call last):
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
Exception in thread IntMsgThr:
    self.run()
Traceback (most recent call last):
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/threading.py", line 953, in run
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
    self._target(*self._args, **self._kwargs)
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/threading.py", line 953, in run
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/wandb_run.py", line 286, in check_stop_status
    self._target(*self._args, **self._kwargs)
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/wandb_run.py", line 300, in check_internal_messages
    self._loop_check_status(
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/wandb_run.py", line 224, in _loop_check_status
    self._loop_check_status(
    local_handle = request()
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/wandb_run.py", line 224, in _loop_check_status
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/interface/interface.py", line 750, in deliver_stop_status
    local_handle = request()
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/interface/interface.py", line 766, in deliver_internal_messages
    return self._deliver_stop_status(status)
    return self._deliver_internal_messages(internal_message)
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/interface/interface_shared.py", line 468, in _deliver_stop_status
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/interface/interface_shared.py", line 490, in _deliver_internal_messages
    return self._deliver_record(record)
    return self._deliver_record(record)
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/interface/interface_shared.py", line 437, in _deliver_record
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/interface/interface_shared.py", line 437, in _deliver_record
    handle = mailbox._deliver_record(record, interface=self)
    handle = mailbox._deliver_record(record, interface=self)
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/lib/mailbox.py", line 455, in _deliver_record
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/lib/mailbox.py", line 455, in _deliver_record
    interface._publish(record)
    interface._publish(record)
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/interface/interface_sock.py", line 51, in _publish
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/interface/interface_sock.py", line 51, in _publish
    self._sock_client.send_record_publish(record)
    self._sock_client.send_record_publish(record)
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/lib/sock_client.py", line 221, in send_record_publish
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/lib/sock_client.py", line 221, in send_record_publish
    self.send_server_request(server_req)
    self.send_server_request(server_req)
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/lib/sock_client.py", line 155, in send_server_request
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/lib/sock_client.py", line 155, in send_server_request
    self._send_message(msg)
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/lib/sock_client.py", line 152, in _send_message
    self._send_message(msg)
    self._sendall_with_error_handle(header + data)
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/lib/sock_client.py", line 152, in _send_message
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/lib/sock_client.py", line 130, in _sendall_with_error_handle
    self._sendall_with_error_handle(header + data)
  File "/disk/scratch_fast1/aantoni2/mambaforge/envs/gate/lib/python3.10/site-packages/wandb/sdk/lib/sock_client.py", line 130, in _sendall_with_error_handle
    sent = self._sock.send(data)
BrokenPipeError: [Errno 32] Broken pipe
    sent = self._sock.send(data)
BrokenPipeError: [Errno 32] Broken pipe

Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Fixed in https://github.com/AntreasAntoniou/GATE/commit/6ab7ec4c4ed59d2c4ea575e1a0a532854e489f28


Order item discounts

Based on https://github.com/Setono/sylius-order-edit-plugin/pull/5
This PR allows to add discount on order item level as well
Demo:
https://github.com/Setono/sylius-order-edit-plugin/assets/6212718/41efa711-7e7c-42c4-835f-df4c4e565d46

This is so nice :D


fix issue

Coverage increased (+0.03%) to 53.032% when pulling dac6aad05fb4eea80391156a7f51eca194c02aaf on ascrutae:feature/3.0 into b8051d3ec315a2bdaaf07ebef497e9cb573e919c on wu-sheng:feature/3.0.

Coverage increased (+0.03%) to 53.037% when pulling f90923e88634debc743b3d78628ed6b8f6f312e2 on ascrutae:feature/3.0 into b8051d3ec315a2bdaaf07ebef497e9cb573e919c on wu-sheng:feature/3.0.


Support choose from images uploaded before

Currently there is no path to choose the images that uploaded before.(tinymce_assets#index).
Is there any plan on supporting it?

Hi
I don’t really use the library any more, so from my side, it’s not something that’s going to happen any time soon
But if anyone wants to create a pull request, it’s likely it would get merged. It sounds like a useful feature


Cannot Start Bot

Describe the bug
Cannot start bot. It fails with the following message:
{"stack":"Error: spawn C:\\Windows\\system32\\cmd.exe ENOENT\n at Process.ChildProcess._handle.onexit (internal/child_process.js:264:19)\n at onErrorNT (internal/child_process.js:456:16)\n at processTicksAndRejections (internal/process/task_queues.js:80:21)","message":"spawn C:\\Windows\\system32\\cmd.exe ENOENT","errno":"ENOENT","code":"ENOENT","syscall":"spawn C:\\Windows\\system32\\cmd.exe","path":"C:\\Windows\\system32\\cmd.exe","spawnargs":["/d","/s","/c","\"dotnet user-secrets init --project azurewebapp\""],"cmd":"dotnet user-secrets init --project azurewebapp","stdout":"","stderr":""}
Version

Browser

[X] Electron distribution
[ ] Chrome
[ ] Safari
[ ] Firefox
[ ] Edge

OS

[ ] macOS
[X] Windows
[ ] Ubuntu

To Reproduce
Steps to reproduce the behavior:
1.Click on Start Bot Button
2. Wait for it to fail
Expected behavior
The bot starts
Screenshots

@anusharavindrar can you please take a look at this?

@Rekeyea, thanks for reporting this error. To understand further,

Was the bot starting up or running as expected in the previous version(1.3.1 or earlier)?
Are you getting this error for a specific bot or all the bots in this nightly build version of the composer do not start up?

Also, it does look like you might have to set the PATH environment variable to C:\Windows\System32. Can you check the current value of PATH in the environment variable?

@Rekeyea, thanks for reporting this error. To understand further,

Was the bot starting up and running as expected in the previous version(1.3.1 or earlier)?
Are you getting this error for a specific bot or all the bots in this nightly build version of the composer do not start up?

Also, it does look like you might have to set the PATH environment variable to C:\Windows\System32. Can you check the current value of PATH in the environment variable?

Yes, it was working before. The Composer updated and it stopped working.
The Path env variable is correctly set:

Adding more details, it happens when using a custom runtime. When going back to the default runtime this does not happen.

I used the "Get a new copy of the runtime code" functionality. Had to rerun the schemas, but it apparently is working again.
What I saw is that before the update, my Runtime code location was runtime but when I got the new copy it was automatically set for ../runtime. So I guess that was the issue.
I think this can be closed. Thanks for all your help.


Fix/8924 gs plugin error on empty row data6

Description

When executing a Google sheets Bulk insert rows query, an error is returned if the data array is empty.

Fixes #8924
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

Tested manually with different inputs of empty data
JUnit Test implemented

Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes

/ok-to-test sha=a99d90f

/ok-to-test sha=263f7f4


Code review

I reviewed the code, I think the following points could make the code a bit more intuitive. I might try to implement some of these latter. But I am writing here just so we don't forget...

[ ] Does af_prediction_formulation.py run with any seed? If yes, then how can we use the same see to regenerate the file? It would be good if the exact command were saved somewhere
[ ]  There is some commented code on af_prediction_formulation.py. I would just delete it.
Commented code that is not being used is just confusing.
I also did not understood the changes there (comparing with what you commented)
[ ]  The file evaluate.py is generated repeated columns with the exam_ids
[ ]  I would remove the columns predicted_class, prob_class1_norm and prob_class3_norm from the file
evaluate.py to keep the output as simple as possible (results/). These are values that can be easily computed
and it is better that it is computed on the evaluation jupyter notebooks.
[ ]  The notebooks af_performance.ipynb and survival_model.ipynb point to one file containing
the true labels. And another file containing the dnn prediction. It is a bit strange that each point to
a different file containing the true labels. i.e., one point to traces100pc_threeClasses_time.csv
and the other to ../temp/traces100pc_exams_info.csv.
I think it would be much more intuitive if we make both of them to point to the same true label file.
Moreover, we would prefer the file to be the output of af_prediction_formulation.py.
In summary, I would avoid this proliferation of intermediate files.

[ ] Does af_prediction_formulation.py run with any seed?
Yes, it is just the default seed in the code (not supplied within the command). The command I used looks like this:
"python af_prediction_formulation.py --file /home/~username/~path/annotations.csv"

[ ] There is some commented code on af_prediction_formulation.py.
I have deleted the commented code (need to test the code for any error).

[ ] The file evaluate.py is generated repeated columns with the exam_ids:
I have updated the code, changed to "df.set_index('exam_ids', drop=True)"

[ ] The notebooks af_performance.ipynb and survival_model.ipynb pointing to two different files:
The file 'traces100pc_threeClasses_time.csv' has one additional column "time" which has information about "time to last exam" and "time to first appearance".  If we need to keep one file, we should keep this one.

Thanks theogene. About the second point, running:
python af_prediction_formulation.py --file /home/~username/~path/annotations.csv
And look at the output file out/exams_info.csv, there is the entry:
id_exam,id_patient,age,sex,1dAVb,RBBB,LBBB,SB,AF,ST,date_exam,group_exam,exam_class,time_to_first_appearance,time_to_last_exam,split
1774328,819211,58,F,0,0,0,0,0,0,2016-09-26,1,1,0,17,train

So, patient 819211 would be in train:
But, in file traces100pc_classes1n3_time.csv
1774328,819211,58,F,0,1,test,17

So, patient 819211 would be in test. So I think they were generated with different seeds

The file 'traces100pc_threeClasses_time.csv' has one additional column "time" which has information about "time to last exam" and "time to first appearance". If we need to keep one file, we should keep this one.
This info is also available in out/exams_info.csv no?


RuntimeError: project local_path user cannot be found in /var/lib/awx/projects

Hi,
Thanks for creating ansible awx role and containers.
I am running ansible awx role on oracle virtual box. Role has been ran perfectly and i was able to access the Ansible awx.  I have added the playbooks manually and create a template to perform the  job.
But while running job template i am getting below error:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/awx/main/tasks.py", line 799, in run
cwd = self.build_cwd(instance, **kwargs)
File "/usr/lib/python2.7/site-packages/awx/main/tasks.py", line 1188, in build_cwd
(job.project.local_path, root))
RuntimeError: project local_path user cannot be found in /var/lib/awx/projects
I have created the directory under awx_web container and do i have define somewhere in settings for PROJECT PATH.  Link Ansible tower do we have any file w.r.t settings.

you need the same folder on the awx_task container.
you can add this to your compose file for _task and _web:

volumes:
  - /mnt/awx:/var/lib/awx/projects

This will map /mnt/awx (or replace with something else) on the host server running the container, to the /var/lib/awx/projects folder on the container.
This way you can have a shared directory for your playbooks

Hi,
Thanks for the suggestion.
I am novice in dockers so i have tried manually mount the volume for running below command:
[root@ansible ~]# docker run -v /media/sf_ansible_cookbooks:/var/lib/awx/projects -i -t awx_web:<IP_ADDRESS>1
WARNING: IPv4 forwarding is disabled. Networking will not work.
Traceback (most recent call last):
File "/usr/bin/awx-manage", line 9, in
load_entry_point('awx==<IP_ADDRESS>1', 'console_scripts', 'awx-manage')()
File "/usr/lib/python2.7/site-packages/awx/init.py", line 107, in manage
execute_from_command_line(sys.argv)
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/init.py", line 354, in execute_from_command_line
utility.execute()
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/core/management/init.py", line 328, in execute
django.setup()
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/init.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/apps/registry.py", line 115, in populate
app_config.ready()
File "/usr/lib/python2.7/site-packages/awx/conf/apps.py", line 18, in ready
configure_external_logger(settings)
File "/usr/lib/python2.7/site-packages/awx/main/utils/handlers.py", line 342, in configure_external_logger
is_enabled = settings_module.LOG_AGGREGATOR_ENABLED
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/conf/init.py", line 49, in getattr
return getattr(self._wrapped, name)
File "/usr/lib/python2.7/site-packages/awx/conf/settings.py", line 386, in getattr
value = self._get_local(name)
File "/usr/lib64/python2.7/contextlib.py", line 35, in exit
self.gen.throw(type, value, traceback)
File "/usr/lib/python2.7/site-packages/awx/conf/settings.py", line 64, in _log_database_error
if get_tower_migration_version() < '310':
File "/usr/lib/python2.7/site-packages/awx/main/utils/db.py", line 13, in get_tower_migration_version
loader = MigrationLoader(connection, ignore_no_migrations=True)
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/db/migrations/loader.py", line 47, in init
self.build_graph()
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/db/migrations/loader.py", line 191, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 59, in applied_migrations
self.ensure_schema()
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 49, in ensure_schema
if self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()):
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/db/backends/base/base.py", line 164, in cursor
cursor = self.make_cursor(self._cursor())
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/db/backends/base/base.py", line 135, in _cursor
self.ensure_connection()
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/db/backends/base/base.py", line 130, in ensure_connection
self.connect()
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/db/utils.py", line 98, in exit
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/db/backends/base/base.py", line 130, in ensure_connection
self.connect()
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/transaction_hooks/mixin.py", line 75, in connect
super(TransactionHooksDatabaseWrapperMixin, self).connect(*a, **kw)
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/db/backends/base/base.py", line 119, in connect
self.connection = self.get_new_connection(conn_params)
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 176, in get_new_connection
connection = Database.connect(**conn_params)
File "/var/lib/awx/venv/awx/lib/python2.7/site-packages/psycopg2/init.py", line 130, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: local user with ID 1000 does not exist
2017-09-12 16:48:47,009 INFO RPC interface 'supervisor' initialized
2017-09-12 16:48:47,009 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2017-09-12 16:48:47,009 INFO supervisord started with pid 18
2017-09-12 16:48:48,014 INFO spawned: 'daphne' with pid 21
2017-09-12 16:48:48,029 INFO spawned: 'nginx' with pid 22
2017-09-12 16:48:48,039 INFO spawned: 'uwsgi' with pid 23
*** Starting uWSGI 2.0.14 (64bit) on [Tue Sep 12 16:48:48 2017] ***
compiled with version: 4.8.5 20150623 (Red Hat 4.8.5-11) on 11 September 2017 20:23:42
os: Linux-3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017
nodename: 442909efc9cc
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 2
current working directory: /var/lib/awx
detected binary path: /var/lib/awx/venv/awx/bin/uwsgi
your memory page size is 4096 bytes
*** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers ***
detected max file descriptor number: 65536
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to TCP address <IP_ADDRESS>:8050 fd 3

Hi,
I am able to resolve the issue by syncing up both containers directory "/var/lib/awx/projects" on awx_web and awx_tasks container but sharing a directory from source server to containers giving me issues :(

@rahulansible  how do you start the containers without the folder mount?

@MartinTerp containers are already running. Once ansible-awx role has completed, status of containers were running or i will start them with docker container  start. I have edited the docker-compose.yml file come up with awx role and tried re-running the playbook but no luck.

Try this secuence:

stop containers
edit docker-compose.yml, adding volumes to _web and _tas containers.
docker-compose -f docker-compose.yml create
docker-compose -f docker-compose.yml start

I'm closing all issues on this repository as it has been deprecated; please see: https://github.com/geerlingguy/awx-container/issues/49


support cohere's command r plus model

Reminder

[X] I have read the README and searched the existing issues.

Reproduction
Can LLaMA-Factory support the cohere's command r plus mode? https://huggingface.co/CohereForAI/c4ai-command-r-plus
Expected behavior
No response
System Info
No response
Others
No response

supported in #3254


Azure Bastion Permissions

In addition to the permissions below
Reader role on the virtual machine.
Reader role on the NIC with private IP of the virtual machine.
Reader role on the Azure Bastion resource.
Reader Role on the Virtual Network (Not needed if there is no peered virtual network).
You also need
Reader Role on the Azure Bastion Virtual Network.
I tested the setup with just the top 4 permissions in the following scenario:
Cross subscription (Azure bastion in different subscription to VM)
VNets Peered
All subscriptions visible and selected in Global Filter
Although user could view the resources when the user tried to connect with Bastion it asked to deploy a new Azure bastion resource.
I added the Reader role for the user to the Azure Bastion VNet and all works as designed.
So the reader role on the Bastion VNet is required in this scenario at least.

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

ID: 03ec4426-bfc1-b046-500d-38b2ca89c71d
Version Independent ID: cdacb6c7-1d83-c62b-9204-f04d9955722c
Content: Azure Bastion FAQ
Content Source: articles/bastion/bastion-faq.md
Service: bastion
GitHub Login: @cherylmc
Microsoft Alias: cherylmc

@nellyontour, Thanks for reaching out. We will investigate and update this thread.

Hello,
We have also facing the same issue.
Florent

@nellyontour, Appreciate your patience. The doc has been edited accordingly and it would take some time for the changes to get reflect over the doc.
We are closing this issue for now. If there are further questions regarding this matter, please reply and we will gladly continue the discussion.


refactor: remove the info plugin and add it as an option to list

:books: Documentation preview :books:: https://mrmoe--185.org.readthedocs.build/en/185/

Codecov Report

Merging #185 (0f9e0db) into master (76b14f0) will decrease coverage by 0.80%.
The diff coverage is 66.00%.

@@            Coverage Diff             @@
##           master     #185      +/-   ##
==========================================
- Coverage   97.85%   97.04%   -0.81%
==========================================
  Files          35       34       -1
  Lines        2049     2033      -16
==========================================
- Hits         2005     1973      -32
- Misses         44       60      +16


Support token embeddings for  v1/embeddings

What is the issue?
When encoding with tiktoken, the interface is no longer compatible
tiktoken.get_encoding("cl100k_base").encode(text)

{
    "input": [30624,99849,64479,51392,31809,29207,233,45829],
    "model": "nomic-embed-text"
}

{
    "error": {
        "message": "invalid input type",
        "type": "api_error",
        "param": null,
        "code": null
    }
}

I hope it can be compatible, thank you
OS
No response
GPU
No response
CPU
No response
Ollama version
ollama version is 0.2.7

Version 0.3.3 is still not compatible with OpenAIEmbedding
The code I run is as follows
    text_embedder = OpenAIEmbedding(
        # ollama本地嵌入模型
        api_key="ollama",
        api_base="http://localhost:11434/v1",
        model="bge:m3",
        deployment_name="bge:m3",
        api_type=OpenaiApiType.OpenAI,
        max_retries=20,
    )

The runtime error is as follows
2024-08-03 23:59:34,423 - httpx - INFO - HTTP Request: POST http://localhost:11434/v1/embeddings "HTTP/1.1 400 Bad Request"
Error embedding chunk {'OpenAIEmbedding': "Error code: 400 - {'error': {'message': 'invalid input type', 'type': 'api_error', 'param': None, 'code': None}}"}

ps here's the langtrace workaround until this is in. While not perfect, certainly proceeds!
    # Until https://github.com/ollama/ollama/issues/5907, we cannot use OpenAIEmbeddings because it
    # produces embeddings requests with list of numbers, not a list of strings.
    # embeddings = OpenAIEmbeddings(base_url=ollama_base_url + '/v1', api_key="unused", model="all-minilm:33m")
    embeddings = OllamaEmbeddings(base_url=ollama_base_url, model="all-minilm:33m")


Cannot edit event while event is going on

I tried editing my event while it was going on (I was updating information on where our table is located on the lakeside terrace) and it wouldn't let me update it. I got an error "The event start time must be in the future" and it highlighted the start time.
You should be able to update the event up until the event is over (or perhaps until the end of the day since sometimes events go longer and you may need to provide an update). This is especially true for multi-day events.
The event this happened to is here:
https://app.couchers.org/event/285/happy-hour-social

I think this might actually be the web frontend's fault, since it sends all of the field's values back in the update request even though you might not have changed them, so the backend thinks you are trying to update the event to a time in the past.


HTTPS Cert Validation Callback in .Net Core

In the .net framework version, it is allowed to check the HTTPS cert with method overriding.
 public class HttpsConnection : HttpConnection
    {
        protected override HttpWebRequest CreateHttpWebRequest(RequestData requestData)
        {
            var request = base.CreateHttpWebRequest(requestData);
            request.ServerCertificateValidationCallback = (sender, cert, chain, error) =>
            {
 /// perform the checking on the self-signed cert
                return true;
            };
            return request;
        }
    }

The .Net team has changed the code now. It is handled in HttpClientHandler. Is it possible do the similar way in .Net Core version? It seems this is the only way to check cert chain manually when we do not have permission to install the cert in the server.
Ref:
https://github.com/dotnet/corefx/issues/4476
https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpClientHandler.Windows.cs#L167
https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.cs#L1511

Not currently, as we don' expose the HttpClientHandler.  We'll look into a good way to support this.


Add endpointslices to bug-report dump

This is now the default, and soon to be only method for endpoint config. So we need to collect it.
Please provide a description of this PR:

In response to a cherrypick label: new pull request created: #44053

In response to a cherrypick label: new pull request created: #44054


Return file instead of path

Hi,
I need to upload the compressed video to firebase.
Any possability to return the compressed file instead of the path?
Good job btw. with the widget!

If you want to convert path to file you can refer to the example.
final CompressResult result = await _flutterVideoCompress
  .startCompress(path: file.path, deleteOrigin: true);

final _file = File(result.path);

Thank you for your suggestion, I will enhance it in the next version.

@TenkaiRuri I tried that before but its not working:

Error uploading image to storage : 'package:firebase_storage/src/storage_reference.dart': Failed assertion: line 62 pos 12: 'file.existsSync()': is not true.

Uploading the original file with the same function is working fine.

It is only working when capturing the video by camera. Picking it from the galley throws the error I wrote in my comment above...

I think I had this.. Try copying the file from the path returned to the users temp directory on the phone. It should be able to access it then.

@febg11 could you show how you did that? Would appreciate!

Have you checked the files in the path that exist in the file manager application, I want to know this information for reference.

@kamami I like to help, but you need to explain more in detail which information you need. I am quite new to flutter!

Sorry @kamami I misread what you put. I think your issue is different to my suggestion.

I have enhanced this feature, now you can try it.
If you have any questions, please open this question again.
Thank you for the issue

I am having the issue that @kamami  was having. Is there a fix for that problem?


Add Django Rest Framework to fermentrack

As regarded at #340 , I 'm working in a native app for controlling Fermentrack with reduced functionality (meaning not all actions can be done through the app). For that reason, I ended up using Django Rest Framework to create endpoints as documented at https://github.com/deedos/fermentrack/blob/master/app/api/drf/README.md  . It adds a create_user functions and it 's token based authentication api.
It's my firts PR in a real project so I hope you understand some basic mistakes here or there. Anyway, a feedback is welcome and I can adjust urls, folders locations or anyelse you would like to.
Cheers and once again thanks for this great software

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: thorrak:x: deedosYou have signed the CLA already but the status is still pending? Let us recheck it.

Closing to submit again against the dev branch


Add a "Hello World" example

I think I want to use backbone for my project, but I feel like I'm having a harder time wrapping my head around it then I should.  The ToDo example is helpful, but I think it's a bit much for complete newbies.  Reading the docs cover to cover also seems a bit daunting.  I think what's needed is a very simple example (< 100 loc) illustrating the basic ideas.

+1 for hello-backbone.js.
If only I had had an introduction like that when I started with Backbone.

I'm not a huge fan of "Hello Backbone" ... but if anyone wants to send a pull request with a tutorial in the repo, feel free -- otherwise, linking to stuff from the Wiki is great.


[SPARK-12353][Streaming][PySpark] Fix countByValue inconsistent output in Python API

The semantics of Python countByValue is different from Scala API, it is more like countDistinctValue, so here change to make it consistent with Scala/Java API.

Test build #47905 has started for PR 10350 at commit 777e108.

Test build #47905 has finished for PR 10350 at commit 777e108.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/47905/
Test PASSed.

This LGTM

LGTM. Ping @tdas to take a look

Paging @tdas -- looks good to merge for master.

Merged to master


RadzenGrid - FilterOperator Enum.Parse issue

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Create RadzenGrid with filterable column
Subscribe to Load callback
Try to read FIlters collection from LoadDataArgs object by doing simple .ToList()
If user specified any filter in RadzenGrid the error will occur. System.ArgumentException: Requested value '!=' was not found.

Alternatively link your repo with a sample project that can be run.
Expected behavior
Filters collection from LoadDataArgs can be created.
Problem is here:
https://github.com/radzenhq/radzen-blazor/blob/b9e992f118a75165fe70a55dfd4b2c2b4b56a124/Radzen.Blazor/RadzenGrid.razor#L841
and here:
https://github.com/radzenhq/radzen-blazor/blob/b9e992f118a75165fe70a55dfd4b2c2b4b56a124/Radzen.Blazor/RadzenGrid.razor#L843
Solution: please make a dictionary of FilterOperators in string representation to the FIlterOperator enum value

Hi @dpozimski ,
I'm unable to reproduce such problem on our demo with LoadData: https://blazor.radzen.com/datagrid-loaddata

Any additional info?

Yes, the error does not occurs using RadzenDataGrid. You need to use RadzenGrid to reproduce that in the same way.

RadzenGrid is our legacy DataGrid component. Please use RadzenDataGrid instead.


Fela doesn’t hydrate CSS custom properties

Type: Bug

Packages
Version

fela
11.5.x

Description
Fela does not appear to hydrate CSS custom properties.

Steps to reproduce
Expected Behavior
CSS custom property declarations should be picked up during hydration instead of causing the same declaration to be regenerated with a different class name, thus causing a rendering mismatch.
Actual Behavior
The CSS custom property declarations are not hydrated properly, causing a rendering mismatch.

Fixes with #866


[fix][broker] Let TokenAuthState update authenticationDataSource

Motivation
We use the result of TokenAuthenticationState#getAuthDataSource to pass to the AuthorizationProvider. For custom implementations, it is important that this information is up to date.
The TokenAuthenticationState field AuthenticationDataSource is set on initialization and never again. Given that tokens can be refreshed, we should update the field TokenAuthenticationState#authenticationDataSource when the authenticate method is called.
Modifications

Update the authenticationDataSource when authenticate is called.

Verifying this change
A new test is added to cover this change.
Does this pull request potentially affect one of the following parts:
This change will  only affect third party AuthorizationProvider implementations. It's possible that it could break their integration, though unlikely. Note that we update the authRole when authenticate is called.
Documentation

[x] doc-not-needed

We do not document this kind of internal behavior anywhere.
Matching PR in forked repository
PR in forked repository: https://github.com/michaeljmarshall/pulsar/pull/15

Codecov Report

Merging #19282 (c39a89b) into master (334c3a5) will increase coverage by 5.58%.
The diff coverage is 39.04%.

@@             Coverage Diff              @@
##             master   #19282      +/-   ##
============================================
+ Coverage     47.04%   52.62%   +5.58%
- Complexity     9190    22238   +13048
============================================
  Files           607     1824    +1217
  Lines         57677   136692   +79015
  Branches       6007    15044    +9037
============================================
+ Hits          27132    71939   +44807
- Misses        27598    57271   +29673
- Partials       2947     7482    +4535

Flag
Coverage Δ

inttests
22.44% <10.63%> (?)

systests
25.03% <7.09%> (?)

unittests
46.74% <36.21%> (-0.30%)
:arrow_down:

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


Add OpenGraph Image

Description

Add OpenGraph image

Related Issue

Fixes : https://github.com/trypear/pear-landing-page/issues/73

Changes Made

Added Image in public/images folder
Add path to ogImage prop in constructMetadata function

Screenshots

Checklist

[x] I have tagged the issue in this PR.
[x] I have attached necessary screenshots.
[x] I have provided a short description of the PR.
[x] I ran yarn build and build is successful
[x] My code follows the style guidelines of this project.
[x] I have added necessary documentation (if applicable)

yaa i used that above image only @marcush929


Increase Retry Of Failure Frame to 15

Some of the devices with smaller negotiated MTU values fails to transfer larger VCs as there are a large number of missing chunks

Please use iphone 7 and Redmi 7A for this testing

@Alka1703 Please elaborate on the testing strategy.

The device combination Redmi 7A and iphone 7 agrees on a lesser MTU value(total number of bytes that can be written at one go). So when transferring large VCS(~700KB), there are a lot of failures which couldn't be handled in 5 retries. So we have increased the retries to 15.
This will reduce the failure between these two devices.

Verified in :
Wallet: iphone 7 | iphone 15.6 BLE 4.2
Verifier: Redmi 7A | Android 10 BLE 4.2
app commit id:

iOS app version :0.4.1 (32)

Attempted VC transfer for 17 times out of which 1 attempt of transfer failed i.e failed in 3 rd attempt.
VC size used for testing: 716.83 KB
VID :<PHONE_NUMBER>725109


huh, skub

About the PR
Same as last pr but for skubnades.
Probably outlawed by the Space Geneva convention.
Changelog
:cl:

tweak: Skub can now be used in modular grenades and mines

tests are just being a bit wacky today


Add 'patch' to automerge options

I'm writing a linter-config package, I'd like to disable those lint-plugin's automerge for feature updates (minor), only allow automerge for bug fix (patch) updates, so that I can update my rule settings and submit them together with the PR and won't be annoying from having to merge patch PR manually.
If you think this feature(?) is acceptable, I'd like to send a PR.

It's a good idea and you're welcome to submit a PR. The only "problem" is that I think that patch support should be supported wider than just automerging and haven't yet decided the exactly how to do that. If it's fairly quick for you to support it for automerge though then please go ahead as it's unlikely to need too much refactoring later.
BTW it may still not work exactly as you want. e.g. If you are running 1.0.0 and both 1.0.1 and 1.1.0 are available then you'll only see a PR for 1.1.0 and not both 1.0.1.  Maybe most people prefer that though? This is what I mean by "supported wider" - I have a feeling that full patch support would touch a lot of files.   Anyway if you are happy to implement just automerge patch for now then that would be useful!


cast create2-derived salts producing different addresses on different devices

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
forge 0.2.0 (42a9d34 2024-03-18T00:19:07.645071938Z)
What command(s) is the bug in?
forge test
Operating System
Linux
Describe the bug
We have some code that checks the prefix of a contract address to determine if certain flags are enabled. Hence the address a contract deploys at is important.
We've used cast create2 to derive a salt for a mock contract. The init code is written in this way:
        bytecode = abi.encodePacked(
            type(MockCallback).creationCode,
            abi.encode(address(_auctionHouse), Callbacks.Permissions({
                onCreate: true,
                onCancel: true,
                onCurate: true,
                onPurchase: true,
                onBid: true,
                onClaimProceeds: true,
                receiveQuoteTokens: false,
                sendBaseTokens: false
            }), _SELLER)
        );
        vm.writeFile(
            "./bytecode/MockCallbackFC.bin",
            vm.toString(bytecode)
        );

Generating the salt on an Apple Silicon machine:
cast create2 -s FC -i $(cat ./bytecode/MockCallbackFC.bin)
Starting to generate deterministic contract address...
Successfully found contract address(es) in 2.2125ms
Address: 0xFCD9E72cB6B92b03D31CBf4751f382ea9973cEd8
Salt: 0x2d085bff93737a7308f86687855a637fa9b300e4eae37470574aeffe69211b2d<PHONE_NUMBER>1997584515982999546933530026298847977288675779182786825227679636269)

Tests work fine with this salt and address. (It starts with 0xFC, so we're fine.)
The issue is in our GitHub CI runner, using the forge version mentioned above. (The Apple Silicon machine is running forge 0.2.0 (42a9d34 2024-03-18T00:21:12.757736000Z))
In the CI runner logs, I've added the same cast create2 command, which produces a salt that would result in a 0xFC address:
Starting to generate deterministic contract address...
Successfully found contract address(es) in 384.212µs
Address: 0xfc7F4a675f70667bD2FD44628CB2cBAB5888f221
Salt: 0x05623ced25861e32180f267e1ba511ad19a8668fbfcc16aaa8eaf3b1ce5b2d8f<PHONE_NUMBER>504508871687881630792538167267096972468429044392565066158109830543)

However, within forge test, it does not generate the correct address. Here's the code used:
        // Set the salt based on which token flags are set
        bytes32 salt;
        if (_callbackSendBaseTokens && _callbackReceiveQuoteTokens) {
            // 11111111 = 0xFF
            salt = bytes32(0x85562f6b977f049f629b46a5594463d0ece4a667bda374331ef8d5f4ac237f90);
        } else if (_callbackSendBaseTokens) {
            // 11111101 = 0xFD
            salt = bytes32(0x9c58c88fd4b4d29c183ebdec21f5500d204c8d44c3728e2304cdc93917df5ac4);
        } else if (_callbackReceiveQuoteTokens) {
            // 11111110 = 0xFE
            salt = bytes32(0xe7f4388f366c3e35766d3c6139fbe69e4b2a6e784aeb345c06b28976c8ec839d);
        } else {
            // 11111100 = 0xFC
            salt = bytes32(0x2d085bff93737a7308f86687855a637fa9b300e4eae37470574aeffe69211b2d);
        }

        vm.startBroadcast(); // required for CREATE2 address to work correctly. doesn't do anything in a test
        console2.log("salt");
        console2.logBytes32(salt);
        console2.log("auctionHouse", address(_auctionHouse));
        console2.log("seller", _SELLER);
        _callback = new MockCallback{salt: salt}(
            address(_auctionHouse),
            Callbacks.Permissions({
                onCreate: true,
                onCancel: true,
                onCurate: true,
                onPurchase: true,
                onBid: true,
                onClaimProceeds: true,
                receiveQuoteTokens: _callbackReceiveQuoteTokens,
                sendBaseTokens: _callbackSendBaseTokens
            }),
            _SELLER
        );
        console2.log("callback", address(_callback));
        vm.stopBroadcast();

However, the deployed contract address is 0xAA303A62682605A4D3E14b7B3fd667a5180678C7, which is obviously incorrect. The _auctionHouse and _SELLER addresses are deterministic, and all permutations of the Callbacks.Permissions parameter have salts generated for them (you can see it in the code example). i.e. the inputs to the deployment are consistent. The contract deployment is also being broadcast, given #6402.
An open question that I have:

Are the salts used for the deployment of contracts to deterministic addresses cross-platform and/or cross-architecture? There are no problems running on multiple developer machines (all Apple Silicon), but it fails on the GitHub CI runner (x86 linux, I believe).

It does not appear to be an issue with cross-platform builds. I set up a new repo to try and reproduce this, and the same address was generated: https://github.com/0xJem/create2-test/actions/runs/8325653856/job/22779717866

Callbacks.Permissions is a struct from a library. Could that be causing it?
I ran abi.encode on the struct, and the raw encoded and hashed values match.

Yes we were able to figure out the issue - it was a difference in the inferred remappings between CI and local. I'll share details/reproduction tomorrow.

So this was due to a conflict between ds-test in solmate and forge-std. We had a remapping in foundry.toml to resolve this and use ds-test under forge-std ("ds-test/=lib/forge-std/lib/ds-test/src/") (added a long time back), but it seemed to not affect the GitHub CI build. The GitHub CI build was instead using ds-test under solmate, which led to the build output being very subtly different (we discovered it by diffing the build output JSON).
Taking the remappings out of foundry.toml and into remappings.txt fixed it. I'm trying to reproduce this in a demo repo, but have not been able to so far.


kepler: roles to deploy and undeploy kepler

/test load-aware-e2e keep

thanks @drewrip , looks good :)
I made minor comments

/test load-aware-light

/test load-aware-light

@kpouget  thanks for the comments! Since the light test failed and the upstream deployment via yaml files is causing its own issues, I'll try the OperatorHub installation again (which would be much simpler if it were to work). I'll come back and fix the manual version if it doesn't work though.

/test load-aware-e2e keep

/test load-aware-light

/test load-aware-light

/test load-aware-e2e keep

/test load-aware-light

/test load-aware-light

/test load-aware-light

/test load-aware-light

/test load-aware-light

/test load-aware-light

test passed. Kepler was deployed and its metric exporters were created.
The deploy and undeploy roles should include suggestions as given above in this thread.
The key issue was that the kepler deployment makefile and yaml has a dependency on Go and hardcodes kubectl. The ci-artifacts image did not previously have either. I attempted resolving these inside the deploy role itself but ran into a number of issues. I resorted to installing them in the Containerfile itself. The best solution into the future would be to use the operator on OperatorHub.

test passed. Kepler was deployed and its metric exporters were created.
The deploy and undeploy roles should include suggestions as given above in this thread.
The key issue was that the kepler deployment makefile and yaml has a dependency on Go and hardcodes kubectl. The ci-artifacts image did not previously have either. I attempted resolving these inside the deploy role itself but ran into a number of issues. I resorted to installing them in the Containerfile itself. The best solution into the future would be to use the operator on OperatorHub.
@jmencak Whenever you get a second could you let me know what you think?

Would you be able to address all Kevin's comments?  Also, can we make "/tmp/kepler" into a variable so that it is not hardcoded like that at several places?

/test load-aware-e2e keep

/test load-aware-e2e keep

Kepler got deployed, but kepler logs didn't reach the Prometheus database.
Merging as is, will fix it when we'll want to use Kepler.

for the record, here is the command I tried to deploy Kepler from OperatorHub (but it didn't work either):
./run_toolbox.py cluster deploy_operator  community-operators kepler-operator all
CSV=$(oc get csv -n openshift-operators -l operators.coreos.com/kepler-operator.openshift-operators -oname)
oc get $CSV '-ojsonpath={.metadata.annotations.alm-examples}' -n openshift-operators | jq .[0] | oc apply -f- -n default

curl -Ssf https://raw.githubusercontent.com/sustainable-computing-io/kepler-operator/v1alpha1/config/prometheus/monitor.yaml | yq | jq '.spec.selector.matchLabels = {"app.kubernetes.io/name": "kepler-exporter"} | .metadata.namespace = "default"' | oc apply -f-
oc label namespace default openshift.io/user-monitoring=true --overwrite


lang ja: Player type

In Japanese VRChat community, BuildInPlayer is called "Video" and AvProPlayer is called "Live" traditionally (by iwasync video player).
I know it is not accurate representation but suitable.
「内蔵」 is, yes, "built in," but the Japanese cannot understand what that means in that UI.

Thanks for correction, these translations ware generated using Copilot so it was not very accurate.


Flutter is using the cmdline-tools if installed.
Flutter could ask about cmdline tools directory or to setup the PATH
Actual results:
Forces you to use old software.
#51670  #67251 #58737
Uses hardcoded path of deprecated software.

This has nothing to do with hardcoded paths. The Android SDK tools required a 1.8 JDK or JRE.

Well thats not entirely true. If you are using the cmdline-tools they are compatible with newer versions of Java. Even though gradle works with higher versions of Java nowadays.
You can compile your Android App with higher JDK Versions. So somewhere in the flutter toolchain must be something like $Android_Root/tools/bin/...
Only the old sdkmanager binary forces you to have JDK / JRE 8 available. This haven't to be. (Step 7 output)

Hi @violen
Currently Flutter requires a 1.8 JDK/JRE. Please see https://github.com/flutter/flutter/issues/62924#issuecomment-668904152 and https://github.com/flutter/flutter/issues/66458#issuecomment-697483466.
Closing as this has nothing to do with Flutter tools. See the comments above and subscribe on that issue for more updated.
Thank you


project: importer only allows importing of symbols under their original name.

For example, bibliopixel.drivers.SimPixel.driver.DriverSimPixel can also be imported as  bibliopixel.drivers.SimPixel.DriverSimPixel because it's mentioned in the __init__.py in that directory, but this doesn't work for projects.

Ahh... that would be bad.


不能动

系统是ubuntu18.04
以下是错误讯息：
(venv) kenny@wade-X750JB:~/Desktop/cchess-zero$ python main.py --mode play --ai_count 2 --ai_function mcts --play_playout 1200
Loading Models...
2018-08-29 15:55:02.524177: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
WARNING:tensorflow:From /home/kenny/Desktop/cchess-zero/policy_value_network.py:78: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Future major versions of TensorFlow will allow gradients to flow
into the labels input on backprop by default.
See @{tf.nn.softmax_cross_entropy_with_logits_v2}.
Traceback (most recent call last):
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1278, in _do_call
return fn(*args)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1263, in _run_fn
options, feed_dict, fetch_list, target_list, run_metadata)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1350, in _call_tf_sessionrun
run_metadata)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [1] rhs shape= [128]
[[Node: save/Assign_66 = Assign[T=DT_FLOAT, _class=["loc:@conv2d_16/bias"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](conv2d_16/bias, save/RestoreV2:66)]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1725, in restore
{self.saver_def.filename_tensor_name: save_path})
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 877, in run
run_metadata_ptr)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1100, in _run
feed_dict_tensor, options, run_metadata)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1272, in _do_run
run_metadata)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1291, in _do_call
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [1] rhs shape= [128]
[[Node: save/Assign_66 = Assign[T=DT_FLOAT, _class=["loc:@conv2d_16/bias"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](conv2d_16/bias, save/RestoreV2:66)]]
Caused by op 'save/Assign_66', defined at:
File "main.py", line 1583, in
args.search_threads, args.processor, args.num_gpus, args.res_block_nums, args.human_color)    # * args.num_gpus
File "/home/kenny/Desktop/cchess-zero/ChessGame.py", line 50, in init
processor=processor, num_gpus=num_gpus, res_block_nums=res_block_nums, human_color=human_color)
File "/home/kenny/Desktop/cchess-zero/main.py", line 1142, in init
self.policy_value_netowrk = policy_value_network(res_block_nums) if processor == 'cpu' else policy_value_network_gpus(num_gpus, res_block_nums)
File "/home/kenny/Desktop/cchess-zero/policy_value_network.py", line 148, in init
self.saver = tf.train.Saver()
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1281, in init
self.build()
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1293, in build
self._build(self._filename, build_save=True, build_restore=True)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1330, in _build
build_save=build_save, build_restore=build_restore)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 778, in _build_internal
restore_sequentially, reshape)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 419, in _AddRestoreOps
assign_ops.append(saveable.restore(saveable_tensors, shapes))
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 112, in restore
self.op.get_shape().is_fully_defined())
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/ops/state_ops.py", line 216, in assign
validate_shape=validate_shape)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/ops/gen_state_ops.py", line 60, in assign
use_locking=use_locking, name=name)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 454, in new_func
return func(*args, **kwargs)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3155, in create_op
op_def=op_def)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1717, in init
self._traceback = tf_stack.extract_stack()
InvalidArgumentError (see above for traceback): Assign requires shapes of both tensors to match. lhs shape= [1] rhs shape= [128]
[[Node: save/Assign_66 = Assign[T=DT_FLOAT, _class=["loc:@conv2d_16/bias"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](conv2d_16/bias, save/RestoreV2:66)]]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "main.py", line 1583, in
args.search_threads, args.processor, args.num_gpus, args.res_block_nums, args.human_color)    # * args.num_gpus
File "/home/kenny/Desktop/cchess-zero/ChessGame.py", line 50, in init
processor=processor, num_gpus=num_gpus, res_block_nums=res_block_nums, human_color=human_color)
File "/home/kenny/Desktop/cchess-zero/main.py", line 1142, in init
self.policy_value_netowrk = policy_value_network(res_block_nums) if processor == 'cpu' else policy_value_network_gpus(num_gpus, res_block_nums)
File "/home/kenny/Desktop/cchess-zero/policy_value_network.py", line 149, in init
self.train_restore()
File "/home/kenny/Desktop/cchess-zero/policy_value_network.py", line 170, in train_restore
self.saver.restore(self.sess, tf.train.latest_checkpoint(self.save_dir))
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1759, in restore
err, "a mismatch between the current graph and the graph")
tensorflow.python.framework.errors_impl.InvalidArgumentError: Restoring from checkpoint failed. This is most likely due to a mismatch between the current graph and the graph from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:
Assign requires shapes of both tensors to match. lhs shape= [1] rhs shape= [128]
[[Node: save/Assign_66 = Assign[T=DT_FLOAT, _class=["loc:@conv2d_16/bias"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](conv2d_16/bias, save/RestoreV2:66)]]
Caused by op 'save/Assign_66', defined at:
File "main.py", line 1583, in
args.search_threads, args.processor, args.num_gpus, args.res_block_nums, args.human_color)    # * args.num_gpus
File "/home/kenny/Desktop/cchess-zero/ChessGame.py", line 50, in init
processor=processor, num_gpus=num_gpus, res_block_nums=res_block_nums, human_color=human_color)
File "/home/kenny/Desktop/cchess-zero/main.py", line 1142, in init
self.policy_value_netowrk = policy_value_network(res_block_nums) if processor == 'cpu' else policy_value_network_gpus(num_gpus, res_block_nums)
File "/home/kenny/Desktop/cchess-zero/policy_value_network.py", line 148, in init
self.saver = tf.train.Saver()
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1281, in init
self.build()
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1293, in build
self._build(self._filename, build_save=True, build_restore=True)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1330, in _build
build_save=build_save, build_restore=build_restore)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 778, in _build_internal
restore_sequentially, reshape)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 419, in _AddRestoreOps
assign_ops.append(saveable.restore(saveable_tensors, shapes))
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 112, in restore
self.op.get_shape().is_fully_defined())
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/ops/state_ops.py", line 216, in assign
validate_shape=validate_shape)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/ops/gen_state_ops.py", line 60, in assign
use_locking=use_locking, name=name)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 454, in new_func
return func(*args, **kwargs)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3155, in create_op
op_def=op_def)
File "/home/kenny/tensorflow/venv/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1717, in init
self._traceback = tf_stack.extract_stack()
InvalidArgumentError (see above for traceback): Restoring from checkpoint failed. This is most likely due to a mismatch between the current graph and the graph from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:
Assign requires shapes of both tensors to match. lhs shape= [1] rhs shape= [128]
[[Node: save/Assign_66 = Assign[T=DT_FLOAT, _class=["loc:@conv2d_16/bias"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:CPU:0"](conv2d_16/bias, save/RestoreV2:66)]]
(venv) kenny@wade-X750JB:~/Desktop/cchess-zero$

你用的是tensorflow多少版本的？

不好意思，我再试的时候发现是残差块的问题。
程世东<EMAIL_ADDRESS>於 2018年8月30日 週四 20:45 寫道：

你用的是tensorflow多少版本的？
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/chengstone/cchess-zero/issues/4#issuecomment-417306308,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AjdalZRqRCET_C_dNkIL6A685_Pc06bCks5uV950gaJpZM4WQygz
.


Stream audio directly from a CDN

When an audio file has been processed, rather than saving it locally and streaming the file there, redirect the client to a presigned URL to s3. Indexing the files in this results dir would be a good way to returned cached audio files rather than rerunning the processing everytime.
Example code
import boto3
    url = boto3.client('s3').generate_presigned_url(
    ClientMethod='get_object',
    Params={'Bucket': 'BUCKET_NAME', 'Key': 'OBJECT_KEY'},
    ExpiresIn=3600)

#30


Failed to add labels to statefulset , unsupported yaml node

https://github.com/kubernetes-sigs/kustomize/issues/2533

Not a bug.


GitHub tag as Docker Hub tag

Is it possible to use Drone to deploy the same pushed GitHub repository tag to Docker Hub repository tag?

please use http://discourse.drone.io/ for usage questions.


Module Missing: sync_batchnorm

Hi,
First, thanks for the awesome repo. I am encountering the following error while trying to run the demo.py
Module sync_batchnorm not found
This is happening due to the call in Line-7 of modules/util.py (this line)
Can you kindly suggest a fix for this ?
Thanks,
Avisek

you can refer fomm：https://github.com/AliaksandrSiarohin/first-order-model/tree/master/sync_batchnorm


sendMulticast is based on legacy Firebase API

Describe the feature you would like to see
Hi,
I have a question that whether sendMulticast($message, $deviceTokens) is based on legacy Firebase API or HTTP V1 API?
As mentioned on Firebase Document, we can send push notification to individual device registration token, topic, and Condition. But have not found anything related to send a push notification to multiple specific registration tokens?
Can you please help?
Thanks

The SDK uses exclusively the HTTP V1 API, no legacy here 😄.
The sendMulticast() method originally used a dedicated endpoint with multipart requests, which has been deprecated. Now it just™ remains a convenience method which calls the sendAll() method internally.
https://github.com/kreait/firebase-php/blob/393a751a0a15291774070688cbfa4d0e954b9e54/src/Firebase/Messaging.php#L66-L82
I hope this helps!

Hi,
Thanks for the reply.
So it means sendAll method is internally using (https://fcm.googleapis.com/v1/projects/{myproject}/messages:send) endpoint and looping through on each of the registration token and sending a push notification on it. We can use it as it is based on HTTP V1 API. Right?

Yes.
This project is Open Source - if you are interested in the internals and which API endpoints are called, you can look it up by inspecting the code 🕵🏻♂

Sure. Thanks for the help.


Fix chainability for the setColumns call

Table->setColumns() was not returning $this despite the documentation and thus was not chainable.
It's fixed :-)

Thank you!


Empty flame graphs when there's a lot of idle time

I ran this very simple Python program:
import time

def compute(x):
    res = x**2*7/9+31
    return res

index = 0
while True:
    index += 1
    compute(index)
    time.sleep(1)

And I profiled it using the following command line:
pyflame -s 20 -r 0.00000000000001 {pid} | ./flamegraph.pl > flames.svg
I understand that compute() completes and returns very rapidly. And I also understand that time.sleep() takes the majority of my program's time. However, given that the sampling interval is very small, I would have expected the flame graph to contain at least a few samples for the compute() function. But this isn't the case; the flame graph always shows 100% idle time.
Now, if I considerably reduce the value passed to time.sleep() (e.g. 0.0000001) in my program, then the flame graph contains samples for the compute() method, as we could expect.
Is this the normal behaviour of pyflame? Or is it a technical limitation?
Thanks!

What is the actual wall time vs CPU time for this script, if you just run it with time? If the ratio is too extreme you might have problems observing the function.
Also FYI there is some overhead to sampling (on the order of 10s or 100s of microseconds, IIRC) so if you set the -r option to a value that's too small it won't actually be able to sample at that rate.

I ran time against the above script for ~50s and here are the returned stats:
real    0m52.225s
user    0m0.060s
sys     0m0.034s
So the CPU time represents ~0.18% of the total execution time. Considering the sampling overhead that you mentioned, I guess that what I'm seeing is normal.
Thanks for the follow-up!


feat(api): Add ability to connect to WPA2-Enterprise networks

This PR allows the system to connect to wireless networks that are secured
with WPA2-enterprise using
EAP-TLS
PEAP/EAP-MSCHAPv2 (eduroam)
TTLS/EAP-MSCHAPv2
TTLS/EAP-TLS
TTLS/MD5
These should be a good selection of the more popular EAP configurations.
There is also a framework for easily adding more configurations for EAP, by
adding elements to opentrons.system.nmcli._EAP_OUTER_TYPES,
opentrons.system.nmcli._EAP_PHASE2_TYPES, and opentrons.system.nmcli.EAP_TYPES.
Because eap configuration can become complex, the available configuration
options are exposed through a new endpoint, GET /wifi/eapoptions. The return
value describes the required structure for input to POST /wifi/configure.
The new endpoint has a lot of docs about it so check out the function eap_options in the wifi endpoints below.
review requests
Testing, endpoint shapes. There are a couple different permutations to check out, all of which require a wireless AP and a RADIUS server. I've been using freeradius which is a good FOSS implementation; I'd recommend installing it via homebrew or apt or whatever rather than using the docker container version of it, which is more intended for production and harder to configure.
Closes #2138

Pushing this onto Sunset for anyone who's testing. @sfoster1 I'm assuming this branch is also on moon-moon?

@mcous no it's on my pi on my desk, i'll put it on moon-moon though (now called wolf-wolf-wolf-moon)