Add support for CXXFLAGS and LDFLAGS

Added support for environment variables CXXFLAGS and LDFLAGS while generating makefile.
See https://github.com/poac-dev/poac/issues/923.

Why would you prefer to do this instead of my idea?

Firstly, the most important reason is, as far as I know, many build systems that are widely used made use of those environment variables (autoconf, Makefile, CMake etc.). I think it will be less confusing to make the behavior consistent as those build system. (Even cargo respects RUSTFLAGS)
Also sometimes I would like to temporarily change the flags frequently to quickly see the result and adjust my flags in the config after I'm confident about the result. I personally prefer setting the environment variables to edit the config file over and over again because it's convenient to just add an environment variable in the command line, and I don't need to repeatly edit and save a file just for something experimental (in my personal opinion).
Another reason (may be too personal) is that, if I downloaded a project that I don't own and I want to build it with my preferred toolchain, for instance I want to build with Homebrew ruby instead of the default ruby provided by macOS (but the project's config doesn't contain flags for Homebrew ruby), it's just convenient to just set an environment variable instead of editing config file, because if I changed the project config file and next time I want to upgrade the repository, I still need to revert the change, pull the repository and change it again. It may fail the compilation or even have different behavior after the compilation but since those environment variables were set by me, it means I know the risks and I'll take them. ~(And actually I set it globally, in real life)~
By the way, (not very seriously though) we supported CXX environment variable so why not support others as well?
To conclude I think the most important reason is to keep the behavior consistent as build systems that are widely used, and it will be also super convenient for some users to quickly edit the flags just for experimental uses (especially command-line nerds like me, yeah). About the potential risks it may bring, like compilation error or different behavior etc., since the system won't set those environment variables automatically (and it means they are set only by user) I think user would and should take the risks, and once user set the environment variable (even globally) they usually knows what they're doing (and hoping the build system uses those variables).

P.S.: I do think your idea is great and should be used on most projects, but I think the support of environment flags still should be implemented as well for the consistency with other widely-used build systems and some advanced user may require it to work

Thanks for the clarification, I'll review your PR when I get a chance. Please also make the PR title clearer.

All review comments are resolved in the latest commit.
By the way I enabled workflow on the fork repo so I could run poac tidy and see the results to prevent me from making dumb mistakes. For some strange reasons (that I don't know) poac tidy's output in the actions is quite different from my machine (clang-tidy 19). My tidy seems telling me about almost nothing about my mistakes (like making const when possible), but always complains about circular header file dependency in Git2 library downloaded via Homebrew (which doesn't exists in the workflow output).
Another thing about tidy is after I committed my latest change, poac tidy (on the Github Workflow, hence the correct one) told me that in my test the code
assertEq(argsEscapeMixed.size(), 5);
                                ~^~

is a magic constant and tell me to consider replacing it with a named constant (but tbh we really need a named constant like ARGS_ESCAPE_MIXED_SIZE_EXPECTED just to check if the size is correct ...? I'm not quite sure about that but definitely it will not pass the clang-tidy action if I don't do so).
After digging deeper in the project I found a file Algos.cc that I think may be better for parseEnvFlags and its tests (and perhaps getEnvFlags as well?) to be placed in. I may consider doing in the next commit (after checking the code itself is fine and no dumb mistakes or naming mistakes or such), but I'm not quite sure if I'm going to move both parseEnvFlags and getEnvFlags, making parseEnvFlags internal to Algos.cc or just move parseEnvFlags to that file (and declare it in the header file as well).

All review comments are resolved in the latest commit.

Thanks!

By the way I enabled workflow on the fork repo so I could run poac tidy and see the results to prevent me from making dumb mistakes. For some strange reasons (that I don't know) poac tidy's output in the actions is quite different from my machine (clang-tidy 19). My tidy seems telling me about almost nothing about my mistakes (like making const when possible), but always complains about circular header file dependency in Git2 library downloaded via Homebrew (which doesn't exists in the workflow output).

This problem was due to the previous poac tidy implementation, and I fixed it. Currently, the fix is available only on the main. GitHub Actions one is always using the source code from the commit that triggered the action, which always contains my fix anyway, so that's why we see differences.

Another thing about tidy is after I committed my latest change, poac tidy (on the Github Workflow, hence the correct one) told me that in my test the code
assertEq(argsEscapeMixed.size(), 5);
                                ~^~

is a magic constant and tell me to consider replacing it with a named constant (but tbh we really need a named constant like ARGS_ESCAPE_MIXED_SIZE_EXPECTED just to check if the size is correct ...? I'm not quite sure about that but definitely it will not pass the clang-tidy action if I don't do so).

Using a named constant here makes no sense, so let's use NOLINT (or NOLINTNEXTLINE depending on the code elegance). See here for more info.

After digging deeper in the project I found a file Algos.cc that I think may be better for parseEnvFlags and its tests (and perhaps getEnvFlags as well?) to be placed in. I may consider doing in the next commit (after checking the code itself is fine and no dumb mistakes or naming mistakes or such), but I'm not quite sure if I'm going to move both parseEnvFlags and getEnvFlags, making parseEnvFlags internal to Algos.cc or just move parseEnvFlags to that file (and declare it in the header file as well).

Currently, they are used only by BuildConfig.cc so it makes sense to put them here. There's no compelling reason to make them project public APIs. Thanks for the suggestion anyway :)

Thanks for your replay. Added NOLINTNEXTLINE for *-magic-numbers before size checks and checked Github Actions. All the tests on the Github Actions passed now.


[AUTOPATCHER] Patches CVE-2021-3928 for vim

        Patches CVE-2021-3928 for vim.
        This patch and PR was automatically generated and needs human verification before merging.

Closing- fixed by #1635


README links to a dead url

Material Components for Android are modular and customizable UI components that implement Material Design. This repo houses the source for the Building Beautiful Apps Faster codelab.

This repository is structured as branches. You can checkout an individual branch by running git checkout 101-starter or the equivalent for the codelab you are following.
There are some simple scripts for maintaining this repository in the tools/ directory.
Building Beautiful Apps Faster links you to a site that says "Unavailable
This codelab is unavailable. For other great Material Design resources, see material.io."

Thanks for the feedback. This has now been fixed.


Travis colorama.ansi doesn't know BLUE

======================================================================
ERROR: run_test (tests.tra_test.TraTestModel2)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/travis/build/sorgerlab/bioagents/tests/integration.py", line 104, in run_test
    assert self.is_correct_response(), self.give_feedback()
  File "/home/travis/build/sorgerlab/bioagents/tests/integration.py", line 123, in give_feedback
    color_diff(self.expected, self.output.to_string())
  File "/home/travis/build/sorgerlab/bioagents/tests/integration.py", line 43, in color_diff
    Fore.BLUE + sm.b[b0:b1] + Style.RESET_ALL)
AttributeError: type object 'Back' has no attribute 'BLUE'

note that this only happens when there is an underlying failure in a test (a string mismatch) but the issue is not related to TraTestModel2 specifically.

Does this happen on your system or on Travis only? I saw something on Travis, and was already trying to figure it out.

I push a branch with the fix to sorgerlab and submitted a pull request https://github.com/sorgerlab/bioagents/pull/55

Fixed by #55


Chore: Change ip address used in testing to RFC1918 address space

Fixes: #17701
Signed-off-by: Aniruddha Amit Dutta<EMAIL_ADDRESS>Please ensure your pull request adheres to the following guidelines:

[x] For first time contributors, read Submitting a pull request
[ ] All code is covered by unit and/or runtime tests where feasible.
[ ] All commits contain a well written commit description including a title,
description and a Fixes: #XXX line if the commit addresses a particular
GitHub issue.
[ ] All commits are signed off. See the section Developer’s Certificate of Origin
[ ] Provide a title or release-note blurb suitable for the release notes.
[ ] Thanks for contributing!

Fixes: #17701
<!-- Enter the release note text here if needed or remove this section! -->

I'm guessing we can now close this PR since you updated the original?


Support strongly typed Hub Clients

Is your feature request related to a problem? Please describe.
The Hub class allows for the use of a strongly typed Hub client. It would be great if the Azure SignalR service could also support the same!
Describe the solution you'd like
A new interface should be created to allow for this in Microsoft.Azure.SignalR.Management:
public interface IServiceHubContext<T> : IHubContext<Hub, T>
...

Additional context
Source: https://docs.microsoft.com/en-us/aspnet/core/signalr/hubs?view=aspnetcore-3.1#strongly-typed-hubs
Directly related to https://github.com/Azure/azure-functions-signalrservice-extension/issues/131

Open branch here: https://github.com/lfshr/azure-signalr/tree/lfshr/strongly-typed-clients
Be happy for some early feedback. There's some duplication I'm not so keen about.
I'm away for a week so wont be any more work done this week.

It's a must feature in C# Blazor. Will look into your solution.

It's a must feature in C# Blazor. Will look into your solution.

Will be supported in the next release.


How to check if User is already in the Group ?

Is there a way to check if User is already in the Group?
If there is no check will adding it again error or it just ignores adding user again and does nothing ?
Secondly does Groups and users in the Groups Survive Server Restarts?

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

ID: c8d77892-d376-2f23-2634-f5d34d962a1e
Version Independent ID: 92ed6330-b49f-1620-6beb-8556a78ac7da
Content: Manage users and groups in SignalR
Content Source: aspnetcore/signalr/groups.md
Product: aspnet-core
Technology: aspnetcore-signalr
GitHub Login: @bradygaster
Microsoft Alias: bradyg

Is there a way to check if User is already in the Group?

No.

will adding it again error or it just ignores adding user again and does nothing ?

Put simple: if the user is already in the group, it does nothing. You're safe to add it multiple times.
Implementation detail: the book-keeping is based on ConcurrentDictionary, and here AddOrUpdate is used.

does Groups and users in the Groups Survive Server Restarts?

They are kept in-memory, so no they won't survive.
You can look into Azure SignalR Services for such scenarios.

Thanks @gfoidl!  @nssidu, all good questions.  We should provide some insight in the doc.

@gfoidl related question
I don't see option to just create group, is it automatically created when adding user using the group name provided with connectionID ?

Yes.
You can imagine the group-membership as ConcurrentDictionary, where the groupName is the key.
All operations are fault-tolerarant, i.e. they don't throw for duplicate-keys (groupNames), etc.

@gfoidl appreciate your quick response and clarification


win32 and GonioTool

Hi again,
sorry for disturbing but I am facing a new issue I cannot solve, I tried to use goniotool.py but I am stuck at the importing step
from pywinauto import Application

I get this error:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\RDS\AppData\Local\Programs\Python\Python38\lib\site-packages\pywinauto\__init__.py", line 59, in <module>
    import win32api  # noqa: E402
ImportError: DLL load failed while importing win32api: %1 n’est pas une application Win32 valide.

Here is the python version I am using:
Python 3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:52:53) [MSC v.1927 64 bit (AMD64)] on win32
Instamatic 1.6.0

If you could help me to solve this problem I would be very thankful!
Regards

Hi, I don't recommend to use goniotool.py unless you know what you are doing. I did not intend for others to use it, as it is a very hacky way to manipulate the goniometer rotation speed on some JEOL microscopes.
The error you get is as far as I know a bug with win32api, the solution proposed here worked for me in the past:
https://stackoverflow.com/questions/58612306/how-to-fix-importerror-dll-load-failed-while-importing-win32api

Hi,
thank you for your answer, I will try your link.
I was interested in using GonioTool because we use JEOL microscope and we already use GonioTool manually.
You claim that it is faster using GonioTool
# faster stage readout using gonio2
# self.gonio2.GetPosition() -> get stage position, 78 ms
# self.stage3.GetPos() -> 277 ms

So it could be interesting for performances optimization.
Regards

Ah yes, that's the api to retrieve the stage position. On our microscope (JEOL 2100), using gonio2 gave slightly faster readout of the stage position only. But from my experience it did not work well on newer microscopes, and stage3 is more reliable, so better to use that one. Note that gonio2 and stage3 are just the names of the modules of the COM api.
goniotool.py is unrelated to that. It hacks into the gui of goniotool.exe to be able to control it externally. We used it to automatically adjust the rotation speed (via f1/rate->TX, maybe you do the same manually).

Ok I understand, I thought I needed goniotool.py to use gonio2, my mistake.
First I'll try gonio2 and see what happens (We are using JEOL 1400).
Maybe I will not need goniotool.py at the end.
Thank you very much for your help.
Regards

No worries! I will then close this issue (feel free to re-open / open a new issue).


Enhance non-live migratable VMs detection in both webhook and upgrade script

Problem:

The part handling non-live-migratable VMs in the upgrade script is a bit hard to read and maintain.
Solution:

This PR contains three part:

A command line interface called vm-live-migrate-detector, which is able to show the "non-live migratable VMs" given a node name as its positional argument. Plus a --shutdown flag that could help users shut off those non-migratable VMs directly with the tool at hand. The binary is targeted to replace the respective part in the upgrade shell script.
A webhook that does the validation work against Upgrade objects creation. When there are "non-live migratable VMs" running on the cluster, it will reject the request and return the VM name list.
A shared library code supporting the above two

Related Issue:
#3019
Test plan:

VMs with node affinities

Prepare a 2-node Harvester cluster in v1.2.1
Create two VMs: one is live-migratable, the other is non-live-migratable. To achieve this, we could tweak the node scheduling option for the VMs.

Upgrade using the master ISO image with any custom-built image which includes this PR
Monitor the progress of the upgrade, the live-migratable VM should move between the two nodes and the non-live-migratable VM originally running on the control plane node should be shutoff when the control plane node is pre-draining.
The upgrade should end in success

VMs with PCIe devices

Prepare a 2-node Harvester cluster in v1.2.1
Enable pcidevices-controller addon
Enable the device you want for passthrough
Create a live-migratable VM with regular configs
Create another non-live-migratable VM with the PCI device attached
Start the upgrade
The non-live-migratable VM should be shutoff when the node it runs on is being pre-drained
The upgrade should end in success and the live-migratable VM is still running

VMs with node selector

Prepare a 2-node Harvester cluster in v1.2.1
Create a live-migratable VM with regular configs
Create another non-live-migratable VM with the node scheduling option set to a specific node

Start the upgrade
The VM should be shutoff when the node it runs on is being pre-drained
The upgrade should end in success and the live-migratable VM is still running

For the tests against the webhook, the above three test cases could be reused. The only difference is the cluster should be installed with the master build (or custom build containing this PR), not v1.2.1. The upgrade in all three cases should be rejected by the webhook with the names of the VM which are not live-migratable.

The code conflicts have been resolved. PTAL, thanks!

Hold on. I think I messed up the commits while solving the conflicts. I'm turning it into a draft until the commits are sorted out.

We may have an edge case: a group of VM with anti affinity and the topologyKey is kubernetes.io/hostname.

As @FrankYang0529 pointed out, this PR could not detect VMs with such cases as non-live migratable. For example, if a user creates multiple VMs with the following VM scheduling configuration:

Which results in:
$ kubectl get vmis test-vm-01 -o yaml
...
podAntiAffinity:
  requiredDuringSchedulingIgnoredDuringExecution:
    - labelSelector:
        matchExpressions:
          - key: group
            operator: In
            values:
              - ha
      topologyKey: kubernetes.io/hostname
...

Not just nodeAffinity, pod(Anti)Affinity should also be considered.

I removed the force-shutdown part of the script at the node-upgrading phase, as we tend to let users decide whether to shut off such VMs.

@torchiaf A corner-case question about below warning message, it includes the vm name list, and this string may be very long, will it be shown in a scroll box, or with a ... ? could it expand enough to hide the close and upgrade button? thanks.

The modal dialog will show all the content without text ellipsis nor scroll bar:

I think the warning message will be reasonably shorted that this above, so the UI should be pretty much safe.


Update Linux template app to pass through command line arguments to the Dart entrypoint

Description
Use the new APIs introduced in https://github.com/flutter/engine/pull/21933 to pass through the command line arguments on Linux.
Related Issues
https://github.com/flutter/flutter/issues/32986
Tests
None.
Checklist
Before you create this PR, confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[x] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[ ] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[ ] I wrote a migration guide: https://flutter.dev/go/breaking-changes-template Replace this with a link to a pull request that adds the migration guide to https://flutter.dev/docs/release/breaking-changes

LGTM, thanks @gw280


Handle nil frame.source in stacks

According to the specification source in frame is optional.
(With the java debugger I got native frames in the response that have no source)
I'm not too happy with the NO SOURCE fallback, it's the first thing that came
to mind. Maybe you've a better idea.

Ah OK yeah I think this works for now, might have a look at other editors to see if they have a solution


Cannot reproduce BLEU-4 score of 34.3 in Table 1 for image captioning task

Hi there, first of all, thank you very much for sharing the code!
I tried the following command in README.md to evaluate model performance on image captioning task.
config=configs/config_multi_task.py:captioning@coco/2017_captioning,vit-b
model_dir=/tmp/pix2seq_eval_cap
python3 run.py --config=$config --model_dir=$model_dir --mode=eval

The checkpoint used is vit_b_640x640-ckpt-93324, and I used the pycocoevalcap to evaluate the results with coco captions 2017 validation dataset.
The metric I got for BLEU-4 score is only 14.1. In Table 1 of the paper, the score for Pix2Seq v2 multi-tasks (640*640) for Captioning task is 34.3. I am wondering if I did anything wrong. Could you please let me know how to resolve this?
Thank you in advance!

Here are the task configs:
{
  "dataset": {
    "batch_duplicates": 1,
    "cache_dataset": true,
    "coco_annotations_dir_for_metrics": "tmp/coco_annotations",
    "eval_num_examples": 5000,
    "eval_split": "validation",
    "label_shift": 0,
    "name": "coco/2017_captioning",
    "train_file_pattern": "gs://pix2seq/multi_task/data/coco/tfrecord/train*",
    "train_filename_for_metrics": "captions_train2017_eval_compatible.json",
    "train_num_examples": 118287,
    "train_split": "train",
    "val_file_pattern": "gs://pix2seq/multi_task/data/coco/tfrecord/val*",
    "val_filename_for_metrics": "captions_val2017_eval_compatible.json"
  },
  "datasets": [
    {
      "batch_duplicates": 1,
      "cache_dataset": true,
      "coco_annotations_dir_for_metrics": "tmp/coco_annotations",
      "eval_num_examples": 5000,
      "eval_split": "validation",
      "label_shift": 0,
      "name": "coco/2017_captioning",
      "train_file_pattern": "gs://pix2seq/multi_task/data/coco/tfrecord/train*",
      "train_filename_for_metrics": "captions_train2017_eval_compatible.json",
      "train_num_examples": 118287,
      "train_split": "train",
      "val_file_pattern": "gs://pix2seq/multi_task/data/coco/tfrecord/val*",
      "val_filename_for_metrics": "captions_val2017_eval_compatible.json"
    }
  ],
  "eval": {
    "batch_size": 8,
    "checkpoint_dir": "gs://pix2seq/multi_task/ckpt/vit_b_640x640",
    "steps": 0,
    "tag": "eval"
  },
  "model": {
    "coord_vocab_shift": 1000,
    "dec_proj_mode": "mlp",
    "decoder_output_bias": true,
    "dim_att": 768,
    "dim_att_dec": 512,
    "dim_mlp": 3072,
    "dim_mlp_dec": 2048,
    "drop_att": 0.0,
    "drop_path": 0.1,
    "drop_units": 0.1,
    "image_size": [
      640,
      640
    ],
    "max_seq_len": 512,
    "name": "encoder_ar_decoder",
    "num_decoder_layers": 6,
    "num_encoder_layers": 12,
    "num_heads": 12,
    "num_heads_dec": 16,
    "patch_size": 16,
    "pos_encoding": "sin_cos",
    "pos_encoding_dec": "learned",
    "pretrained_ckpt": "gs://pix2seq/obj365_pretrain/vit_b_640x640_b256_s400k",
    "resnet_variant": "c1",
    "shared_decoder_embedding": true,
    "text_vocab_shift": 3000,
    "use_cls_token": false,
    "vocab_size": 35000
  },
  "model_dir": "tmp/pix2seq_eval_cap",
  "optimization": {
    "beta1": 0.9,
    "beta2": 0.95,
    "end_lr_factor": 0.01,
    "eps": 1e-08,
    "global_clipnorm": -1,
    "learning_rate": 0.0001,
    "learning_rate_scaling": "none",
    "learning_rate_schedule": "linear",
    "optimizer": "adamw",
    "warmup_epochs": 10,
    "warmup_steps": 0,
    "weight_decay": 0.05
  },
  "task": {
    "captions_per_image": 5,
    "color_jitter_strength": 0.5,
    "eos_token_weight": 0.1,
    "image_size": [
      640,
      640
    ],
    "input_seq_drop_rate": 0.5,
    "jitter_scale_max": 1.0,
    "jitter_scale_min": 1.0,
    "max_instances_per_image": 5,
    "max_seq_len": 128,
    "metric": {
      "name": "coco_captioning"
    },
    "name": "captioning",
    "temperature": 1.0,
    "top_k": 0,
    "top_p": 1.0,
    "vocab_id": 13,
    "weight": 1.0
  },
  "tasks": [
    {
      "captions_per_image": 5,
      "color_jitter_strength": 0.5,
      "eos_token_weight": 0.1,
      "image_size": [
        640,
        640
      ],
      "input_seq_drop_rate": 0.5,
      "jitter_scale_max": 1.0,
      "jitter_scale_min": 1.0,
      "max_instances_per_image": 5,
      "max_seq_len": 128,
      "metric": {
        "name": "coco_captioning"
      },
      "name": "captioning",
      "temperature": 1.0,
      "top_k": 0,
      "top_p": 1.0,
      "vocab_id": 13,
      "weight": 1.0
    }
  ],
  "tokenizer": {
    "add_bos": false,
    "add_eos": true,
    "sentencepiece_model": "gs://pix2seq/multi_task/data/c4_en_32k_spm.model"
  },
  "train": {
    "batch_size": 128,
    "checkpoint_epochs": 1,
    "checkpoint_steps": 0,
    "epochs": 100,
    "keep_checkpoint_max": 10,
    "loss_type": "xent",
    "steps": 0
  }
}

@saxenasaurabh may have more context on this.

@chentingpc Thank you!
@saxenasaurabh Could you please help on this? Thank you very much!

Here is an example caption output with 32.8 BLEU-4: https://storage.googleapis.com/pix2seq/others/coco_caption_result_example.json. Could you try to validate if you can get similar metric? If you do get similar result, then it may be related to the model inference, otherwise the evaluation process may be the cause.

@chentingpc Thank you for providing the file! I got BLEU-4 score of 33.6 for the file you just provided. So I think the evaluation process is fine. It might be the model inference process causing the issue.
Could it be the configs (listed in the first comment of this issue) are off, or the model checkpoint (vit_b_640x640-ckpt-93324) is not right?

Can you try to run the inference with top_k=1?

@chentingpc Thank you! I got BLEU-4 score of 35.3 using top_k=1. I'll close the issue. Again, thank you very much for your help!


onEndReached gets called on empty data

Current behavior
FlashList by Shopify onEndReached gets called when data is still empty whereas FlatList by react native isn't

Expected behavior
onEndReached in FlashList should not be called when data is empty or when we are still waiting for the data resolved from api, also since  default FlatList by react native doesn't do that

To Reproduce

Here is the snack: https://snack.expo.dev/@bryanltobing/d9b5dd
comment and uncomment FlashListTest and FlatListTest. you will notice that the alert that is called is the alert in onEndReached by FlashList
Platform:

[x] iOS
[x] Android

Environment

1.3.1
1.4.1

onEndReached should technically be called when data is empty. Changing this could be a bigger regression and it's not worth now to align with FlatList. You should be able to cater for this in your code quite easily by checking whether the data is empty or not.


Fix coderwall username issue

A fix for this issue: https://github.com/24pullrequests/24pullrequests/issues/1634
I updated the exception handling so that only HTTP and JSON errors are caught to make it easier to resolve if this problem occurs again.
Also added some tests in.

Great work 👌


Needs more brussels sprouts

IMO some brussels sprouts would be a nice upgrade from the lettuce.
Nice work on the lib. 😉

@paulirish Thanks man :smile: Will definitely pimp demo with more salad ingredients


Sharing Results / Logs

Snapdragon Elite X Dev Kit:
PS C:\qc_npu_benchmark> py benchmark_matmul.py
Error in cpuinfo: Unknown chip model name 'Snapdragon(R) X Elite - X1E001DE - Qualcomm(R) Oryon(TM) CPU'.
Please add new Windows on Arm SoC/chip support to arm/windows/init.c!
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
WARNING:root:Please consider to run pre-processing before quantization. Refer to example: https://github.com/microsoft/onnxruntime-inference-examples/blob/main/quantization/image_classification/cpu/ReadMe.md
WARNING:root:Please consider pre-processing before quantization. See https://github.com/microsoft/onnxruntime-inference-examples/blob/main/quantization/image_classification/cpu/ReadMe.md
Starting stage: Graph Preparation Initializing
Completed stage: Graph Preparation Initializing (430 us)
Starting stage: Graph Transformations and Optimizations
Completed stage: Graph Transformations and Optimizations (208903 us)
Starting stage: Graph Sequencing for Target
 [##################################################] 100%
Completed stage: Graph Sequencing for Target (430831 us)
Starting stage: VTCM Allocation
Completed stage: VTCM Allocation (904480 us)
Starting stage: Parallelization Optimization
Completed stage: Parallelization Optimization (93656 us)
Starting stage: Finalizing Graph Sequence
Completed stage: Finalizing Graph Sequence (293467 us)
Starting stage: Completion
Completed stage: Completion (921 us)
Starting stage: Graph Preparation Initializing
Completed stage: Graph Preparation Initializing (307 us)
Starting stage: Graph Transformations and Optimizations
Completed stage: Graph Transformations and Optimizations (203105 us)
Starting stage: Graph Sequencing for Target
 [##################################################] 100%
Completed stage: Graph Sequencing for Target (504907 us)
Starting stage: VTCM Allocation
Completed stage: VTCM Allocation (1105806 us)
Starting stage: Parallelization Optimization
Completed stage: Parallelization Optimization (120234 us)
Starting stage: Finalizing Graph Sequence
Completed stage: Finalizing Graph Sequence (174437 us)
Starting stage: Completion
Completed stage: Completion (1156 us)
************ Benchmark Results ************
NPU quantized compute, float I/O accuracy difference is 0.0100
NPU quantized compute and I/O accuracy difference is 0.0060
CPU took 8.24ms, 839,048,954,786 ops per second
NPU (quantized compute, float I/O) took 30.14ms, 229,337,363,916 ops per second
NPU (quantized compute and I/O) took 11.89ms, 581,509,287,932 ops per second
PS C:\qc_npu_benchmark>

Lenovo Snapdragon Laptop (Thinkpad)
Error in cpuinfo: Unknown chip model name 'Snapdragon(R) X Elite - X1E78100 - Qualcomm(R) Oryon(TM) CPU'.
Please add new Windows on Arm SoC/chip support to arm/windows/init.c!
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
unknown Qualcomm CPU part 0x1 ignored
WARNING:root:Please consider to run pre-processing before quantization. Refer to example: https://github.com/microsoft/onnxruntime-inference-examples/blob/main/quantization/image_classification/cpu/ReadMe.md
WARNING:root:Please consider pre-processing before quantization. See https://github.com/microsoft/onnxruntime-inference-examples/blob/main/quantization/image_classification/cpu/ReadMe.md
Starting stage: Graph Preparation Initializing
Completed stage: Graph Preparation Initializing (360 us)
Starting stage: Graph Transformations and Optimizations
Completed stage: Graph Transformations and Optimizations (234225 us)
Starting stage: Graph Sequencing for Target
 [##################################################] 100%
Completed stage: Graph Sequencing for Target (470254 us)
Starting stage: VTCM Allocation
Completed stage: VTCM Allocation (1130989 us)
Starting stage: Parallelization Optimization
Completed stage: Parallelization Optimization (108373 us)
Starting stage: Finalizing Graph Sequence
Completed stage: Finalizing Graph Sequence (369914 us)
Starting stage: Completion
Completed stage: Completion (1308 us)
Starting stage: Graph Preparation Initializing
Completed stage: Graph Preparation Initializing (3549 us)
Starting stage: Graph Transformations and Optimizations
Completed stage: Graph Transformations and Optimizations (284238 us)
Starting stage: Graph Sequencing for Target
 [##################################################] 100%
Completed stage: Graph Sequencing for Target (502395 us)
Starting stage: VTCM Allocation
Completed stage: VTCM Allocation (872166 us)
Starting stage: Parallelization Optimization
Completed stage: Parallelization Optimization (70095 us)
Starting stage: Finalizing Graph Sequence
Completed stage: Finalizing Graph Sequence (110545 us)
Starting stage: Completion
Completed stage: Completion (1073 us)
************ Benchmark Results ************
NPU quantized compute, float I/O accuracy difference is 0.0100
NPU quantized compute and I/O accuracy difference is 0.0060
CPU took 9.60ms, 719,947,582,723 ops per second
NPU (quantized compute, float I/O) took 30.43ms, 227,119,478,686 ops per second
NPU (quantized compute and I/O) took 11.59ms, 596,241,063,859 ops per second```


Bump Shared Workflow Version, Minimum Dependent CTK Version

This PR bump the shared workflow actions in Numbast. And fixes existing CI failures.

This PR will limit the tests to only CTK 12.5, as this current version pinned by pynvjitlink.


No example for record extension

It would be nice to have an example of a record extension in the included example.

There is now an extended record in the test suite.


Initial implementation of IstioComponent

This implements the IstioComponent layer.
Only Pilot implementation is provided for review - the remaining  IstioComponent are stubs and will be a carbon copy of the final Pilot implementation after some review.
Requires https://github.com/istio/operator/pull/8 and https://github.com/istio/operator/pull/29.

@ostromart: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-lint.sh
63601d40f1d589c220099ac264c7768c44112d68
link
/test operator-lint-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ostromart: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-lint.sh
99d93242e19edc7bdcf31b9038b656dfa0ca2979
link
/test operator-lint-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ostromart: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-lint.sh
55d5446e1eb1a0fcc423433df653b9a09fcd99b6
link
/test operator-lint-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ostromart: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-lint.sh
41b7ab8bc011ad0264db3f467ed9e3f710566bf8
link
/test operator-lint-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Fix broken links to message documentation

Fix broken links to message documentation.
How to review
Check that the adapted links point to the correct location.
Specifically, I'm not sure whether the link of the "Documentation build" badge in the README.md file is correct.
PR checklist

As this PR only adapts the documentation I didn't adapt the release notes.

[ ] Tests added.

[ ] Documentation added.

[ ] Release notes updated.
<!-- Add a single line at the top of the “Next release” section of
     RELEASE_NOTES.rst, where '999' is the GitHub pull request number:
<ul>
:pull:999: Title or single-sentence description from above.
-->

Thanks for the comments, I updated the two links you mentioned

Thanks for the changes. I notice that the CI setup on Ubuntu is failing, will make a commit or two to try to fix it.

will make a commit or two to try to fix it.

In a new PR, I guess!


Feature: added localstorage

Remove localStorageSaveEnable option in config. As a substitute add option storage for passing custom storage implementation (examples: localStorage, sessionStorage, customStorage.


Zones Summary Information - Incorrect information Shown

When looking at my zones summary information, the information appears to be incorrect for the 'Downstairs' zone. This zone has no boxes allocated and 2 networks:

If I edit the zone, it shows the correct details:

I have a script to run which cleans these up. Will do so later and check back in.

Had a quick look, this is actually a back-end bug. I'll leave this open here but have opened internally.
This happened to boxes added before a certain date.
Will update when resolved.

Should be resolved, we've made a load of changes to zones in the last week.
If still a problem, re-open (when you're not on your holibobs).


[HOLD for payment 2024-08-02] [$250] Video - Change in playback speed is not reflected in thread report

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.75-0
Reproducible in staging?: Y
Reproducible in production?: N
**If this was caught during regression testing, add the test name, ID and link from TestRail:**N/A
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause - Internal Team
Action Performed:

Navigate to a report
Send a video
Reply in a thread to the video
Navigate back to the main report
Change playback speed
Navigate to the thread report
Click on 'Three dots' > 'Playback speed'

Expected Result:
Changes in Playback speed from the main report should be reflected in the thread report
Actual Result:
Changes in playback speed from the main report is not reflected in the thread report
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/836fb63a-25a5-4c49-a0fc-fd6f7a29fa84
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01aa9734a896a98cbf
Upwork Job ID:<PHONE_NUMBER>924013056
Last Price Increase: 2024-06-06
Automatic offers:

situchan | Reviewer | 102822043
tienifr | Contributor | 102822045

Issue OwnerCurrent Issue Owner: @mallenexpensify

We think that this bug might be related to #vip-vsp

@Julesssss  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

Thanks.
This should not block deploy IMO. Removing the label.

@situchan , 👀 on the proposal above plz

Proposals are in review

@tienifr @jainilparikh thanks for the proposals.
Please link offending PR in the root cause. This was deploy blocker.

@jainilparikh I don't mean that this is deploy blocker but was, which means that happened on staging but not on production.

@jainilparikh the bug reached production after yesterday's deploy. So it's expected to happen on latest prod v1.4.75
Not happened on v1.4.74

@jainilparikh thanks for the updated proposal. The root cause is still not correct. You marked https://github.com/Expensify/App/pull/42046 as offending PR but this issue was created before that PR was merged.

Not overdue. Discussions ongoing

Not overdue. Discussions ongoing

@jainilparikh please hide or delete old proposals. I will provide feedback soon.

@jainilparikh bump ^

^

Hey @situchan could you please take a look at this proposal when you have a chance

I am not able to reproduce on latest staging v1.4.82-0
@jainilparikh @tienifr can you please confirm?

Pausing for a quick sec... the bug is that, in the thread, the video playback speed shows as the same in the main chat but the video isn't actually playing at that speed.  Is that correct?  ie. I change the speed in the main chat to 2 and when I open the thread it shows 2 but plays at 1.

Pausing for a quick sec... the bug is that, in the thread, the video playback speed shows as the same in the main chat but the video isn't actually playing at that speed. Is that correct? ie. I change the speed in the main chat to 2 and when I open the thread it shows 2 but plays at 1.

Good catch! Indeed this bug still happens

the bug is that, in the thread, the video playback speed shows as the same in the main chat but the video isn't actually playing at that speed. Is that correct? i.e. I change the speed in the main chat to 2 and when I open the thread it shows 2 but plays at 1.

Please update proposals to explain the root cause of ^

@situchan , 👀 above plz.

the video playback speed shows as the same in the main chat but the video isn't actually playing at that speed.

Is there anotehr bug here besides this one? If so, what is it? (sorry, I thought it was a few different bugs while testing, now I'm a lil confused).

proposals are in review

Is there anotehr bug here besides this one? If so, what is it?

As far as I am concerned, no. The bug is reproducable and we are awaiting a proposalto be selected. Please someone correct me if I am wrong.

updating today

@jainilparikh your solution doesn't work for me in some cases.
@tienifr's proposal looks good and tests well. And they proposed first.
🎀👀🎀 C+ reviewed

@jainilparikh your solution doesn't work for me in some cases.

@jainilparikh here's that case:
https://github.com/Expensify/App/assets/108292595/eaf466ee-d52b-4393-90ce-8f8a33bb4d5b
As stated in our contributing guideline:

Note: Before submitting a proposal on an issue, be sure to read any other existing proposals. ALL NEW PROPOSALS MUST BE DIFFERENT FROM EXISTING PROPOSALS. The difference should be important, meaningful or considerable.

@tienifr's initial RCA was correct. Linking the offending PR is just bonus point.
I'd say that both of you provided correct RCA and proper solution and picked up first working proposal.

PR is in review

It seems that QA noticed the issue not fixed for Android, lets hold payment for now. @tienifr could you take a look please?

In the PR I'm not seeing that it was deployed to production.

https://github.com/Expensify/App/pull/46800#issuecomment-2289860313

@situchan @tienifr , any idea what might be going on? I want to update the title to reflect the correct payment date

@situchan @tienifr 👀 on the comment above plz so I can get you paid (assuming it's needed)

There was bug on that deploy. Melvin didn't post deploy comment on all PRs in this checklist.
cc: @Beamanator

Agreed 👍 I posted in the PR about it being deployed to prod here - https://github.com/Expensify/App/pull/46800#issuecomment-2289860313

d;oh, sorry, I should have seen that comment.
Contributor: @tienifr owed $250 via NewDot
Contributor+: @situchan paid $250 via NewDot.
@situchan plz complete the BZ checklist above? Thx

The PR that introduced the bug has been identified. Link to the PR: https://github.com/Expensify/App/pull/41055
The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: https://github.com/Expensify/App/pull/41055/files#r1725293900
A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: N/A

Regression Test Steps

Send a video to any chat
Reply the video in thread
Navigate to parent report
Change playback speed
Navigate to thread
Open playback speed menu
Verify thread's playback speed is the same with parent's

Thanks @situchan
Test Case GH created

https://github.com/Expensify/Expensify/issues/423309


Inventory Kamera closes while scanning the Gladiator's artifact set feathers.

Hi, I downloaded and followed the instructions correctly. Inventory Kamera automatically closes while scanning Gladiator's artifact set Feathers. I tried upgrading that feather, then the other. Now it crashes at the sands lol. Please help me.
It crashes after the same duration of the scan at the artifacts always. Even if I scanned the weapons before it would crash at the exact same point.
By the way, I don't have any error code because the app closed.

Although this doesn't happen for me on the gladiator set, it does happen to me with the Hour of Soothing Thunder artifact. In the code the setName  in CatalogueFromBitmapsAsync liner 456 eturns null which breaks the conditional found in IsValidSetName within Scrapper.cs
There needs to be a check for checking if any of the name is null or not. I am assuming its the OCR returning null on this as well

Hey thanks for your quick reply! So you are saying you got an error report not like me? and do what? I mean, do the developers need to do something or us? I'll be here waiting for your response. TY.

Does the entire application close or just the scan stops? If the entire application closes please try regenerating the lookup tables under options.

Here is an update from me. Currently it stopped here where the picture is at

This is where it stopped in code. Here is the detail
System.ArgumentNullException   HResult=0x80004003   Message=Value cannot be null. Parameter name: key   Source=mscorlib   StackTrace:    at System.Collections.Generic.Dictionary2.FindEntry(TKey key)
at System.Collections.Generic.Dictionary2.KeyCollection.System.Collections.Generic.ICollection<TKey>.Contains(TKey item)    at System.Linq.Enumerable.Contains[TSource](IEnumerable1 source, TSource value)
at InventoryKamera.Scraper.IsValidSetName(String setName) in C:\Users\Ibrahim\source\repos\Inventory_Kamera\InventoryKamera\Scraper.cs:line 202
at InventoryKamera.Artifact.IsValid() in C:\Users\Ibrahim\source\repos\Inventory_Kamera\InventoryKamera\Artifact.cs:line 77
at InventoryKamera.InventoryKamera.ImageProcessorWorker() in C:\Users\Ibrahim\source\repos\Inventory_Kamera\InventoryKamera\InventoryKamera.cs:line 193
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
This exception was originally thrown at this call stack:
System.Collections.Generic.Dictionary<TKey, TValue>.FindEntry(TKey)
System.Collections.Generic.Dictionary<TKey, TValue>.KeyCollection.System.Collections.Generic.ICollection.Contains(TKey)
System.Linq.Enumerable.Contains(System.Collections.Generic.IEnumerable, TSource)
InventoryKamera.Scraper.IsValidSetName(string) in Scraper.cs
InventoryKamera.Artifact.IsValid() in Artifact.cs
InventoryKamera.InventoryKamera.ImageProcessorWorker() in InventoryKamera.cs
System.Threading.ThreadHelper.ThreadStart_Context(object)
System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, object, bool)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, object, bool)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, object)
...
[Call Stack Truncated]`

Another update from me (I am extremely sorry for the comment spam). I added a code that just checks if there is a null for setName and just debugged ScanArtifactSubStats
When Scrapper.AnalyzeText happens, it returns for this particular artifact this value
var text = Scraper.AnalyzeText(n, Tesseract.PageSegMode.Auto).ToLower();
//text = "+ def+16\n\n+ def+6.6%\n\n+ atk+5.3%\nthundersoother:\n\n \n"

As you can see its missing quite some data including the primary modifier
here is the artifact that it stopped on for reference

Thank you for the extra details.
The artifact that the scanner stops on is not related to the artifact that causes a crash. Finding the artifact with those corresponding substats from text will be more helpful. However that line is what I expect as the substats and set name are determined together and independently from the other pieces of information about the artifact (main stat, level, and lock). The line is paresable and should not cause a crash should you step through it line by line.

@Cupcak3 Ok you are right on this. For the time being I just added another condition and it works
if (setName != null && (Artifacts.Keys.Contains(setName) || Artifacts.Values.Contains(setName)))

i have the same issue, the program stops and closes by itself when it tries to scan a gladiator artifact. unfortunately it doesn't show any errors, it just crashes. I did try to delete that specific artifact, but it didn't fix it, it just stopped on another artifact.

No problem on the comment spamm as long as it brings help to my problem :P
I read all the comments here and I dont find any solution yet :c
Please help, I'm at that same point, at the Gladiator's set.

For me, the app able to scan all the Gladiator's set that I have but it randomly crashes. Last time I tried, it crashed while processing Thundershooter set. Do we have a debug build that will output debug logs while the app running?

For me it crashes on a Noblesse Hydro% goblet with 4 substats equipped on XQ. MAkes the whole program useless, I wish it just skipped an erroneous artifact. The dev really needs to take a look at this

@bagusnl you can clone this repo or my fork and checkout the development branch. This repo has some things that Andrew is working on and may or may not be implemented. My latest development code has mostly fixes from the past week.
@KaiFireborn latest development branch (on this repo as well as my own fork) has possible crash mitigation for weapons and artifacts. I say possible because I've not been able to reproduce these crashes on my own since they've been reported.

@Cupcak3 as a developer myself, I know not being able to reproduce a common issue only too well. Still, didn't someone above suggest a possible fix (or at least a crash prevention method)? Would be appreciated if it were implemented. Another possibility could be writing the output JSON as the program goes, so if a crash occurs the progress isn't lost

Yes I implemented a version of that fix on the dev branch, which is done earlier than at the time of validation.
Writing the output repeatedly is not very efficient as it would involve loading, parsing, modifying, and then a write for every single item that were to be added. We're prioritizing squashing crashes over our writing inefficiencies for now.

@Cupcak3 tried the current development branch which from what I see, your fork is already merged. Both in debug and release it straight up won't scan at all and throw this error:
The type initializer for 'InventoryKamera.Scraper' threw an exception.
   at InventoryKamera.Scraper.RestartEngines()
   at InventoryKamera.InventoryKamera.GatherData(Boolean[] formats, Boolean[] checkbox) in E:\GitHub\Andrewthe13th-Inventory_Kamera\Inventory_Kamera\InventoryKamera\InventoryKamera.cs:line 59
   at InventoryKamera.Form1.<>c__DisplayClass21_0.<StartButton_Clicked>b__0() in E:\GitHub\Andrewthe13th-Inventory_Kamera\Inventory_Kamera\InventoryKamera\Form1.cs:line 207

You need to rebuild the project in visual studio and make ur development set to ANY CPU.

Same error happened

I wasn't able to build the dev version, and too low on time right now to figure out and fix the errors. WHen are you planning to provide a build of that/update the app?

So I tried running the development branch, hold and behold another System.NullReferenceException occurs. This time on line 128 of Artififact.cs. In this case it was refering to 'stats' being 'null'
System.NullReferenceException
  HResult=0x80004003
  Message=Object reference not set to an instance of an object.
  Source=InventoryKamera
  StackTrace:
   at InventoryKamera.Artifact.SubStat.ToString() in C:\Users\Ibrahim\source\repos\Inventory_Kamera\InventoryKamera\Artifact.cs:line 128

Call Stack Below
 	InventoryKamera.exe!InventoryKamera.Artifact.SubStat.ToString() Line 128	C#
 	mscorlib.dll!System.Text.StringBuilder.AppendFormatHelper(System.IFormatProvider provider, string format, System.ParamsArray args)	Unknown
 	mscorlib.dll!string.FormatHelper(System.IFormatProvider provider, string format, System.ParamsArray args)	Unknown
 	mscorlib.dll!string.Format(string format, object arg0, object arg1)	Unknown
>	InventoryKamera.exe!InventoryKamera.Artifact.ToString() Line 173	C#
 	InventoryKamera.exe!InventoryKamera.InventoryKamera.ImageProcessorWorker() Line 238	C#
 	mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object state)	Unknown
 	mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx)	Unknown
 	mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx)	Unknown
 	mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state)	Unknown
 	mscorlib.dll!System.Threading.ThreadHelper.ThreadStart()	Unknown

What I have done was a clean build, updated the look up table.
Let me know if you need anything to further this investigation!

I decided to redo the clone and build the thing again. Now it does stop on Gladiator set in the Genshin screen while processing Shimenawa set. Below is the screenshot

VS Debugger threw this
System.NullReferenceException
  HResult=0x80004003
  Message=Object reference not set to an instance of an object.

'InventoryKamera.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'E:\GitHub\Andrewthe13th-Inventory_Kamera\Inventory_Kamera\InventoryKamera\bin\Release\InventoryKamera.exe'. Symbols loaded.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_<IP_ADDRESS>__b77a5c561934e089\System.Windows.Forms.dll'.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_<IP_ADDRESS>__b77a5c561934e089\System.dll'.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_<IP_ADDRESS>__b03f5f7f11d50a3a\System.Drawing.dll'.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_<IP_ADDRESS>__b03f5f7f11d50a3a\System.Configuration.dll'.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_<IP_ADDRESS>__b77a5c561934e089\System.Core.dll'.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_<IP_ADDRESS>__b77a5c561934e089\System.Xml.dll'.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Accessibility\v4.0_<IP_ADDRESS>__b03f5f7f11d50a3a\Accessibility.dll'.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'E:\GitHub\Andrewthe13th-Inventory_Kamera\Inventory_Kamera\InventoryKamera\bin\Release\WindowsInput.dll'.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'E:\GitHub\Andrewthe13th-Inventory_Kamera\Inventory_Kamera\InventoryKamera\bin\Release\Newtonsoft.Json.dll'.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Numerics\v4.0_<IP_ADDRESS>__b77a5c561934e089\System.Numerics.dll'.
The thread 0x175c has exited with code 0 (0x0).
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Serialization\v4.0_<IP_ADDRESS>__b77a5c561934e089\System.Runtime.Serialization.dll'.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_<IP_ADDRESS>__b77a5c561934e089\System.Data.dll'.
Exception thrown: 'System.IO.FileNotFoundException' in mscorlib.dll
Exception thrown: 'System.IO.FileNotFoundException' in mscorlib.dll
Exception thrown: 'System.IO.FileNotFoundException' in mscorlib.dll
Exception thrown: 'System.IO.FileNotFoundException' in mscorlib.dll
Exception thrown: 'System.IO.FileNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.Collections.Generic.KeyNotFoundException' in mscorlib.dll
Exception thrown: 'System.IO.FileNotFoundException' in mscorlib.dll
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'E:\GitHub\Andrewthe13th-Inventory_Kamera\Inventory_Kamera\InventoryKamera\bin\Release\NHotkey.WindowsForms.dll'. Symbols loaded.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'E:\GitHub\Andrewthe13th-Inventory_Kamera\Inventory_Kamera\InventoryKamera\bin\Release\NHotkey.dll'. Symbols loaded.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'E:\GitHub\Andrewthe13th-Inventory_Kamera\Inventory_Kamera\InventoryKamera\bin\Release\Tesseract.dll'.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'InteropRuntimeImplementer.LeptonicaApiSignaturesInstance'.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'InteropRuntimeImplementer.TessApiSignaturesInstance'.
The thread 0x1a14 has exited with code 0 (0x0).
The thread 0x1a60 has exited with code 0 (0x0).
The thread 0x1c74 has exited with code 0 (0x0).
The thread 0x2f50 has exited with code 0 (0x0).
Exception thrown: 'Newtonsoft.Json.JsonReaderException' in Newtonsoft.Json.dll
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'E:\GitHub\Andrewthe13th-Inventory_Kamera\Inventory_Kamera\InventoryKamera\bin\Release\Accord.Imaging.dll'.
'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'E:\GitHub\Andrewthe13th-Inventory_Kamera\Inventory_Kamera\InventoryKamera\bin\Release\Accord.dll'.
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.Exception' in InventoryKamera.exe
Exception thrown: 'System.NullReferenceException' in InventoryKamera.exe
Object reference not set to an instance of an object.

'InventoryKamera.exe' (CLR v4.0.30319: InventoryKamera.exe): Loaded 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\PrivateAssemblies\Runtime\Microsoft.VisualStudio.Debugger.Runtime.Desktop.dll'.

Basically the same errors as @Ibrahimmushtaq98 got.
There are also bunch of errors while scanning, I can't see much since its pretty fast but it looks like all the output went to error log. There is also weird behavior while scanning my weapons, the software only scans first 3 (all 5*) then spam scan those 3 repeatedly.

A couple things:

If you see the JsonReaderException it's possible that your lists are malformed.
Can you confirm that the first artifact it fails on has 3 or less substats? Put a breakpoint early in the ToString override in Artifact.cs.
The fast clicking is part of Andrew's work on automatically finding the lowest delay. You're only seeing it in weapons because that's the only place he's put the code so far. There's only two lines of code that need to be changed to disable the feature.

ALthough you striked the substat question through, it does seem to have something to do with it. After upgrading an artifact on XQ from +0 with 3 affixes and Hydro%, it went further and stalled on a different one. Again, at a transition between an artifact with 3 substats and one with four.

Thanks Kai. Stalling or hanging sounds like a different issue than this thread, but I believe I have an idea of what could be the cause. Please open a new issue for that.

@Cupcak3

If you see the JsonReaderException it's possible that your lists are malformed.
Which list is malformed? Is it the lookup table or the output ? If its the lookup table, I can try to use the release lookup table just to test it out.

The fast clicking is part of Andrew's work on automatically finding the lowest delay.
Ah I see. I don't mind the fast clicking if its for a useful feature. Was just quite confused why it only cycle on 3 of my weapon and gave up since IIRC weapon is the first one to scan, unless I missed an update on which the scan order has changed.

I saw a commit in the devel branch and decided to give it a try.
Scanning works (-ish) now. The problem now is that its unable to validate (almost) all Weapon and Artifacts while Characters, Char Develop Items and Mats working just fine.
What I did is rebuilt on Release - Any CPU, start app, then update lookup tables.
You did mention about my lists being malformed and causing Exception thrown: 'Newtonsoft.Json.JsonReaderException' in Newtonsoft.Json.dll so I decided to try the inventorylists from v1.1 release and it still give the error unfortunately.
Attached in gist (to reduce spam) are app error log, debug output, and genshindata json output for both raw and parsed.
https://gist.github.com/bagusnl/898481eefefbfa69d50fc0ff1b76c2e7
I just want to say good work on the devs for making this software in the first place and I hope it will work soon :)

I had the same issues as others in the thread (with Gladiator's in particular.) Today I tried Cupcak3's dev version, and that spit out an error, however when I tried it again with the v1.1 inventorylist, everything worked out fine.
It also solved the issue with Kokomi that I also saw posted, which was great.
Thank you guys for your hard work. It's so very much appreciated.

@Sirielia What's a v1.1 inventorylist, exactly?

@bagusnl it looks like I accidentally left in something that was used to output the images for weapons and artifacts if they failed to validate. In InventoryKamera.cs on lines 180 and 215 remove the ! inverter and it should be okay until I can get the fix out. Sorry about that. It slipped by while I was trying to sort out local branches.

In InventoryKamera.cs on lines 180 and 215 remove the ! inverter

This solved the validation error 👍

So the current state is that we are all waiting for new versions of this software? I read the comments, @bagusnl do you think that would fix my problem or validation error is something else?

It seems so. I hope a V1.2 is released soon, sadly I'm currently unable to compile and test the dev branch myself. Still, my solution would probably be just skipping over an artifact that throws an exception and would cause a crash, and save its screenshot separately.
I've done a few more attempts with the pre-compiled v1.1, and the error always happened between an artifact with two substats and one with three. Guess the reader didn't switch in time and attempted to read it differently?

@Sirielia What's a v1.1 inventorylist, exactly?

Sorry, I should have clarified! I had used the Cupcak3's dev branch, but copy/pasted the inventorylists folder from the pre-compiled v1.1, since the one that the dev branch created was causing an error. That allowed me to finally scan without errors or it shutting down on me.

Hello.
Might be a little late to this, but I also encountered one more error along these lines.
I moved over to the development branch and tried to run the scanner, but got an IndexOutOfBounds error in InventoryKamera.cs on line 276:
// Save card in directory to see what an issue might be
image.bm[7].Save($"./logging/artifacts/artifact{artifact.Id}.png"); // error here

Checking out the image.bm list, at this point it tries to save an image to an index that doesn't exist on this list. I just commented this line out and ran the scanner (since it seems to deal with logging, and it only stops on 4 star artifacts I don't use, tho randomly), and it works. I assume those artifacts that get errored out are just no in the resulting GOOD json, but it seems to capture all the 5 star ones I care about.

Oops. I changed how the rarity check is done so there's one less in that list. That 7 should be a 6. I'll talk to Andrew about possibly getting the dev branch out as an update.

Hi there, this issue is hopefully resolved in the v1.1.1 prerelease. If it has been, please let us know so we can close this issue.

Works for me at least!

I am going to close this issue as one user has reported it being fixed and the other users in the thread have not replied in a while. Please feel free to reopen this issue or to open a new issue should any problems come up.


wrap/unwrap domains

@wosleyv Hey Hii Can you please guide me setting up and run this project locally
I am not able to do

@wosleyv Thanks a lot for opening this PR, I will review in the coming days.
@SanjaySargam What error are you getting?

@dr497 I cloned the repo
What are the commands which I need to run and which is the best editor - VS studio or Android Studio?
Will you please guide me step by step

@SanjaySargam If your issue is unrelated to this pull request please open a separate issue or on join our Discord so we can keep this discussion focused on the content of the PR

Ok

@wosleyv The PR looks great. However, I've noticed a few minor areas that could be improved:

When wrapping (and unwrapping) the success modal overlaps the initial modal resulting in 2 modals being opened at once. Once the tx is confirmed, the initial modal should be closed.
The PR does not support internationalization, can you rebase your branch on master and then you wrap all Text into Trans macros, for error modals messages you can use t.
When unwrapping a domain, you first need to run the withdraw tokens instruction to handle cases where funds have been sent by mistake to the PDA escrow instead of the NFT owner. Below is a code snippet you can use

import { TransactionInstruction, PublicKey, Connection } from<EMAIL_ADDRESS>import { getDomainKeySync } from "@bonfida/spl-name-service";
import {
  NAME_TOKENIZER_ID,
  NftRecord,
  MINT_PREFIX,
  withdrawTokens,
  redeemNft,
} from "@bonfida/name-tokenizer";
import {
  TOKEN_PROGRAM_ID,
  AccountLayout,
  getAssociatedTokenAddress,
  createAssociatedTokenAccountInstruction,
  createCloseAccountInstruction,
  getAssociatedTokenAddressSync,
  NATIVE_MINT,
} from "@solana/spl-token";

const checkAccountExists = async (
  connection: Connection,
  key: PublicKey
): Promise<boolean> => {
  const info = await connection.getAccountInfo(key);
  if (!!info?.data) {
    return true;
  }
  return false;
};

export const redeemSol = async (
  connection: Connection,
  recordKey: PublicKey,
  publicKey: PublicKey,
  tokenAccountLen: number,
  nftMint: PublicKey
) => {
  const instructions: TransactionInstruction[] = [];
  const recordInfo = await connection.getAccountInfo(recordKey);
  if (!recordInfo) {
    throw new Error("Record info not found");
  }
  const minRent = await connection.getMinimumBalanceForRentExemption(
    recordInfo?.data.length
  );
  if (
    recordInfo.lamports > minRent &&
    tokenAccountLen === 0 // If > 0 the native SOL will be withdrawn in another ix
  ) {
    const ataDestination = await getAssociatedTokenAddress(
      NATIVE_MINT,
      publicKey
    );
    if (!(await checkAccountExists(connection, ataDestination))) {
      instructions.push(
        createAssociatedTokenAccountInstruction(
          publicKey,
          ataDestination,
          publicKey,
          NATIVE_MINT
        )
      );
    }
    const ataSource = await getAssociatedTokenAddress(
      NATIVE_MINT,
      recordKey,
      true
    );
    const createAta = createAssociatedTokenAccountInstruction(
      publicKey,
      ataSource,
      recordKey,
      NATIVE_MINT
    );
    const withdrawIx = await withdrawTokens(
      nftMint,
      NATIVE_MINT,
      publicKey,
      recordKey,
      NAME_TOKENIZER_ID
    );
    instructions.push(createAta, ...withdrawIx);
  }
  return instructions;
};

export const unwrap = async (
  connection: Connection,
  domain: string,
  publicKey: PublicKey
) => {
  const instructions: TransactionInstruction[] = [];
  const { pubkey } = getDomainKeySync(domain);
  const [recordKey] = await NftRecord.findKey(pubkey, NAME_TOKENIZER_ID);
  const [mint] = await PublicKey.findProgramAddress(
    [MINT_PREFIX, pubkey.toBuffer()],
    NAME_TOKENIZER_ID
  );

  const recordTokenAccounts = await connection.getTokenAccountsByOwner(
    recordKey,
    { programId: TOKEN_PROGRAM_ID }
  );

  for (let tokenAcc of recordTokenAccounts.value) {
    const des = AccountLayout.decode(tokenAcc.account.data);
    const ata = await getAssociatedTokenAddress(des.mint, publicKey);
    if (!(await checkAccountExists(connection, ata))) {
      const ix = createAssociatedTokenAccountInstruction(
        publicKey,
        ata,
        publicKey,
        des.mint
      );
      instructions.push(ix);
    }
    const ix = await withdrawTokens(
      mint,
      des.mint,
      publicKey,
      recordKey,
      NAME_TOKENIZER_ID
    );
    instructions.push(...ix);
  }
  const withdrawNativeSol = await redeemSol(
    connection,
    recordKey,
    publicKey,
    recordTokenAccounts.value.length,
    mint
  );
  instructions.push(...withdrawNativeSol);

  const ix = await redeemNft(pubkey, publicKey, NAME_TOKENIZER_ID);
  instructions.push(...ix);

  // Close token account
  const ata = getAssociatedTokenAddressSync(mint, publicKey);
  const ix_close = createCloseAccountInstruction(ata, publicKey, publicKey);
  instructions.push(ix_close);

  return instructions;
};

When unwrapping a domain, you first need to run the withdraw tokens instruction to handle cases where funds have been sent by mistake to the PDA escrow instead of the NFT owner. Below is a code snippet you can use

I think the unwrap fn is already doing this: https://github.com/wosleyv/sns-manager/blob/wrap-domain/src/utils/unwrap/index.tsx
so I just created the wrap fn

@wosleyv You are right, good catch! The current PR looks good to me


feat(common/lib/utils): catch error on bad b64 string inputs; add tests

Summary
Hi, I was working with Arweave transactions and my transactions were failing because I was passing in undefined tag values. Didn't catch this easily because my env was non-TS. The error message thrown wasn't too helpful (reading properties of undefined. reading 'replace'), so I'm proposing this error with a cause to improve and quicken the debugging process.
Did the following:

Add UtilsError and throw it if decoding/encoding non-strings
Add tests

firstly, sorry for the delay in reviewing this!
secondly, what function specifically were you calling that led on to this? yes, b64UrlEncode/b64UrlDecode can be called directly, but these are generally internal functions, so we might just be bubbling up a new equally confusing error message to the dev.
see this commit here for reference: https://github.com/ArweaveTeam/arweave-js/commit/55a212a2df356b147f9cbe003f29d2341e794619

maybe the same situation? https://github.com/ArweaveTeam/arweave-js/issues/228


Highlight on map when hovering over event

Given I visit the index page
When I hover over a event (EventList > TableRow)
Then I see the corresponding space getting highlighted on the map

Hi!
Cause you can just see the map and around five events on a fullHD screen on the main page i wouldn't recommend that, but feel free to implement it by yourself.
Please be aware that it could be removed when we implement the filter for spaces again.


config: links

from @fenekku on invenio_draft_resources/config.py#13 (It also applies to invenio_records_resources.

Normal: Hmmm... Haha I know I suggested this in the first place, but I am starting to think it's not ideal 😅 : these might get out-of-sync: RECORDS_UI_ENDPOINTS is where the UI routes are defined and RecordResourceConfig is where the API routes are defined. This is duplicating them. We should use those places to get these routes. I am pretty sure they are acceesible from either API or UI applications since they share the config.py.
If this is not as straightforward, we can make an issue for it.

Same pattern as https://github.com/inveniosoftware/invenio-records-resources/blob/master/invenio_records_resources/services/record.py#L50 should be used.


api: add using: attribute to head & stable URLs

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew typecheck with your changes locally?
[x] Have you successfully run brew tests with your changes locally?

Some formulae rely on the using: attribute to indicate how a resource is to be downloaded if it can't be detected via the domain name or protocol, e.g.:

libvorbis's stable URL has using: :homebrew_curl as it's hosted on a TLS-1.3-only server
trino's stable URL has using: :nounzip to allow for manual hard-link-preserving decompression
the head URLs for abcl, global, nginx, objfw, squid each have a using attribute to indicate the VCS needed to fetch their sources

This change allows from-source installations of these and similar formulae to work when using the API.
Current output:
$ brew info --json pytouhou | jq .[0].urls
{
  "stable": {
    "url": "https://hg.linkmauve.fr/touhou",
    "tag": null,
    "revision": "5270c34b4c00",
    "checksum": null
  },
  "head": {
    "url": "https://hg.linkmauve.fr/touhou",
    "branch": null
  }
}

$ brew fetch --HEAD blastem
==> Downloading https://www.retrodev.com/repos/blastem
##################################################################################################################################################################### 100.0%
Downloaded to: /Users/eric/Library/Caches/Homebrew/downloads/ae00afc1c31ad2cdd9ef6e4ea0876edc8206c3c47c11a628a8593d838242aca5--blastem
SHA256: 72b87d3a585b96e977f9f29cf6fcd9dcee0e9026fc3c69d0b9fdb16b35e679e9
# this just downloads a web page

Future:
$ HOMEBREW_NO_INSTALL_FROM_API=1 brew info --json pytouhou | jq .[0].urls
{
  "stable": {
    "url": "https://hg.linkmauve.fr/touhou",
    "tag": null,
    "revision": "5270c34b4c00",
    "checksum": null,
    "using": "hg"
  },
  "head": {
    "url": "https://hg.linkmauve.fr/touhou",
    "branch": null,
    "using": "hg"
  }
}

$ HOMEBREW_NO_INSTALL_FROM_API=1 brew fetch --HEAD blastem
==> Cloning https://www.retrodev.com/repos/blastem
requesting all changes
adding changesets
adding manifests
adding file changes
added 2346 changesets with 5011 changes to 324 files (+1 heads)
new changesets 2432d177e1ac:c76c81c21ae5
updating to branch default
300 files updated, 0 files merged, 0 files removed, 0 files unresolved
Resource: vasm
==> Downloading http://phoenix.owl.de/tags/vasm1_8i.tar.gz
##################################################################################################################################################################### 100.0%
Downloaded to: /Users/eric/Library/Caches/Homebrew/downloads/4f31e8fb49321255218db07092e8864e9e036e14c2c563c1add9ea1201164d99--vasm1_8i.tar.gz
SHA256: 9ae0b37bca11cae5cf00e4d47e7225737bdaec4028e4db2a501b4eca7df8639d
==> Downloading https://www.retrodev.com/repos/blastem/raw-rev/dbbf0100f249
##################################################################################################################################################################### 100.0%
Downloaded to: /Users/eric/Library/Caches/Homebrew/downloads/70a17ee109695d03f5ece64dd949f1b08371b9e3592a96d1738aac5868fba8c3--dbbf0100f249
SHA256: e332764bfa08e08e0f9cbbebefe73b88adb99a1e96a77a16a0aeeae827ac72ff

Will need adding here too: https://github.com/Homebrew/brew/blob/0932f361dceb4e621024eed9c5e6bdd0b55126e2/Library/Homebrew/formulary.rb#L244
plus the equivalent a few lines down for head

Thanks @EricFromCanada!


problem with run the code

I want to run this code but some functions missing. can you upload the whole code?

I update the code now :)


Completions are sorted backwards

            for (var i=commands.length; i--;) {
                if (regex.test(commands[i])) {
                    matched.push(commands[i]);
                }
            }
// ...
                    self.echo(matched.join('\t'));

This makes the completion matches be printed backwards.

Fixed in devel branch.


Add Windows as focus Area

With the recent CVE related to windows, I would like to add Windows as a focus area.  Alot of the areas above have aspects of Windows in them but would like to make an explicit ask to cover Windows in some form.
If there is a better way to make it clear some aspects should also consider Windows or need to scope different let me know. This was more to start conversation.
/sig windows
/cc @marosset @aravindhp @ritazh

/assign @reylejano

/lgtm
/approve


add enabledProperty support to LayoutBox

For Fourier, I need to be able to disable a scenery-phet.ZoomButtonGroup, which extends scenery.LayoutBox.  I could just add support in ZoomButtonGroup, but adding it to LayoutBox seems like the right thing to do.
LayoutBox does not currently do anything when this.enabledProperty changes.  So I supposed the correct thing to do is to add the default behavior ala Checkbox. That is:
      // {function(boolean, Node, Object:options):void} - function for controlling the appearance when toggling enabled.
      enabledAppearanceStrategy: SunConstants.componentEnabledListener,

      disabledOpacity: SunConstants.DISABLED_OPACITY
...
    // No need to dispose because enabledProperty is disposed in Node
    this.enabledProperty.link( enabled =>
      options.enabledAppearanceStrategy( enabled, this, { disabledOpacity: options.disabledOpacity } ) );

I'm a little concerned about how the above seems to be duplicated in lots of places, but I guess that's the pattern. enabledAppearanceStrategy: SunConstants.componentEnabledListener appears 14 times in the PhET code base.

Git history shows that @zepumph added enabledAppearanceStrategy in Checkbox, FineCoarseSpinner, etc.  Would you mind reviewing my changes in LayoutBox?

Looks good to me!

Note that the enabledAppearanceStrategy will be changed to run on Node.interactiveProperty (or an equivalent name) over in https://github.com/phetsims/scenery/issues/1116

@pixelzoom, I'm sorry to bring this back up, @jonathanolson and I just found this while working on https://github.com/phetsims/scenery/issues/1116. Unfortunately I didn't think through this completely. LayoutBox lives in scenery, so it cannot use sun/ code in it.
We either need to move this logic into scenery, or come up with a new strategy. I'll think about it.

This is getting solved gracefully and supportively over in https://github.com/phetsims/scenery/issues/1116. With the addition of Node.disabledOpacity, there is no blowing away of passed in options. Closing

Unfortunately I didn't think through this completely. LayoutBox lives in scenery, so it cannot use sun/ code in it.

Scenery still imports files from sun.  @pixelzoom can you recommend how to rectify this?  Should we move DISABLED_OPACITY to a constants file in scenery?

LayoutBox has one dependency on sun:
import SunConstants from '../../../sun/js/SunConstants.js';
...
      disabledOpacity: SunConstants.DISABLED_OPACITY

How about moving DISABLED_OPACITY to scenery constants?

That seems like a good idea.  Is there already something, or should we create scenery/js/SceneryConstants.js?  Would you like to do so, or would you prefer someone else do these steps?

I think that's a question for @jonathanolson.  scenery does a lot of things differently than other PhET repos.

The first thing I did was look for SceneryConstants.js, but it doesn't exist.  There must be other scenery constants, and I don't know where they live -- scenery doesn't follow all of the conventions used by other PhET repos.   So I think that this is a question for @jonathanolson.

A few things are put on the global scenery namespace in https://github.com/phetsims/scenery/blob/master/js/scenery.js.
Some things were moved to separate files, since that's easier with imports and clarity (https://github.com/phetsims/scenery/blob/master/js/util/svgns.js)
Maybe it's weird, but scenery hasn't run into the need for numeric constants that need deduplication? Feel free to create SceneryConstants if desired.

SunConstants.DISABLED_OPACITY was moved to SceneryConstants.DISABLED_OPACITY in the above commits. Spot-checked in a few sims.
@samreid or @jonathanolson please review and close.

Looks good, thanks!


Update robot design for SR2024

See https://github.com/srobo/competition-simulator-private/issues/37

Fixed by https://github.com/srobo/competition-simulator-private/pull/42


Missing UAE in Epidemic Data for Novel Coronavirus COVID-19

UNITED ARAB EMIRATES country is missing in the repository could you please add it to "Epidemic Data for Novel Coronavirus COVID-19"?
Please.
Thanks

Thanks, I found it. Could you add vaccination time series to it as well? If possible.
Thanks and regards.


Source -> Copy From...

Testing #223080
I think "Copy from" or even "Copy from..." would be a more fitting text for the column:

But this is a nit-pick, feel free to close this issue.

Copy from... does not matches all options  as Default option does not do copy


Update GSoC-interest.md

provided pull request with my information

@jsdabrowski are you no longerer interested or did you close the pull request for a different reason?

am interested

Wonderful, you can make the requested changes in your repository and it will update this pull request :-)

For this pull request to update, you have to push the changes to the same branch that this pull request is from: patch-1

I hope should it be good. Sorry for the mess. i am still in the learning process.

No worries, I found GitHub and pull requests confusing at first.
You are 2/3 done now:

[ ] Please update your pull request to not delete other interested students that are already in the list.
[x] Please change the format of your email to use "at" instead of @
[x] Please change the last column to read "To-Do" without a link, if you don't have your Project Proposal ready yet.

hope in the project will be many opportunity to advance the skills

thank you


New enumeration Logtype

Till now an int has been used for the different log types. I invented a new enumeration LogType for int.
Improves type safety and readability.
If there are no concerns or remarks i will merge this PR at the mid of the week.

It's part of the JavaBean conventions:
"The class properties must be accessible using get, set, is (used for boolean properties instead of get)".
Pure habit ,-)

Do you want to have the exact same discussions on every pull request? In the last pull request you acknowledged that there is a majority for final public fields without getters and you now you do it again in the old style?


Fix Travis more permanently

This will be a work in progress until I finish stripping out everything Travis doesn't need, to prevent this error from effecting us in the future. Don't merge until it's done. This is fixes #131 .

Codecov Report

Merging #132 into master will decrease coverage by 0.25%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #132      +/-   ##
==========================================
- Coverage   37.46%   37.21%   -0.26%
==========================================
  Files           9        9
  Lines        1588     1588
==========================================
- Hits          595      591       -4
- Misses        993      997       +4

Impacted Files
Coverage Δ

openbci/utils/ssdp.py
26.66% <0%> (-4.45%)
:arrow_down:

openbci/wifi.py
20.39% <0%> (-0.45%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 25232ac...029f0f5. Read the comment docs.

Okay, build fixed and working. But now I will go through and chop out all the excess stuff that is in there, so this doesn't impact us again in the future.

Well that was easy, turns out we didn't need any of those apt installs. This should be ready to merge.


chore: minimum node allowed is 6

Type: build
Description:
We do not support node 4 with this library

Codecov Report

Merging #9 into master will decrease coverage by 9.95%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master       #9      +/-   ##
==========================================
- Coverage   94.49%   84.53%   -9.96%
==========================================
  Files           4        3       -1
  Lines         109       97      -12
  Branches       29       29
==========================================
- Hits          103       82      -21
- Misses          6       13       +7
- Partials        0        2       +2

Impacted Files
Coverage Δ

src/htpasswd.js
78.57% <0%> (-14.29%)
:arrow_down:

src/utils.js
94.11% <0%> (-2.95%)
:arrow_down:

src/___tests___/__mocks__/Config.js

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1d6e0f8...71f66d2. Read the comment docs.


Sign in with Discord support

Is your feature request related to a problem? Please describe.
Not really a problem, but it would be a nice to have, specially considering that Discord is very Gamers focused.
Describe the solution you'd like
Just like you have Sign in with Google and Twitter, add an option for Discord

Thanks for the question. You can already do it, just chance the provider here to Provider.Discord


Intl Invalid locale 'null' IOS

flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.12.13+hotfix.9, on Mac OS X 10.15.4 19E287, locale ru)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 11.4.1)
[✓] Android Studio (version 3.6)
[✓] VS Code (version 1.45.0)
[✓] Connected device (2 available)

ios (13.4.1 (17E262)) exception
Non-fatal Exception: Invalid argument(s): Invalid locale 'null'
0  ???                            0x0 _throwLocaleError + 245 (intl.dart:245)
1  ???                            0x0 verifiedLocale + 239 (intl.dart:239)
2  ???                            0x0 new + 246 (date_format.dart:246)
3  ???                            0x0 _dateFormat + 16 (home_screen.dart:16)
4  ???                            0x0 build + 153 (home_screen.dart:153)
5  ???                            0x0 build + 4334 (framework.dart:4334)
6  ???                            0x0 performRebuild + 4223 (framework.dart:4223)
7  ???                            0x0 rebuild + 3947 (framework.dart:3947)
8  ???                            0x0 buildScope + 2432 (framework.dart:2432)
9  ???                            0x0 drawFrame + 773 (binding.dart:773)
10 ???                            0x0 _handlePersistentFrameCallback + 283 (binding.dart:283)
11 ???                            0x0 _invokeFrameCallback + 1102 (binding.dart:1102)
12 ???                            0x0 handleDrawFrame + 1041 (binding.dart:1041)
13 ???                            0x0 _handleDrawFrame + 957 (binding.dart:957)

Hi. I'm on the exact same Flutter version -
flutter: The following ArgumentError was thrown building GitHostSetupRepoSelector(dirty, state:
flutter: GitHostSetupRepoSelectorState#9c5cd):
flutter: Invalid argument(s): Invalid locale "null"
flutter:
flutter: The relevant error-causing widget was:
flutter:   GitHostSetupRepoSelector file:///Users/vishesh/src/journal/lib/setup/screens.dart:239:16
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #0      Intl._throwLocaleError (package:intl/intl.dart:245:5)
flutter: #1      Intl.verifiedLocale (package:intl/intl.dart:239:21)
flutter: #2      Intl.verifiedLocale (package:intl/intl.dart:224:14)
flutter: #3      new DateFormat (package:intl/src/intl/date_format.dart:249:20)
flutter: #4      GitHostSetupRepoSelectorState._buildRepoTile (package:gitjournal/setup/repo_selector.dart:192:25)
flutter: #5      GitHostSetupRepoSelectorState.build (package:gitjournal/setup/repo_selector.dart:129:41)
flutter: #6      StatefulElement.build (package:flutter/src/widgets/framework.dart:4619:28)
flutter: #7      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4502:15)
flutter: #8      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4675:11)
flutter: #9      Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)
flutter: #10     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2627:33)
flutter: #11     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:20)
flutter: #12     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:284:5)
flutter: #13     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1113:15)
flutter: #14     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1052:9)
flutter: #15     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:968:5)
flutter: #19     _invoke (dart:ui/hooks.dart:261:10)
flutter: #20     _drawFrame (dart:ui/hooks.dart:219:3)
flutter: (elided 3 frames from dart:async)

The relevant code which causes this problem -
   final _dateFormat = DateFormat('dd MMM, yyyy');
I've even tried calling initializeDateFormatting() from the intl package, but I still get this error.

I found a workaround -
https://github.com/GitJournal/GitJournal/commit/cd9d128b47ed523036f7ae1232ec7adcf04ed8a9

This seems to be more of an issue with package:gitjournal, or am I missing something?