RedPajama Finetune - Does Not Work with text-generation-inference (TGI)

Please check that this issue hasn't been reported before.

[X] I searched previous Bug Reports didn't find any similar reports.

Expected Behavior
I am attempting to finetune togethercomputer/RedPajama-INCITE-Base-3B-v1 using axolotl. After completing the finetune and saving the resulting model, I am seeking to serve the model locally using HuggingFace's text-generation-inference (TGI) using default settings.
However, spinning up the server fails each time. See below for the full stack trace, but the primary error is:
RuntimeError: weight gpt_neox.layers.0.attention.rotary_emb.inv_freq does not exist
Current behaviour
Here is the full trace:
docker run --rm   --entrypoint /bin/bash   -itd   --name "temp"   -v "path/to/model":/data   --gpus '"device=0"'   -p <IP_ADDRESS>:8080:80   ghcr.io/huggingface/text-generation-inference:latest
1fa88de4e9b3e5433140a8c7d8b27f610ee766ba5409e86c46fc96e40bc6c81b
Container started successfully!
Running the text-generation-launcher command from /data directory inside the container...only local files will be used
2024-01-22T21:31:37.261605Z  INFO text_generation_launcher: Args { model_id: "/data/temp", revision: None, validation_workers: 2, sharded: None, num_shard: Some(1), quantize: None, dtype: None, trust_remote_code: false, max_concurrent_requests: 128, max_best_of: 2, max_stop_sequences: 4, max_top_n_tokens: 5, max_input_length: 2048, max_total_tokens: 8192, waiting_served_ratio: 1.2, max_batch_prefill_tokens: 4096, max_batch_total_tokens: None, max_waiting_tokens: 20, hostname: "1fa88de4e9b3", port: 80, shard_uds_path: "/tmp/text-generation-server", master_addr: "localhost", master_port: 29500, huggingface_hub_cache: Some("/data"), weights_cache_override: None, disable_custom_kernels: false, cuda_memory_fraction: 1.0, rope_scaling: None, rope_factor: None, json_output: false, otlp_endpoint: None, cors_allow_origin: [], watermark_gamma: None, watermark_delta: None, ngrok: false, ngrok_authtoken: None, ngrok_edge: None, env: false }
2024-01-22T21:31:37.261750Z  INFO download: text_generation_launcher: Starting download process.
2024-01-22T21:31:39.445374Z  INFO text_generation_launcher: Files are already present on the host. Skipping download.

2024-01-22T21:31:39.865541Z  INFO download: text_generation_launcher: Successfully downloaded weights.
2024-01-22T21:31:39.866109Z  INFO shard-manager: text_generation_launcher: Starting shard rank=0
2024-01-22T21:31:44.142568Z ERROR text_generation_launcher: Error when initializing model
Traceback (most recent call last):
  File "/opt/conda/bin/text-generation-server", line 8, in <module>
    sys.exit(app())
  File "/opt/conda/lib/python3.9/site-packages/typer/main.py", line 311, in __call__
    return get_command(self)(*args, **kwargs)
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/opt/conda/lib/python3.9/site-packages/typer/core.py", line 778, in main
    return _main(
  File "/opt/conda/lib/python3.9/site-packages/typer/core.py", line 216, in _main
    rv = self.invoke(ctx)
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/opt/conda/lib/python3.9/site-packages/typer/main.py", line 683, in wrapper
    return callback(**use_params)  # type: ignore
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/cli.py", line 83, in serve
    server.serve(
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 207, in serve
    asyncio.run(
  File "/opt/conda/lib/python3.9/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/opt/conda/lib/python3.9/asyncio/base_events.py", line 634, in run_until_complete
    self.run_forever()
  File "/opt/conda/lib/python3.9/asyncio/base_events.py", line 601, in run_forever
    self._run_once()
  File "/opt/conda/lib/python3.9/asyncio/base_events.py", line 1905, in _run_once
    handle._run()
  File "/opt/conda/lib/python3.9/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
> File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 159, in serve_inner
    model = get_model(
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/__init__.py", line 175, in get_model
    return FlashNeoXSharded(
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/flash_neox.py", line 58, in __init__
    model = FlashGPTNeoXForCausalLM(config, weights)
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/custom_modeling/flash_neox_modeling.py", line 366, in __init__
    self.gpt_neox = FlashGPTNeoXModel(config, weights)
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/custom_modeling/flash_neox_modeling.py", line 308, in __init__
    [
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/custom_modeling/flash_neox_modeling.py", line 309, in <listcomp>
    FlashNeoXLayer(layer_id, config, weights)
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/custom_modeling/flash_neox_modeling.py", line 223, in __init__
    self.attention = FlashNeoxAttention(
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/custom_modeling/flash_neox_modeling.py", line 101, in __init__
    self.rotary_emb = PositionRotaryEmbedding.load(
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/utils/layers.py", line 625, in load
    inv_freq = weights.get_tensor(f"{prefix}.inv_freq")
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/utils/weights.py", line 75, in get_tensor
    filename, tensor_name = self.get_filename(tensor_name)
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/utils/weights.py", line 63, in get_filename
    raise RuntimeError(f"weight {tensor_name} does not exist")
RuntimeError: weight gpt_neox.layers.0.attention.rotary_emb.inv_freq does not exist

2024-01-22T21:31:44.773817Z ERROR shard-manager: text_generation_launcher: Shard complete standard error output:

Traceback (most recent call last):

  File "/opt/conda/bin/text-generation-server", line 8, in <module>
    sys.exit(app())

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/cli.py", line 83, in serve
    server.serve(

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 207, in serve
    asyncio.run(

  File "/opt/conda/lib/python3.9/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)

  File "/opt/conda/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
    return future.result()

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 159, in serve_inner
    model = get_model(

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/__init__.py", line 175, in get_model
    return FlashNeoXSharded(

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/flash_neox.py", line 58, in __init__
    model = FlashGPTNeoXForCausalLM(config, weights)

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/custom_modeling/flash_neox_modeling.py", line 366, in __init__
    self.gpt_neox = FlashGPTNeoXModel(config, weights)

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/custom_modeling/flash_neox_modeling.py", line 308, in __init__
    [

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/custom_modeling/flash_neox_modeling.py", line 309, in <listcomp>
    FlashNeoXLayer(layer_id, config, weights)

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/custom_modeling/flash_neox_modeling.py", line 223, in __init__
    self.attention = FlashNeoxAttention(

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/custom_modeling/flash_neox_modeling.py", line 101, in __init__
    self.rotary_emb = PositionRotaryEmbedding.load(

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/utils/layers.py", line 625, in load
    inv_freq = weights.get_tensor(f"{prefix}.inv_freq")

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/utils/weights.py", line 75, in get_tensor
    filename, tensor_name = self.get_filename(tensor_name)

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/utils/weights.py", line 63, in get_filename
    raise RuntimeError(f"weight {tensor_name} does not exist")

RuntimeError: weight gpt_neox.layers.0.attention.rotary_emb.inv_freq does not exist
 rank=0
2024-01-22T21:31:44.870188Z ERROR text_generation_launcher: Shard 0 failed to start
2024-01-22T21:31:44.870226Z  INFO text_generation_launcher: Shutting down shards
Error: ShardCannotStart
Failed to run text-generation-launcher.

Steps to reproduce
See config YAML below
Config yaml
base_model: togethercomputer/RedPajama-INCITE-Base-3B-v1
base_model_config: togethercomputer/RedPajama-INCITE-Base-3B-v1
model_type: GPTNeoXForCausalLM
tokenizer_type: AutoTokenizer
load_in_8bit: false
load_in_4bit: false
datasets:
  - path: teknium/GPT4-LLM-Cleaned
    type: alpaca
dataset_prepared_path: ./axolotl_files/last_run_prepared
val_set_size: 0.01
output_dir: ./axolotl_out/temp
seed: 8
sequence_len: 2048
pad_to_sequence_len: true
sample_packing: true
save_safetensors: false
gradient_accumulation_steps: 1
micro_batch_size: 4
eval_batch_size: 4
num_epochs: 1
save_strategy: no
evals_per_epoch: 0
saves_per_epoch: 1
optimizer: adamw_torch
lr_scheduler: one_cycle
learning_rate: .000005
train_on_inputs: false
group_by_length: false
bf16: true
fp16: false
tf32: false
gradient_checkpointing: true
resume_from_checkpoint:
local_rank:
logging_steps: 1
xformers_attention:
flash_attention: true
warmup_steps:
debug:
deepspeed: path/to/zero1.json
weight_decay: 0.0
tokens:
  pad_token: "<|padding|>"
  bos_token: "<|endoftext|>"
  eos_token: "<|endoftext|>"
  unk_token: "<|endoftext|>"

Possible solution
I suspected training with flash attention was the issue. However, the error persists whether the config YAML enables or disables flash attention. At this point it's unclear what the issue may be, but given the error, training with axolotl seems to introduce some architectural problem into the base model.
However, this issue does seem related to a recent closed issue. This issue was closed due to lack of feedback from the creators, but it does seem they were also unable to load an axolotl finetune in TGI (with a different error related to tokenization).
Which Operating Systems are you using?

[X] Linux
[ ] macOS
[ ] Windows

Python Version
3.11.5
axolotl branch-commit
Branch: main Commit: 1e56b88cde14826712dab1d42bffa4ff201969d9
Acknowledgements

[X] My issue title is concise, descriptive, and in title casing.
[X] I have searched the existing issues to make sure this bug has not been reported yet.
[X] I am using the latest version of axolotl.
[X] I have provided enough information for the maintainers to reproduce and diagnose the issue.

Hey, could you confirm that loading the base model (without finetune worked) with TGI?
Secondly, could you try another tool for loading, just using axolotl cli inference or vllm?

Hey @NanoCode012, thanks for the quick reply.
I can confirm that loading the base model (togethercomputer/RedPajama-INCITE-Base-3B-v1) works with TGI. Here's the launch output:

And here's a quick test:

Lastly, running inference on the finetune via axolotl's inference playground does seem to work (there is some wierdness, like having to press CTRL+D several times and the model not knowing when to shut up, but overall it seems OK):

Let me know what else I can do to help troubleshoot.

Could you try the fine-tuned model with another tool such as vllm? We want to make sure it's not TGI.

@NanoCode012 apologies for the delay. Running inference on the model with vllm does seem to work:

Your thoughts? Definitely seems like the issue is with TGI, but I'm not fully convinced because running the base model with TGI works just fine. Something about the training process with axolotl is introducing a change that breaks model loading in TGI.

Would it be possible to load the model and print out the layers? Check if that missing layer is there between the base and fine-tuned model.

Here's a comparison.
base model:

finetune:

As far as I can tell, they are identical. What strikes me as odd are the multiple references to "FlashGPTNeoX", e.g. FlashGPTNeoXModel(config, weights), flash_neox_modeling.py, etc. I suspect TGI attempts to convert the architecture to some sort of flash-attention compatible version, and in the process, something breaks:

Unfortunately, no response so far on the issue I opened with them: https://github.com/huggingface/text-generation-inference/issues/1460

Here's the transformers implementation of the `GPTNeoXRotaryEmbedding` module. My guess is it has something to do with how `inv_freq` is set with `register_buffer(...)` rather than a self.inf_freq attribute.

yeah, I think it's a transformers bug.
            persistent (bool): whether the buffer is part of this module's
                :attr:`state_dict`.

Apologies for the delayed response @winglian @NanoCode012. What do you recommend I do? Should I retrain + export model with an earlier version of transformers, presumably before this bug was introduced?

Closing this issue, as the TGI team found a fix that was included in the latest release. Thanks for the time and attention!


slash  commands can't be saved

Describe the bug
After adding a custom slash command, the save/saveAndClose buttons are active but no save is performed. I can leave the settings only by selecting a other item in the menu. Then the promt "discard changes" appears.
To Reproduce
Steps to reproduce the behavior:

Go to 'Commands' tab
Enable 'custom commands'
Click on '+'
fill name and description
click on 'save'
no save is performed

Expected behavior
I expect the new command is created.
Versions:

Adapter version: v2.1.2
JS-Controller version: 5.0.12
Node version: v18.17.1
Operating system: Debian GNU/Linux 11 (bullseye) [in docker]

Which version of Admin do you have installed?
Are the save buttons enabled or disabled?
If disabled, the form validation found an error in your inputs.
If the buttons are clickable... can you check the browser console (F12) if there are any errors logged?

Admin-Version: 6.10.1
The save buttons are enabled.
iob-test is a existing and running command.
The call stack shows the error after adding a new one mynewcommand without parameters and saving it.
<TOKEN-DELETED> instrument.ts:144
<empty string> instrument.ts:144
👍 instrument.ts:144
<empty string> 2 instrument.ts:144
iob-test instrument.ts:144
Test-Befehl instrument.ts:144
opt01 2 instrument.ts:144
nynewcommand instrument.ts:144
myNewCommandDesc instrument.ts:144
Uncaught (in promise) TypeError: s is null
    value JsonConfig.jsx:415
    value JsonConfig.jsx:418
    value JsonConfig.jsx:428
    value JsonConfig.jsx:426
    t JsonConfig.jsx:478
    Babel 9
    value JsonConfig.jsx:519
    onSave JsonConfig.jsx:577
    onClick SaveCloseButtons.js:84
    React 11
    o helpers.ts:98
JsonConfig.jsx:415:32

This is an issue of the admin adapter.
It's already fixed in the latest admin version. Tested with admin 6.10.4 and here it's working as expected.

Thank you!


Add Opera, please

Hello 👋 Can you explain the context in which you are using this tool and why you need mappings for Opera? Opera's history is a bit complex but thankfully Can I Use and Browserslist already support it.

Hello. I planned to use this tool as a reference :)


Always use compression when talking to Elasticsearch

We wrote all this code for compressing our Elasticsearch traffic… why not use it?!

Would it perhaps make more sense to keep the option but to change the default?

I considered it, but is there any scenario in which we wouldn't want to use compression?

iirc we saw that compression increases CPU load on both the cluster and the application using the client, we might want to be able to turn it off. Not especially bothered though.


RDKTV-8205 Splash screen not showing after bootloader screen when lau…

…nching Factory app

Will create a new one


Alberto, Good day !

Alberto, can you add to code something like this
https://www.google.com/search?q=AES+CBC+attack+github&oq=AES+CBC+attack+github&aqs=chrome..69i57j0.11557j0j7&sourceid=chrome&ie=UTF-8
?
For example https://github.com/TheCrowned/padding-oracle-attack
https://github.com/neuhalje/aes_padding_oracle_attack
Thank You.

I know how to do the Padding oracle attack, but the "attack" requires some specific conditions to be performed.
We don't have those conditions in the BTC wallets. sorry.

Thank you for your prompt reply Mr." Extraordinary";)
Your code is fastest !!!!

BIG THANK YOU ALBERTO !

By the way, your keyhunt on a computer with 512 GB of RAM is faster than a Zelar cluster with 400 video cards and the JeanLuc code. )))))

Well, i need to disagree with that, I know my code and his capabilities but the JeanLuc Code is faster with GPU  and is the fastest code to do that.
BSGS is totally different of Kangaroo, those programs have the same objective but the way to achievement that is totally different, Kangaroo break a World record for 114 bits (Puzzle 115).
My code with BSGS algorithm will never break a record even with 10000 Computers is almost impossible for BSGS do that.
Regards.

By the way, your keyhunt on a computer with 512 GB of RAM is faster than a Zelar cluster with 400 video cards and the JeanLuc code. )))))

Well, i need to disagree with that, I know my code and his capabilities but the JeanLuc Code is faster with GPU and is the fastest code to do that.
BSGS is totally different of Kangaroo, those programs have the same objective but the way to achievement that is totally different, Kangaroo break a World record for 114 bits (Puzzle 115).
My code with BSGS algorithm will never break a record even with 10000 Computers is almost impossible for BSGS do that.
Regards.

Luis, ))))) your code can do this:
[+] Sorting<PHONE_NUMBER> elements... Done!
Total<PHONE_NUMBER>6690048000 keys in 30 secTotal<PHONE_NUMBER>2586880000 keys in 60 secTotal<PHONE_NUMBER>9054080000 keys in 90 seconds:
756 353 225 545 045 333 keys/s Yes 756 Peta !!!! ))))
But Kangaro making only 500 Mega at one gtx2800 )))))))
But unfortunately 756 Peta is no enough for get privkey (((( Im cry, but, I like Your Codes, thank you for them.
Regards.

Again i need to be in disagree, those program are different and also have a different way to calculate the current keys/s.
Kangaroo is a probabilistic program it use the birthday paradox so is a little difficult determine how much real keys is testing, Usually for the real result in kangaroo you need to calculate the square of the keys, in your example you say 500 Megakeys por kangaroo so the real speed is about 500 M * 500 M that is 2.5x10^17  that is about 250 Petakeys/s but this is a mere approximation.
Trust me I already check that.
Regards!

Hi, again ))
Luis, BSGS of Jean Luck is soft what need a mach tuning - if tuning is wrong, his BSGS not find 32,64 Bits keys !!! I was research this about a month, I not like BSGS from Jean Luck because of tuning and need a MACH memory !!! for example  all PC memory 64,128 GB his code eating, spped from some Mkeys to 10(ten) keys per second, end.... tadummm 4h for calculation and after tadamm -  all of memory end.
kangaroo, maybee but his kangaroo not can search more then 128 bytes and hi not like I think key subtraction(but  like this Idea and I think this method has a perspective)
Of course I Trust You Luis !!!! )))
I will waiting code updates from you and I hope I can test and use them.
Regard !!! ;)


barrier: setup barrier virtual kvm

Barrier is a fork of Synergy that focuses on stability and being simple
and free.
This installer is not completely hands-off. It requires permission
elevation because it needs to take control of your mouse (client) or add
a virtual monitor (server). The Barrier installer also asks to install
Bonjour (for discovery). It installs into Program Files. Seems like
nonportable is the right bucket.
This json is based on:
https://gist.github.com/pluser/239add9975080a01e2bb93b28e174acb
I changed the description and formatting.

Thank you!


Adding dates would make this repository more awesome.

In tech, it's always good to know when the utility of a particular link on the web diminishes and we should leave it to the user to decide. I suggest adding publish dates to every link included on this README.
Suggest also adding this to Contribution Guidelines.

I would be happy to add this for blogs/articles and videos.
It doesn’t seem that tools and documentation would need that.

Agreed. Can update the pull request to reflect this. Although, even tools and documentation become obsolete with different versions.

Even they become obsolete they stop being awesome and we will just remove them. I only wanna keep relevant stuff in the list.

Makes sense.

Feel free to go for the pull request.

Also added that line in Contribution guidelines. Please accept pull request.

I have another open pull request at the top of the page. This is the change to the Contribution guidelines.


Make a random move

Depends on issues :

#31.

Task consists of next steps:

Use a routine from #31 to generate list of available steps.
Get random move from list and apply it to the game.
Implement command .move.random.

Taken, Babrochky

Taken, Babrochky

The task is locked.
Please, resolve task #31 before.

I'll take it

Done  #273


Incremented version to 1.3.5

Signed-off-by: Liang<EMAIL_ADDRESS>Description
Increment version to 1.3.5
Category
Maintenance
Issues Resolved
https://github.com/opensearch-project/opensearch-build/issues/2348
Check List

[ ] New functionality includes testing
[ ] New functionality has been documented
[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #1071 (a2cd970) into 1.3 (bbe43c1) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              1.3    #1071   +/-   ##
=======================================
  Coverage   71.98%   71.98%
=======================================
  Files          87       87
  Lines        1906     1906
  Branches      242      242
=======================================
  Hits         1372     1372
  Misses        480      480
  Partials       54       54

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

Hi @peternied, thx for your review. I've changed the signoff in both commit and comment, and CI is passing now.


[dv] Case 'CompareCtrConsistency' split cases '*Done' & '*Waiting'

The sequence in case 'CompareCtrConsistency' tried to inject errors in
rom_ctrl_compare.addr_q. However, it didn't handle injecting errors
when the FSM of rom_ctrl_compare was in state_q=Waiting correctly.
The case has been split between CompareCtrConsistencyWaiting and
CompareCtrConsistencyDone and each of them handle error injection in
states Waiting and Done respectively.
For CompareCtrConsistencyWaiting the delay before injecting an error
has also been reduced by a fifth to increase the chances of the FSM in
Waiting state.

Sorry to be annoying, but I think this is still going to need a bit of squashing. And I've been annoying and have just caused you to need another rebase (by merging e2fb40c15f5fbcd2eb809c48cbab270feef1233b). Sorry!
Anyway, I'm hoping that you can use interactive rebase to expand the "sorting conflicts out" commit over the other two, so we should end up with something nice and clean.


Training a model from multiple images

Hi!
I am trying to train LodeSTAR on multiple images - they are all small snapshots of particles of slightly different shapes and sizes.
Unfortunately I only noticed in the provided examples that the model was trained on a dataset generated from one image only.
Perhaps there is way to somehow utilize the SequentialGenerator?
Thanks in advance :)

Hi! No problem, to train on multiple examples, simply do:
import random
my_crops = [crop_1, crop_2, ...]

random_crop = dt.Value(lambda: random.choice(my_crops))

model = dt.models.LodeSTAR()
model.fit(random_crop, batch_size=8, epochs=50, steps_per_epoch=100)


lxd.migrate leaves snapshots in broken state

Required information

Distribution: Ubuntu
Distribution version: 18.04
The output of "lxc info" or if that fails:

config:
  core.https_address: '[::]'
  core.trust_password: true
api_extensions:
- storage_zfs_remove_snapshots
- container_host_shutdown_timeout
- container_stop_priority
- container_syscall_filtering
- auth_pki
- container_last_used_at
- etag
- patch
- usb_devices
- https_allowed_credentials
- image_compression_algorithm
- directory_manipulation
- container_cpu_time
- storage_zfs_use_refquota
- storage_lvm_mount_options
- network
- profile_usedby
- container_push
- container_exec_recording
- certificate_update
- container_exec_signal_handling
- gpu_devices
- container_image_properties
- migration_progress
- id_map
- network_firewall_filtering
- network_routes
- storage
- file_delete
- file_append
- network_dhcp_expiry
- storage_lvm_vg_rename
- storage_lvm_thinpool_rename
- network_vlan
- image_create_aliases
- container_stateless_copy
- container_only_migration
- storage_zfs_clone_copy
- unix_device_rename
- storage_lvm_use_thinpool
- storage_rsync_bwlimit
- network_vxlan_interface
- storage_btrfs_mount_options
- entity_description
- image_force_refresh
- storage_lvm_lv_resizing
- id_map_base
- file_symlinks
- container_push_target
- network_vlan_physical
- storage_images_delete
- container_edit_metadata
- container_snapshot_stateful_migration
- storage_driver_ceph
- storage_ceph_user_name
- resource_limits
- storage_volatile_initial_source
- storage_ceph_force_osd_reuse
- storage_block_filesystem_btrfs
- resources
- kernel_limits
- storage_api_volume_rename
- macaroon_authentication
- network_sriov
- console
- restrict_devlxd
- migration_pre_copy
- infiniband
- maas_network
- devlxd_events
- proxy
- network_dhcp_gateway
- file_get_symlink
- network_leases
- unix_device_hotplug
- storage_api_local_volume_handling
- operation_description
- clustering
- event_lifecycle
- storage_api_remote_volume_handling
- nvidia_runtime
- container_mount_propagation
- container_backup
- devlxd_images
- container_local_cross_pool_handling
- proxy_unix
- proxy_udp
- clustering_join
- proxy_tcp_udp_multi_port_handling
- network_state
- proxy_unix_dac_properties
- container_protection_delete
- unix_priv_drop
- pprof_http
- proxy_haproxy_protocol
- network_hwaddr
- proxy_nat
- network_nat_order
- container_full
- candid_authentication
- backup_compression
- candid_config
- nvidia_runtime_config
- storage_api_volume_snapshots
- storage_unmapped
- projects
- candid_config_key
- network_vxlan_ttl
- container_incremental_copy
- usb_optional_vendorid
- snapshot_scheduling
- container_copy_project
- clustering_server_address
- clustering_image_replication
- container_protection_shift
- snapshot_expiry
- container_backup_override_pool
- snapshot_expiry_creation
- network_leases_location
- resources_cpu_socket
- resources_gpu
- resources_numa
- kernel_features
- id_map_current
- event_location
- storage_api_remote_volume_snapshots
- network_nat_address
- container_nic_routes
- rbac
- cluster_internal_copy
- seccomp_notify
- lxc_features
- container_nic_ipvlan
api_status: stable
api_version: "1.0"
auth: trusted
public: false
auth_methods:
- tls
environment:
  addresses:
  - <IP_ADDRESS>:8443
  - <IP_ADDRESS>:8443
  - <IP_ADDRESS>:8443
  - <IP_ADDRESS>:8443
  architectures:
  - x86_64
  - i686
  certificate: |
    -----BEGIN CERTIFICATE-----
    MIIFYTCCA0mgAwIBAgIQbFGsjT7WdyF+++2ViYbE0DANBgkqhkiG9w0BAQsFADA7
    MRwwGgYDVQQKExNsaW51eGNvbnRhaW5lcnMub3JnMRswGQYDVQQDDBJyb290QGxp
    bnV4LWRlc2t0b3AwHhcNMTkwMzI4MTM0NDMwWhcNMjkwMzI1MTM0NDMwWjA7MRww
    GgYDVQQKExNsaW51eGNvbnRhaW5lcnMub3JnMRswGQYDVQQDDBJyb290QGxpbnV4
    LWRlc2t0b3AwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDmHFehF1Co
    hf4YT4XW1bbjS1i5Z2ikjCnxUc1A2/K1u++ED7En3oGvc7aqjjMiKdkeKy15FM7T
    MdW8JvogwN2ov2SUgdD5QrBfG8mm54Kgbsa1xRqtG6GqZyDMCEhMy8UezD3Uf5LP
    J7QCf7VcGzSbhWTJ02e8dOGhjxuXq6LIJnckgF22tNVl9DG6I1W5neORGjHbtTKI
    GzJR71pOQAawasuj/YEtgIq4BPMYWcLkhoaWz+9uhxvaJBWEC3SRrHmQbfA6F2+G
    hOkG+RhJ5s2aYRrXUhJTvbn0tojrgUi43gEqSMB3iE2XFRLB+S/v7FP5EyWJU/mf
    I6yQwsD67dH8HPdc7GOdqFt1GEf3lJSosbcc0ZiSVCmHIm/79SjMT9RgpxnYSSkw
    /aRBc+7rLJU5wR5K+UWqmi6Wl667OEXwsaTEfGmtne0OR1pXWhqcp8a+khXcZ9zF
    mz3Uucx5aSF44lf4OMt83ZRRsSdOZ6er0lXAek5nwPc6+gC2lohvQmuu6tIycMLc
    lITUBnXJVvwQdF73tft5JsVi3RBAv+o3BDH1a4ni6yvkihz1rinBFnwVHQZi1pbw
    AsUta1GN9BpYeByfGCwuTi3xdMGu5Y2vekLD/DzNmUHzQarqLnrSFBT4WYU2e/W2
    qsnkvWolrOAfiOib7CT7K2azSpGw0jjOOwIDAQABo2EwXzAOBgNVHQ8BAf8EBAMC
    BaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAqBgNVHREEIzAh
    gg1saW51eC1kZXNrdG9whwQKAAEvhwQKAAM8hwTAqHoBMA0GCSqGSIb3DQEBCwUA
    A4ICAQBRLSjAZQux+Bg02hbfgHNIirPo2uBjMIw3FsSGDVt7rWFmxdpZyybTgyHk
    E+a3GZt4pT9c8CTexP5Td9biaT3sw99uI4bExcurQNGBUaNY94B31lmQFVxvthrP
    +Ov5J7B8+hnPP+Im9iK0aGZNQT6q2oyl+Hpy0M6tpmVT8p+3kcvtmcUVTw8d/l5y
    b3q2uY6gJQLHgYP9AfVFLF8b2PyeCixsu5PT7vtfVuefgFPb/Q5qZvmRa8T6Min3
    ECSRgj8h64mSs/xvxUMFdkuc3cGiFYnpN/x6nZsPizPiXZgMUi9bdN1tV5/M1V5d
    WQhK7gCpPs0hZ6FdGLblJvXGlBRKPKwt1FlIyln94tyeWvACLjvnly1alBZmZSVV
    VXw1W2MtghkV1G1zbsF8d4fYHxtvpLblipS/nqMuTO0WeB2gweGGVNAZx8j+y8QH
    8c1+NigL7VVGCqGbrmxdwOoaYBUYDtT1JBCz4bLf6yKqW6shz+KawL1z304ao0EU
    8lSJrbqTtnrPI8RXzTqhRs64V5fYHUmY1ghAziMBUxcj26ryun7bznF1JkOJA7rD
    Gun+VRK6rmjm425QX4/mpqb6DM00Cd8RJ/dai1cs3rpLr2sNeN5/aD6k0GlzqrCy
    sdYhDVrsfTXIOWo/1WZgZywaNksm2pVwhWZ3TYfF/AspPkdXgA==
    -----END CERTIFICATE-----
  certificate_fingerprint: 40649f6d73d904fdee6bd2f36c73f13f4a6b895d87b428b6d996e0b58f40f7a2
  driver: lxc
  driver_version: 3.1.0
  kernel: Linux
  kernel_architecture: x86_64
  kernel_features:
    netnsid_getifaddrs: "true"
    seccomp_listener: "true"
    shiftfs: "false"
    uevent_injection: "true"
    unpriv_fscaps: "true"
  kernel_version: 5.1.4-xanmod3
  lxc_features:
    mount_injection_file: "true"
    network_gateway_device_route: "false"
    network_ipvlan: "false"
    network_l2proxy: "false"
    seccomp_notify: "false"
  project: default
  server: lxd
  server_clustered: false
  server_name: linux-desktop
  server_pid: 5940
  server_version: "3.13"
  storage: btrfs
  storage_version: "4.4"

Issue description
Ran lxd.migrage after I installed LXD from snap and didn't observer any problem during the operation. However, when I was working with a container a moment ago and attempted to restore to an earlier snapshot:
Error: rename /var/snap/lxd/common/lxd/storage-pools/storage/containers-snapshots/alpine39-dev/pre-setprep /var/snap/lxd/common/lxd/storage-pools/storage/containers-snapshots/alpine39-dev/pre-setprep.ro: no such file or directory

architecture: x86_64
config:
  boot.autostart: "no"
  image.architecture: amd64
  image.description: Alpine 3.9 amd64 (20190414_13:00)
  image.os: Alpine
  image.release: "3.9"
  image.serial: "20190414_13:00"
  limits.cpu: "2"
  limits.memory: 1740MB
  volatile.base_image: 197c02508fb0f3cee1fa2829e414172f722a17372e861dd913a876271ab27742
  volatile.eth0.hwaddr: 00:16:3e:65:2e:6c
  volatile.idmap.base: "0"
  volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":165536,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":165536,"Nsid":0,"Maprange":65536}]'
  volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":165536,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":165536,"Nsid":0,"Maprange":65536}]'
  volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":165536,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":165536,"Nsid":0,"Maprange":65536}]'
  volatile.last_state.power: STOPPED
devices: {}
ephemeral: false
profiles:
- default
stateful: false
description: ""

config: {}
description: Default LXD profile
devices:
  eth0:
    name: eth0
    nictype: bridged
    parent: virbr1
    type: nic
  root:
    path: /
    pool: storage
    type: disk
name: default
used_by:
- /1.0/containers/debian9-dev
- /1.0/containers/debian9-dev/before-sysprep
- /1.0/containers/ubuntu1804-dev
- /1.0/containers/oracle7-dev
- /1.0/containers/oracle7-dev/before-sysprep
- /1.0/containers/oracle7-dev/after-sysprep
- /1.0/containers/debian9-dev/before-sysprep-fixedhostname
- /1.0/containers/debian9-dev/after-sysprep
- /1.0/containers/ubuntu1804-dev/before-sysprep
- /1.0/containers/ubuntu1804-dev/after-sysprep-fixed
- /1.0/containers/alpine39-dev
- /1.0/containers/alpine39-dev/pre-setprep
- /1.0/containers/rainloop-stag
- /1.0/containers/rainloop-stag/before-sysprep
- /1.0/containers/rainloop-stag/after-sysprep
- /1.0/containers/archlinux-dev
- /1.0/containers/archlinux-dev/before-sysprep

+---------+-------------+--------+--------------------------------------------+---------+
|  NAME   | DESCRIPTION | DRIVER |                   SOURCE                   | USED BY |
+---------+-------------+--------+--------------------------------------------+---------+
| lxd     |             | btrfs  | /var/snap/lxd/common/lxd/storage-pools/lxd | 0       |
+---------+-------------+--------+--------------------------------------------+---------+
| storage |             | btrfs  | /var/lib/snapd/hostfs/storage/lxd          | 35      |
+---------+-------------+--------+--------------------------------------------+---------+

config:
  source: /var/lib/snapd/hostfs/storage/lxd
  volatile.initial_source: /storage/lxd
description: ""
name: storage
driver: btrfs
used_by:
- /1.0/containers/alpine39-dev
- /1.0/containers/alpine39-dev/snapshots/pre-setprep
- /1.0/containers/archlinux-dev
- /1.0/containers/archlinux-dev/snapshots/before-sysprep
- /1.0/containers/debian9-dev
- /1.0/containers/debian9-dev/snapshots/after-sysprep
- /1.0/containers/debian9-dev/snapshots/before-sysprep
- /1.0/containers/debian9-dev/snapshots/before-sysprep-fixedhostname
- /1.0/containers/lxdmosaic
- /1.0/containers/lxdmosaic/snapshots/After sys_prep
- /1.0/containers/lxdmosaic/snapshots/after-lxdmosaic-configuration
- /1.0/containers/lxdmosaic/snapshots/commit-13ccb65-dnssslfix
- /1.0/containers/lxdmosaic/snapshots/commit-13ccb65-mysqlfix-with-remotegit
- /1.0/containers/lxdmosaic/snapshots/commit-13ccb65c07b18641768d9f970401d5d10e39afe6
- /1.0/containers/lxdmosaic/snapshots/commit-591d7d6
- /1.0/containers/lxdmosaic/snapshots/commit-591d7d6-from-v0.3.0
- /1.0/containers/lxdmosaic/snapshots/v0.2.0-from-commit-13ccb65-dnssslfix
- /1.0/containers/lxdmosaic/snapshots/v0.3.0-from-v0.2.0
- /1.0/containers/lxdmosaic/snapshots/v020
- /1.0/containers/oracle7-dev
- /1.0/containers/oracle7-dev/snapshots/after-sysprep
- /1.0/containers/oracle7-dev/snapshots/before-sysprep
- /1.0/containers/rainloop-stag
- /1.0/containers/rainloop-stag/snapshots/after-sysprep
- /1.0/containers/rainloop-stag/snapshots/before-sysprep
- /1.0/containers/ubuntu1804-dev
- /1.0/containers/ubuntu1804-dev/snapshots/after-sysprep-fixed
- /1.0/containers/ubuntu1804-dev/snapshots/before-sysprep
- /1.0/images/071cb9ea1f69458e7626ecb507c7d30cf1cf5a545bab381ac444d09d324d2b8f
- /1.0/images/197c02508fb0f3cee1fa2829e414172f722a17372e861dd913a876271ab27742
- /1.0/images/6700bee14eb3034ba4bd0c3d0165f938faa161d2690e919465aab2946490689b
- /1.0/images/b3fa37f55bb4244619202f9f38171efbacf133f6a2b339ad469ef68e92869f91
- /1.0/images/c4672d3f782457ae2369f89c45f78838875c2298e92b76b1fbb2f936bf9b3a38
- /1.0/profiles/default
- /1.0/profiles/staticip
status: Created
locations:
- none

Steps to reproduce

snap install --stable lxd
lxd.migrate
lxc restore

Information to attach
The problem seem to stem from, there is no container-snapshots under /storage/lxd ? Workaround for this is to symlink container-snapshots to snapshots? Is this intended behaviour?
Regards

Hmm, kinda feels like a missing migration step when upgrading from 3.0.x to 3.13.
@monstermunchkin can you look into this one? I think we should:

Setup a LXD 3.13 with btrfs and confirm that snapshots land in containers-snapshots
Setup a LXD 3.0.3 with btrfs and confirm that snapshots land in snapshots
Upgrade the 3.0.3 to 3.13 the "normal" way (so no snap involved, just start the 3.13 binary) and confirm we see this issue post-upgrade for containers that have snapshots pre-upgrade
Add needed patch to rename snapshots to containers-snapshots on upgrade
Re-try the upgrade from 3.0.3 and confirm that snapshots behave then

Setup a LXD 3.13 with btrfs and confirm that snapshots land in containers-snapshots

Confirmed.

Setup a LXD 3.0.3 with btrfs and confirm that snapshots land in snapshots

Confirmed.

Upgrade the 3.0.3 to 3.13 the "normal" way (so no snap involved, just start the 3.13 binary) and confirm we see this issue post-upgrade for containers that have snapshots pre-upgrade

I cannot confirm this. The directory snapshots is renamed to containers-snapshots, and the symlink is updated accordingly.

Upgrade the 3.0.3 to 3.13 the "normal" way (so no snap involved, just start the 3.13 binary) and confirm we see this issue post-upgrade for containers that have snapshots pre-upgrade

I cannot confirm this. The directory snapshots is renamed to containers-snapshots, and the symlink is updated accordingly.

Are there differences between migrating from repository to snap with lxd.migrate and the normal way?
ls -l /storage/lxd
drwxr-xr-x 1 root root 166 Jun  7 04:28 containers
lrwxrwxrwx 1 root root   9 Jun  7 03:24 containers-snapshots -> snapshots
drwxr-xr-x 1 root root   0 Mar 28 10:39 custom
drwxr-xr-x 1 root root 640 Jun  7 04:11 images
drwxr-xr-x 1 root root 166 Jun  7 03:46 snapshots

Bear in mind I had to manually create the symlink above.
With that said, I like to point out possible differences from your setup: a) /storage is a mounted disk and b) /storage/lxd is a btrfs subvolume. Why you may not be able to replicate it? If I was aware snapshots were broken when I completed lxd.migrate. I would have kept the output because something seems to be amiss here, a silent fail?

There shouldn't really be a difference. The way we handle the migration is by moving /var/lib/lxd over to /var/snap/lxd/common/lxd, rewriting a few database entries which included hardcoded paths and then starting LXD, LXD on startup then runs all the DB upgrades and patches as a normal update would.

@monstermunchkin the problem is that the migration patches do not trigger mounting the storage pools, as a result only those which were mounted at the time get transitioned.
Got a fix for it.


🐛 BUG: Can't put script path after --var

Which Cloudflare product(s) does this pertain to?
Wrangler core
What version(s) of the tool(s) are you using?
3.14.0
What version of Node are you using?
Node.js v20.6.1
What operating system are you using?
MacOS
Describe the Bug
Running a command such as wrangler deploy --no-bundle --env ${env} --var RELEASE:${release} dist/index.js will put the script into env vars and break (if no script defined in wrangler.toml or if the script that is defined isn't valid for deployment -- this may also just break in general since the env name will be invalid)
Output:
 ⛅ wrangler 3.14.0
-------------------
Your worker has access to the following bindings:
- ...
- Vars:
  - ENVIRONMENT: "staging"
  ...
  - RELEASE: "(hidden)"
  ...
  - dist/index.js: "(hidden)"
Total Upload: 4.36 KiB / gzip: 1.05 KiB

Instead, you need to do wrangler deploy dist/index.js --no-bundle --env ${env} --var RELEASE:${release}
I'd expect the behaviour to be providing another --var if I wanted another (same as we do in wrangler pages dev)
Please provide a link to a minimal reproduction
No response
Please provide any relevant error logs
No response

Unfortunately this is actually expected behaviour, and is a consequence of how yargs parses arrays.
wrangler deploy --no-bundle --env ${env} --var RELEASE:${release} dist/index.js is parsed as:
{
  "no-bundle": true,
  "env": ${env},
  "var": ["RELEASE:${release}", "dist/index.js"]
}

To end the array, you have to input --:
wrangler deploy --no-bundle --env ${env} --var RELEASE:${release} -- dist/index.js


Documentation wrong - Create a Component

In Example on right side, mjml --register but now mjml --init-component

Hey @tinohager, thanks for reporting. We'll fix it ASAP and keep you posted!


WIP: Meta-data persistence and "type" field for node.

Closes #8
Added Metadata persistence storage and and added "type" for node.
@dawndebanik How to add 2 tests for same method call? The first one is expecting the data for the second one.
Signed-off-by: Pronoy Mukherjee<EMAIL_ADDRESS>

If you need any help on this, let me know.

If you need any help on this, let me know.

If you need any help on this, let me know.

Actually, I can't mock that a file exists, that's why the coverage is not 100%. I checking other options.

If you need any help on this, let me know.

Actually, I can't mock that a file exists, that's why the coverage is not 100%. I checking other options.


Wrong Parameter Name

In command stated above
"Get-CsMeetingMigrationStatus -UserId<EMAIL_ADDRESS>the parameter "UserId" is used. However that parameter does not exist and is instead called "-Identity".

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

ID: 990ca74b-6bba-a14b-071a-d13adb723a4c
Version Independent ID: 52f55a58-30ce-c140-3ee7-8042b1d105f0
Content: Setting up the Meeting Migration Service (MMS)
Content Source: Skype/SfbOnline/audio-conferencing-in-office-365/setting-up-the-meeting-migration-service-mms.md
Service: skype-for-business-online
GitHub Login: @tonysmit
Microsoft Alias: tonysmit

Referencing merged PR https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/pull/1253

@zweckj Thank you for submitting this feedback.
From our understanding the issue has been resolved. If you feel it hasn't been resolved please re-open this issue.

@officedocsbot close


Mockup for "Climate Maps" page

This page would house the four "climate overview" maps that have multiple data layers.

I like this mock! For our future selves: we could be adding an infrastructure layer to this page, so consider how that might impact the layout and text. That is definitely NOT happening in this launch though so can be ignored for now. I also don't think we are doing the click-for-data pathway in this app like we are in NCR, so we might omit that part of the text.

I like it too, and I think a fifth "layermap" won't be too much. I did
wonder if people will think the names of the data layers are links, and be
annoyed when they try to click them instead of the map, but I also wanted
to list the layers so that one has an idea of what's behind the first map.
On Thu, Sep 21, 2023 at 3:44 PM Charlie Parr @.***>
wrote:

I like this mock! For our future selves: we could be adding an
infrastructure layer to this page, so consider how that might impact the
layout and text. That is definitely NOT happening in this launch though so
can be ignored for now. I also don't think we are doing the click-for-data
pathway in this app like we are in NCR, so we might omit that part of the
text.
—
Reply to this email directly, view it on GitHub
https://github.com/ua-snap/arctic-eds/issues/310#issuecomment-1730443630,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABHC4BP5JVMIQHYFVII3VF3X3S7OJANCNFSM6AAAAAA5CHAMBU
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Carolyn Rosner
Graphic Designer
Scenarios Network for Alaska + Arctic Planning http://www.snap.uaf.edu/
University of Alaska Fairbanks
760-920-3721


Problems with optimisticResponse and reducer updating a list query

I've tried to reduce my example to the minimum. Basically, i have this simple schema set up on the server side:
const typeDefs = [`
  type Query {
    items: [Item]
  }

  type Mutation {
    addItem(name: String!): Item
  }

  type Item {
    id: ID!
    name: String!
  }

  schema {
    mutation: Mutation
    query: Query
  }
`];

Item ids are auto-incremented integers. All items are displayed in a list, using the item query defined in the schema above to connect data. When the loading field is set, a loader is displayed instead of the list. Also, a reducer is used to update the query result whenever a result from addItem mutation is incoming:
import React from 'react';
import { graphql } from 'react-apollo';
import gql from 'graphql-tag';
import update from 'immutability-helper';

function Item({ item: { id, name } }) {
  return

{name}

ID {id}

;
}

function ItemList({ data: { items, loading } }) {
  if (loading) return
loading...
;
  return
{items.map(item => <Item key={item.id} item={item} />)}
;
}

const itemQuery = gql`
  query items {
    items { id name }
  }
`;

export default graphql(itemQuery, {
  options() {
    return {
      reducer: (prev, { operationName, type, result: { data } }) => {
        if (type === 'APOLLO_MUTATION_RESULT' && operationName === 'addItem' && data) {
          return update(prev, { items: { $push: [data.addItem] } });
        }
        return prev;
      },
    };
  },
})(ItemList);

Right below the item list is a simple form used to add new items to the list. This addItem mutation invoked by this form is set up with an optimisticReponse that generates a temporary uuid as the items id (instead of the server generated auto-incrementing integers):
import React from 'react';
import uuid from 'uuid/v4';
import gql from 'graphql-tag';
import { graphql } from 'react-apollo';

class ItemForm extends React.Component {
  constructor(props) {
    super(props);
    this.state = { name: '' };

    this.handleNameChange = this.handleNameChange.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
  }

  handleNameChange(event) {
    this.setState({ name: event.target.value });
  }

  handleSubmit(event) {
    this.props.add(this.state.name);
    this.setState({ name: '' });
    event.preventDefault();
  }

  render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <input type="text" name="name" value={this.state.name} onChange={this.handleNameChange} />
        <input type="submit" value="Add Item" />
      </form>
    );
  }
}

const addItem = gql`
  mutation addItem($name: String!) {
    addItem(name: $name) {
      id name
    }
  }
`;

export default graphql(addItem, {
  props: ({ mutate }) => ({
    add: name => mutate({
      variables: { name },
      optimisticResponse: {
        __typename: 'Mutation',
        addItem: {
          name,
          __typename: 'Item',
          id: uuid(),
        },
      },
    }),
  }),
})(ItemForm);

To be able to test things out, i added an artificial delay of 5 seconds to the addItem mutation resolver on the server. When i add a single item, the optimisticResponse is immediately reflected in the item list and 5 seconds later, the server id replaces the generated temporary uuid.
When i add another item while the first mutation is not resolved, things start going south. The list already has the (temporary optimisticResponse) first added item. Once the first mutation resolves, the list goes to a waiting state - and i don't know why.
I've added a short video of this with Apollo Dev Tools opened so you can follow my writings. Whatever happens triggers the loading field. In the store, the temporary item is replaced with the server-approved item once the mutation is resolved, but the ROOT_QUERY, which is inspected in the dev tools, somehow retains the old temporary item until all stacked/parallel optimisticResponse mutations are resolved. This is reproducible with more than 2 mutations in parallel aswell.

Why? What i would've expected is each item being added to the list immediately in its temporary optimisticResponse version and being replaced after 5 seconds when the server resolved the mutation - not being affected by any other mutations.

@codepunkt Thanks for the really thorough problem description! In short, what I read is that the following happens:

You make a first mutation with optimistic update, the first optimistic item is shown
You make a second mutation with optimistic update, both optimistic items are shown
The first mutation resolves with the actual result, but your UI now shows the loading state
The second mutation resolves with the actual result, but the UI still shows the loading state.

I'm not 100% sure about number 4. Does it stay in loading after all mutations are resolved, or does the UI actually display the real mutation results?
What you found sounds like it could be related to #1039, but in your case I'm 99% sure that the problem is due to some bug in Apollo Client. But just out of curiosity, could you try running your example with $unshift instead of $push. I don't think it should make a difference, but if it did, it would be a useful piece of information.
Is there any chance that you could make a small github repo with your reproduction? That would be super helpful, because I could  then run it with a debugger and see what's really happening inside Apollo Client.

@helfer Thanks for looking into this - very appreciated!
It does not stay in loading after all mutations are resolved - it displays the mutation results. Something weird seems to happen in the store. Try to look at the attached gif a few times and you will notice that once the first of two mutations resolves, the resulting item is duplicated in the store because the optimisticResponse item still persists even though the item from the server resolve was received.
Using $unshift instead of $push has the same problem.
You can find a repo with my reproduction at
https://github.com/codepunkt/apollo-optimisticresult-problem-reproduction/

Couldn't solve this as of now. Anyone else got any ideas?

Found the bug and I submit a PR to fix it. The PR explains the cause and solution: https://github.com/apollostack/apollo-client/pull/1144
Haven’t addressed the tests yet, only got your failing case to work @codepunkt. May need to wait until next week to see this merged, but a solution is on the way :+1:

@calebmer @helfer Amazing, thanks a lot!


after update 1.1.6 wiew in widget8 is hidden

After update thge widget is not shown in editor, only in top of the page in the dropdown bit in editor is nothing

Same here. "View in widget 8" is no longer shown after update to 1.1.6.
The simple "View in widget" seems to be working.
Downgrading to 1.1.4 solves the problem (workaround).

have the same problem since v1.1.6

Fixed in 1.1.7. Thank you.

Fix is working. So I think this can be closed. Thx.


[AzConfig] Improve key/value comparison

After work in PR https://github.com/Azure/azure-sdk-for-net-lab/pull/103 and issue https://github.com/Azure/azure-sdk-for-net-lab/issues/109, here is the implementation.

@KrzysztofCwalina @johanste are there more comments in the PR?

I need at least one person to approve my PR so I can merge it. Could someone please take a look?

Assuming that my comments about tests are addressed, I'm good with these changes

Thanks for taking a look @johanste !


Install headless OpenJDK package

This prevents a lot of unneeded dependencies from being installed.

https://ocd.appscale.com:8080/job/Daily Build/5130/


Use master branch of readline

We are using methods not available on a stable release yet.

 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.


Cant build my react-native project on android

since yesterday im getting this error when im trying to run my project:
com.android.build.api.transform.TransformException: Error while generating the main dex list.

I was reading some posts about the issue and I tried to add those lines:
android.useAndroidX=true
android.enableJetifier=true

because when I used stack trace I was getting this error:
Program type already present: androidx.versionedparcelable.CustomVersionedParcelable react native

I added this lines to my local.propeties file but when I did that I have seen that I need to change all my node-module files to use androidx
In addition I was trying to update the package react-native-device-info to the newest version 2.1.2 but still the same result...
React Native version:
react-native-cli: 2.0.1
react-native: 0.50.4

I'm working with visual code because my project is for IOS and Android, so the option to migrate to AndroidX is not relevant for me...
I'm attaching my files:
app/build.gradle:
apply plugin: "com.android.application"

 buildscript {
   repositories {
     maven { url 'https://maven.fabric.io/public' }
   }
   dependencies {
     // The Fabric Gradle plugin uses an open ended version to react
     // quickly to Android tooling updates
     classpath 'io.fabric.tools:gradle:1.+'
   }
 }
 apply plugin: 'io.fabric'
 repositories {
   maven { url 'https://maven.fabric.io/public' }
 }
import com.android.build.OutputFile

project.ext.react = [
    entryFile: "index.js"
]

apply from: "../../node_modules/react-native/react.gradle"

def enableSeparateBuildPerCPUArchitecture = false

def enableProguardInReleaseBuilds = false

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.3"
    dexOptions {
            javaMaxHeapSize "4g"
        }
    defaultConfig {
        applicationId "com.x"
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 14
        versionName "2.3.0"
        multiDexEnabled true
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }
    signingConfigs {
        release {
            if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                storeFile file(MYAPP_RELEASE_STORE_FILE)
                storePassword MYAPP_RELEASE_STORE_PASSWORD
                keyAlias MYAPP_RELEASE_KEY_ALIAS
                keyPassword MYAPP_RELEASE_KEY_PASSWORD
            }
        }
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
            def versionCodes = ["armeabi-v7a":1, "x86":2]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }
        }
    }
}

dependencies {
    compile project(':react-native-orientation')
    compile project(':react-native-device-information')
    compile project(':react-native-ble-manager')
    compile project(':react-native-fabric')
    compile project(':react-native-vector-icons')
    compile project(':react-native-spinkit')
    compile project(':react-native-push-notification')
    compile project(':react-native-picker')
    compile project(':react-native-linear-gradient')
    compile project(':react-native-image-crop-picker')
    compile project(':react-native-firebase')
    compile project(':react-native-fcm')
    compile project(':react-native-config')
    implementation project(':react-native-picker')
    implementation project(':react-native-device-info')
    implementation project(':react-native-fcm')
    implementation project(':react-native-firebase')
    implementation project(':react-native-svg')
    implementation project(':react-native-vector-icons')
    implementation project(':react-native-spinkit')
    implementation project(':react-native-push-notification')
    implementation project(':react-native-linear-gradient')
    implementation project(':react-native-image-crop-picker')
    implementation project(':react-native-config')
    implementation project(':react-native-picker-module')
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.google.android.gms:play-services-gcm:15.0.1"
    implementation "com.android.support:appcompat-v7:28.0.0-rc02"
    implementation "com.facebook.react:react-native:+"  // From node_modules
    implementation 'com.google.firebase:firebase-core:16.0.1'
    implementation 'com.google.firebase:firebase-messaging:17.0.0' //17.3.1
    implementation 'com.android.support:multidex:1.0.3'
    //implementation 'com.google.firebase:firebase-notifications'
    compile('com.crashlytics.sdk.android:crashlytics:2.9.2@aar') {
         transitive = true;
    }

}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}
apply plugin: 'com.google.gms.google-services'
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true

android/build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'com.google.gms:google-services:4.1.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

//com.android.ddmlib.DdmPreferences.setTimeOut(50000)

allprojects {
    repositories {
				// Add jitpack repository (added by react-native-spinkit)
				maven { url "https://jitpack.io" }
        mavenLocal()
        google()
        jcenter()
        // maven{
        //     url 'https://maven.google.com'
        // }
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }

    }
}

ext {
  compileSdkVersion = 28
  targetSdkVersion = 28
  buildToolsVersion = "28.0.3"
  supportLibVersion = "28.0.0-rc02"
  googlePlayServicesVersion = "15.0.1"
  oreoEXPERIMENTAL = "yes"
}

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 28
                buildToolsVersion '28.0.3'
            }
        }
    }
}

my application for androidManifest.xml:
  <application
      android:name=".MainApplication"
      android:allowBackup="true"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:theme="@style/AppTheme"
      tools:replace="android:appComponentFactory"
      android:appComponentFactory="whateverString"
>

Is there anyway to fix this issue for now? I can't run my project suddenly

I got the same issue
react-native info info    React Native Environment Info:     System:       OS: macOS 10.14.4       CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz       Memory: 2.84 GB / 16.00 GB       Shell: 3.2.57 - /bin/bash     Binaries:       Node: 10.8.0 - /usr/local/bin/node       Yarn: 1.9.4 - /usr/local/bin/yarn       npm: 6.5.0 - /usr/local/bin/npm       Watchman: 4.9.0 - /usr/local/bin/watchman     SDKs:       iOS SDK:         Platforms: iOS 12.2, macOS 10.14, tvOS 12.2, watchOS 5.2       Android SDK:         API Levels: 23, 24, 25, 26, 27, 28         Build Tools: 23.0.1, 25.0.0, 25.0.1, 25.0.3, 26.0.1, 26.0.2, 26.0.3, 27.0.3, 28.0.3         System Images: android-22 | Intel x86 Atom, android-22 | Google APIs ARM EABI v7a, android-23 | Intel x86 Atom_64, android-23 | Google APIs Intel x86 Atom, android-23 | Google APIs Intel x86 Atom_64, android-24 | Google Play Intel x86 Atom, android-26 | Google Play Intel x86 Atom, android-27 | Google APIs Intel x86 Atom, android-27 | Google Play Intel x86 Atom, android-28 | Google Play Intel x86 Atom, android-29 | Google APIs Intel x86 Atom     IDEs:       Android Studio: 3.3 AI-182.5<IP_ADDRESS>64788       Xcode: 10.2.1/10E1001 - /usr/bin/xcodebuild     npmPackages:       react: ^16.7.0 => 16.8.6        react-native: 0.59.5 => 0.59.5      npmGlobalPackages:       create-react-native-app: 1.0.0       react-native-cli: 2.0.1       react-native-git-upgrade: 0.2.7       react-native-vector-icons: 4.6.0

@tal987 I would like to advice to upgrade RN to 0.59 because it added 64bit support and Google Play Store will require 64 bit support beginning 1st August 2019. See https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html.
Google's libraries are migrating to AndroidX and causing breakages in apps, see https://developers.google.com/android/guides/releases.

update react-native-device-info to 2.1.2

@Dulmandakh can you tell me how to update my rn version?

@nghiant96 I was mention that I tried that and it didn’t work

@tal987 month ago I upgraded RN project from 0.55.4 to 0.59.8 successfully.
Here are my primary resources on doing that:

The easiest way to upgrade React Native to the latest version
Facebook official 0.59 release announcement, Upgrading to 0.59.

Solution:
for me what that work is this:
https://github.com/facebook/react-native/issues/25292#issuecomment-503034120
hope it will help to others

Same fix for me as for @tal987:

i solved mine with these dependencies

implementation project(':react-native-firebase')
implementation(project(':react-native-push-notification')) {
    exclude group: 'com.google.android.gms'
}
implementation ("com.google.android.gms:play-services-gcm:16.1.0") {
    force = true
}
implementation ("com.google.android.gms:play-services-base:16.1.0") {
    force = true
}
implementation ("com.google.firebase:firebase-core:16.0.9") {
    force = true
}
implementation ("com.google.firebase:firebase-messaging:18.0.0") {
    force = true
}

@tal987 If the problem was solved, you can close this issue. Thanks!


Website not loading

Doesn't load from my place:
ISP:	Claro Colombia
City:	 Bogotá
Region: Bogotá D.C.
Country:	Colombia

Sorry about that. Our server went down and it's up again now.


[Quick Accent] Add foreign quotation marks including guillemets (« and ») and Anführungszeichen („ “) to Quick Accent

Description of the new feature / enhancement
Add additional language-specific quotation marks to Quick Accent, including guillemets (« » used in French) and Anführungszeichen („ “ used in German and many Eastern European languages)
I'd suggest putting all of these under the " key, and perhaps also putting the each of the guillemets under the < or > key respectively.
Scenario when this would be used?
This would be useful when typing a section of French or German text in an English-language document, for example.
Supporting information
See https://type.today/en/journal/quotes (scroll to the bottom) for a list of which languages use which kind of quotation marks.

/dup #29371


"dead_key" button is not correctly converted to label and triggeres twice on second press (QWERTZ keyboard)

Tested versions

Reproduced in 4.3 stable and 4.2 stable

System information
Windows 10 - Godot 4.3 - Compatibility - QWERTZ keyboard
Issue description
I am working on an Input remapping system and ran into an issue with the conversion from a dead_key press into a displayable character. "dead_keys" I am talking about are the keys marked red on the QWERTZ layout in the top right and left:

These buttons have a unique behaviour when writing, as when they are pressed, they output nothing and when pressed again, they will output depending on the next pressed button. examples for the QWERTZ layout include:

first_input
text_output
second_input
text_output
note

^
NONE
^
^^
pressing dead character again outputs it twice

^
NONE
e
ê
pressing compatible character second

^
NONE
SPACE_BAR
^
there is no space after the ^

^
NONE
w
^w
non compatible characters

´
NONE
´
´´
pressing dead character again outputs it twice

´
NONE
e
é
pressing compatible character second

´
NONE
SPACE_BAR
´
there is no space after the ´

´
NONE
w
´w
non compatible characters

the issue
when trying to output the label of the button with OS.get_keycode_string(event.get_key_label_with_modifiers()) the output changes for dead_keys on the second_input and to a diffrent symbol that is not printed on the key.
Steps to reproduce
create a new scene with a control node and use the _input() function:
func _input(event: InputEvent) -> void:
	if event is InputEventKey and event.is_pressed() and not event.is_echo():
		print(OS.get_keycode_string(event.get_key_label_with_modifiers()))

output for the ^ key
When pressing the ^ key repeatedly it outputs the following (first_input outputs AsciiCircum and second_input triggers input function twice with BackSlash as output):
AsciiCircum
BackSlash
BackSlash
AsciiCircum
BackSlash
BackSlash
AsciiCircum
I find this strange for two reasons:

why is the input function triggered twice for the second input?
why does it output BackSlash on the second input when there is no backslash on the ^ key

Meanwhile when holding down Ctrl and/or Shift and pressing the ^ key repeateadly produces the following results (not triggering the input function twice and always outputting mods+BackSlash):
Ctrl+BackSlash
Ctrl+BackSlash
Ctrl+BackSlash
Shift+BackSlash
Shift+BackSlash
Shift+BackSlash
Shift+Ctrl+BackSlash
Shift+Ctrl+BackSlash
Also holding down Alt and pressing ^ key repeateadly will not trigger the input function twice (but now alternating between Alt+AsciiCircum and Alt+BackSlash):
Alt+AsciiCircum
Alt+BackSlash
Alt+AsciiCircum
Alt+BackSlash
Alt+AsciiCircum
Holding Ctrl and Alt and pressing ^ key repeateadly always produces BackSlash:
Alt+Ctrl+BackSlash
Alt+Ctrl+BackSlash
Alt+Ctrl+BackSlash
Alt+Ctrl+BackSlash
small nitpick: why is the output Alt+Ctrl and not Ctrl+Alt (Ctrl at the beginning) for the OS.get_keycode_string(event.get_key_label_with_modifiers()) function as thats the way we say it in speech? same for Shift+Ctrl and Shift+Alt+Ctrl ?
output for the ´ key
for the ´ button something similar occurs when pressed repeatadly with alternations between ´ and BracketRight (also second input triggers twice)
´
BracketRight
BracketRight
´
BracketRight
BracketRight
´
note: its just ´ as output, not QuoteRight because only QuoteLeft is valid on a US-keyboard layout
when holding control and pressing ´ button (always BracketRight)
Ctrl+BracketRight
Ctrl+BracketRight
for the rest ´ seems to behave similar with ^ as the output differs (in regards to BackSlash has become BracketRight and is also not found on the ´ key), but triggers are identical
Minimal reproduction project (MRP)
MRP: dead_key_bug.zip

I adapted the code to the following:
func _input(event: InputEvent) -> void:
	if event is InputEventKey and event.pressed and not event.is_echo():
		match event.physical_keycode:
			KEY_CTRL, KEY_SHIFT:
				pass
			_:
				print(event)
				prints(event.physical_keycode, OS.get_keycode_string(event.physical_keycode))
				prints(event.keycode, OS.get_keycode_string(event.keycode))
				prints(event.key_label, OS.get_keycode_string(event.key_label))

Now, pressing the ^ key 4 times yields the following output:
InputEventKey: keycode=92 (BackSlash), mods=none, physical=false, location=unspecified, pressed=true, echo=false
96 QuoteLeft
92 BackSlash
94 AsciiCircum
InputEventKey: keycode=92 (BackSlash), mods=none, physical=false, location=unspecified, pressed=true, echo=false
96 QuoteLeft
92 BackSlash
92 BackSlash
InputEventKey: keycode=92 (BackSlash), mods=none, physical=false, location=unspecified, pressed=true, echo=false
96 QuoteLeft
92 BackSlash
92 BackSlash
InputEventKey: keycode=92 (BackSlash), mods=none, physical=false, location=unspecified, pressed=true, echo=false
96 QuoteLeft
92 BackSlash
94 AsciiCircum
InputEventKey: keycode=92 (BackSlash), mods=none, physical=false, location=unspecified, pressed=true, echo=false
96 QuoteLeft
92 BackSlash
92 BackSlash
InputEventKey: keycode=92 (BackSlash), mods=none, physical=false, location=unspecified, pressed=true, echo=false
96 QuoteLeft
92 BackSlash
92 BackSlash
When looking at the the key_label and keycode, it seems the key_label alternates between keylabel and keycode for some reason.

Same as https://github.com/godotengine/godot/issues/94517


add botkit-middleware-facebookuser

create for developers to view code. In connection between botkit and facebookapi

@third1021 Looks cool! Thanks!


README: Add description and link to Code of Conduct.

Code of Conduct added to README

@dpgeorge we are in the process of adding this CoC paragraph and link to the Foundation repositories.
Taking in consideration Micropython also has a CoC I assume this is okay with you as well?

Taking in consideration Micropython also has a CoC I assume this is okay with you as well?

Yes, this is OK.


Port 80 already in use when using Let's Encrypt plugin

When trying to enable the let's encrypt plugin I get this one:
20-10-12 16:33:44 ERROR (SyncWorker_3) [supervisor.docker] Can't start addon_core_letsencrypt: 500 Server Error: Internal Server Error ("driver failed programming external connectivity on endpoint addon_core_letsencrypt (e5510de186f61f35cbb37e1f7201db0de7da4c061b1453d92aff5846038c4c7e): Error starting userland proxy: listen tcp <IP_ADDRESS>:80: bind: address already in use")
Which is logical since the Observer is listening on 80...

we don't listen on 80

Agree. Had to be more specific. The published port is set on 80 in Docker. Since I did not touch anything specific I assume that this is a small mistake?

Nevermind. My bad.

@pvizeli am I reading this wrong then? It looks like with HassOS that it is mapping the observer to Port 80.
# docker ps
CONTAINER ID   IMAGE                                                       COMMAND                  CREATED          STATUS          PORTS                                                                                NAMES
7d756f3db1f8   danimtb/amd64-dasshio:0.3.8                                 "python3 /dasshio.py"    25 minutes ago   Up 25 minutes                                                                                addon_03d23610_dasshio
da401026735a   ghcr.io/home-assistant/qemux86-64-homeassistant:2021.12.5   "/init"                  7 hours ago      Up 7 hours                                                                                homeassistant
f0ff85960303   ghcr.io/hassio-addons/node-red/amd64:10.2.2                 "/init"                  28 hours ago     Up 28 hours                                                                                addon_a0d7b954_nodered
afd53e4e6eae   homeassistant/amd64-addon-samba:9.5.1                       "/init"                  29 hours ago     Up 29 hours                                                                                addon_core_samba
7d586a0401dc   ghcr.io/hassio-addons/nginxproxymanager/amd64:0.11.0        "/init"                  29 hours ago     Up 29 hours     <IP_ADDRESS>:80-81->80-81/tcp, :::80-81->80-81/tcp, <IP_ADDRESS>:443->443/tcp, :::443->443/tcp                                           addon_a0d7b954_nginxproxymanager
fe24201cd8fe   homeassistant/amd64-addon-mariadb:2.4.0                     "/init"                  30 hours ago     Up 30 hours                                                                                addon_core_mariadb
03401b2d5aec   homeassistant/amd64-addon-duckdns:1.14.0                    "/init /run.sh"          31 hours ago     Up 31 hours                                                                                addon_core_duckdns
29f024bc0961   homeassistant/amd64-addon-mosquitto:6.0.1                   "/init"                  31 hours ago     Up 31 hours     <IP_ADDRESS>:1883-1884->1883-1884/tcp, :::1883-1884->1883-1884/tcp, <IP_ADDRESS>:8883-8884->8883-8884/tcp, :::8883-8884->8883-8884/tcp   addon_core_mosquitto
92f097923df7   ghcr.io/home-assistant/amd64-hassio-multicast:2021.04.0     "/init"                  31 hours ago     Up 31 hours                                                                                hassio_multicast
0164a51faaad   ghcr.io/home-assistant/amd64-hassio-audio:2021.07.0         "/init"                  31 hours ago     Up 31 hours                                                                                hassio_audio
45fdeed9b57a   ghcr.io/home-assistant/amd64-hassio-dns:2021.06.0           "/init"                  31 hours ago     Up 31 hours                                                                                hassio_dns
0a926273bfa5   ghcr.io/home-assistant/amd64-hassio-cli:2021.09.0           "/init /bin/bash -c …"   31 hours ago     Up 31 hours                                                                                hassio_cli
45615f487c14   homeassistant/amd64-hassio-supervisor:latest                "/init"                  35 hours ago     Up 31 hours                                                                                hassio_supervisor
5c4f35b2ed1a   ghcr.io/home-assistant/amd64-hassio-observer:2021.10.0      "/init"                  2 days ago       Up 31 hours     <IP_ADDRESS>:4357->80/tcp, :::4357->80/tcp                                                                                hassio_observer

It's not. that is 4357 on the host to 80 inside the container.


Fix remote backend files

https://scalar-labs.atlassian.net/browse/DLT-7332

Add backend.tf.azurerm and remote.tf.azurerm example files to azure/kubernetes
Remove *.s3 files from azure modules

LGTM!
The *.s3 files for ca module should be removed as well.

example/azure/ca/backend.tf.s3
example/azure/ca/remote.tf.s3

@tei-k I missed that point. Thanks!

The following files should be removed as well.

examples/azure/ca/remote.tf.s3


Fix failing jpm installation on Travis

Example of failing build: https://travis-ci.org/zalando-incubator/zally/builds/217354908

Checked details, seems to be it's the problem with JPM itself:
$ java -jar jpm4j.jar -u init
Home dir      /home/travis/jpm
Bin  dir      /home/travis/jpm/bin
$ ~/jpm/bin/jpm install com.codacy:codacy-coverage-reporter:assembly
Error
  0. [URLClient.send] http://repo.jpm4j.org/jsonrpc/2.0/jpm


Compat with Mypy 1.2.0

In https://github.com/python/mypy/pull/14878, a new argument was added to DataclassAttribute (is_neither_frozen_nor_nonfrozen).
  File "/home/backend/.venv/lib/python3.10/site-packages/mypy/semanal.py", line 1743, in apply_class_plugin_hooks
    hook(ClassDefContext(defn, decorator, self))
  File "/home/backend/.venv/lib/python3.10/site-packages/strawberry/ext/mypy_plugin.py", line 878, in custom_dataclass_class_maker_callback
    transformer.transform()
  File "/home/backend/.venv/lib/python3.10/site-packages/strawberry/ext/mypy_plugin.py", line 564, in transform
    attributes = self.collect_attributes()
  File "/home/backend/.venv/lib/python3.10/site-packages/strawberry/ext/mypy_plugin.py", line 792, in collect_attributes
    attribute = DataclassAttribute(**params)
TypeError: DataclassAttribute.__init__() missing 1 required positional argument: 'is_neither_frozen_nor_nonfrozen'

working on it now :)


Build with Webpack 5

upgrade Storybook to webpack 5.
upgrade react-scripts to v5.

Tests are broken where they mock the store by stubbing React.useContext. That could be because the React global has been removed from React.
It might be worth disabling the automatic runtime, just to see if that will get the tests passing.
Longer term, Enzyme should be removed. AirBnB stopped supporting it 4 years ago, I think.


Link against libc++ in the official builds.

Similarly to  #4158, #4170 and #4159, investigate and/or consider using libc++ instead of libstdc++ and friends.
cc @lizan @htuch

@PiotrSikora I have some vague memory about libc++ being less mature and generally usable on Linux than OS X from the early days of the Clang migration, but can't find any issues that cover this. Definitely worth re-examining.

Last time I looked into it I found the the same thing as @htuch.

FWIW: https://groups.google.com/a/chromium.org/forum/#!topic/chromium-os-dev/e8pJRHLisIg
Actually I found --define=force_libcpp=enabled doesn't actually link to libc++, the flag is only provided at link time, though libstdc++ and libc++ is not ABI compatible. Also, prebuilt libraries are built against libstdc++.

I think now is a good timing to revisit on this, we don't have prebuilt dependency anymore and have ability to statically link with libc++.
Pros:

there's significant memory benefit to the strings in libc++. (by @jmarantz)
#7647 to unblock upgrading build infra to ubuntu 18.04 which was discussed before. Consistent C++ standard library for different distros.

Cons:

Breaks existing ABI compatibility with dynamic_ot tracers.

Shall we discuss this in the next community meeting? cc @envoyproxy/maintainers

In general I like the idea of a consistent stdlib everywhere, but what does the production usage of libc++ look like? Is it stable? Agreed let's discuss on the next call.

Recap from community meeting:

No objection to switching so far
re stability: Chrome uses it in all OSs, macOS uses it by default, Google using it heavily internally.
Might need to release as a separate image for a while as it breaks backward compatibility (ref. #7582)

#7728 is another bug that caused by libstdc++ in current release. While std::regex is not doing much better job in libc++ anyway, having a consistent standard library with the fuzzing infra seems a win here.

FWIW, we shipped Istio linked against libc++ yesterday. I'll report if we see any issues, but we didn't run into any during testing.

Just tagging https://github.com/tetratelabs/getenvoy-package/issues/35 here, yes we're already aware the dynamic_ot plugins needs rebuild.

All Istio releases since 8/13 have been linked against libc++, and the only issue that we've run into was #8106, so I don't think there should be any stability concerns anymore.

Thanks @PiotrSikora to confirm that. I will try releasing a separate set of image with libc++ soon (hopefully within 1.12 release).
@envoyproxy/maintainers how do we want to treat this against the deprecation policy? The breaking part is the dynamic_ot plugin (which has to built against same c++ standard library variant).

I don't think this violates the deprecation policy, we don't have any strong ABI guarantees provided today, most of the policy covers API and functional behavior of the proxy. CC @alyssawilk.
In the future, I think we should have a strong ABI and stability of the filter API. I think this is going to come to us via the WASM NullVM interface that @PiotrSikora and @jplevyak are working on, rather than any major explicit initiative.


Who has integrated permit2?

Permit2 seems like a great solution with many wins for security and efficiency.
We are considering integrating it in the next version of our smart contracts.
It could be great to understand who has already integrated permit2 in production.
And if there is any good practices to adhere to already from your experience.

We have integrated with Permit2, though I cannot say if we followed best practices, couldn't find many other protocols to compare our code with. Here is our contract for deposits/withdrawals that uses permit2:
https://github.com/CygnusDAO/core/blob/main/contracts/cygnus-core/CygnusTerminal.sol#L269
For the frontend/how to interact with it you can check our scripts and tests, for example:
https://github.com/CygnusDAO/core/blob/main/test/core/Permit2.js#L118
Hope it helps.

We've almost finished integrating as well, both Allowance and Signature methods. I wonder why you and Uniswap chose to implement just the allowance method? Also, did you stumble on any issues with wallets signing the JSON?

The reason we implemented the Allowance methods on our core contracts is because other contracts may use the deposit/withdraw function. Other contracts can simply approve our contract in permit2, and then pass an empty signature to the deposit function bypassing the signature approval. This wouldn't be possible with the Signature methods. I would say that Uniswap did it for the same reason, but that's just a guess.
In our case the deposit/withdrawals happen on the core and everything else is done via our router, which is integrated with both:
Repay with Signature: https://github.com/CygnusDAO/periphery/blob/main/contracts/cygnus-periphery/CygnusAltair.sol#L703
Repay with Allowance: https://github.com/CygnusDAO/periphery/blob/main/contracts/cygnus-periphery/CygnusAltair.sol#L665
Liquidate with Signature: https://github.com/CygnusDAO/periphery/blob/main/contracts/cygnus-periphery/CygnusAltair.sol#L800
Liquidate with Allowance: https://github.com/CygnusDAO/periphery/blob/main/contracts/cygnus-periphery/CygnusAltair.sol#L761
I haven't stumbled upon any issues with wallets signing, on the contrary, it's very smooth. Here is one of our core contracts live on Polygon where u can see the deposits:
https://polygonscan.com/address/0x520F4Cd05a3F727459E0d6B2Dbc78593d6DfE281
And here a repay tx with the allowance method mentioned above - could have been done with the signature method just as well:
https://polygonscan.com/tx/0x6e3c5b9ea642d62a69b350a4ce03f82336308c000624d20d5c8f09965d04faf9

@0xHyoga  Thank you for sharing.

@0xHyoga Thank you for sharing.

Casi hemos terminado de integrar también los métodos de asignación y firma. Me pregunto por qué usted y Uniswap eligieron implementar solo el método de asignación. Además, ¿tuvo algún problema con las billeteras que firman el JSON?

La razón por la que implementamos los métodos de asignación en nuestros contratos principales es porque otros contratos pueden usar la función de depósito/retiro. Otros contratos pueden simplemente aprobar nuestro contrato en permit2 y luego pasar una firma vacía a la función de depósito sin pasar por la aprobación de la firma. Creo que esto no sería posible con los métodos de Firma. Yo diría que Uniswap lo hizo por la misma razón, pero eso es sólo una suposición.
En nuestro caso, los depósitos/retiros se realizan en el núcleo y todo lo demás se hace a través de nuestro enrutador, que está integrado con ambos:
Repay with Signature: https://github.com/CygnusDAO/periphery/blob/main/contracts/cygnus-periphery/CygnusAltair.sol#L703
Repay with Allowance: https://github.com/CygnusDAO/periphery/blob/main/contracts/cygnus-periphery/CygnusAltair.sol#L665
Liquidate with Signature: https://github.com/CygnusDAO/periphery/blob/main/contracts/cygnus-periphery/CygnusAltair.sol#L800
Liquidate with Allowance: https://github.com/CygnusDAO/periphery/blob/main/contracts/cygnus-periphery/CygnusAltair.sol#L761
I haven't stumbled upon any issues with wallets signing, on the contrary, it's very smooth. Here is one of our core contracts live on Polygon where u can see the deposits:
https://polygonscan.com/address/0x520F4Cd05a3F727459E0d6B2Dbc78593d6DfE281
Y aquí, un reembolso de transmisión con el método de asignación mencionado anteriormente, también podría haberse realizado con el método de firma:
https://polygonscan.com/tx/0x6e3c5b9ea642d62a69b350a4ce03f82336308c000624d20d5c8f09965d04faf9


Alexn/cpp runner hand

Am I correct that you rebased this on top of dmkats/manulaHand?

Am I correct that you rebased this on top of dmkats/manulaHand?
Yes, you are right


Frequency plan for AS923 (923-925)

This is a proposal for the AS923 channel plan to be used in countries that allow the range 923-925 MHz: Brunei, Cambodia, Hong Kong, Indonesia, Laos, New Zealand, Singapore, Taiwan, Thailand, Vietnam (see this doc).
This is the upper part of the AS923 band. For the lower part, see #489.
Default LoRaWAN Channels 1-2

Frequency
Bandwidth
Comments

923.2
125
also used for RX2 (SF10BW125)

923.4
125

Proposed Channels 3-7 (with CFList)

Frequency
Bandwidth

923.6
125

923.8
125

924.0
125

924.2
125

924.4
125

Proposed Channel 8-10 (with MAC command)

Frequency
Bandwidth

924.6
125

924.5
250

924.8
125/FSK

There are a couple of countries (Hong Kong, Singapore, Thailand, Vietnam) that can "choose" between the upper (#491) and lower (#489) part of the AS923 band. The join frequencies overlap, so OTAA devices will just receive the correct channel plan based on gateways in the area, but for good coverage, it's best to all use the same frequency plan in a certain region.
Based on geography, I think it would be best to have Singapore together with Malaysia, to have Vietnam and the Northern part of Thailand together with Cambodia and Laos, and the Southern part of Thailand with Malaysia.

hi,
923-926 ( 500mW - 2 Watt ) used for RFID in Indonesia :
http://www.rfid-indonesia.com/images/Alokasi.Frekwensi.RFID-UHF.EPC.Gen2.Indonesia.jpg
as they've stated beyond those power output will be treated like radio transmitter, can we go with that frequency still ?
thanks

As far as I know, we're well under 500mW

so you're saying I can use RFID frequency license to actually use LoraWAN ?

Hi @terrymulijana nice to find Indonesian here.
The draft for LoRa band in Indonesia is 919-923MHz, similar to Malaysia. But it's not final.
Btw, I'm not representing the regulator, only happen to have friends in there.

Hi,
For Singapore, I'm not sure if this document from the regulator would help, but here it is:
https://www.imda.gov.sg/~/media/imda/files/regulation licensing and consultations/frameworks and policies/spectrum management and coordination/spectrummgmthb.pdf?la=en
It seems like 923-925MHz should be clear for use?

@terrymulijana
sir, can you send me the url to that regulation?


Wrong offset values in meters

URL
https://www.openstreetmap.org/edit#map=18/46.43038/30.71566
How to reproduce the issue?
During imagery alignment the offset in meters shows incorrect values comparing to the real imagery offset.
Here is how to reproduce it:

Select any imagery (I used Bing), reset offset. Objects layer could be switched off for clarity.
Move map to some contrast object and measure its width with the ruler and any other program (see results from Google Earth).

As you can see, the width of this ice rink is correctly shown as 40 meters so ruler is correct.

Set offset to "-40, 0". We expect moving of the object left and its right edge should be aligned with the left edge of the ruler. But here is what we see:

Try offset "40, 0" expecting the opposite: right edge of the object should be aligned with the left edge of the ruler. The result:

As you can see, it is not 40 m but about 27 m, 1.45 size smaller.
I suspect that latitude and longitude are mixed up in the parameters of the functions which convert degrees delta to meters. Why I think so? There is the same problem in JOSM which I noticed after I applied offset from offset database. iD don't use offset database but there is conversion of degrees to meters. Here is the example of possible error:
Point 1 (lat, lon): (46.429716,  30.714416)
Point 2 (lat, lon): (46.429716,  30.714942)
dLon = 30.714942 - 30.714416 = 0.000526
Let's calculate distance using geoLonToMeters()
0.000526 * (TAU * EQUATORIAL_RADIUS / 360) * Math.abs(Math.cos(46.4297 * (Math.PI / 180))) = 40.2

which is correct. Now let's use geoLatToMeters
0.000526 * (TAU * POLAR_RADIUS / 360)/40 = 58.5

which is exactly the same offset we need to enter to get correct imagery offset.
So I suspect that geoLatToMeters() was used internally for map longitude offset and `geoLonToMeters() was used for map latitude offset.
This bug makes it hard to set the same offset to work with different editors.
Screenshot(s) or anything else?
See above.
Which deployed environments do you see the issue in?
Released version at openstreetmap.org/edit
What version numbers does this issue effect?
2.26.2
Which browsers are you seeing this problem on?
Chrome

this issue is not present at the equator, so I'm guessing geoMetersToOffset & geoOffsetToMeters needs to consider the current lattitude


Add $PMTK sentence to nmea parser

PMTK sentences are answers to the settings we submit to the GPS module. Might be handy to parse the sentences.

Added rudimentary framework in b877d43

more decoder functionality in d9a03eb


Combine LESS Files to one CSS File

Does no one prefer to overwrite existing variables from yii2-bootstrap LESS file for example in a custom theme without touching bootstrap.less itself?
I wonder how it is possible to compress several LESS files into one CSS file. Unfortunately I can not find a point of attack in the existing Yii code to manipulate AssetManager or AssetConverter.
Then I'll just make this into an extension available that it is automated.
https://github.com/cakebake/yii2-less.php

I think its a good idea to have such feature... may be a method or config option that will take on input an array of less files that have to be concated(appended) in 1 file before compiling into css.
For example. I have 1 project that consist of several multisites(each has own domain name, title, etc...but its still 1 project). I need to include a less file with variables. (This file I will generate in afterSave() multisite`s form, where I can input colors). So I have to store such files for each multisites... may be in sevarated directories (bcs I want to have different colors for each one). So I cant determine current multisite in less import feature to concat right file with variables. If I can handle this in assetBundle it would be great!


[Docs] Fix docker link.

Purpose of the pull request

Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

We should add all markdown file to deadlink checker instead of find deadlink by ourself.


Firefox addon still on version 6

I am not sure if you also maintain the firefox addon page (https://addons.mozilla.org/en-US/firefox/addon/vue-js-devtools/), but the devtools are still at version 6.6.3 in the Mozilla Add-Ons directory.
In the docs it says that "We'll launch on the Firefox App Store once v7.x is stable.", but 7 seems to be stable for a few months already.
It would be great if you could update the Firefox AddOn, so that Firefox and Zen users can also get the best Vue experience.

We just released v7 stable version on the Google Store, and when we stabilize it here, we'll update the Firefox extension to v7 simultaneously.

We just released v7 stable version on the Google Store, and when we stabilize it here, we'll update the Firefox extension to v7 simultaneously.

Thanks for the quick reply, is there any roadmap or estimate for this? Just in terms of weeks or months.

/cc @webfansplz Do we have any plans?


Make --local feature work for Other and Custom Executors

For users who want to test stuff locally on their private data and try out different custom executors without the need to start devstack

What is --local? Is this still valid?

It doesn't work

the flag is still there but doesn't work? the flag is removed, and the dead code is still available? or everything has been removed? Can you be more clear?

Need to fond and remove the dead local code


add dark mode to project

add dark mode with css variable and tailwind config and save last theme in local-Storage--- some change in tailwind class and main ui

Thank you @mamad-1999
All of your commits is applied!


fix get_header function

Coverage remained the same at 90.794% when pulling caaa51b8cbd2c9aa514ac0ffc169bfc97a805442 on fix_get_header into 982dc9c6fcee7e3faac5c078de8b61a1c35e5de4 on develop.


Use an intermediate animation importer

Animation importer now goes through an intermediate class
Allows centralizing all animation compression and optimization
Allows better access to animation data by scene importer plugins

This work is WIP

Lyuma: Can I ask what the Vector3::AXIS_X argument means when adding blend shape tracks?

animation->node_track_add_axis_key(track_idx, ImporterAnimation::TRACK_TYPE_BLEND_SHAPE_KEY_0 + weight_i, Vector3::AXIS_X, t, b, 0, a, 0, c);

📛 reduz 📛: Lyuma blend shapes just use the X axis, ignore the others

Lyuma: does it store 0 for the other axes?
📛 reduz 📛: yeah, well more like nothing is stored
I guess it's just an in memory format so it doesn't matter if it stores unused axes?
📛 reduz 📛 yes internally nothing is stored if the channel is not used

Lyuma: might suggest to rename the struct Node to a more unique name that isn't a widely used base type.

Fire: Do we want to handle the case of non-equally spaced quaternions? This can be solved by quaternion squad or others. Squad is defined here https://github.com/KhronosGroup/glTF/blob/b6a148cf742efd8e1e1bb0457e6e2a5989b1c387/extensions/2.0/Vendor/EXT_animation_sqlerp/README.md#cubicslerp-interpolation

Closed in favor of #53689